Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
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

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

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

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 BorizzK
      Довольно тупое охлаждение жратвы и кастрюли если они оказались на земле
      Прикрутить охлаждение содержимого кастрюли как 2 байта сами знаете что
      Сделать охлаждение после снятия с костра и тп вобщем то же не проблема
       
      Просто код и ничего лишнего
       
      Комментарии к коду добавлю позже
      Логгирование в коде закомментировано - раскомментируйте, что бы наблюдать за процессом
       
      Для жратвы убавление температуры раз в 10 сек на 1 градус
      Для кастрюли на 2 градуса
       
      Охлаждается до дневной температуры воздуха далее охлаждение прекращается
      У бгемотов есть 2 температуры воздуха - дневная и ночная
      Идиотизм? Однозначно
      Я пытался в погоде сделать ее плавное изменение в зависимости от Overcast, Rain и тп, но забил - потом как-нибудь
       
      Есть вопросы, задавайте, отвечу если будет время.
       
      Вобщем как-то так:
       
      //08.05.2020 modded class ItemBase extends InventoryItem { ref Timer m_TemperatureDecrease; private float m_InitTemperature; private float m_DecreaseTempTime = 10; private float m_TempDecreaseCoef = -1; void ItemBase() { m_InitTemperature = 12; //g_Game.GetMission().GetWorldData().GetDayTemperature(); // Не работает ((( какого художника - я хз if ( IsInherited(Pot) /* GetInventory().GetCargo() */ ) { m_TempDecreaseCoef = -2; } } override void AfterStoreLoad() { super.AfterStoreLoad(); if (!IsInherited(FireplaceBase)) TryToStartTempDecrease(); } private void TryToStartTempDecrease() { if (GetTemperature() > GetInitTemperature()) { if (!GetHierarchyParent()) { if (!m_TemperatureDecrease) { Print("::: SERVER: [ItemBase extends InventoryItem: Decreasetemp]: Init: TryToStartTempDecrease: this: " + this + ": GetHierarchyParent(): " + GetHierarchyParent() + ": GetTemperature(): " + GetTemperature()); StartTemperatureDecrease(); } } } } override void EEItemLocationChanged(notnull InventoryLocation oldLoc, notnull InventoryLocation newLoc) { super.EEItemLocationChanged(oldLoc,newLoc); //Print("::: SERVER: [ItemBase extends InventoryItem: Decreasetemp]: EEItemLocationChanged: this: " + this + ": newLoc.GetType(): " + newLoc.GetType() + ": newLoc.GetParent(): " + newLoc.GetParent() + ": GetTemperature(): " + GetTemperature()); if (GetTemperature() > GetInitTemperature()) { if (!newLoc.GetParent() || newLoc.GetType() == InventoryLocationType.GROUND) { if (!m_TemperatureDecrease) { Print("::: SERVER: [ItemBase extends InventoryItem: Decreasetemp]: EEItemLocationChanged: this: " + this + ": Begin decrease temperature: GetTemperature(): " + GetTemperature()); StartTemperatureDecrease(); } } } else { if (m_TemperatureDecrease) { Print("::: SERVER: [ItemBase extends InventoryItem: Decreasetemp]: EEItemLocationChanged: this: " + this + ": End decrease temperature: GetTemperature(): " + GetTemperature()); StopTemperatureDecrease(); } } } private void StartTemperatureDecrease() { m_TemperatureDecrease = new Timer( CALL_CATEGORY_SYSTEM ); m_TemperatureDecrease.Run(m_DecreaseTempTime, this, "DecreaseTemperature", NULL, true); } private void StopTemperatureDecrease() { m_TemperatureDecrease.Stop(); m_TemperatureDecrease = NULL; } void DecreaseTemperature() { if (GetTemperature() > GetInitTemperature()) { AddTemperature(GetTempDecreaseCoef()); if ( IsInherited(Pot) /* GetInventory().GetCargo() */) { DecreaseCargoTemperature(); } Print("::: SERVER: [ItemBase extends InventoryItem: Decreasetemp]: DecreaseTemperature: this: " + this + ": Decrease: GetTemperature(): " + GetTemperature()); } else { SetTemperature(GetInitTemperature()); StopTemperatureDecrease(); Print("::: SERVER: [ItemBase extends InventoryItem: Decreasetemp]: DecreaseTemperature: this: " + this + ": Stop decrease: GetTemperature(): " + GetTemperature()); } } void DecreaseCargoTemperature() { ItemBase item; int item_count = GetInventory().GetCargo().GetItemCount(); for (int i = 0; i < item_count; i++) { item = ItemBase.Cast(GetInventory().GetCargo().GetItem(i)); if (item) { if (item.GetTemperature() > item.GetInitTemperature()) { item.AddTemperature(item.GetTempDecreaseCoef()); Print("::: SERVER: [ItemBase extends InventoryItem: Decreasetemp]: DecreaseCargoTemperature: this: " + this + ": Decrease: item: " + item + ": item.GetTemperature(): " + item.GetTemperature()); } else { item.SetTemperature(item.GetInitTemperature()); Print("::: SERVER: [ItemBase extends InventoryItem: Decreasetemp]: DecreaseCargoTemperature: this: " + this + ": Stop decrease: item: " + item + ": item.GetTemperature(): " + item.GetTemperature()); } } } } float GetInitTemperature() { return m_InitTemperature; } float GetTempDecreaseCoef() { return m_TempDecreaseCoef; } } Немного переделал код
      Теперь охлаждается все если оно имеет Т выше 12, а если это кастрюля с содержимым, то и ее содержимое
      Получить Т воздуха в конструкторе не выходит потому указал руками
       
    • By DrTauren
      Что нам понадобится:
      1) Архив
      2) Notepad


      Инструкция:
      1) Качаем архив и копируем из него папку custom в вашу папку с миссией
      2) Открываем init.sqf и ищем такие строки:
      if (!isDedicated) then { 0 fadeSound 0; waitUntil {!isNil "dayz_loadScreenMsg"}; dayz_loadScreenMsg = (localize "STR_AUTHENTICATING"); _id = player addEventHandler ["Respawn", {_id = [] spawn player_death;}]; }; 3) Перед закрывающей скобкой }; прописываем это:
      _nil = [] execVM "custom\JAEM\EvacChopper_init.sqf"; 4) Выбираем одно из двух, выполняем действия указанные ниже:
      Если у вас нет своего variables.sqf в папке с миссией:  
       
      Если у вас есть свой variables.sqf в папке с миссией:  

      5) Копируем файлы remoteexec.txt, waypointcondition.txt, waypointstatement.txt в вашу папку с фильтрами BattlEye (\instance_11_Chernarus\BattlEye)

      Настройка параметров:
      Открываем файл EvacChopper_init.sqf (custom\JAEM\EvacChopper_init.sqf), находим нужную строку, редактируем по своему усмотрению:
      evac_chopperPrice = 3; Цена вашего спасения евреями. По умолчанию 3 Брифкейса
       
      evac_needRadio = 0; Обязательно ли радио для того, что бы вызвать хапуг? (0-не нужно, 1-таки извольте)
       
      evac_zoneMarker = 0; Дымовая граната на месте эвакуации (0-не надо, 1-таки не увидим мы без дыма)
       
      evac_minDistance = 500; Дословно: минимальное расстояние, что бы вызвать евреев. Меньше 500 не ставить!
    • By Serdce
      Ссылка на первоисточник - https://github.com/BrettNordin/Exile
      Я всего лишь перевёл
      Собственно переходим по ссылке, и скачиваем архив.
      Для тех, кто не знает как качать с хаба скрин 
      И так, едем дальше
      Скачанный архив распаковываем в удобное место для работы,
      Идём в ваш @ExileServer, там нас интересуют файлы - extDB2.dll , extDB2.so , extDB2-conf.ini , XM8.dll , XM8.so Удаляем эти файлы
      Далее идём в @ExileServer которую мы скачали, всё её содержимое копируем в аналогичную папку на сервере.
      Теперь идём в вашу MPmissions и там распаковываем вашу миссию "Exile.название карты",
      Туда мы копируем содержимое папки Exile.MapName из архива,
      Далее открываем ваш config.cpp и ищем там class CfgExileCustomCode 
      В него мы добавляем - #include "CfgExileCustomCode.cpp"
      Должно получится так
      Запаковываем обратно)
      Ну и теперь из архива мы копируем tbbmalloc.dll, tbbmalloc_x64.dll в папку расположения вашего Arma3_server.exe
      Не забываем поменять в вашем файле запуска сервера с arma3server.exe на arma3server_x64.exe 
      Ну и финишная прямая, открываем вашу базу данных ( желательно с название exile ) и добавляем файл Exile_Database_Update_64x.sql
      Далее настройте под себя ваш extdb3-conf.ini
       
    • By Astrahrom
      Столкнулся с цикличной проблемой в лаунчере, при установке ботов A3EAI:
      Script @epochhive\A3EAI_config.sqf not found Оказалось, что все дело в том, что в открытом доступе лежат старые версии этого скрипта, и все кто пытается воткнуть в Epochhive, как я, данный скрипт - делают это по старой схеме, не актуальной для последних версий.
       
      Решение
       
      Скачиваем - https://yadi.sk/d/HfXeB1pEAGoRtw
       
      Устанавливаем:
      1. Взять из папки архива "1. Installation Package" папку "@A3EAI" и вложить её в папку с вашим сервером;
      2. Прописать скрипт в вашем запускаторе, примерно так:
      -servermod=@EpochHive;@A3EAI; Пример моего запускатора:
      @echo off start "arma3" "arma3server.exe" -servermod=@EpochHive;@A3EAI; -mod=@Epoch; -config=C:\Arma3Server\sc\server.cfg -port=2307 -profiles=sc -cfg=C:\Arma3Server\sc\basic.cfg -name=sc -autoINIT Варианты настройки, которые хранятся в самой папке @A3EAI\addons\a3eai_config в файле config.cpp.
×
×
  • 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.