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
  • 0
Armor

Сохранение персонажа

Как добавить новые параметры в базу данных при сохранении персонажа?
Допустим у меня в playerbase есть новое свойство, типо toxicLevel, как мне этот параметр сохранять в базу данных, чтобы когда человек перезаходил уровень токсинов в крови не сбрасывался.

Share this post


Link to post
Share on other sites

Recommended Posts

  • 0
30 минут назад, Armor сказал:

Как добавить новые параметры в базу данных при сохранении персонажа?
Допустим у меня в playerbase есть новое свойство, типо toxicLevel, как мне этот параметр сохранять в базу данных, чтобы когда человек перезаходил уровень токсинов в крови не сбрасывался.

Добавить этот параметр в поток

Но делать этого не стоит

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

И читаются так же

И любое нарушение последовательности при чтении/записи, выход за пределы размера - и пипец персу

Причем можно и всю базу сервера обрушить

Так что не стоит

Хочешь сохранять свойства перса

Используй запись в профиль сервера / чтение из него (это отдельный файл лежащий как правило в папке профиля сервера \ users \ имя профиля \ profile.vars.DayZProfile)

 

Запись в него  - например надо для игрока с Steam UID 01010101010101010 закатать туда какое-то значение

 

string DefaultAMMO = "AKM";

int  QUANTITY= 1;
bool ADDTOPLAYER = true;

 

string UID = player.GetIdentity().GetPlainId();

GetGame().SetProfileString(UID +"DefaultAMMO",DefaultAMMO);

GetGame().SetProfileString(UID +"QUANTITY",QUANTITY.ToString());

GetGame().SetProfileString(UID +"ADDTOPLAYER",ADDTOPLAYER.ToString());
 

в итоге в профиле будет лежать такое (просто для понимания)

01010101010101010DefaultAMMO AKM

01010101010101010QUANTITY 1

01010101010101010ADDTOPLAYER true

 

Теперь когда надо прочитаем

 

string DefaultAMMO;

int  QUANTITY;

bool ADDTOPLAYER;

 

Строку мы прочитаем просто

string UID = player.GetIdentity().GetPlainId();

 

GetGame().GetProfileString(UID +"DefaultAMMO",DefaultAMMO);

 

а для целочисленного и булева нужно преобразование

 

string tmpINT;

string tmpBOOL;

 

GetGame().GetProfileString(UID +"QUANTITY",tmpINT);

QUANTITY = tmpINT.ToString();

 

GetGame().GetProfileString(UID +"ADDTOPLAYER",tmpBOOL);

if (tmpBOOL == "true")

       ADDTOPLAYER = true;

else

    ADDTOPLAYER = false;


На самом деле есть еще 2 готовые функции в глобальном классе

 

//! Return value from profile variable, if variable with given name is not present, default value is returned
bool GetProfileValueBool(string name, bool def = false)

 

и

 

//! Writes bool variable to profile, after write don't forget to call CGame::SaveProfile() to save profile to storage!
void SetProfileValueBool(string name, bool value)

 

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

 

Дальше сами

 

 

 

 

 

 

 

Share this post


Link to post
Share on other sites



  • 0
34 минуты назад, BorizzK сказал:

Добавить этот параметр в поток

Но делать этого не стоит

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

И читаются так же

И любое нарушение последовательности при чтении/записи, выход за пределы размера - и пипец персу

Причем можно и всю базу сервера обрушить

Так что не стоит

Хочешь сохранять свойства перса

Используй запись в профиль сервера / чтение из него (это отдельный файл лежащий как правило в папке профиля сервера \ users \ имя профиля \ profile.vars.DayZProfile)

 

Запись в него  - например надо для игрока с Steam UID 01010101010101010 закатать туда какое-то значение

 

string DefaultAMMO = "AKM";

int  QUANTITY= 1;
bool ADDTOPLAYER = true;

 

string UID = player.GetIdentity().GetPlainId();

GetGame().SetProfileString(UID +"DefaultAMMO",DefaultAMMO);

GetGame().SetProfileString(UID +"QUANTITY",QUANTITY.ToString());

GetGame().SetProfileString(UID +"ADDTOPLAYER",ADDTOPLAYER.ToString());
 

в итоге в профиле будет лежать такое (просто для понимания)

01010101010101010DefaultAMMO AKM

01010101010101010QUANTITY 1

01010101010101010ADDTOPLAYER true

 

Теперь когда надо прочитаем

 

string DefaultAMMO;

int  QUANTITY;

bool ADDTOPLAYER;

 

Строку мы прочитаем просто

string UID = player.GetIdentity().GetPlainId();

 

GetGame().GetProfileString(UID +"DefaultAMMO",DefaultAMMO);

 

а для целочисленного и булева нужно преобразование

 

string tmpINT;

string tmpBOOL;

 

GetGame().GetProfileString(UID +"QUANTITY",tmpINT);

QUANTITY = tmpINT.ToString();

 

GetGame().GetProfileString(UID +"ADDTOPLAYER",tmpBOOL);

if (tmpBOOL == "true")

       ADDTOPLAYER = true;

else

    ADDTOPLAYER = false;


На самом деле есть еще 2 готовые функции в глобальном классе

 

//! Return value from profile variable, if variable with given name is not present, default value is returned
bool GetProfileValueBool(string name, bool def = false)

 

и

 

//! Writes bool variable to profile, after write don't forget to call CGame::SaveProfile() to save profile to storage!
void SetProfileValueBool(string name, bool value)

 

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

 

Дальше сами

 

 

 

 

 

 

 

Как я понимаю функцию записи вешать в функцию отключения игрока, не подскажешь её название?
И на счет этого не понял "Используй запись в профиль сервера / чтение из него (это отдельный файл лежащий как правило в папке профиля сервера \ users \ имя профиля \ profile.vars.DayZProfile)" может ты имел ввиду что этот файл лежит на стороне клиента, на сервере таких файлов у меня нет, а в папке документы/Dayz/ такой файл есть.

Edited by Armor (see edit history)

Share this post


Link to post
Share on other sites
  • 0
16 минут назад, Armor сказал:

Как я понимаю функцию записи вешать в функцию отключения игрока, не подскажешь её название?
И на счет этого не понял "Используй запись в профиль сервера / чтение из него (это отдельный файл лежащий как правило в папке профиля сервера \ users \ имя профиля \ profile.vars.DayZProfile)" может ты имел ввиду что этот файл лежит на стороне клиента, на сервере таких файлов у меня нет, а в папке документы/Dayz/ такой файл есть.

Началось
 

Есть класс PlayerBase
Там есть функции OnConnect и OnDisconnect

моддишь класс

оверрайдишь функции
Не зыбваешь вызов super. в начале OnConnect и в конце OnDisconnect

Это сторона сервера потому можно серверным модом
 

Если хочешь на чисто ванилке - то в init.c есть класс Миссии
Вот в нем оверрайдишь InvokeOnConnect InvokeOnDisconnect и прописываешь там что нужно (вызовы super. так же не забываем)

 

Дальше САМ

 

Share this post


Link to post
Share on other sites
  • 0
2 часа назад, BorizzK сказал:

Началось
 

Есть класс PlayerBase
Там есть функции OnConnect и OnDisconnect

моддишь класс

оверрайдишь функции
Не зыбваешь вызов super. в начале OnConnect и в конце OnDisconnect

Это сторона сервера потому можно серверным модом
 

Если хочешь на чисто ванилке - то в init.c есть класс Миссии
Вот в нем оверрайдишь InvokeOnConnect InvokeOnDisconnect и прописываешь там что нужно (вызовы super. так же не забываем)

 

Дальше САМ

 

Краш на краше и крашем погоняет.

Share this post


Link to post
Share on other sites
  • 0
5 минут назад, Armor сказал:

Краш на краше и крашем погоняет.

Покажи код

Покажи логи

 

Edited by BorizzK (see edit history)

Share this post


Link to post
Share on other sites
  • 0
2 минуты назад, BorizzK сказал:

Покажи код

Покажи логи

 

---------------------------------------------
Log C:\Users\днс\AppData\Local\DayZ\crash_2019-12-27_23-18-26.log started at 27.12. 23:22:48



------------------------------------
LAPTOP-QQ8BME8C, 27.12 2019 23:22:48
NULL pointer to instance
Class:      'SurvivorBase'
Entity id:0

Function: 'PlayerBase'
Stack trace:
Radiation/scripts/4_World/entities\manbase\playerbase.c:1
$CurrentDir:mpmissions\dayzOffline.chernarusplus\init.c:58
scripts/5_Mission/mission\missionserver.c:390
scripts/5_Mission/mission\missionserver.c:164
scripts/3_Game/dayzgame.c:1292

Runtime mode
CLI params: config serverDZ.cfg mod @Radiation 
---------------------------------------------
Log C:\Users\днс\AppData\Local\DayZ\crash_2019-12-27_23-20-00.log started at 27.12. 23:21:35



------------------------------------
LAPTOP-QQ8BME8C, 27.12 2019 23:21:35
NULL pointer to instance
Class:      'SurvivorBase'
Entity id:0

Function: 'PlayerBase'
Stack trace:
Radiation/scripts/4_World/entities\manbase\playerbase.c:1
scripts/4_World/classes\introscenecharacter.c:354
scripts/4_World/classes\introscenecharacter.c:210
scripts/4_World/classes\introscenecharacter.c:316
scripts/5_Mission/dayzintroscene.c:95
scripts/5_Mission/mission\missionmainmenu.c:66
scripts/5_Mission/mission\missionmainmenu.c:13

Runtime mode
CLI params: name Tixonov mod E:\Games\Steam\steamapps\common\DayZServer\@Radiation 


------------------------------------
LAPTOP-QQ8BME8C, 27.12 2019 23:21:37
NULL pointer to instance
Class:      'SurvivorBase'
Entity id:0

Function: 'PlayerBase'
Stack trace:
Radiation/scripts/4_World/entities\manbase\playerbase.c:1
scripts/4_World/classes\introscenecharacter.c:354
scripts/4_World/classes\introscenecharacter.c:210
scripts/5_Mission/gui\newui\mainmenu\mainmenu.c:476
scripts/5_Mission/gui\newui\mainmenu\mainmenu.c:340
scripts/5_Mission/gui\newui\mainmenu\mainmenu.c:100

Runtime mode
CLI params: name Tixonov mod E:\Games\Steam\steamapps\common\DayZServer\@Radiation 


------------------------------------
LAPTOP-QQ8BME8C, 27.12 2019 23:21:37
NULL pointer to instance
Class:      'SurvivorBase'
Entity id:0

Function: 'PlayerBase'
Stack trace:
Radiation/scripts/4_World/entities\manbase\playerbase.c:1
scripts/4_World/classes\introscenecharacter.c:354
scripts/4_World/classes\introscenecharacter.c:210
scripts/5_Mission/gui\newui\mainmenu\mainmenu.c:476
scripts/5_Mission/gui\newui\mainmenu\mainmenu.c:352

Runtime mode
CLI params: name Tixonov mod E:\Games\Steam\steamapps\common\DayZServer\@Radiation 


------------------------------------
LAPTOP-QQ8BME8C, 27.12 2019 23:22:48
NULL pointer to instance
Class:      'SurvivorBase'
Entity id:0

Function: 'PlayerBase'
Stack trace:
Radiation/scripts/4_World/entities\manbase\playerbase.c:1

Runtime mode
CLI params: name Tixonov mod E:\Games\Steam\steamapps\common\DayZServer\@Radiation 


------------------------------------
LAPTOP-QQ8BME8C, 27.12 2019 23:25:51
NULL pointer to instance
Class:      'SurvivorBase'
Entity id:0

Function: 'PlayerBase'
Stack trace:
Radiation/scripts/4_World/entities\manbase\playerbase.c:1
scripts/4_World/classes\introscenecharacter.c:354
scripts/4_World/classes\introscenecharacter.c:210
scripts/4_World/classes\introscenecharacter.c:316
scripts/5_Mission/dayzintroscene.c:95
scripts/5_Mission/mission\missionmainmenu.c:66
scripts/5_Mission/mission\missionmainmenu.c:13

Runtime mode
CLI params: name Tixonov mod E:\Games\Steam\steamapps\common\DayZServer\@Radiation 


------------------------------------
LAPTOP-QQ8BME8C, 27.12 2019 23:25:51
NULL pointer to instance
Class:      'SurvivorBase'
Entity id:0

Function: 'PlayerBase'
Stack trace:
Radiation/scripts/4_World/entities\manbase\playerbase.c:1
scripts/4_World/classes\introscenecharacter.c:354
scripts/4_World/classes\introscenecharacter.c:210
scripts/5_Mission/gui\newui\mainmenu\mainmenu.c:476
scripts/5_Mission/gui\newui\mainmenu\mainmenu.c:340
scripts/5_Mission/gui\newui\mainmenu\mainmenu.c:100

Runtime mode
CLI params: name Tixonov mod E:\Games\Steam\steamapps\common\DayZServer\@Radiation 


------------------------------------
LAPTOP-QQ8BME8C, 27.12 2019 23:25:51
NULL pointer to instance
Class:      'SurvivorBase'
Entity id:0

Function: 'PlayerBase'
Stack trace:
Radiation/scripts/4_World/entities\manbase\playerbase.c:1
scripts/4_World/classes\introscenecharacter.c:354
scripts/4_World/classes\introscenecharacter.c:210
scripts/5_Mission/gui\newui\mainmenu\mainmenu.c:476
scripts/5_Mission/gui\newui\mainmenu\mainmenu.c:352

Runtime mode
CLI params: name Tixonov mod E:\Games\Steam\steamapps\common\DayZServer\@Radiation 
	string UID = player.GetIdentity().GetPlainId();
    PlayerBase player = GetGame().GetPlayer();

    string inrRadDB;

    override void OnDisconnect()
    {
        string radData = GetInrRad().ToString();
        GetGame().SetProfileString( UID+"InnerRad", radData );
        Print("[PBase] Player "+player+" Disconnected save rad "+ radData);
        super.OnDisconnect();
    }
    override void OnConnect()
    {
        super.OnConnect();
        GetGame().GetProfileString(UID+"InnerRad",inrRadDB);
        Print("[PBase] Player "+player+" Connected load rad "+inrRadDB);
        Print("[PBase] Player "+player+" set rad "+inrRadDB);
        SetInrRad(inrRadDB.ToInt());
        GetGame().RPCSingleParam(player, RADRPCs.RPC_SET_INNER_RAD, new Param1<int>(inrRadDB.ToInt()), true);
        Print("[PBase] Player "+player+" after set rad "+GetInrRad());
    
    }

 

Share this post


Link to post
Share on other sites
  • 0

@Armor Забавно, до ОнКоннект получать UID через Идентити, которого скорее всего еще нет, да и еще и где то в глобальных переменных в пределах модуля, как собсно и игрока...

Edited by NoNameUltima (see edit history)

Share this post


Link to post
Share on other sites
  • 0
1 минуту назад, NoNameUltima сказал:

@Armor Забавно, до ОнКоннект получать UID через Идентити, которого скорее всего еще нет, да и еще и где то в глобальных переменных в пределах модуля, как собсно и игрока...

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

 

Edited by Armor (see edit history)

Share this post


Link to post
Share on other sites
  • 0
4 минуты назад, NoNameUltima сказал:

@Armor Забавно, до ОнКоннект получать UID через Идентити, которого скорее всего еще нет, да и еще и где то в глобальных переменных в пределах модуля, как собсно и игрока...

Ты не прав
Идентити там уже всегда есть - на стороне сервера

но не таким же образом - да

 

 

Edited by BorizzK (see edit history)

Share this post


Link to post
Share on other sites
  • 0
1 минуту назад, Armor сказал:

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

 

string UID = player.GetIdentity().GetPlainId();
PlayerBase player = GetGame().GetPlayer();
ЭТО ТЫ СЕРЬЕЗНО? ПРАВДА?

 

В PlayerBase ВАЩЕ НЕ НАДО СЦЫЛ НА ПЕРСА ПОЛУЧАТЬ ТК ОН ВЛАДЕЛЕЦ ЭТОГО ЭКЗЕМПЛЯРА
 

 

string UID = GetIdentity().GetPlainId();
player тут накер не нужен
а если нужен - он уже в переменной this

Учите МАТЧАСТЬ!

 

 

Share this post


Link to post
Share on other sites
  • 0
8 минут назад, BorizzK сказал:

string UID = player.GetIdentity().GetPlainId();
PlayerBase player = GetGame().GetPlayer();
ЭТО ТЫ СЕРЬЕЗНО? ПРАВДА?

 

В PlayerBase ВАЩЕ НЕ НАДО СЦЫЛ НА ПЕРСА ПОЛУЧАТЬ ТК ОН ВЛАДЕЛЕЦ ЭТОГО ЭКЗЕМПЛЯРА
 

 

string UID = GetIdentity().GetPlainId();
player тут накер не нужен
а если нужен - он уже в переменной this

Учите МАТЧАСТЬ!

 

 

На данном этапе меня интересует только работоспособность кода. Согласен, дурак. Но на краши это никак не влияет, все делал по твоей "инструкции".

Edited by Armor (see edit history)

Share this post


Link to post
Share on other sites
  • 0

В playerbase измени что делал как я написал

и снова логи и снова код

 

Эта

Ты в оффлайне что ли это делаешь?

 

Share this post


Link to post
Share on other sites
  • 0

@Armor

Во 1. Засунь получение ЮИДА в онКоннект.

Во 2. Проверяй перед его получением сушествование идентит

if ( !GetIdentity() )

{

return;

}

....

 

В 3. - Ты код серверный привел, а логи клиентские...

Share this post


Link to post
Share on other sites
  • 0
1 минуту назад, NoNameUltima сказал:

@Armor

Во 1. Засунь получение ЮИДА в онКоннект.

Во 2. Проверяй перед его получением сушествование идентит

if ( !GetIdentity() )

{

return;

}

....

 

В 3. - Ты код серверный привел, а логи клиентские...

Да он в оффлайне походу тестит
Там нет никакого онконнект он дисконнект

про ЮИД - сделать переменную в классе и внее в он коннект уид записать что бы потом в он дисконнект можно было им воспользоваться

 

Кроме того - В ОФФЛАЙНЕ НЕТ UID никакого

Edited by BorizzK (see edit history)

Share this post


Link to post
Share on other sites
  • 0
4 минуты назад, BorizzK сказал:

Да он в оффлайне походу тестит
Там нет никакого онконнект он дисконнект

про ЮИД - сделать переменную в классе и внее в он коннект уид записать что бы потом в он дисконнект можно было им воспользоваться

 

Кроме того - В ОФФЛАЙНЕ НЕТ UID никакого

Какой *я матерился, запинайте меня* офлайн если я запускаю выделенный сервер и присоединяюсь к нему

Share this post


Link to post
Share on other sites
  • 0

@BorizzK А что тогда он проверяет?) у него там RPC куда то летают) UIDы рождаются в оффлайне) проверок IsMultiplayer нигде нет... OnConnect зачем то..

Share this post


Link to post
Share on other sites
  • 0

@Armor Ну так ты тогда логи сервака и смотри. Что там у тебя происходит. Ну и выше написал, куда засунуть получение ЮИДа

Share this post


Link to post
Share on other sites
  • 0
---------------------------------------------
Log C:\Users\днс\AppData\Local\DayZ\script_2019-12-28_00-11-53.log started at 28.12. 00:11:55

SCRIPT       : Registered 220 temporary action enum(s), UAN==220
SCRIPT    (W): @"scripts/3_Game/systems\inventory\handfsm.c,100": Missing script declaration for method 'SgNetworkService.CreateLobby'
SCRIPT    (W): @"scripts/3_Game/systems\inventory\handfsm.c,100": Missing script declaration for method 'SgNetworkService.CancelFriend'
SCRIPT    (W): @"scripts/3_Game/systems\inventory\handfsm.c,100": Missing script declaration for method 'SgNetworkService.GameServerLoadMatchInfo'
SCRIPT    (W): @"scripts/3_Game/systems\inventory\handfsm.c,100": Missing script declaration for method 'SgNetworkService.CancelSearchForMatch'
SCRIPT    (W): @"scripts/3_Game/systems\inventory\handfsm.c,100": Missing script declaration for method 'SgNetworkService.SetLobbySlot'
SCRIPT    (W): @"scripts/3_Game/systems\inventory\handfsm.c,100": Missing script declaration for method 'SgNetworkService.LeaveLobby'
SCRIPT    (W): @"scripts/3_Game/systems\inventory\handfsm.c,100": Missing script declaration for method 'SgNetworkService.DeleteLobby'
SCRIPT    (W): @"scripts/3_Game/systems\inventory\handfsm.c,100": Missing script declaration for method 'SgNetworkService.JoinLobby'
SCRIPT    (W): @"scripts/3_Game/systems\inventory\handfsm.c,100": Missing script declaration for method 'SgNetworkService.StartLobbyGame'
SCRIPT    (W): @"scripts/3_Game/systems\inventory\handfsm.c,100": Missing script declaration for method 'SgNetworkService.GameServerReadyServer'
SCRIPT    (W): @"scripts/3_Game/systems\inventory\handfsm.c,100": Missing script declaration for method 'SgNetworkService.LeaveTeam'
SCRIPT    (W): @"scripts/3_Game/systems\inventory\handfsm.c,100": Missing script declaration for method 'SgNetworkService.LoadLobbyList'
SCRIPT    (W): @"scripts/3_Game/systems\inventory\handfsm.c,100": Missing script declaration for method 'SgNetworkService.JoinTeam'
SCRIPT    (W): @"scripts/3_Game/systems\inventory\handfsm.c,100": Missing script declaration for method 'SgNetworkService.GetUserUID'
SCRIPT    (W): @"scripts/3_Game/systems\inventory\handfsm.c,100": Missing script declaration for method 'SgNetworkService.ReadyLobbyPlayer'
SCRIPT    (W): @"scripts/3_Game/systems\inventory\handfsm.c,100": Missing script declaration for method 'SgNetworkService.GetService'
SCRIPT    (W): @"scripts/3_Game/systems\inventory\handfsm.c,100": Missing script declaration for method 'SgNetworkService.GameServerFinishGame'
SCRIPT    (W): @"scripts/3_Game/systems\inventory\handfsm.c,100": Missing script declaration for method 'SgNetworkService.InviteFriend'
SCRIPT    (W): @"scripts/3_Game/systems\inventory\handfsm.c,100": Missing script declaration for method 'SgNetworkService.StartSearchForMatch'
SCRIPT    (W): @"scripts/3_Game/human.c,1028": Missing script declaration for method 'HumanCommandScript.PostPhys_LockRotation'
SCRIPT    (W): @"scripts/3_Game/human.c,284": Method not linked 'HumanAnimInterface.SetInt'
SCRIPT    (W): @"scripts/3_Game/human.c,285": Method not linked 'HumanAnimInterface.SetBool'
SCRIPT    (W): @"scripts/3_Game/human.c,280": Method not linked 'HumanAnimInterface.CallCommand'
SCRIPT    (W): @"scripts/3_Game/human.c,283": Method not linked 'HumanAnimInterface.SetFloat'
SCRIPT    (W): @"scripts/3_Game/entities\inventoryitem.c,116": Unsafe down-casting, use 'Object.Cast' for safe down-casting
SCRIPT       : CreateGame()
SCRIPT       : ... Backlit Effects Enabled
SCRIPT    (W): @"scripts/4_World/entities\dayzplayerimplement.c,27": Unsafe down-casting, use 'PlayerBase.Cast' for safe down-casting
SCRIPT    (W): @"Radiation/scripts/4_World/entities\manbase\playerbase.c,156": Unsafe down-casting, use 'PlayerBase.Cast' for safe down-casting
SCRIPT    (W): @"Radiation/scripts/4_World/entities\manbase\playerbase.c,162": Unsafe down-casting, use 'PlayerBase.Cast' for safe down-casting
SCRIPT    (W): @"Radiation/scripts/4_World/entities\manbase\playerbase.c,167": Unsafe down-casting, use 'PlayerBase.Cast' for safe down-casting
SCRIPT       : [inv] I::ReplaceItemWithNew executing lambda=ReplaceWheelLambda<ebdaded0>on old_item=CivSedanWheel<fc206150>
SCRIPT       : [inv] ReplaceItemWithNewLambdaBase Step B) remove OK, loc={ type=ATTACHMENT item=CivSedanWheel:04111 parent=CivilianSedan_Black:04110 slot=-1656614418 }
SCRIPT       : Chernarus::Weather::Rain::ForceEnd:: ( 10.5045 ) 0 -> 0
SCRIPT       : Chernarus::Weather::Rain::ForceEnd:: ( 10.5545 ) 0 -> 0
SCRIPT       : childCount:33
SCRIPT       : AnimSoundObjectBuilderBank: Invalid sound set "generalgrunt_SoundVoice_Char_SoundSet".
SCRIPT       : AnimSoundObjectBuilderBank: Invalid sound set "greathelmet_generalgrunt_SoundVoice_Char_SoundSet".
SCRIPT       : AnimSoundObjectBuilderBank: Invalid sound set "Gasmask_generalgrunt_SoundVoice_Char_SoundSet".
SCRIPT       : AnimSoundObjectBuilderBank: Invalid sound set "Motohelmet_generalgrunt_SoundVoice_Char_SoundSet".
SCRIPT       : AnimSoundObjectBuilderBank: Invalid sound set "Gag_generalgrunt_SoundVoice_Char_SoundSet".
SCRIPT    (E): NULL pointer to instance
Class:      'SurvivorBase'
Entity id:0

Function: 'PlayerBase'
Stack trace:
Radiation/scripts/4_World/entities\manbase\playerbase.c:1
SCRIPT       : ---- PlayerBase OnStoreLoad START ----, version: 107
SCRIPT       : ********* LoadStats loading version: 106
SCRIPT       : LOAD checksum:2065646061
SCRIPT       : ---- PlayerBase OnStoreLoad SUCCESS ----
SCRIPT       : [PBase] Player SurvivorBase<18606ac0> Connected load rad 863
SCRIPT       : [PBase] Player SurvivorBase<18606ac0> set rad 863
SCRIPT       : [PBase] Player SurvivorBase<18606ac0> after set rad 863
SCRIPT       : ------------ vomit start -------------
SCRIPT       : ------------ vomit start -------------
SCRIPT       : Saving stats in version: 106
SCRIPT       : SAVE CHECKSUM:2065646061
SCRIPT       : ------------ vomit start -------------
SCRIPT       : ------------ vomit start -------------
SCRIPT       : [Logout]: New player t6goVGbhstnvoqE9d_apyTpfMglcUNy099wKuvhVnmo= with logout time 15
SCRIPT       : [emote] SurvivorF_Naomi:01 play emote id=14 IH=null
SCRIPT       : ------------ vomit start -------------
SCRIPT       : [PBase] Player SurvivorBase<18606ac0> Disconnected save rad 863
SCRIPT       : [Logout]: Player t6goVGbhstnvoqE9d_apyTpfMglcUNy099wKuvhVnmo= finished
SCRIPT       : Saving stats in version: 106
SCRIPT       : SAVE CHECKSUM:2065646061
SCRIPT       : Chernarus::Weather::Rain::ForceEnd:: ( 10.6044 ) 0 -> 0
SCRIPT       : ~DayZGame()

Судя по логам скрипт работает, но краши меня напрягают

Edited by Armor (see edit history)

Share this post


Link to post
Share on other sites
  • 0

@Armor Ну так ты сам ответил на свой вопрос.

 

Entity id:0 Function: 'PlayerBase' Stack trace: Radiation/scripts/4_World/entities\manbase\playerbase.c:1

 

 

Share this post


Link to post
Share on other sites
  • 0

Давай лпределимся

Модим сервер?

Запускаем сервер там же где и клиент ?
Хорошо

 

смотрим крашлог

Radiation/scripts/4_World/entities\manbase\playerbase.c:1 - видим где ошибка

почему? а х ее знает почему

ошибка не в твоем коде - я в твоем коде ваще ошибки кроме того на что выше указал не заметил

Share this post


Link to post
Share on other sites
  • 0

@BorizzK При создании класса PlayerBase еще нет никакого Identity, а у него она в переменной класса указана, да еще и с нее же попытка ЮИД получить идет. Вот и ошибка.

Нет там идентити еще. После онКоннект будет.

Share this post


Link to post
Share on other sites
  • 0

К тому же, если ты будешь НПЦ создавать - торгашей каких нить, это тебе 100% ошибку выдаст, - у них то уж точно нет ни идентити, ни юида)

Share this post


Link to post
Share on other sites
  • 0
1 минуту назад, NoNameUltima сказал:

@BorizzK При создании класса PlayerBase еще нет никакого Identity, а у него она в переменной класса указана, да еще и с нее же попытка ЮИД получить идет. Вот и ошибка.

Нет там идентити еще. После онКоннект будет.

Спасибо за разъяснение, исправлюсь.

Share this post


Link to post
Share on other sites
  • 0

@Armor И не засирай профиль. Сделай папку под свои нужды и под свою БД, и там что угодно и храни.

Зашел на серв чел, - обратился к его файлу(имя файла - UID игрока), считал все значения, передал по RPC, и готово. И все это в ОнКоннект элементарно.

Ну а в плеерБаз при необходимости добавил процедуры - обработчики, которые будут синхронизацию делать с БД и данными значениями, - т.е. изменять их там как тебе угодно и когда угодно, и на твоих условиях.

Share this post


Link to post
Share on other sites
  • 0
9 минут назад, NoNameUltima сказал:

@BorizzK При создании класса PlayerBase еще нет никакого Identity, а у него она в переменной класса указана, да еще и с нее же попытка ЮИД получить идет. Вот и ошибка.

Нет там идентити еще. После онКоннект будет.

Не увидел

Справедливое замечание

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

×
×
  • 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.