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

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

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

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

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

Есть ли скрипт с функцией удаления брошенной техники через N времени?

Если да, то поделитесь пожалуйста.

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


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

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

  • 0

Дело каждого. У меня каждый час бэкап делается. И не проблема дописать строку дальше с условием.

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


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



  • 0

 



# Открываем закрытые машины, неактивные более 14 дней
            UPDATE Object_DATA
           SET Object_DATA.CharacterID = 0
           WHERE Object_DATA.CharacterID <> 0
            AND Object_DATA.CharacterID <= 12500
            AND Object_DATA.Classname NOT LIKE 'Tent%'
            AND Object_DATA.Classname NOT LIKE '%Locked'
            AND Object_DATA.Classname NOT LIKE 'Land%'
            AND Object_DATA.Classname NOT LIKE 'Cinder%'
            AND Object_DATA.Classname NOT LIKE 'Wood%'
            AND Object_DATA.Classname NOT LIKE 'Metal%'
            AND Object_DATA.Classname NOT LIKE '%Storage%'
            AND Object_DATA.Classname NOT IN ('OutHouse_DZ', 'GunRack_DZ', 'WorkBench_DZ', 'Sandbag1_DZ', 'FireBarrel_DZ', 'DesertCamoNet_DZ', 'StickFence_DZ', 'LightPole_DZ', 'DeerStand_DZ', 'ForestLargeCamoNet_DZ', 'Plastic_Pole_EP1_DZ', 'Hedgehog_DZ', 'FuelPump_DZ', 'Fort_RazorWire', 'SandNest_DZ', 'ForestCamoNet_DZ', 'Fence_corrugated_DZ', 'CanvasHut_DZ', 'Generator_DZ','BagFenceRound_DZ')
and  `LastUpdated` < DATE_SUB(NOW() , INTERVAL 14 DAY);
#==================================================================================================================
# Наносим урон в 50% технике, неиспользуемой более 14 дней
            UPDATE Object_DATA  SET `Damage`=`Damage`+ 0.5
            WHERE Object_DATA.CharacterID <> 0
            AND Object_DATA.CharacterID <= 12500
            AND Object_DATA.Classname NOT LIKE 'Tent%'
            AND Object_DATA.Classname NOT LIKE '%Locked'
            AND Object_DATA.Classname NOT LIKE 'Land%'
            AND Object_DATA.Classname NOT LIKE 'Cinder%'
            AND Object_DATA.Classname NOT LIKE 'Wood%'
            AND Object_DATA.Classname NOT LIKE 'Metal%'
            AND Object_DATA.Classname NOT LIKE '%Storage%'
            AND Object_DATA.Classname NOT IN ('OutHouse_DZ', 'GunRack_DZ', 'WorkBench_DZ', 'Sandbag1_DZ', 'FireBarrel_DZ', 'DesertCamoNet_DZ', 'StickFence_DZ', 'LightPole_DZ', 'DeerStand_DZ', 'ForestLargeCamoNet_DZ', 'Plastic_Pole_EP1_DZ', 'Hedgehog_DZ', 'FuelPump_DZ', 'Fort_RazorWire', 'SandNest_DZ', 'ForestCamoNet_DZ', 'Fence_corrugated_DZ', 'CanvasHut_DZ', 'Generator_DZ','BagFenceRound_DZ')
and  `LastUpdated` < DATE_SUB(NOW() , INTERVAL 14 DAY);

#==================================================================================================================

# Обновление предметов у торговцев до 100
UPDATE `Traders_DATA` SET qty=100 WHERE qty<50;

#  Удаляем персонажей, незаходивших на сервер более 30 дней
DELETE FROM `character_data` WHERE `LastLogin` < DATE_SUB(NOW() , INTERVAL 30 DAY);  

#  Удаляем мёртвых персонажей из базы
DELETE FROM `character_data` WHERE Alive = 0;  

#  Удаляем взорванную или разбитую технику
DELETE FROM `object_data` WHERE `Damage` > 0.8;  

# Удаляем технику без ключей и с пустым инвентарем стоящую более 7 дней
DELETE FROM `object_data` WHERE `CharacterID` = 0 AND ( (`Inventory` IS NULL) OR (`Inventory` = '[]') OR (`Inventory` = '[[[],[]],[[],[]],[[],[]]]') ) and  `LastUpdated` < DATE_SUB(NOW() , INTERVAL 7 DAY);  

# Удаляем велосипеды, нетронутые более 3 дней
DELETE FROM `object_data` WHERE (Classname = "MMT_Civ" or Classname = "Old_bike_TK_INS_EP1") AND DATE(LastUpdated) < CURDATE() - INTERVAL 3 DAY;

# Очищаем историю заходов на сервер 
DELETE FROM `player_login` WHERE DATE(Datestamp) < CURDATE() - INTERVAL 10 DAY;

 

Создайте функцию Cleanup. Вставьте туда этот код (если нужно-отредактировать под себя).

Добавить в батник запуска параметр

 

echo Очистка базы данных

"i:\xampp\mysql\bin\mysql.exe" -u %dbuser% -p%dbpass% %dbname% --execute="call cleanup()" 

Естественно, исправив пути и имена\пароли на свои. При каждом рестарте будет выполняться данная очистка.

 

Не вижу смысла городить огород с открыванием машин с потерянными ключами каждый рестарт и прочего. Всё необходимое тут есть.

я, видимо, совсем дурак, но не как не могу добавить процедуру, можно описать, как и через что вы добавляете, я пробовал через Navicat и phpMyAdmin, но не в какую не получается((((

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


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

Навикат-База эпоча - Функции - новая функция - ничего не мення жмем финиш. 

Между BEGIN и END все стираем и вставляем то, что я написал.

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


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

Навикат-База эпоча - Функции - новая функция - ничего не мення жмем финиш. 

Между BEGIN и END все стираем и вставляем то, что я написал.

подскажи ещё, после рестарта батник очистки не закрывается, но открывается следующий, как исправить?

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


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

Дело каждого. У меня каждый час бэкап делается. И не проблема дописать строку дальше с условием.

Т.е. ситуация:

Бекап только что сделан.

Проходит 40 минут, -> игрок налутался, -> баг, -> умер, -> рестарт сервера....

И вот он бедный пишет - мол так то и так то, сфортило, нашел я 2 рубина(на моем серваке, это просто эпичное бабло). А тут вот так и так - баг...

Ты смотришь бек, а там ниче нет)) Бек то часовой. А после рестарта дохляки удалены.

 

Ну да, дело каждого конечно) можно и не восстанавливать.

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


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

подскажи ещё, после рестарта батник очистки не закрывается, но открывается следующий, как исправить?

Так а зачем новый баник делать? вставь в текущий до старта сервера.

BEGIN
# Открываем закрытые машины, неактивные более 14 дней
            UPDATE Object_DATA
           SET Object_DATA.CharacterID = 0
           WHERE Object_DATA.CharacterID <> 0
            AND Object_DATA.CharacterID <= 12500
            AND Object_DATA.Classname NOT LIKE 'Tent%'
            AND Object_DATA.Classname NOT LIKE '%Locked'
            AND Object_DATA.Classname NOT LIKE 'Land%'
            AND Object_DATA.Classname NOT LIKE 'Cinder%'
            AND Object_DATA.Classname NOT LIKE 'Wood%'
            AND Object_DATA.Classname NOT LIKE 'Metal%'
            AND Object_DATA.Classname NOT LIKE '%Fuel%'
            AND Object_DATA.Classname NOT LIKE '%Tank%'
            AND Object_DATA.Classname NOT LIKE '%Storage%'
            AND Object_DATA.Classname NOT IN ('OutHouse_DZ', 'GunRack_DZ', 'WorkBench_DZ', 'Sandbag1_DZ', 'FireBarrel_DZ', 'DesertCamoNet_DZ', 'StickFence_DZ', 'LightPole_DZ', 'DeerStand_DZ', 'ForestLargeCamoNet_DZ', 'Plastic_Pole_EP1_DZ', 'Hedgehog_DZ', 'FuelPump_DZ', 'Fort_RazorWire', 'SandNest_DZ', 'ForestCamoNet_DZ', 'Fence_corrugated_DZ', 'CanvasHut_DZ', 'Generator_DZ','BagFenceRound_DZ')
and  `LastUpdated` < DATE_SUB(NOW() , INTERVAL 14 DAY);
#==================================================================================================================
# Наносим урон в 50% технике, неиспользуемой более 14 дней
            UPDATE Object_DATA  SET `Damage`=`Damage`+ 0.5
            WHERE Object_DATA.CharacterID <> 0
            AND Object_DATA.CharacterID <= 12500
            AND Object_DATA.Classname NOT LIKE 'Tent%'
            AND Object_DATA.Classname NOT LIKE '%Locked'
            AND Object_DATA.Classname NOT LIKE 'Land%'
            AND Object_DATA.Classname NOT LIKE 'Cinder%'
            AND Object_DATA.Classname NOT LIKE 'Wood%'
            AND Object_DATA.Classname NOT LIKE 'Metal%'
            AND Object_DATA.Classname NOT LIKE '%Fuel%'
            AND Object_DATA.Classname NOT LIKE '%Tank%'
            AND Object_DATA.Classname NOT LIKE '%Storage%'
            AND Object_DATA.Classname NOT IN ('OutHouse_DZ', 'GunRack_DZ', 'WorkBench_DZ', 'Sandbag1_DZ', 'FireBarrel_DZ', 'DesertCamoNet_DZ', 'StickFence_DZ', 'LightPole_DZ', 'DeerStand_DZ', 'ForestLargeCamoNet_DZ', 'Plastic_Pole_EP1_DZ', 'Hedgehog_DZ', 'FuelPump_DZ', 'Fort_RazorWire', 'SandNest_DZ', 'ForestCamoNet_DZ', 'Fence_corrugated_DZ', 'CanvasHut_DZ', 'Generator_DZ','BagFenceRound_DZ')
and  `LastUpdated` < DATE_SUB(NOW() , INTERVAL 14 DAY);

#==================================================================================================================

# Обновление предметов у торговцев до 100
UPDATE `Traders_DATA` SET qty=100 WHERE qty<50;

#  Удаляем персонажей, незаходивших на сервер более 30 дней
DELETE FROM `character_data` WHERE `LastLogin` < DATE_SUB(NOW() , INTERVAL 30 DAY);  

#  Удаляем мёртвых персонажей из базы
DELETE FROM `character_data` WHERE Alive = 0;  

#  Удаляем взорванную или разбитую технику
DELETE FROM `object_data` WHERE `Damage` > 0.8;  

# Удаляем технику без ключей и с пустым инвентарем стоящую более 7 дней
DELETE FROM `object_data` WHERE `CharacterID` = 0 AND ( (`Inventory` IS NULL) OR (`Inventory` = '[]') OR (`Inventory` = '[[[],[]],[[],[]],[[],[]]]') ) AND Object_DATA.Classname NOT LIKE '%Fuel%' AND Object_DATA.Classname NOT LIKE '%Tank%' and  `LastUpdated` < DATE_SUB(NOW() , INTERVAL 7 DAY);  

# Удаляем велосипеды, нетронутые более 3 дней
DELETE FROM `object_data` WHERE (Classname = "MMT_Civ" or Classname = "Old_bike_TK_INS_EP1") AND DATE(LastUpdated) < CURDATE() - INTERVAL 3 DAY;

# Очищаем историю заходов на сервер 
DELETE FROM `player_login` WHERE DATE(Datestamp) < CURDATE() - INTERVAL 10 DAY;
END

 

Немного исправлено, Удалялись заправки игроков. 

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

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


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

Т.е. ситуация:

Бекап только что сделан.

Проходит 40 минут, -> игрок налутался, -> баг, -> умер, -> рестарт сервера....

И вот он бедный пишет - мол так то и так то, сфортило, нашел я 2 рубина(на моем серваке, это просто эпичное бабло). А тут вот так и так - баг...

Ты смотришь бек, а там ниче нет)) Бек то часовой. А после рестарта дохляки удалены.

 

Ну да, дело каждого конечно) можно и не восстанавливать.

Ну это игра. Не успел-ой. Если баг-могу и так компенсировать. Если просто ноет-извини. Мне так удобней. Дальше политика у каждого своя.

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


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

перезалил

 

перезалил

Подскажи пожалуйста когда создаю функцию FindVehicleKeysCount он мне ругается "1303-Can't create a FUNCTION from within another stored routine"

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


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

Как не пытаюсь функция через батник не как не запускается а в базе всё ок процедура выполняется.

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


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

Всем привет,может кто нибудь записать видео с пошаговой иструкцией

Удаление брошенной техники

Буду очень признателен.

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


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

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

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

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

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

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

Войти

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

Войти сейчас

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

    • Автор: Serdce
      Данный скрипт, меняет процесс ремонта вашей техники, делая её более логичней, как было в А2.
      Для замены колеса, на нужно собственно само колесо, и тд. и тп. 
      Подробный список чего и для чего вы найдёте в файлах.
       
      Итак, преступим!
      Я не автор, я всего лишь перевожу.
      Первоисточник - https://github.com/aussie-battler/Exilemod-Super-Advanced-Repair-System-SARS
      По ссылке выше скачиваем архив, распаковываем в удобное место.
      Распаковываем ваше миссию "Exile.ваша карта"
      Из архива копируем папку "Custom" в папку вашей миссии "Exile.ваша карта"
      Открываем ваш description.ext  в нем мы ищем showHUD[] = 
      и полностью меняем на это - 
      Далее открываем ваш - initPLayerLocal.sqf
      В этом файле, сразу после строки - if (!hasInterface || isServer) exitWith {};
      Мы добавляем 
      //Bones Super Advanced Repair System (SARS)
      Bones_fnc_salvageAndRepairMenu = compileFinal preprocessFileLineNumbers "Custom\advancedRepair\Bones_fnc_salvageAndRepairMenu.sqf"; 
      Далее открываем ваш - config.cpp
      В нем мы ищем - class Car
      Внутри этого класса мы ищем
       
      И меняем на 
      Так же далее чуть ниже - class Air
      В нем мы также меняем это
      На это 
       
      Далее для если у вас есть Infistar!
      Распаковываем ваш инфистар и открываем его конфиг.
      В нём ищем     KCM = "true"; /* Just close ALL CommandingMenus */
      И меняем значение на false
      Чуть ниже в строке allowedCommandingMenus
      Мы добавляем  "#USER:ASL_Show_Repair_Options_Menu_Array"
      Ну вот и всё готово, всё сохранили и запаковали как было!
       
    • Автор: BorizzK
      Вот предположим мы создали где-то экземпляр класса;
      ref Class newClass = new Class();
       
      1 Он удалится сам? При каких условиях?
      2 Как его удалить принудительно если он больше не нужен?
       
    • Автор: BorizzK
      Вобщем в процессе работы сервера происходят рандомные динамические события и вместе с ними на карте спавнятся некоторые обьекты
      Если время их жизни истекает и настает время нового события и в радиусе видимости нет игроков обьекты удаляются с карты
      Но
      Если выключение корректно (запланированный рестарт например), вызов функции удаления происходит из деструктора класса
      Все отрабатывает
      Ошибок нет
      Но после рестарта некоторые обьекты на месте
      Тогда я замутил функцию-задержку с проверкой
       
      float TimeWait(Object object, float timeW) { float cTick = GetGame().GetTickTime() + timeW; while(object || GetGame().GetTickTime() < cTick ) { if ( GetGame().GetTickTime() >= cTick ) break; } return GetGame().GetTickTime(); } и вызываю ее
       
      if (object) tW = TimeWait(object, timeW); задержка реально происходит - делал ее 60 секунда да же
      НО! обьекты эти после рестарта опять на месте
       
      Пока придумал костыль - сохраняю в профиль сервера при каждом спавне координаты и тайпнеймы заспавленных обьектов и при запуске в конструкторе проверяю это место и грохаю обьекты по тайпнеймам - места безлюдные и открытые, лагерей и тп там быть не может - потому в принципе ничего лишнего туда попасть не может
      к тому же это полезно в случае крашей
       
      и все же
      почему обьекты не удаляются при завершении работы сервера?
       
    • Автор: Loker
      При покупке/продаже техники валюту за технику снимает/начисляет, но сама техника не появляется. 
      В логе возникает следующая ошибка: 
      15:04:28 "Server_PublishVehicle2 error: CLIENT AUTH KEY INCORRECT OR UNRECOGNIZED. PV ARRAY: [[323,[4037.27,11673.5,0.00289917]],"Ural_TK_CIV_EP1",false,"ItemKeyRed1798",B 1-1-B:1 (Player) REMOTE,""]" Как я понял новая проверка в версии мода 1.0.6.2 не может считать какой-то ключ пользователя. Может кто сталкивался с такой ошибкой. Буду рад любому совету. Заранее спасибо.
    • Автор: Akie
      Проблема вот в чем, просто выкидывает из техники через короткое время после залезания в нее и не важно на ходу или нет, на каком месте в ней ты сидишь, просто пофигу, выкидывает и всё, в логах и на сервере, и на клиенте чисто подскажите куда копать пожалуйста
  • Наш выбор

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

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

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