NoNameUltima

Боты - ИИ, ArmA 3 - A3. A3UAI

9 сообщений в этой теме

Возможности создания:

  • Наземные, пешие патрули
  • Наземные патрули на технике
  • Авиационные патрули
  • Морские патрули
  • Статичные ИИ сидящие за орудием
  • Парашютисты
  • Миссии


Конфигурации:
*Прикладываю скрипты, для ознакомления с настройками ИИ

  • Основное - время исчезновения тел, и т.п.
     
    Ultima_Server_Integer_AI_Delay_Body_Time					=	300;	//	Секунды	- через какой интервал времени будут исчезать тела ботов.
    Ultima_Server_Integer_AI_Player_Distance_To_Body_For_Delete	=	200;	//	Тело бота не будет удалено до тех пор, пока дистанция от тела бота, до ближайшего игрока меньше указанной.
    Ultima_Server_Integer_AI_Min_Player_To_Start				=	1;		//	Минимальное кол-во игроков, для запуска скриптов.
    Ultima_Server_Integer_AI_Diag_Level							=	4;		//	Уровень вывода диагностики от 0 до 4.
    Ultima_Server_String_AI_Techniks_Not_Save_In_BD				=	"Данная техника пропадет после рестарта!";	//	Текст который увидит игрок, при посадке в технику ИИ, если техника не сохраняется в БД.
    
  • Уровни навыков ИИ, для использования при создании.
     
    /*
    Скилы ботов
    	Array	Массив:
    		0	String	Строка	Наименование для подборки скилов ботов
    		1	Array	Массив	Скилы ботов
    			0	Real	Число с плавающей запятой	От 0 до 1	"aimingAccuracy"	Точность прицеливания
    			1	Real	Число с плавающей запятой	От 0 до 1	,"aimingShake"		Тряска прицела
    			2	Real	Число с плавающей запятой	От 0 до 1	,"aimingSpeed"		Скорость прицеливания
    			3	Real	Число с плавающей запятой	От 0 до 1	,"endurance"	    Выносливость
    			4	Real	Число с плавающей запятой	От 0 до 1	,"spotDistance"		.
    			5	Real	Число с плавающей запятой	От 0 до 1	,"spotTime"			.
    			6	Real	Число с плавающей запятой	От 0 до 1	,"courage"			Храбрость
    			7	Real	Число с плавающей запятой	От 0 до 1	,"reloadSpeed"		Скорость перезарядки
    			8	Real	Число с плавающей запятой	От 0 до 1	,"commanding"		.
    			9	Real	Число с плавающей запятой	От 0 до 1	,"general"			.
    Вы можете дополнять массив Ultima_Server_Constant_Array_AI_Skills, добавляя собственные подборки скилов
    */
    Ultima_Server_Array_AI_Skills	=
    	[
    		 [ "Ultima_AI_Skill_Hard",   [  1, 0.1,   1,   1,   1,   1,   1,   1,   1,   1] ]
    		,[ "Ultima_AI_Skill_Normal", [0.6, 0.5, 0.6, 0.6, 0.6, 0.6, 0.6, 0.6, 0.6, 0.6] ]
    		,[ "Ultima_AI_Skill_Easy",   [0.4, 0.7, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4] ]
    	];
    

     

  • Объекты инвентаря техники, используемые при создании техники
     
    /*
    Объекты добавляемые в инвентарь техники
    	Array	Массив
    		0	String	Строка	Название массива
    		1	Array	Массив	МАССИВ ПРЕДМЕТОВ добавляемых в инвентарь техники
    				1-0	String	Строка	Объект
    				1-1	Integer	Целое	Количество
    				1-2	Boolean	Булево	Добавлять столько сколько указано, или случайным образом
    				1-3	Integer	Целое	Шанс
    		2	Array	Массив	МАССИВ МАГАЗИНОВ добавляемых в инвентарь техники
    				2-0	String	Строка	Объект
    				2-1	Integer	Целое	Количество
    				2-2	Boolean	Булево	Добавлять столько сколько указано, или случайным образом
    				2-3	Integer	Целое	Шанс
    		3	Array	Массив	МАССИВ ОРУЖИЯ добавляемого в инвентарь техники
    				3-0	String	Строка	Объект
    				3-1	Integer	Целое	Количество
    				3-2	Boolean	Булево	Добавлять столько сколько указано, или случайным образом. - True столько, сколько указано. False - случайно от 0, до стольки - сколько указано.
    				3-3	Integer	Целое	Шанс
    		4	Array	Массив	МАССИВ РЮКЗАКОВ добавляемых в инвентарь техники
    				4-0	String	Строка	Объект
    				4-1	Integer	Целое	Количество
    				4-2	Boolean	Булево	Добавлять столько сколько указано, или случайным образом. - True столько, сколько указано. False - случайно от 0, до стольки - сколько указано.
    				4-3	Integer	Целое	Шанс
    */	
    Ultima_Server_Array_AI_Techniks_Cargo_Objects	=
    	[
    		[
    			"Ultima_Server_Array_AI_Techniks_Cargo_Objects_Low"
    			,[
    				["Exile_Item_DuctTape", 1, false, 99]
    			]
    			,[
    				["30Rnd_65x39_caseless_mag", 1, true, 99]
    			]
    			,[
    				["arifle_MX_SW_F", 1, true, 99]
    			]
    			,[
    				["B_AssaultPack_sgg", 1, true, 99]
    			]
    		]
    		,[
    			"Ultima_Server_Array_AI_Techniks_Cargo_Objects_Middle"
    			,[
    				["ItemGPS", 2, false, 99]
    			]
    			,[
    				["30Rnd_65x39_caseless_mag", 4, true, 99]
    			]
    			,[
    				["arifle_MX_SW_F", 2, true, 99]
    			]
    			,[
    				["B_AssaultPack_sgg", 2, true, 99]
    			]
    		]
    	];
    

     

    *При создании техники(к примеру патрульной), можно указать ИД из конфигурации инвентаря - выбраный инвентарь будет добавлен в технику.

  • Настройки произвольных ИИ, - инвентарь, вооружение и т.п.
     
    //	Шанс на выдачу боту очков от 0 до 100
    Ultima_Server_Integer_AI_Allowed_Goggles_Chance	=	0;
    
    //	Разрешенные очки ботов ["очки", шанс]
    Ultima_Server_Array_AI_Allowed_Goggles	=
    	[
    		["G_Combat", 50]
    	];
    
    //	Шанс на выдачу боту головного убора от 0 до 100
    Ultima_Server_Integer_AI_Allowed_Headgear_Chance	=	99;
    
    //	Разрешенные головные уборы ботов ["головной убор", шанс]
    Ultima_Server_Array_AI_Allowed_Headgear	=
    	[
    		["H_HelmetB_camo", 99]
    	];
    
    //	Шанс на выдачу боту ПНВ от 0 до 100
    Ultima_Server_Integer_AI_Allowed_NVGoggles_Chance	=	50;
    	
    //	Разрешенные ПНВ ботов ["ПНВ", шанс]
    Ultima_Server_Array_AI_Allowed_NVGoggles	=
    	[
    		
    	];
    
    //	Шанс на выдачу боту бинокля от 0 до 100
    Ultima_Server_Integer_AI_Allowed_Binokular_Chance	=	50;
    	
    //	Разрешенные бинокли ботов ["бинокль", шанс]
    Ultima_Server_Array_AI_Allowed_Binokular	=
    	[
    		
    	];
    
    //	Разрешенная униформа ботов ["униформа", шанс] *Будет выдана одна 100%
    Ultima_Server_Array_AI_Allowed_Uniform	=
    	[
    		["U_B_GhillieSuit", 50]
    	];
    
    //	Шанс на выдачу боту разгрузки от 0 до 100
    Ultima_Server_Integer_AI_Allowed_Vest_Chance	=	50;
    	
    //	Разрешенные разгрузки ботов ["разгрузка", шанс]
    Ultima_Server_Constant_Array_AI_Allowed_Vest	=
    	[
    		["V_BandollierB_rgr", 10]
    	];
    
    //	Шанс на выдачу боту рюкзака от 0 до 100
    Ultima_Server_Integer_AI_Allowed_Backpack_Chance	=	99;
    
    //	Разрешенные рюкзаки ботов ["рюкзак", шанс]
    Ultima_Server_Array_AI_Allowed_Backpacks	=
    	[
    		["B_AssaultPack_sgg", 99]
    	];
    
    //	Максимальное кол-во выдаваемых приборов от 0 до 5
    Ultima_Server_Integer_AI_Allowed_AssignedItems_Count	=	5;
    
    //	Выдаваемые приборы ["Прибор", шанс выдачи]
    Ultima_Server_Array_AI_Allowed_AssignedItems	=
    	[
    		["ItemMap", 70]
    		,["ItemGPS", 5]
    		,["ItemRadio", 25]
    		,["ItemWatch", 25]
    		,["ItemCompass", 10]
    	];
    
    //	Разрешенное основное оружие ботов ["оружие", шанс] *Будет выдано одно 100%
    Ultima_Server_Array_AI_Allowed_Weapons_Primary	=
    	[
    		["arifle_MXC_F", 50]
    		,["arifle_MX_SW_F", 10]
    	];
    	
    //	Максимальное кол-во выдаваемых аксуссуаров для основного оружия от 0 до 4(глушитель, сошка, фонарик, прицел)
    Ultima_Server_Integer_AI_Allowed_Weapons_Primary_Accessoire_Count	=	4;
    	
    //	Разрешенные аксессуары основного оружия ботов ["аксессуар", шанс]
    //	После выдачи боту оружия - будет произведен отсев из данного списка. В списке остануться только подходящие к оружию аксессуары. Из подходящих будет выбрано соласно шансам.
    Ultima_Server_Array_AI_Allowed_Weapons_Primary_Accesoires_Chance	=
    	[
    		["muzzle_snds_L", 50]
    	];
    
    //	Шанс на выдачу боту вторичного оружия от 0 до 100
    Ultima_Server_Integer_AI_Allowed_Weapons_Handgun_Chance	=	50;
    	
    //	Разрешенное вторичное оружие ботов ["оружие", шанс]
    Ultima_Server_Array_AI_Allowed_Weapons_Handgun	=
    	[
    		["hgun_P07_F", 10]
    		,["hgun_Rook40_snds_F", 90]
    	];
    	
    //	Максимальное кол-во выдаваемых аксуссуаров для вторичного оружия от 0 до 4(глушитель, сошка, фонарик, прицел)
    Ultima_Server_Integer_AI_Allowed_Weapons_Handgun_Accessoire_Count	=	4;
    	
    //	Разрешенные аксессуары основного оружия ботов ["аксессуар", шанс]
    //	После выдачи боту оружия - будет произведен отсев из данного списка. В списке остануться только подходящие к оружию аксессуары. Из подходящих будет выбрано соласно шансам.
    Ultima_Server_Array_AI_Allowed_Weapons_Handgun_Accesoires_Chance	=
    	[
    		["muzzle_snds_L", 50]
    	];
    
    //	Шанс на выдачу РПГ боту
    Ultima_Server_Integer_AI_Allowed_Weapons_Secondary_Chance	=	99;
    	
    //	Разрешенные РПГ для ботов ["оружие", шанс]
    Ultima_Server_Array_AI_Allowed_Weapons_Secondary	=
    	[
    		["launch_RPG32_F", 99]
    	];
    	
    //	Максимальное кол-во выдаваемых аксуссуаров для РПГ оружия от 0 до 4(глушитель, сошка, фонарик, прицел)
    Ultima_Server_Integer_AI_Allowed_Weapons_Secondary_Accessoire_Count	=	4;
    	
    //	Разрешенные аксессуары РПГ оружия ботов ["аксессуар", шанс]
    //	После выдачи боту оружия - будет произведен отсев из данного списка. В списке остануться только подходящие к оружию аксессуары. Из подходящих будет выбрано соласно шансам.
    Ultima_Server_Array_AI_Allowed_Weapons_Secondary_Accesoires_Chance	=
    	[
    		["muzzle_snds_L", 50]
    	];
    
    /* ДОБАВЛЕНИЕ В ПРОСТРАНСТВО ИНВЕНТАРЯ(УНИФОРМУ, РАЗГРУЗКУ, РЮКЗАК) */
    
    //	Максимальное кол-во выдаваемых боту оружейных объектов
    Ultima_Server_Integer_AI_Allowed_Weapons_Count	=	2;
    
    //	Разрешенные оружейные объекты ботов. ["Объект", шанс]
    Ultima_Server_Array_AI_Allowed_Weapons	=
    	[
    		["hgun_P07_F", 99]
    	];
    
    //	Максимальное кол-во выдаваемых боту магазинов
    Ultima_Server_Integer_AI_Allowed_Magazines_Count	=	10;
    
    //	Разрешенные магазинные объекты ботов. ["Объект", шанс]
    Ultima_Server_Array_AI_Allowed_Magazines	=
    	[
    		["SmokeShellRed", 20]
    		,["HandGrenade", 20]
    		,["SmokeShellBlue", 90]
    	];
    
    //	Максимальное кол-во выдаваемых боту предметов
    Ultima_Server_Integer_AI_Allowed_Items_Count	=	6;
    	
    //	Разрешенные предметы ботов. ["Предмет", шанс]
    Ultima_Server_Array_AI_Allowed_Items	=
    	[
    
    	];
    	
    /* УДАЛЯЕМЫЕ, ИЛИ ЗАМЕНЯЕМЫЕ ОБЪЕКТЫ ПОСЛЕ СМЕРТИ БОТА) */	
    
    //	Удаляемые, или заменяемые объекты у ботов при смерти. ["Объект", чем заменить("" - ничем)].
    Ultima_Server_Array_AI_Change_Or_Delete_Objects	=
    	[
    		["NVGoggles", ""]
    		,["launch_RPG32_F", ""]
    	];
    

     

    *При создании произвольных ИИ, данные настройки определяют допустимый инвентарь и т.п.

  • Фиксированные ИИ(ИИ с жестко прописанным инвентарем, скилами и т.п.).
     
    /*
    Фиксированные боты
    	Array	Массив:	
    		0	String	Строка	Название типа бота											"Sniper"
    		1	String	Строка	Очки														""
    		2	String	Строка	Головной убор												""
    		3	String	Строка	ПНВ															""
    		4	String	Строка	Бинокль														""
    		5	Array	Массив	Устройства(assignedItems)									["ItemRadio"]
    		6	String	Строка	Униформа, чем заменить при смерти							"Bandit2_DZ"
    		7	String	Строка	Разгрузка													""
    		8	String	Строка	Рюкзак														""
    		9	String	Строка	Первичное оружие											""
    		10	String	Строка	Вторичное оружие											""
    		11	String	Строка	RPG															""
    		12	Array	Массив	Аксессуары первичного оружия								[]
    		13	Array	Массив	Аксессуары вторичного оружия								[]
    		14	Array	Массив	Аксессуары RPG												[]
    		15	Array	Массив	Оружие добавляемое в пространство инвентаря					[]
    		16	Array	Массив	Магазины добавляемые в пространство инвентаря				[]
    		17	Array	Массив	Предметы добавляемые в пространство инвентаря				[]
    		18	Array	Массив	Объекты удаляемые, или заменяемые после смерти бота			[ ["объект", "чем заменить"], [...] ]
    		19	String	Строка	Переменная - Уровень скилов, из Ultima_Server_Constant_Array_AI_Skills	"Ultima_AI_Skill_Hard"
    *Если при смерти бота, надо удалить объект инвентаря, а не заменить его, вставьте текст замены как: "".
    **Пример:	[ ["NVGoogles", ""] ]
    Вы можете дополнять массив Ultima_Server_Array_AI_Fixed, собственными ботами, с фиксированными настройками, исходя из правил заполнения массива
    */
    Ultima_Server_Array_AI_Fixed	=
    	[
    		[
    			"Sniper"
    			,"G_Spectacles"
    			,"rhs_beret_mp1"
    			,"rhsusf_ANPVS_15"
    			,"lerca_1200_black"
    			,[ "ItemMap","ItemCompass","Exile_Item_XM8","ItemRadio","ItemGPS" ]
    			,"rhsgref_uniform_ttsko_urban"
    			,"V_TacVest_blk"
    			,"B_Carryall_oucamo"
    			,"rhs_weap_svds_npz"
    			,""
    			,""
    			,[ "rhsusf_acc_LEUPOLDMK4_2" ]
    			,[]
    			,[]
    			,[]
    			,[ "rhs_10Rnd_762x54mmR_7N1", "rhs_10Rnd_762x54mmR_7N1", "rhs_10Rnd_762x54mmR_7N1", "rhs_10Rnd_762x54mmR_7N1" ]
    			,[ "Exile_Item_EMRE", "Exile_Item_PlasticBottleFreshWater", "Exile_Item_InstaDoc"]
    			,[]
    			,"Ultima_AI_Skill_Hard"
    		],
    		
    		[
    			"Soldier"
    			,"G_Spectacles"
    			,"rhs_beret_vdv2"
    			,"rhsusf_ANPVS_14"
    			,"Leupold_Mk4"
    			,[ "ItemMap","ItemCompass","Exile_Item_XM8","ItemRadio","ItemGPS" ]
    			,"rhs_uniform_vdv_flora"
    			,"rhs_6sh92_digi_headset"
    			,"rhs_assault_umbts"
    			,"rhs_weap_ak74m_gp25_npz"
    			,"rhs_weap_makarov_pmm"
    			,""
    			,[ "rhs_acc_dtk4short", "rhsusf_acc_ACOG2" ]
    			,[]
    			,[]
    			,[]
    			,[ "rhs_30Rnd_545x39_AK", "rhs_30Rnd_545x39_AK", "rhs_30Rnd_545x39_AK", "rhs_30Rnd_545x39_AK", "rhs_30Rnd_545x39_AK", "rhs_VOG25", "rhs_VOG25", "rhs_VOG25" ] 
    			,[ "Exile_Item_EMRE", "Exile_Item_PlasticBottleFreshWater", "Exile_Item_Vishpirin" ]
    			,[ [], [] ]
    			,"Ultima_AI_Skill_Hard"
    		],
    		
    		[
    			"Launcher"
    			,"G_Spectacles"
    			,"H_HelmetB_camo"
    			,""
    			,""
    			,[ "ItemMap", "ItemCompass" ]
    			,"U_O_GhillieSuit"
    			,"V_BandollierB_khk"
    			,"B_AssaultPack_Base"
    			,"srifle_GM6_camo_F"
    			,"hgun_P07_snds_F"
    			,"launch_RPG32_F"
    			,[ "muzzle_snds_338_black" ]
    			,[ "muzzle_snds_L" ]
    			,[]
    			,[ "hgun_P07_snds_F" ]
    			,[ "10Rnd_338_Mag", "10Rnd_338_Mag" ]
    			,[]
    			,[ ["launch_RPG32_F", ""], ["U_O_GhillieSuit", "U_B_CombatUniform_mcam"] ]
    			,"Ultima_AI_Skill_Hard"
    		]
    	];
    

     

    *При создании ИИ можно использовать произвольных ИИ, - все их настройки будут определены произвольно, из конфигах, в пределах допустимого, или создавать фиксированных - с жестко заданными настройками.

  • Настройки парашютистов
     
    //	Разрешенная авиационная техника ИИ ["ИД техники", шанс]
    Ultima_Server_Array_AI_Allowed_Techniks_Paraspawn				=
    	[
    		["B_Heli_Transport_01_F", 60]
    	];
    /*
    Конфигурации патрулей
    	Array	Массив
    		0	String			Строка			Техника патруля, или RANDOM, если брать из списка разрешенной.
    		1	Array			Массив			Точка появления.
    		2	Array			Массив			Точка высадки парашютистов.
    		3	Array			Массив			Точка исчезновения.
    		4	Integer			Целое			Радиус достижения, точки высадке парашютистов.
    		5	Integer			Целое			Минимальное кол-во парашютистов.
    		6	Integer			Целое			Максимальное кол-во парашютистов.
    		7	Boolean			Булево			Неуязвимость техники.
    		8	String\Array	Строка\Массив	Тип ИИ патруля - RANDOM или фиксированные. Если фиксированные - массив ботов, с перечислением типов - будут созданы в порядке очереди по элементам массива.
    		9	Integer			Целое			Сколько репутации давать за убийство ИИ.
    		10	Boolean			Булево			true - Выдавать репутацию случайно, от 0, до стольки - сколько указано в _reputation, или - false, ровно столько, сколько указано в _reputation.
    */
    Ultima_Server_Array_AI_Patrols_Paraspawn						=
    	[	
    		[
    			"B_Heli_Transport_03_F"
    			,[5000, 8031, 700]
    			,[10466, 8031, 700]
    			,[15000, 15000, 700]
    			,100
    			,10
    			,20
    			,true
    			,"RANDOM"
    			,5
    			,true
    		]
    	];
    

     

  • Пешие патрули
     
    Ultima_Server_Integer_AI_Patrols_Walking_Delay_Start_Spawn		=	20;		//	Время от старта сервера, до запуска скрипта создания наземных патрулей.
    Ultima_Server_Integer_AI_Patrols_Walking_Delay_Respawn_Min		=	60;	//	Минимальное время воссоздания патруля.
    Ultima_Server_Integer_AI_Patrols_Walking_Delay_Respawn_Random	=	60;		//	Случайный интервал времени, прибавляемый к минимальному времени создания патруля.
    /*
    Конфигурации патрулей
    	Array	Массив
    		0	Строка\Массив	Точка появления - RANDOM, или заданная точка.
    		1	Целое			Безопасный радиус при спавне в случайной точке. - При поиске точки спавна, в пределах данного радиуса не будет игроков.
    		2	Массив			Прямоугольники исключенные из спавна - [ [x,y, x1,y1], [x,y, x1,y1] ]. - каждый массив: верхняя левая точка прямоугольника, нижняя правая точка прямоугольника.
    		3	Строка\Массив	Путь патрулирования - RANDOM, или массив точек. Если RANDOM, используется радиус патрулирования, и кол-во точек патрулирования.
    		4	Целое			Радиус патрулирования(только для RANDOM пути патрулирования).
    		5	Целое			Кол-во точек патрулирования(только для RANDOM пути патрулирования).
    		6	Целое			Минимальное кол-во ботов в патруле. Если отличается от п.4 - кол-во будет подобрано случайно, от п.3 до п.4. Если одинаковое кол-во - будут созданы столько, сколько указано.
    		7	Целое			Максимальное кол-во ботов в патруле. Если отличается от п.3 - кол-во будет подобрано случайно, от п.3 до п.4. Если одинаковое кол-во - будут созданы столько, сколько указано.
    		8	Строка\Массив	Тип ботов патруля - RANDOM или фиксированные. Если фиксированные - массив ботов, с перечислением типов - будут созданы в порядке очереди по элементам массива.
    		9	Целое			Сколько репутации давать за бота.
    		10	Булево			true - Выдавать репутацию случайно, от 0, до стольки - сколько указано в _reputation, или - false, ровно столько, сколько указано в _reputation.
    ["RANDOM", 500, [ [0,0, 10,10] ], "RANDOM", 100, 5, 2, 5, "RANDOM", 3, true]
    */
    Ultima_Server_Array_AI_Patrols_Walking	=
    	[
    		 [[20709, 7207, 0], 100, [], "RANDOM" , 100, 0, 3, 5, ["Sniper"], 5, false]
    		,[[11926, 7814, 0], 100, [], [ [11926, 7814], [11880, 7361] ], 0, 0, 3, 5, ["Soldier"], 5, false]
    		,[[11908, 7270, 0], 100, [], [ [11908, 7270], [11548, 6999] ], 0, 0, 3, 5, ["Soldier"], 5, false]
    	];
    

     

  • Патрули наземные, на технике
     
    Ultima_Server_Integer_AI_Patrols_Car_Delay_Start_Spawn		=	20;		//	Время от старта сервера, до запуска скрипта создания патрулей.
    Ultima_Server_Integer_AI_Patrols_Car_Delay_Respawn_Min		=	600; 	//	Минимальное время воссоздания патруля.
    Ultima_Server_Integer_AI_Patrols_Car_Delay_Respawn_Random	=	60;		//	Случайный интервал времени, прибавляемый к минимальному времени создания патруля.
    //	Разрешенная наземная техника ИИ ["ИД техники", шанс]
    Ultima_Server_Array_AI_Allowed_Vehicle_Car	=
    	[
    		["O_MRAP_02_hmg_F", 60]
    	];
    /*
    Конфигурации патрулей
    	Array	Массив
    		0	String			Строка			Техника патруля, или RANDOM, если брать из списка разрешенной.
    		1	String\Array	Строка\Массив	Точка появления - RANDOM или заданная точка.
    		2	Integer			Целое			Безопасный радиус при спавне в случайной точке. - При поиске точки спавна, в пределах данного радиуса не будет игроков.
    		3	Array			Массив			Прямоугольники исключенные из спавна - [ [x,y, x1,y1], [x,y, x1,y1] ]. - каждый массив: верхняя левая точка прямоугольника, нижняя правая точка прямоугольника.
    		4	String\Array	Строка\Массив	Путь патрулирования - RANDOM, или массив точек. Если RANDOM, используется радиус патрулирования.
    		5	Integer			Целое			Радиус патрулирования. Только для случайного пути патрулирования. *Не менее 10!
    		6	Integer			Целое			Кол-во стрелков в технике.
    		7	Integer			Целое			Минимальное кол-во пассажиров в технике.
    		8	Integer			Целое			Максимальное кол-во пассажиров в технике.
    		9	String\Array	Строка\Массив	Тип ИИ патруля - RANDOM или фиксированные. Если фиксированные - массив ботов, с перечислением типов - будут созданы в порядке очереди по элементам массива.
    		10	Integer			Целое			Сколько репутации давать за убийство ИИ.
    		11	Boolean			Булево			true - Выдавать репутацию случайно, от 0, до стольки - сколько указано в _reputation, или - false, ровно столько, сколько указано в _reputation.
    		12	String			Строка			Имя массива из Ultima_Server_Array_AI_Techniks_Cargo_Objects объектов, и оружия добавляемого в инвентарь техники.
    		13	Boolean			Булево			Водителю разрешено покидать водительское место? true - да. false - нет.
    		14	Boolean			Булево			Игрокам разрешено садится в данную технику? true - да. false - нет.
    		15	Boolean			Булево			Сохранять технику в БД, при посадке в нее игрока.
    *Если при создании патруля, кол-во стрелков ИИ в технике превышает кол-во мест для стрелков, - кол-во ИИ будет ограничено до максимально допустимого.
    [
    			"RANDOM"
    			,"RANDOM"
    			,500
    			,[ [[10,10,0], [10,100,0]] ]
    			,"RANDOM"
    			,1000
    			,3
    			,3
    			,5
    			,"RANDOM"
    			,5
    			,true
    			,"Ultima_Server_Array_AI_Techniks_Cargo_Objects_Low"
    			,true
    			,true
    			,false
    		]
    */
    Ultima_Server_Array_AI_Patrols_Car	=
    	[
    		[
    			"rhs_btr80a_vdv"
    			,[20681, 7134, 0]
    			,500
    			,[]
    			,"RANDOM"
    			,100
    			,5
    			,5
    			,7
    			,["Soldier"]
    			,5
    			,true
    			,"Ultima_Server_Array_AI_Techniks_Cargo_Objects_Low"
    			,true
    			,true
    			,true
    		]
    		/*,[
    			"O_MRAP_02_hmg_F"
    			,[10562, 7375, 0]
    			,500
    			,[]
    			,[ [10562, 7375], [10521, 8057] ]
    			,0
    			,10
    			,10
    			,10
    			,["Sniper"]
    			,5
    			,true
    			,"Ultima_Server_Array_AI_Techniks_Cargo_Objects_Low"
    			,true
    			,true
    			,true
    		]
    		,[
    			"O_MRAP_02_hmg_F"
    			,[10563, 8100, 0]
    			,500
    			,[]
    			,[ [10563, 8100], [11501, 8425] ]
    			,0
    			,10
    			,10
    			,10
    			,["Sniper"]
    			,5
    			,true
    			,"Ultima_Server_Array_AI_Techniks_Cargo_Objects_Low"
    			,true
    			,true
    			,true
    		] */
    	];
    

     

  • Авиационные патрули *Схожие с наземными
  • Морские патрули *Схожие с наземными
  • Статичные ИИ сидящие за орудиями *Схожие с наземными
  • Миссии
     
    Ultima_Server_Integer_AI_Missions_Delay_Start_Spawn		=	20;		//	Время от старта сервера, до запуска скрипта создания миссий.
    Ultima_Server_Integer_AI_Missions_Delay_Respawn_Min		=	60;		//	Минимальное время воссоздания миссии.
    Ultima_Server_Integer_AI_Missions_Delay_Respawn_Random	=	60;		//	Случайный интервал времени, прибавляемый к минимальному времени воссоздания миссии.
    Ultima_Server_Integer_AI_Missions_Min_Count				=	2;		//	Минимальное кол-во миссий
    Ultima_Server_Integer_AI_Missions_Max_Count				=	4;		//	Максимальное кол-во миссий
    Ultima_Server_Array_AI_Missions_Coords					=			//	Координаты появления миссий
    	[
    		[500, 500]
    		,[700, 700]
    	];
    Ultima_Server_Array_AI_Missions_Coords_Blocked			=			//	Исключаемые области для миссий появляющихся в случайных координатах
    	[
    		[ [0, 0], [100, 100] ]
    		,[ [200, 200], [300, 300] ]
    	];
    
    /*
    	0	String	Строка	Тип ящика, или "RANDOM", если случайно подбирать тип ящика
    	1	Array	Массив	Инвентарь ящика.
    		0	Объект
    		1	Минимальное кол-во в ящике
    		2	Максимальное кол-во в ящике
    		3	Шанс добавления данного типа объекта в ящике
    */
    
    /*
    	0	String			Строка			Внутреннее, уникальное имя миссии.
    	1	Integer			Целое			Максимальное кол-во миссий данного типа на карте.
    	2	Integer			Целое			Шанс появления данной миссии.
    	3	String			Строка			Оповещение о старте миссии.
    	4	String			Строка			Оповещение о завершении миссии.
    	5	Array			Массив			Маркер текста на карте ["Форма", "Тип", "Цвет", "Кисть", "Текст", "Размер"]
    	6	Array			Массив			Маркер области на карте ["Форма", "Тип", "Цвет", "Кисть", "Текст", "Размер"]
    	7	Integer\String	Целое\Строка	Индекс из массива Ultima_Server_Array_AI_Missions_Coords, или "RANDOM", для произвольных координат создания миссии.
    	8	Integer			Целое			Радиус от центра миссии, до ближайшего игрока, для завершения миссии.
    	9	Array			Массив			Индекс ящика + индекс лута из массивов Ultima_Server_Array_Objects_Boxes и Ultima_Server_Array_Objects_Loot_For_Boxes для создания ящиков с лутом.
    	10	Integer			Целое			Создавать ящики из п.9 столько сколько есть в массиве - true, или false - произвольно, от 0 до кол-ва в массиве.
    	11	Array			Массив			Массив объектов антуража(здания, обломки и т.п.) которые будут созданы при старте миссии, и случаным образом расставлены от центра миссии. [ ["Объект", минимум, среднее, максимум] ]
    	12	Array			Массив			Массив: техника без ИИ спавнящейся на миссии, ее инвентарь, топливо, аммуниция, сохранять в БД.. [ ["OBJECT", "INVENTORY", FUEL, AMMO, SAVEBD] ]
    	13	Boolean			Булево			Создавать технику из п.12 столько сколько есть в массиве - true, или false - случайно от 0 до кол-ва в массиве.
    	14	String\Array	Строка\Массив	Тип ИИ на миссии из массива Ultima_Server_Array_AI_Fixed, или "RANDOM", для произвольных ИИ.
    	15	Integer			Целое			Минимальное кол-во ИИ на миссии.
    	16	Integer			Целое			Максимальное кол-во ИИ на миссии.
    	17	Array			Массив			Массив ИИ создаваемых для миссии, которые будут посажены за статичное орудие - [ ["RANDOM", "ПУЛЕМЕТ"] ]
    	18	Integer			Целое			Минимальное кол-во ИИ посаженых за статичное орудие.
    	19	Integer			Целое			Максимальное кол-во ИИ посаженных за статичное орудие.
    	20	Array			Массив			Наземная техника с ИИ создаваемая для миссии. [ ["RANDOM", "Техника1", разрешена посадка ироков, сохранять в БД при посадке игрока] ]
    	21	Integer			Целое			Минимальное кол-во наземной техники.
    	22	Integer			Целое			Максимальное кол-во наземной техники.
    	23	Array			Массив			Авиационная техника с ИИ создаваемая для миссии. [ ["RANDOM", "Техника1", разрешена посадка ироков, сохранять в БД при посадке игрока] ]
    	24	Integer			Целое			Минимальное кол-во авиационной техники.
    	25	Integer			Целое			Максимальное кол-во авиационной техники.
    	26	Integer			Целое			Кол-во репутации, выдаваемое за убийство ИИ на миссии.
    	27	Boolean			Булево			Выдавать репутацию произвольно, от 0, до столько - сколько указано, или фиксированно - ровно столько, сколько указано. false - Произвольно.
    	28	Integer			Целое			Кол-во ИИ в % после уничтожения которых прилетит авиа техника и сбросит парашютистов. -1: отключено.
    	29	Integer			Целое			Индекс из массива Ultima_Server_Array_AI_Patrols_Paraspawn, для высадки параштистов, если п. не равен -1.
    		
    */
    Ultima_Server_Array_AI_Missions							=			//	Миссии
    	[
    		[
    			"MISSION_1_"																									//	0
    			,1																												//	1
    			,100																											//	2
    			,"Старт миссии 1"																								//	3
    			,"Миссия 1 завершена"																							//	4
    			,["", "mil_dot", "ColorRed", "", "Миссия 1", ""]																//	5
    			,["ELLIPSE", "", "ColorGUER", "Solid", "", [300, 300]]															//	6
    			,"RANDOM"																										//	7
    			,50																												//	8
    			,[ ["RANDOM", "RANDOM"] ]																						//	9
    			,true																											//	10
    			,[ ["Land_Pallet_F", 6, 12, 24], ["Land_Metal_rack_F", 2, 4, 6] ]												//	11
    			,[ ["RANDOM", "RANDOM", 0.5, true, false], ["RANDOM", "RANDOM", 0.5, true, false] ]								//	12
    			,false																											//	13
    			,"RANDOM"																										//	14
    			,10																												//	15
    			,20																												//	16
    			,[ ["RANDOM", "RANDOM"] ]																						//	17
    			,2																												//	18
    			,3																												//	19
    			,[ ["RANDOM", "RANDOM", false, false] ]																			//	20
    			,1																												//	21
    			,2																												//	22
    			,[ ["RANDOM", "RANDOM", true, true] ]																			//	23
    			,1																												//	24
    			,1																												//	25
    			,5																												//	26
    			,false																											//	27
    			,10																												//	28
    			,0																												//	29
    		]
    	];
    
    

     


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

Ньюансы и особенности:
ИИ не предназначены, для какого то определенного мода(вернее, писались они для моего мода, но без каких либо привязок и существенных особенностей), => оповещения(й) о старте миссии(й), при посадке в технику, - не будет(можно добавить самостоятельно, - исходя из мода, который вы используете), а так же не будет сохранения техники ИИ в БД, после захвата ее игроком, хотя такая настройка есть, - можно добавить сохранение самостоятельно, исходя из мода, который Вы используете.
Оповещения и сохранение в БД прокоментированы в файлах - технически это 2 строки.
ИИ ставились, как есть на мод EXILE, и работали без каких либо проблем.

Вместе с ИИ идут несколько скриптов, которые Вы можете использовать отдельно, - в частности - Создание ящиков с инвентарем, временем возрождения лута и т.д. и т.п. - настроек там за глаза...

Прикладываю скриншот, с отладки:

 

 

AI_debug.jpg



И часть RPT:

 

 

0:40:31 "[#Ultima]: [ИИ]: [Менеджер пеших ИИ]: Группа: B Alpha 1-2. Живых ИИ: 3."
 0:40:31 "[#Ultima]: [ИИ]: [Менеджер пеших ИИ]: Группа: B Alpha 3-1. Живых ИИ: 3."
 0:40:31 "[#Ultima]: [ИИ]: [Менеджер пеших ИИ]: Группа: B Alpha 4-1. Живых ИИ: 3."
 0:40:31 "[#Ultima]: [ИИ]: [Менеджер пеших ИИ]: Живых групп: 3. Ожидают пересоздания: 0."
 0:40:31 "[#Ultima]: [ИИ]: [Менеджер авто ИИ]: Группа: B Alpha 1-3. Живых ИИ: 5."
 0:40:31 "[#Ultima]: [ИИ]: [Менеджер авто ИИ]: Группа: B Alpha 4-2. Живых ИИ: 5."
 0:40:31 "[#Ultima]: [ИИ]: [Менеджер авто ИИ]: Группа: B Bravo 1-1. Живых ИИ: 5."
 0:40:31 "[#Ultima]: [ИИ]: [Менеджер авто ИИ]: Живых групп: 3. Ожидают пересоздания: 0."
 0:40:31 "[#Ultima]: [ИИ]: [Менеджер авиа ИИ]: Группа: B Alpha 2-1. Живых ИИ: 10."
 0:40:31 "[#Ultima]: [ИИ]: [Менеджер авиа ИИ]: Группа: B Alpha 4-3. Живых ИИ: 10."
 0:40:31 "[#Ultima]: [ИИ]: [Менеджер авиа ИИ]: Живых групп: 2. Ожидают пересоздания: 0."
 0:40:31 "[#Ultima]: [ИИ]: [Менеджер морских ИИ]: Группа: B Alpha 2-2. Живых ИИ: 2."
 0:40:31 "[#Ultima]: [ИИ]: [Менеджер морских ИИ]: Группа: B Alpha 3-3. Живых ИИ: 2."
 0:40:31 "[#Ultima]: [ИИ]: [Менеджер морских ИИ]: Живых групп: 2. Ожидают пересоздания: 0."
 0:40:31 "[#Ultima]: [ИИ]: [Менеджер орудийных ИИ]: Группа: B Alpha 2-3. Живых ИИ: 1."
 0:40:31 "[#Ultima]: [ИИ]: [Менеджер орудийных ИИ]: Живых групп: 1. Ожидают пересоздания: 0."
 0:40:31 "[#Ultima]: [ИИ]: [Менеджер миссий]: Всего запущено миссий: 1"
 0:40:31 "[#Ultima]: [ИИ]: [Менеджер миссий]: Миссия: MISSION_1_"

 

 

 

0:39:55 "[#Ultima]: [ИИ]: [Создание ИИ]: [0]: Группа: B Alpha 2-1. Тип: Sniper. Репутация: 5. Случайная репутация: true."
 0:39:55 "[#Ultima]: [ИИ]: [Создание ИИ]: [0]: ИИ определен как фиксированный. Определение типа..."
 0:39:55 "[#Ultima]: [ИИ]: [Создание ИИ]: [0]: Определение типа завершено. Тип: Sniper."
 0:39:55 "[#Ultima]: [ИИ]: [Создание ИИ]: [0]: Данные для создания:"
 0:39:55 "[#Ultima]: [ИИ]: [Создание ИИ]: [0]: Очки: G_Spectacles"
 0:39:55 "[#Ultima]: [ИИ]: [Создание ИИ]: [0]: Головной убор: H_HelmetB_camo"
 0:39:55 "[#Ultima]: [ИИ]: [Создание ИИ]: [0]: ПНВ: "
 0:39:55 "[#Ultima]: [ИИ]: [Создание ИИ]: [0]: Бинокль: "
 0:39:55 "[#Ultima]: [ИИ]: [Создание ИИ]: [0]: Присоединяемые предметы: ["ItemMap","ItemCompass"]"
 0:39:55 "[#Ultima]: [ИИ]: [Создание ИИ]: [0]: Униформа: U_O_GhillieSuit"
 0:39:55 "[#Ultima]: [ИИ]: [Создание ИИ]: [0]: Разгрузка: V_BandollierB_khk"
 0:39:55 "[#Ultima]: [ИИ]: [Создание ИИ]: [0]: Рюкзак: B_AssaultPack_Base"
 0:39:55 "[#Ultima]: [ИИ]: [Создание ИИ]: [0]: Основное оружие: srifle_GM6_camo_F"
 0:39:55 "[#Ultima]: [ИИ]: [Создание ИИ]: [0]: Вторичное оружие: hgun_P07_snds_F"
 0:39:55 "[#Ultima]: [ИИ]: [Создание ИИ]: [0]: РПГ: launch_RPG32_F"

 

 

 

0:39:52 "[#Ultima]: [ИИ]: [Создание авто ИИ]: [1]: Добавление инвентаря техники: Ultima_Server_Array_AI_Techniks_Cargo_Objects_Low"
 0:39:52 "[#Ultima]: [ИИ]: [Добавление объектов в технику]: [1]: Попытка добавить в инвентарь объект - предмет: ["Ultima_Server_Array_AI_Techniks_Cargo_Objects_Low",[["ItemGPS",4,false,99]],[["30Rnd_65x39_caseless_mag",4,true,99]],[["arifle_MX_SW_F",4,true,99]],[["B_AssaultPack_sgg",4,true,99]]]."
 0:39:52 "[#Ultima]: [ИИ]: [Добавление объектов в технику]: [1]: Добавляем в инвентарь техники: 4d3b1600# 1814314: mrap_02_hmg_f.p3d, объект - предмет: ItemGPS, в кол-ве: 2."
 0:39:52 "[#Ultima]: [ИИ]: [Добавление объектов в технику]: [1]: Объект - предмет: ItemGPS, добавлен в инвентарь: 4d3b1600# 1814314: mrap_02_hmg_f.p3d, в кол-ве: 1."

 



Стоимость скриптов ИИ: 4000

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

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


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


Поддержка НС для Exile есть?

Ты имеешь ввиду, - вместо сервера запустить на HC?

Если исключить сохранение техники в БД, с миссий(хотя я не знаю на кой хер вообще надо технику с миссий в БД сохранять - при посадке игрока разумеется, но все равно - захламление), то - проблем вроде никаких не должно быть - берем и ставим на HC все скрипты.

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

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


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

Добавлено:

  • Репутация для мода Exile
  • Сохранение техники ИИ в БД, для мода Exile(при посадке игрока - опционально, - задается в конфигурации).
  • Конфигурация ИИ - принадлежность к стороне(WEST\EAST и т.п.).

Изменено:

  • Упрощены настройки массива объектов, которые можно добавлять в создаваемую технику ИИ.

*Еще раз повторюсь - мод не играет роли, т.к. ИИ писались для А3(технические ньюансы модов (сообщения игрокам, награды, сохранение техники в БД), можно учесть самостоятельно.

 

P.S.

Попрошу отписать, тех кто юзает этих ИИ

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


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

Попробовал все существующие ai на мод exile,однозначно гораздо более гибкие в настройке,а уж поведение самих ботов не сравнить с теми же dms) например стрельба из рпг,это что то))) огонь на подавление и т п) есть конечно и минусы,не фризят(но как я понимаю у ультимы на счет этого свое мнение,хотя можно в паре с дмс,дмс будет фризить)) 

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


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

Добавлено:

  • Наличные для ИИ(ботов) Exile, задаются опционально.

Изменено:

  • Упрощены настройки массива для маркеров карты, теперь можно оставлять массив пустым, если маркер не нужен.

*Еще раз повторюсь - мод не играет роли, т.к. ИИ писались для А3(технические ньюансы модов (сообщения игрокам, награды, сохранение техники в БД), можно учесть самостоятельно.

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

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


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

Исправлено(для Exile):

  • Баг, когда техника ИИ после захвата и сохранения в БД, не могла быть закрыта до рестарта.

 

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

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


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

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

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

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

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


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

Войти

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


Войти сейчас

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

    • Автор: NoNameUltima
      Автор:
      Я. Версия админки:
      v.R2  
      Описание:
      Админка поставляется с ключами, и подписями. Админка разделена на 2 части - клиентская, и серверная. Так же работает в оффлайн режиме.  
      Для установки админки, необходимо:
      На сервере подключить серверный мод. На сервере подключить клиентский мод. На сервере скопировать ключ из клиентского мода, и поместить в папку keys сервера. На клиенте добавить клиентский мод. В конфигурационный файл администрации прописать UID(ы) администраторов и модераторов.  
      Рабочие пункты админки:
       
      Отображение в 3D(ESP от 0 до 1000м)
      Настройки радиуса отображения Игроки. Зомби. Техника. Постройки. Объекты. Отображение на карте(в радиусе игрока от 0 до 1000м):
      Настройки радиуса отображения Игроки. Зомби. Техника. Постройки. Объекты. НПЦ. Сервер:
      Установка времени на сервере. Установка погоды на сервере(В бете). Собственные:
      Телепорт по векторам(4 - по направлению взгляда. 5 - вверх). Телепорт по карте. Неуязвимость. Бесконечный БК. Невидимость. Защита от зомби. Игроки:
      Телепорт игрока к администратору. Телепорт администратора к игроку. Телепорт в заданные координаты. Лечение. Очистка инвентаря. Выдача БК к текущему оружию(в руках). Заблокировать. Разблокировать. Убить. Отсоединить. Забанить(свой файл банов по UID) Создание объектов:.
      Фильтр при выборе раздела создания предметов(поиск по имени класса).  
      Другое:
      Админская карта. Дебаг монитор. Информационный виджет. Удаление объектов.(только при включенном дебаге - отображающем объект в прицеле).  
      Горячие клавиши:
      [        -     Вызов панели администратора. HOME     -     Вкл\Выкл отображения полосы отладки. DELETE   -    Удаление объекта в прицеле. 4  -    Телепорт по направлению взгляда. 5  -    Телепорт вверх. SHIFT+M - Карта администратора. F11 - Дебаг администратора.  
      Сообщения:
      Вывод сообщений игрокам, о действиях модератора(если в админке UID указан, как UID модератора).  
      Журналы:
      Действия администрации.  
      Стоимость:
      3500  
      Видео:( ВНИМАНИЕ! В ВИДЕО, ВНУТРИ ПАНЕЛИ АДМИНИСТРАТОРА, РАБОТАЮТ ТОЛЬКО ТЕ ПУНКТЫ КОТОРЫЕ УКАЗАНЫ ВЫШЕ! ОСТАЛЬНЫЕ ПУНКТЫ ДОБАВЛЕНЫ НА БУДУЩЕЕ, И МОГУТ БЫТЬ ИЗМЕНЕНЫ)
      P.S. Обновления платные - 25% от стоимости админки.
      Скайп: hf-trade
    • Автор: NoNameUltima
      Автор: NoNameUltima
      v. 0.2
      Стоимость: 7500
       
      Мод предоставляется в нескольких частях:
      Со стима:
      Клиентский мод со стима UltimaData (для игроков). Ключи и подписи, присутствуют. *https://steamcommunity.com/workshop/filedetails/?id=1845833890 Клиентский мод со стима Ultima(для игроков). Ключи и подписи, присутствуют. https://steamcommunity.com/sharedfiles/filedetails/?id=1845832254 Клиентский мод со стима UltimaClientAdmin(для игроков). Ключи и подписи, присутствуют. https://steamcommunity.com/workshop/filedetails/?id=1827015538 Клиентский мод для Вашего сервера! Данный мод необходимо будет переименовать(в любое имя - это Ваш мод, модифицирующий конфиг). Необходимо будет создать к нему ключи и подписи, и выложить от себя в стим. Ссылку на данный мод вы и выкладываете в стим. Серверные мод(только для сервера). Кол-во: 2. *Моды связанны между собой.
       
      Что присутствует:
      Стартовое меню:
      Добавлена ссылка на группу в ВК. Добавлена ссылка на Дискорд. Добавлен выбор для прямого захода на Ваши сервера!(возможно добавление множества серверов в одно меню). Добавлен логотип. Добавлен экран(картинка) загрузки. Добавлен экран(картинка) возрождения\захода на сервер. *Все описанные выше параметры настраиваются под Ваш сервер! Дебаг монитор:
      Наличные Банк Убито людей Убито зомби Фракция Репутация Игроков онлайн ФПС Время старта миссии Время до рестарта Собственная валюта:
      Можно забрать из трупа по экшену мышки(обыскать карманы) Можно положить в банк Можно перевести другому игроку Можно совершать покупки *Валюта виртуальная. Безопасные зоны:
      Удалены зомби из безопасных зон отключен урон по игрокам внтури безопасных зон Оповещение при входе Оповещение при выходе Торговые зоны:
      Над торговцами присутствует надпись(чем торгует) Взаимодействие с торговцами через экшен мышки(торговля) Торговля:
      Торговля может быть настроена на определенную фракцию При продаже учитывается процент повреждения объекта, и торговец даст за него сумму с учетом повреждений! Владельцем техники считается тот игрок, кто последний сидел за рулем, и именно она и  отображается в продаже. Продаваемая техника должна быть в пределах 10м от игрока. При покупке техники, ключ выдается автоматически. Нельзя продать технику если в ней кто то находится. Нельзя вести торговлю находясь внутри техники. При продаже объекта, весь инвентарь, в т.ч. и обвес который находился внутри объекта(к примеру рюкзака, или техники), будет автоматически сложен под ноги. Техника:
      Есть возможность привзяать технику к ключу, предварительно купив его у торговца. Есть возможность закрывать технику на ключ. Владельцем техники считается тот, кто последним сидел за рулем. После рестарта, вся техника которая привязана к ключам спавнится закрытой. Карта:
      Добавлена карта для игроков, открытие на CTRL+M Монитор возрождения:
      Добавлены точки для выбора места возрождения. Оповещения о смертях:
      Отдельное уведомление в окошке. Стартовый инвентарь:
      Есть возможность выдавать инвентарь как по UID, при чем случайным образом из списка доступных для данного UID'а. Игроки для которых не создан конфиг инвентаря, получают его из общего конфига. В конфиге можно указать одежду, вещи которые будут помещены в руки, вещи которые будут помещены горячие слоты, а так же есть возможность добавлять вещи сразу в комплектации(т.е. с обвесом, батарейками и т.п.) Репутация:
      При смерти с игрока снимается 200 репутации(до 0 в +-). т.е. Пример:
      Было +450, станет +250.
      Было -300, станет -100.
      Было +90, станет 0.
      Было -150, станет 0.
      За убийство игрока, репутация начисляется по 150 таким образом: Если с убитого снято менее 200 репутации(см. пример выше), то начисления нет! Если убийца был с отрицательной репутацией, то начисление идет в минус. Пример:
      Было -100, станет -250
      *Не играет роли, какая репутация была у убитого.
      Если убийца был с положительной репутацией, а убитый с отрицательной, то +150 Пример:
      Было 100, станет 250
      Если убийца был с положительной репутацией, и убитый с положительной , то -150 Пример:
      Было 100, станет -50
      Было 1000, станет 850
      Стартовые позиции игроков:
      Есть возможность возрождать игрока на точках прописанных специально под его UID, при чем случайным образом из списка доступных для данного UID'а. Игроки для которых не создан конфиг возрождения, возрождаются из общего конфига. АДМИНКА (ВКЛЮЧЕНА В МОД):
      Все пункты описывать не буду, - могу сказать только то, что все работает, и множество пунктов, такие как выдача наличных, смена фракции и т.п. сделанны специально под модификацию. СЕРВЕРНЫЕ МОДЫ:
      Настраиваются под Ваш сервер, и имею богатый функционал. доп. процедуры и функции.  
       
      В остальном смотрите видео по ссылке:
      *В данный момент, сервер с данным модом работает по адресу:
      109.68.189.18:2902
      *Для входа необходим мод сервера
      https://steamcommunity.com/sharedfiles/filedetails/?id=1860242928&searchtext=ru111&insideModal=0&requirelogin=1
       
      skype: hf-trade
       
      P.S. Обновления платные, если они вносят доп. функционал(для тех кто приобретал мод ранее: 25% от общей стоимости, до актуальной версии).
      P.S.P.S. Весь функционал является БЕТА-ВЕРСИЕЙ!
    • Автор: NoNameUltima
      Автор:
      я. Цена:
      2k Поставка:
      Серверным модом. Настройки:
      Указываете часы рестартов(пример: 0, 6, 12, 18) Время в формате чч:мм - за которое произойдет кик всех игроков.(Пример: 00:01 - за 1 минуту ДО рестарта кикнет) После кика всех игроков, скрипт будет продолжать кикать всех вновь входящих игроков, до самого рестарта сервера.
       
      Скайп:
      hf-trade vk:
      https://vk.com/id191852542
    • Автор: NoNameUltima
      Автор: Я.
      Содержание:
      Клиент серверный мод, для игроков, с выбором точки возрождения(точки можно добавлять)... На выбор точки возрождения выделено 15с(время можно изменить). При закрытии выбора точки возрождения, персонаж останется на позиции, которая была выбрана игрой. При истечении времени выделенного на выбор точки возрождения, персонаж останется на позиции, которая была выбрана игрой. Видео(youtube):
      Цена: 2500р.
       
      ЛЮБАЯ ПРОДАЖА, ПЕРЕПРОДАЖА, РАСПРОСТРАНЕНИЕ, БЕЗ СОГЛАСИЯ АВТОРА(т.е. меня), - ЗАПРЕЩЕНА!
       
      Skype: hf-trade
    • Автор: 123new
      Много вопросов на данную тему наблюдаю от новичков, попробую прояснить немного сей вопрос.
       
      Предположим. что вы уже знаете на каких координатах вам надо спавнить определенное здание или объект\животное\бота, с каким углом поворота. И так. эта тема для вас.
       
      Если вы с расставили их с модифицированной версии Offline (Offline by Arksenor это называется), то вы получили и нашли код вида:
      GetGame().CreateObject("Land_CementWorks_ExpeditionB", "13251.875000 0.0 3748.525879").SetOrientation("-96.000000 0.000000 0.000000"); GetGame().CreateObject("Land_CementWorks_ExpeditionB", "13254.599609 0.0 3722.703613").SetOrientation("-96.000000 0.000000 0.000000"); GetGame().CreateObject("Land_CementWorks_ExpeditionB", "13257.344727 0.0 3696.718750").SetOrientation("-96.000000 0.000000 0.000000"); GetGame().CreateObject("Land_CementWorks_ExpeditionB", "13260.040039 0.0 3670.984131").SetOrientation("-96.000000 0.000000 0.000000"); GetGame().CreateObject("Land_CementWorks_ExpeditionB", "13262.756836 0.0 3645.180176").SetOrientation("-96.000000 0.000000 0.000000"); GetGame().CreateObject("Land_CementWorks_ExpeditionB", "13265.441406 0.0 3619.531982").SetOrientation("-96.000000 0.000000 0.000000"); GetGame().CreateObject("Land_CementWorks_ExpeditionB", "13268.124023 0.0 3593.995361").SetOrientation("-96.000000 0.000000 0.000000"); GetGame().CreateObject("Land_CementWorks_ExpeditionB", "13270.844727 0.0 3568.186523").SetOrientation("-96.000000 0.000000 0.000000"); GetGame().CreateObject("Land_CementWorks_ExpeditionB", "13273.514648 0.0 3542.561279").SetOrientation("-96.000000 0.000000 0.000000"); GetGame().CreateObject("Land_CementWorks_ExpeditionB", "13276.195313 0.0 3517.048828").SetOrientation("-96.000000 0.000000 0.000000"); GetGame().CreateObject("Land_CementWorks_ExpeditionB", "13278.399414 0.0 3496.097900").SetOrientation("-96.000000 0.000000 0.000000"); Здесь (по примеру первой строки) 1 значение в скобках - id постройки/объекта, 2 значение - координаты в формате X Y Z, разделенные пробелом, 3 - значение поворота примерно в том же формате.
      Как это делать в Offline - статья от автора Offine:
      https://github.com/Arkensor/DayZCommunityOfflineMode/wiki/Add-custom-objects-to-your-server-or-mission
       
      И так, инструкция:
      1. Добавляем в начало init.c файла в вашей mpmissions следующий код:
      #include "$CurrentDir:mpmissions\dayzOffline.chernarusplus\spawn_buildings.c" 2. Создаем в папке вашей активной mpmissions файлик spawn_buildings.c и заполняем его следующей информацией.
      void SpawnObject( string type, vector position, vector orientation ) { private string NameBlockLog = "[CreateObject] "; private string InfoLog = ""; if(type != "") { auto obj = GetGame().CreateObject( type, "0 0 0" ); if(obj) { if ((position[0] != 0) && (position[1] != 0) && (position[2] != 0)) { obj.SetPosition( position ); obj.SetOrientation( orientation ); obj.Update(); if (obj.CanAffectPathgraph()) { obj.SetAffectPathgraph(true, false); GetGame().GetCallQueue(CALL_CATEGORY_SYSTEM).CallLater(GetGame().UpdatePathgraphRegionByObject, 100, false, obj); } InfoLog = "[Type: '" + obj.GetType() + "' Position: '" + obj.GetPosition().ToString() + "' Orientation: '" + obj.GetOrientation().ToString() + "']"; Write_Log(NameBlockLog + " Object has been created successfully! Info " + InfoLog); } else { InfoLog = "[Type: '" + type + "' Position: '" + position + "' Orientation: '" + orientation + "']"; Write_Log(NameBlockLog + " Object can't be created! Incorrect writed position. Info " + InfoLog); } } else { InfoLog = "[Type: '" + type + "' Position: '" + position + "' Orientation: '" + orientation + "']"; Write_Log(NameBlockLog + " Object can't be created! Info " + InfoLog); } } else { InfoLog = "[Type: '" + type + "' Position: '" + position + "' Orientation: '" + orientation + "']"; Write_Log(NameBlockLog + " Object can't be created! Incorrect writed type. Info " + InfoLog); } } void Write_Log(string message) { Print(String(message)); } 3. Открываем созданный нами файл,  и в конце файла дописываем следующее:
      void SpawnAirfeeldBuildings() { SpawnObject( "Land_CementWorks_ExpeditionB", "13251.875000 0.0 3748.525879", "-96.000000 0.000000 0.000000"); SpawnObject( "Land_CementWorks_ExpeditionB", "13254.599609 0.0 3722.703613", "-96.000000 0.000000 0.000000"); SpawnObject( "Land_CementWorks_ExpeditionB", "13257.344727 0.0 3696.718750", "-96.000000 0.000000 0.000000"); } void SpawnKrasnoBuildings() { SpawnObject( "Land_CementWorks_ExpeditionB", "13251.875000 0.0 3748.525879", "-96.000000 0.000000 0.000000"); SpawnObject( "Land_CementWorks_ExpeditionB", "13254.599609 0.0 3722.703613", "-96.000000 0.000000 0.000000"); SpawnObject( "Land_CementWorks_ExpeditionB", "13257.344727 0.0 3696.718750", "-96.000000 0.000000 0.000000"); } Где после void - название функции идет, а между открытыми скобками вызов спавна самих зданий на указанных координатах.
      На примере 1 строки:
      Land_CementWorks_ExpeditionB - id постройки (type)
      13251.875000 0.0 3748.525879 - координаты в формате X Y Z
      -96.000000 0.000000 0.000000 - значение поворота в формате X Y Z
      Внимание: id постройки и координаты в примере указаны не верные и требуют подключения дополнительной модификации для корректной работы!!! Координаты не соответствуют названию функции!!!
      4. открываем в MpMissions в папке с вашей активной миссией init.c и перед ЗАКРЫВАЮЩЕЙ скобкой '}' дописываем нужную нам функцию (это будет активация спавна на карте):
      SpawnAirfeeldBuildings(); 5. Готово, Запускайте сервер, и в scripts.log вы увидите процедуру спавна ваших зданий и увидите, спавнятся ли они на карте или нет.
      Можно написать конечно и более готовую, универсальную систему спавна на карте со считыванием конфигурации из файла, но я считаю это лишним.
       
      Как заполнить добавленные здания лутом на карте:
      вариант 1:
      https://github.com/Arkensor/DayZCommunityOfflineMode/wiki/Enable-loot-for-custom-placed-objects
      вариант 2: вручную заполнить xml-файл  mapgrouppos.xml в mpmssions данными о местоположении зданий, где rpy - значение поворота здания в формате Z Y X
       
      С помощью данной статьи вы можете разместить любой элемент игры(постройку, животное, зомби, бота), доступный к спавну через любую модификацию-админ. панель. Очень полезный мод в этом смысле BuilderItems, с его помощью можно творить поистину интересные локации!