motocat

Строка в RPT нужна помощь

Вопрос

как отключить эту функцию ? 11:54:26 "Deleting object Offroad_DSHKM_Gue with invalid ID at pos [5000.51,2342.67,0]"

И что вообще её блочит? Подскажите пожалуйста.

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


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

6 ответов на этот вопрос

открываешь server_updateObject.sqf в dayz_server.pbo, находишь эту часть кода:

// delete if still not ok
if (_isNotOk) exitWith {
    deleteVehicle _object;
    diag_log(format["Deleting object %1 with invalid ID at pos [%2,%3,%4]",typeOf _object,_object_position select 0,_object_position select 1, _object_position select 2]);
};

далее комментируешь как в примере и сохраняешь:

// delete if still not ok
if (_isNotOk) exitWith {
    // deleteVehicle _object;
    // diag_log(format["Deleting object %1 with invalid ID at pos [%2,%3,%4]",typeOf _object,_object_position select 0,_object_position select 1, _object_position select 2]);
};

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

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


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


Зачем отключать вывод в лог подобных сообщений? Очевидно же, что проблема в нерабочем (инвалидном) айди оффроада. Либо поправь ручками в БД этот айди, или полностью удали. Похоже какой-то скрипт криво написан - который их спавнит

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

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


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

Зачем отключать вывод в лог подобных сообщений? Очевидно же, что проблема в нерабочем (инвалидном) айди оффроада. Либо поправь ручками в БД этот айди, или полностью удали. Похоже какой-то скрипт криво написан - который их спавнит

мне удаляет машину, которую я не хочу чтобы её удаляло(с миссии до рестарта).

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


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

И? И что ты сделал для того, чтобы её не удалило? Я же тебе пишу: исправь айди этого внедорожника - если он тебе важен и исправь процесс выдачи этого айди в самом скрипте миссии. Иначе проблема так и останется нерешённой..



У тебя там так он выдаётся? У меня, например, в ВАИ так в \dayz_server\WAI\compile\custom_publish_vehicle.sqf

	_vehicle setVariable ["ObjectID","1",true];

Если да, то проблема где-то в другом месте. Ибо айди = 1, это объекты, принадлежащие серверу и имеющиеся до рестарта как раз..

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

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


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

И? И что ты сделал для того, чтобы её не удалило? Я же тебе пишу: исправь айди этого внедорожника - если он тебе важен и исправь процесс выдачи этого айди в самом скрипте миссии. Иначе проблема так и останется нерешённой..

Когда миссию проходишь машина(вся техника) сразу пропадает и выдает в RPT эту строку и я не понял как исправить.. Если оставляю технику в БД то все норм. А мне нужно именно до рестарта. Создатель редактора миссий сказал что это серверная проблема.

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


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

Айди должно быть присваиваться именно 1



Если сервер УДАЛЯЕТ технику с айди = 1, то это поломанный серверный скрипт какой-то - надо будет server_monitor.sqf проверять, server_cleanup.fsm и Бог знает где ещё копать - где поломано (изменённые серверные скрипты)

Но я полагаю - всё же сам скрипт криво выдаёт айди, либо вообще его НЕ выдаёт - поэтому и удаляется техника.

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


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

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

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

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

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


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

Войти

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


Войти сейчас

  • Похожие публикации

    • Автор: BorizzK
      Есть класс
       
      class LogClass { private FileHandle File; void LogClass() { Print("::: [LogClass] ::: Init :::"); } void ~LogClass() { Print("::: [LogClass] ::: UnInit :::"); } void Save(string FileName, string String) { private int year, month, day, hour, minute, second; Print("::: [LogClass]: Save: " + FileName); if (!FileExist(FileName)) { File = OpenFile(FileName,FileMode.WRITE); } else { File = OpenFile(FileName, FileMode.APPEND); } if ( File == 0 ) { Print("::: [LogClass]: Can not write FileName: " + FileName); Print("::: [LogClass]: May be disk error, file write protected, file busy or FileMode.WRITE disabled (need to specify option -scrAllowFileWrite in server run parameters for enable FileMode.WRITE."); return; } FPrintln(File, DataBase_GetDate() + "," + DataBase_GetTime() + " : " + String); CloseFile(File); } void Rotate(string FileName, int FileNum) { Print("::: [LogClass]: Rotate: " + FileName); if (!FileExist(FileName)) { Print("::: [LogClass]: Rotate: FileName not exists: " + FileName); return; } else { for ( int i = FileNum; i > 0; i-- ) { Print("::: [LogClass]: Rotate: FileName: " + FileName + "." + i); if (FileExist(FileName + "." + i)) { Print("::: [LogClass]: Rotate: DeleteFile: " + FileName + "." + i); DeleteFile(FileName + "." + i); } if (FileExist(FileName + "." + (i - 1))) { Print("::: [LogClass]: Rotate: CopyFile: " + FileName + "." + (i - 1) + " => " + FileName + "." + i); CopyFile(FileName + "." + (i - 1), FileName + "." + i); } } CopyFile(FileName, FileName + ".0"); DeleteFile(FileName); } } static string DataBase_GetDate() { int year, month, day; GetYearMonthDay(year, month, day); string date = day.ToStringLen(2) + "." + month.ToStringLen(2) + "." + year.ToStringLen(2); return date; } static string DataBase_GetTime() { int hour, minute, second; GetHourMinuteSecond(hour, minute, second); string time = hour.ToStringLen(2) + ":" + minute.ToStringLen(2) + ":" + second.ToStringLen(2); return time; } } Мне нужно им пользоваться функциями из него в нескольких местах
      в PlayerBase.c в функциях в классе PlayerBase
      в init.c в функция в классе миссии
      Вопрос как?
       
      В PlayerBase.c
      #include "$CurrentDir:\\mpmissions\\dayzOffline.chernarusplus\\_MOD\\LogClass\\LogClass.c"
      Далее в классе
      ref LogClass Log = new LogClass();
      ну и в функциях
      Log.Save{"путь-имя", данные);
       
      Но после последнего обновления 0.63.149.525
      В init.c
      #include "$CurrentDir:\\mpmissions\\dayzOffline.chernarusplus\\_MOD\\LogClass\\LogClass.c"
      приводит к ошибке - Multiple declaration of class "LogClass"
       
      Can't compile mission init script'!
      $CurrentDir://mpmissions//dayzOffline.chernarusplus//_MOD//LogClass//LogClass.c(1): Multiple declaration of class 'LogClass'
       
      До этого обновления все было норм
      Как быть?
       
       
    • Автор: BorizzK
      Что такое массивы и тп я в целом знаю, но поскольку на c++ и подобном никогда не писал (только в Дейзе столкнулся), то есть некоторое непонимание некоторых принципов работы с массивами в данном случае
       
      Продположим
       
      обявили массив внутри функции
       
      array<string> stringParam;
      // определяем массив текстового типа который живет до завершения работы функции
       
      или
       
      static array<string> stringParam;
      // определяем массив текстового типа который сохраняет в себе данные и после завершения работы функции и при следующем
      вызове функции содержимое массива останется и может быть использовано внутри функции (повторного обьявления массива не произойдет)
       
      string text = "text";
       
      //записываем содержимое переменной text в элемент массива 0
      stringParam.Insert(text);
      //записываем содержимое переменной text  в элемент массива 1, если переменная text пуста в элемент запишется текст NULL
      stringParam.Insert(text, "NULL");
       
      читаем в переменную text элемент массива 1
      string text = stringParam.Get(1);
       
      А вот теперь вопрос
      Как мне изменить эелемент 1 массива?
      stringParam[1] = "блаблабла";
       
      так?
      в теории должно быть так
       
      Это вообще возможно?
       
      И еще про функцию возвращающую результат в качестве массива
       
       array<string> FileRead(string FileName)
       {
        array<string> stringParam;
        string line_content;
         
      .....

        CloseFile(File);
        return stringParam;
       }
       
      Все верно?
       
    • Автор: Jdinovich
      есть готовые скрипты,незнаю как установить или куда прописать путь
      ВК: https://vk.com/id84996819