Перейти к содержанию
ToxaSM

Вопросы по созданию МП-миссий

Рекомендуемые сообщения

Думаю стоит здесь продолжить задавать вопросы по созданию МП-миссий

Изображение

 

Внимание вопрос:

1) Как сделать отображение на доске, в нашем случаем стенд с информацией, нашего текста или изображения?

2) Как сделать интерактивное меню телепортации по карте, как в провинг гроундсе, но активация колесиком чтобы была?

 

P.S. Все задающиеся вопросы и ответы на них постараюсь вкладывать в первое сообщение, т.е. сюда.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

@ToxaSM,

1) http://community.bistudio.com/wiki/setObjectTexture

(помоему я показывал тебе пример на а3?)

Изображение

2) http://community.bistudio.com/wiki/displayAddEventHandler

остальное гетпозы и сетпозы.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

@Kurbat,

1) Картинка по центру объекта будет ставиться? Если да, то по этому пункту вопросов больше нет (Да, ты мне показывал)

2) Мне нужно, чтобы как в провинг гроундсе после нажатия в меню Телепортация открывалась карта и человека перемещался в это место. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

@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 "";

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

@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;"; 			}; 

Если я все правильно понял, то это конечный продукт (не считая х и у), но его нужно теперь переделать под колесико.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

За пункты в колесе отвечает

http://community.bistudio.com/wiki/addAction

который по активации должен запустить скрипт телепорта.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

@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. делаю по образу и подобию бубуха  :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

походу у тебя какая-то старая версия карты. я там менял вешалку экшена.

чуть позже распишу что куда писать. ;)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

где-то в ините:

[] 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";

зы: не тестил, не оптимизированно, но должно работать, даже из техники.

зыы: последняя(полугодовалая) версия моей мапы

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

@Kurbat, почти работает, но после открытия карты и нажатия на ней, ничего не происходит.

З.Ы. А можно ли с открывшийся карты убрать компас и часы и если ещё чего будет?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Предлагаю не писать вопросы сюда, а создавать отдельную тему, дабы была возможность последовательного обсуждения, в отличие от кучи-малы.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Не нашел той самой ветки для вопросов, поэтому спрошу здесь.Как сделать сигнальную мину многоразовой и ограничить время ее работы заданным периодом времени? Что-то прописать в ините мины? При копировании объекта в редакторе эта строка сохранится, все скопированные мины будут иметь те же свойства?Можно сделать здание бессмертным, если оно там и росло, а не поставлено картоделом?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Можно сделать здание бессмертным, если оно там и росло, а не поставлено картоделом?

 

obj1 = getPos this nearestObject 123456; obj1 allowDamage false;

(в инит любого юнита)

где obj1 - любое имя,

123456 - id объекта на карте

Изменено пользователем Skorpion

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Можно сделать здание бессмертным, если оно там и росло, а не поставлено картоделом?

 

или в нужном радиусе от маркера

_nearestHouses = nearestObjects [getMarkerPos "marker_disable_damage", ["HOUSE"], 100]; { _x allowDamage false} foreach _nearestHouses;

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Лабогадарю, только я не в теме, о каком маркере идет речь. Это в строку инициализации маркера? Что за маркер и где его искать? Я только в редакторе простые вещи умею, но очень нужно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

маркер - это F6 в редакторе и даблклик на карте, как юнита ставить.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Спасибо, сделал. Теперь остался старый вопрос и один новый. 

 

Как сделать сигнальную мину многоразовой и ограничить время ее работы заданным периодом времени?

 

Как сделать таймер, отсчитывающий в углу время с начала миссии? Желательно с хинтами каждые 30 секунд по истечении двухминутного фризтайма.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Сделал набор триггеров, срабатывающих на присутствие на всей карте кого угодно, с отсчетом времени и появляющимся текстом через 120, 150, 180 и т.д. секунд. Но отсчет не отображается, хотя хорошо, что можно присобачить звуки.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

нет, нельзя так делать. перегрузка и доп. лаги. делается скриптом.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

в 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

из миссии Банзая.

Изменено пользователем Randy

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Хренассе! Я нашел другой отсчет, но там попроще. Проблема только в том, что мне нужен не обратный отсчет, а таймер ) Для этого надо изменить выделенное жирным и убрать зачеркнутое?

 

[spoiler=]

 

  1. Otschet = 0; // время отсчета
  2. Ticktick = 10; //тики со звуком
  3. Start_otschet = false;
  4. waitUntil {time > 10};
  5. Start_otschet = true;
  6.  
  7.  
  8. if isDedicated then {
  9.  
  10. while {Start_otschet} do
  11. {
  12.  
  13. sleep 1;
  14. Otschet = Otschet + 1;
  15. publicVariable "Otschet";
  16. if (Otschet < 1) then {
  17. Start_otschet = false;
  18. publicVariable "Start_otschet";
  19. };
  20. };
  21. } else {
  22. TTick = {
  23. if (_this > 0) then {
  24.  
  25. if (_this > Ticktick) then {
  26. hintSilent parsetext format ["ВРЕМЯ:<br/>%1 час. %2 мин. %3 сек.",floor(_this/3600),floor(_this/60)%60,_this%60];
  27. } else {
  28. hint parsetext format ["ВРЕМЯ:<br/>%1 час. %2 мин. %3 сек.",floor(_this/3600),floor(_this/60)%60,_this%60];
  29. };
  30.  
  31. } else {
  32. hint "Время вышло! Ничья! ";
  33. end4 = true;
  34. publicVariable "end4";
  35. };
  36. };
  37. "Otschet" addPublicVariableEventHandler {(_this select 1) spawn TTick};
  38. };

 

А еще нужно две минуты обратного отсчета до начала этого таймера. И желательно с предупреждающими сигналами перед окончанием. Нашел вариант, но я даже не понимаю, куда все это пихать и как совмещать. В mission.sqm?

Я пока не планирую становиться картоделом, но планирую мероприятие для WOG'а, где без этого будет сложно и колхозно.

Изменено пользователем RamZesIV

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

напиши полное ТЗ, еще лучше отдельной темой, чтобы в этой мусорной теме дальше в кучу не пихать все.

Изменено пользователем Randy

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

@RamZesIV, таймер все еще актуален? Я могу скинуть миссию для так и не состоявшегося снайперского турнира, там все по твоим хотелкам, но разбираться в коде сам будешь, мне лень и забыл я уже, как оно там сделано. Но там все должно быть просто.

Теперь мой вопрос: можно как-то сделать бойца раненым (конкретнее - безногим, короче, чтобы он бегать/ходить не мог) так, чтобы ему не мог оказать помощь ни один медик?

Изменено пользователем dmb09

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

Мы разместили cookie-файлы на ваше устройство, чтобы помочь сделать этот сайт лучше. Вы можете изменить свои настройки cookie-файлов, или продолжить без изменения настроек.