объекты установленные ранее до рестарта опять откроются
Это точно? Проверял?
Проверял, появляются лестницы после рестрата, нужно как раз убрать
Цитата
Искать еще раз не надо, они уже есть.
Так ведь это будет отдельный скрипт исполняемый сервером, откуда он знать может?
А еще я вспомнил что есть скрипт, добавляющий броню на машины (бронированные стекла, щиты на колеса и плуг) основываясь на технике из данного мода, так вот я открыл модели, узрел такую картину, эта самая броня уже есть на технике, сейчас попытался заспавнить ее и проиграть на ней анимацию и появилась броня, так вот к чему я говорю, в данном скрипте бронированные элементы остаются после рестарта, понять бы как это дело работает, точнее запоминает определенную анимацию, я же думал что это свап техники, т.е. есть ваз 2107 без брони, после установке он пропадает появляется класс техники с броней
Добавлено (30.08.2015, 20:42) --------------------------------------------- Вы бы не могли пожалуйста помочь добавить условие, я сделал скрипты открытия и закрытия 3-го этажа гнезда условие либо _ownerID либо _ownerID2 Вот меню действий:
if ( cursorTarget isKindOf "elektro3_hero" && (player distance cursorTarget) < 30 ) then { if (s_player_open_helipad_h < 0) then { s_player_open_helipad_h = player addAction ["Open Helipad In Hero Nest", "scripts\open_helipad_h.sqf",cursorTarget, 0, false, true, "",""]; }; } else { player removeAction s_player_open_helipad_h; s_player_open_helipad_h = -1; };
if ( cursorTarget isKindOf "elektro3" && (player distance cursorTarget) < 30 ) then { if (s_player_open_helipad_b < 0) then { s_player_open_helipad_b = player addAction ["Open Helipad In Bandit Nest", "scripts\open_helipad_b.sqf",cursorTarget, 0, false, true, "",""]; }; } else { player removeAction s_player_open_helipad_b; s_player_open_helipad_b = -1; };
if ( cursorTarget isKindOf "elektro3_hero" && (player distance cursorTarget) < 30 ) then { if (s_player_close_helipad_h < 0) then { s_player_close_helipad_h = player addAction ["Close Helipad In Hero Nest", "scripts\close_helipad_h.sqf",cursorTarget, 0, false, true, "",""]; }; } else { player removeAction s_player_close_helipad_h; s_player_close_helipad_h = -1; };
if ( cursorTarget isKindOf "elektro3" && (player distance cursorTarget) < 30 ) then { if (s_player_close_helipad_b < 0) then { s_player_close_helipad_b = player addAction ["Close Helipad In Bandit Nest", "scripts\close_helipad_b.sqf",cursorTarget, 0, false, true, "",""]; }; } else { player removeAction s_player_close_helipad_b; s_player_close_helipad_b = -1; };
Добавлено (30.08.2015, 20:43) --------------------------------------------- Между прочим, почему-то тут дистанция работает отлично, в условиях дистанции до коровы не работает
А еще я вспомнил что есть скрипт, добавляющий броню на машины (бронированные стекла, щиты на колеса и плуг) основываясь на технике из данного мода, так вот я открыл модели, узрел такую картину, эта самая броня уже есть на технике, сейчас попытался заспавнить ее и проиграть на ней анимацию и появилась броня, так вот к чему я говорю, в данном скрипте бронированные элементы остаются после рестарта
Я пытался как-то установить данный скрипт по мануалы, да только меню действий не появлялось, спрашивал сказали мол гайд для прошлой версии мода (origins) мол там что-то изменилось и по этому не работал, хотя я глянул названия анимаций те же
Добавлено (30.08.2015, 20:56) --------------------------------------------- А вот так вот получится ли удалить анимации?
Так ведь это будет отдельный скрипт исполняемый сервером, откуда он знать может?
Значит ему надо передать данные, либо пусть считает сам.
Цитатаhekut146 ()
условие либо _ownerID либо _ownerID2
что это и куда добавить? И здесь if ( cursorTarget isKindOf "elektro3_hero" and (player distance cursorTarget) < 30 ) имеет смысл вынести в общее условие, оно же одинаково для всех последующих. То есть
if ( cursorTarget isKindOf "elektro3_hero" and (player distance cursorTarget) < 30 ) then { if (...) then {...} if (...) then {...} }
Цитатаhekut146 ()
почему-то тут дистанция работает отлично, в условиях дистанции до коровы
потому что Cow01 - это не подтип, а название класса. Используй typeOf, я уже писал.
Цитатаhekut146 ()
А вот так вот получится ли удалить анимации?
Насчет удалить не знаю, но заставить выполнить - да. Не надо лишнюю переменную вводить, достаточно if (typeOF _object in ["elektro_hero","elektro","elektro3_hero","elektro3"]
Сообщение отредактировал andrucio - Воскресенье, 30.08.2015, 21:58
Насчет удалить не знаю, но заставить выполнить - да. Не надо лишнюю переменную вводить, достаточно if (typeOF _object in ["elektro_hero","elektro","elektro3_hero","elektro3"]
Имеется ввиду выполнить, при выполнении они удаляются
Что оно возвращает? if работает только с логикой. На все 4 можно разом, то есть в общем условии
Цитатаandrucio ()
И здесь if ( cursorTarget isKindOf "elektro3_hero" and (player distance cursorTarget) < 30 ) имеет смысл вынести в общее условие, оно же одинаково для всех последующих. То есть if ( cursorTarget isKindOf "elektro3_hero" and (player distance cursorTarget) < 30 )then { if (...) then {...}; if (...) then {...} } ;
Добавлено (30.08.2015, 22:11) --------------------------------------------- Вообще есть скрипт открытия закрытия который выдается только овнеру (создателю постройки)
Добавлено (30.08.2015, 22:13) --------------------------------------------- А вот если брать полный кусок кода данных объектов открытия закрытия и стройки в меню действий
Добавлено (30.08.2015, 22:13) --------------------------------------------- if(DZE_Origins_Building_System) then { if(isnil "s_player_build_origins_H1") then {s_player_build_origins_H1 = -1;}; if(isnil "s_player_build_origins_B1") then {s_player_build_origins_B1 = -1;}; if(isnil "s_player_build_origins_H2") then {s_player_build_origins_H2 = -1;}; if(isnil "s_player_build_origins_B2") then {s_player_build_origins_B2 = -1;}; if(isnil "s_player_build_origins_H3") then {s_player_build_origins_H3 = -1;}; if(isnil "s_player_build_origins_B3") then {s_player_build_origins_B3 = -1;}; if(isnil "s_player_build_origins_SG") then {s_player_build_origins_SG = -1;}; if(isnil "s_player_build_origins_LG") then {s_player_build_origins_LG = -1;}; if(isnil "s_player_build_origins_KING") then {s_player_build_origins_KING = -1;}; if(isnil "s_player_build_origins_SH") then {s_player_build_origins_SH = -1;};
if(isnil "s_player_build_origins_NESTLVL1H") then {s_player_build_origins_NESTLVL1H = -1;}; if(isnil "s_player_build_origins_NESTLVL2H") then {s_player_build_origins_NESTLVL2H = -1;}; if(isnil "s_player_build_origins_NESTLVL3H") then {s_player_build_origins_NESTLVL3H = -1;}; if(isnil "s_player_build_origins_NESTLVL1B") then {s_player_build_origins_NESTLVL1B = -1;}; if(isnil "s_player_build_origins_NESTLVL2B") then {s_player_build_origins_NESTLVL2B = -1;}; if(isnil "s_player_build_origins_NESTLVL3B") then {s_player_build_origins_NESTLVL3B = -1;};
if(isnil "s_player_build_origins_H4") then {s_player_build_origins_H4 = -1;}; if(isnil "s_player_build_origins_B4") then {s_player_build_origins_B4 = -1;};
if(isnil "s_player_origins_unlock") then {s_player_origins_unlock = -1;}; if(isnil "s_player_origins_stronghold_doors") then {s_player_origins_stronghold_doors = -1;};
_cursorTarget = cursorTarget; if (!isNull _cursorTarget) then { _typeOfCursorTarget = (typeOf _cursorTarget); if(_typeOfCursorTarget == DZE_Origins_Container ) then { if((player distance _cursorTarget) < DZE_Origins_Build_Distance) then {
Вот кусок кода if(_playerUID != _ownerUID && !(_typeOfCursorTarget in DZE_Origins_Stronghold)) exitWith { cutText [format["This house was built by %1", _ownerName], "PLAIN DOWN",5]; sleep 5; }; как я понял если юид игрока не юид создателя постройки если смотреть не на крепость то вывести дом построен никнейм овнера
if ( cursorTarget isKindOf "elektro3_hero" && (player distance cursorTarget) < 30 && _ownerUID ) then { if (s_player_open_helipad_h < 0) then { s_player_open_helipad_h = player addAction ["Open Helipad In Hero Nest", "scripts\open_helipad_h.sqf",cursorTarget, 0, false, true, "",""]; }; } else { player removeAction s_player_open_helipad_h; s_player_open_helipad_h = -1; }; т.е. вот так нужно сделать? еще вопрос, глянул раздел скриптов, нашел скрипт покраски, пытаюсь покрасить близлежащий объект но не выходит, пытаюсь так: _setObjectTexture = nearestObjects [vehicle player, ["MH6J_DZ"], 100];
if ( count _setObjectTexture < 2 ) then {
this setObjectTexture [1, "\origins_pack\vehicles\skins\AH6X_Ori\AH6X_Ori_special1_co.paa"];
};
Добавлено (30.08.2015, 23:10) --------------------------------------------- попытался if (isNil _ownerUID) then {hint str _ownerUID} else {hint "not exist"} так же 0 реакции
this setObjectTexture [1, "\origins_pack\vehicles\skins\AH6X_Ori\AH6X_Ori_special1_co.paa"];
}; Как я понимаю скрипт не понимает чему текстуру менять, это нужно было бы в ините вписывать если был бы редактор, правельно понимаю?
Добавлено (31.08.2015, 12:19) --------------------------------------------- Понял куда примерно нужно вставить скрипт крыжки вот только в логах проблема, пишит когда смотрю на нее:
Error in expression <stance _cursorTarget) < 30 ) then { if (s_player_open_helipad_b < 0) then { s_pl> Error position: <s_player_open_helipad_b < 0) then { s_pl> Error Undefined variable in expression: s_player_open_helipad_b File mpmissions\__CUR_MP.Chernarus\custom\fixes\fn_selfActions.sqf, line 479 Error in expression <stance _cursorTarget) < 30 ) then { if (s_player_close_helipad_b < 0) then { s_p> Error position: <s_player_close_helipad_b < 0) then { s_p> Error Undefined variable in expression: s_player_close_helipad_b File mpmissions\__CUR_MP.Chernarus\custom\fixes\fn_selfActions.sqf, line 497
Код привел к такому виду:
if(_typeOfCursorTarget == "elektro3_hero" && (player distance _cursorTarget) < 30 ) then { if (s_player_open_helipad_h < 0) then { s_player_open_helipad_h = player addAction ["Open Helipad In Hero Nest", "scripts\open_helipad_h.sqf",_cursorTarget, 0, false, true, "",""]; }; } else { player removeAction s_player_open_helipad_h; s_player_open_helipad_h = -1; };
if(_typeOfCursorTarget == "elektro3" && (player distance _cursorTarget) < 30 ) then { if (s_player_open_helipad_b < 0) then { s_player_open_helipad_b = player addAction ["Open Helipad In Bandit Nest", "scripts\open_helipad_b.sqf",_cursorTarget, 0, false, true, "",""]; }; } else { player removeAction s_player_open_helipad_b; s_player_open_helipad_b = -1; };
if(_typeOfCursorTarget == "elektro3_hero" && (player distance _cursorTarget) < 30 ) then { if (s_player_close_helipad_h < 0) then { s_player_close_helipad_h = player addAction ["Close Helipad In Hero Nest", "scripts\close_helipad_h.sqf",_cursorTarget, 0, false, true, "",""]; }; } else { player removeAction s_player_close_helipad_h; s_player_close_helipad_h = -1; };
if(_typeOfCursorTarget == "elektro3" && (player distance _cursorTarget) < 30 ) then { if (s_player_close_helipad_b < 0) then { s_player_close_helipad_b = player addAction ["Close Helipad In Bandit Nest", "scripts\close_helipad_b.sqf",_cursorTarget, 0, false, true, "",""]; }; } else { player removeAction s_player_close_helipad_b; s_player_close_helipad_b = -1; };
А вот так фуручит, правдо елси подоходить отходить будет огромное кол-во действий:
if(_typeOfCursorTarget == "elektro3_hero" && (player distance _cursorTarget < 25)) then { player addAction ["Open Helipad In Hero Nest", "scripts\open_helipad_h.sqf",_cursorTarget, 0, false, true, "",""]; };
Добавлено (31.08.2015, 12:55) --------------------------------------------- Если вы про сообщение:
Цитата
Перекрасить можно только то-что специально размечено под покраску. проверить наличие и кол-во поверхностей можно строкой
То проблема скорее всего не в этом, т.е. в данном моде - Origins-e данные венилы на технику накладываются, только вот эти заразы серверные файлы не распространяют, лишь аренда серверов, где толком делать ничего нельзя, насколько я знаю богемией это запрещено мол все должно принадлежать сообществу, в клиентских файлах пусто, бинарники открыл благодаря Eliteness+DePbo, не единого скрипта не нашел (sqf, sqm ссылаются черт знает куда на них..),
попытался if (isNil _ownerUID) then {hint str _ownerUID} else {hint "not exist"} так же 0 реакции
Эта строка для выяснения значения или типа переменной _ownerUID и ничего больше. И запускать ее нужно по радио-триггеру. Ты пытаешься воткнуть _ownerUID в условие, не зная, что ей присвоено. Повторяю, условие работает только с логикой! По-моему, достаточно очевидно, что _ownerUID не может быть true или false
А вот (_playerUID == _ownerUID) - вполне может
Цитатаhekut146 ()
Error in expression <stance _cursorTarget) < 30 )
Команда stance работает только в А3
Цитатаhekut146 ()
А вот так фуручит, правдо елси подоходить отходить будет огромное кол-во действий:
Цитатаandrucio ()
В экшен нужно внести условие с дистанцией, чтобы вне ее меню не было unit addAction [title, script, arguments, priority, showWindow, hideOnUse, shortcut, condition
То есть "player distance cursortarget < 5"
Цитатаhekut146 ()
if ( count _setObjectTexture < 2 ) then {
this setObjectTexture [1, "\origins_pack\vehicles\skins\AH6X_Ori\AH6X_Ori_special1_co.paa"];
};
Вместо this setObjectTexture нужно (_setObjectTexture select 0) setObjectTexture [1,............................]
Сообщение отредактировал andrucio - Понедельник, 31.08.2015, 13:26
Это логи почему-то так пишут, на самом деле там distance, он почему-то в логах обрезает часть команд, я добился нужного результата только дублируются пункты в скролл меню (теперь открыть верт. площадку может лишь тот юнит который построил данную конструкцию)
Вот рабочий теперешний код, помогите пожалуйста совместить устранить дублирование, :
if(_typeOfCursorTarget == "elektro3_hero" && (player distance _cursorTarget < 25)) then { player addAction ["Open Helipad In Hero Nest", "scripts\open_helipad_h.sqf",_cursorTarget, 0, false, true, "",""]; };
Когда привожу к такому виду отказывается появляться пункт:
if (s_player_open_helipad_h < 0) then { s_player_open_helipad_h = Пункт действия }; } else { player removeAction s_player_open_helipad_h; s_player_open_helipad_h = -1;
Попробую, спасибо, текстуры появляются, огромное спасибо
Добавлено (31.08.2015, 18:03) --------------------------------------------- т.е. можно использовать and всместо &&? я нашел место куда нужно засунуть действие где уже есть условие проверки овнера, спасибо за помощь, сейчас все таки пытаюсь установить скрипт бронирования транспорта, командой анимации броня появляется, ставлю скрипт пункта в меню нету, rtp клиента и сервера чистые, не могли бы вы пожалуйста посмотреть? - http://opendayz.net/threads/release-origins-vehicle-upgrades.21815/ вот сам пункт меню действий:
if (_typeOfCursorTarget in Ori_VehiclesList) then { _cfg = configFile >> "CfgVehicles" >> _typeOfCursorTarget >> "AnimationSources"; _tc = count _cfg; _part = "PartGeneric";
for "_mti" from 0 to _tc-1 do { _mt = (_cfg select _mti); _st = getText(_mt >> "source"); _anim_array = Ori_VehicleUpgrades; if (_st in _anim_array) then { _statuss = _cursorTarget getVariable [_st,1]; if (_statuss == 1) then { _num = _anim_array find _st; _upgrade = _anim_array select _num; _upgradeName = ""; switch _upgrade do { case "pluhPredni" : {_upgradeName = "Front Plow";}; case "kolaOchrana" : {_upgradeName = "Wheel Guards";}; case "oknaOchrana" : {_upgradeName = "Window Guards";}; case "predniOknoOchrana" : {_upgradeName = "Windshield Guards";}; }; _color = "color='#ff0000'"; _stname = format["Upgrade %1",_upgradeName]; _string = format["<t %2>%1</t>", _stname,_color]; _handle = dayz_myCursorTarget addAction [_string, "PathTo\ori_upgrade.sqf",[_cursorTarget,_part,_st], 0, false, true, "",""]; s_player_repairActions set [count s_player_repairActions,_handle]; }; }; }; };
Добавлено (31.08.2015, 18:04) --------------------------------------------- Не думаю что проблема в установке скрипта, уже 3-ий раз пытаюсь, безрезультатно