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

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

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

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

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

Краш сервера при броске предметов

Всем доброго времени суток ✋ Я совсем недавно занялся серверостроением так сказать?

и возможно туплю сказочно ?

Короче говоря столкнулся с проблемой следующего характера , При броске предмета на землю сервер падает ... Хотя если просто выложить предмет на землю из инвентаря то все нормально. Не как не получается самому разобраться в чем дело . Может у кого было что то похоже ? Подскажите пожалуйста решение ?

Записал видео для наглядности Видео

---------------------------------------------
Log C:\DAYZM RP\DayZServer\profiles\crash_2024-11-24_17-07-16.log started at 24.11. 17:07:34



------------------------------------
DESKTOP-O04CQ98, 24.11 2024 17:07:34
[::GetData] :: [ERROR] :: Cannot load data from "$mission:cfgeffectarea.json":
JSON ERROR:
Missing a comma or ']' after an array element.
Function: 'GetData'
Stack trace:
scripts/4_World/classes\contaminatedarea\contaminatedarealoader.c:106
scripts/4_World/classes\contaminatedarea\contaminatedarealoader.c:28
scripts/5_Mission/mission\missionserver.c:91
DabsFramework/scripts/5_Mission/dabsframework\mission\missionserver.c:7
DayZServerManager/Scripts/5_Mission/dayzservermanager\game\dayzservermanagerwatcher.c:1072
EditorLoader/scripts/5_Mission/editorloader\mission\missionserver.c:66
JM/CF/Scripts/5_Mission/communityframework\mission\missionserver.c:34
VPPAdminTools/5_Mission/vppadmintools\missionserver.c:12

Runtime mode
CLI params: config serverDZ.cfg port 2302 profiles profiles mod @CF;@Dabs-Framework;@VPPAdminTools;@VPPAdminTools-RU-Translate;@STALKER-NewHorizon-ChernobylZone;@STALKER-NewHorizon-Objects;@XZone-STALKER-Mutants;@Stalker-Anomaly-Detectors-Free;@DayZ-Editor-Loader;@TraderPlus;@Harks-TraderPlus-Stalker-HUD;@STALKER-Equipment;@DEAD-AIR-Weapon-pack-STALKER-Air-DevTeam;@Survivor-name-changer;@MoreDoors;@Pristine-Repair;@Custom-animations;@BuildAnywhere_v3;@Extrateres-Shevrons;@Code-Lock;@CacheSpawner;@STALKER-ShronyTayniki-StashCache;@LIGHTS;@Syndicate-Items-Pack;@NoPaperLitter;@AmmoStackBullet;@STALKER-Sounds servermod @DayZServerManager;@ServerMods;@NoPaperLitter;@AmmoStackBullet adminlog  dologs  freezecheck  scrAllowFileWrite  scriptDebug  


------------------------------------
DESKTOP-O04CQ98, 24.11 2024 17:14:25
[ScriptCallQueue::Call] :: [ERROR] :: Incompatible parameter at index '2' for UnknownFoodCan::RemoveChild, expected 'bool', got 'void'
Class:      'HandActionThrow'
Function: 'CallLater'
Stack trace:
StalkerAnomaly_Activator/scripts/3_Game/handactionthrow.c:20
scripts/3_Game/systems\hfsmbase.c:543
scripts/3_Game/systems\hfsmbase.c:580
scripts/3_Game/systems\hfsmbase.c:426
scripts/3_Game/systems\inventory\humaninventorywithfsm.c:99
scripts/4_World/systems\inventory\dayzplayerinventory.c:1202
scripts/4_World/systems\inventory\dayzplayerinventory.c:1604
scripts/4_World/systems\inventory\dayzplayerinventory.c:687

Runtime mode
CLI params: config serverDZ.cfg port 2302 profiles profiles mod @CF;@Dabs-Framework;@VPPAdminTools;@VPPAdminTools-RU-Translate;@STALKER-NewHorizon-ChernobylZone;@STALKER-NewHorizon-Objects;@XZone-STALKER-Mutants;@Stalker-Anomaly-Detectors-Free;@DayZ-Editor-Loader;@TraderPlus;@Harks-TraderPlus-Stalker-HUD;@STALKER-Equipment;@DEAD-AIR-Weapon-pack-STALKER-Air-DevTeam;@Survivor-name-changer;@MoreDoors;@Pristine-Repair;@Custom-animations;@BuildAnywhere_v3;@Extrateres-Shevrons;@Code-Lock;@CacheSpawner;@STALKER-ShronyTayniki-StashCache;@LIGHTS;@Syndicate-Items-Pack;@NoPaperLitter;@AmmoStackBullet;@STALKER-Sounds servermod @DayZServerManager;@ServerMods;@NoPaperLitter;@AmmoStackBullet adminlog  dologs  freezecheck  scrAllowFileWrite  scriptDebug  


------------------------------------
DESKTOP-O04CQ98, 24.11 2024 17:14:26
Unhandled exception

Program: C:\DAYZM RP\DayZServer\DayZServer_x64.exe
Reason: Access violation. Illegal read by 0x7ff6b2c7e795 at 0x0

SymGetSymFromAddr:487, addr:0x7ff6b2c7e795
SymGetSymFromAddr:487, addr:0x7ff6b2c7fbeb
SymGetSymFromAddr:487, addr:0x7ff6b2c5f203
SymGetSymFromAddr:487, addr:0x7ff6b2c5f754
SymGetSymFromAddr:487, addr:0x7ff6b2c5ef41
SymGetSymFromAddr:487, addr:0x7ff6b2c5a766
SymGetSymFromAddr:487, addr:0x7ff6b2c1da59
SymGetSymFromAddr:487, addr:0x7ff6b2c1dcbd
[CDPCreateServer]: ??? addr:0x7ff6b304b185
[CDPCreateServer]: ??? addr:0x7ff6b3062229
[CDPCreateServer]: ??? addr:0x7ff6b30620dd
[CDPCreateServer]: ??? addr:0x7ff6b30627a8
[CDPCreateServer]: ??? addr:0x7ff6b3061bd5
[CDPCreateServer]: ??? addr:0x7ff6b30613ee
[CDPCreateServer]: ??? addr:0x7ff6b31c13b6
[CDPCreateServer]: ??? addr:0x7ff6b31b8554
[CDPCreateServer]: ??? addr:0x7ff6b31baa59
SymGetSymFromAddr:487, addr:0x7ff6b2c0c17d
[CDPCreateServer]: ??? addr:0x7ff6b31c2676
SymGetSymFromAddr:487, addr:0x7ff6b2d2667b
[CDPCreateServer]: ??? addr:0x7ff6b3312622
[BaseThreadInitThunk]: ??? addr:0x7ffb4c3e7ac4
[RtlUserThreadStart]: ??? addr:0x7ffb4e39a8c1
[RtlUserThreadStart]: ??? addr:0x7ffb4e39a8c1



Runtime mode
CLI params: config serverDZ.cfg port 2302 profiles profiles mod @CF;@Dabs-Framework;@VPPAdminTools;@VPPAdminTools-RU-Translate;@STALKER-NewHorizon-ChernobylZone;@STALKER-NewHorizon-Objects;@XZone-STALKER-Mutants;@Stalker-Anomaly-Detectors-Free;@DayZ-Editor-Loader;@TraderPlus;@Harks-TraderPlus-Stalker-HUD;@STALKER-Equipment;@DEAD-AIR-Weapon-pack-STALKER-Air-DevTeam;@Survivor-name-changer;@MoreDoors;@Pristine-Repair;@Custom-animations;@BuildAnywhere_v3;@Extrateres-Shevrons;@Code-Lock;@CacheSpawner;@STALKER-ShronyTayniki-StashCache;@LIGHTS;@Syndicate-Items-Pack;@NoPaperLitter;@AmmoStackBullet;@STALKER-Sounds servermod @DayZServerManager;@ServerMods;@NoPaperLitter;@AmmoStackBullet adminlog  dologs  freezecheck  scrAllowFileWrite  scriptDebug  

 

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


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

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

  • 0

Отбой разобрался .... Конфликт модов !

Anomaly-Detectors-FREE 

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


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

А с чем конфликтовал то этот мод? Мне кажется там не конфликт, а ошибка в моде.

 

                    //Object m_AnomalyActivator = GetGame().CreateObjectEx("AnomalyActivator", item.GetPosition(), ECE_LOCAL);
                    //item.AddChild(m_AnomalyActivator, -1, true);
                    //GetGame().GetCallQueue(CALL_CATEGORY_SYSTEM).CallLater(item.RemoveChild, 5*1000, false, m_AnomalyActivator);
                    //GetGame().GetCallQueue(CALL_CATEGORY_SYSTEM).CallLater(GetGame().ObjectDelete, 6*1000, false, m_AnomalyActivator);

 

Вот этот кусок почему-то крашит сервер...

 

Вот полностью:

modded class HandActionThrow
{
	override void Action (HandEventBase e)
	{
		hndDebugPrint("[hndfsm] " + Object.GetDebugName(e.m_Player) + " STS=" + e.m_Player.GetSimulationTimeStamp() + " action=throw");
		HandEventThrow throwEvent = HandEventThrow.Cast(e);

		GameInventory.LocationSyncMoveEntity(e.GetSrc(), e.GetDst());

		DayZPlayer player = DayZPlayer.Cast(e.m_Player);
		if ( player.GetInstanceType() != DayZPlayerInstanceType.INSTANCETYPE_REMOTE )
		{
			InventoryItem item = InventoryItem.Cast(e.GetSrcEntity());
			if( item )
            {
                //if ( item.IsKindOf("My_Item_Name") || item.IsKindOf("My_Item_Name2") )
                //{
					//Object m_AnomalyActivator = GetGame().CreateObjectEx("AnomalyActivator", item.GetPosition(), ECE_LOCAL);
					//item.AddChild(m_AnomalyActivator, -1, true);
					//GetGame().GetCallQueue(CALL_CATEGORY_SYSTEM).CallLater(item.RemoveChild, 5*1000, false, m_AnomalyActivator);
					//GetGame().GetCallQueue(CALL_CATEGORY_SYSTEM).CallLater(GetGame().ObjectDelete, 6*1000, false, m_AnomalyActivator);
                //}
				item.ThrowPhysically(player, throwEvent.GetForce());
            }
			else
				Error("[hndfsm] HandActionThrow - src entity null!");
		}
		player.OnItemInHandsChanged();
	}
};

Если раскомменировать данный кусок, то при броске как раз будет эта ошибка: [ERROR] :: Incompatible parameter at index '2' for UnknownFoodCan::RemoveChild, expected 'bool', got 'void'

 

Даже если закомментировать не весь кусок, а только этот:

					//GetGame().GetCallQueue(CALL_CATEGORY_SYSTEM).CallLater(item.RemoveChild, 5*1000, false, m_AnomalyActivator);
					//GetGame().GetCallQueue(CALL_CATEGORY_SYSTEM).CallLater(GetGame().ObjectDelete, 6*1000, false, m_AnomalyActivator);

всё равно происходит краш, но в логах уже пишет:

 

Unhandled exception

Program: F:\SteamLibrary\steamapps\common\DayZServer_Pripyat\DayZServer_x64.exe
Reason: Access violation. Illegal read by 0x7ff631e4e795 at 0x0

Данный кусок кода отвечает за активацию аномалии каким нибудь предметом. 

Может быть всё таки кто знает, что тут не так? Тоже уже голову сломал...

 

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

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


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

@Saybrax 
Object m_AnomalyActivator - локальная переменная в контексте метода Action
после завершения она уже не ссылается на обьект
самый простой способ это вынести в статичискую переменную
и молиться что бы кто-то не сделает это же действие паралельно)))

но лучше завести хелпера или хранить переменную на AnomalyActivator внутри предмета

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

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

class HandActionThrow extends HandActionBase
{
	override void Action (HandEventBase e)
	{
		#ifdef ENABLE_LOGGING
		if ( LogManager.IsInventoryHFSMLogEnable() )
		{	
			Debug.InventoryHFSMLog("Action - STS = " + e.m_Player.GetSimulationTimeStamp(), e.ToString() , "n/a", "HandActionThrow", e.m_Player.ToString() );
		}
		#endif
		HandEventThrow throwEvent = HandEventThrow.Cast(e);

		GameInventory.LocationSyncMoveEntity(e.GetSrc(), e.GetDst());

		DayZPlayer player = DayZPlayer.Cast(e.m_Player);
		if ( player.GetInstanceType() != DayZPlayerInstanceType.INSTANCETYPE_REMOTE )
		{
			InventoryItem item = InventoryItem.Cast(e.GetSrcEntity());
			if( item )
				item.ThrowPhysically(player, throwEvent.GetForce());
			else
				Error("[hndfsm] HandActionThrow - src entity null!");
		}

		player.OnItemInHandsChanged();
	}
};



 

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

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


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

Я просто отключил PBO AnomalyActivator  в папке Servermods . Ну и крашить сервер перестало соответственно . пока оставил так ?

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


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

Этот мод перепакован столько раз- при том, его даже продавать пытаются ? неужели никто так активатор и не допилил? Я дико извиняюсь- самому не хватает знаний, просто содержу сервер для атмосферы, нет коммерческих инициатив платить десятки тысяч за моды ? Уже вертел по-колхозному эти строчки- ан нет- швыряем в аномалию любой предмет, указанный в конфиге- и краш сервера. Брал из тыренных перепаковок- всюду одна и та же проблема.В логах HandActionThrow и труба. ваша строка за номером 16 убила сервер ?

                        Object m_AnomalyActivator = GetGame().CreateObjectEx("AnomalyActivator", item.GetPosition(),ECE_NONE);

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

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


Ссылка на сообщение
Поделиться на других сайтах
  • 0
18.12.2024 в 01:50, Saybrax сказал:

Если раскомменировать данный кусок, то при броске как раз будет эта ошибка: [ERROR] :: Incompatible parameter at index '2' for UnknownFoodCan::RemoveChild, expected 'bool', got 'void'

 

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

Думаю проблема в том, что функция Item.RemoveChild() должна возвращать bool а возвращает void

 

Функция написана как-то так скорее всего

override void RemoveChild() {

  тут какой-то текст
  ...
  ...
  тут какой-то текст

}

Попробуй переписать эту функцию вот так:

 

override bool RemoveChild() {

  тут какой-то текст
  ...
  ...
  тут какой-то текст

  return true;

}

Хотя может и не помочь... Т.к. например, функция ObjectDelete не возвращает тип булево...

А можешь вообще эту функцию RemoveChild() найти и показать её текст? Может проблема внутри неё?

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

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


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

 

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

Думаю проблема в том, что функция Item.RemoveChild() должна возвращать bool а возвращает void

 

Функция написана как-то так скорее всего

override void RemoveChild() { тут какой-то текст ... ... тут какой-то текст }


override void RemoveChild() {

  тут какой-то текст
  ...
  ...
  тут какой-то текст

}

Попробуй переписать эту функцию вот так:

 

override bool RemoveChild() { тут какой-то текст ... ... тут какой-то текст return true; }


override bool RemoveChild() {

  тут какой-то текст
  ...
  ...
  тут какой-то текст

  return true;

}

Хотя может и не помочь... Т.к. например, функция ObjectDelete не возвращает тип булево...

А можешь вообще эту функцию RemoveChild() найти и показать её текст? Может проблема внутри неё?

modded class HandActionThrow
{
    override void Action (HandEventBase e)
    {
        DayZPlayer player = DayZPlayer.Cast(e.m_Player);
        if(player)
        {
            if ( player.GetInstanceType() != DayZPlayerInstanceType.INSTANCETYPE_REMOTE )
            {
                InventoryItem item = InventoryItem.Cast(e.GetSrcEntity());
                if( item )
                {
                    if ( item.IsKindOf("woodenstick") || item.IsKindOf("air_ammo_9x18") )
                    {
                        //Object m_AnomalyActivator = GetGame().CreateObjectEx("AnomalyActivator", item.GetPosition(), ECE_LOCAL);
                        Object m_AnomalyActivator = GetGame().CreateObjectEx("AnomalyActivator", item.GetPosition(),ECE_NONE);
                        item.AddChild(m_AnomalyActivator, -1, true);
                        GetGame().GetCallQueue(CALL_CATEGORY_SYSTEM).CallLater(RemoveChild, 5*1000, false, item,m_AnomalyActivator);
                        GetGame().GetCallQueue(CALL_CATEGORY_SYSTEM).CallLater(ObjectDelete, 6*1000, false, m_AnomalyActivator);
                    }
                }
            }
        }
        super.Action(e);
    }
    void RemoveChild(InventoryItem item, Object m_AnomalyActivator)
    {
        if(m_AnomalyActivator)
        {
            item.RemoveChild(m_AnomalyActivator);
        }
    }
    void ObjectDelete(Object m_AnomalyActivator)
    {
        if(m_AnomalyActivator)
        {
            GetGame().ObjectDelete(m_AnomalyActivator);
        }
    }
};

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


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

@Angryman , не работает =(  Тут функции ничего не возвращают к сожалению =(

 

 

 

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


Ссылка на сообщение
Поделиться на других сайтах
  • 0
17.04.2025 в 03:47, Saybrax сказал:
 

@Angryman , не работает =(  Тут функции ничего не возвращают к сожалению =(

 

 

 

Это полный конфиг из последнего, это не я наШкодил ?

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


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

Получилось разобраться? Полдня тыкаюсь безуспешно 

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


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

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

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

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

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

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

Войти

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

Войти сейчас

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

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

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

Поддержка