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

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

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

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

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

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

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

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


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

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

  • 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)

 

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

 

Дальше сами

 

 

 

 

 

 

 

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


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





  • 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/ такой файл есть.

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

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


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

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

Началось
 

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

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

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

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

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

 

Дальше САМ

 

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


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

Началось
 

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

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

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

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

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

 

Дальше САМ

 

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

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


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

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

Покажи код

Покажи логи

 

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

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


Ссылка на сообщение
Поделиться на других сайтах
  • 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());
    
    }

 

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


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

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

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

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


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

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

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

 

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

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


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

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

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

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

 

 

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

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


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

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

 

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

 

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

 

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

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

 

 

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


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

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

 

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

 

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

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

 

 

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

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

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


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

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

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

 

Эта

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

 

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


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

@Armor

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

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

if ( !GetIdentity() )

{

return;

}

....

 

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

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


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

@Armor

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

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

if ( !GetIdentity() )

{

return;

}

....

 

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

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

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

 

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

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

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


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

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

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

 

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

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

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


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

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

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


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

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

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


Ссылка на сообщение
Поделиться на других сайтах
  • 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()

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

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

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


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

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

 

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

 

 

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


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

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

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

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

 

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

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

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

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

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


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

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

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

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


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

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

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


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

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

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

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

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


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

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

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

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

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


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

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

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

Не увидел

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

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


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

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

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

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

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

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

Войти

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

Войти сейчас

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

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

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