[KND] grfn 1 840 Жалоба Опубликовано 2 марта, 2018 Не нашел темы и решил создать новую. Возможно понадобиться остальным, кто захочет спросить по скриптам и не нужно будет плодить темы. Есть вот такой EH _EHTake = player addEventHandler ["take", { _unit = _this select 0; // Тот на кого вешается EH _container = _this select 1; // То откуда пытаются взять оружие (ящики, трупы, игроки, земля) _item = _this select 2; // Класс оружия if // проверяем основное оружие ( currentWeapon(_this select 0) isKindOf ["Rifle", configFile >> "CfgWeapons"] //проверяем гранаты ||currentWeapon (_this select 0) isKindOf ["Throw", configFile >> "CfgWeapons"] // проверяем трубы || currentWeapon (_this select 0) isKindOf ["Launcher_Base_F", configFile >> "CfgWeapons"] // проверяем пистолеты || currentWeapon (_this select 0) isKindOf ["Pistol_Base_F", configFile >> "CfgWeapons"]) then // хинтуем {"Игровые условности" hintC ["Вы играете за VIP персонажа. Вам запрещено брать оружие."]; // удаляем removeAllWeapons (_this select 0); }; }]; Не работает на гранаты. Посмотрел что гранаты действительно с CfgWeapons, вроде и тип у них Throw, но юнит всё равно может взять гранату. Как быть и что делать? :) Проверка через currenThrowable или проверка снаряги поможет? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Vincen 3 772 Жалоба Опубликовано 3 марта, 2018 @grafon Как минимум, смотреть надо не currentWeapon (_this select 0), а просто _this select 2. Ты гранату поднимешь, как это можно будет понять по твоему условию проверки? Воть так все работаеть: if (hasInterface) then { private _EHTake = player addEventHandler ["take", { _unit = _this select 0; // Тот на кого вешается EH _container = _this select 1; // То откуда пытаются взять оружие (ящики, трупы, игроки, земля) _item = _this select 2; // Класс оружия if ((_this select 2) isKindOf ["Rifle", configFile >> "CfgWeapons"] || (_this select 2) isKindOf ["Throw", configFile >> "CfgWeapons"] || (_this select 2) isKindOf ["Launcher_Base_F", configFile >> "CfgWeapons"] || (_this select 2) isKindOf ["Pistol_Base_F", configFile >> "CfgWeapons"]) then { "Игровые условности" hintC ["Вы играете за VIP персонажа. Вам запрещено брать оружие."]; removeAllWeapons (_this select 0); }; }]; }; Вот только, ты уверен на счет removeAllWeapons (_this select 0)? Как то не очень красиво... Может лучше так? (_this select 0) removeWeapon (_this select 2); Хотя, в идеале конечно же, лучше сделать так, чтобы оно выбрасывалось на землю =) https://community.bistudio.com/wiki/removeWeapon 1 grfn отреагировал на это Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
[KND] Liquid 1 087 Жалоба Опубликовано 3 марта, 2018 (изменено) 5 hours ago, Vincen said: Хотя, в идеале конечно же, лучше сделать так, чтобы оно выбрасывалось на землю =) //Example 8: //Drop weapon: _wh = "GroundWeaponHolder_Scripted" createVehicle position player; player action ["DropWeapon", _wh, currentWeapon player]; Нужно заменить currentWeapon и убрать рандом для createVehicle position player. Изменено 3 марта, 2018 пользователем Liquid Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Sandy 533 Жалоба Опубликовано 3 марта, 2018 Немного не в тему, но спрошу: а в чем сакральный смысл создавать переменные _unit, _container, _item, а потом их не использовать? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
[FRWL] Lex 431 Жалоба Опубликовано 3 марта, 2018 13 часов назад, grafon сказал: Не работает на гранаты. Посмотрел что гранаты действительно с CfgWeapons, вроде и тип у них Throw, но юнит всё равно может взять гранату. Как быть и что делать? :) Если я не ошибаюсь, у игрока уже есть такое оружие как "Throw", а гранаты в инвентаре являются магазинами. Тогда такое условие будет работать: (_this select 2) isKindOf ["CA_Magazine", configFile >> "CfgMagazines"] Но есть минус - будет срабатывать на все магазины. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
[KND] grfn 1 840 Жалоба Опубликовано 19 марта, 2018 (изменено) Так как сейчас при наличии модуля Time на миссиях, использование которого обязательно, существует проблема, что нельзя поставить юнита в статичный самолет C-130, чтобы в дальнейшем осуществить прыжок с парашютом, так как юнит будет перенесен на землю под самолет. Происходит это потому что в модуле Time есть параметр Size of start zone, который создает зону размером N метров, по дефолту 100м. Покопавшись в модуле, нашел часть скрипта, которая создает и проверяет эту самую зону и возвращает игрока, который пытается эту зону покинуть. Ролик : первая часть с текущим модулем, вторая часть с модификацией. На новом багтрекере расписал это, списался с @Vincen, так как он занимается в основном сборкой WOG3 .Возможно будет полезное изменение, если я не ошибся с исправлением и это пропустится администрацией Проектов. Может знающие смогут дать совет как сделать правильней, у @Ezhuk узнать не получилось. Изменено 19 марта, 2018 пользователем grafon Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Vincen 3 772 Жалоба Опубликовано 19 марта, 2018 (изменено) @grafon Поправка, главный по сборке у нас @Kato. Я же согласился только глянуть. + на гитхабе вмт точно есть описание лицензии, из которой можно понять, какая форма распространения Изменено 19 марта, 2018 пользователем Vincen Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
[KND] grfn 1 840 Жалоба Опубликовано 19 марта, 2018 20 минут назад, Vincen сказал: @grafon Поправка, главный по сборке у нас @Kato. Я же согласился только глянуть. + на гитхабе вмт точно есть описание лицензии, из которой можно понять, какая форма распространения Автор там указан Zealot, изменения разрешены, но спросить всё-таки посчитал нужным. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты