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

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

    Пользуйтесь услугами гаранта
    Мы сделаем вашу сделку безопасной
  • Не хотите БАН?

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

    Там вы можете продать или купить
    Всё что касается игровых серверов
  • 0
PJIIOxa

Mod Trader конфликтует с Триггеры с газом[1.0][By NoNameUltima]

Вопрос

Установлен скрипт Триггеры с газом[1.0][By NoNameUltima], устанавливаю мод Trader и в игре выдает сообщение [Trader] Missing  trader data from server!!!

Подскажите есть ли какой способ исправить эту проблему???

 

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


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

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

Забронировать это рекламное место


  • 0

ZigoFrend блин ну я видел на нескольких проектах что они оба работают, только вот я немогу понять почему у меня такая фигня.

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


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

[Trader] Missing  trader data from server выдает сообщение, убираю из Init все что связано с триггерами с газом работает мод Trader и зоны с контейнерами и торговцами появляются

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

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


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

[Trader] Missing  trader data from server выдает сообщение, убираю из Init все что связано с триггерами с газом работает мод Trader и зоны с контейнерами и торговцами появляются

проверяйте как настроено все, тупым копипастом тут не получится

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


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

123new Вот мой init.c

#include "$CurrentDir:\\mpmissions\\dayzOffline.chernarusplus\\DamagedZone.c"
#include "$CurrentDir:\\mpmissions\\dayzOffline.chernarusplus\\PlayersMessagesCount.c"
#include "$CurrentDir:\\mpmissions\\dayzOffline.chernarusplus\\InfoMessages.c"
#include "$CurrentDir:\\mpmissions\\dayzOffline.chernarusplus\\plugins\\AirDrop.c"
#include "$CurrentDir:\\mpmissions\\dayzoffline.chernarusplus\\Scripts\myzone.c"
ref MyZone_PlugIn MyZone = new MyZone_PlugIn();
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);
	
	GetGame().GetCallQueue(CALL_CATEGORY_GAMEPLAY).CallLater(SendPlayersCount, TIME_InfoPlayers_Repeat, true);
    GetGame().GetCallQueue(CALL_CATEGORY_GAMEPLAY).CallLater(CustomInformation, TIME_Information_Repeat, true);  
	
	//INIT ECONOMY--------------------------------------
	Hive ce = CreateHive();
	if ( ce )
		ce.InitOffline();

	//DATE RESET AFTER ECONOMY INIT-------------------------
	int year;
	int month;
	int day;
	int hour;
	int minute;

	GetGame().GetWorld().GetDate(year, month, day, hour, minute);

    if (((month <= 9) && (day < 20)) || ((month >= 10) && (day > 20)))
    {
        month = 9;
        day = 20;
		
		GetGame().GetWorld().SetDate(year, month, day, hour, minute);
	}
}

class CustomMission: MissionServer
{	
    void OnInit () 
	{
		GetGame().GetCallQueue(CALL_CATEGORY_GAMEPLAY).CallLater(GAS_ZONE_TRIGGER, 10000, true);
	}

    override void OnPreloadEvent(PlayerIdentity identity, out bool useDB, out vector pos, out float yaw, out int queueTime)
	{
		//Читаем spqwn time из конфига сервера
        if (GetGame().ServerConfigGetInt("spawnTime") > 0)
		{
			queueTime = GetGame().ServerConfigGetInt("spawnTime");
		}

		if (GetHive())
		{
			// Preload data on client by character from database
			useDB = true;
		}
		else
		{
			// Preload data on client without database //Вот это я не понял зачем
			useDB = false;
			pos = "1189.3 0.0 5392.48";
			yaw = 0;
		}
	}
	
    bool Activate_MyZone_PlugIn = true;
	override void TickScheduler(float timeslice)
    {
        GetGame().GetWorld().GetPlayerList(m_Players);
        if( m_Players.Count() == 0 ) return;
        for(int i = 0; i < SCHEDULER_PLAYERS_PER_TICK; i++)
        {
            if(m_currentPlayer >= m_Players.Count() )
            {
                m_currentPlayer = 0;
            }

            PlayerBase currentPlayer = PlayerBase.Cast(m_Players.Get(m_currentPlayer));
            if (Activate_MyZone_PlugIn) { MyZone_PlugIn.CheckingPosition(currentPlayer); } //Check if player is near myzone
            currentPlayer.OnTick();
            m_currentPlayer++;
        }
    }
	
	ref AirDrop AirDropClass; // Class definition

    void CustomMission()
    {
	    AirDropClass = new AirDrop;		
    }

    float TimerSlice; // Timeslice
    override void OnUpdate( float timeslice )
    {
	    super.OnUpdate( timeslice );

	    // FPS Fix
	    TimerSlice += timeslice;
	    if (TimerSlice >= AirDropClass.TimesliceMultiplyier)
	    {
	      	AirDropClass.CreateAirDrop();
		    TimerSlice = 0;	
	    }
    }

	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)
	{
/*
		player.RemoveAllItems();

		EntityAI item = player.GetInventory().CreateInInventory(topsMissionArray.GetRandomElement());
		EntityAI item2 = player.GetInventory().CreateInInventory(pantsArray.GetRandomElement());
		EntityAI item3 = player.GetInventory().CreateInInventory(shoesArray.GetRandomElement());
*/
		EntityAI itemTop;
		EntityAI itemEnt;
		ItemBase itemBs;
		float rand;
		
		itemTop = player.FindAttachmentBySlotName("Body");
		
		if ( itemTop )
		{
			itemEnt = itemTop.GetInventory().CreateInInventory("RoadFlare");
			SetRandomHealth(itemEnt);
		
			itemEnt = itemTop.GetInventory().CreateInInventory("CanOpener");
			SetRandomHealth(itemEnt);
		}

		rand = Math.RandomFloatInclusive(0.0, 1.0);
		if ( rand < 0.25 )
			itemEnt = player.GetInventory().CreateInInventory("SodaCan_Cola");
		else if ( rand > 0.75 )
			itemEnt = player.GetInventory().CreateInInventory("SodaCan_Spite");
		else
			itemEnt = player.GetInventory().CreateInInventory("SodaCan_Pipsi");
		
		SetRandomHealth(itemEnt);

		rand = Math.RandomFloatInclusive(0.0, 1.0);
		if ( rand < 0.35 )
			itemEnt = player.GetInventory().CreateInInventory("SardinesCan");
		else if ( rand > 0.65 )
			itemEnt = player.GetInventory().CreateInInventory("SpaghettiCan");
		else
			itemEnt = player.GetInventory().CreateInInventory("TacticalBaconCan");
		
		SetRandomHealth(itemEnt);
		
		itemEnt = player.GetInventory().CreateInInventory("SantasHat");
		itemBs = ItemBase.Cast(itemEnt);
		
		itemEnt = player.GetInventory().CreateInInventory("CourierBag");
		itemBs = ItemBase.Cast(itemEnt);
		
		itemEnt = player.GetHumanInventory().CreateInInventory("Rag");
		if ( Class.CastTo(itemBs, itemEnt ) )
		itemBs.SetQuantity(6);

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

А вот сам DamagedZone.c

vector CorrectToGroundPosY(vector pos)
{
	float pos_x = pos[0];
	float pos_z = pos[2];
	float pos_y = GetGame().SurfaceY(pos_x, pos_z);
	vector tmp_pos = Vector(pos_x, pos_y, pos_z);
	return tmp_pos;
}
void GAS_ZONE_TRIGGER()
{
	/*
		GAS_ZONE_TRIGGER
		Автор: NoNameUltima
		skype: hf-trade
	*/
	//	Зараженные зоны
	TVectorArray	gas_points		=	{"1632 0 14061"};
	//	Массив намордников
	TStringArray	gas_masks		=	{"GasMask", "GP5GasMask"};
	//	Радиус зон
	int 			radius			=	400;
	//	Наносимый урон
	float 			damage_value	=	10;

	ref array<Man> players 			=	new array<Man>;
	GetGame().GetPlayers( players );		
	PlayerBase	player;
	vector		position_player;		
	int			x;
	bool		isGasMask;
	int			attCount;
	int			attIdx;
	EntityAI	attachment;
	ItemBase	item;
	string		className;
	float		damage_player;
	
	for (int i = 0; i < players.Count(); i++)
		{
			Class.CastTo(player, players.Get(i));
			position_player	=	player.GetPosition();
			for (x	=	0; x < gas_points.Count(); x++)
				{
					if ( (vector.Distance(position_player, CorrectToGroundPosY(gas_points.Get(x)))) < radius )
						{
							isGasMask	=	false;	
							attCount	=	player.GetInventory().AttachmentCount();								
							for (attIdx	=	0; attIdx < attCount; attIdx++)
								{
									attachment	=	player.GetInventory().GetAttachmentFromIndex(attIdx);
									if ( attachment.IsItemBase() )
										{
											item		=	Class.Cast(attachment);
											className	=	item.GetType();									
											if ( gas_masks.Find(className) >= 0 )
												{
													//Print ("Намордник найден!");
													isGasMask	=	true;
													break;
												}												
										}
								}
							if (isGasMask == false)
								{
									//Print ("Намордник не найден!");
									damage_player	=	player.GetHealth("GlobalHealth", "Health");
									player.SetHealth("GlobalHealth", "Health", damage_player - damage_value);
								}
						}
				}
		}
}

И я вообще не понимаю почему они конфликтуют. тупо сейв зоны с торговцами нет на сервере и с лева внизу пишет сообщение [Trader] Missing trader data for server. Убираю из init строчки связанные со скриптом запускаю сервер все работает и сейв зона появляется с контейнерами и торговци.

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


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

PJIIOxa строка

[Trader] Missing trader data for server.

означает. что трейдер-конфиг не получен клиентом игры от сервера.
Чтобы все успешно работало, надо:

1. Подключить мод и на сервере и на клиенте игры

2. Убедиться, что в параметрах запуска и сервера и клиента всегго одна строка -mod= в наличии

3. Убедиться в наличии папки Trader в папке с директорией вашего Profiles сервера (эта папка в параметрах запуска сервера задается)

4. Убедитсья, что в папке Trader лежат родные конфиги от последнего обновления этого мода, а сами моды на клиенте и сервере игры идентичны

5. Убедиться, что в параметрах запуска сервера имеется -filepatching

И только тогда должно все работать именно как и должно.
ПРикладывайте script.log, crash.log, посмотрим что там у вас, а также неплохо бы параметры запуска сервера взглянуть и проверить наличие и сами указанные выше файлы в директории profiles

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


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

123new вот логи и параметры запуска сервера

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

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


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

PJIIOxa на сервере в папке [SM]ConFigServer лежит папка Trader с 3-мя файлами конфигурации от мода, которые лежат в самой папке мода? Если да, попробуй папку удалить и добавить заного.

И судя с

DESKTOP-0Q531K4, 06.02 2019 12:31:23
NULL pointer to instance
Class:      'CustomMission'
Function: 'OnUpdate'
Stack trace:
TM/Trader/scripts/5_Mission/mission\missionserver.c:178
JM/PermissionsFramework/Scripts/5_Mission/missionserver.c:36
JM/COT/Scripts/5_Mission/missionserver.c:68
$CurrentDir:mpmissions\dayzOffline.chernarusplus\init.c:101
scripts/3_Game/DayZGame.c:1665

в крашлоге и

SCRIPT    (E): NULL pointer to instance
Class:      'CustomMission'
Function: 'OnUpdate'
Stack trace:
TM/Trader/scripts/5_Mission/mission\missionserver.c:178
JM/PermissionsFramework/Scripts/5_Mission/missionserver.c:36
JM/COT/Scripts/5_Mission/missionserver.c:68
$CurrentDir:mpmissions\dayzOffline.chernarusplus\init.c:101
scripts/3_Game/DayZGame.c:1665

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

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

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


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

123new да лежит в том то и дело что удаляю из init все что связано с триггерами газа перезапускаю сервер и появляются тогда сейв зоны с трейдерами.

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


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

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

В логах script.log к слову я вообще не вижу инициализации трейдер мода у вас, и это весьма не нормально, насколько знаю.

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


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

123new дак уже пересобирал сервер с чистого сразу добавляю в Init скрипт на триггер с газом и запускаю сервер только с этим скриптом и плюсом с модом Trader один фиг ни торговцев ни торговых зон в игре нет только лишь сообщение Missing trader data for server.

Убираю из init триггер с газом запускаю сервер только с модом Trader все работает.

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

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


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

123new дак уже пересобирал сервер с чистого сразу добавляю в Init скрипт на триггер с газом и запускаю сервер только с этим скриптом и плюсом с модом Trader один фиг ни торговцев ни торговых зон в игре нет только лишь сообщение Missing trader data for server.

Убираю из init триггер с газом запускаю сервер только с модом Trader все работает.

что-то у вас не так стоит явно. Когда мод активен и стоит без ошибок, пишется такое:

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

Это скрин, кстати, с сервера где есть и трейдер и зоны эти.

Таких строк в вашем scripts.log не наблюдаю. Т.е. априори сам мод на стороне сервера у вас не подключился. Советую проверить корректность имени папки мода в таком случае.

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


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

123new как может мод не подключаться если он без скрипта триггеры с газом работает как только в init прописываю все что нужно для включения скрипта то не работает мод 

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


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

123new как может мод не подключаться если он без скрипта триггеры с газом работает как только в init прописываю все что нужно для включения скрипта то не работает мод 

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

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


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

123new вот запустил сервер, из init.c удалил вот это

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

и вот это
 

void OnInit () 
	{
		GetGame().GetCallQueue(CALL_CATEGORY_GAMEPLAY).CallLater(GAS_ZONE_TRIGGER, 10000, true);
	}

вот результат запуска сервера все работает нормально

 

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

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


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

123new вот запустил сервер, из init.c удалил вот это


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

и вот это
 


void OnInit () 
	{
		GetGame().GetCallQueue(CALL_CATEGORY_GAMEPLAY).CallLater(GAS_ZONE_TRIGGER, 10000, true);
	}

вот результат запуска сервера все работает нормально

 

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

нашел мини-ошибку. Очередной раз спасибо разрабам игры за отсутствие документации по новому языку в релизной версии игры.

Косяк в init.с в функции OnInit()

Правильное прописывание:

override void OnInit () 
	{
		super.OnInit();
		GetGame().GetCallQueue(CALL_CATEGORY_GAMEPLAY).CallLater(GAS_ZONE_TRIGGER, 10000, true);
	}

Исправлю в шапке темы гайда код.

 

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

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


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

123new спасибо за прояснение вот и решилась моя проблема все заработало, и скрипты все которые стояли и мод Trader

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


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

Присоединяйтесь к обсуждению

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

Гость
Ответить на вопрос...

×   Вставлено в виде отформатированного текста.   Восстановить форматирование

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

Загрузка...

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