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

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

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

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

    Use services of the guarantor
    We will make your deal safe
BorizzK

Вайтлист / WhiteList

Recommended Posts

Немного сыроват, но работает уже на неск серверах и вроде все норм

 

Вариант конечно не окончательный

Эксперементировал с кодом и тд итп

Потом лишнее уберу

Упрощу и тд итп

Хочу сделать универсальный

Как для вайтлиста так и для блэк

 

Конфиг простой

Подключаем в init.c

у меня лежит в корне миссии в папке _MOD\WhiteList

 

#include "$CurrentDir:\\mpmissions\\dayzOffline.chernarusplus\\_MOD\\WhiteList\\Server_WhiteList_Class.c"

 

обявляем там же

ref Server_WhiteList  WhiteList = new Server_WhiteList();

 

сам список UID (в столбик) кладем в папку _CONF в текстовый файл whiteList.lst

 

далее используем

 

у меня в init.c в 2х местах

 

в  классе CustomMission : MissonServer переопределил пару функций и добавил вызов в него

 

и следом

 

	override void InvokeOnConnect(PlayerBase player, PlayerIdentity identity)
	{
		super.InvokeOnConnect(player, identity);

      //Если игрок в черном списке или игрока нет в белом списке или ник игрока в черном списке игрока кикнет и функция вернет false
		if (!Server_WhiteList.CheckWBListConnectAllow(player, identity))
		{
			return; //IF KICK
		}
	}

Файл whiteList.lst можно править на горячую, если в папке с whiteList.lst положить whitelistautoreload - то при каждом вызове проверки игрока по вайтлисту он будет перезагружаться из whiteList.lst - по задумке что бы не перзапускать каждый раз сервер

но иногда если чел хотел войти, не пустило, потом внесли UID может не пустить с ошибкой Character Locked in database.

Придется ждать минут 5

Либо перезапускать сервер

 

+ Читайте каменты в файлах

 

+ подтягивайтесь для доработок

в первую очередь хотелось бы разобарться с залочиванием перса в базе

 

Вобщем буду переделывать под обработку эвентов + добавлю управление белым/черным списком из админки с автокиком в случае внесения УИДа
ручками вроде получилось

Буду автоматизировать

 

 

 

Обновленный вариант

 

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

Edited by BorizzK (see edit history)

Share this post


Link to post
Share on other sites







Обновил файлик и вызов

Работает на неск серверах

на одном в вайте 600 рыл

Вроде все норм

Иногда лочит в базе персов которых нет в вайте (которых кикнуло при первом подключении)
Но потом может и разлочить

 

Теперь в файле с UID' ами после UID через пробел можно оставлять любые комментарии, что удобно

Edited by BorizzK (see edit history)

Share this post


Link to post
Share on other sites

Выкладываю доработанную версию

Полный гайд завтра

 

Кратко

1. Кладем куда надо

2. Подключаем через include в init.c или другом включенном в init.c файле

Обязательно! вне класса!

 

Пример

#include "$CurrentDir:\\mpmissions\\dayzOffline.chernarusplus\\_MOD\\WhiteList\\Server_WhiteList_Class.c" //Server_WhiteList
ref Server_WhiteList WhiteList = new Server_WhiteList();

3. При старте сервера выполняем его инициализацию сделав вызов функции init из класса вайтлиста

 

находим в init.c в классе миссии или если класс миссии вынесен из init.c функцию OnInit

 

И вставляем туда вызов

 

	override void OnInit()
	{

		WhiteList.Init();

 

Добавляем в тело класса миссии переопределенную функцию override void InvokeOnConnect

вот так

 

	override void InvokeOnConnect(PlayerBase player, PlayerIdentity identity)
	{
		super.InvokeOnConnect(player, identity);
		//Если игрок в черном списке или игрока нет в белом списке будет кик и функция вернет false
		if (!WhiteList.CheckWBListConnectAllow(player, identity))
		{
			return; //IF KICK - RETURN
		}
	}

 

Важно!

 

Вызов super.InvokeOnConnect(player, identity); разместить до вызова функции вайтлиста иначе перс может лочится в базе

 

Файлы вайтлиста whiteList.lst и блэклиста blackList.lst сохраняем в корне миссии в папке _CONF, но Вы можете изменить путь в самом скрипте вайт листа

 

Формат - Steam UID (17цифр) вида 76561198156927001 в столбик

если уид кривой-неверный он будет игнорится

 

76561198156927001 тут может быть комментарий

76561198156927001

76561198156927001

76561198156927001

 

те что в вайтлисте могут входить

остальных кикнет

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

 

если в папке _CONF лежит файл whitelistautoreload

файл вайтлиста проверяется/перезагружается при каждом входе пользователя и можно не перегружая сервер изменять лист

то же касается и блэклиста ( blacklistautoreload )

 

если файлы удалить будет использоваться список/параметры загруженные при старте сервера

но автоперезагрузку всегда можно включить на лету создав эти файлы в папке

 

отключить вайтлист ? удалите переименуйте whiteList.lst

то же и блэклист

включить обратно можно на лету, как и отключить

создать whitelistautoreload и/или blacklistautoreload скрипт попытается прочитать вайтл/блэклист из файла, их не найдет и глобально отключит листы если листов нет и включит обратно если есть

 

кроме прочего есть и дополнительные параметры, которые можно помещать в конфиг сервера и файлы вайт/блэклиста

 

P.S. работа проверена - персы в 99%  случаев не лочатся в базе

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

 

По доппараметрам расскажу завтра или чуть позже

 

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

Edited by BorizzK (see edit history)

Share this post


Link to post
Share on other sites

Поправил под новую версию

 

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

Share this post


Link to post
Share on other sites

Поскольку в новом патче стандартная нативная функция дисконнекта игрока крашит сервер, если networkid игрока не попал в очередь рассылки (другим игрокам)

используйте отложенный кик в вайтлисте

см параметры

m_delayedKick = true;

m_kickTime = 2;

 

если m_kickTime мало, увеличте значение

 

так же эти параметры можно указать в файле вайтлиста и блэклиста

в таком виде - через пробел

при загрузке/перезагрузке вайт/блэк листа эти параметры подхватятся наряду со списком УИДов

delayedKick true

kickTime 2

 

 

P.S.

у параметров из файлов приоритет выше чем у параметров в файле скрипта

у блэклиста приоритет выше чем у вайт листа

 

Edited by BorizzK (see edit history)

Share this post


Link to post
Share on other sites

Внес несколько полезных изменений с учетом работы крайнего патча

 

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

Share this post


Link to post
Share on other sites

Чуть что-то изменил

 

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

Share this post


Link to post
Share on other sites

Не совсем допер что это и для чего, да где задается

GetGame().GetProfileStringList("adminsList",m_AdminsListArray); //Load in my Admin Tool
		GetGame().GetProfileStringList("arbitratorsList",m_ArbitratorsListArray); //Load in my Admin Tool

 

Share this post


Link to post
Share on other sites

123new Забей

В моей админтулзе из файла грузятся арбитры и админы

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

потому и передаю через профиль что бы не было крашей - моя админтулза же ток у меня

в другом случае я бы напрямую в класс писал

ну это уже другая история... ик ))))

 

Edited by BorizzK (see edit history)

Share this post


Link to post
Share on other sites

Усовершеноствованный вайтлист

все работает так же как раньше

но

теперь если в файл NICKBLACKLIST.lst положить строчка за строчкой запрещенные ники то игроков с такими никами так же будет кикать

Вроде нигде не накасячил (хотя дорабатывал уставший после работы и после 250 когняку 10 летнего)

в одном месте закостылил - там прям это каментом описано

 

пустые строки комментарии // /* */ допускаются

 

проверяйте

 

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

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

Edited by BorizzK (see edit history)

Share this post


Link to post
Share on other sites

BorizzK Не задрался я чёт и не выходит, А можно init.c в студию пожалуйста?

Share this post


Link to post
Share on other sites

AntonZavodskih 

 

ну init у меня пустой

все подключено отдельными файлами

 

но на примере вот

 

init.c

//Version 26.03.2019.2113

//==============================================================================================================================
//CUSTOM SPAWN BUILDINGS
#include "$CurrentDir:\\mpmissions\\dayzOffline.chernarusplus\\_MOD\\SpawnBuildings\\SpawnMyBuildings.c"
//==============================================================================================================================

//==============================================================================================================================
//Include CustomMission : MissionServer
#include "$CurrentDir:\\mpmissions\\dayzOffline.chernarusplus\\_MOD\\MissionAD.c"
//==============================================================================================================================

//GLOBAL SERVER INIT ON START (FINAL STAGE)
void main()
{
	Weather weather = g_Game.GetWeather();
	weather.MissionWeather(false);
	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);

	//Отличная погода для ПэВэПэ
	/*
    weather.GetOvercast().Set( 0, 0, 0);
    weather.GetRain().Set( 0, 0, 0);
    weather.GetFog().Set( 0, 0, 0);
	weather.GetOvercast().SetForecastChangeLimits(0, 0);
	weather.GetRain().SetLimits( 0, 0 );
	weather.SetWindSpeed(0.1);
	*/
	
	Hive ce = CreateHive();
	if ( ce )
		ce.InitOffline();
	
  	//Set time 08:00 at server start
	int year, month, day, hour, minute;
  	GetGame().GetWorld().GetDate(year, month, day, hour, minute);
  	hour = 8;
  	minute = 0;
    GetGame().GetWorld().SetDate(year, month, day, hour, minute);
	
	SpawnBuildings();
	
	Print("::: init.c ::: Server initialized and ready to connect players :::");
	Debug.Log("::: init.c ::: Server initialized and ready to connect players :::");
}

Mission CreateCustomMission(string path)
{
	return new CustomMission();
}

Класс миссии вынесен в отдельный файл

 

Сам класс миссии

 

//Version 26.03.2019.2221

//WHITELIST
#include "$CurrentDir:\\mpmissions\\dayzOffline.chernarusplus\\_MOD\\WhiteList\\Server_WhiteList_Class.c" //Server_WhiteList
ref Server_WhiteList_Class Server_WhiteList = new Server_WhiteList_Class();

class CustomMission : MissionServer
{	

	override void OnInit()
	{
		Print("::: CustomMission : MissionServer ::: OnInit() ::: Begin.");
		super.OnInit(); //First time call native functions

		Server_WhiteList.Init();
		
		Print("::: CustomMission : MissionServer ::: OnInit() ::: End.");
	}
	
	void SetRandomHealth(EntityAI itemEnt)
	{
		if ( itemEnt )
		{
			int rndHlt = Math.RandomInt(55,100);
			itemEnt.SetHealth("","",rndHlt);
		}
	}
	
	override PlayerBase CreateCharacter(PlayerIdentity identity, vector pos, ParamsReadContext ctx, string characterName)
	{
		Entity playerEnt;
		playerEnt = GetGame().CreatePlayer(identity, characterName, pos, 0, "NONE");//Creates random player
		Class.CastTo(m_player, playerEnt);
		
		GetGame().SelectPlayer(identity, m_player);
		
		return m_player;
	}
	
	override void StartingEquipSetup(PlayerBase player, bool clothesChosen)
	{
		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);
		}
	}

	//Connect players
	override void InvokeOnConnect(PlayerBase player, PlayerIdentity identity)
	{
		super.InvokeOnConnect(player, identity);

		//Если игрок в черном списке или игрока нет в белом списке будет кик и функция вернет false
		if (!Server_WhiteList.CheckWBListConnectAllow(player, identity))
		{
			return; //IF KICK
		}
	}
}

 

Тут основное

1 Подключение файла с классом вайтлиста

 

#include "$CurrentDir:\\mpmissions\\dayzOffline.chernarusplus\\_MOD\\WhiteList\\Server_WhiteList_Class.c" //Server_WhiteList
ref Server_WhiteList_Class Server_WhiteList = new Server_WhiteList_Class();

 

2 Вызов его инициализации в функции OnInit

Server_WhiteList.Init();

 

3 Переопределение серверной функции и в  ней вызов проверки игрока (вайтлист кикает сам)

 

	override void InvokeOnConnect(PlayerBase player, PlayerIdentity identity)
	{
		super.InvokeOnConnect(player, identity);

		//Если игрок в черном списке или игрока нет в белом списке будет кик и функция вернет false
		if (!Server_WhiteList.CheckWBListConnectAllow(player, identity))
		{
			return; //IF KICK
		}
	}

 

Edited by BorizzK (see edit history)

Share this post


Link to post
Share on other sites

BorizzK Ну ошибок уже нет, сервер запускается, но вот на сервер все равно пускает, хотя файл whiteList.lst пуст

вот сам init.c

 

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

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

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

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

	//DATE RESET AFTER ECONOMY INIT-------------------------
	int year, 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);
            }
        }
    }
}

#include "$CurrentDir:\\mpmissions\\dayzOffline.chernarusplus\\_MOD\\WhiteList\\Server_WhiteList_Class.c" //Server_WhiteList
ref Server_WhiteList_Class Server_WhiteList = new Server_WhiteList_Class();

class CustomMission: MissionServer
{	
    override void OnInit()
	{
		Print("::: CustomMission : MissionServer ::: OnInit() ::: Begin.");
		super.OnInit(); //First time call native functions

		Server_WhiteList.Init();
		
		Print("::: CustomMission : MissionServer ::: OnInit() ::: End.");
	}
	
    void SetRandomHealth(EntityAI itemEnt)
	{
		if ( itemEnt )
		{
			int rndHlt = Math.RandomInt(55,100);
			itemEnt.SetHealth("","",rndHlt);
		}
	}

	override PlayerBase CreateCharacter(PlayerIdentity identity, vector pos, ParamsReadContext ctx, string characterName)
	{
		Entity playerEnt;
		playerEnt = GetGame().CreatePlayer(identity, characterName, pos, 0, "NONE");//Creates random player
		Class.CastTo(m_player, playerEnt);
		
		GetGame().SelectPlayer(identity, m_player);
		
		return m_player;
	}
	
	override void StartingEquipSetup(PlayerBase player, bool clothesChosen)
	{
		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);
		}
	}
	
	override void InvokeOnConnect(PlayerBase player, PlayerIdentity identity)
	{
		super.InvokeOnConnect(player, identity);

		//Если игрок в черном списке или игрока нет в белом списке будет кик и функция вернет false
		if (!Server_WhiteList.CheckWBListConnectAllow(player, identity))
		{
			return; //IF KICK
		}
	}
};
  
Mission CreateCustomMission(string path)
{
	
	return new CustomMission();
}

 

Edited by AntonZavodskih (see edit history)

Share this post


Link to post
Share on other sites

AntonZavodskih помещаем в папку миссии сервера файлы и папку с архива в корень активной миссии сервера

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

дописываем в инит в самом верху файла 1 строкой

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

И все будет работать.
В архиве версия скрипта с данной темы предпоследняя, рабочая. В скрипте лишь путь до папки с конфигами скрипта скорректирован. Рассчитано на стандартное имя активной папки миссии сервера dayzOffline.chernarusplus

Edited by 123new (see edit history)

Share this post


Link to post
Share on other sites

123new Ты бы посвежей версию взял )))) ту которую я 20го марта выложил

 

AntonZavodskih  пустой вайтлист отключает вайтлист

пропишите - например нулевой UID - 00000000000000000 и он заработает

Edited by BorizzK (see edit history)

Share this post


Link to post
Share on other sites

BorizzK да я знакомому делал, ему и той версии хватает))

Share this post


Link to post
Share on other sites

123new скопировал в корень миссии, подключил. Тоже самое) ошибок нет, сервак грузится, файл со списком UID не менял, там уже были UID BorizzK . 
Свой UID не добавлял, 5 сек отсчет и спокойно зашёл. М да чё делать фиг знает)

Share this post


Link to post
Share on other sites

BorizzK 

0:46:24 BattlEye Server: Initialized (v1.217)
 0:46:24 SUCCESS: SteamGameServer_Init(0,27015,2312,27016,3,1.02.151010)
 0:46:24 Идентификатор сервера создан
 0:46:24 Роли назначены.
 0:46:24 Чтение задания...
 0:48:01 [CE][Hive] :: Initializing OFFLINE
 0:48:01 [CE][Hive] :: Loading core data ... 
 0:48:01 [CE][CoreData] :: 7 root classes, 0 defaults, 0 updaters...
 0:48:01 [CE][Hive] :: Loading map data ... 
 0:48:01 [CE][LoadPrototype] :: loaded 227 prototypes
 0:48:01   488 containers, 7156 points
 0:48:01   0 dispatches, 0 proxies
 0:48:01 !!! [CE][LoadPrototype] 5 groups have no points...
 0:48:01 [CE][LoadPrototype] :: last group name: Land_Wreck_Volha_Police...
 0:48:01 [CE][LoadPrototype] :: loaded 0 prototypes
 0:48:01   0 containers, 0 points
 0:48:01   0 dispatches, 0 proxies
 0:48:01 [CE][LoadPrototype] :: last group name: Rail9...
 0:48:02 [CE][LoadMap] "Group" :: loaded 11402 groups, largest group range: 34.2
 0:48:02 !!! File "mpmissions\dayzOffline.chernarusplus\mapgroupdirt.xml" does not exist...
 0:48:02 !!! [CE][LoadMap] "Dirt" :: Failed to read group instances ($CurrentDir:mpmissions\dayzOffline.chernarusplus\mapgroupdirt.xml)
 0:48:03 [CE][LoadClusters] "Cluster" :: Loading files...
 0:48:03 [CE][LoadClusters] :: file: "mapgroupcluster.xml", 9 types, 50000 instances
 0:48:04 [CE][LoadClusters] :: file: "mapgroupcluster01", 9 types, 50000 instances
 0:48:04 [CE][LoadClusters] :: file: "mapgroupcluster02", 9 types, 50000 instances
 0:48:05 [CE][LoadClusters] :: file: "mapgroupcluster03", 9 types, 50000 instances
 0:48:05 [CE][LoadClusters] :: file: "mapgroupcluster04", 9 types, 17188 instances
 0:48:09 [CE][TypeSetup] :: 374 classes setuped...
 0:48:09 [CE][RegisterBind] :: 0 classes binded...
 0:48:09 [CE][RegisterConfig] :: 2696 config classes registered, 1 sub-counters...
 0:48:09 [CE][Storage] ver:0 stamp:0, valid:NO, name:"mpmissions\dayzOffline.chernarusplus\storage_1\data\types.bin"
 0:48:09 [CE][Storage] ver:0 stamp:0, valid:NO, name:"mpmissions\dayzOffline.chernarusplus\storage_1\data\types.001"
 0:48:09 [CE][Storage] ver:0 stamp:0, valid:NO, name:"mpmissions\dayzOffline.chernarusplus\storage_1\data\types.002"
 0:48:09 !!! File "mpmissions\dayzOffline.chernarusplus\db\messages.xml" does not exist...
 0:48:09 [CE][offlineDB] :: Loaded 34 dynamic events 203 total types 0 total positions.
 0:48:09 [CE][Storage] ver:0 stamp:0, valid:NO, name:"mpmissions\dayzOffline.chernarusplus\storage_1\data\events.bin"
 0:48:09 [CE][Storage] ver:0 stamp:0, valid:NO, name:"mpmissions\dayzOffline.chernarusplus\storage_1\data\events.001"
 0:48:09 [CE][Storage] ver:0 stamp:0, valid:NO, name:"mpmissions\dayzOffline.chernarusplus\storage_1\data\events.002"
 0:48:09 [CE][Storage] ver:0 stamp:0, valid:NO, name:"mpmissions\dayzOffline.chernarusplus\storage_1\data\vehicles.bin"
 0:48:09 [CE][Storage] ver:0 stamp:0, valid:NO, name:"mpmissions\dayzOffline.chernarusplus\storage_1\data\vehicles.001"
 0:48:09 [CE][Storage] ver:0 stamp:0, valid:NO, name:"mpmissions\dayzOffline.chernarusplus\storage_1\data\vehicles.002"
 0:48:09 [CE][Storage] ver:0 stamp:0, valid:NO, name:"mpmissions\dayzOffline.chernarusplus\storage_1\data\dynamic_000.bin"
 0:48:09 [CE][Storage] ver:0 stamp:0, valid:NO, name:"mpmissions\dayzOffline.chernarusplus\storage_1\data\dynamic_000.001"
 0:48:09 [CE][Storage] ver:0 stamp:0, valid:NO, name:"mpmissions\dayzOffline.chernarusplus\storage_1\data\dynamic_000.002"
 0:48:09 [CE][Storage] ver:0 stamp:0, valid:NO, name:"mpmissions\dayzOffline.chernarusplus\storage_1\data\dynamic_001.bin"
 0:48:09 [CE][Storage] ver:0 stamp:0, valid:NO, name:"mpmissions\dayzOffline.chernarusplus\storage_1\data\dynamic_001.001"
 0:48:09 [CE][Storage] ver:0 stamp:0, valid:NO, name:"mpmissions\dayzOffline.chernarusplus\storage_1\data\dynamic_001.002"
 0:48:09 [CE][Storage] ver:0 stamp:0, valid:NO, name:"mpmissions\dayzOffline.chernarusplus\storage_1\data\dynamic_002.bin"
 0:48:09 [CE][Storage] ver:0 stamp:0, valid:NO, name:"mpmissions\dayzOffline.chernarusplus\storage_1\data\dynamic_002.001"
 0:48:09 [CE][Storage] ver:0 stamp:0, valid:NO, name:"mpmissions\dayzOffline.chernarusplus\storage_1\data\dynamic_002.002"
 0:48:09 [CE][Storage] ver:0 stamp:0, valid:NO, name:"mpmissions\dayzOffline.chernarusplus\storage_1\data\dynamic_003.bin"
 0:48:09 [CE][Storage] ver:0 stamp:0, valid:NO, name:"mpmissions\dayzOffline.chernarusplus\storage_1\data\dynamic_003.001"
 0:48:09 [CE][Storage] ver:0 stamp:0, valid:NO, name:"mpmissions\dayzOffline.chernarusplus\storage_1\data\dynamic_003.002"
 0:48:09 [CE][Storage] ver:0 stamp:0, valid:NO, name:"mpmissions\dayzOffline.chernarusplus\storage_1\data\dynamic_004.bin"
 0:48:09 [CE][Storage] ver:0 stamp:0, valid:NO, name:"mpmissions\dayzOffline.chernarusplus\storage_1\data\dynamic_004.001"
 0:48:09 [CE][Storage] ver:0 stamp:0, valid:NO, name:"mpmissions\dayzOffline.chernarusplus\storage_1\data\dynamic_004.002"
 0:48:09 [CE][Storage] ver:0 stamp:0, valid:NO, name:"mpmissions\dayzOffline.chernarusplus\storage_1\data\dynamic_005.bin"
 0:48:09 [CE][Storage] ver:0 stamp:0, valid:NO, name:"mpmissions\dayzOffline.chernarusplus\storage_1\data\dynamic_005.001"
 0:48:09 [CE][Storage] ver:0 stamp:0, valid:NO, name:"mpmissions\dayzOffline.chernarusplus\storage_1\data\dynamic_005.002"
 0:48:09 [CE][Storage] ver:0 stamp:0, valid:NO, name:"mpmissions\dayzOffline.chernarusplus\storage_1\data\dynamic_006.bin"
 0:48:09 [CE][Storage] ver:0 stamp:0, valid:NO, name:"mpmissions\dayzOffline.chernarusplus\storage_1\data\dynamic_006.001"
 0:48:09 [CE][Storage] ver:0 stamp:0, valid:NO, name:"mpmissions\dayzOffline.chernarusplus\storage_1\data\dynamic_006.002"
 0:48:09 [CE][Storage] ver:0 stamp:0, valid:NO, name:"mpmissions\dayzOffline.chernarusplus\storage_1\data\dynamic_007.bin"
 0:48:09 [CE][Storage] ver:0 stamp:0, valid:NO, name:"mpmissions\dayzOffline.chernarusplus\storage_1\data\dynamic_007.001"
 0:48:09 [CE][Storage] ver:0 stamp:0, valid:NO, name:"mpmissions\dayzOffline.chernarusplus\storage_1\data\dynamic_007.002"
 0:48:09 [CE][Storage] ver:0 stamp:0, valid:NO, name:"mpmissions\dayzOffline.chernarusplus\storage_1\data\dynamic_008.bin"
 0:48:09 [CE][Storage] ver:0 stamp:0, valid:NO, name:"mpmissions\dayzOffline.chernarusplus\storage_1\data\dynamic_008.001"
 0:48:09 [CE][Storage] ver:0 stamp:0, valid:NO, name:"mpmissions\dayzOffline.chernarusplus\storage_1\data\dynamic_008.002"
 0:48:09 [CE][Storage] ver:0 stamp:0, valid:NO, name:"mpmissions\dayzOffline.chernarusplus\storage_1\data\dynamic_009.bin"
 0:48:09 [CE][Storage] ver:0 stamp:0, valid:NO, name:"mpmissions\dayzOffline.chernarusplus\storage_1\data\dynamic_009.001"
 0:48:09 [CE][Storage] ver:0 stamp:0, valid:NO, name:"mpmissions\dayzOffline.chernarusplus\storage_1\data\dynamic_009.002"
 0:48:09 [CE][Storage] ver:0 stamp:0, valid:NO, name:"mpmissions\dayzOffline.chernarusplus\storage_1\data\dynamic_010.bin"
 0:48:09 [CE][Storage] ver:0 stamp:0, valid:NO, name:"mpmissions\dayzOffline.chernarusplus\storage_1\data\dynamic_010.001"
 0:48:09 [CE][Storage] ver:0 stamp:0, valid:NO, name:"mpmissions\dayzOffline.chernarusplus\storage_1\data\dynamic_010.002"
 0:48:09 [CE][Storage] ver:0 stamp:0, valid:NO, name:"mpmissions\dayzOffline.chernarusplus\storage_1\data\dynamic_011.bin"
 0:48:09 [CE][Storage] ver:0 stamp:0, valid:NO, name:"mpmissions\dayzOffline.chernarusplus\storage_1\data\dynamic_011.001"
 0:48:09 [CE][Storage] ver:0 stamp:0, valid:NO, name:"mpmissions\dayzOffline.chernarusplus\storage_1\data\dynamic_011.002"
 0:48:09 [CE][Hive] :: Empty storage folder, reinitializing ... 
 0:48:09 [CE][Hive] :: Initializing ... 
 0:48:09 [CE][Hive] :: Initializing spawners ... 
 0:48:10 !!! [CE][Point] Removing 1428.756104, 9296.132813 from Land_Castle_Gate
 0:48:21 [CE][LootRespawner] (PRIDummy) :: Item [0] causing search overtime: "SalineBag"
 0:48:24 [CE][LootRespawner] (PRIDummy) :: Item [0] is hard to place, performance drops: "M4A1"
 0:48:24 [CE][LootRespawner] (PRIDummy) :: Item [1] is hard to place, performance drops: "M4A1"
 0:48:25 [CE][LootRespawner] (PRIDummy) :: Item [2] is hard to place, performance drops: "ParamedicJacket_Crimson"
 0:48:25 [CE][LootRespawner] (PRIDummy) :: Item [3] is hard to place, performance drops: "GorkaPants_Summer"
 0:48:25 [CE][LootRespawner] (PRIDummy) :: Item [4] is hard to place, performance drops: "GorkaPants_Summer"
 0:48:26 [CE][LootRespawner] (PRIDummy) :: Item [5] is hard to place, performance drops: "UKAssVest_Black"
 0:48:26 [CE][LootRespawner] (PRIDummy) :: Item [6] is hard to place, performance drops: "ParamedicJacket_Green"
 0:48:26 [CE][LootRespawner] (PRIDummy) :: Item [7] is hard to place, performance drops: "ParamedicJacket_Green"
 0:48:26 [CE][LootRespawner] (PRIDummy) :: Item [8] is hard to place, performance drops: "ParamedicJacket_Green"
 0:48:26 [CE][LootRespawner] (PRIDummy) :: Item [9] is hard to place, performance drops: "ParamedicJacket_Green"
 0:48:26 [CE][LootRespawner] (PRIDummy) :: Item [10] is hard to place, performance drops: "ParamedicJacket_Green"
 0:48:26 [CE][LootRespawner] (PRIDummy) :: Item [11] is hard to place, performance drops: "ParamedicJacket_Green"
 0:48:28 [CE][LootRespawner] (PRIDummy) :: Item [12] is hard to place, performance drops: "UKAssVest_Khaki"
 0:48:28 [CE][LootRespawner] (PRIDummy) :: Item [13] is hard to place, performance drops: "UKAssVest_Khaki"
 0:48:28 [CE][LootRespawner] (PRIDummy) :: Item [14] is hard to place, performance drops: "UKAssVest_Khaki"
 0:48:28 [CE][LootRespawner] (PRIDummy) :: Item [15] is hard to place, performance drops: "UKAssVest_Olive"
 0:48:28 [CE][LootRespawner] (PRIDummy) :: Item [16] is hard to place, performance drops: "UKAssVest_Olive"
 0:48:28 [CE][LootRespawner] (PRIDummy) :: Item [17] is hard to place, performance drops: "UKAssVest_Olive"
 0:48:28 [CE][LootRespawner] (PRIDummy) :: Item [18] is hard to place, performance drops: "Rope"
 0:48:29 [CE][LootRespawner] (PRIDummy) :: Item [19] is hard to place, performance drops: "HunterPants_Winter"
 0:48:29 [CE][LootRespawner] (PRIDummy) :: Item [1] causing search overtime: "CharcoalTablets"
 0:48:31 [CE][LootRespawner] (PRIDummy) :: Item [2] causing search overtime: "MP5K"
 0:48:31 [CE][LootRespawner] (PRIDummy) :: Item [3] causing search overtime: "MP5K"
 0:48:31 [CE][LootRespawner] (PRIDummy) :: Item [4] causing search overtime: "Mag_SVD_10Rnd"
 0:48:31 !!! [CE][Point] Removing 8274.823242, 2463.851074 from Land_Boat_Small2
 0:48:31 [CE][LootRespawner] (PRIDummy) :: Item [5] causing search overtime: "TTsKOJacket_Camo"
 0:48:31 [CE][LootRespawner] (PRIDummy) :: Item [6] causing search overtime: "JungleBoots_Olive"
 0:48:31 [CE][LootRespawner] (PRIDummy) :: Item [7] causing search overtime: "JungleBoots_Olive"
 0:48:31 [CE][LootRespawner] (PRIDummy) :: Item [8] causing search overtime: "JungleBoots_Olive"
 0:48:31 [CE][LootRespawner] (PRIDummy) :: Item [9] causing search overtime: "JungleBoots_Olive"
 0:48:32 [CE][LootRespawner] (PRIDummy) :: Item [10] causing search overtime: "GorkaEJacket_Autumn"
 0:48:32 [CE][LootRespawner] (PRIDummy) :: Item [11] causing search overtime: "GorkaEJacket_Autumn"
 0:48:32 [CE][LootRespawner] (PRIDummy) :: Item [12] causing search overtime: "GorkaEJacket_Autumn"
 0:48:32 [CE][LootRespawner] (PRIDummy) :: Item [13] causing search overtime: "GorkaEJacket_Autumn"
 0:48:32 [CE][LootRespawner] (PRIDummy) :: Item [14] causing search overtime: "GorkaEJacket_Autumn"
 0:48:32 [CE][LootRespawner] (PRIDummy) :: Item [15] causing search overtime: "JungleBoots_Beige"
 0:48:32 [CE][LootRespawner] (PRIDummy) :: Item [16] causing search overtime: "JungleBoots_Beige"
 0:48:32 [CE][LootRespawner] (PRIDummy) :: Item [17] causing search overtime: "JungleBoots_Beige"
 0:48:32 [CE][LootRespawner] (PRIDummy) :: Item [18] causing search overtime: "JungleBoots_Beige"
 0:48:32 [CE][LootRespawner] (PRIDummy) :: Item [19] causing search overtime: "JungleBoots_Beige"
 0:48:33 [CE][LootRespawner] (PRIDummy) :: Initially (re)spawned:21158, Nominal:21183, Total in Map: 21216 at 23 (sec)
 0:48:33   tests:21559, repeats:122 fails:279, overtime:25
 0:48:33 [CE][SpawnRandomLoot] (StaticHeliCrash) :: ChildType: Wreck_Mi8, lootmin: 10, lootmax: 20, wanted: 18
 0:48:33 [CE][SpawnRandomLoot] (StaticHeliCrash) :: ChildType: Wreck_Mi8, lootmin: 10, lootmax: 20, wanted: 14
 0:48:33 [CE][SpawnRandomLoot] (StaticHeliCrash) :: ChildType: Wreck_UH1Y, lootmin: 10, lootmax: 20, wanted: 10
 0:48:33 [CE][SpawnRandomLoot] (StaticPoliceCar) :: ChildType: Land_Wreck_Volha_Police, lootmin: 3, lootmax: 5, wanted: 3
 0:48:33 [CE][SpawnRandomLoot] (StaticPoliceCar) :: ChildType: Land_Wreck_Volha_Police, lootmin: 3, lootmax: 5, wanted: 3
 0:48:33 [CE][SpawnRandomLoot] (StaticPoliceCar) :: ChildType: Land_Wreck_Volha_Police, lootmin: 3, lootmax: 5, wanted: 3
 0:48:33 [CE][SpawnRandomLoot] (StaticPoliceCar) :: ChildType: Land_Wreck_Volha_Police, lootmin: 3, lootmax: 5, wanted: 4
 0:48:33 [CE][SpawnRandomLoot] (StaticPoliceCar) :: ChildType: Land_Wreck_Volha_Police, lootmin: 3, lootmax: 5, wanted: 3
 0:48:33 [CE][SpawnRandomLoot] (StaticPoliceCar) :: ChildType: Land_Wreck_Volha_Police, lootmin: 3, lootmax: 5, wanted: 3
 0:48:33 [CE][SpawnRandomLoot] (StaticPoliceCar) :: ChildType: Land_Wreck_Volha_Police, lootmin: 3, lootmax: 5, wanted: 3
 0:48:33 [CE][SpawnRandomLoot] (StaticPoliceCar) :: ChildType: Land_Wreck_Volha_Police, lootmin: 3, lootmax: 5, wanted: 4
 0:48:33 [CE][SpawnRandomLoot] (StaticPoliceCar) :: ChildType: Land_Wreck_Volha_Police, lootmin: 3, lootmax: 5, wanted: 3
 0:48:33 [CE][SpawnRandomLoot] (StaticPoliceCar) :: ChildType: Land_Wreck_Volha_Police, lootmin: 3, lootmax: 5, wanted: 4
 0:48:34 [CE][DynEvent] :: 34 types
 0:48:34 [00] AmbientHen
 0:48:34   Primary Spawner: "Ambient", active: yes, repeat: 1
 0:48:34 [01] AnimalCow
 0:48:34   Primary Spawner: "Animal", active: yes, repeat: 1
 0:48:34 [02] AnimalDeer
 0:48:34   Primary Spawner: "Animal", active: yes, repeat: 1
 0:48:34 [03] AnimalGoat
 0:48:34   Primary Spawner: "Animal", active: yes, repeat: 1
 0:48:34 [04] AnimalPig
 0:48:34   Primary Spawner: "Animal", active: yes, repeat: 1
 0:48:34 [05] AnimalRoeDeer
 0:48:34   Primary Spawner: "Animal", active: yes, repeat: 1
 0:48:34 [06] AnimalSheep
 0:48:34   Primary Spawner: "Animal", active: yes, repeat: 1
 0:48:34 [07] AnimalWildBoar
 0:48:34   Primary Spawner: "Animal", active: yes, repeat: 1
 0:48:34 [08] AnimalWolf
 0:48:34   Primary Spawner: "Animal", active: yes, repeat: 1
 0:48:34 [09] InfectedArmy
 0:48:34   Primary Spawner: "Infected", active: yes, repeat: 1
 0:48:34 [10] InfectedCity
 0:48:34   Primary Spawner: "Infected", active: yes, repeat: 1
 0:48:34 [11] InfectedFirefighter
 0:48:34   Primary Spawner: "Infected", active: yes, repeat: 1
 0:48:34 [12] InfectedIndustrial
 0:48:34   Primary Spawner: "Infected", active: yes, repeat: 1
 0:48:34 [13] InfectedMedic
 0:48:34   Primary Spawner: "Infected", active: yes, repeat: 1
 0:48:34 [14] InfectedPolice
 0:48:34   Primary Spawner: "Infected", active: yes, repeat: 1
 0:48:34 [15] InfectedPrisoner
 0:48:34   Primary Spawner: "Infected", active: yes, repeat: 1
 0:48:34 [16] InfectedReligious
 0:48:34   Primary Spawner: "Infected", active: yes, repeat: 1
 0:48:34 [17] InfectedSolitude
 0:48:34   Primary Spawner: "Infected", active: yes, repeat: 1
 0:48:34 [18] InfectedVillage
 0:48:34   Primary Spawner: "Infected", active: yes, repeat: 1
 0:48:34 [19] ItemPlanks
 0:48:34   Primary Spawner: "Item", active: yes, repeat: 1
 0:48:34 [20] Loot
 0:48:34   Primary Spawner: "Loot", active: yes, repeat: 2
 0:48:34 [21] StaticHeliCrash
 0:48:34   Primary Spawner: "Vehicle", active: yes, repeat: 1
 0:48:34 [22] StaticPoliceCar
 0:48:34   Primary Spawner: "Vehicle", active: yes, repeat: 1
 0:48:34 [23] TrajectoryApple
 0:48:34   Primary Spawner: "Trajectory", active: yes, repeat: 1
 0:48:34 [24] TrajectoryCanina
 0:48:34   Primary Spawner: "Trajectory", active: yes, repeat: 1
 0:48:34 [25] TrajectoryConiferous
 0:48:34   Primary Spawner: "Trajectory", active: yes, repeat: 1
 0:48:34 [26] TrajectoryDeciduous
 0:48:34   Primary Spawner: "Trajectory", active: yes, repeat: 1
 0:48:34 [27] TrajectoryHumus
 0:48:34   Primary Spawner: "Trajectory", active: yes, repeat: 1
 0:48:34 [28] TrajectoryPear
 0:48:34   Primary Spawner: "Trajectory", active: yes, repeat: 1
 0:48:34 [29] TrajectoryPlum
 0:48:34   Primary Spawner: "Trajectory", active: yes, repeat: 1
 0:48:34 [30] TrajectorySambucus
 0:48:34   Primary Spawner: "Trajectory", active: yes, repeat: 1
 0:48:34 [31] TrajectoryStones
 0:48:34   Primary Spawner: "Trajectory", active: yes, repeat: 1
 0:48:34 [32] VehicleCivilianSedan
 0:48:34   Primary Spawner: "Vehicle", active: yes, repeat: 1
 0:48:34 [33] VehicleOffroadHatchback
 0:48:34   Primary Spawner: "Vehicle", active: yes, repeat: 1
 0:48:34 [CE][Hive] :: Initializing of spawners done.
 0:48:34 [CE][Hive] :: Init sequence finished.
 0:49:13 [Login]: Adding player TOXA (162205490) to login queue at position 1
 0:49:13 [LoginMachine]: Add player TOXA (162205490)
 0:49:13 [StateMachine]: Player TOXA (dpnid 162205490 uid ) Entering AuthPlayerLoginState
 0:49:13 BattlEye Server: Player #0 TOXA (90.188.236.171:2304) connected
 0:49:13 Игрок TOXA соединяется.
 0:49:13 [StateMachine]: Player TOXA (dpnid 162205490 uid ) Entering WaitAuthPlayerLoginState
 0:49:13 BattlEye Server: Player #0 TOXA - BE GUID: 2887ac19a790663e07e4c0ca75db9a90
 0:49:14 BattlEye Server: Verified GUID (2887ac19a790663e07e4c0ca75db9a90) of player #0 TOXA
 0:49:14 Игрок TOXA присоединился (id=0IViMlMc0tYHvT7vR3P2LIy6TVh5cqjnQiGgNESCOKk=).
 0:49:15 [StateMachine]: Player TOXA (dpnid 162205490 uid 0IViMlMc0tYHvT7vR3P2LIy6TVh5cqjnQiGgNESCOKk=) Entering GetCharacterLoginState
 0:49:15 [StateMachine]: Player TOXA (dpnid 162205490 uid 0IViMlMc0tYHvT7vR3P2LIy6TVh5cqjnQiGgNESCOKk=) Entering CreateNetObjectsLoginState
 0:49:16 Player TOXA dpid=162205490 at pos (13112.7, 0.0, 8142.3) 
 0:49:16 [StateMachine]: Player TOXA (dpnid 162205490 uid 0IViMlMc0tYHvT7vR3P2LIy6TVh5cqjnQiGgNESCOKk=) Entering PreloadCamLoginState
 0:49:16 [StateMachine]: Player TOXA (dpnid 162205490 uid 0IViMlMc0tYHvT7vR3P2LIy6TVh5cqjnQiGgNESCOKk=) Entering WaitPreloadCamLoginState
 0:49:18 BattlEye Server: RCon admin #0 (127.0.0.1:61402) logged in
 0:49:34 [StateMachine]: Player TOXA (dpnid 162205490 uid 0IViMlMc0tYHvT7vR3P2LIy6TVh5cqjnQiGgNESCOKk=) Entering GetNewCharLoginState
 0:49:34 <CREATE NEW CHAR>:
    charID 1
    playerID 1
    dpnid 162205490
    uid 0IViMlMc0tYHvT7vR3P2LIy6TVh5cqjnQiGgNESCOKk=
 0:49:53 [Disconnect]: Start script disconnect 162205490 (dbCharacterId 1 dbPlayerId 1) logoutTime 5
 0:49:58 [Disconnect]: Finish script disconnect 162205490
 0:49:58 [Disconnect]: DisconnectPlayerFinish 162205490
 0:49:58 [Disconnect]: Remove player info 162205490
 0:49:58 [Disconnect]: Player destroy 162205490 
 0:49:58 Игрок TOXA отсоединился.
 0:49:58 BattlEye Server: Player #0 TOXA disconnected

 

Share this post


Link to post
Share on other sites

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

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

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

Edited by AntonZavodskih (see edit history)

Share this post


Link to post
Share on other sites

Нашел выше

 

Не работает ВАШ Init.c должным образом

 

если бы работал

 

отрабатывал OnInt и в лог бы писалось

 

::: CustomMission : MissionServer ::: OnInit() ::: Begin.

 

 

::: CustomMission : MissionServer ::: OnInit() ::: End

 

Edited by BorizzK (see edit history)

Share this post


Link to post
Share on other sites

BorizzK123new  Спасибо, за помощь! Вроде пошло)
 

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

Share this post


Link to post
Share on other sites

AntonZavodskih 123new 

 

ААаа - у меня там ошибка - в выводе в лог про вайтлист пишет про блэклист (((

 

исправил

 

выкладываю

 

 

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

Edited by BorizzK (see edit history)

Share this post


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

AntonZavodskih помещаем в папку миссии сервера файлы и папку с архива в корень активной миссии сервера

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

 2

дописываем в инит в самом верху файла 1 строкой


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

И все будет работать.
В архиве версия скрипта с данной темы предпоследняя, рабочая. В скрипте лишь путь до папки с конфигами скрипта скорректирован. Рассчитано на стандартное имя активной папки миссии сервера dayzOffline.chernarusplus

обновил до актуальной версии архив, не проверял

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

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

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

Create an account

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

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By 6agu
      Поставил
      Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.
    • By 123new
      Много вопросов на данную тему наблюдаю от новичков, попробую прояснить немного сей вопрос.
       
      Предположим. что вы уже знаете на каких координатах вам надо спавнить определенное здание или объект\животное\бота, с каким углом поворота. И так. эта тема для вас.
       
      Сразу делаю пометку, метод, который добавили нам разработчики игры в патче 1.15, очень хорошо описал наш товарищ в сообщении форума:
      Рекоммендую вам использовать именно его!
      Ниже опубликованы старые методы.
       
      Если вы с расставили их с модифицированной версии Offline (Offline by Arksenor это называется), то вы получили и нашли код вида:
      GetGame().CreateObject("Land_CementWorks_ExpeditionB", "13251.875000 0.0 3748.525879").SetOrientation("-96.000000 0.000000 0.000000"); GetGame().CreateObject("Land_CementWorks_ExpeditionB", "13254.599609 0.0 3722.703613").SetOrientation("-96.000000 0.000000 0.000000"); GetGame().CreateObject("Land_CementWorks_ExpeditionB", "13257.344727 0.0 3696.718750").SetOrientation("-96.000000 0.000000 0.000000"); GetGame().CreateObject("Land_CementWorks_ExpeditionB", "13260.040039 0.0 3670.984131").SetOrientation("-96.000000 0.000000 0.000000"); GetGame().CreateObject("Land_CementWorks_ExpeditionB", "13262.756836 0.0 3645.180176").SetOrientation("-96.000000 0.000000 0.000000"); GetGame().CreateObject("Land_CementWorks_ExpeditionB", "13265.441406 0.0 3619.531982").SetOrientation("-96.000000 0.000000 0.000000"); GetGame().CreateObject("Land_CementWorks_ExpeditionB", "13268.124023 0.0 3593.995361").SetOrientation("-96.000000 0.000000 0.000000"); GetGame().CreateObject("Land_CementWorks_ExpeditionB", "13270.844727 0.0 3568.186523").SetOrientation("-96.000000 0.000000 0.000000"); GetGame().CreateObject("Land_CementWorks_ExpeditionB", "13273.514648 0.0 3542.561279").SetOrientation("-96.000000 0.000000 0.000000"); GetGame().CreateObject("Land_CementWorks_ExpeditionB", "13276.195313 0.0 3517.048828").SetOrientation("-96.000000 0.000000 0.000000"); GetGame().CreateObject("Land_CementWorks_ExpeditionB", "13278.399414 0.0 3496.097900").SetOrientation("-96.000000 0.000000 0.000000"); Здесь (по примеру первой строки) 1 значение в скобках - id постройки/объекта, 2 значение - координаты в формате X Y Z, разделенные пробелом, 3 - значение поворота примерно в том же формате.
      Как это делать в Offline - статья от автора Offine:
      https://github.com/Arkensor/DayZCommunityOfflineMode/wiki/Add-custom-objects-to-your-server-or-mission
       
      И так, инструкция:
      1. Добавляем в начало init.c файла в вашей mpmissions следующий код:
      #include "$CurrentDir:mpmissions\dayzOffline.chernarusplus\spawn_buildings.c" 2. Создаем в папке вашей активной mpmissions файлик spawn_buildings.c и заполняем его следующей информацией.
      void SpawnObject( string type, vector position, vector orientation ) { private string NameBlockLog = "[CreateObject] "; private string InfoLog = ""; if(type != "") { auto obj = GetGame().CreateObject( type, "0 0 0" ); if(obj) { if ((position[0] != 0) && (position[1] != 0) && (position[2] != 0)) { obj.SetPosition( position ); obj.SetOrientation( orientation ); obj.Update(); if (obj.CanAffectPathgraph()) { obj.SetAffectPathgraph(true, false); GetGame().GetCallQueue(CALL_CATEGORY_SYSTEM).CallLater(GetGame().UpdatePathgraphRegionByObject, 100, false, obj); } InfoLog = "[Type: '" + obj.GetType() + "' Position: '" + obj.GetPosition().ToString() + "' Orientation: '" + obj.GetOrientation().ToString() + "']"; Write_Log(NameBlockLog + " Object has been created successfully! Info " + InfoLog); } else { InfoLog = "[Type: '" + type + "' Position: '" + position + "' Orientation: '" + orientation + "']"; Write_Log(NameBlockLog + " Object can't be created! Incorrect writed position. Info " + InfoLog); } } else { InfoLog = "[Type: '" + type + "' Position: '" + position + "' Orientation: '" + orientation + "']"; Write_Log(NameBlockLog + " Object can't be created! Info " + InfoLog); } } else { InfoLog = "[Type: '" + type + "' Position: '" + position + "' Orientation: '" + orientation + "']"; Write_Log(NameBlockLog + " Object can't be created! Incorrect writed type. Info " + InfoLog); } } void Write_Log(string message) { Print(String(message)); } 3. Открываем созданный нами файл,  и в конце файла дописываем следующее:
      void SpawnAirfeeldBuildings() { SpawnObject( "Land_CementWorks_ExpeditionB", "13251.875000 0.0 3748.525879", "-96.000000 0.000000 0.000000"); SpawnObject( "Land_CementWorks_ExpeditionB", "13254.599609 0.0 3722.703613", "-96.000000 0.000000 0.000000"); SpawnObject( "Land_CementWorks_ExpeditionB", "13257.344727 0.0 3696.718750", "-96.000000 0.000000 0.000000"); } void SpawnKrasnoBuildings() { SpawnObject( "Land_CementWorks_ExpeditionB", "13251.875000 0.0 3748.525879", "-96.000000 0.000000 0.000000"); SpawnObject( "Land_CementWorks_ExpeditionB", "13254.599609 0.0 3722.703613", "-96.000000 0.000000 0.000000"); SpawnObject( "Land_CementWorks_ExpeditionB", "13257.344727 0.0 3696.718750", "-96.000000 0.000000 0.000000"); } Где после void - название функции идет, а между открытыми скобками вызов спавна самих зданий на указанных координатах.
      На примере 1 строки:
      Land_CementWorks_ExpeditionB - id постройки (type)
      13251.875000 0.0 3748.525879 - координаты в формате X Y Z
      -96.000000 0.000000 0.000000 - значение поворота в формате X Y Z
      Внимание: id постройки и координаты в примере указаны не верные и требуют подключения дополнительной модификации для корректной работы!!! Координаты не соответствуют названию функции!!!
      4. открываем в MpMissions в папке с вашей активной миссией init.c и перед ЗАКРЫВАЮЩЕЙ скобкой '}' дописываем нужную нам функцию (это будет активация спавна на карте):
      SpawnAirfeeldBuildings(); 5. Готово, Запускайте сервер, и в scripts.log вы увидите процедуру спавна ваших зданий и увидите, спавнятся ли они на карте или нет.
      Можно написать конечно и более готовую, универсальную систему спавна на карте со считыванием конфигурации из файла, но я считаю это лишним.
       
      Как заполнить добавленные здания лутом на карте:
      вариант 1:
      https://github.com/Arkensor/DayZCommunityOfflineMode/wiki/Enable-loot-for-custom-placed-objects
      вариант 2: вручную заполнить xml-файл  mapgrouppos.xml в mpmssions данными о местоположении зданий, где rpy - значение поворота здания в формате Z Y X
       
      С помощью данной статьи вы можете разместить любой элемент игры(постройку, животное, зомби, бота), доступный к спавну через любую модификацию-админ. панель. Очень полезный мод в этом смысле BuilderItems, с его помощью можно творить поистину интересные локации!
    • By Venom21
      Появилась такая проблема, нужно закрыть некоторые слоты под одежду, когда на определённый слот одет предмет…
      пример: возьмём экзоскелет от Фидова, там есть две версии которая одеваеться как на тело и ноги, и есть которая одеваться на разгрузку и пояс, так вот, нужно например чтобы при одетом экзаче на тело и ноги слоты под пояс и разгрузку блокировались, либо только под определенные предметы, если есть интерес то цену можем в личке обсудить…
      P.S. Разрешение от Фидова на переделку и переупаковку есть)
    • By CubeIn
      Здарова, уважаемые знатоки, вопрос.
      Мне скриптер скинул скрипт и сказал закинуть её в северную часть, но не указал куда именно. Подскажите пожалуйста, куда мне её деть? 
    • By CubeIn
      Здарова всем!
      У меня срочный вопрос опытным хозяинам серверостроения. Есть ли возможность настроить холод на карте Namalsk? А то слишком холодновато игрокам, а где это настраивать...
  • Our picks

×
×
  • Create New...

Important Information

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