freewood 674 Report post Posted October 8, 2014 @Barsik, откуда и куда исчез? Share this post Link to post Share on other sites
Zealot 94 Report post Posted October 8, 2014 (edited) Юнитпроцессор бесследно исчез, как теперь делать кастомное снаряжение игроков ? :) Можно пока пользоваться бисовским арсеналом, последовательность действий: 1) Редактируем инвентарь юнита, при этом не забываем дать ему рацию(должен быть класс ItemRadio, исправить после редактирования, если это не так), карту, компас, часы, если нужно 2) Сгружаем все в буфер и сохраняем в файл, например tpl\fighter.sqf 3) Редактируем файл а) Заменяем все this в коде на _this б) Добавляем в начало файла строчку if (not local _this) exitwith {}; в) Удаляем строчки изменения лица и голоса, которые добавляет Арсенал 4) Юниту, который будет с этим снаряжением в поле инициализации в редакторе пишем: this call compile preprocessfilelinenumbers "tpl\fighter.sqf"; Edited October 8, 2014 by Zealot Share this post Link to post Share on other sites
freewood 674 Report post Posted October 8, 2014 @Zealot, я правильно понимаю, что таким образом можно одевать абсолютно любую форму? Т.е. допустим ксатовца в натовскую форму нарядить. Share this post Link to post Share on other sites
Zealot 94 Report post Posted October 8, 2014 Zealot, я правильно понимаю, что таким образом можно одевать абсолютно любую форму? Т.е. допустим ксатовца в натовскую форму нарядить. Надо попробовать, вроде можно. Share this post Link to post Share on other sites
swatSTEAM 745 Report post Posted October 8, 2014 @freewood, forceAddUniform уже давно ввели. Share this post Link to post Share on other sites
Spandaxe 1,133 Report post Posted October 9, 2014 А вот менять вооружение техники, увеличить количество боеприпасов и дымов в ней, все еще не может. Поэтому вопрос все еще актуален. Прямо в редакторе у юнита прописывай, что нужно поменять. Я с а3 еще не работал, конечно, но не думаю, что так уж сильно от а2 отличается. Не нужны для этого ни юнитпроцессоры, ни платформы, ни что либо еще. Бисы такой арсенал картоделам дали, пили - не хочу. Share this post Link to post Share on other sites
Nkey 321 Report post Posted October 9, 2014 Прямо в редакторе у юнита прописывай,Нельзя так! :) Этот код будет выполняться при каждом перезаходе человека в игру, что приведете к куче патронов, тормозам и глюкам. 1 DmitRich reacted to this Share this post Link to post Share on other sites
Spandaxe 1,133 Report post Posted October 9, 2014 @Nkey, Странно, в ините юнита прописывал технике дополнительные дымы, все игралось на сервере, брат жив, зависимость есть. На а3 как-то по-другому все? Share this post Link to post Share on other sites
Kurbat 199 Report post Posted October 9, 2014 Нельзя так! Можно. Только осторожно. 1 ToxaSM reacted to this Share this post Link to post Share on other sites
swatSTEAM 745 Report post Posted October 9, 2014 Этот код будет выполняться при каждом перезаходе человека в игру Нет. Инит объекта выполняется при его создании либо при обновлении инита. В A3 второе невозможно. Share this post Link to post Share on other sites
Nkey 321 Report post Posted October 9, 2014 @swatSTEAM, странно. Много раз сталкивались с такой проблемой - при перезаходе кого-то из игроков, у него начинает выполняться инит и добавляет всем остальным игрокам все еще раз. Share this post Link to post Share on other sites
swatSTEAM 745 Report post Posted October 10, 2014 @Nkey, ну попробуй в инит юнита засунуть какое-нибудь глобальное бисовское говно (типа bis fnc mp) а в него хинт. Если при перезаходе сработает, то я сильно ошибаюсь. Share this post Link to post Share on other sites
pride 89 Report post Posted October 10, 2014 @swatSTEAM, было было, у нас на последних играх, после перезаходов у некоторых игроков по 100+ ракет к рпг было в инвентаре. Причем срабатывает, не побоюсь этого слова, совершенно рандомно. Share this post Link to post Share on other sites
IHUNTERI 22 Report post Posted October 10, 2014 Вот что на вики написано (подразумевается arma2), не знаю менялось ли что в arma3 Order of InitializationScripts Server & Players (NOT JIP) While moving to Briefing Unit Init EH runs Unit Init line from editor runs After all units are initialized, init.sqf runs After Briefing if onPlayerConnected was setup in e.g. init.sqf, it will now process all the players connected in order of connectedonPlayerConnected will process new players after they are connected to their player body. So JIP player connects, world initializes, he gets control of his character, now the onPlayerConnected fires on the server. JIP PlayersSame as above, but there's no Briefing this time. init.sqf seems to run after the player gets control of his character Да касаемо скрипта выше, почему бы сделать не так? if (local this) then {this call compile preprocessfilelinenumbers "tpl\fighter.sqf";}; Самому проверить что там с инициализацией все руки не доходят Share this post Link to post Share on other sites
IHUNTERI 22 Report post Posted October 10, 2014 (edited) Вот результаты теста Выделенный сервер 2 игрока Поставил три техники: Вертолет ~300 метров от игроков Пантера ~2 км от игроков Хантер ~3 км от игроков В инициализации техники прописал вертолету var = [] spawn {sleep 5; hint "test1";}; пантере var = [] spawn {sleep 10; hint "test2";}; хантеру var = [] spawn {sleep 15; hint "test3";}; Стартуем миссию: я и второй игрок видим все три сообщения затем второй игрок перезаходит и он видит только одно долго висящее сообщение "test1", остальные сообщения не появляются Edited October 10, 2014 by IHUNTERI Share this post Link to post Share on other sites
swatSTEAM 745 Report post Posted October 10, 2014 (edited) @IHUNTERI, Да ладно? Это вообще жесть тогда. Раздавайте снаряжение только с серва, в момент, когда он овнер для всех играбельных юнитов. Сервак не перезаходит. :) Хотя, убери-ка из всех инитов "var =" и протести снова. Edited October 10, 2014 by swatSTEAM Share this post Link to post Share on other sites
IHUNTERI 22 Report post Posted October 11, 2014 (edited) Уверен ничего не поменяется, переменная - это всего лишь "ссылка/ярлык". Дело в том что большинсто команд, меняющих снаряжение юниту игрока, работать будут только на машине игрока. Но на кооп миссиях я это так решал _start_check = (player getvariable "Start_completed"); if (isnil "_start_check") then { // делаем "все что нужно" с юнитом игрока }; player setVariable ["Start_completed", true, true]; // больше "все что нужно" с юнитом игрока не случится, сколько не перезаходи При этом не занятые игроками юниты нужно обрабатывать на сервере. Раздавать снаряжение перед тем как владельцем стал игрок, проблематично будет, мне кажется. Edited October 11, 2014 by IHUNTERI 2 Dock and swatSTEAM reacted to this Share this post Link to post Share on other sites
ToxaSM 3,122 Report post Posted October 11, 2014 Уверен ничего не поменяется, переменная - это всего лишь "ссылка/ярлык". Дело в том что большинсто команд, меняющих снаряжение юниту игрока, работать будут только на машине игрока. Но на кооп миссиях я это так решал _start_check = (player getvariable "Start_completed"); if (isnil "_start_check") then { // делаем "все что нужно" с юнитом игрока }; player setVariable ["Start_completed", true, true]; // больше "все что нужно" с юнитом игрока не случится, сколько не перезаходи При этом не занятые игроками юниты нужно обрабатывать на сервере.Раздавать снаряжение перед тем как владельцем стал игрок, проблематично будет, мне кажется. Мы тоже были уверены, что при параметрах -mod и -beta ничего не изменится, но это же ARMA, при параметре mod, ARMA 2 не подключается, а при beta наоборот, так что полностью быть в чем-то уверенным нельзя Share this post Link to post Share on other sites
swatSTEAM 745 Report post Posted October 11, 2014 @IHUNTERI, На самом деле это хороший способ. У меня так в аддоне маркеров карты заменяются на уникальные. Ну, принцип тот же, основанный на неймспейсе. Share this post Link to post Share on other sites
IHUNTERI 22 Report post Posted October 11, 2014 (edited) Все еще интересней5 машин1 метров 200 от игроков2 1км3 2 кми так далеепредыдущий код изменил на call {[] spawn {sleep 10; hint "test1";};}; При старте все 5 сообщений один за другимПри перезаходе у второго игрока висит хинт сразу без задержки "test2"удаляю вторую машину, перезаход, висит "test3"удаляю третью, висит "test4"...удаляю пятую, висит "test1" :rolleyes:testMPinit.VR.pboПочему так? Есть мысль, что в missions.sqm class Vehicles { items=5; class Item0 { position[]={4013.7595,5,4347.5742}; id=2; side="EMPTY"; vehicle="B_MRAP_01_F"; skill=0.60000002; text="car2"; init="call {[] spawn {sleep 18; hint ""test2"";};};"; }; class Item1 { position[]={4009.8037,5,5344.4429}; id=3; side="EMPTY"; vehicle="B_MRAP_01_F"; skill=0.60000002; text="car3"; init="call {[] spawn {sleep 20; hint ""test3"";};};"; }; class Item2 { position[]={4007.8823,5,6355.3481}; id=4; side="EMPTY"; vehicle="B_MRAP_01_F"; skill=0.60000002; text="car4"; init="call {[] spawn {sleep 25; hint ""test4"";};};"; }; class Item3 { position[]={4016.853,5,7347.2314}; id=5; side="EMPTY"; vehicle="B_MRAP_01_F"; skill=0.60000002; text="car5"; init="call {[] spawn {sleep 30; hint ""test5"";};};"; }; class Item4 { position[]={4008.6458,5,3526.2207}; id=6; side="EMPTY"; vehicle="B_MRAP_01_F"; skill=0.60000002; text="car1"; init="call {[] spawn {sleep 14; hint ""test1"";};};"; }; }; }; Но почему не работает задержка непонятно. Edited October 11, 2014 by IHUNTERI Share this post Link to post Share on other sites
swatSTEAM 745 Report post Posted October 11, 2014 Но почему не работает задержка непонятно. Курбат с этим сталкивался как-то давно, уже не помню разобрались или нет. uiSleep пробовал? Расстояние, кстати, здесь роли не играет. Share this post Link to post Share on other sites
IHUNTERI 22 Report post Posted October 11, 2014 Еще раз попробовал выделенный сервер с persistent=1 5 машин в инициализацию написал call {[] spawn {sleep 4; diag_log "car1";};}; в rpt файле отображаются все 5 сообщений sleep увеличивается с шагом +1 При старте все ок "car1" "car2" "car3" "car4" "car5" При перезаходе не ок - sleep не работает "car2" "car3" "car4" "car5" "car1" uisleep работает Share this post Link to post Share on other sites
swatSTEAM 745 Report post Posted October 11, 2014 @IHUNTERI, Ну, тут скорее всего в какой-то момент игра считает, что прошло бесконечно много игрового времени и пропускает любой слип. uiSleep же зависит от системного времени. Share this post Link to post Share on other sites
IHUNTERI 22 Report post Posted October 11, 2014 Вообщем для тех кто не понял, не знаешь - не суй свой код куда попало (во всякие инциализации). Share this post Link to post Share on other sites
Jason 259 Report post Posted October 18, 2014 Ошибка возникающая при выгрыше по потерям или по времени: Error in expression <Win']; _isPlayerWin = playerSide in ( [_winner] call bis_fnc_friendlysides ); > Error position: <_winner] call bis_fnc_friendlysides ); > Error Неопределенная переменная в выражении: _winner File WMT_Main\functions\fn_EndMission.sqf, line 11 Error in expression < [_enemy,format[localize "STR_WMT_HLSWinLo> Error position: <_enemy,format[localize "STR_WMT_HLSWinLo> Error Неопределенная переменная в выражении: _enemy Share this post Link to post Share on other sites