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

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

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

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

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

Как сделать глобальную очистку предметов после рестарта?

Здравствуйте,эксперты)

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

За это все вместе отвечает папка storage_1\data , очень нужно узнать какие именно файлы там отвечают только за лут,что-бы не удалять палатки и тд.

Либо если можно сделать это как-то по другому,подскажите буду очень признателен!

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


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

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

  • 0
modded class ItemBase extends InventoryItem
{
	override void AfterStoreLoad()
	{
		super.AfterStoreLoad();

		if (DoDelete()) delete this;
	}

	private bool DoDelete()
	{
		EntityAI parent = GetHierarchyParent();
		if (parent)
		{
			return false; //Если является составной частью инвентаря или аттачментом - не удалять
		}
		else if (IsInherited(TentBase))
		{
			TentBase t = TentBase.Cast(this);
			if (t)
			{
				if (t.GetState() == 0) return true; //Если палатка и она свернутся - удалять
			}
					
		}
		else if (IsInherited(DeployableContainer_Base)) // Barrel_ColorBase, SeaChest, WoodenCrate
		{
			return false; //Если бочка или один из ящиков - не удалять
		}
				
		return true; //Остальное удалять
	}
}

Суть такова
После старта сервера и загрузки предмета из БД сервера всегда выполняется функция AfterStoreLoad()
Мы ее оверрайдим

Внутри сначала вызываем нативную функцию

Затем проверяем через нашу функцию сам предмет

И удаляем если подходит под описание

 

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

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


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



  • 0

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

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


Ссылка на сообщение
Поделиться на других сайтах
  • 0
6 минут назад, 123new сказал:

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

понял,получается так ничего не получиться?
я просто видел на одном пвп сервере что очистка всех предметов просходит каждые 15 минут,а палатки и ящики остаються,вот интересно как это происходит

 

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

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


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

понял,получается так ничего не получиться?
я просто видел на одном пвп сервере что очистка всех предметов просходит каждые 15 минут,а палатки и ящики остаються,вот интересно как это происходит

 

ну самый простой вариант спросить у них, если это так то любопытно тоже мне.

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


Ссылка на сообщение
Поделиться на других сайтах
  • 0
2 минуты назад, 123new сказал:

ну самый простой вариант спросить у них, если это так то любопытно тоже мне.

это было просто месяцов 8 назад,я его уже не найду 😞
вообще можно как-то чистить карту? 

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


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

Можно

Я даж скрипт накатал для этого с конфигом, но гдет по(Слово удалено системой)ил

Над поискать или заново накатать

 

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


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

Можно

Я даж скрипт накатал для этого с конфигом, но гдет по(Слово удалено системой)ил

Над поискать или заново накатать

 

Можешь помочь пожалуйста,могу и сам накатать только скажи что и куда и откуда)) потерял с этим вопросом уже два дня рыская по всем форумам

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

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


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

Можешь помочь пожалуйста,могу и сам накатать только скажи что и куда и откуда)) пр**бал с этим вопросом уже два дня рыская по всем форумам

Для начала надо знать

1 что чистим

2 по каким критериям отбор для очистки

 

Например по палаткам - если палатку поставили - это можно проверить - лежит она свернутая или поставленная - если свернута - значит заспавнилась
про ящики

установленный (размещенный) ящик ни чем не отличается от заспавленного,  кроме случаев если в нем что-то лежит - ящики всегда спавнятся пустыми (а палатки свернутыми)
то же касается и бочек

 

впрочем можно ко всему добавить некий флаг, который будет устанавливаться если предмет на землю скинут игроком и сохранять этот флаг в бд сервера (тут без вайпа не обойтись иначе сохранка сьедет, хотя  есть способ это обойти, в Вашем же случае это пофигу)

 

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


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

Для начала надо знать

1 что чистим

2 по каким критериям отбор для очистки

 

Например по палаткам - если палатку поставили - это можно проверить - лежит она свернутая или поставленная - если свернута - значит заспавнилась
про ящики

установленный (размещенный) ящик ни чем не отличается от заспавленного,  кроме случаев если в нем что-то лежит - ящики всегда спавнятся пустыми (а палатки свернутыми)
то же касается и бочек

 

впрочем можно ко всему добавить некий флаг, который будет устанавливаться если предмет на землю скинут игроком и сохранять этот флаг в бд сервера (тут без вайпа не обойтись иначе сохранка сьедет, хотя  есть способ это обойти, в Вашем же случае это пофигу)

 

1 Чистить нужно все что лежит на полу,то есть лут заспавненный игрой и лут сброшенный игроком на землю

2 Нужно оставлять ящики как пустые так и с лутой,то же самое с бочками и палатками,свернутые палатки можно уберать.

 

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

 

(не совсем понял о каких именно критериях для очистки идет речь,надеюсь правильно ответил 🙂 )

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

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


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

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

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


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

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

завтра подумаю что можно сделать

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


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

завтра подумаю что можно сделать

Благодарю

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


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

Как мод серверный собирать знаете?

Кстати

Может да ДМ сервере имет смысл отключить спавн некторых предметов/ограничить эвенты?

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

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


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

Как мод серверный собирать знаете?

Кстати

Может да ДМ сервере имет смысл отключить спавн некторых предметов/ограничить эвенты?

Серверными модами пока не занимался,сейчас объясню задумку сервера,чтобы было понятнее:

На сервере,по земле, разбросаны предметы типа веревок листов металла и тд,собирая их игроки на верстаке могут крафтить базы,в базы ставить ящики палатки бочки и тд,сервер как бы не полностью дм)

я пробовал прописать спавн веревок и тд не через init, с помощью event и связанных с ним файлов,но как я понял,это может сработать только для спавна в доме или каком-то объекте,мне же нужно спавнить на земле по заданной координате хуz , так я могу спавнить только с помощью init’a, но тут возникает проблема,при каждом рестарте веревка новая появляеться на том же месте,а старая не пропадает,в итоге через 4 рестарта там уже 5 веревок,а должна спавниться только одна после каждого рестарта,остальные должны пропадать. Пробовал менять lifetime веревки в types,не помогло,может что-то не правильно прописал,по этому и пришла идея того,почему бы просто за пару минут до рестарта,или уже после не очищать весь дроп. Я понял что очищать его млжно просто удаляя папку с файлами в storage, но тогда удаляться и все палатки верстаки сундуки , которые должны остаться.

 

фух,настрочился 😅

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


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

Через эвент можно спавнить и на земле

 

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


Ссылка на сообщение
Поделиться на других сайтах
  • 0
6 часов назад, weized сказал:

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

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

 

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


Ссылка на сообщение
Поделиться на других сайтах
  • 0
50 минут назад, 123new сказал:

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

 

А не проще ли сделать через events - создав эвернтсов

Lootблаблабла1 и тп

И прописать для них массив координат в известном файле

пусть родной спавнер напрягается

к тому же это снизит нагрузку на сервер и не отдисбалансит экономику

 

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


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

А не проще ли сделать через events - создав эвернтсов

Lootблаблабла1 и тп

И прописать для них массив координат в известном файле

пусть родной спавнер напрягается

к тому же это снизит нагрузку на сервер и не отдисбалансит экономику

 

ну как вариант)

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


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

А не проще ли сделать через events - создав эвернтсов

Lootблаблабла1 и тп

И прописать для них массив координат в известном файле

пусть родной спавнер напрягается

к тому же это снизит нагрузку на сервер и не отдисбалансит экономику

 

Это конечно хорошо,но нужно так же спавнить и на кастомных предметах типа мусорок,шин,куч с мусором всяких и тд,а я не уверен что смогу точно поставить предмет через конфиг,тем более там только координаты х z a, без у тут не получиться

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


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

Так что хотелось бы просто очищать всю карту,мне было бы так проще)

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


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

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

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

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


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

Скриптик положу вечером

X, z коордды на плоскости

Y высота не нужна

a это ориентация на плоскости

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


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

cпасибо большое!!! ты очень сильно помог!! если пойдут донаты скину тебе за работу 😉

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


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

cпасибо большое!!! ты очень сильно помог!! если пойдут донаты скину тебе за работу 😉

Так

Приступим

кротко

ща набросаю

 

 

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


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

Так

Приступим

кротко

ща набросаю

 

 

😘

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


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

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

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

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

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

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

Войти

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

Войти сейчас

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

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

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