_target setvelocity [sin(getdir _caller)*-20,cos(getdir _caller)*-20,3];
Кстати, после такого велосайта тело и так должно сдохнуть без прописывания дамажа
Отправлено 02 June 2015 - 00:43
_target setvelocity [sin(getdir _caller)*-20,cos(getdir _caller)*-20,3];
Кстати, после такого велосайта тело и так должно сдохнуть без прописывания дамажа
Отправлено 02 June 2015 - 04:35
Спасибо огромное!
Буду изучать!
Ну и с порядком у меня всегда беда(
_target setvelocity [sin(getdir _caller)*-20,cos(getdir _caller)*-20,3];
Кстати, после такого велосайта тело и так должно сдохнуть без прописывания дамажа
не, тело выживает, правда есть повреждения.
Я вот тоже думаю, либо аттач, либо велосити, но велосити как то более реалистичен
Сообщение отредактировал TankiSD: 02 June 2015 - 13:41
Отправлено 02 June 2015 - 18:21
Спасибо огромное!
Буду изучать!
Ну и с порядком у меня всегда беда(
_target setvelocity [sin(getdir _caller)*-20,cos(getdir _caller)*-20,3];
Кстати, после такого велосайта тело и так должно сдохнуть без прописывания дамажа
не, тело выживает, правда есть повреждения.
Я вот тоже думаю, либо аттач, либо велосити, но велосити как то более реалистичен
Сначала велосайт к спайдермену, после подлёта на некую дистанцию, атачь к спайдермену, после, опять же через экшен, или через некий таймер, хороший такой велосайт об стену от спайдермена).
Отправлено 03 June 2015 - 06:03
Ещё одна правка)
// Скрипт инициализации фишек, нужно вызвать при инициализации игрока, а также после респавна _distAction = 15; // Дистанция доступности экшена _spyderMan = "C_Man_1"; // Сюда нужно вписать класс нейм гражданского player addAction [ "Come to me my sweet sugar", { [_this select 0, _this select 1] spawn { // код исполняемый при астивации экшена _target = _this select 0; // тело на котором висит этот экшен _caller = _this select 1; // тело которое активировало этот экшен _target setdir getDir _caller; _target setvelocity [sin(getdir _caller)*-20,cos(getdir _caller)*-20,3]; sleep 1; addCamShake [8, 5, 8]; [[_target, "GetOutPara"], "switchMove"] call BIS_fnc_MP; _target setdamage 0; [[_caller, "AinvPknlMstpSnonWnonDnon_medicUp0"], "switchMove"] call BIS_fnc_MP; // к кому притянули }; }, "", 1, true, true, "", format["(_this distance _target <= %1) && (typeOf _this == '%2')", _distAction, _spyderMan] ];
просто есть вопрос, будет ли addaction виден союзным игрокам, помимо гражданского.
Отправлено 03 June 2015 - 19:29
Ещё одна правка)
// Скрипт инициализации фишек, нужно вызвать при инициализации игрока, а также после респавна _distAction = 15; // Дистанция доступности экшена _spyderMan = "C_Man_1"; // Сюда нужно вписать класс нейм гражданского player addAction [ "Come to me my sweet sugar", { [_this select 0, _this select 1] spawn { // код исполняемый при астивации экшена _target = _this select 0; // тело на котором висит этот экшен _caller = _this select 1; // тело которое активировало этот экшен _target setdir getDir _caller; _target setvelocity [sin(getdir _caller)*-20,cos(getdir _caller)*-20,3]; sleep 1; addCamShake [8, 5, 8]; [[_target, "GetOutPara"], "switchMove"] call BIS_fnc_MP; _target setdamage 0; [[_caller, "AinvPknlMstpSnonWnonDnon_medicUp0"], "switchMove"] call BIS_fnc_MP; // к кому притянули }; }, "", 1, true, true, "", format["(_this distance _target <= %1) && (typeOf _this == '%2')", _distAction, _spyderMan] ];
просто есть вопрос, будет ли addaction виден союзным игрокам, помимо гражданского.
Вот эта часть кода
format["(_this distance _target <= %1) && (typeOf _this == '%2')", _distAction, _spyderMan]
делает проверку, типа
Если дистанция доступности экшена _distAction подходящая, И, класс юнита которым управляет тот кто видит этот экшен равен _spyderMan, то экшен будет доступен для использования, то есть, при такой проверке условия доступности экшена ни кто кроме гражданина _spyderMan не сможет увидеть у себя этот экшен.
Мутно! Понимаю). Но уж попытайтесь это переварить), и попытайтесь переварить это
Сообщение отредактировал SteelRat: 03 June 2015 - 19:31
Отправлено 03 June 2015 - 19:54
SteelRat, но эффект команды локален? А это значит, что только там где его вызвали и будет доступен, или БИС'ы что то уже изменили?
Если исполняемая команда в вызываемом коде имеет локальный эффект то да, но сам экшен публичен и глобален.
Сам код, если вы вписали код в экшен, так же будет доступен всем.
ЗЫ
Кстати БИСы в экшены целые, не маленькие такие по весу функции загоняют)
Отправлено 03 June 2015 - 20:04
Вот и я хочу это понять, только что сам полез почитать)
Прикол в том, что мои знакомые частенько желали задействовать мой девелоперский волшебный экшен, которого согласно описанию на бике у них быть не должно)
Сообщение отредактировал SteelRat: 03 June 2015 - 20:01
Отправлено 03 June 2015 - 20:59
Так и есть, экшен локален, я про что то не то похоже, ну да ладно.
Собственно господину Танкисту, нужно всего лишь раздать нужные экшены оппонентам на стороне спайдермена, и оставить проверку только дистанции.
ЗЫ
Доделываю функционал аномалий до рабочего стандарта и каникулы от Армы на месяц, или два, уже совсем кукушку сносит).
Отправлено 03 June 2015 - 21:22
ЗЫ_2
Танкисту.
Я тут не много по развлекался с вашим велосайтом, и знаете, экшены тут не айс, в плане комфорта.
Я бы предложил вам такой вариант, клавишами выбирать тип эффекта, а само действие забиндить на левую или правую, по вкусу, кнопку мыши.
И производить поиск потенциального терпилы, не много по другому, в смысле не курсортаргетом, это уж точно.
Я не много разберусь со своим, и запилю шаблон-вариантик для примера.
Отправлено 15 June 2015 - 16:19
Тут делал скрипт ближней атаки, забинденный на ЛКМ.
И вот что получил.
if (side player == west) exitwith {}; if !(side player == civilian) exitwith {}; EH_MouseButtonDown = (findDisplay 46) displayAddEventHandler ["MouseButtonDown", " if (cursortarget isKindOf 'Man' and (cursortarget distance player < 15)) then {cursortarget setdir getDir player; cursortarget setvelocity [sin(getdir player)*-20,cos(getdir player)*-20,3]; }; "];
В МП такой вариант будет работать?
И никак не могу выставить задержку на нажатие клавиши мыши.
waituntil {time > 1}; EH_MouseButtonDown = (findDisplay 46) displayAddEventHandler ["MouseButtonDown"," if (time - lasttime < 1) exitWith {}; lasttime = time; player switchmove 'AwopPercMstpSgthWnonDnon_end'; if (isServer) then { _pul9= createVehicle ['B_127x99_Ball_Tracer_Yellow', getPos player, [], 0, 'none']; _pul9 setpos [getpos _pul9 select 0, getpos _pul9 select 1, (getpos _pul9 select 2) + 1.9]; _pul9 setvelocity [sin(getdir player)*500,cos(getdir player)*500, -250]; }; "];
в чём ошибка?
Сообщение отредактировал TankiSD: 15 June 2015 - 17:06
Отправлено 15 June 2015 - 19:32
Если тайминги не велики, около 1 сек, то лучше использовать
Отправлено 15 June 2015 - 19:43
В МП такой вариант будет работать?
Если это игрок которого надо отвелосайтить, то и исполнить эту команду надо на компе того игрока.
По моему так, если мне память не изменяет.
Примерное направление
// для спайдермена _vel = [0, 20, 0]; [[cursortarget, _vel], "ptm_fnc_velociteUnitMP"] spawn BIS_fnc_MP; // Определить функцию ptm_fnc_velociteUnitMP на всех клиентах ptm_fnc_velociteUnitMP = { _unit = _this select 0; if (local _unit) then { _vel = _this select 1; // ваш дальнейший код применительно к терпиле }; };
Сообщение отредактировал SteelRat: 15 June 2015 - 19:59
Отправлено 15 June 2015 - 19:59
ЗЫ
Вам вера не позволяет поднять на одном компе выделенный сервер и клиента, и по тестить?
Отправлено 15 June 2015 - 20:07
Да я не знаю как)
Отправлено 15 June 2015 - 23:07
Да я не знаю как)
http://arma3.ru/foru...aiusch/?p=24300
Сообщение отредактировал SteelRat: 15 June 2015 - 23:08
Отправлено 20 June 2015 - 14:41
Как определить всех игроков онлайн?
нужно что-то вроде foreach allunits.