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

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

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

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

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

Персональный скин, точка спавна, и сет с лутом при респавне, стартовый лут для всех!

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

S08EH0K это функция RemoveAllItems делает (примерно так по памяти), к слову, не видел чтобы кроме спама в логи это к чему-либо приводило.

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


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



Есть ли возможность прописать респавн не одному игроку, а всем? что то пока не пойму как сделать это без скрипта

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


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

123new PJIIOxa После обновы тоже не робит, надеюсь мододелы, обновите)

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


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

Не ну серьёзно, за 500 рублей хотяб обновите будьте так добры)

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


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

SergeyMaltsev1992  До обновления у меня всё работало. Сейчас сервер стартует, но почему-то не спавнит прописанных игроков. P.S. файл Script.c остался нетронутым
 

76561198072641127|SurvivorM_Elias|6|6909 0 11438 - Пример из файла с игроками

#include "$CurrentDir:\\mpmissions\\dayzOffline.chernarusplus\\InfoMessages.c"
#include "$CurrentDir:\\mpmissions\\dayzOffline.chernarusplus\\CustomBuildings.c"
#include "$CurrentDir:mpmissions\dayzOffline.chernarusplus\_MOD\ZonesClass.c"
#include "$CurrentDir:mpmissions\dayzOffline.chernarusplus\CustomSpawnPlayerConfig\Script.c"
#include "$CurrentDir:mpmissions\dayzOffline.chernarusplus\CustomSpawnPlayerConfig\Sets.c"
ref CustomSpawnPlayerConfig  My_Custom_Spawn_Parameters = new CustomSpawnPlayerConfig();
ref StartSetsPlayersConfig StartSetsPlayers = new StartSetsPlayersConfig();
void SpawnObject(string objectName, vector position, vector orientation)
{
    Object obj;
    obj = Object.Cast(GetGame().CreateObject(objectName, "0 0 0"));
    obj.SetPosition(position);
    obj.SetOrientation(orientation);

    // Force update collisions
    if (obj.CanAffectPathgraph())
    {
        obj.SetAffectPathgraph(true, false);
        GetGame().GetCallQueue(CALL_CATEGORY_SYSTEM).CallLater(GetGame().UpdatePathgraphRegionByObject, 100, false, obj);
    }
}
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, month, day, hour, minute;
	int reset_month = 9, reset_day = 20;
	GetGame().GetWorld().GetDate(year, month, day, hour, minute);

    if ((month == reset_month) && (day < reset_day))
    {
        GetGame().GetWorld().SetDate(year, reset_month, reset_day, hour, minute);
    }
    else
    {
        if ((month == reset_month + 1) && (day > reset_day))
        {
            GetGame().GetWorld().SetDate(year, reset_month, reset_day, hour, minute);
        }
        else
        {
            if ((month < reset_month) || (month > reset_month + 1))
            {
                GetGame().GetWorld().SetDate(year, reset_month, reset_day, hour, minute);
            }
        }
    }
	CustomBuildings();
	GetGame().GetCallQueue(CALL_CATEGORY_GAMEPLAY).CallLater(CustomInformation, TIME_Information_Repeat, true);
    GetGame().GetCallQueue(CALL_CATEGORY_SYSTEM).CallLater(My_Custom_Spawn_Parameters.Read_Update_Config, 120000, true); // Обновление настроек скрипта кастомных спавнов, 1 минута = 60000
}

class CustomMission: MissionServer
{	
	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)
	{
		pos = My_Custom_Spawn_Parameters.Load_And_Check_Spawnpoints(identity, pos);
        characterName = My_Custom_Spawn_Parameters.Load_And_Check_SpawnSkin_Player(identity, 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)
	{
		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("Battery9V");
			SetRandomHealth(itemEnt);
			itemBs.SetQuantity(1)

			itemEnt = itemTop.GetInventory().CreateInInventory("PersonalRadio");
			SetRandomHealth(itemEnt);
			itemBs.SetQuantity(1)

			itemEnt = itemTop.GetInventory().CreateInInventory("SodaCan_Kvass");
			SetRandomHealth(itemEnt);
			itemBs.SetQuantity(1)

			itemEnt = itemTop.GetInventory().CreateInInventory("SteakKnife");
			SetRandomHealth(itemEnt);
			itemBs.SetQuantity(1)
			
			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);
		}
	    My_Custom_Spawn_Parameters.Load_And_Check_StartLoadout(player);
	}
};
  
Mission CreateCustomMission(string path)
{
	return new CustomMission();
}
class StartSetsPlayersConfig
{	
	void StartSetsPlayer(PlayerBase player,int use_set_id)
	{
		EntityAI itemCreated = NULL;
		EntityAI itemCreated1 = NULL;
		ItemBase itemCasted = NULL;
		
		switch( use_set_id ) //Раздаем лут (можно использовать значения от 1 и выше, только не 0 и не -1)
		{
			case 1: //Сет с номером 1 (ЭКОЛОГ)
			{
				player.RemoveAllItems(); // Чтобы удалить с персонажа уже имеющиеся стандартные стартовые шмотки раскомментировать строку (не корректно работает, пишет краш лог)
				itemCreated = player.GetInventory().CreateInInventory("NBCJacketGray"); 	// Выдаем игроку КУРТКУ
				if (itemCreated)															// Проверяем, создалась ли куртка
				{
					itemCreated = player.GetInventory().CreateInInventory("FP4_SEVA_Helmet");	// Выдаем игроку Шлем
				    itemCreated = NULL;
					itemCreated = player.GetInventory().CreateInInventory("SurgicalMask");	// Выдаем игроку МАСКУ
					itemCreated = NULL;
					itemCreated = player.GetInventory().CreateInInventory("NBCPantsGray");		// Выдаем игроку ШТАНЫ
					itemCreated = NULL;
					itemCreated = player.GetInventory().CreateInInventory("NBCBootsGray");	    // Выдаем игроку ОБУВЬ
					itemCreated = NULL;
					itemCreated = player.GetInventory().CreateInInventory("CombatKnife");		// Выдаем игроку НОЖ в любой свободный слот в инвентаре
					itemCreated = NULL;	
				    itemCreated = player.GetInventory().CreateInInventory("NBCGlovesGray");	    // Выдаем игроку ПЕРЧАТКИ в любой свободный слот в инвентаре
				    itemCreated = NULL;	
					itemCreated1 = itemCreated.GetInventory().CreateInInventory("Rice");			// Добавляем в инвентарь созданного рюкзака рис
					itemCreated1 = NULL;															// Обнуляем значение переменной после работы с ней
					itemCreated1 = itemCreated.GetInventory().CreateInInventory("Canteen");			// Добавляем в инвентарь созданного рюкзака флягу
					itemCreated1 = NULL;		
					itemCreated1 = itemCreated.GetInventory().CreateInInventory("RageVirusCure");				// Выдаем игроку АНТИДОТ в рюкзак
					itemCreated1 = NULL;															// Обнуляем значение переменной после работы с ней
					itemCreated1 = itemCreated.GetInventory().CreateInInventory("RageVirusCure");				// Выдаем игроку АНТИДОТ в рюкзак
					itemCreated1 = NULL;
				}			
				break;
			}
			
			case 2: //Сет с номером 2   (BlackList)
			{
				player.RemoveAllItems(); // Чтобы удалить с персонажа уже имеющиеся стандартные стартовые шмотки раскомментировать строку (не корректно работает, пишет краш лог)
				itemCreated = player.GetInventory().CreateInInventory("MSFCMountainBagMulticamBlack"); 	// Выдаем рюкзак
				if (itemCreated)															// Проверяем, создался ли рюкзак
				{
					itemCreated1 = itemCreated.GetInventory().CreateInInventory("Rag");				// Выдаем игроку Деньги в рюкзак
					if (itemCreated1)																// Проверяем, создались ли Деньги в рюкзаке
					{
						itemCasted = ItemBase.Cast(itemCreated1);										// Выполняем преобразование в другой класс для работы с нужной нам функцией
						itemCasted.SetQuantity(2);													// Определяем количество для созданных бинтов как 500 штук 
					}
					itemCreated1 = NULL;															// Обнуляем значение переменной после работы с ней
				}
				itemCreated = player.GetInventory().CreateInInventory("MSFCBlackTekStoPlateVest");	// Выдаем игроку броник
				itemCreated = NULL;				// Обнуляем значение переменной после работы с ней
				itemCreated = player.GetInventory().CreateInInventory("Pants_SOBR");	// Выдаем игроку броник
				itemCreated = NULL;	
				itemCreated = player.GetInventory().CreateInInventory("Jacket_SOBR");	// Выдаем игроку куртку
				itemCreated = NULL;															// Обнуляем значение переменной после работы с ней
				itemCreated = player.GetInventory().CreateInInventory("MilitaryBoots_Black");	// Выдаем игроку обувь
				itemCreated = NULL;
				break;
			}
			
			case 3: //Сет с номером 3   (Военные)
			{
				player.RemoveAllItems(); // Чтобы удалить с персонажа уже имеющиеся стандартные стартовые шмотки раскомментировать строку (не корректно работает, пишет краш лог)
				itemCreated = player.GetInventory().CreateInInventory("MSFCRussianMilitaryPants"); 	// Выдаем рюкзак
				if (itemCreated)															// Проверяем, создался ли рюкзак
				{
					itemCreated1 = itemCreated.GetInventory().CreateInInventory("Rag");				// Выдаем игроку Деньги в рюкзак
					if (itemCreated1)																// Проверяем, создались ли Деньги в рюкзаке
					{
						itemCasted = ItemBase.Cast(itemCreated1);										// Выполняем преобразование в другой класс для работы с нужной нам функцией
						itemCasted.SetQuantity(2);													// Определяем количество для созданных бинтов как 500 штук 
					}
					itemCreated1 = NULL;															// Обнуляем значение переменной после работы с ней
				}
				itemCreated = player.GetInventory().CreateInInventory("fp4_ReconRus_VKPO");	// Выдаем игроку броник
				itemCreated = NULL;				// Обнуляем значение переменной после работы с ней
				itemCreated = player.GetInventory().CreateInInventory("MSFC_TacticalBelt_Multicam");	// Выдаем игроку штаны
				itemCreated = NULL;	
				itemCreated = player.GetInventory().CreateInInventory("MSFCRussianMilitaryJacketEmblem");	// Выдаем игроку куртку
				itemCreated = NULL;															// Обнуляем значение переменной после работы с ней
				itemCreated = player.GetInventory().CreateInInventory("MSFCBootsMulticamTropic");	// Выдаем игроку обувь
				itemCreated = NULL;
				break;
			}
			
			case 4: //Сет с номером 4   (Монолит)
			{
				player.RemoveAllItems(); // Чтобы удалить с персонажа уже имеющиеся стандартные стартовые шмотки раскомментировать строку (не корректно работает, пишет краш лог)
				itemCreated = player.GetInventory().CreateInInventory("MSFCSTALKERMonolitPants"); 	// Выдаем рюкзак
				if (itemCreated)															// Проверяем, создался ли рюкзак
				{
					itemCreated1 = itemCreated.GetInventory().CreateInInventory("Rice");			// Добавляем в инвентарь созданного рюкзака яблоко
					itemCreated1 = NULL;															// Обнуляем значение переменной после работы с ней
					itemCreated1 = itemCreated.GetInventory().CreateInInventory("Canteen");			// Добавляем в инвентарь созданного рюкзака яблоко
					itemCreated1 = NULL;
					itemCreated1 = itemCreated.GetInventory().CreateInInventory("Rag");					// Выдаем игроку Деньги в рюкзак
					if (itemCreated1)																// Проверяем, создались ли Деньги в рюкзаке
					{
						itemCasted = ItemBase.Cast(itemCreated1);										// Выполняем преобразование в другой класс для работы с нужной нам функцией
						itemCasted.SetQuantity(2);													// Определяем количество для созданных бинтов как 500 штук 
					}
					itemCreated1 = NULL;															// Обнуляем значение переменной после работы с ней
				}
				itemCreated = player.GetInventory().CreateInInventory("MSFCSTALKERMonolitRespirator");	// Выдаем игроку броник
				itemCreated = NULL;				// Обнуляем значение переменной после работы с ней
				itemCreated = player.GetInventory().CreateInInventory("RageVirusCure");	// Выдаем игроку броник
				itemCreated = NULL;				// Обнуляем значение переменной после работы с ней
				itemCreated = player.GetInventory().CreateInInventory("MSFCSTALKERMonolitHelmet");	// Выдаем игроку броник
				itemCreated = NULL;				// Обнуляем значение переменной после работы с ней
				itemCreated = player.GetInventory().CreateInInventory("TAG_monolit");	// Выдаем игроку штаны
				itemCreated = NULL;	
				itemCreated = player.GetInventory().CreateInInventory("MSFCNBCGlovesMulticam");	// Выдаем игроку штаны
				itemCreated = NULL;	
				itemCreated = player.GetInventory().CreateInInventory("MSFCSTALKERMonolitVest");	// Выдаем игроку штаны
				itemCreated = NULL;	
				itemCreated = player.GetInventory().CreateInInventory("MSFCSTALKERMonolitJacket");	// Выдаем игроку куртку
				itemCreated = NULL;															// Обнуляем значение переменной после работы с ней
				itemCreated = player.GetInventory().CreateInInventory("MSFCTraderBoots");	// Выдаем игроку обувь
				itemCreated = NULL;
				break;
			}
			
			case 5: //Сет с номером 5   (Чистое небо)
			{
				player.RemoveAllItems(); // Чтобы удалить с персонажа уже имеющиеся стандартные стартовые шмотки раскомментировать строку (не корректно работает, пишет краш лог)
				itemCreated = player.GetInventory().CreateInInventory("MSFCSTALKERClearSkyBag"); 	// Выдаем рюкзак
				if (itemCreated)															// Проверяем, создался ли рюкзак
				{
					itemCreated1 = itemCreated.GetInventory().CreateInInventory("Rag");				// Выдаем игроку Деньги в рюкзак
					if (itemCreated1)																// Проверяем, создались ли Деньги в рюкзаке
					{
						itemCasted = ItemBase.Cast(itemCreated1);										// Выполняем преобразование в другой класс для работы с нужной нам функцией
						itemCasted.SetQuantity(2);													// Определяем количество для созданных бинтов как 500 штук 
					}
					itemCreated1 = NULL;															// Обнуляем значение переменной после работы с ней
				}
				itemCreated = player.GetInventory().CreateInInventory("MSFCBankaSTALKEREnergy");	// Выдаем игроку броник
				itemCreated = NULL;	
				itemCreated = player.GetInventory().CreateInInventory("TAG_ClearNebo");	// Выдаем игроку броник
				itemCreated = NULL;	
				itemCreated = player.GetInventory().CreateInInventory("MSFCSTALKERClearSkyHood");	// Выдаем игроку броник
				itemCreated = NULL;	
				itemCreated = player.GetInventory().CreateInInventory("MSFCSTALKERClearSkyRespirator");	// Выдаем игроку броник
				itemCreated = NULL;	
				itemCreated = player.GetInventory().CreateInInventory("MSFCSTALKERClearSkyVest");	// Выдаем игроку броник
				itemCreated = NULL;				// Обнуляем значение переменной после работы с ней
				itemCreated = player.GetInventory().CreateInInventory("MSFCSTALKERClearSkyPants");	// Выдаем игроку штаны
				itemCreated = NULL;	
				itemCreated = player.GetInventory().CreateInInventory("MSFCSTALKERClearSkyJacket");	// Выдаем игроку куртку
				itemCreated = NULL;															// Обнуляем значение переменной после работы с ней
				itemCreated = player.GetInventory().CreateInInventory("MilitaryBoots_Black");	// Выдаем игроку обувь
				itemCreated = NULL;
				break;
			}
			
			case 6: //Сет с номером 6   (Admin set)
			{
				player.RemoveAllItems(); // Чтобы удалить с персонажа уже имеющиеся стандартные стартовые шмотки раскомментировать строку (не корректно работает, пишет краш лог)
				itemCreated = player.GetInventory().CreateInInventory("MassImprovisedBag_Green"); 	// Выдаем рюкзак
				if (itemCreated)															// Проверяем, создался ли рюкзак
				{
					itemCreated1 = itemCreated.GetInventory().CreateInInventory("Rice");			// Добавляем в инвентарь созданного рюкзака яблоко
					itemCreated1 = NULL;															// Обнуляем значение переменной после работы с ней
					itemCreated1 = itemCreated.GetInventory().CreateInInventory("Canteen");			// Добавляем в инвентарь созданного рюкзака яблоко
					itemCreated1 = NULL;
					itemCreated1 = itemCreated.GetInventory().CreateInInventory("Rag");				
					if (itemCreated1)																
					{
						itemCasted = ItemBase.Cast(itemCreated1);										
						itemCasted.SetQuantity(6);													
					}
					itemCreated1 = NULL;
				}
				itemCreated = NULL;
				itemCreated = player.GetInventory().CreateInInventory("MSFCRussianMilitaryPlateVest");	// Выдаем игроку броник
				itemCreated = NULL;
				itemCreated = player.GetInventory().CreateInInventory("MilitaryBelt");	// Выдаем игроку броник
				itemCreated = NULL;
				itemCreated = player.GetInventory().CreateInInventory("MSFCRussianMilitaryGorkaPants");		// Выдаем игроку штаны
				itemCreated = NULL;															// Обнуляем значение переменной после работы с ней
				itemCreated = player.GetInventory().CreateInInventory("MSFCRussianMilitaryGorkaJacket");	// Выдаем игроку куртку
				itemCreated = NULL;															// Обнуляем значение переменной после работы с ней
				itemCreated = player.GetInventory().CreateInInventory("MilitaryBoots_Black");	// Выдаем игроку обувь
				itemCreated = NULL;
				//itemCasted = ItemBase.Cast(itemCreated);										// Строка не нужна, закоментирована. используется для изменения класса EntityAI в ItemBase (чтобы нужные операции были доступны)
				itemCreated = player.GetInventory().CreateInInventory("CombatKnife");		// Выдаем игроку ножик в любой свободный слот в инвентаре
				itemCreated = player.GetInventory().CreateInInventory("PBS4_Suppressor");
				itemCreated = player.GetInventory().CreateInInventory("Mag_ak74_30Rnd");	// Выдаем игроку магазины в любой свободный слот в инвентаре
				itemCreated = player.GetInventory().CreateInInventory("Mag_ak74_30Rnd");	// Выдаем игроку магазины в любой свободный слот в инвентаре
				itemCreated = player.GetInventory().CreateInInventory("Mag_ak74_30Rnd");	// Выдаем игроку магазины в любой свободный слот в инвентаре
				itemCreated = player.GetInventory().CreateInInventory("Mag_ak74_30Rnd");	// Выдаем игроку магазины в любой свободный слот в инвентаре
				itemCreated = player.GetInventory().CreateInInventory("Mag_ak74_30Rnd");	// Выдаем игроку магазины в любой свободный слот в инвентаре
				itemCreated = player.GetInventory().CreateInInventory("Mag_ak74_30Rnd");	// Выдаем игроку магазины в любой свободный слот в инвентаре
				itemCreated = player.GetInventory().CreateInInventory("Mag_ak74_30Rnd");	// Выдаем игроку магазины в любой свободный слот в инвентаре
				itemCreated = player.GetInventory().CreateInInventory("Mag_ak74_30Rnd");	// Выдаем игроку магазины в любой свободный слот в инвентаре
				itemCreated = NULL;															// Обнуляем значение переменной
				itemCreated = player.GetHumanInventory().CreateInHands("FP4_AKS74U_Tactical");	// Выдаем игроку в руки
				if (itemCreated)															// Проверяем, создался ли 
				{
					itemCreated.GetInventory().CreateAttachment( "ACOGOptic" );					// Выдаем игроку оптику
					itemCreated.GetInventory().CreateAttachment( "AK_Bttstck_M" );
					itemCreated.GetInventory().CreateAttachment( "PBS4_Suppressor" );
				}
				break;
			}
			
			case 7: //Сет с номером 7   (Обычный)
			{
				player.RemoveAllItems(); // Чтобы удалить с персонажа уже имеющиеся стандартные стартовые шмотки раскомментировать строку 
				itemCreated = player.GetInventory().CreateInInventory("CourierBag"); 	// Выдаем рюкзак
				if (itemCreated)															// Проверяем, создался ли рюкзак
				{
					itemCreated1 = itemCreated.GetInventory().CreateInInventory("Rag");				// Выдаем игроку Деньги в рюкзак
					if (itemCreated1)																// Проверяем, создались ли Деньги в рюкзаке
					{
						itemCasted = ItemBase.Cast(itemCreated1);										// Выполняем преобразование в другой класс для 
						itemCasted.SetQuantity(2);													// Определяем количество для созданных бинтов как 500 
					}
					itemCreated1 = NULL;															// Обнуляем значение переменной после работы с ней
				}
				itemCreated = player.GetInventory().CreateInInventory("MSFCBankaSTALKEREnergy");	// Выдаем игроку броник
				itemCreated = NULL;	
				itemCreated = player.GetInventory().CreateInInventory("Apple");	// Выдаем игроку броник
				itemCreated = NULL;	
				itemCreated = player.GetInventory().CreateInInventory("SteakKnife");	// Выдаем игроку броник
				itemCreated = NULL;				// Обнуляем значение переменной после работы с ней
				itemCreated = player.GetInventory().CreateInInventory("CargoPants_Black");	// Выдаем игроку штаны
				itemCreated = NULL;	
				itemCreated = player.GetInventory().CreateInInventory("M65Jacket_Black");	// Выдаем игроку куртку
				itemCreated = NULL;															// Обнуляем значение переменной после работы с ней
				itemCreated = player.GetInventory().CreateInInventory("CombatBoots_Black");	// Выдаем игроку обувь
				itemCreated = NULL;
				break;
			}
			
			default: //Default starting spawn set (Сет поумолчанию для всех игроков, если хотите назначить - добавляйте здесь!)
			{
				//player.RemoveAllItems(); // Чтобы удалить с персонажа уже имеющиеся стандартные стартовые шмотки раскомментировать строку
				
				break;
			}
		}
	}
	
	void SetRandomHealthItem(EntityAI itemCreated)
	{
		if ( itemCreated )
		{
			private int rndHlt = Math.RandomInt(55,100);
			itemCreated.SetHealth("","",rndHlt);
		}
	}
}

 

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

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


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

Bounty  У меня всё работает, что стартовый для всех, что индивидуальный.

Попробуй мой скопировать...

class StartSetsPlayersConfig
{	
	void StartSetsPlayer(PlayerBase player,int use_set_id)
	{
		EntityAI itemCreated = NULL;
		EntityAI itemCreated1 = NULL;
		ItemBase itemCasted = NULL;
		
		switch( use_set_id ) //Раздаем лут (можно использовать значения от 1 и выше, только не 0 и не -1)
		{
			case 1: //Set with number 1 (Сет с номером 1)
			{
				player.RemoveAllItems(); // Чтобы удалить с персонажа уже имеющиеся стандартные стартовые шмотки раскомментировать строку (не корректно работает, пишет краш лог)
				itemCreated = player.GetInventory().CreateInInventory("AliceBag_Camo"); 	// Выдаем рюкзак
				if (itemCreated)															// Проверяем, создался ли рюкзак
				{
					SetRandomHealthItem(itemCreated);												// Выдаем рюкзаку рандомное качество
					itemCreated1 = itemCreated.GetInventory().CreateInInventory("Apple");			// Добавляем в инвентарь созданного рюкзака яблоко
					if (itemCreated1)																// Проверяем, создалось ли яблоко в рюкзаке
					{
						SetRandomHealthItem(itemCreated1);												// Выдаем яблоку рандомное качество
					}
					itemCreated1 = NULL;															// Обнуляем значение переменной после работы с ней
					itemCreated1 = itemCreated.GetInventory().CreateInInventory("Rag");				// Выдаем игроку бинты в рюкзак
					if (itemCreated1)																// Проверяем, создались ли бинты в рюкзаке
					{
						itemCasted = ItemBase.Cast(itemCreated1);										// Выполняем преобразование в другой класс для работы с нужной нам функцией
						itemCasted.SetQuantity(4);														// Определяем количество для созданных бинтов как 4 штуки
						SetRandomHealthItem(itemCreated);												// Выдаем бинтам рандомное качество 
					}
					itemCreated1 = NULL;															// Обнуляем значение переменной после работы с ней
				}
				itemCreated = NULL;															// Обнуляем значение переменной после работы с ней
				itemCreated = player.GetInventory().CreateInInventory("OMNOGloves_Gray");		// Выдаем игроку штаны
				itemCreated = NULL;															// Обнуляем значение переменной после работы с ней
				itemCreated = player.GetInventory().CreateInInventory("MilitaryBeret_ChDKZ");	// Выдаем игроку куртку
				itemCreated = NULL;															// Обнуляем значение переменной после работы с ней
				itemCreated = player.GetInventory().CreateInInventory("HighCapacityVest_Black");	// Выдаем игроку обувь
				itemCreated = NULL;
				itemCreated = player.GetInventory().CreateInInventory("AviatorGlasses");
				itemCreated = NULL;
				itemCreated = player.GetInventory().CreateInInventory("BandanaMask_CamoPattern");
				itemCreated = NULL;
				itemCreated = player.GetInventory().CreateInInventory("CargoPants_Black");
				itemCreated = NULL;
				// Обнуляем значение переменной после работы с ней
				//itemCasted = ItemBase.Cast(itemCreated);										// Строка не нужна, закоментирована. используется для изменения класса EntityAI в ItemBase (чтобы нужные операции были доступны)
				itemCreated = player.GetInventory().CreateInInventory("CombatKnife");		// Выдаем игроку ножик в любой свободный слот в инвентаре
				itemCreated = player.GetInventory().CreateInInventory("FNX45");				// Выдаем игроку FNX в любой свободный слот в инвентаре
				itemCreated = player.GetInventory().CreateInInventory("Mag_FNX45_15Rnd");	// Выдаем игроку магазины к FNX в любой свободный слот в инвентаре
				itemCreated = player.GetInventory().CreateInInventory("Mag_FNX45_15Rnd");	// Выдаем игроку магазины к FNX в любой свободный слот в инвентаре
				itemCreated = player.GetInventory().CreateInInventory("Mag_FNX45_15Rnd");	// Выдаем игроку магазины к FNX в любой свободный слот в инвентаре
				itemCreated = player.GetInventory().CreateInInventory("Mag_AKM_30Rnd");
		        itemCreated = player.GetInventory().CreateInInventory("Mag_AKM_30Rnd");		// Выдаем игроку магазины к AKM в любой свободный слот в инвентаре
				itemCreated = player.GetInventory().CreateInInventory("Mag_AKM_30Rnd");
				itemCreated = player.GetInventory().CreateInInventory("Mag_AKM_30Rnd");
                itemCreated = player.GetInventory().CreateInInventory("Mag_AKM_30Rnd");		// Выдаем игроку магазины к AKM в любой свободный слот в инвентаре
				itemCreated = NULL;					                                        // Обнуляем значение переменной
				itemCreated = player.GetHumanInventory().CreateInHands("AKM");				// Выдаем игроку AKM в руки
				if (itemCreated)															// Проверяем, создался ли АКМ
				{
					itemCreated.GetInventory().CreateAttachment( "PSO1Optic" ); 				// Выдаем игроку на AKM оптику ПСО 11 и крепим
					itemCreated.GetInventory().CreateAttachment( "AK_WoodHndgrd" ); 			// Выдаем игроку на AKM цевье, приклад и глушитель, и крепим
					itemCreated.GetInventory().CreateAttachment( "ImprovisedSuppressor" );				// Выдаем игроку на AKM цевье, приклад и глушитель, и крепим
				}			
				break;
			}
			
			case 2: //Set with number 2  (Сет с номером 2)
			{
				break;
			}
			
			case 3: //Set with number 3   (Сет с номером 3)
			{
				break;
			}
			
			case 4: //Set with number 4   (Сет с номером 4)
			{
				break;
			}
			
			case 5: //Set with number 5   (Сет с номером 5)
			{
				break;
			}
			
			case 6: //Set with number 6   (Сет с номером 6)
			{
				break;
			}
			
			default: //Default starting spawn set (Сет поумолчанию для всех игроков, если хотите назначить - добавляйте здесь!)
			{
				player.RemoveAllItems(); // Чтобы удалить с персонажа уже имеющиеся стандартные стартовые шмотки раскомментировать строку (не корректно работает, пишет краш лог)
				itemCreated = player.GetInventory().CreateInInventory("FurCourierBag"); 	// Выдаем рюкзак
				itemCreated = player.GetInventory().CreateInInventory("CombatKnife");		// Выдаем игроку ножик в любой свободный слот в инвентаре
				itemCreated = player.GetInventory().CreateInInventory("Ammo_762x39");	// Выдаем игроку магазины к FNX в любой свободный слот в инвентаре
				itemCreated = player.GetInventory().CreateInInventory("Ammo_762x39");	// Выдаем игроку магазины к FNX в любой свободный слот в инвентаре
				itemCreated = NULL;					                                        // Обнуляем значение переменной
				itemCreated = player.GetHumanInventory().CreateInHands("SawedoffIzh18");				// Выдаем игроку AKM в руки
				itemCreated = player.GetInventory().CreateInInventory("WaterBottle");
				itemCreated = player.GetInventory().CreateInInventory("TacticalBaconCan");
				itemCreated = player.GetInventory().CreateInInventory("ChernarusMap");
				itemCreated = player.GetInventory().CreateInInventory("Compass");
				itemCreated = player.GetInventory().CreateInInventory("MoneyRuble100");
				itemCreated = player.GetInventory().CreateInInventory("MoneyRuble100");
				itemCreated = player.GetInventory().CreateInInventory("MoneyRuble100");
				itemCreated = player.GetInventory().CreateInInventory("CanvasPants_Red");		// Выдаем игроку штаны
				itemCreated = NULL;															// Обнуляем значение переменной после работы с ней
				itemCreated = player.GetInventory().CreateInInventory("DenimJacket");	// Выдаем игроку куртку
				itemCreated = NULL;															// Обнуляем значение переменной после работы с ней
				itemCreated = player.GetInventory().CreateInInventory("AthleticShoes_Blue");	// Выдаем игроку обувь
				itemCreated = NULL;															// Обнуляем значение переменной после работы с ней
				break;
			}
		}
	}
	
	void SetRandomHealthItem(EntityAI itemCreated)
	{
		if ( itemCreated )
		{
			private int rndHlt = Math.RandomInt(55,100);
			itemCreated.SetHealth("","",rndHlt);
		}
	}
}
#include "$CurrentDir:mpmissions\dayzOffline.chernarusplus\CustomSpawnPlayerConfig\Script.c"
#include "$CurrentDir:mpmissions\dayzOffline.chernarusplus\CustomSpawnPlayerConfig\Sets.c"
ref CustomSpawnPlayerConfig  My_Custom_Spawn_Parameters = new CustomSpawnPlayerConfig();
ref StartSetsPlayersConfig StartSetsPlayers = new StartSetsPlayersConfig();
//Spawn helper function
void SpawnObject( string type, vector position, vector orientation )
{
    auto obj = GetGame().CreateObject( type, position );
    obj.SetPosition( position );
    obj.SetOrientation( orientation );
    //Force collision update
    vector roll = obj.GetOrientation();
    roll [ 2 ] = roll [ 2 ] - 1;
    obj.SetOrientation( roll );
    roll [ 2 ] = roll [ 2 ] + 1;
    obj.SetOrientation( roll );
}

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);
	}
	
	GetGame().GetCallQueue(CALL_CATEGORY_GAMEPLAY).CallLater(CustomInformation, TIME_Information_Repeat, true);
	GetGame().GetCallQueue(CALL_CATEGORY_SYSTEM).CallLater(My_Custom_Spawn_Parameters.Read_Update_Config, 120000, true); // Обновление настроек скрипта кастомных спавнов, 1 минута = 60000
}

class CustomMission: MissionServer
{	
	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)
	{
		pos = My_Custom_Spawn_Parameters.Load_And_Check_Spawnpoints(identity, pos);
        characterName = My_Custom_Spawn_Parameters.Load_And_Check_SpawnSkin_Player(identity, 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)
	{
		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);
			
			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);
		}
		My_Custom_Spawn_Parameters.Load_And_Check_StartLoadout(player);
	}
};
  
Mission CreateCustomMission(string path)
{
	return new CustomMission();
}

 

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


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

SergeyMaltsev1992 Твой тоже не работает. Кастомный лут при спавне который прописан в default дает а вот сеты и спавн по координатам - нет

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

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


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

Спавн сейчас не сделать? 

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


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

Bounty Мне вообще кажется у тебя на правильно координаты выставлены, 000.000 000.000 000.000 не вот так ли должно быть?

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


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

SergeyMaltsev1992 Не имеет особого значения. До этого и так нормально спавнился. Ты у себя попробуй прописать будешь так же рандомно спавниться, но с лутом. По координатам - на этом патче пока что никак

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


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

Bounty 

Ниче не понял

Ошибки какиенить пишет? Или просто не работает?

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


Ссылка на сообщение
Поделиться на других сайтах
В 01.07.2019 в 00:31, Bounty сказал:

SergeyMaltsev1992 Твой тоже не работает. Кастомный лут при спавне который прописан в default дает а вот сеты и спавн по координатам - нет

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

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


Ссылка на сообщение
Поделиться на других сайтах
В 04.07.2019 в 09:30, 123new сказал:

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

Как бы я ни переписывал инит, ни менял файлы - не работает к сожалению((((

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


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

Как бы я ни переписывал инит, ни менял файлы - не работает к сожалению((((

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

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


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

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

#include "$CurrentDir:mpmissions\dayzOffline.chernarusplus\CustomSpawnPlayerConfig\Script.c"
#include "$CurrentDir:mpmissions\dayzOffline.chernarusplus\CustomSpawnPlayerConfig\Sets.c"
ref CustomSpawnPlayerConfig  My_Custom_Spawn_Parameters = new CustomSpawnPlayerConfig();
ref StartSetsPlayersConfig StartSetsPlayers = new StartSetsPlayersConfig();

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, month, day, hour, minute;
	int reset_month = 9, reset_day = 20;
	GetGame().GetWorld().GetDate(year, month, day, hour, minute);

    if ((month == reset_month) && (day < reset_day))
    {
        GetGame().GetWorld().SetDate(year, reset_month, reset_day, hour, minute);
    }
    else
    {
        if ((month == reset_month + 1) && (day > reset_day))
        {
            GetGame().GetWorld().SetDate(year, reset_month, reset_day, hour, minute);
        }
        else
        {
            if ((month < reset_month) || (month > reset_month + 1))
            {
                GetGame().GetWorld().SetDate(year, reset_month, reset_day, hour, minute);
            }
        }
    }
	
	GetGame().GetCallQueue(CALL_CATEGORY_SYSTEM).CallLater(My_Custom_Spawn_Parameters.Read_Update_Config, 120000, true); // Обновление настроек скрипта кастомных спавнов, 1 минута = 60000
}

class CustomMission: MissionServer
{	
	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)
	{
		pos = My_Custom_Spawn_Parameters.Load_And_Check_Spawnpoints(identity, pos);
		characterName = My_Custom_Spawn_Parameters.Load_And_Check_SpawnSkin_Player(identity, 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)
	{
		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);
			
			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);
		}
		My_Custom_Spawn_Parameters.Load_And_Check_StartLoadout(player);
	}
};
  
Mission CreateCustomMission(string path)
{
	return new CustomMission();
}

Инит

Скачал с шапки Сеты и Скрипт, заменил, реакции никакой.

76561198041382035|SurvivorM_Quinn|1|11894.5 140.06 12435.7
единственная строка из CustomSpawnPlayerConfig

Буду благодарен, если поможете понять что я сделал не так.
Спасибо!

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


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

Snaret не работает в каком именно виде? Крашится? Просто ничего не выдается? Как вообще?

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


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

123new вообще ни как не работает. Ни лута ни спавна.

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


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

Snaret с конфига сервера сверяли блок, где  указывается папка активной миссии сервера с фактической папкой в mpmissions?

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


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

123new да, папка именно template="dayzOffline.chernarusplus"

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


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

Snaret uid сверяли? и что в script.log на момент тестирования происходит? можете его скинуть?

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


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

А у меня как-то странно, не всегда появляется в той точке, рандомно, где она вписана, но в сете появляется каждый раз, у меня немного по-другому скрипт и код написан

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

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


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

123new UID 100% верен, лог не сохранил(( позже еще попробую, скину

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


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

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

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

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

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

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

Войти

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

Войти сейчас

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

    • Автор: paranoyk
      ©(краткая ода как я выносил себе мозг с помощью лута)
      Настроить лут на сервере постарались сразу после релиза ибо многое "не там и не тут"....
      Первая фигура Марлезонского балета.
       
         Файлов которые отвечают за лут прямым и коственным образом,судя по всему мнго,но настройки которые нам доступны сосредоточены в папке mpmissions\dayzOffline.chernarusplus  и mpmissions\dayzOffline.chernarusplus\db
       
      cfglimitsdefinition.xml -файл в котором обозначены категории лута, тэги спавна, классы объектов для спавна и зоны спавна.(если я правельно понял,в информатике это называеться "заданием классов" или как то так). Даллее с чем я экспериментировал.
       
              <category name="......."/> Спавнящийся лут имеет (а может и не иметь) определенную категорию и только одну. Сюда можно вписать свою категорию и давать её предметам.(в файле тайпс)
         Тэги...  в ванили
              <tag name="floor"/>
              <tag name="shelves"/>
              <tag name="ground"/>
      Лут может иметь или не иметь, для более точного "определения" что и где должно спавнится. Можно вводить свои и потом в mapgroupproto.xml вставлять в нужном мест. Если нет-спавнятся везде, если для лута есть тэг, только в тех местах где тэг присутствует .("пол"," полка","земля"-всего лишь для удобства и понимания, можно назвать тэг хоть "мистер питкин", без кирилицы ебстестенно, вводится в другом файле о чём ниже)
         Классы объектов для спавна
              <usage name="......."/> Стационарные объекты имеют в своём обозначении один или несколько таких классов имён. Легко можно прописать свой и дать его категории стационарных объектов или объекту. (правда уникальных объектов на карте-раз,два и обчёлся). Опять таки используется в тайпс. Лут может иметь или нет. (насчёт нескольких-не проверял, но не советую).
      Прописав свой к примеру "MyBox"....и потом в mapgroupproto.xml у военных контейнеров убрав все классы и оставив только этот, в нём будут спавниться только те предметы которым вы в "тайпс" пропишите данную категорию. Так же есть на карте СЕ в виде пятен, минус в том что нанесены они небрежно, результат-спавн к примеру медпредметов в машинах и киосках больницы Черногорска. Любой объект попавший в ореол получит спавн только обозначенного ореола. (после патча 1.20 стало проблематично сразу ввести новый класс, мгновенно ломается вся экономика. Приходится несколько раз пробовать с разными именами)
         Зоны спавна
              <value name="....."/> Тиры и иже с ними. Глобальные зоны на карте для определения спавна. Лут может иметь несколько или ни одного. Будет спавнится только там, если не оговорено особые условия. см опис. тайпс) И как они нанесены на карту-опять таки СЕ редактор... (картинка устаревшая).

      Они могут накладыватся друг на друга. Так же их можно редактировать в редакторе СЕ.
       
      mapgrouppos.xml - Файл в котором определяться координаты точки "карты" лута для каждого обьекта.(мдя,чего я счас сморозил то)
      То есть указывает спавнеру "в этой точке будет спанится лут по "сетке" из файла mapgroupproto " и если там ЕСТЬ описание. Это не место спавна лута конкретно, а место спавна массива координат по которым спавнится лут. Проще всего это понять если у вас есть нормальный маппинг со спавном....и убрать маппинг-лут будет спавнится в старых местах и даже висеть в воздухе. (получить все точки для "спавна" можно с помощью команд в init )
      Пример:
          <group name="Land_Misc_FeedShack" pos="80.255409 113.792282 4422.158691" rpy="-0.000000 0.000000 -70.013718" a="160.013718" />
       
      Land_Misc_FeedShack - название обьекта из файла mapgroupproto ,его ID...Можно написать хоть "Мой генимальный спавн". И спавнер если найдёт в mapgroupproto объект с таким названием-заспавнит лут по сетке. (вот ещё способ как модифицировать спавн лута).
      pos="80.255409 113.792282 4422.158691" rpy="-0.000000 0.000000 -70.013718" - координаты центра "карты" лута для этого обьекта, совпадают с координатами обьекта
      формат записи X-Y-Z завал,наклон,поворот.
      a="........" Вектор поворота карты лута обьекта относительно самого обьекта.
      Как он определяется - экспериментально выяснил в принципе....(угол поворота объекта - 90)х(-1)...как то там ещё можно возиться переводить с +360, но я просто пишу полученное значение и всё работает.
      Да-да,именно тут прописывается что в вашей точке появляется лут и если он имеет прописанную сетку лута в mapgroupproto .(имееться ввиду в оффлайн редакторе поставив "француз"-тут вы пропишите в него лут,как прописать в он-лайн сам обьект-другая история под названием "возврат водяных колонок"). Сам объект НЕ НУЖЕН даже. Он всего лишь декорация карты и для спавна ка видите НЕ НУЖЕН.
       
      mapgroupproto.xml - Файл в котором прописана "карта" лута для объекта. Вначале идёт описание для "дефолта" ,то есть деревьев и растений,а также камней! (тут я не понял,но ...это нам и не нужно,яблоки падают и хорошо..)
      Пример:
              <group name="Land_Tisy_Barracks"> - название обьекта, ID ИЛИ придуманный вами обьект.
                      <usage name="Military" /> - класс имени обьекта,может быть не один. (а если вы ввели свои-писать именно сюда)
                      <container name="lootFloor" lootmax="8"> - имя "контейнера" и максимальное количество лута которое может там появиться.(количество лута может быть и не обозначено,но если есть-никогда не будет больше чем количество точек спавна что ниже. НЕ РАБОТАЕТ- можно даже не мучатся, есть подозрения что количество лута ни как не изменить именно этой переменной для обьекта. )
                              <category name="tools" /> - класс лута который будет спавниться в данном "контейнере" ,может быть не один.                      
                             <tag name="ground" /> - тэг лута который будет спавнится.(может быть несколько). Спавн лута с этим тэгом. Если у лута нет тэга-спавн ТОЖЕ.
                              <point pos="-2.429444 -3.799637 3.698242" range="1.199951" height="2.000000" flags="32" /> - точка спавна лута, расстояние по X-Y-Z от центральной точки "карты лута" (где она,можно выяснить только эксперементально для каждого обьекта или в редакторе или...с помощью мода).
      range="......." радиус спавна от заданной точки, то есть в этом "круге" будет спавниться лут.(не точно,если обьект имеет большие линейные размеры-не заспанится)
      height="........."-высота объекта спавна,как я понял....(не точно,если обьект имеет большие линейные размеры-не заспавнится)
      flags="32" -  указание что спавн лута будет на уровне земли игнорируя координаты по высоте. Грубо говоря к примеру если спавн вокруг елки рождественской -весь лут будет лежать на земле. Вокруг ёлки. Или округ "воображаемой точки", если надо.
      ниже всё тоже самое, но для своего "контейнера" данном здании.То есть обьект может иметь несколько контейнеров.
      </container> <container name="lootshelves" lootmax="8"> <category name="tools" /> <category name="containers" /> <category name="clothes" /> <tag name="shelves" /> <point pos="0.968751 -3.434326 7.507324" range="0.581250" height="0.532341" /> .................................................. </container> <container name="lootweapons" lootmax="8"> <category name="weapons" /> <category name="explosives" /> <point pos="3.985354 -3.434326 6.267576" range="0.478125" height="0.533684" /> ................................................... </container> </group>  
      cfgrandompresets.xml - Файл в котором мы найдём так называемые "грузы"-группы предметов спавнящихся в предметах,зомби и тому подобное....(судя по всему сделано для удобства)
              <cargo chance="0.35" name="foodVillage"> - шанс появления  и его название.
      Тут маленькое отступление. Поначалу я тоже думал что это какие то проценты, да так легче воспринимать. Но таки и немного не так. Просто опишу как спавнер "думает".
      "Обьект имеет спавна внутри, получаем псевдослучайное число от 0 до 1. Сравниваем. Псевдочисло больше-нет спавна, иначе-спавн есть". Будем привычно называть его "шанс" и обозначим его как проценты, но ещё раз это НЕ ПРОЦЕНТЫ в прямом смысле.
                      <item name="SodaCan_Cola" chance="0.11" /> - название (ID) предмета и его шанс выпадения
      .......................................................................
                      <item name="SpaghettiCan" chance="0.11" />
                      <item name="BakedBeansCan" chance="0.11" />
              </cargo>
       То есть "груз" foodVillage может выпасть в 35% случаев, если условее истинно,то может выпасть предмет из списка с вероятностью которая задана для предмета или ,если ни один предмет не прошёл-то опять таки ничего не выпадет. Выпадает только один предмет из списка, так и не выяснил,влияет ли очерёдность списка предметов или нет. То есть возможностей настройки тут-море,кто хорошо разбираеться в теорией вероятности поймёт данный раздел влёгкую.
      Дополненно. Судя по всему спавнер не перебирает все предметы,а выбирает "случайно" какой тоодин и проверяет его.
       
      Можно создавать свои собственные "миксы"....к примеру.
      </cargo> <cargo chance="1.0" name="mixOptics"> <item name="PUScopeOptic" chance="0.33" /> <item name="PSO1Optic" chance="0.33" /> <item name="HuntingOptic" chance="0.3" /> </cargo> То есть "микс" появиться стопроцентно в объекте из него может выпасть....с вероятностью 33% ...перечисленные вещи.
      Важно помнить,что если размер "контейнера" маленький (к примеру мишка),то в нём ни как не заспавниться ПСО-1. Размер имеет значение.
       
      cfgspawnabletypes.xml - Список тех вещей, "контейнеры" в которых спавняться наборы из прошлого файла.
      Так же можно прописать спавн в контейнер отдельной вещи.
      И самое важное!
      Именно тут можно указать степень износа заспавненых вещей по отдельности, если степень износа не указана-вещь будет иметь износ зданный в файле globals.xml, это строчки:
      "LootDamageMax" и "LootDamageMin" .
      Но это не относится что спавнится в них, то есть наборы грузов, аттачменты и сами грузы в контейнере всегда будут "идеальны".....(но контейнером может стать и обычная вещь!)
      Тут же прописывается аттачменты если они есть и вы хотите заспавнитьвещь с прикреплёным аттачем.
          <type name="ammobox"> - название (ID) вещи-контейнера.
          <damage min="0.0" max="0.0" /> - этой строчки может и не быть, тогда износ будет взят из "глобалс". Означает что лут будет иметь при спавне не меньше едениц урона и не больше. То есть если выствите
      min=0.2 то лут всегда будет всегда иметь при спвне 20% урона. Не меньше, максимальный урон это max, поставите к примеру 0,9 то вещи даже заруиненые будут спавнится.
      Пороги когда вещь считается неповреждённой,а когда поношеной и тк.дл.-в другом файле и меняется уже сервер модом.
           <cargo preset="optics" /> -название набора который может появиться внутри с шансом( как было описано выше)....
      ........................................
              <cargo preset="ammoArmy" />
          </type>
      То есть можно прописать несколько наборов и если из каждого заспавниться вещь,то ограничение только "размер" контейнера и вещей.
      Так же тут есть наборы аттачей для зомби, о них ниже, собраны примерно также.
       
      Вторая фигура Марлезонского балета.
       
      <type name="ZmbM_PatrolNormal_Autumn"> <cargo preset="foodArmy" /> <cargo preset="ammoArmy" /> </type>   Вот вам и первый "ходячий" контейнер.....Увеличив к примеру в cfgrandompresets.xml шанс выпадения данных наборов-получите "доставщиков пиццы на дом".
      Но не в каждом зомби такой набор и опять таки,вы можете их менять,добавлять,убирать....
      А так же для зомби тут прописано что них может быть одето в виде аттачей. Не все зомби такое могут,смотреть нужно по ванильным файлам.
      Пример:
      <type name="ZmbM_HunterOld_Winter">-наш подопытный <cargo preset="foodHermit" />-набор лута в зомби <cargo preset="toolsHermit" />-набор лута в зомби <attachments preset="glassesVillage" />-какой набор может прирепится на местоаттача (очки в данном случае) <attachments preset="hatsFarm" />-какой набор может прирепится на местоаттача (кепка в данном случае) <attachments preset="bagsHunter" />-какой набор может прирепится на местоаттача (рюкзак в данном случае) <attachments preset="vestsHunter" />-какой набор может прирепится на местоаттача (разгрузка\броник в данном случае) </type> (очки ни когда не прописывайте-не работают)
       
         А дальше-оружие...(так,дышите глубже)
       
          <type name="CZ61"> - ID оружия
              <attachments chance="0.10"> -Шанс что на нём будет прикреплён аттачмент 10%
                  <item name="AK_Suppressor" chance="1.00" /> - шанс появления самого аттачмента 100%
      (не факт что так и надо,просто так проще высчитыывать процент появления аттачементов на оружии)
              </attachments>
              <attachments chance="0.30"> -то же самое и для другого аттачмента,обратите внимание,что мы не смешиваем в одну кучу "глушители и магазины"...
                  <item name="Mag_CZ61_20Rnd" chance="1.00" />
              </attachments>
          </type>
      А если хочется "АКМ" что бы мог спавниться в полном обвесе?
      А легко...
      <type name="AKM"> <damage min="0.0" max="0.5" /> <attachments chance="1.00"> <item name="AK_WoodBttstck" chance="0.80" /> <item name="AK_PlasticBttstck" chance="0.30" /> <item name="AK_FoldingBttstck" chance="0.40" /> </attachments> <attachments chance="1.00"> <item name="AK_WoodHndgrd" chance="0.80" /> <item name="AK_PlasticHndgrd" chance="0.30" /> <item name="AK_RailHndgrd" chance="0.10" /> </attachments> <attachments chance="0.30"> <item name="Mag_AKM_30Rnd" chance="1.00" /> </attachments> <attachments chance="0.30"> <item name="AK_Suppressor" chance="0.50" /> </attachments> Видим что он может появляться с разными прикладами, цевьями, может с глушителем или без,с магазином или без....(хотите,можете и ПСО ему прописать).
       
      Как видитев в этом файле нет многих вещей, тут нет ни ИЖ18,ни МП133....и они,гады спавняться всегда как прописано в globals.....Стоит добавить
          <type name="Izh18">
               <damage min="0.0" max="0.2" />
          </type>
      .....и ИЖ18 будет спавниться с дамагом который вы установили!
      Думаете это всё?....Индейское жилище-фигвам!
      Машины!....
      <type name="OffroadHatchback"> <attachments chance="1.00"> <item name="HatchbackWheel" chance="0.60" /> </attachments> <attachments chance="1.00"> <item name="HatchbackWheel" chance="0.60" /> </attachments> <attachments chance="1.00"> <item name="HatchbackWheel" chance="0.40" /> </attachments> <attachments chance="1.00"> <item name="HatchbackWheel" chance="0.40" /> </attachments> <attachments chance="1.00"> <item name="HatchbackWheel" chance="0.20" /> </attachments> <attachments chance="1.00"> <item name="CarRadiator" chance="0.20" /> </attachments> <attachments chance="1.00"> <item name="CarBattery" chance="0.30" /> </attachments> <attachments chance="1.00"> <item name="HeadlightH7" chance="0.40" /> </attachments> <attachments chance="1.00"> <item name="HeadlightH7" chance="0.40" /> </attachments> <attachments chance="1.00"> <item name="HatchbackDoors_Driver" chance="0.30" /> </attachments> <attachments chance="1.00"> <item name="HatchbackDoors_CoDriver" chance="0.30" /> </attachments> <attachments chance="1.00"> <item name="HatchbackHood" chance="0.20" /> </attachments> <attachments chance="1.00"> <item name="HatchbackTrunk" chance="0.20" /> </attachments> </type> Это он так выглядит сейчас вроде...раньше было всё намного хуже...Машина стандартно спавнилась с ОДНИМ колесом.
      Можете изменить аттачментам шансы хоть до "1.00" что бы машина спавнилась сразу собранная.(залить в неё жидкости-знает Боррзик,описывал на форуме,ищите).
      Правда мы подло могЁм положить в машину.....бензин,масло...можно и ремкомплект.
       
              <attachments chance="1.00">
                  <item name="SparkPlug" chance="0.6" />
              </attachments>
              <attachments chance="1.00">
                  <item name="EngineOil" chance="0.5" />
              </attachments>
              <attachments chance="1.00">
                  <item name="EngineOil" chance="0.5" />
              </attachments>
              <attachments chance="1.00">
                  <item name="EngineOil" chance="0.5" />
              </attachments>
       
      (в этом же файле,ПОЗЖЕ,появились и рождественские наборы...но было уже поздно-бегемоты должны быть повешаны!)
      Дальше мы можем мелочь привесть к предметам,обычно это батарейка
      Но можно и "предмет в предмете"! Поле для извращений-огромно.
      Как пример:
       
      <type name="PersonalRadio"> <attachments chance="0.30"> <item name="Battery9V" chance="1.00" /> </attachments> </type> <type name="GPSReceiver"> <attachments chance="0.30"> <item name="Battery9V" chance="1.00" /> </attachments> </type> Файлы с названием по типу mapgroupcluster.xml -это тот же mapgrouppos для камней, грибов,яблок и прочего.
      Глыбжее,ширее,нижее. Преходим в папку db
       
      events.xml - файл в котором описаны "случайные"  события,такие как зомби,полицейская волга, хеликраш, адми...тоесть петух!, ну и прочие коровы и звери.
      Например
       
          <event name="AnimalCow"> -название ивента. Можно прописывать свои НО! Название ивента может начинатся ТОЛЬКО строго определенно.
      аnimal - события с животными.
      static - для спавна статичных ивентов типа Ми-8 или дома...
      item - Для различных игровых предметов,как пример в ванили - блок досток.
      Infected-зомби
      Trajectory - спавн грибов,ягод и прочих камней
       
      <nominal>10</nominal> - Колличество ивентов на карту единомоментно.То есть сразу. Именно ИВЕНТОВ. Десять машин, десять СТАЙ волков, десять ТОЧЕК спавна зомби....(может и меньше если невозможно заспавнить ивент из-за других условий, к примеру наличие игрока на спавне)

      <min>6</min> -  минимальное количество дочерних объектов указанных в <children> в ивенте
      <max>15</max> - максимальноеколичество дочерних объектов указанных в <children> в ивенте
      (обычно для стай волков и прочих живых организмов)
      Причем от 6 до 15 ВСЕХ вписанных <children>. А вот сколько конкретно каждого,это  уже в них настраивается

       <lifetime>180</lifetime> - "время жизни" события Именно СОБЫТИЯ. То есть заспавнаня ивентом машина-пока стоит на точке спавна-это СОБЫТИЕ,как только вы отехали-это уже лут и время её жизни будет считыватся с (не кночи будет помянут сей файл) тайпса.

       <restock>0</restock> - на сколько будет отложен спавн ивента до номинала, когда остальные условия для начала ивента выполнены.
      Думате если два хеликраша они исчезнут и заспавнятся одновременно? Ага,счасЗъ. Тут зависит от много,даже от взаимодействия с ними игрока.

      <saferadius>200</saferadius> - это расстояние от позиции игрока, на котором может возникнуть это событие.(поставте для интреса 50 для зомби:)))
       <distanceradius>0</distanceradius> - минимальное расстояние от другого события.(очень актульно для машин, решать вам)
      <cleanupradius>0</cleanupradius> - это расстояние от позиции игрока, на котором событие исчезнет после того, как время жизни закончится. (добвлено- для хеликрашей имхо лучше ставить ОЧЕНЬ большое,с хороший километр)
      <secondary>InfectedArmy</secondary> - это имя другого события, которое вы хотите вызвать одновременно с этим событием, например, чтобы вызвать зомби вокруг здания или предмета. Настраивается в дочернем событии.(можно создать свой, но смешать зомбей с волками-не получится, генетика не та)
      <flags deletable="0" init_random="0" remove_damaged="1" sec_spawner="0"/> -флаги настройки
      deletable 1/0 - ивент удалятеся согласно параметрам самого события или по истечению времени в тайпс (не точно)...ИМХО
      init_random 1/0 - ???
      remove_damaged 1/0 -  будет ли событие удаляться если достигла состояния "уничтожено" или останется лежать до истечения срока события.(актуально для машин...но ТОЛЬКО НА ТОЧКЕ СПАВНА!)
      sec_spawner="0" - сорри не знаю, а чего не знаю-не меняю.
      <position>fixed</position>
      <position>player</position> - позиция будет выбираться из зафиксированых в файле cfgeventspawns.xml или событие срабатывает "на игрока".

      <limit>.......</limit> - может быть следующии
      custom - относится к внешнему файлу, например, для территорий животных.
      child - событие будет обращатся к атрибутам min и max каждого дочернего элемента
      parent - lотносятся к минимальным и максимальным атрибутам самого события
      mixed -  будет учитыватся и дочерние и собсвенное min-max события
       
      <active>1/0</active> - включение и выключение события.(Вот она кнопка!)
       
       <children>
                  <child lootmax="0" lootmin="0" max="3" min="0" type="Animal_BosTaurusF_Brown"/>
      lootmax="0" lootmin="0" ....если предмет имеет сетку лута или контейнер -колличество лута при спавне (а теперь фокус, если в ивенте есть <secondary> с зомбями то их колличество будет равно.... мин + макс)
      max="3" min="0" ......минимальное и максимальное колличество дочерних обьектов. (к примеру-коров данного типа в стаде)
       
      types.xml-великий и ужасный.Содержит в себе данные о всём спавнещемся луте и контейнерах (хеликраши,машины,зомби-по сути-контейнеры).
      Всякий лут должен быть в этом файле иначе-нет его спавна на карте. Также и синтаксическая ошибка в этом файле приводит к исчезновению всего лута с карты.
      Если из него убрать что-то,(но этот предмет останеться лежать на земле до истечения срока)....и игрок его поднимет-краш.Так что файл требует трезвого ума и терпения.
       
          <type name="Canteen"> - Название ID предмета
              <nominal>30</nominal> -номинальное колличество спавна на карте к которому стремиться "спавнер".
              <lifetime>7200</lifetime> - время "лежания" предмета после спавна ( а также судя,по всему-время после падения на землю с игрока).в сек. (на параметр не влияет ускорение времени на сервере, но влияет параметр из скриптс-"колличество тактов в секунду")
              <restock>0</restock> - на сколько будет отложен спавн предмета до номинала, когда остальные условия для начала спавна выполнены. "задержка спавна".
              <min>20</min>- минимальное колличество предмета на карте после которого начинаеться работа спавнера.
              <quantmin>-1</quantmin> - если предмет "бутылка-магазин"-степень его наполнения минимальная - Для остальных значение -1
              <quantmax>-1</quantmax> - если предмет "бутылка-магазин"-степень его наполнения минимальная - Для остальных значение -1
             (теперь это значение работает и для оружия у котрого нет "сьёмного" магазина, типа СКС или 133 ружжа)
              <cost>100</cost> - приоритет спавна грубо говоря. чем меньше-тем ниже будет вещь в очереди.
              <flags count_in_cargo="0" count_in_hoarder="0" count_in_map="1" count_in_player="0" crafted="0" deloot="0"/> -Флаги спавнера, они указывают в каких типах объектов считать nominal и min значения:
      count_in_cargo - считает все предметы в контейнерах, ящики, рюкзаки, включая автомобили
      count_in_hoarder - будет считаться в таких вещах как закопанные предметы, бочки, сундуки и всевозможные палатки
      count_in_map - объекты, размещенные на карте (здания)
      count_in_player - внутри инвентаря игроков, исключая руки (учёт для игроков онлайн, проверяется)
      crafted - указывает на то, что данный предмет может быть закрафчен игроками
      deloot - указывает что это объекты для спавна на динамических ивентах (событиях). (хеликрашыи, крушения поездов, дтп и прочее)
              <category name="food"/> -категория лута ,может быть ТОЛЬКО одна.
              <tag name="shelves"/> - тэги для настройки точек спавна
              <usage name="Military"/> - класс  лута может быть не один.
              <value name="Tier2"/>  - Зоны в каких будет спавниться лут
              <value name="Tier3"/>
              <value name="Tier4"/>
          </type>
      Если по простому,то "фляжка" будет спавниться в колличестве 30 штук постоянно в зонах 2-3-4 на военных обектах где возможно появление еды с использованием тэга shelves, то есть если в объекте совпадает в начале описания в mapgroupproto.xml,класс,категория,тэг -то предмет заспаниться в точке спавна,которые в этом же файле,для обьекта на карте из файла mapgrouppos.xml
      <type name="ACOGOptic"> <nominal>20</nominal> <lifetime>7200</lifetime> <restock>1800</restock> <min>15</min> <quantmin>-1</quantmin> <quantmax>-1</quantmax> <cost>100</cost> <flags count_in_cargo="0" count_in_hoarder="0" count_in_map="1" count_in_player="0" crafted="0" deloot="0"/> <category name="weapons"/> <usage name="Military"/> </type> <type name="AgaricusMushroom"> <lifetime>900</lifetime> <flags count_in_cargo="0" count_in_hoarder="0" count_in_map="1" count_in_player="0" crafted="1" deloot="0"/> </type> как видите,есть даже грибы,которые спавняться динамически.
      И на закуску...
       
      (если вещевые или другие моды перезаписывают эти файлы,то следите за тем что бы они сливались в экстазе,а не выпихивали друг друга)
      По идее-ничего сложного,даже я разобрался.....почти.
       
      Третья фигура Марлезонского балета....
      Пара примеров....
      <type name="StartKitIV"> <nominal>50</nominal> <lifetime>7200</lifetime> <restock>0</restock> <min>40</min> <quantmin>-1</quantmin> <quantmax>-1</quantmax> <cost>100</cost> <flags count_in_cargo="0" count_in_hoarder="0" count_in_map="1" count_in_player="0" crafted="0" deloot="0"/> <category name="tools"/> <tag name="shelves"/> <value name="Tier1"/> <value name="Tier2"/> <value name="Tier3"/> <value name="Tier4"/> </type> Это "квадратик" или....гхм!. Что видим?Лут из категории "инструменты",спавниться постоянно в местах с тэгом,по всей карте....А какой он категории?А ни какой,вот и спавниться,хоть на лодках на берегу,хоть на вышке.
      Добавляем категорию...
      <type name="StartKitIV"> <nominal>50</nominal> <lifetime>7200</lifetime> <restock>0</restock> <min>20</min> <quantmin>-1</quantmin> <quantmax>-1</quantmax> <cost>100</cost> <flags count_in_cargo="0" count_in_hoarder="0" count_in_map="1" count_in_player="0" crafted="0" deloot="0"/> <category name="tools"/> <tag name="shelves"/> <usage name="Medic"/> <value name="Tier1"/> <value name="Tier2"/> <value name="Tier3"/> <value name="Tier4"/> </type> Всё,теперь только на обьектах с классом "медик"-как и положено. (бегемоты должны быть повешаны!)....
      Обьект радиовышка,кто лазил на неё,тот помнит что на ней спавнился полецейский лут. Почему?
      А смотрим mapgroupproto.xml
      <group name="Land_Tower_TC1"> <usage name="Village" /> <usage name="Industrial" /> <usage name="Police" /> <container name="lootFloor"> <category name="tools" /> <category name="containers" /> <category name="clothes" /> <category name="weapons" /> <category name="books" /> <category name="explosives" /> <point pos="-0.454809 14.404877 0.712779" range="0.314223" height="0.785558" /> <point pos="-0.582537 14.404785 0.034267" range="0.375000" height="0.913483" /> <point pos="0.773581 14.405716 0.067886" range="0.375000" height="0.915054" /> <point pos="-0.448550 14.404892 1.860424" range="0.432076" height="1.080190" /> <point pos="0.641068 14.405640 1.884647" range="0.512500" height="1.279480" /> <point pos="-1.132879 -1.965958 1.837671" range="0.581250" height="1.453125" /> <point pos="0.925214 -1.964554 -0.245559" range="0.821875" height="1.996796" /> <point pos="-0.880515 -1.965805 -0.105441" range="0.821875" height="2.000610" /> <point pos="0.998695 -1.964493 1.724339" range="0.890625" height="1.996490" /> </container> Лут категории "инструмент","контейнер"...."оружие" классов ...Да,"Полиция".....Удаляем нафинг полицию!
      <group name="Land_Tower_TC1"> <usage name="Village" /> <usage name="Industrial" /> <container name="lootFloor"> <category name="tools" /> <category name="containers" /> <category name="clothes" /> <category name="weapons" /> <category name="explosives" /> <point pos="-0.454809 14.404877 0.712779" range="0.314223" height="0.785558" /> <point pos="-0.582537 14.404785 0.034267" range="0.375000" height="0.913483" /> <point pos="0.773581 14.405716 0.067886" range="0.375000" height="0.915054" /> <point pos="-0.448550 14.404892 1.860424" range="0.432076" height="1.080190" /> <point pos="0.641068 14.405640 1.884647" range="0.512500" height="1.279480" /> <point pos="-1.132879 -1.965958 1.837671" range="0.581250" height="1.453125" /> <point pos="0.925214 -1.964554 -0.245559" range="0.821875" height="1.996796" /> <point pos="-0.880515 -1.965805 -0.105441" range="0.821875" height="2.000610" /> <point pos="0.998695 -1.964493 1.724339" range="0.890625" height="1.996490" /> </container> </group> Теперь в лучшем случае дробаш там будет.
       
      Ну,как то так....

      Запрещено копирование данной статьи без соглосование с Администрацией и автором на другие ресурсы. All Rights Reserved
    • Автор: BR0wi
      Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.

      Подскажите как удалить точки спавна лута после удаления ванильных объектов через дейз эдитор. А то гадость какая-то получается, объектов нет, а лут спавнит.
      Пытался найти точки по примерным коордмнатам в файле mapgrouppos.xml, но что-то как-то не получается, да и объектов слишком много удалено, вручную так искать несколько дней уйдет. Кто-нибудь владеет информацией на этот счет?
      Заранее спасибо.
    • Автор: Plut
      Доброго дня! 
      Ув. форумчане., такая проблема: берем лут и кладем в рюкзак(любой), рюкзак кладем в спец слот для рюкзаков машины, а после РР все что было в рюкзаке вываливается на землю под машину, а сам рюкзак(который в спец слоте маашины) оказывается пуст.  При этом в бочках и ящиках/сундуках все отлично сохраняется. 
       
      Может быть связанно, но когда рюкзак в машине, то в него ничего не положить(в отличии от бочек и ящиков), приходится брать его в руки, наполнять хламом и класть в специальный для него слот. 
       
      Памагити, пасиба. 
    • Автор: vitacite
      Квест на аномалии. Участники - любые игроки. 3 НПС, 3 Анимированных аномалии (пока без дамага), 3 квестовых предмета - детектор аномалий, карта сокровищь и журнал с девчонками 🙂
      Выглядит это так...
       

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

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

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

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

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

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

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

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

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

      Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.
       
       
      Мануаль по установке тут....
      Обновление от 19.01.2016
      https://github.com/olkeakavitacite/EQP_Anomaly/
      Так же находится описание, как и чего делать.
       
    • Автор: DrTauren
      DZAI создана простой, легко настраиваемой, лёгкой в установке системой. Она создана для работы с любыми DayZ-модами и картами.

      Особенности системы:
      Статичный спавн ботов - в городах, деревнях, на военных базах Динамический спавн ботов - спавнятся рандомно по всей карте. Могут появиться где угодно и когда угодно Патрули на воздушной технике - патрули также появляются рандомно. Пешие игроки имеют маленький шанс быть обнаруженными, но игрокам на какой-либо технике повезло гораздо меньше  Сухопутные патрули на технике - появляются так же рандомно, курсируют по дорогам между городами и деревнями Собственноручно настраиваемые патрули - спавните ботов и различные патрули в нужных вам местах. Например на ваших кастомных военных базах Боты используют только лутабельное оружие - вы можете подобрать любое оружие с убитого бота без каких-либо проблем, т.к. их лут генерируется с учётоб таблиц лута вашего мода. Чем реже лут у бота, тем он опасней (автор имеет ввиду скилл бота) Система жизней - боты имеют столько же жизней, как игрок. Точно так же могут упасть без сознания. Так что лучше стрелять по головам  
       
      Установка:
      1) Качаем архив: 
      Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.
      2) Распаковываем наш dayz_server.pbo, затем открываем файл server_monitor.sqf
      3) Находим строку:
      allowConnection = true; и добавляем над ней эту:
      [] call compile preprocessFileLineNumbers "\z\addons\dayz_server\DZAI\init\dzai_initserver.sqf"; 4) Копируем папку DZAI из скаченного архива в корень нашего dayz_server
      5) Настроить работу системы под себя вы можете в этом файле: DZAI\init\dzai_config.sqf
  • Наш выбор

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

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

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