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
SlavaGl

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

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

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

Share this post


Link to post
Share on other sites

10 answers to this question

Recommended Posts

  • 0

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

Share this post


Link to post
Share on other sites





  • 0

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

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

Share this post


Link to post
Share on other sites
  • 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'
;
 
Edited by RedLink (see edit history)

Share this post


Link to post
Share on other sites
  • 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'
;
 

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

Share this post


Link to post
Share on other sites
  • 0

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

Share this post


Link to post
Share on other sites
  • 0

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

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

Share this post


Link to post
Share on other sites
  • 0

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

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

 

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

Share this post


Link to post
Share on other sites
  • 0

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

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

 

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

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

Share this post


Link to post
Share on other sites
  • 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= - имя процедуры

Share this post


Link to post
Share on other sites
  • 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= - имя процедуры

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

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

  • Similar Content

    • By 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 утра идет.
       
      Тупо, банально, дешево, но работает.
    • By 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 утра идет.
       
      Тупо, банально, дешево, но работает.
    • By Golf777
      Доброго времени суток, мне бы хотелось узнать,как сделать так,что бы день шел 3 часа,а ночь 1 час, но не устанавливая никаких скриптов дополнительно.
      Заранее спасибо!
    • By Vesey
      Предисловие:
      Сейчас мелькает то ночь, то день на клиенте, а скрипт просто прокручивает время на сервере. Ночь в 4 раза быстрее,
      а когда день то прокручивает медленнее.
       
      Догадки:
      Что то переделали в этой версии эпоха, раньше скрипт работал на старой версии, а тут ему мешает синхронизация новая, возможно еще и инфистар это делает...
      Нужно оставить только чтобы он работал, а в инфистаре и родной эпоха выпилить. В инит файле миссии надо впихнуть эту папку и вставить строки как в init в этом архиве
       
       
      вот механизм погоды снега и сокращенной ночи + раскраска алого заката.
       
      Буду очень признателен тому, кто поможет или хотя бы намекнёт

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

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