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

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

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

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

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

Настройка стартового лута игроков

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

4 часа назад, Yuki сказал:

Возможно. Но тут ты должен модифицировать класс уже имеющейся одежды.
Я вот себе админ сумку сделал
 

itemsCargoSize[]={10,40};


itemsCargoSize[]={10,40};

 

тока клиент модом, насколько понимаю, а то будет товарищь тешить себя мыслью

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


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



1 час назад, 123new сказал:

тока клиент модом, насколько понимаю, а то будет товарищь тешить себя мыслью

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

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


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

@DrTauren А вообще имеется возможность прописания стартового лута, в зависимости от точки спавна? Например, спавнишься в больничке, то в мед халате... спавнишь в полицайке, то в форме полицейского? Если да, то можно в трёх словах, где это искать )

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


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

@DrTauren А вообще имеется возможность прописания стартового лута, в зависимости от точки спавна? Например, спавнишься в больничке, то в мед халате... спавнишь в полицайке, то в форме полицейского? Если да, то можно в трёх словах, где это искать )

в 0.63? Я серьезно щас начну выдавать предупреждения за флуд из-за написания в несоответствующих по подразделу темах

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


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

Такой глупый вопрос и просьба продемонстрируйте пожалуйста развернуто как сделать 2 стартовых сета, а то только один выходит!

Спасибо за помощь!

 

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


Ссылка на сообщение
Поделиться на других сайтах
21.09.2018 в 07:46, DrTauren сказал:

Miarcad есть правда в твоих словах, но статью ещё не дописал, пометочка об этом стоит. Пока что написал как добавить чисто в инвентарь :smile:

player.GetHumanInventory().CreateInHands("M4A1")


player.GetHumanInventory().CreateInHands("M4A1")

Это работает, да. Единственное, что оружие спавнится при этом без магазина (хотя графически он присутствует), без прицела, цевья и всего остального.

 

С командой:

player.GetWeaponManager().AttachMagazine(mag);


player.GetWeaponManager().AttachMagazine(mag);

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

Остаётся ждать инфы в этой теме от тех кто уже разобрался, тогда и доделаю гайд по-полной и всё оформлю хорошенько :relieved:

itemCreated = NULL;                                                            // Обнуляем значение переменной после работы с ней, нужно если мы будем использовать ее далее
                itemCreated = player.GetHumanInventory().CreateInHands("TF_M4A1_CQBR");              


                if (itemCreated)                                                            // Проверяем, создался ли АКМ
                {
                    itemCreated.GetInventory().CreateAttachment( "TF_M4_ADARBttstck" );                
                    itemCreated.GetInventory().CreateAttachment( "TF_M4_SMR13Hndgrd_MLOCK_FDE" );             
                    itemCreated.GetInventory().CreateAttachment( "Mag_STANAG_60Rnd" );                
                    itemCreated.GetInventory().CreateAttachment( "TF_BCM_MLOCK_Grip_FDE" );               
                    itemCreated.GetInventory().CreateAttachment( "TF_EOTechXPSOpticDown_Black" );                              
                    itemCreated.GetInventory().CreateAttachment( "GhillieAtt_Mossy" );                
                    itemCreated.GetInventory().CreateInInventory( "Battery9V" );               
                    itemCreated.GetInventory().CreateInInventory( "" );                
                    itemCreated.GetInventory().CreateInInventory( "" );
                    itemCreated.GetInventory().CreateAttachment( "" );               
                    itemCreated.GetInventory().CreateAttachment( "" );                
                }
                
                break;
            }

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


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

как сделать чтобы после появления у тебя уже был забинжен бинт и нож на цифру ?

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


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

Данный инит рабочий для 1.18?
 

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


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

@эльдар Рабочий

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

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

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


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

если что, напоминаю, чисто так, для проформы, тема в разделе для

28393010_.png.774a251bf429886dd3863766fc92e513.png

соответственно вы ее обсуждаете 😉

 

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


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

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

 

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


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

would have to define the init spawn for a specific player via GUID or UID?

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

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


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

write the appropriate code in the game functions you need. For the 0.63 version of the game, this code is approximately the same as for the release version of the game.

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


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

 

setTimeForScripts 90;

//call compile preprocessFileLineNumbers "\dz\modulesDayZ\init.sqf";
call compile preprocessFileLineNumbers "modules_dayz\init.sqf";

DB_DEBUG = false;  // not edit
DZ_MP_CONNECT = true;  // not edit
DZ_PLAYER_COUNT = getServerMaxPlayers;  // not edit

// database time settings
DZ_SAVE_SLEEP = 120; // time saving player when player is online and play (time in seconds)
DZ_TIME_EXIT_AGENT = 30; // time saving player when player is online and play (time in seconds)
DZ_TIME_DELETE_DEAD_ZED = 60; // time deleting dead object ZED after him dead in server (time in seconds)
DZ_TIME_DELETE_DEAD_PLAYER = 60; // time deleting dead agent player after him dead in server (time in seconds)
DZ_TIME_WAITING_SPAWN_PLAYER = 30; // time waiting player in blackscreen after connect to server (time in seconds)

//settings
DZ_MAX_ZOMBIES = 1000;
DZ_MAX_ANIMALS = 500;
_Enable_SPAWNER_CARS = false;  // WARN: cars and helicrashs is saved in server storage! Need spawn only 1 start server! Next starts is not spawn him!
// Edit spawnscript cars this scripts\custom\SpawnCars.sqf
_Enable_SPAWNER_HELICRASHES = true; // WARN: cars and helicrashs is saved in server storage! Also, Heli spawned with events.xml from server, but added in script test function clear old heli.
// Edit spawnscript helicrashs this scripts\custom\Helicarsh.sqf
DZ_COUNT_HELICRASHES = 12;
DZ_Enable_Kill_Messages = true;
DZ_Enable_Login_Disconnect_Messages = true;

//Donate
array_donategroup_ADMIN = ["9600161061273613348"];

//----- simple scheduler part -----

connectedPlayers = [];
for "_x" from 0 to (DZ_PLAYER_COUNT-1) do
{
	connectedPlayers set [_x,0];
};


diag_log format ["SCHEDULER: Connected players array init, count %1, %2",count connectedPlayers, connectedPlayers];
//---------------------------------

call db_loadPlaer;
//call dbLoadPlayer;  original fnc, not work

_humidity = random 0.8;
//setDate [2013, 07, 07, 6, 0];
[0,0] setOvercast _humidity;
setWindMaxSpeed 10;
setWindSpeedOfChange 50;
setWindFnMin 0.2;
setWindFnMax 1;
simulWeatherSync;

//dbInitEconomy ["http://localhost:8080/"];
dbInitEconomy [true];
setTimeForScripts 0.03;

//call init_spawnZombies;
//sleep 1;
call init_spawnWildAnimals;
sleep 1;

if (_Enable_SPAWNER_CARS) then {
	Call init_spawn_cars; 
};
if (_Enable_SPAWNER_HELICRASHES) then {
	Call init_spawn_Helicarshes;
};

//----- simple scheduler part -----
index = 0;
indexTarget = DZ_PLAYER_COUNT;
onEachFrame {	
	if (index < DZ_PLAYER_COUNT) then {
		_playerToTick = connectedPlayers select index;	
		//diag_log format ["SCHEDULER: Select clientId to tick %1 on index %2", _playerToTick, index];	
		if (_playerToTick != 0) then {
			_player = playerOn _playerToTick;		
			if (alive _player) then
			{
				_player call tick_modifiers;	
				_player call tick_states;		
				_player call tick_environment;
				_player call fnc_sendNotifiersToEnfusion;
			};
		};
	};
	index = index + 1;		
	if (index == indexTarget) then {
		indexTarget = (round(diag_fps * 2)) max DZ_PLAYER_COUNT; //indexTarget = (round(diag_fps * 2)) max DZ_PLAYER_COUNT; //ideal is 25fps to get 2s ticks
		index = 0;
	};
};


//---------------------------------

[] spawn
{
        while {true} do
        {
			{	
				_x call tick_modifiers;	
				_x call tick_states;		
				_x call tick_environment;
				_x call fnc_sendNotifiersToEnfusion;
			}foreach players;
			sleep 2;
		};
};
private ["_id","_uid","_agent"];

_id = _this select 0;

_uid = _this select 1;

diag_log format["INFO SPAWN SYSTEM: SPAWN NEW AGENT FOR PLAYER WITH UID %1!",_uid];

//_pos = _posArr select (floor random (count _posArr));
_pos = _uid call fnc_posBubbles;

if (DB_DEBUG) then { _pos = [7053.37,2771.16,11.8116]; };

_mySkin = DZ_SkinsArray select (floor random (count DZ_SkinsArray));

_top = getArray(configFile >> "cfgCharacterCreation" >> "top");
_bottom = getArray(configFile >> "cfgCharacterCreation" >> "bottom");
_shoe = getArray(configFile >> "cfgCharacterCreation" >> "shoe");

_myTop = _top select (floor random (count _top));  
_myBottom = _bottom select (floor random (count _bottom));  
_myShoe = _shoe select (floor random (count _shoe));  

diag_log format["INFO SPAWN SYSTEM: SELECTED FOR SPAWN NEW AGENT PLAYER WITH UID %1: POSITION: %2 SKIN %3 TOP %4 BOTTOM %5 SHOE %6!",_uid,_pos,_mySkin,_myTop,_myBottom,_myShoe];

_agent = createAgent [_mySkin,  _pos, [], 0, "NONE"];

{null = _agent createInInventory _x} forEach [_myTop,_myBottom,_myShoe];
	
_v = _agent createInInventory "Consumable_Roadflare";
_v = _agent createInInventory "Consumable_Rags"; _v setQuantity 1;

if (_uid in array_donategroup_ADMIN) then
{
	_v = _agent createInInventory "Gorka_pants_summer";
	_v = _agent createInInventory "Gorka_up_summer";
	_v = _agent createInInventory "BagTortilla";
	_v = _agent createInInventory "MilitaryBoots_Black";
	_v = _agent createInInventory "GorkaHelmet_complete_Green";
	_v = _agent createInInventory "HighCapacityVest_Olive";
	_v = _agent createInInventory "WorkingGloves_Brown";
	_v = _agent createInInventory "BalaclavaMask_Green";
	_v = _agent createInInventory "Medical_Morphine";
	_v = _agent createInInventory "Medical_BandageDressing";_v setVariable ["quantity",1];
	_v = _agent createInInventory "Medical_TransfusionKit";
	_v = _agent createInInventory "AKM";
	_v = _agent createInInventory "Att_Bipod_Atlas";
	_v = _agent createInInventory "Att_Light_Universal";
	_v = _agent createInInventory "Att_Buttstock_AK_Wood";
	_v = _agent createInInventory "Att_Optic_PSO1";
	_v = _agent createInInventory "Att_Handguard_AK_Rail_Black";
	_v = _agent createInInventory "Att_Suppressor_AK";
	_v = _agent createInInventory "M_AKM_drum_Black";
	_v = _agent createInInventory "M_AKM_drum_Black";
	_v = _agent createInInventory "M_AKM_drum_Black";
	_v = _agent createInInventory "FireFighterAxe";
	_v = _agent createInInventory "glock19";
	_v = _agent createInInventory "Att_Suppressor_Pistol";
	_v = _agent createInInventory "M_Glock_15Rnd";
	_v = _agent createInInventory "M_Glock_15Rnd";
	_v = _agent createInInventory "CombatKnife";
	_v = _agent createInInventory "Drink_Canteen";_v setVariable ["quantity",1000];
	_v = _agent createInInventory "Drink_Canteen";_v setVariable ["quantity",1000];
	_v = _agent createInInventory "Food_Rice";_v setVariable ["quantity",1];
	_v = _agent createInInventory "Consumable_Matchbox";_v setVariable ["quantity",100];
	_v = _agent createInInventory "Tool_LeatherSewingKit";
	_v = _agent createInInventory "Tool_SewingKit";        	
};
	
_agent call init_newPlayer;

// _agent initDBIDs[_id,_uid];

[_agent,_uid,_id] call init_newBody;

null = _uid call fnc_dbCreateCharInProfile;	

connectedPlayers set [(connectedPlayers find 0), _id];
	
// null = _agent call fnc_reloadWeaponOnSpawn;

 

Изменено пользователем 123new
исправление дубликата текста вне блока для вставки кода (история изменений)

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


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

would have to define the init spawn for a specific player via GUID or UID?

as samply, check:

//Donate
array_donategroup_ADMIN = ["9600161061273613348"];

and

if (_uid in array_donategroup_ADMIN) then
{
	_v = _agent createInInventory "Gorka_pants_summer";
	_v = _agent createInInventory "Gorka_up_summer";
	_v = _agent createInInventory "BagTortilla";
	_v = _agent createInInventory "MilitaryBoots_Black";
	_v = _agent createInInventory "GorkaHelmet_complete_Green";
	_v = _agent createInInventory "HighCapacityVest_Olive";
	_v = _agent createInInventory "WorkingGloves_Brown";
	_v = _agent createInInventory "BalaclavaMask_Green";
	_v = _agent createInInventory "Medical_Morphine";
	_v = _agent createInInventory "Medical_BandageDressing";_v setVariable ["quantity",1];
	_v = _agent createInInventory "Medical_TransfusionKit";
	_v = _agent createInInventory "AKM";
	_v = _agent createInInventory "Att_Bipod_Atlas";
	_v = _agent createInInventory "Att_Light_Universal";
	_v = _agent createInInventory "Att_Buttstock_AK_Wood";
	_v = _agent createInInventory "Att_Optic_PSO1";
	_v = _agent createInInventory "Att_Handguard_AK_Rail_Black";
	_v = _agent createInInventory "Att_Suppressor_AK";
	_v = _agent createInInventory "M_AKM_drum_Black";
	_v = _agent createInInventory "M_AKM_drum_Black";
	_v = _agent createInInventory "M_AKM_drum_Black";
	_v = _agent createInInventory "FireFighterAxe";
	_v = _agent createInInventory "glock19";
	_v = _agent createInInventory "Att_Suppressor_Pistol";
	_v = _agent createInInventory "M_Glock_15Rnd";
	_v = _agent createInInventory "M_Glock_15Rnd";
	_v = _agent createInInventory "CombatKnife";
	_v = _agent createInInventory "Drink_Canteen";_v setVariable ["quantity",1000];
	_v = _agent createInInventory "Drink_Canteen";_v setVariable ["quantity",1000];
	_v = _agent createInInventory "Food_Rice";_v setVariable ["quantity",1];
	_v = _agent createInInventory "Consumable_Matchbox";_v setVariable ["quantity",100];
	_v = _agent createInInventory "Tool_LeatherSewingKit";
	_v = _agent createInInventory "Tool_SewingKit";        	
};

in your data init, in is creating items for custom players list UID (Steam64id)

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


Ссылка на сообщение
Поделиться на других сайтах
class CustomMission: MissionServer
{
    void SetRandomHealth(EntityAI itemEnt)
    {
        if ( itemEnt )
        {
            float rndHlt = Math.RandomFloat( 0.45, 0.65 );
            itemEnt.SetHealth01( "", "", rndHlt );
        }
    }

    override PlayerBase CreateCharacter(PlayerIdentity identity, vector pos, ParamsReadContext ctx, string characterName)
    {
        Entity playerEnt;
        playerEnt = GetGame().CreatePlayer( identity, characterName, pos, 0, "NONE" );
        Class.CastTo( m_player, playerEnt );

        GetGame().SelectPlayer( identity, m_player );

        return m_player;
    }

    override void StartingEquipSetup(PlayerBase player, bool clothesChosen)
    {
        EntityAI itemClothing;
        EntityAI itemEnt;
        ItemBase itemBs;
        float rand;

        itemClothing = player.FindAttachmentBySlotName( "Body" );
        if ( itemClothing )
        {
            GetGame().ObjectDelete( itemClothing );
            
            // бобы
            itemEnt = player.GetInventory().CreateInInventory("BakedBeansCan");
            itemBs = ItemBase.Cast(itemEnt);
            // куртка
            itemEnt = player.GetInventory().CreateInInventory("PrisonUniformJacket");
            itemBs = ItemBase.Cast(itemEnt);
            // штаны
            itemEnt = player.GetInventory().CreateInInventory("PrisonUniformPants");
            itemBs = ItemBase.Cast(itemEnt);
            // кола
            itemEnt = player.GetInventory().CreateInInventory("SodaCan_Cola");
            itemBs = ItemBase.Cast(itemEnt);
            // ботинки
            itemEnt = player.GetInventory().CreateInInventory("HikingBootsLow_Black ");
            itemBs = ItemBase.Cast(itemEnt);
            // бинт
            itemEnt = player.GetInventory().CreateInInventory("BandageDressing");
            itemBs = ItemBase.Cast(itemEnt);
            // кухонный ножик
            itemEnt = player.GetInventory().CreateInInventory("KitchenKnife");
            itemBs = ItemBase.Cast(itemEnt);
            // кепка
            itemEnt = player.GetInventory().CreateInInventory("PrisonerCap");
            itemBs = ItemBase.Cast(itemEnt);

        }
        
        itemClothing = player.FindAttachmentBySlotName( "Legs" );
        if ( itemClothing )
            SetRandomHealth( itemClothing );
        
        itemClothing = player.FindAttachmentBySlotName( "Feet" );
    }
};

 

почему у меня спавнятся походные штаны

Изменено пользователем 123new
вставка кода в спец тег (история изменений)

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


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

class CustomMission: MissionServer
{
    void SetRandomHealth(EntityAI itemEnt)
    {
        if ( itemEnt )
        {
            float rndHlt = Math.RandomFloat( 0.45, 0.65 );
            itemEnt.SetHealth01( "", "", rndHlt );
        }
    }

    override PlayerBase CreateCharacter(PlayerIdentity identity, vector pos, ParamsReadContext ctx, string characterName)
    {
        Entity playerEnt;
        playerEnt = GetGame().CreatePlayer( identity, characterName, pos, 0, "NONE" );
        Class.CastTo( m_player, playerEnt );

        GetGame().SelectPlayer( identity, m_player );

        return m_player;
    }

    override void StartingEquipSetup(PlayerBase player, bool clothesChosen)
    {
        EntityAI itemClothing;
        EntityAI itemEnt;
        ItemBase itemBs;
        float rand;

        itemClothing = player.FindAttachmentBySlotName( "Body" );
        if ( itemClothing )
        {
            GetGame().ObjectDelete( itemClothing );
            
            // бобы
            itemEnt = player.GetInventory().CreateInInventory("BakedBeansCan");
            itemBs = ItemBase.Cast(itemEnt);
            // куртка
            itemEnt = player.GetInventory().CreateInInventory("PrisonUniformJacket");
            itemBs = ItemBase.Cast(itemEnt);
            // штаны
            itemEnt = player.GetInventory().CreateInInventory("PrisonUniformPants");
            itemBs = ItemBase.Cast(itemEnt);
            // кола
            itemEnt = player.GetInventory().CreateInInventory("SodaCan_Cola");
            itemBs = ItemBase.Cast(itemEnt);
            // ботинки
            itemEnt = player.GetInventory().CreateInInventory("HikingBootsLow_Black ");
            itemBs = ItemBase.Cast(itemEnt);
            // бинт
            itemEnt = player.GetInventory().CreateInInventory("BandageDressing");
            itemBs = ItemBase.Cast(itemEnt);
            // кухонный ножик
            itemEnt = player.GetInventory().CreateInInventory("KitchenKnife");
            itemBs = ItemBase.Cast(itemEnt);
            // кепка
            itemEnt = player.GetInventory().CreateInInventory("PrisonerCap");
            itemBs = ItemBase.Cast(itemEnt);

        }
        
        itemClothing = player.FindAttachmentBySlotName( "Legs" );
        if ( itemClothing )
            SetRandomHealth( itemClothing );
        
        itemClothing = player.FindAttachmentBySlotName( "Feet" );
    }
};

 

 

 

почему у меня спавнятся походные штаны

потому что пнуть хочу тебя больно и сильно - тег с файлов убираем в спец тег для вставки кода с файлов.

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

player.removeAllItems();

для удаления вообще всего с игрока (важно - строка может вызывать срач в крашлог, почему - спросите у авторов игры, они не фиксят ошибок)

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


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

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

 

 

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

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


Ссылка на сообщение
Поделиться на других сайтах
25.12.2023 в 08:56, Shelbov сказал:
 

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

 

 

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

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


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

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

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

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

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

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

Войти

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

Войти сейчас

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

    • Автор: paranoyk
      ©
      Инструкция по базовой установке животных на сервер. (базовые понятия)
      Задача дать начальные понятия в установке животных  на сервер. Вопросы лута, поведения, расстановки-не рассматриваем.
      (визги и смешочки "олдфагов" вынесем за скобки, мы в курсе что когда вы начинали даже Богемии ещё не было)
      Будем всё делать на основе примера мода, карты Чернорусь и согласно простому правилу "не думай что ты умнее бегемотов".
      Берём общедоступный мод Radioactive Animals
      Для начала просто подключаем мод к серверу (тестовому , то же правило-имейте сервер для тестов), после чего пытаемся заспавнить животных админкой. Получилось, животные ведут себя после спавна адекватно, нормально выглядят - идём дальше, если нет-жалуемся автору мода.
      Открываем папку dayzOffline.chernarusplus и создаём папку mod (или как захотите, но без кириллицы). Открываем созданную папку.
      Первая задача-создать файл "types" с новыми объектами. Иногда с модом идёт уже готовый файл. Если он есть-копируем его в папку. Можете переименовать его как хотите. (остальные действия настройки как при создании его с нуля).
      Если его нет-не беда, нам нужно только узнать ID обьектов, а вот они то всегда есть в описании или в стиме или в папке с модом. (если нет, то только вскрыв мод или переписав значения при спавне админкой).
      Мод из примера НЕ имеет готового тайпса. Но есть ID (класснеймы) в отдельном файле.
      Создаём в папке mod файл Atypes.xml . Отрываем его, вставляем
       
      <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <types> </types> Верхней строчкой файл тайпс начинается, нижней заканчивается.
      Список класснеймов мода
      Radioactive_Bear_juggernaut
      Radioactive_Bear_Beast
      Radioactive_Bear_Tough
      Radioactive_bear_pelt
      Radioactive_Wolf_juggernaut
      Radioactive_Wolf_Beast
      Radioactive_Wolf_Tough
      Radioactive_wolf_pelt
      Radioactive_bear_Meat
      Radioactive_wolf_Meat
      Их нам внести в нами созданный файл, плохо что нет описания, что куда, но....ясно что у нас животные, их шкуры и мясо. С начало вносим животных. Из ванильного, серверного тайпс копируем значения для любого животного, к примеру
       
      <type name="Animal_BosTaurusF_Brown"> <nominal>0</nominal> <lifetime>1800</lifetime> <restock>0</restock> <min>0</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"/> </type> и подставляя класснеймы модовых животных заполняем созданный тайпс. В конце концов он примет вид

       
      <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <types> <type name="Radioactive_Bear_juggernaut"> <nominal>0</nominal> <lifetime>1800</lifetime> <restock>0</restock> <min>0</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"/> </type> <type name="Radioactive_Bear_Beast"> <nominal>0</nominal> <lifetime>1800</lifetime> <restock>0</restock> <min>0</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"/> </type> <type name="Radioactive_Bear_Tough"> <nominal>0</nominal> <lifetime>1800</lifetime> <restock>0</restock> <min>0</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"/> </type> <type name="Radioactive_Wolf_juggernaut"> <nominal>0</nominal> <lifetime>1800</lifetime> <restock>0</restock> <min>0</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"/> </type> <type name="Radioactive_Wolf_Beast"> <nominal>0</nominal> <lifetime>1800</lifetime> <restock>0</restock> <min>0</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"/> </type> <type name="Radioactive_Wolf_Tough"> <nominal>0</nominal> <lifetime>1800</lifetime> <restock>0</restock> <min>0</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"/> </type> </types> Можно изменить <lifetime>1800</lifetime> на любое значение какое захотите (максимум 3888000). Это время жизни вашего животного когда рядом нет игрока на дистанции из <saferadius> файла events.
      После таким же способом добавляем шкуру и мясо. (опять таки копируем ванильное значение и меняем класснейм на модовый). В результате файл придёт к виду:
      <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <types> <type name="Radioactive_Bear_juggernaut"> <nominal>0</nominal> <lifetime>1800</lifetime> <restock>0</restock> <min>0</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"/> </type> <type name="Radioactive_Bear_Beast"> <nominal>0</nominal> <lifetime>1800</lifetime> <restock>0</restock> <min>0</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"/> </type> <type name="Radioactive_Bear_Tough"> <nominal>0</nominal> <lifetime>1800</lifetime> <restock>0</restock> <min>0</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"/> </type> <type name="Radioactive_Wolf_juggernaut"> <nominal>0</nominal> <lifetime>1800</lifetime> <restock>0</restock> <min>0</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"/> </type> <type name="Radioactive_Wolf_Beast"> <nominal>0</nominal> <lifetime>1800</lifetime> <restock>0</restock> <min>0</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"/> </type> <type name="Radioactive_Wolf_Tough"> <nominal>0</nominal> <lifetime>1800</lifetime> <restock>0</restock> <min>0</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"/> </type> <type name="Radioactive_bear_pelt"> <nominal>0</nominal> <lifetime>28800</lifetime> <restock>0</restock> <min>0</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="1" deloot="0"/> <category name="tools"/> </type> <type name="Radioactive_wolf_pelt"> <nominal>0</nominal> <lifetime>28800</lifetime> <restock>0</restock> <min>0</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="1" deloot="0"/> <category name="tools"/> </type> <type name="Radioactive_bear_Meat"> <nominal>0</nominal> <lifetime>14400</lifetime> <restock>0</restock> <min>0</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="1" deloot="0"/> <category name="food"/> </type> <type name="Radioactive_wolf_Meat"> <nominal>0</nominal> <lifetime>14400</lifetime> <restock>0</restock> <min>0</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="1" deloot="0"/> <category name="food"/> </type> </types>
      Проверяем кодировку, проверяем валидатором, (добавление-лично я проверяю окончания строчек что бы они совпадали с ванильным файлом).
      Основной файл для спавна создан. Теперь создаём файл событий.
      Создаём в папке mod файл Aevents.xml . Отрываем его, вставляем
      <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <events> </events> Верхней строчкой файл ивент начинается, нижней заканчивается.
      У нас два вида животных-медведь и волк, в каждом из которых три класса. Тут важно сразу решить, какие у нас будут "ивенты". Один для одного вида или несколько для одного вида и каждого класса. Для примера делаем по событию для каждого вида. Открываем ванильный events.xml и копируем в созданный файл два ивента - медведя и волка.
       
      <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <events> <event name="AnimalBear"> <nominal>0</nominal> <min>2</min> <max>2</max> <lifetime>180</lifetime> <restock>0</restock> <saferadius>200</saferadius> <distanceradius>0</distanceradius> <cleanupradius>0</cleanupradius> <flags deletable="0" init_random="0" remove_damaged="1"/> <position>fixed</position> <limit>custom</limit> <active>1</active> <children> <child lootmax="0" lootmin="0" max="1" min="1" type="Animal_UrsusArctos"/> </children> </event> <event name="AnimalWolf"> <nominal>8</nominal> <min>4</min> <max>6</max> <lifetime>180</lifetime> <restock>0</restock> <saferadius>200</saferadius> <distanceradius>0</distanceradius> <cleanupradius>0</cleanupradius> <flags deletable="0" init_random="0" remove_damaged="1"/> <position>fixed</position> <limit>child</limit> <active>1</active> <children> <child lootmax="0" lootmin="0" max="6" min="2" type="Animal_CanisLupus_Grey"/> <child lootmax="0" lootmin="0" max="4" min="0" type="Animal_CanisLupus_White"/> </children> </event> </events> Теперь меняем event name. Для животных он всегда должно начинаться с "Animal" . Называем соответственно (пример) AnimalBearA и AnimalWolfA .
      Далее количество событий <nominal> котрое вам требуется.
      Количество особей в "отряде". <min>  <max>.
      Дистанции - расстояние до игрока, расстояние до другого "события", расстояние "уборки" события от игрока (начало отсчёта времени жизни или начало уборки трупов животных).
      Позиция. Оставляем , если хотим что бы событие спавнилось вне зависимости есть ли игрок рядом. Или делаем <position>player как у зомби, тогда спавн будет при приблежениии игрока.
      Лимит....Приведу просто выдержку из одного описания
      custom-limit refer to an external file like for animals territories.
      child-limit refer to the min and max attributes of the each child.
      parent-limit refer to the min and max attributes of the event itself.
      mixed-limit is a mix of both child et parent.
      То есть если берём что нужно (проще-для медведя что в ванили,для стайных-как у волков)
      Актив-1 конечно...
      Переделываем под модовые и получаем,
      <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <events> <event name="AnimalBearA"> <nominal>5</nominal> <min>1</min> <max>3</max> <lifetime>180</lifetime> <restock>0</restock> <saferadius>200</saferadius> <distanceradius>10</distanceradius> <cleanupradius>300</cleanupradius> <flags deletable="0" init_random="0" remove_damaged="1"/> <position>fixed</position> <limit>custom</limit> <active>1</active> <children> <child lootmax="0" lootmin="0" max="1" min="1" type="Radioactive_Bear_juggernaut"/> <child lootmax="0" lootmin="0" max="1" min="1" type="Radioactive_Bear_Beast"/> <child lootmax="0" lootmin="0" max="1" min="1" type="Radioactive_Bear_Tough"/> </children> </event> <event name="AnimalWolfA"> <nominal>8</nominal> <min>4</min> <max>6</max> <lifetime>180</lifetime> <restock>0</restock> <saferadius>200</saferadius> <distanceradius>0</distanceradius> <cleanupradius>0</cleanupradius> <flags deletable="0" init_random="0" remove_damaged="1"/> <position>fixed</position> <limit>child</limit> <active>1</active> <children> <child lootmax="0" lootmin="0" max="6" min="2" type="Radioactive_Wolf_juggernaut"/> <child lootmax="0" lootmin="0" max="4" min="0" type="Radioactive_Wolf_Beast"/> <child lootmax="0" lootmin="0" max="4" min="0" type="Radioactive_Wolf_Tough"/> </children> </event> </events> Опять таки проверяем кодировку,валидатором и на соответствие с ванильным файлом. Даже если есть предоставленный автором мода готовый- просмотрите, поправите, исправите.
      Теперь подключаем созданные файлы.
      Открываем ванильный файл cfgeconomycore.xml
      И вписываем между </defaults> и </economycore>
      <ce folder="mod"> <file name="Atypes.xml" type="types" /> <file name="Aevents.xml" type="events" /> </ce> Мы создали два подключаемых файла с тайпс и событиями и подключили их.
      Открываем папку env и создаём два файла bearA_territories.xml и wolfA_territories.xml 
      Это файлы территорий спавна. Один из способов их заполнить-работа через СE Editor. (здесь нет описания) Другой-вручную спавнится к каждой точке спавна и снимать координаты, в не зависимости как вы поступаете нужно сделать следующее.
      ОТкрываем файл , к примеру , bearA_territories.xml
      Заполняем его следующем образом.
      <?xml version="1.0" encoding="UTF-8"?> <territory-type> </territory-type> Так начинается и заканчивается этот файл, между ними вбиваем точки спавна. Для примера приведу ДВЕ точки спавна для ДВУХ событий.
      <?xml version="1.0" encoding="UTF-8"?> <territory-type> <territory color="4291611852"> <zone name="Water" smin="0" smax="0" dmin="0" dmax="0" x="4822.5" z="13657.5" r="60"/> <zone name="Water" smin="0" smax="0" dmin="0" dmax="0" x="4897.5" z="13815" r="60"/> <zone name="Rest" smin="0" smax="0" dmin="0" dmax="0" x="4997.5" z="13127.5" r="232.5"/> <zone name="HuntingGround" smin="0" smax="0" dmin="0" dmax="0" x="4960" z="13105" r="292.5"/> </territory> <territory color="4291611852"> <zone name="Water" smin="0" smax="0" dmin="0" dmax="0" x="6030" z="11485" r="45"/> <zone name="Rest" smin="0" smax="0" dmin="0" dmax="0" x="7477.5" z="11970" r="180"/> <zone name="HuntingGround" smin="0" smax="0" dmin="0" dmax="0" x="7462.5" z="11970" r="217.5"/> <zone name="HuntingGround" smin="0" smax="0" dmin="0" dmax="0" x="6457.5" z="12210" r="210"/> </territory> </territory-type> territory color="4291611852" - цветовой код для СЕ. Совет делать его не разным для всего события и уникальным.
      zone name="Water" - название зоны спавна (разные названия влияют на поведение животных после спавна, "Water","Rest","HuntingGround",Graze". использование зон куриц и кроликов и их действие на животных-непроверено)
      далее идёт количество статических и динамических обьектов при спавне (если в ивенте "лимит" ссылается на эти значения -сделать отличными от нуля)
      Далее координаты точки и радиус в котором произойдёт спавн.
      Ещё для примера wolfA_territories.xml
      <?xml version="1.0" encoding="UTF-8"?> <territory-type> <territory color="4290666866"> <zone name="Water" smin="0" smax="0" dmin="3" dmax="4" x="4822.5" z="13657.5" r="100"/> <zone name="Rest" smin="0" smax="0" dmin="3" dmax="4" x="4997.5" z="12927.5" r="200"/> <zone name="HuntingGround" smin="0" smax="0" dmin="3" dmax="4" x="5060" z="12805" r="292.5"/> </territory> <territory color="4290666866"> <zone name="Water" smin="0" smax="0" dmin="3" dmax="4" x="7897.5" z="7515" r="100"/> <zone name="Rest" smin="0" smax="0" dmin="3" dmax="4" x="7477.5" z="7070" r="150"/> <zone name="HuntingGround" smin="0" smax="0" dmin="3" dmax="4" x="7560" z="7105" r="250.5"/> </territory> </territory-type> Опять всё проверяем,кодировка, проверка, схожесть, проверяем, сохраняем
      (не делайте ошибки по типу 
      <?xml version="1.0" encoding="UTF-8"?> <territory-type> <territory color="4291611852"> <zone name="Water" smin="0" smax="0" dmin="3" dmax="4" x="4822.5" z="13657.5" r="60"/> <zone name="Water" smin="0" smax="0" dmin="3" dmax="4" x="4897.5" z="13815" r="60"/> <zone name="Water" smin="0" smax="0" dmin="3" dmax="4" x="6030" z="13485" r="45"/> <zone name="Rest" smin="0" smax="0" dmin="3" dmax="4" x="6997.5" z="12127.5" r="232.5"/> <zone name="Rest" smin="0" smax="0" dmin="3" dmax="4" x="7477.5" z="11970" r="180"/> <zone name="HuntingGround" smin="0" smax="0" dmin="3" dmax="4" x="6960" z="12105" r="292.5"/> <zone name="HuntingGround" smin="0" smax="0" dmin="3" dmax="4" x="7462.5" z="11970" r="217.5"/> <zone name="HuntingGround" smin="0" smax="0" dmin="3" dmax="4" x="6457.5" z="12210" r="210"/> </territory> </territory-type> в таком виде это блок точек для ОДНОГО события. Но если у вас в планах именно так, то....почему и нет?)))
      Теперь подключаем наши события из файла инит
      Открываем ванильный файл cfgeventspawns.xml
      И между <event name="AnimalRoeDeer" /> и <event name="AnimalWolf" /> вписываем
          <event name="AnimalBearA" />
          <event name="AnimalWolfA" />
      Названия для ивента взяты из созданного нами файла Aevents.xml
      (кодировка, проверка, схожесть, проверяем, сохраняем)
      Открываем ванильный файл cfgenvironment.xml
      В блок file path
      <file path="env/wolfA_territories.xml" /> <file path="env/bearA_territories.xml" /> Мы указали на путь к файлам с точками спавна.
      В блок с territory type вписываем
      <territory type="Herd" name="WolfA" behavior="DZWolfGroupBeh"> <file usable="wolfA_territories" /> </territory> <territory type="Herd" name="BearA" behavior="BlissBearGroupBeh"> <file usable="bearA_territories"/> </territory> Где
      name= - общее имя для территорий животного (использую всегда окончание названия ивента -подобие ваниле ибо там так)
      behavior="DZWolfGroupBeh" - подключение поведения. должен совпадать с установками в самом моде. Да, можно попробовать волкам прописать модель поведения коровы.Не проверял.
      file usable="bearA_territories подключение файла территории.
      Проверяем, сохраняем, вайпаем сервер.
       Далее.....Всё. Быстрее сделать чем рассказать.

      Почему файлы тайпс и ивент создаём сами и подключаем отдельно.
      Одна цитата от "богемии"
      because of a limit on xml file-size
      Да и проще работать когда всё разложено по полкам.
      Кому не удобно и просто лень-мешайте в одну кучу.


      Все права принадлежат на публикацию данного материала принадлежат и автору  ©





       
    • Автор: 123new
      Вижу крайне много любопытных вопросов по поводу идентификаторов игрока в игре. Что же, разжую для не знающих немного.
       
      В игре есть следующие типы идентификаторов:
      1. Steam64ID идентификатор профиля игрока (на пиратках его UID называют), примерно такой: 765475....65 (17 цифр).
      2. Так называемый мною, BIS ID - uid из окна (консоли) сервера игры и ADM-файлов логов сервера, который пишется самой игрой
      3. Battleye GUID игрока.
       
      Первый идентификатор (Steam64ID) на ПК является прямым идентификатором стим-профиля игрока, уникальным у каждого игрока. Т.е. публичным идентификатором вашего профиля для большинства стим-игр (например, Counter-Strike).
      Второй идентификатор (BIS ID) является определенной хеш-суммой, полученной из Steam64ID посредством конвертации сначала в sha256, а затем в base64. Спасибо за это разъяснение и пример кода-конвертации авторам игры на своем официальном форуме.
      Третий идентификатор (Battleye GUID) является публичным идентификатором Battleye античита, получаемый также из Steam64ID поcредством получения его хеш-суммы MD5. Этот же идентификатор есть в логах сервера от Battleye, в любых RCON-приложениях (DART, BEC и т.п.), также его можно конвертировать самим.
       
      Так вот, как же получить Steam64ID:
      1. Зайти на любой ресурс, предназначенный для сбора таких данных. например на: https://steamid.io/
      2. Ввести ссылку на ваш стим-профиль
      3. Получить результат из кучи данных, одно поле из которых и будет содержать ваш Steam64ID
       
      Как получить BIS ID:
      1. Открыть любой Phyton v2.7 -конвертер в интернете, например: https://onecompiler.com/python2/3ycz55xew
      2. Ввести в него следующий код:
      # Hello World program in Python from hashlib import sha256 from base64 import b64encode def construct_bi_uid(steam_id): hashed = sha256() hashed.update(str(steam_id)) return b64encode(hashed.digest()) print construct_bi_uid(76514925976798981) 3. заменить 76514925976798981 на ваш Steam64ID
      4. Отправить код в исполнение, нажав Execute.
      5. Получить результат
       

      Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.
      [Альтернатива] Метод на основе PHP:
      <?php /** * This is how you get user id (bohemia id) like you see in .ADM files from steam id. */ $steam_id = "76514925976798981"; $user_id = base64url_encode(hash('sha256', $steam_id, true)); function base64url_encode($data) { $b64 = base64_encode($data); if ($b64 === false) { return false; } $url = strtr($b64, '+/', '-_'); return $url; } echo $user_id; [Альтернатива] Метод для javascript - node.js:
      var crypto = require('crypto'); var body = "76514925976798981"; var hash = crypto.createHash("sha256"); var hash_result = hash.update(body, 'utf8').digest('base64'); console.log(hash_result);  
      Как получить Battleye GUID:
      1. Открыть любой ресурс с готовой формой конвертирования, например:
      https://armstalker.com/guid/
      https://dayzrussia.com/f/index.php?pages/dayzguid/
      либо написать свою, на основе данных, предложенных на странице Github
      https://gist.github.com/chris579/53053b6d6438df9a9718c23c0d6bbd69
      Оставлю ниже код для Phyton:
      # Thanks to gunlinux import md5 steamid=76514925976798981 temp = "" for i in range(8): temp += chr((steamid & 0xFF)) steamid >>= 8 m = md5.new("BE"+temp) print m.hexdigest() Код для PHP:
      var crypto = require('crypto'); var body = "76514925976798981"; var hash = crypto.createHash("sha256"); var hash_result = hash.update(body, 'utf8').digest('base64'); console.log(hash_result); '2. Вставить в поле ввода UID(Steam64ID) ваш Steam64ID
      3. Нажать кнопку конвертирования или исполнить код, и получить в готовом виде Battleye GUID
       
      Возможно имеются и другие методы и наработки в получении данных идентификаторов более простыми методами, на других языках, либо автоматически. Я описал лишь известные мне.
      Все желающие могут добавить в комментариях свои способы конвертаций, возможно это поможет кому-либо.
    • Автор: vitacite
      Бесплатные проекты - "пацаны собрались и замутили сервачок" долго не живут.  В этом я убеждался много раз. Нет сначала на интузиазме эффективность неплохая, но затем все это затухает управляемость команды падает.  Начинаются вопросы - "а почему это должен делать я?",  отмазки "да я на даче сегодня", "да у меня командировка" и тд...  + кто-то должен спонсировать оплату сервера, антидудосов и прочей лобуды, а такого человека интерес тоже может пропасть в любой момент. А чтобы проект был хороший - кому-то надо реально "въебывать", как на второй работе, и  кому-то постоянно вливать туда бабло.
      Поэтому, лично я, считаю любой некоммерческий проект заранее проваленным!  Побегать недельку другую с друзьями это да. Что-то более серьезное, не тратьте свои силы и время! Как минимум на  тему сталкера я таких проектов видел 10 штук и в некоторых даже сам поучаствовал. Начиналось все амбициозно и даже набирало онлайн до 100 человек. Но заканчивалось все одинаково 3-4 месяца и с десято скучающих тел, на безлюдном сервере.  С точки зрения администации, игроки ведут себя как проститутки, бегая с сервера на сервер, друзья перешли, или потому что на том добавили новый прикольный скрип, или прикольную тачку, или тут плохой пинг, а там хороший, или админ козел забанил за читы и тд.  а все эти приколюхи требуют денег, а игровое сообщество не очень расположено их платить за некачественный контент. Да и сама администрация достаточно быстро забивает и расслабляется.
      (я сейчас не говорю о конкретном проекте, скорее это собирательный образ халявы).
       
      А теперь по-существу.  Так сколько должен стоить контент с хотя бы приемлемым качеством?  

      Свое мнение я написал ниже.
       
       
      Спасибо за внимание.
       
      А что думаете Вы напишите ниже в комментариях!
       
       
    • Автор: DrTauren
      Как всем известно, сегодня, 19 сентября разработчики DayZ Standalone официально опубликовали документацию серверов Dayz, а также предоставили возможность скачать файлы для запуска сервера DayZ. Ниже прилагается перевод официальной документации этих самых файлов с форума DayZ, а также документация касательно других файлов, которых нет в официальной документации. Пользуйтесь на здоровье 
       
      Скачать серверные файлы через Steam: steam://rungameid/223350
      На данный момент присутствует ошибка с невозможностью скачать файлы сервера, если на вашем аккаунте Steam отсутствует купленная DayZ.
       
      P.S. Если у вас есть чем заполнить эту статью, обязательно пишите мне в лс 
  • Наш выбор

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

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

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