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
dimquea

Удержание (Maintain) построек

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

Используется ли при этом CleanupPlacedAfterDays?

Писал процедуру, постепенно наносящую урон постройкам, старше определённого уровня, как то это работало, но даже после удержания рандомные стены пропадали.

Объясните как правильно реализовать.

Share this post


Link to post
Share on other sites

15 answers to this question

Recommended Posts

  • 0

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

Используется ли при этом CleanupPlacedAfterDays?

Писал процедуру, постепенно наносящую урон постройкам, старше определённого уровня, как то это работало, но даже после удержания рандомные стены пропадали.

Объясните как правильно реализовать.

Попробуйте вот так:

 

 

-- ----------------------------
-- Event structure for setDamageOnAge
-- ----------------------------
DROP EVENT IF EXISTS `setDamageOnAge`;
DELIMITER ;;
CREATE EVENT `setDamageOnAge` ON SCHEDULE EVERY 1 DAY COMMENT 'This sets damage on a wall so that it can be maintained' DO UPDATE `Object_DATA` SET `Damage`=0.1 WHERE `ObjectUID` <> 0 AND `CharacterID` <> 0 AND `Datestamp` < DATE_SUB(CURRENT_TIMESTAMP, INTERVAL 3 DAY) AND ( (`Inventory` IS NULL) OR (`Inventory` = '[]') )
;
DELIMITER ; 

 

 

 

 

Себе поставил и проблем не знаю  :smile:

Share this post


Link to post
Share on other sites



  • 0

Попробуйте вот так:

 

 

-- ----------------------------
-- Event structure for setDamageOnAge
-- ----------------------------
DROP EVENT IF EXISTS `setDamageOnAge`;
DELIMITER ;;
CREATE EVENT `setDamageOnAge` ON SCHEDULE EVERY 1 DAY COMMENT 'This sets damage on a wall so that it can be maintained' DO UPDATE `Object_DATA` SET `Damage`=0.1 WHERE `ObjectUID` <> 0 AND `CharacterID` <> 0 AND `Datestamp` < DATE_SUB(CURRENT_TIMESTAMP, INTERVAL 3 DAY) AND ( (`Inventory` IS NULL) OR (`Inventory` = '[]') )
;
DELIMITER ; 

 

 

 

 

Себе поставил и проблем не знаю  :smile:

CleanupPlacedAfterDays включен?

этот эвент только наносит урон, что позволяет удержать. постройки он не удаляет.

Share this post


Link to post
Share on other sites
  • 0

CleanupPlacedAfterDays включен?

включен

Share this post


Link to post
Share on other sites
  • 0

дописали в init.sqf нужные строчки?

Share this post


Link to post
Share on other sites
  • 0

дописали в init.sqf нужные строчки?

какие? CleanupPlacedAfterDays в HiveExt.ini

 

наверное вопрос решён. буду пробовать.

Edited by dimquea (see edit history)

Share this post


Link to post
Share on other sites
  • 0

какие? CleanupPlacedAfterDays в HiveExt.ini

 

наверное вопрос решён. буду пробовать.

да нет же,  строчки в init.sqf там 2 строки отвечают за обслуживание плота

Share this post


Link to post
Share on other sites
  • 0

да нет же,  строчки в init.sqf там 2 строки отвечают за обслуживание плота

DZE_maintainRange и DZE_DamageBeforeMaint. зачем они в init? дефолтные значения из variables вполне устраивают.

Share this post


Link to post
Share on other sites
  • 0

Писал процедуру,

 

Зачем? Если всё есть в папке SQL в предоставляемых серверных файлах с офф форума... писал он. 

 

Стандартная система поддерживания работает на ура. Главное правильно позаливать евенты в БД.

Как их залить правильно я уже писал в теме процедур БД и удаления лишнего транспорта.

Значение: CleanupPlacedAfterDays в трогать вообще не нужно, не надо снимать с него комментирование или лепить значение -1.

 

как правильно настроить

 

Просто собери сервер как того требуют создатели, а не как описывают нубы на данном форуме люди, у которых это просто получилось...

Edited by Sheolone (see edit history)

Share this post


Link to post
Share on other sites
  • 0

 

Просто собери сервер как того требуют создатели, а не как описывают нубы на данном форуме люди, у которых это просто получилось...

ну так скажи тогда как это должно работать?

 

Главное правильно позаливать евенты в БД.

Как их залить правильно я уже писал в теме процедур БД и удаления лишнего транспорта.

Значение: CleanupPlacedAfterDays в трогать вообще не нужно, не надо снимать с него комментирование или лепить значение -1.

чтобы эвент залить, большого ума не надо. ты лучше скажи, какие именно эвенты для этого нужны. setDamageOnAge просто наносит урон, для удержания. как правильно удалять брошенные объекты, вот что меня интересует.

Share this post


Link to post
Share on other sites
  • 0

SetDamageOnAge наносит урон постройкам до тех пор пока не добьёт до конца. Потом в действие вступает евент RemoveDamagedVehicles, который сносит то, что предыдущий евент добил до нуля.

Кроме того, removeObjectOld так же выполняет чистку обьектов, которые не обновлялись 30м столбом в течение месяца.

Share this post


Link to post
Share on other sites
  • 0

 

SetDamageOnAge наносит урон постройкам до тех пор пока не добьёт до конца.

эм. разве команда SET приплюсовывает значение?

а removeObjectOld трёт вообще все записи?

Share this post


Link to post
Share on other sites
  • 0

эм. разве команда SET приплюсовывает значение?

а removeObjectOld трёт вообще все записи?

Set устанавливает.

Хоть минусовое хоть плюсовое по моему.

Без ультимы хрен разберёмся.

Share this post


Link to post
Share on other sites
  • 0

Попробуйте вот так:

 

 

-- ----------------------------
-- Event structure for setDamageOnAge
-- ----------------------------
DROP EVENT IF EXISTS `setDamageOnAge`;
DELIMITER ;;
CREATE EVENT `setDamageOnAge` ON SCHEDULE EVERY 1 DAY COMMENT 'This sets damage on a wall so that it can be maintained' DO UPDATE `Object_DATA` SET `Damage`=0.1 WHERE `ObjectUID` <> 0 AND `CharacterID` <> 0 AND `Datestamp` < DATE_SUB(CURRENT_TIMESTAMP, INTERVAL 3 DAY) AND ( (`Inventory` IS NULL) OR (`Inventory` = '[]') )
;
DELIMITER ; 

 

 

 

 

Себе поставил и проблем не знаю  :smile:

1.

(`Inventory` IS NULL) OR (`Inventory` = '[]')

Не будет наносить дамаг, => удалять заброшенные сейфы, ящики, коробки и т.п. в которых есть хоть 1 предмет

2.

`ObjectUID` <> 0 - лишнее, таких объектов быть не должно вообще

3.

`CharacterID` <> 0

не будет наносить урон бесхозной технике => нужен еще 1 эвент, чтоб удалял бесхозную технику, если она не используется больше Х часов.

4. И вообще!

SET `Damage`=0.1

тупо каждый раз установит дамагу в 0.1

Имхо надо то так

SET `Damage`='Damage'+0.1

 

5. по теме - Когда объекту нанесен урон >= 1 - он и так должен удалится. Но можно еще и жвент прицепить -

DELETE FROM object_data WHERE damage >= 1

*кавычки самим поставить... на память вписал.

Share this post


Link to post
Share on other sites
  • 0

 

4. И вообще! SET `Damage`=0.1 тупо каждый раз установит дамагу в 0.1

я так и думал.

 

а вообще твой ответ по исходной теме?

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 pekar0201
      При обслуживании (Maintain) построек не только чинятся повреждённые постройки, а и полностью восстанавливаются разрушенные. В том числе и разрушенный плот.
      Как сделать так что-бы разрушенные постройки не восстанавливались сией функцией?

      Эксперементировал с - if (damage > 0.9) then {
      Но ничего не получилось. Может я конечно где-то не там его пихал.

      P.S. Если объяснил не особо доходчиво, то - Как сделать так что-бы постройки нельзя было починить при определённом уровне урона!?

      Вот сам файл "обслуживания (Maintain)" построек:
       

      За помощь\адекватные ответы ставлю + !
    • By rifer
      Всем привет! Стоит 1.0.6.1. Часто начал замечать что по карте спавнятся различные лутабельные постройки, при чем каждый рестарт в разных местах. Я так понял эта генерация вшита в мод. Пробовал найти скрипт в dayz_code - не нашел....  В принципе всё нравится, НО хотелось бы прописать маркера, чтобы они еще и на карте обозначались. Кто знает как решить эту тему?
    • By Tiberian
      Добрый день/утро/ночь/вечер.
      Нигде не нашел и поэтому спрашиваю.
      Как разобрать/демонтировать постройки сделанные в "прошлой жизни"?
      Строил стены, лестницы и в списке действий была такая строка "разобрать...." то-се. Потом убили. Теперь при подходе к постройке такого пункта действия нет, а разобрать нужно. 
      Как быть?
    • By MeinCain
      Доброго и хорошего времени суток всем!
       
      Подскажите, пожалуйста, как сделать возможность разбирать постройки внутри базы для игроков? Ну, там стены, полы и так далее.
    • By AJlex
      Скрин не прикладываю т.к. приложение консольное
      Весь функционал написан в заголовке темы

      Программа считывает все sqf файлы в папке и на выходе создает файл mission.sqf
      Вопрос вначале,создавать готовый файл или нет говорит сам за себя,если выберите да, то файл останется только подключить,если нет то, в файле будет только список объектов

      Для работы нужен net framework 4.5

      Скачать
      VirusTotal
  • 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.