[KND] grfn 1,840 Report post Posted March 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 или проверка снаряги поможет? Share this post Link to post Share on other sites
Vincen 3,772 Report post Posted March 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 reacted to this Share this post Link to post Share on other sites
[KND] Liquid 1,088 Report post Posted March 3, 2018 (edited) 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. Edited March 3, 2018 by Liquid Share this post Link to post Share on other sites
Sandy 533 Report post Posted March 3, 2018 Немного не в тему, но спрошу: а в чем сакральный смысл создавать переменные _unit, _container, _item, а потом их не использовать? Share this post Link to post Share on other sites
[FRWL] Lex 431 Report post Posted March 3, 2018 13 часов назад, grafon сказал: Не работает на гранаты. Посмотрел что гранаты действительно с CfgWeapons, вроде и тип у них Throw, но юнит всё равно может взять гранату. Как быть и что делать? :) Если я не ошибаюсь, у игрока уже есть такое оружие как "Throw", а гранаты в инвентаре являются магазинами. Тогда такое условие будет работать: (_this select 2) isKindOf ["CA_Magazine", configFile >> "CfgMagazines"] Но есть минус - будет срабатывать на все магазины. Share this post Link to post Share on other sites
[KND] grfn 1,840 Report post Posted March 19, 2018 (edited) Так как сейчас при наличии модуля Time на миссиях, использование которого обязательно, существует проблема, что нельзя поставить юнита в статичный самолет C-130, чтобы в дальнейшем осуществить прыжок с парашютом, так как юнит будет перенесен на землю под самолет. Происходит это потому что в модуле Time есть параметр Size of start zone, который создает зону размером N метров, по дефолту 100м. Покопавшись в модуле, нашел часть скрипта, которая создает и проверяет эту самую зону и возвращает игрока, который пытается эту зону покинуть. Ролик : первая часть с текущим модулем, вторая часть с модификацией. На новом багтрекере расписал это, списался с @Vincen, так как он занимается в основном сборкой WOG3 .Возможно будет полезное изменение, если я не ошибся с исправлением и это пропустится администрацией Проектов. Может знающие смогут дать совет как сделать правильней, у @Ezhuk узнать не получилось. Edited March 19, 2018 by grafon Share this post Link to post Share on other sites
Vincen 3,772 Report post Posted March 19, 2018 (edited) @grafon Поправка, главный по сборке у нас @Kato. Я же согласился только глянуть. + на гитхабе вмт точно есть описание лицензии, из которой можно понять, какая форма распространения Edited March 19, 2018 by Vincen Share this post Link to post Share on other sites
[KND] grfn 1,840 Report post Posted March 19, 2018 20 минут назад, Vincen сказал: @grafon Поправка, главный по сборке у нас @Kato. Я же согласился только глянуть. + на гитхабе вмт точно есть описание лицензии, из которой можно понять, какая форма распространения Автор там указан Zealot, изменения разрешены, но спросить всё-таки посчитал нужным. Share this post Link to post Share on other sites