Перейти к публикации
Поиск в
  • Дополнительно...
Искать результаты, содержащие...
Искать результаты в...
  • Нужна помощь?

    Создайте тему в соответствующем разделе
    Не нужно писать всё в чат!
  • Загляните на торговую площадку

    Там вы можете купить
    всё что касается игровых серверов
  • Не хотите бан?

    Пожалуйста, ознакомьтесь с нашими правилами
    Не нарушайте порядок!
  • Продаёте или покупаете?

    Пользуйтесь услугами гаранта
    Мы сделаем вашу сделку безопасной
123new

Триггеры с газом[1.0][By NoNameUltima]

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

1 час назад, saikodelic сказал:

PJIIOxa да и ты можешь сам регулировать какой кол-во хп будет отниматься при нахождение в зоне. И какие вещи должны быть одеты на персонаже что бы он не умер в данной зоне!

 

ну так то я вкурсе, я просто делал все по гайду но ничего не работало. скинули потом готовую миссию я закинул вместо своей и все заработало. Вот и не мог понять почему. Сейчас все работает.

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


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



Работает, но перестал работать мод Trader 

Изменено пользователем Dony (история изменений)

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


Ссылка на сообщение
Поделиться на других сайтах
4 часа назад, Dony сказал:

Работает, но перестал работать мод Trader 

значит что-то случайно отключили, данный мод этот скрипт вообще никак не затрагивает.

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


Ссылка на сообщение
Поделиться на других сайтах
17 минут назад, 123new сказал:

значит что-то случайно отключили, данный мод этот скрипт вообще никак не затрагивает.

Проверил раз пять. Удаляю из init.c строчку:

#include "$CurrentDir:mpmissions\dayzOffline.chernarusplus\DamagedZone.c"
и

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

всё сразу работает.

 

Вот как сейчас выглядит файл:

#include "$CurrentDir:mpmissions\dayzOffline.chernarusplus\DamagedZone.c"

void main()
{
	//INIT WEATHER BEFORE ECONOMY INIT------------------------
	Weather weather = g_Game.GetWeather();

	weather.MissionWeather(false);    // false = use weather controller from Weather.c

	weather.GetOvercast().Set( Math.RandomFloatInclusive(0.4, 0.6), 1, 0);
	weather.GetRain().Set( 0, 0, 1);
	weather.GetFog().Set( Math.RandomFloatInclusive(0.05, 0.1), 1, 0);

	//INIT ECONOMY--------------------------------------
	Hive ce = CreateHive();
	if ( ce )
		ce.InitOffline();

	//DATE RESET AFTER ECONOMY INIT-------------------------
	int year;
	int month;
	int day;
	int hour;
	int minute;

	GetGame().GetWorld().GetDate(year, month, day, hour, minute);

    if (((month <= 9) && (day < 20)) || ((month >= 10) && (day > 20)))
    {
        month = 9;
        day = 20;
		
		GetGame().GetWorld().SetDate(year, month, day, hour, minute);
	}
}

class CustomMission: MissionServer
{	

    void OnInit () 
	{
		GetGame().GetCallQueue(CALL_CATEGORY_GAMEPLAY).CallLater(GAS_ZONE_TRIGGER, 10000, true);
	}
	void SetRandomHealth(EntityAI itemEnt)
	{
		if ( itemEnt )
		{
			int rndHlt = Math.RandomInt(55,100);
			itemEnt.SetHealth("","",rndHlt);
		}
	}

	override PlayerBase CreateCharacter(PlayerIdentity identity, vector pos, ParamsReadContext ctx, string characterName)
	{
		Entity playerEnt;
		playerEnt = GetGame().CreatePlayer(identity, characterName, pos, 0, "NONE");//Creates random player
		Class.CastTo(m_player, playerEnt);
		
		GetGame().SelectPlayer(identity, m_player);
		
		return m_player;
	}
	
	override void StartingEquipSetup(PlayerBase player, bool clothesChosen)
	{
/*
		player.RemoveAllItems();

		EntityAI item = player.GetInventory().CreateInInventory(topsMissionArray.GetRandomElement());
		EntityAI item2 = player.GetInventory().CreateInInventory(pantsArray.GetRandomElement());
		EntityAI item3 = player.GetInventory().CreateInInventory(shoesArray.GetRandomElement());
*/
		EntityAI itemTop;
		EntityAI itemEnt;
		ItemBase itemBs;
		float rand;
		
		itemTop = player.FindAttachmentBySlotName("Body");
		
		if ( itemTop )
		{
			itemEnt = itemTop.GetInventory().CreateInInventory("Rag");
			if ( Class.CastTo(itemBs, itemEnt ) )
				itemBs.SetQuantity(4);

			SetRandomHealth(itemEnt);
			
			itemEnt = itemTop.GetInventory().CreateInInventory("RoadFlare");
			SetRandomHealth(itemEnt);
		
			itemEnt = itemTop.GetInventory().CreateInInventory("StoneKnife");
			SetRandomHealth(itemEnt);
		}

		rand = Math.RandomFloatInclusive(0.0, 1.0);
		if ( rand < 0.25 )
			itemEnt = player.GetInventory().CreateInInventory("SodaCan_Cola");
		else if ( rand > 0.75 )
			itemEnt = player.GetInventory().CreateInInventory("SodaCan_Spite");
		else
			itemEnt = player.GetInventory().CreateInInventory("SodaCan_Pipsi");
		
		SetRandomHealth(itemEnt);

		rand = Math.RandomFloatInclusive(0.0, 1.0);
		if ( rand < 0.35 )
			itemEnt = player.GetInventory().CreateInInventory("Apple");
		else if ( rand > 0.65 )
			itemEnt = player.GetInventory().CreateInInventory("Pear");
		else
			itemEnt = player.GetInventory().CreateInInventory("Plum");
		
		SetRandomHealth(itemEnt);
	}
};
  
Mission CreateCustomMission(string path)
{
	return new CustomMission();
}

 

Изменено пользователем Dony (история изменений)

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


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

Вообще-то тут можно обойтись только include'ом. Завернуть всё это в класс, добавление вызова в очередь сделать в конструкторе и просто в конце файла создать объект этого класса. В результате минимум вмешательства в main.c, всё просто и понятно.

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


Ссылка на сообщение
Поделиться на других сайтах
5 минут назад, elanc сказал:

Вообще-то тут можно обойтись только include'ом. Завернуть всё это в класс, добавление вызова в очередь сделать в конструкторе и просто в конце файла создать объект этого класса. В результате минимум вмешательства в main.c, всё просто и понятно.

без примера ни чего не понятно))

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


Ссылка на сообщение
Поделиться на других сайтах
1 час назад, Dony сказал:

Проверил раз пять. Удаляю из init.c строчку:

#include "$CurrentDir:mpmissions\dayzOffline.chernarusplus\DamagedZone.c"
и

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

всё сразу работает.

 

Вот как сейчас выглядит файл:


#include "$CurrentDir:mpmissions\dayzOffline.chernarusplus\DamagedZone.c"

void main()
{
	//INIT WEATHER BEFORE ECONOMY INIT------------------------
	Weather weather = g_Game.GetWeather();

	weather.MissionWeather(false);    // false = use weather controller from Weather.c

	weather.GetOvercast().Set( Math.RandomFloatInclusive(0.4, 0.6), 1, 0);
	weather.GetRain().Set( 0, 0, 1);
	weather.GetFog().Set( Math.RandomFloatInclusive(0.05, 0.1), 1, 0);

	//INIT ECONOMY--------------------------------------
	Hive ce = CreateHive();
	if ( ce )
		ce.InitOffline();

	//DATE RESET AFTER ECONOMY INIT-------------------------
	int year;
	int month;
	int day;
	int hour;
	int minute;

	GetGame().GetWorld().GetDate(year, month, day, hour, minute);

    if (((month <= 9) && (day < 20)) || ((month >= 10) && (day > 20)))
    {
        month = 9;
        day = 20;
		
		GetGame().GetWorld().SetDate(year, month, day, hour, minute);
	}
}

class CustomMission: MissionServer
{	

    void OnInit () 
	{
		GetGame().GetCallQueue(CALL_CATEGORY_GAMEPLAY).CallLater(GAS_ZONE_TRIGGER, 10000, true);
	}
	void SetRandomHealth(EntityAI itemEnt)
	{
		if ( itemEnt )
		{
			int rndHlt = Math.RandomInt(55,100);
			itemEnt.SetHealth("","",rndHlt);
		}
	}

	override PlayerBase CreateCharacter(PlayerIdentity identity, vector pos, ParamsReadContext ctx, string characterName)
	{
		Entity playerEnt;
		playerEnt = GetGame().CreatePlayer(identity, characterName, pos, 0, "NONE");//Creates random player
		Class.CastTo(m_player, playerEnt);
		
		GetGame().SelectPlayer(identity, m_player);
		
		return m_player;
	}
	
	override void StartingEquipSetup(PlayerBase player, bool clothesChosen)
	{
/*
		player.RemoveAllItems();

		EntityAI item = player.GetInventory().CreateInInventory(topsMissionArray.GetRandomElement());
		EntityAI item2 = player.GetInventory().CreateInInventory(pantsArray.GetRandomElement());
		EntityAI item3 = player.GetInventory().CreateInInventory(shoesArray.GetRandomElement());
*/
		EntityAI itemTop;
		EntityAI itemEnt;
		ItemBase itemBs;
		float rand;
		
		itemTop = player.FindAttachmentBySlotName("Body");
		
		if ( itemTop )
		{
			itemEnt = itemTop.GetInventory().CreateInInventory("Rag");
			if ( Class.CastTo(itemBs, itemEnt ) )
				itemBs.SetQuantity(4);

			SetRandomHealth(itemEnt);
			
			itemEnt = itemTop.GetInventory().CreateInInventory("RoadFlare");
			SetRandomHealth(itemEnt);
		
			itemEnt = itemTop.GetInventory().CreateInInventory("StoneKnife");
			SetRandomHealth(itemEnt);
		}

		rand = Math.RandomFloatInclusive(0.0, 1.0);
		if ( rand < 0.25 )
			itemEnt = player.GetInventory().CreateInInventory("SodaCan_Cola");
		else if ( rand > 0.75 )
			itemEnt = player.GetInventory().CreateInInventory("SodaCan_Spite");
		else
			itemEnt = player.GetInventory().CreateInInventory("SodaCan_Pipsi");
		
		SetRandomHealth(itemEnt);

		rand = Math.RandomFloatInclusive(0.0, 1.0);
		if ( rand < 0.35 )
			itemEnt = player.GetInventory().CreateInInventory("Apple");
		else if ( rand > 0.65 )
			itemEnt = player.GetInventory().CreateInInventory("Pear");
		else
			itemEnt = player.GetInventory().CreateInInventory("Plum");
		
		SetRandomHealth(itemEnt);
	}
};
  
Mission CreateCustomMission(string path)
{
	return new CustomMission();
}

 

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

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


Ссылка на сообщение
Поделиться на других сайтах
39 минут назад, 123new сказал:

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

Может он не работает из-за того что, как высказали скрипт не полный? "обрезанный" 

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


Ссылка на сообщение
Поделиться на других сайтах
11 час назад, Dony сказал:

Может он не работает из-за того что, как высказали скрипт не полный? "обрезанный" 

тогда как же он на чистом сервере работает? Ерунду то не несите.

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


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

У мне не работало пока не закинул миссию с картой и с db от 123new спасибо ему, потом просто в тот init файл дописал все то что у меня было добавлено все работает до сих пор. 

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


Ссылка на сообщение
Поделиться на других сайтах
13 минуты назад, 123new сказал:

тогда как же он на чистом сервере работает? Ерунду то не несите.

Да не ерунда это, ставил на чистый. Кстати уже работает, но не с тем кодом что тут указан, а собран из двух, один с 0,63 и 1,0 и так работает отлично. А с этим обрубком что здесь, конфликты.

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


Ссылка на сообщение
Поделиться на других сайтах
2 минуты назад, Dony сказал:

Да не ерунда это, ставил на чистый. Кстати уже работает, но не с тем кодом что тут указан, а собран из двух, один с 0,63 и 1,0 и так работает отлично. А с этим обрубком что здесь, конфликты.

Хз у меня работает нормально 

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


Ссылка на сообщение
Поделиться на других сайтах
2 минуты назад, PJIIOxa сказал:

Хз у меня работает нормально 

Да это уже не важно, главное что слепив с двух один, всё заработало идеально. Вот если бы это ещё как то оформить лёгким туманом, или звуком, для атмосферности))

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


Ссылка на сообщение
Поделиться на других сайтах
1 минуту назад, Dony сказал:

Да это уже не важно, главное что слепив с двух один, всё заработало идеально. Вот если бы это ещё как то оформить лёгким туманом, или звуком, для атмосферности))

Да тоже хотел бы замутить какой нибудь туман или звук но увы мои познания в скрипте равны нолю... 

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


Ссылка на сообщение
Поделиться на других сайтах
Только что, PJIIOxa сказал:

Да тоже хотел бы замутить какой нибудь туман или звук но увы мои познания в скрипте равны нолю... 

Надо на маслёнке в тисы сбегать, посмотреть, они как то оформили, или так оставили))

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


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

Скажите, есть ли возможность настроить под разные точки, разный дамаг? то есть в одном городе 10, в другом 40.

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


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

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

 

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


Ссылка на сообщение
Поделиться на других сайтах
17 часов назад, Dony сказал:

Скажите, есть ли возможность настроить под разные точки, разный дамаг? то есть в одном городе 10, в другом 40.

Конечно есть! Достаточно самому написать/дописать необходимый код.

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


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

inQ4 , я как-то даже стесняюсь спросить, от Господа Бога сообщение?:geek:

Идёте это Вы по улице и тут Вам прямиком из Небесной Канцелярии проекция на сетчатку: "Молись, грешник! Ибо вошёл ты в земли прОклятые, где воздух не чист, воды ядом наполнены и всякая нежить сатанинская! Кайся, ибо конец твой близок!":laugh: ...Спужался, на навигатор глянул - и точно, на работу приехал...:joy::upsidedown:

 

Использование всяких текстов, пиктограмм и прочей лабуды, имхо, уместно лишь там, где нельзя передать состояние персонажа иными способами. Пример - голод или намокание, которые игрок НИКАК не может ощутить. Симптомы отравления передать возможно - нарушение зрения, затруднённое дыхание, кашель и т.д. и т.п. Так что насчёт "лучше" - ... Проще - да. 

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


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

VIRrusR 

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

Но в дайзе, вывод маркеров пока сырой и убоги(хотя, почем пока - наверное таким и останется), и зону ты не выведешь... ну разве что в группе\сайте карту выложишь и подпишешь - "дЫвЫтЭсь хлопцы, - вот они хде исть!"

И получается, что игрок идет себе спокойно, и тут херакс - ХП падать начинает... А иконки (голод\жажда и т.п.) все в поряде - вот незадача, - че ему делать? - Он реально будет думать, что это баги.

Так что, - при входе в СЗ к примеру - надпись что игрок в безопасной зоне нужна. При входе в зараженную зону - не нужна, только если есть тех. возможность это подчернуть в рамках игры. Ну или ввести в контент игры, прибор определяющий чистоту воздуха, - аля дозимитр.

Или ты предлагаешь, игрокам вообще намордники не снимать?)

*P.S. и кстати многие газы имеют запах(гуглани - запах яблок).

Изменено пользователем NoNameUltima (история изменений)

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


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

NoNameUltima , Вы правы, но не во всём. В игре есть элементы интерфейса, верно? Там есть отображение таких параметров как: жажда, температура, влажность тела, уровень здоровья... Верно? Кроме того, есть соответствующая озвучка и анимации состояний? Я ничего не путаю?

 

Ударьте не только "по ХП", но и по температуре, заражению, жажде, к примеру. Что получите в итоге? Персонажа мучает жажда, бьёт озноб, дрожат руки, на экране "микроба", ХП падает, персонаж ковыляет, экран монохромный, целый букет симптомов!.. Наверное чего-то не то с ним, бедолагой? Не приболел ли часом,а? С чего бы, если пять секунд назад всё было ОК?!

 

Нет, ну я понимаю, что современному казуальному игроку всё нужно большими буквами в центре экрана писать, сложить два и два сложно очень... Но мы же о симуляторе сейчас, нет?..

 

P.S. Ах да! Совсем забыл, у нас же 100 рублей за букву скрипта и 200 за циферку, так что, господа, кто решит использовать идейку - гоните бабло, а то ведь я мог потратить серое вещество на что-то более важное, чем вам тут разжёвывать как можно заражённую зону обозначить (*грустно ухмыльнулся*). 

Изменено пользователем VIRrusR (история изменений)

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


Ссылка на сообщение
Поделиться на других сайтах
1 час назад, VIRrusR сказал:

Ударьте не только "по ХП", но и по температуре, заражению, жажде, к примеру. Что получите в итоге? Персонажа мучает жажда, бьёт озноб, дрожат руки, на экране "микроба", ХП падает, персонаж ковыляет, экран монохромный, целый букет симптомов!.. Наверное чего-то не то с ним, бедолагой? Не приболел ли часом,а? С чего бы, если пять секунд назад всё было ОК?!

Это лирика, если ты бегаешь по большой карте, в большой игре,  а не казуальной подземке в два квадратика, то наличие нескольких таких зон будет выбивать из колеи - ломать геймплей.

Не все делается в угоду реализму, многие вещи делают в угоду геймплею, или стараются найти компромис. - Компромисом были бы маркеры, обозначающие приблизительные границы таких зон(заметь мы не про игру аля Сталкер говорим, где игрок заходя ожидает наличие десятков таких зон, а про зомби выживалку, в которой технически можно слегка разнообразить геймплей, введя некие элементы от того же Сталкера, но не клепая миллионы зон и не вводя хрен знает чего). Но маркеров нет. Приборов нет. Народ ленивый - читать многобукаф в ВК никто не желает. Поэтому пока нет маркеров - оповещение самое то. Ну или добавлена была бы икона какая то, но это уже клиентский мод, а тут одни ванильники, за свой счет поддерживающие "релиз", богемии интерактив - наоткрывают 100500 серваков на ванилине, ничего в геймплей и скрипты превнести не могут, но помогают богемии в пиаре. 99% таких серваков дохнет через 2-3 месяца, но появляются новые. В следствии чего онлайн размазывается, и реально стоящие проекты,(которые правда требуют мода) - просто дохнут. Сам видал такие, и не плохие к слову проекты, и на тематику Сталкера были... Но это тоже уже лирика пошла.

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


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

NoNameUltima , предлагаю свернуть спор "ни о чём"? После слов "бегаешь по большой карте", для меня лично, нет самого предмета для споров. Мы по-разному понимаем геймплей DayZ. Это не хорошо и не плохо, просто по-разному. Я согласен с Вашими доводами лишь в одном - на сегодняшний день нельзя визуализировать зону (изменить элементы интерфейса, напустить на карту зелёного тумана и т.п.) без модификаций на стороне клиента. И это беда. Но если игрок не "бегаешь по большой карте" и DayZ для игрока не про PvP, то можно обойтись и имеющимися в игре средствами. Согласен!.. Согласен - они недостаточны, но это лучше, чем ничего. В крайнем случае, ничто не мешает комбинировать решения, нет? В любом случае, если расширить Ваш вариант скрипта, задействовав предложенные мной элементы, хуже не станет? И ничто не мешает при этом вывести в чат сообщение? В конце концов мы же как-то жили с "Я чувствовать терять тепло" в нижнем левом углу экрана?

   И не стоит уж так уж про "ванильщиков". Пока что, великие сриптеры тоже не особо чего стоящего в игру привнесли так-то... Считать достижением включение кучи пушек, которые как-то работают? Или тапки-кепки-капюшоны? Ах нет! Нелепые сэйвзоны, где пули вдруг от игроков отскакивают как хлебные мякиши? Боты-торговцы? Ну да, это ведь так здорово, торговать с ботами, а не с игроком, вырезая целые пласты социальной составляющей из игры и подменяя их "Сидоровичем" из Сталкера! Не считая всякой откровенной хрени, игровых механик про, собственно сурвивал, как-то и не видать пока? Какие, нафик моды, когда в игре контента нет и неизвестно когда будет, да и будет ли вообще?! Кто будет писать серьёзные механики, такие как система заболеваний, симуляция земледелия, использование электрооборудования и т.п., если оно после первой же заплатки работать перестанет? И кто это будет качать? И что вообще "модифицировать", если ничего то и нет?! Всё создавать надо! "Онлайн размазывают" - а там есть чего размазывать?! 5-6 тысяч онлайна на весь мир. Ну, конечно, хотелось бы, чтоб они все стояли в очередь исключительно за "стОящими" и обязательно "модифицированными" серверами! Только что "моими" забыли дописать. 

 

P.S. Спор окончен.

Изменено пользователем VIRrusR (история изменений)

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


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

Создайте аккаунт или войдите в него для комментирования

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

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас

  • Похожие публикации

    • Автор: 123new
      Автор скрипта: 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!
    • Автор: NotMeyson404
      Создал триггер в редакторе, что бы при заходе в область триггера играла музыка (Проверил в редакторе все работате на ура), сохранил как положено, закинул все файлы на сервер arma 3 epoch, и не работает ничего, пол дня провозился....подскажите как быть?
       
      class Item130
      {
      dataType="Trigger";
      position[]={7850.2622,17.753777,11198.521};
      angle=4.7678905;
      class Attributes
      {
      onActivation="1 fadeMusic 1; playMusic ""sidr11"";";
      onDeactivation="1 fadeMusic 0;";
      sizeA=3;
      sizeB=7;
      sizeC=4;
      repeatable=1;
      activationBy="ANY";
      isRectangle=1;
      isServerOnly=1;
      };
      id=40;
      type="EmptyDetectorArea10x10";
      atlOffset=-0.052999496;
      };
      class Item131
      {
      dataType="Trigger";
      position[]={7853.6118,17.391575,11197.52};
      angle=4.6931028;
      class Attributes
      {
      onActivation="playSound ""sidr22"";";
      onDeactivation="playSound ""sidr33"";";
      sizeA=2;
      sizeB=2;
      sizeC=4;
      repeatable=1;
      activationBy="ANY";
      isRectangle=1;
      isServerOnly=1;
      };
      id=41;
      type="EmptyDetectorArea10x10";
      atlOffset=0.1210022;
      };
    • Автор: exploadead
      Привет всем! Арма 1.58 Эпоч 0380 Пытаюсь перенести триггеры с 1.56 армы на 1.58....   Вот например такая конструкция по удалению ботов из зоны успешно работала на 1.56:   class Sensors { items=1; class Item0 { position[]={13325,0,14515}; a=200; b=200; activationBy="GUER"; repeating=1; interruptable=1; age="UNKNOWN"; expActiv="{deleteVehicle _x} forEach thisList;"; class Effects { }; }; };    
      Но в 1.58 появился новый общий для всего класс class Entities. Уже пробовал вот так:      
      class Entities { items=1; class Item1 { dataType="Trigger"; position[]={13325,0,14515}; class Attributes { name="delbot"; onActivation="{deleteVehicle _x} forEach thisList;"; sizeA=200; sizeB=200; repeatable=1; interruptable=1; activationBy="GUER"; }; id=210; type="EmptyDetector"; }; };    
      Но не сработало((... пробовал то же самое прямо в редакторе сделать... на 1.56 получалось... на 1.58 не пашет((
    • Автор: Mac2706
      Создал Триггер на определённых координатах, который должен вызывать скрипт, но когда захожу в триггер ничего не происходит.Триггер динамический :
       
       
      Я подозреваю, что это происходит, потому что скрипт исполняется только на стороне клиента и не передаёт данные на сервер Danger.Sqf
  • Наш выбор

×
×
  • Создать...

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

Используя этот сайт, вы автоматически обязуетесь соблюдать наши Правила и Политика конфиденциальности.
Чтобы сделать этот веб-сайт лучше, мы разместили cookies на вашем устройстве. Вы можете изменить свои настройки cookies, в противном случае мы будем считать, что вы согласны с этим.