Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
  • Need help?

    Create a topic in the appropriate section
    Don't write everything in the chat!
  • Take a look at the marketplace

    There you can buy
    everything related to game servers
  • Don't want a ban?

    Please read our rules
    Don't disturb the order!
  • Sell or buy?

    Use services of the guarantor
    We will make your deal safe
123new

DayZ Standalone 0.63 Триггеры с газом[перезалив]

Recommended Posts

Автор скрипта: http://s-platoon.ru/profile/48-nonameultima/

Все благодарности за этот скрипт непосредственно автору скрипта, не мне!

 

В данной теме, расскажу как сделать зараженные газом области на карте.

Автор: NoNameUltima

1. Открываем на сервере файл: missionServer.c

2. После строки:

GetGame().GetCallQueue(CALL_CATEGORY_GAMEPLAY).CallLater(this.UpdatePlayersStats, 30000, true);

Добавляем:

GetGame().GetCallQueue(CALL_CATEGORY_GAMEPLAY).CallLater(this.GAS_ZONE_TRIGGER, 10000, true);

*10000 - Время в мс(10 секунд). С такой частотой будет наноситься урон в данной области.

После строки:

GetGame().GetCallQueue(CALL_CATEGORY_GAMEPLAY).Remove(this.UpdatePlayersStats);

Добавляем:

GetGame().GetCallQueue(CALL_CATEGORY_GAMEPLAY).Remove(this.GAS_ZONE_TRIGGER);

Ищем строку:

void UpdatePlayersStats()

Вставляем ВЫШЕ нее, следующий код:

void GAS_ZONE_TRIGGER()
	{
		/*
			GAS_ZONE_TRIGGER
			Автор: NoNameUltima
			skype: hf-trade
		*/
		//	Зараженные зоны
		TVectorArray	gas_points		=	{"13249 0 3962", "6389 0 2683", "6612 0 2561"};
		//	Массив намордников
		TStringArray	gas_masks		=	{"GasMask", "GP5GasMask"};
		//	Радиус зон
		int 			radius			=	350;
		//	Наносимый урон
		float 			damage_value	=	10;

		ref array<Man> players 			=	new array<Man>;
		GetGame().GetPlayers( players );		
		PlayerBase	player;
		vector		position_player;		
		int			x;
		bool		isGasMask;
		int			attCount;
		int			attIdx;
		EntityAI	attachment;
		ItemBase	item;
		string		className;
		float		damage_player;
		
		for (int i = 0; i < players.Count(); i++)
			{
				Class.CastTo(player, players.Get(i));
				position_player	=	player.GetPosition();
				for (x	=	0; x < gas_points.Count(); x++)
					{
						if ( (vector.Distance(position_player, gas_points.Get(x))) < radius )
							{
								isGasMask	=	false;	
								attCount	=	player.GetInventory().AttachmentCount();								
								for (attIdx	=	0; attIdx < attCount; attIdx++)
									{
										attachment	=	player.GetInventory().GetAttachmentFromIndex(attIdx);
										if ( attachment.IsItemBase() )
											{
												item		=	Class.Cast(attachment);
												className	=	item.GetType();									
												if ( gas_masks.Find(className) >= 0 )
													{
														//Print ("Намордник найден!");
														isGasMask	=	true;
														break;
													}												
											}
									}
								if (isGasMask == false)
									{
										//Print ("Намордник не найден!");
										damage_player	=	player.GetHealth("GlobalHealth", "Health");
										player.SetHealth("GlobalHealth", "Health", damage_player - damage_value);
									}
							}
					}
			}
	}

P.S.

1. Так же можно изменить формат массива, и сделать зоны с разным радиусом

2. Можно при желании добавить вывод оповещения, в зараженных зонах.

*Скрипт предоставлен мной, в обрезанном виде намерено - остальное на Ваш вкус и цвет

Изменено 4 октября пользователем NoNameUltima

 

Добавлено от 123new:

Файл missionServer.c располагается в {папка сервера}\scripts\5_Mission\MissionServer\missionServer.c
Если у вас нет папки scripts в папке с сервером игры, откройте папку dta, распакуйте папку scripts из pbo-файла scripts.pbo и переместите в папку с сервером.

Чтобы папка считывалась сервером, необходимо добавить параметр запуска сервера '-FilePatching'.

P.S. Гайд не проверялся на актуальной версии серверной части игры со steam!

Share this post


Link to post
Share on other sites







Не надо это в missionServer.c

 

Делаем просто в Init.c

 

В классе class CustomMission : MissionServer

 

Вставляем саму функцию

Да где угодно

 

В конце класса

 

	void CustomMission()
	{
		GetGame().GetCallQueue(CALL_CATEGORY_GAMEPLAY).CallLater(this.GAS_ZONE_TRIGGER, 10000, true); //ADD GASZONE TRIGGER
	}

	void ~CustomMission()
	{
		GetGame().GetCallQueue(CALL_CATEGORY_GAMEPLAY).Remove(this.GAS_ZONE_TRIGGER); //REMOVE GASZONE TRIGGER
	}

И не надо лазить в scripts.pbo

Share this post


Link to post
Share on other sites
В 16.11.2018 в 14:12, BorizzK сказал:

Не надо это в missionServer.c

 

Делаем просто в Init.c

 

В классе class CustomMission : MissionServer

 

Вставляем саму функцию

Да где угодно

 

В конце класса

 


	void CustomMission()
	{
		GetGame().GetCallQueue(CALL_CATEGORY_GAMEPLAY).CallLater(this.GAS_ZONE_TRIGGER, 10000, true); //ADD GASZONE TRIGGER
	}

	void ~CustomMission()
	{
		GetGame().GetCallQueue(CALL_CATEGORY_GAMEPLAY).Remove(this.GAS_ZONE_TRIGGER); //REMOVE GASZONE TRIGGER
	}

И не надо лазить в scripts.pbo

 это рэндомная зона будет ? или на все карту ?

Share this post


Link to post
Share on other sites

Snecky Внимательно посмотрите скрипт что выполняет функцию зоны

//	Зараженные зоны
TVectorArray	gas_points		=	{"13249 0 3962", "6389 0 2683", "6612 0 2561"};

 

Share this post


Link to post
Share on other sites

т.е. в в init.c  классе class CustomMission : MissionServer вставляем 

void GAS_ZONE_TRIGGER()
	{
		/*
			GAS_ZONE_TRIGGER
			Автор: NoNameUltima
			skype: hf-trade
		*/
		//	Зараженные зоны
		TVectorArray	gas_points		=	{"13249 0 3962", "6389 0 2683", "6612 0 2561"};
		//	Массив намордников
		TStringArray	gas_masks		=	{"GasMask", "GP5GasMask"};
		//	Радиус зон
		int 			radius			=	350;
		//	Наносимый урон
		float 			damage_value	=	10;

		ref array<Man> players 			=	new array<Man>;
		GetGame().GetPlayers( players );		
		PlayerBase	player;
		vector		position_player;		
		int			x;
		bool		isGasMask;
		int			attCount;
		int			attIdx;
		EntityAI	attachment;
		ItemBase	item;
		string		className;
		float		damage_player;
		
		for (int i = 0; i < players.Count(); i++)
			{
				Class.CastTo(player, players.Get(i));
				position_player	=	player.GetPosition();
				for (x	=	0; x < gas_points.Count(); x++)
					{
						if ( (vector.Distance(position_player, gas_points.Get(x))) < radius )
							{
								isGasMask	=	false;	
								attCount	=	player.GetInventory().AttachmentCount();								
								for (attIdx	=	0; attIdx < attCount; attIdx++)
									{
										attachment	=	player.GetInventory().GetAttachmentFromIndex(attIdx);
										if ( attachment.IsItemBase() )
											{
												item		=	Class.Cast(attachment);
												className	=	item.GetType();									
												if ( gas_masks.Find(className) >= 0 )
													{
														//Print ("Намордник найден!");
														isGasMask	=	true;
														break;
													}												
											}
									}
								if (isGasMask == false)
									{
										//Print ("Намордник не найден!");
										damage_player	=	player.GetHealth("GlobalHealth", "Health");
										player.SetHealth("GlobalHealth", "Health", damage_player - damage_value);
									}
							}
					}
			}
	}

а в конце класса 

void CustomMission()
	{
		GetGame().GetCallQueue(CALL_CATEGORY_GAMEPLAY).CallLater(this.GAS_ZONE_TRIGGER, 10000, true); //ADD GASZONE TRIGGER
	}

	void ~CustomMission()
	{
		GetGame().GetCallQueue(CALL_CATEGORY_GAMEPLAY).Remove(this.GAS_ZONE_TRIGGER); //REMOVE GASZONE TRIGGER
	}

помогите плиз )))

Share this post


Link to post
Share on other sites

Snecky в ините вставляешь то что ты написал 1-м выше
а далее в классе же том же 'class CustomMission: MissionServer' добавляешь

void OnInit () 
{
	GetGame().GetCallQueue(CALL_CATEGORY_GAMEPLAY).CallLater(GAS_ZONE_TRIGGER, 10000, true); //ADD GASZONE TRIGGER
}

где 10000 - частота повтора выполнения скрипта (1000 = 1 сек.)

Edited by 123new (see edit history)

Share this post


Link to post
Share on other sites

Всем привет, вопрос такой актуален этот гайд для версии 1.0...?

Edited by PJIIOxa (see edit history)

Share this post


Link to post
Share on other sites
5 часов назад, 123new сказал:

PJIIOxa да

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

Share this post


Link to post
Share on other sites
6 часов назад, 123new сказал:

PJIIOxa да

Можете подсказать как сделать а то чет я вообще не понимаю, сделал все как написано в шапке прибегаю на свои координаты которые указал ничего не происходит

Share this post


Link to post
Share on other sites
1 час назад, PJIIOxa сказал:

Можете подсказать как сделать а то чет я вообще не понимаю, сделал все как написано в шапке прибегаю на свои координаты которые указал ничего не происходит

так проще?

 

Share this post


Link to post
Share on other sites
4 часа назад, 123new сказал:

так проще?

 

спс но чет у мена вообще ничерта не работает даже по гайду что скинули на версию 1.0

Share this post


Link to post
Share on other sites

PJIIOxa ну значит проверяем, правильно ли все прописали) может мод какой накладку вносит или имя папки миссии сервера активной отключается, или мод стоит какой-нить, который чтение миссии сервера напрочь отрубается, насмотрелся разных ужастей. На чистом сервере проверьте.

Share this post


Link to post
Share on other sites
21.01.2019 в 06:08, PJIIOxa сказал:

спс но чет у мена вообще ничерта не работает даже по гайду что скинули на версию 1.0

у меня все работает , уже год этот скрипт стоит 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By Fan10m22
      серверный мод(для выдачи товаров), скрипт для работы сайта

      Похожий сайты:
      https://midnight-dayz.ru/store
      https://dayzpay.ru/

      Если знаете как сделать или есть уже готовое что то пишите в лс
      Вк: https://vk.com/whoiam5637
       
    • By Fan10m22
      Вообщем буду краток:
      Меня зовут Макс мне 20 лет.
      Я хочу открыть свой сервер Dayz на карте чернарусия. Для этого к меня есть малый опыт в открытие, но готов учиться. Есть в районе от 100-150 на создание сервера. 
      Нужны люди умеющие или бывшие держатели своего сервера. Возраст не важен главное желание. 
      Нужен:
      Кодер - человек который будет отвечать за работоспособность самого сервера.
      Дизайнер - который может сделать любой раскрас на одежде и по возможности создать совершенно новую одежду броню и т.д 
       
      Концепт сервера: ПВП сервер с трейдерами и т.д.
       
      За остальным пишите мне в:
      Вк: https://vk.com/whoiam5637
      Телеграмм: @abudab1
    • By Trueтень733
      500 метров и начинается туман ,есть у кого настройки тумана ???Спасибо)))

      Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.

      Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.
    • By Trueтень733
      Ищем человека кто сможет сделать Автоивент,либо подскажите у кого есть какие автоивенты для DayZ,кто занимается именно созданием ивентов,Спасибо!
    • By TokZe
      Добрый вечер, знающие подскажите как реализовать продажу через сайт, без очереди и вип!
      также как вывести топ игроков на сайт
  • Our picks

×
×
  • Create New...

Important Information

By using this site, you automaticly agree to our Guidelines and Privacy Policy.
We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.