ToxaSM 3,122 Report post Posted January 28, 2014 Думаю стоит здесь продолжить задавать вопросы по созданию МП-миссий Внимание вопрос: 1) Как сделать отображение на доске, в нашем случаем стенд с информацией, нашего текста или изображения? 2) Как сделать интерактивное меню телепортации по карте, как в провинг гроундсе, но активация колесиком чтобы была? P.S. Все задающиеся вопросы и ответы на них постараюсь вкладывать в первое сообщение, т.е. сюда. 2 TeddyFear and AT_ reacted to this Share this post Link to post Share on other sites
Kurbat 199 Report post Posted January 28, 2014 @ToxaSM, 1) http://community.bistudio.com/wiki/setObjectTexture (помоему я показывал тебе пример на а3?) 2) http://community.bistudio.com/wiki/displayAddEventHandler остальное гетпозы и сетпозы. Share this post Link to post Share on other sites
ToxaSM 3,122 Report post Posted January 28, 2014 @Kurbat, 1) Картинка по центру объекта будет ставиться? Если да, то по этому пункту вопросов больше нет (Да, ты мне показывал) 2) Мне нужно, чтобы как в провинг гроундсе после нажатия в меню Телепортация открывалась карта и человека перемещался в это место. Share this post Link to post Share on other sites
Kurbat 199 Report post Posted January 28, 2014 @ToxaSM, не знаю как на пг, но на одной из моих карт я юзаю это: closedialog 0; //закрытие диалога из которого вызываетсяsleep 0.5;TitleText [format["Click on the map"], "PLAIN DOWN"];openMap [true, false];onMapSingleClick "[_pos select 0, _pos select 1, _pos select 2] execVM ""ScriptsTeleport1.sqf""; True"; Telepor1.sqf: _pos = [_this select 0, _this select 1,_this select 2]; if ((vehicle player isKindOf "Air")) then{ (vehicle player) setpos [_pos select 0, _pos select 1, 100]; }else { (vehicle player) setpos [_pos select 0, _pos select 1, 0]; };openMap [false, false];TitleText [format[""], "PLAIN DOWN"];onMapSingleClick ""; Share this post Link to post Share on other sites
ToxaSM 3,122 Report post Posted January 28, 2014 @Kurbat, у тебя работает (карта эта есть у меня), но на ПГ карта открывается без каких-либо объектов, что по мне удобнее. На ПГ в PG_Config.hpp вот такой пункт есть class balca_teleport_btn : balca_debug_btn { x = column_weight; w = column_weight-column_div; y = btn_height*3; text = "Teleport"; action = "hint ""Click on map to teleport"";onMapSingleClick ""vehicle player setPos [_pos select 0,_pos select 1,0]; onMapSingleClick '';""; openMap true; closeDialog 0;"; }; Если я все правильно понял, то это конечный продукт (не считая х и у), но его нужно теперь переделать под колесико. Share this post Link to post Share on other sites
[KND] Liquid 1,088 Report post Posted January 28, 2014 За пункты в колесе отвечает http://community.bistudio.com/wiki/addAction который по активации должен запустить скрипт телепорта. Share this post Link to post Share on other sites
ToxaSM 3,122 Report post Posted January 28, 2014 @Kurbat, сделал менюшку, но сам экшон не хочет работать, никакого действия после нажатия не происходит init.sqf _Handle = player execVM "action.sqf"; action.sqf player addAction ["<t color='#2222ff'>" + "Менюшка" + "</t>","menustart.sqf", "", 1, false, true, "", ""];player addMPEventHandler ["mprespawn", {Null = player execVM "action.sqf";}]; menustart.sqf (ничего не происходит) hint ""Click on map to teleport"";onMapSingleClick ""vehicle player setPos [_pos select 0,_pos select 1,0]; onMapSingleClick '';""; openMap true; closeDialog 0; P.S. делаю по образу и подобию бубуха :) Share this post Link to post Share on other sites
Kurbat 199 Report post Posted January 28, 2014 походу у тебя какая-то старая версия карты. я там менял вешалку экшена. чуть позже распишу что куда писать. ;) Share this post Link to post Share on other sites
Kurbat 199 Report post Posted January 28, 2014 где-то в ините: [] spawn { while {true} do { _veh = vehicle player; _act = _veh addAction ["<t color='#C0C0C0'>Телепорт</t>","tp.sqf",[],0.1]; waitUntil {sleep 1;(_veh != (vehicle player))}; _veh removeAction _act; };}; tp.sqf: _fnc_tp = {_pos = [_this select 0, _this select 1,_this select 2]; if ((vehicle player isKindOf "Air")) then{ (vehicle player) setpos [_pos select 0, _pos select 1, 100]; }else { (vehicle player) setpos [_pos select 0, _pos select 1, 0]; };openMap [false, false];TitleText [format[""], "PLAIN DOWN"];onMapSingleClick "";};TitleText [format["Click on the map to Tele-Port"], "PLAIN DOWN"];openMap [true, false];onMapSingleClick "[_pos select 0, _pos select 1, _pos select 2] spawn _fnc_tp; True"; зы: не тестил, не оптимизированно, но должно работать, даже из техники. зыы: последняя(полугодовалая) версия моей мапы 1 ToxaSM reacted to this Share this post Link to post Share on other sites
ToxaSM 3,122 Report post Posted January 29, 2014 @Kurbat, почти работает, но после открытия карты и нажатия на ней, ничего не происходит. З.Ы. А можно ли с открывшийся карты убрать компас и часы и если ещё чего будет? Share this post Link to post Share on other sites
Randy 825 Report post Posted February 5, 2014 Предлагаю не писать вопросы сюда, а создавать отдельную тему, дабы была возможность последовательного обсуждения, в отличие от кучи-малы. Share this post Link to post Share on other sites
Ram3esIV 2,218 Report post Posted August 31, 2014 Не нашел той самой ветки для вопросов, поэтому спрошу здесь.Как сделать сигнальную мину многоразовой и ограничить время ее работы заданным периодом времени? Что-то прописать в ините мины? При копировании объекта в редакторе эта строка сохранится, все скопированные мины будут иметь те же свойства?Можно сделать здание бессмертным, если оно там и росло, а не поставлено картоделом? Share this post Link to post Share on other sites
Skorpion 35 Report post Posted September 1, 2014 (edited) Можно сделать здание бессмертным, если оно там и росло, а не поставлено картоделом? obj1 = getPos this nearestObject 123456; obj1 allowDamage false; (в инит любого юнита) где obj1 - любое имя, 123456 - id объекта на карте Edited September 2, 2014 by Skorpion Share this post Link to post Share on other sites
DreadMoroz 327 Report post Posted September 1, 2014 Можно сделать здание бессмертным, если оно там и росло, а не поставлено картоделом? или в нужном радиусе от маркера _nearestHouses = nearestObjects [getMarkerPos "marker_disable_damage", ["HOUSE"], 100]; { _x allowDamage false} foreach _nearestHouses; Share this post Link to post Share on other sites
Ram3esIV 2,218 Report post Posted September 1, 2014 Лабогадарю, только я не в теме, о каком маркере идет речь. Это в строку инициализации маркера? Что за маркер и где его искать? Я только в редакторе простые вещи умею, но очень нужно. Share this post Link to post Share on other sites
Randy 825 Report post Posted September 2, 2014 маркер - это F6 в редакторе и даблклик на карте, как юнита ставить. 1 Ram3esIV reacted to this Share this post Link to post Share on other sites
Ram3esIV 2,218 Report post Posted September 3, 2014 Спасибо, сделал. Теперь остался старый вопрос и один новый. Как сделать сигнальную мину многоразовой и ограничить время ее работы заданным периодом времени? Как сделать таймер, отсчитывающий в углу время с начала миссии? Желательно с хинтами каждые 30 секунд по истечении двухминутного фризтайма. Share this post Link to post Share on other sites
Randy 825 Report post Posted September 3, 2014 если никто не напишет - вечером из дома напишу. Share this post Link to post Share on other sites
Ram3esIV 2,218 Report post Posted September 3, 2014 Сделал набор триггеров, срабатывающих на присутствие на всей карте кого угодно, с отсчетом времени и появляющимся текстом через 120, 150, 180 и т.д. секунд. Но отсчет не отображается, хотя хорошо, что можно присобачить звуки. Share this post Link to post Share on other sites
Randy 825 Report post Posted September 3, 2014 нет, нельзя так делать. перегрузка и доп. лаги. делается скриптом. 3 Ram3esIV, DreadMoroz and Dock reacted to this Share this post Link to post Share on other sites
Randy 825 Report post Posted September 4, 2014 (edited) в init.sqf отдельной строкой [] execVM "scripts\countdown.sqf"; в папку scripts кладешь countdown.sqf со следующим содержимым(только без ID строк, из форум сам дописал): Otschet = 6000; // время отсчета Ticktick = 10; //тики со звуком Start_otschet = false; waitUntil {time > 10}; Start_otschet = true; if isDedicated then { while {Start_otschet} do { sleep 1; Otschet = Otschet - 1; publicVariable "Otschet"; if (Otschet < 1) then { Start_otschet = false; publicVariable "Start_otschet"; }; }; } else { TTick = { if (_this > 0) then { if (_this > Ticktick) then { hintSilent parsetext format ["До конца игры:<br/>%1 час. %2 мин. %3 сек.",floor(_this/3600),floor(_this/60)%60,_this%60]; } else { hint parsetext format ["До конца игры:<br/>%1 час. %2 мин. %3 сек.",floor(_this/3600),floor(_this/60)%60,_this%60]; }; } else { hint "Время вышло! Ничья! "; end4 = true; publicVariable "end4"; }; }; "Otschet" addPublicVariableEventHandler {(_this select 1) spawn TTick}; }; ftp://wogames.info/WOG%20MP%20Mission%20Archive/A2/wog_129_com_station_11.Caribou.pbo из миссии Банзая. Edited September 4, 2014 by Randy 1 Ram3esIV reacted to this Share this post Link to post Share on other sites
Ram3esIV 2,218 Report post Posted September 4, 2014 (edited) Хренассе! Я нашел другой отсчет, но там попроще. Проблема только в том, что мне нужен не обратный отсчет, а таймер ) Для этого надо изменить выделенное жирным и убрать зачеркнутое? [spoiler=] Otschet = 0; // время отсчета Ticktick = 10; //тики со звуком Start_otschet = false; waitUntil {time > 10}; Start_otschet = true; if isDedicated then { while {Start_otschet} do { sleep 1; Otschet = Otschet + 1; publicVariable "Otschet"; if (Otschet < 1) then { Start_otschet = false; publicVariable "Start_otschet"; }; }; } else { TTick = { if (_this > 0) then { if (_this > Ticktick) then { hintSilent parsetext format ["ВРЕМЯ:<br/>%1 час. %2 мин. %3 сек.",floor(_this/3600),floor(_this/60)%60,_this%60]; } else { hint parsetext format ["ВРЕМЯ:<br/>%1 час. %2 мин. %3 сек.",floor(_this/3600),floor(_this/60)%60,_this%60]; }; } else { hint "Время вышло! Ничья! "; end4 = true; publicVariable "end4"; }; }; "Otschet" addPublicVariableEventHandler {(_this select 1) spawn TTick}; }; А еще нужно две минуты обратного отсчета до начала этого таймера. И желательно с предупреждающими сигналами перед окончанием. Нашел вариант, но я даже не понимаю, куда все это пихать и как совмещать. В mission.sqm?Я пока не планирую становиться картоделом, но планирую мероприятие для WOG'а, где без этого будет сложно и колхозно. Edited September 4, 2014 by RamZesIV Share this post Link to post Share on other sites
Randy 825 Report post Posted September 4, 2014 (edited) напиши полное ТЗ, еще лучше отдельной темой, чтобы в этой мусорной теме дальше в кучу не пихать все. Edited September 4, 2014 by Randy 1 Ram3esIV reacted to this Share this post Link to post Share on other sites
[FOX] dmb09 4,348 Report post Posted September 18, 2014 (edited) @RamZesIV, таймер все еще актуален? Я могу скинуть миссию для так и не состоявшегося снайперского турнира, там все по твоим хотелкам, но разбираться в коде сам будешь, мне лень и забыл я уже, как оно там сделано. Но там все должно быть просто. Теперь мой вопрос: можно как-то сделать бойца раненым (конкретнее - безногим, короче, чтобы он бегать/ходить не мог) так, чтобы ему не мог оказать помощь ни один медик? Edited September 18, 2014 by dmb09 1 Ram3esIV reacted to this Share this post Link to post Share on other sites
Ram3esIV 2,218 Report post Posted September 18, 2014 Конечно, скидывай. Попробую разобраться, спасибо! Share this post Link to post Share on other sites