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

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

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

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

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

Автоудаление технкики по времени бездействия.

Доброго всем дня. У меня такой вопрос: как сделать на сервере автоудаление транспорта?

Например, чтоб волга и т.п. удалялись после 5 дней бездействия, джипы через 14 дней, бронетехника через 21 день и т.д. 

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


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

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

  • 0

sql запрос тебе в руки

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


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





  • 0

sql запрос тебе в руки

Я новичок в серверосторении. Что такое запрос sql?

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


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

пример автоудаления транспорта в запросе sql в БД при бездействии >= 5 дней (вся категория техники)

 

 

 

DELETE FROM `object_data`
WHERE `LastUpdated` < DATE_SUB(CURRENT_TIMESTAMP, INTERVAL 5 DAY)
AND `Classname`
NOT REGEXP 'land|storage|shed|bench|wall|floor|fence|pump|wood|hrescue|stick|pole|generator|panel|house|rack|bag|stand|barrel|canvas|wire|hedgehog|net|trap|ramp|fort|sand|scaffold'
;
 

 

для примера чтобы удалялись только волги

 

 

DELETE FROM `object_data`
WHERE `LastUpdated` < DATE_SUB(CURRENT_TIMESTAMP, INTERVAL 5 DAY) AND `Classname` 'Volha_2_TK_CIV_EP1'
;
 
Изменено пользователем RedLink (история изменений)

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


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

 

пример автоудаления транспорта в запросе sql в БД при бездействии >= 5 дней (вся категория техники)

 

 

 

DELETE FROM `object_data`
WHERE `LastUpdated` < DATE_SUB(CURRENT_TIMESTAMP, INTERVAL 5 DAY)
AND `Classname`
NOT REGEXP 'land|storage|shed|bench|wall|floor|fence|pump|wood|hrescue|stick|pole|generator|panel|house|rack|bag|stand|barrel|canvas|wire|hedgehog|net|trap|ramp|fort|sand|scaffold'
;
 

 

для примера чтобы удалялись только волги

 

 

DELETE FROM `object_data`
WHERE `LastUpdated` < DATE_SUB(CURRENT_TIMESTAMP, INTERVAL 5 DAY) AND `Classname` 'Volha_2_TK_CIV_EP1'
;
 

Спасибо. Но куда это прописывать?

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


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

если пользуешься Xampp , то в БД от игры, во вкладке Functions созда процедуру 123 (имя любое) и туда впиши.

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


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

если пользуешься Xampp , то в БД от игры, во вкладке Functions созда процедуру 123 (имя любое) и туда впиши.

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

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


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

очень просто. не трогал технику 5 дней - твои проблемы. чем больше записей в бд - тем больше нагрузка. я думаю труда не составит раз в 5 дней открыть тачку, положить и забрать с нее банку тушняка - проблема исчезла.

а так, тебе придется постоянно в бд ковыряться и писать исключения например по ключу или ID.

 

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

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


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

очень просто. не трогал технику 5 дней - твои проблемы. чем больше записей в бд - тем больше нагрузка. я думаю труда не составит раз в 5 дней открыть тачку, положить и забрать с нее банку тушняка - проблема исчезла.

а так, тебе придется постоянно в бд ковыряться и писать исключения например по ключу или ID.

 

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

Надо же в батнике да прописывать чтоб эта процедура выполнялась постоянно и делались запросы автоматический?

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


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

достаточно сделать в батнике запуск при каждом рестарте. пример

 

 

 

 

echo Cleanup and respawn destroyed vehicles in the DayZ Epoch DataBase
C:\xampp\mysql\bin\mysql.exe --user=dayz --password=dayz --execute="call Delete_crash_vehicles()" dayz_epoch1
echo Cleanup dead players more 5 days
C:\xampp\mysql\bin\mysql.exe --user=dayz --password=dayz --execute="call Delete_dead_players_5Dayz()" dayz_epoch1
echo Update Traders
C:\xampp\mysql\bin\mysql.exe --user=dayz --password=dayz --execute="call update_traders()" dayz_epoch1
echo start launcher server
 

где

C:\xampp\mysql\bin\mysql.exe - путь к мускулу

-user и -password - логин пароль от БД

dayz_epoch1 - имя базы данных

-execute= - имя процедуры

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


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

достаточно сделать в батнике запуск при каждом рестарте. пример

 

 

 

 

echo Cleanup and respawn destroyed vehicles in the DayZ Epoch DataBase
C:\xampp\mysql\bin\mysql.exe --user=dayz --password=dayz --execute="call Delete_crash_vehicles()" dayz_epoch1
echo Cleanup dead players more 5 days
C:\xampp\mysql\bin\mysql.exe --user=dayz --password=dayz --execute="call Delete_dead_players_5Dayz()" dayz_epoch1
echo Update Traders
C:\xampp\mysql\bin\mysql.exe --user=dayz --password=dayz --execute="call update_traders()" dayz_epoch1
echo start launcher server
 

где

C:\xampp\mysql\bin\mysql.exe - путь к мускулу

-user и -password - логин пароль от БД

dayz_epoch1 - имя базы данных

-execute= - имя процедуры

Больщое спасибо

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


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

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

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

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

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

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

Войти

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

Войти сейчас

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

    • Автор: 123new
      В данной теме опубликую скриптик, который уже давно лежит на форуме в разделе помощи. Информация обновления для версии 1.0
       
      Установка:
      1. Открываем Mpmissions - dayzOffline.chernarusplus - init.c
      2. В самом начале файла добавляем:
      #include "$CurrentDir:\\mpmissions\\dayzOffline.chernarusplus\\Correct_InGame_time.c" Находим блок функции
      void main() и перед закрывающей скобкой в конце этого блока '}' добавляем:
      GetGame().GetCallQueue(CALL_CATEGORY_GAMEPLAY).CallLater(Correct_InGame_time, 1000, true); где 1000 - 1 секунда
      3. Создаем вручную файл с именем "Correct_InGame_time.c" и заполняем его следующим текстом:
      static void Correct_InGame_time() { private int year, month, day, hour, minute; GetGame().GetWorld().GetDate( year, month, day, hour, minute ); if (hour < 7) { GetGame().GetWorld().SetDate(year, month, day, 7, 3); } if (hour >= 20) { GetGame().GetWorld().SetDate(year, month, (day + 1), 7, 3); } } 4. Настраиваем файл как нам нужно. Т.е. как видим, с 7 утра и до 8 вечера время на сервере внутриигровое не трогается, при наступлении от 20:00 и до 7 утра у нес автопромотка на 7:03 утра идет.
       
      Тупо, банально, дешево, но работает.
    • Автор: 123new
      В данной теме опубликую скриптик, который уже давно лежит на форуме в разделе помощи.
       
      Установка:
      1. Открываем Mpmissions - dayzOffline.chernarusplus - init.c
      2. В самом начале файла добавляем:
      #include "$CurrentDir:\\mpmissions\\dayzOffline.chernarusplus\\Correct_InGame_time.c" И после строки
      weather.SetWindFunctionParams(0, 0, 0); добавляем:
      GetGame().GetCallQueue(CALL_CATEGORY_GAMEPLAY).CallLater(Correct_InGame_time, 1000, true); где 1000 - 1 секунда
      3. Создаем вручную файл с именем "Correct_InGame_time.c" и заполняем его следующим текстом:
      static void Correct_InGame_time() { private int year, month, day, hour, minute; GetGame().GetWorld().GetDate( year, month, day, hour, minute ); if (hour < 7) { GetGame().GetWorld().SetDate(year, month, day, 7, 3); } if (hour >= 20) { GetGame().GetWorld().SetDate(year, month, (day + 1), 7, 3); } } 4. Настраиваем файл как нам нужно. Т.е. как видим, с 7 утра и до 8 вечера время на сервере внутриигровое не трогается, при наступлении от 20:00 и до 7 утра у нес автопромотка на 7:03 утра идет.
       
      Тупо, банально, дешево, но работает.
    • Автор: Golf777
      Доброго времени суток, мне бы хотелось узнать,как сделать так,что бы день шел 3 часа,а ночь 1 час, но не устанавливая никаких скриптов дополнительно.
      Заранее спасибо!
    • Автор: Vesey
      Предисловие:
      Сейчас мелькает то ночь, то день на клиенте, а скрипт просто прокручивает время на сервере. Ночь в 4 раза быстрее,
      а когда день то прокручивает медленнее.
       
      Догадки:
      Что то переделали в этой версии эпоха, раньше скрипт работал на старой версии, а тут ему мешает синхронизация новая, возможно еще и инфистар это делает...
      Нужно оставить только чтобы он работал, а в инфистаре и родной эпоха выпилить. В инит файле миссии надо впихнуть эту папку и вставить строки как в init в этом архиве
       
       
      вот механизм погоды снега и сокращенной ночи + раскраска алого заката.
       
      Буду очень признателен тому, кто поможет или хотя бы намекнёт

      Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.
    • Автор: Miduznya
      Всем доброго fps
       
      причина:
      приобрел у криса ака антихак infiSTAR
      по факту: (стандартный античит epoch отключен полностью)
      1) - Когда на сервере стоит ночь, зайдя на сервер сперва показывается день, и через секунд 10-15 становится ночь.
      2) - без античита, не какого ожидания смены время нет.
      3) - В админке смена времени суток, так же происходит с задержкой 10-15 секунд.
      4) - Смена погоды вообще не работает.
       
      Примечание:
      а) Server arma2oa (лицензия)
      б) infiSTAR (релиз на дату обращения-лицензия)
      в) фильтры от infiSTAR не использую
      г) epoch mod 1.0.6.1
       
      Помогите пожалуйста, может кто уже разобрался с такой проблемой, если кто-то считает, что по данной теме решение вопроса сложное, и считает что любой труд должен оплачиваться, добро пожаловать в скайп или пишите в ЛС рассмотрю любые предложения!!!!
      Заранее спасибо.
  • Наш выбор

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

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

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