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

Продаёте или покупаете?

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

Вопрос

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

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

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


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

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

  • 0

открываешь 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]);
};

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

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


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


  • 0

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

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

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


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

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

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

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


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

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



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

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

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

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

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


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

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

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

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


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

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



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

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

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


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

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

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

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

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

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

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

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

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

Загрузка...

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

    • Автор: fedotovyasha
      в messages есть такая возможность
      <messages> <!-- This is example message for automatic server termination --> <message> <!-- no delay --> <delay>0</delay> <!-- if the value is larger than 0, then flag Repeat is enabled --> <repeat>0</repeat> <!-- if the value is larger than 0, then flag Countdown is enabled, countdown reaches zero in 10 hours --> <deadline>600</deadline> <!-- disable On connect flag --> <onConnect>0</onConnect> <!-- enable Shutdown flag --> <shutdown>1</shutdown> <!-- message itself with placeholders --> <text>Hello, #name will shutdown in #tmin minutes.</text> </message> </messages> Что лучше и эффективнее будет. Писать свой рестартер с помощью Rcon или будет достаточно messages.xml?
    • Автор: 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;
       }
       
      Все верно?
       
×
×
  • Создать...