|
|
Модератор форума: GUNNER161, Panikaha |
Форум РЕДАКТОР - ArmA 3 Скрипты Локальный eventhandler |
Локальный eventhandler |
› Пятница
› 24.10.2014
› 01:00
› Сообщение #
Имеется sqf скрипт. Есть эвентхендлер, выглядит вот так
_veh = _this select 0; _veh addeventhandler ["incomingmissile", {_this call (название функции)}]; Как сделать вызов функции при срабатывании эвентхендлера локальным при помощи setvariable и getvariable ? Тоесть, чтобы работало только на одном компе |
› Пятница
› 24.10.2014
› 02:11
› Сообщение #
а по каким условиям этот компьютер определить?
|
› Пятница
› 24.10.2014
› 10:23
› Сообщение #
Slon, скрипт вызывается из конфига определенного класса техники. Вот как выглядит скрипт и его вызов из аддона
class Extended_Init_EventHandlers { class O_Plane_CAS_02_F { O_Plane_CAS_02_F_clientInit = "_this execVM ""\planeaddon\alert.sqf"""; }; Скрипт: _this = _this select 0; _incomingMissile = _this addEventHandler ["incomingmissile", "_this call functionName_incomingMissile"]; functionName_incomingMissile = { private["_unit", "_ammo", "_whoFired"]; _unit = _this select 0; _ammo = _this select 1; _whoFired = _this select 2; _dirPlayer = getDir _unit; _dirEnemy = getDir _whoFired; _altPlayer = getPosAsl _unit select 2; _altEnemy = getPosAsl _whoFired select 2; if(_altPlayer - _altEnemy < 0)then{ if((_dirPlayer - _dirEnemy > -45 &&_dirPlayer - _dirEnemy < 45) || (_dirPlayer - _dirEnemy > 315 || _dirPlayer - _dirEnemy < -315))then{ playSound ["Missile6OClockH", true]; }; if((_dirPlayer - _dirEnemy > -315 &&_dirPlayer - _dirEnemy < -225) || (_dirPlayer - _dirEnemy > 45 &&_dirPlayer - _dirEnemy < 135))then{ playSound ["Missile3OClockH", true]; }; if((_dirPlayer - _dirEnemy > -225 &&_dirPlayer - _dirEnemy < -135) || (_dirPlayer - _dirEnemy > 135 &&_dirPlayer - _dirEnemy < 225))then{ playSound ["Missile12OClockH", true]; }; if((_dirPlayer - _dirEnemy > -135 &&_dirPlayer - _dirEnemy < -45) || (_dirPlayer - _dirEnemy > 225 &&_dirPlayer - _dirEnemy < 335))then{ playSound ["Missile9OClockH", true]; }; }else{ if(_altPlayer - _altEnemy > 0)then{ if((_dirPlayer - _dirEnemy > -45 &&_dirPlayer - _dirEnemy < 45) || (_dirPlayer - _dirEnemy > 315 || _dirPlayer - _dirEnemy < -315))then{ playSound ["Missile6OClockL", true]; }; if((_dirPlayer - _dirEnemy > -315 &&_dirPlayer - _dirEnemy < -225) || (_dirPlayer - _dirEnemy > 45 &&_dirPlayer - _dirEnemy < 135))then{ playSound ["Missile3OClockL", true]; }; if((_dirPlayer - _dirEnemy > -225 &&_dirPlayer - _dirEnemy < -135) || (_dirPlayer - _dirEnemy > 135 &&_dirPlayer - _dirEnemy < 225))then{ playSound ["Missile12OClockL", true]; }; if((_dirPlayer - _dirEnemy > -135 &&_dirPlayer - _dirEnemy < -45) || (_dirPlayer - _dirEnemy > 225 &&_dirPlayer - _dirEnemy < 335))then{ playSound ["Missile9OClockL", true]; }; }; }; }; _this removeAllEventHandlers "IncomingMissile"; Добавлено (24.10.2014, 10:23) |
› Пятница
› 24.10.2014
› 10:35
› Сообщение #
попробуй так
_unit = _this select 0; if !(local _unit) exitWith {}; ............ |
› Пятница
› 24.10.2014
› 10:45
› Сообщение #
Slon, спасибо, у меня также получилось вот так
if (player == driver _this) then {_incomingMissile = _this addEventHandler ["incomingmissile и так далее |
› Понедельник
› 03.11.2014
› 15:01
› Сообщение #
Всем привет!! Делаю мп миссию в принципе она готова даже. Но не могу разобраться с выдачей оружия синим и зеленым после смерти. В итоге они вынуждены безоружными, как то пробираться на свою захваченную красными базу. Трудно очень выходит. Ну к делу.
В ините каждого мп игрока у меня написано следующее: this addMPEventHandler ["MPRespawn",{_equip = this execVM "eqw.sqf";}]; но это не работает. Подскажите пожалуйста где ошибка. |
› Понедельник
› 03.11.2014
› 15:07
› Сообщение #
MstaSpb, простой вариан.
Триггер, повторяемый. тип-Логика игры условие alive Player активация equip = this execVM "eqw.sqf" как только Игрок Оживёт-сработает тригер |
› Понедельник
› 03.11.2014
› 15:54
› Сообщение #
Ой! Спасибо за столь оперативный ответ. А в мультиплеере со всеми игроками будет это работать?
Добавлено (03.11.2014, 15:54) |
› Понедельник
› 03.11.2014
› 16:05
› Сообщение #
MstaSpb, Может в файле что не так? он явно запускается , потому что убирает оружие.
|
› Понедельник
› 03.11.2014
› 16:15
› Сообщение #
Не совсем, юнит от которого играет плеер и плейебл игроки - "выживший". А у него по дефолту только форма и есть.
|
› Понедельник
› 03.11.2014
› 16:23
› Сообщение #
вощем. Проверяй файл. эта система работает безотказно издавна.
|
› Понедельник
› 03.11.2014
› 18:21
› Сообщение #
Спасибо за ответы и советы.
А евент хендлер не подойдёт для такого случая? Добавлено (03.11.2014, 18:21) |
| |||
| |||
Чат сайта |