Модератор форума: Slon |
Форум РЕДАКТОР - ArmA 2 Скрипты "Respawn" и Скрипт генерирущий ботов (Создание ботов солдат на ходу) |
"Respawn" и Скрипт генерирущий ботов |
› Суббота
› 20.11.2010
› 22:42
› Сообщение #
для начала определится что тебе нужно, если просто горелую технику возврашать на базу
то можно обойтись мизерным скриптом пример Code if ! isServer exitWith {}; Veh_all = vehicles; Veh_dat = []; Veh_sys = []; { Veh_dat set [count Veh_dat, [typeOf _x, getPos _x, getDir _x]]; Veh_sys set [count Veh_sys, 0]; } forEach Veh_all; _n = (count Veh_all) -1; WaitUntil { for "_a" from 0 to _n do { sleep 1; if ((Veh_sys select _a) == 0) then { if !(alive (Veh_all select _a)) then { Veh_sys set [_m, 1]; [_x, Veh_all find _x] Spawn { _ob = _this select 0; _m = _this select 1; sleep 60; deleteVehicle _ob; _ms = Veh_dat select _m; _ob = (_ms select 0) createVehicle (_ms select 1); _ob setDir (_ms select 2); _ob setPos (_ms select 1); Veh_all set [_m, _ob]; Veh_sys set [_m, 0]; }; }; }; }; возможно другие варианты респа, но всё следует организовать в пределах одного файла |
› Воскресенье
› 21.11.2010
› 17:08
› Сообщение #
Quote (Серый25) ну вписал в Дескрипшен хорошая шутка Прикрепления:
Resp_teh.utes.rar
(1.2 Kb)
|
› Среда
› 12.01.2011
› 18:03
› Сообщение #
У меня тоже вышло, все отлично, только вот проблема (
Боты которым я прописал оружие респятся с другим (стандартным), а скрипт работает только у меня.. И можно как-то заменить пропись оружия в твоем скрипте на какую-то команду типа "same weapon" или я не знаю как... у меня в команде у людей 3и типа оружия прописанные мною. Понимаешь о чем я Слон?
Legio Patria Nostra ©
|
› Среда
› 12.01.2011
› 18:04
› Сообщение #
ну стоит у меня на базе техника в разных местах. допустим взял я какието несколько едениц и жахнули у меня их в бою. вот мне надо штоб через какоето время , не вожно через сколько но она возродилась на том же месте где стояли на базе
|
› Среда
› 12.01.2011
› 18:04
› Сообщение #
А стандартный респ тебя неустроит ?
ну там - маркер, тип , время. я им непользуюсь, он кидает технику куда непопадя, но работает |
› Среда
› 12.01.2011
› 18:04
› Сообщение #
Тогда респ скриптом. Возращает битую технику па место и подтемже углом как было, через 2 минуты.
Сначала собирается информация о технике. Гденаходится и как стоит, List_All = nearestObjects [(getMarkerPos "Base"),["LandVehicle","Air"],1000]; А потом непрерывная проверка , если битый то удаляется и создаётся новая While {true} do { Прикрепления:
Resp.sqf
(0.7 Kb)
Сообщение отредактировал Slon - Воскресенье, 28.06.2009, 00:49
|
› Среда
› 12.01.2011
› 18:04
› Сообщение #
Рассказка №101
файл запускается строкой [имяТехники] exec "имяФайла.sqs" _vehicle = _this select 0 - запоминаем объект |
› Среда
› 12.01.2011
› 18:04
› Сообщение #
Да, а вот ещё вопросец. Как в Арме2 сделать Revive??? Ну, чтобы не убивало никогда насмерть, чтобы товарищи, если кто жив всегда поднять могли. На мой взгляд самая реалистичная система возрождения и возможности вернуться в игру!
|
› Среда
› 12.01.2011
› 18:04
› Сообщение #
С этим с Арма проблема. Можно сделать бессмертие, но приэтом отключается любая возможность учитывать попадания. Остаётся очень быстрый респ на месте с включением анимации при которой невозможно двигаться,
при этом какраз можно использовать бессмертие (чтоб не хлопнули лежачего) дожитаемся когда ктонибуть подойдёт и реанимирует. |
› Среда
› 12.01.2011
› 18:05
› Сообщение #
Да, на словах так просто... Я, в принципе, представляю приблизительно как это сделать, но сделать сам вряд ли смогу. Примерчик не кинешь? Я думаю на данный момент такая штука будет весьма полезна в кооп. миссиях, потому как модульная система симуляции ПМП в текущей версии игры просто один жуткий баг. Я уже давно хочу научиться делать Revive. Как-то в какой-то миссии ещё в АрмА1 сталкивался с ним, очень здорово было сделано, но тогда ещё я с редактором вообще не работал.
|
› Среда
› 12.01.2011
› 18:05
› Сообщение #
да вобщем и на деле нетак сложно.
пододи к игроку засветит надпись "Sanitar", кликнеш оживёт вот пример, название анимации поменяеш сам. Прикрепления:
Revive.utes.rar
(1.6 Kb)
|
› Среда
› 12.01.2011
› 18:05
› Сообщение #
Несрабатывает тут использованая анимация, мне просто лень искать чтото подходящее, вот и вставил что попало.
пркоментирую скрипт, может понятней станет файл Fu.sqf _eh = Player addEventHandler ["killed",{_this Spawn Kil_Pl}]; - обработчик события (вызов функции) Kil_Pl = { - - - - - - - - сама функция sleep 5.5; - - респ 5 сек, надо дождаться появления нового бота At_0 = Player addAction ["Sanitar", "Med.sqf",0,0, false, true,"",""]; - вызов скрипта оживляющего игрока по клику мыши Player setUnitPos "DOWN"; - -поза лёжа player allowDamage false; - - бессмертие Player playMove "ainjpfalmstpsnonwrfldnon_carried_down"; - анимация типа труп deleteVehicle (_this select 0); - удалить труп что рядом валяется }; файл Med.sqf if ((_this select 1) == Player) exitWith {}; - - это чтобы сам себя оживить несмог Player playMove ""; - поидее отключает анимацию player allowDamage true; - снимает бессмертие player removeAction At_0; - удаляет акцию Вощем это может и неработать, это только пример. Причин несколько Сама идея, дожидатся когда тебя ктото оживит мне ненравится, потому особо и нековырялся. |
› Среда
› 12.01.2011
› 18:05
› Сообщение #
Slon, сразу к тебе вопрос, как к повелителю скриптов Я не могу заставить бесконечно респиться технику с экипажами. Проблема в следующем: есть скрипт по которому респится техника и экипаж по числу свободных мест в технике. И есть скрипт-обработчик следящий за состоянием техники (подбита, уничтожена).
Все работает, но через некоторое время скрипт-обработчик работать перестает.. и либо уничтоженная техника не удаляется, либо не респится. Я использую в скрипте-обработчике команду deleteVehicle для удаления уничтоженной техники и экипажей этой техники. Подозреваю, что дело в ней.. странным образом при ОДНОВРЕМЕННОМ уничтожении сразу нескольких "экземпляров" техники скртипт-обработчик начинает зваисать и техника либо экипаж не удалаяются и даже не убиваются ({_x setDammage 1}forEach _crew).. может быть дело в количестве запускаемых одновременно скриптов? Могут они "пересекаться"? |
› Среда
› 12.01.2011
› 18:05
› Сообщение #
скрипты пересекаются Глобальными переменными.
а зачем для респа техники много файлов запускать ? хватит и одного не видя что ты написал немогу сказать что неработает |
› Среда
› 12.01.2011
› 18:05
› Сообщение #
Quote (Slon) а зачем для респа техники много файлов запускать ? хватит и одного У меня один скрипт-обработчик, но запускается он несколько раз, для каждой машины отдельно Я пробовал несколько вариантов. Но все зависают, когда уничтожается сразу несколько единиц техники.. при чем один раз они спанятся, а взорвавшись во второй раз - уже даже и не удаляются.
Quote Все работает, но через некоторое время скрипт-обработчик работать перестает.. и либо уничтоженная техника не удаляется, либо не респится. Я использую в скрипте-обработчике команду deleteVehicle для удаления уничтоженной техники и экипажей этой техники. Подозреваю, что дело в ней.. странным образом при ОДНОВРЕМЕННОМ уничтожении сразу нескольких "экземпляров" техники скртипт-обработчик начинает зваисать и техника либо экипаж не удалаяются и даже не убиваются ({_x setDammage 1}forEach _crew).. Как я и думал. Вся проблема в аддоне WarFX. Из-за продолжающих работать скриптов этого аддона не срабатывает или работает некорректно команда deleteVehicle. Сообщение отредактировал DAP5000 - Среда, 11.08.2010, 02:53
|
| |||
Чат сайта |