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
weized

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

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

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

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

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

Share this post


Link to post
Share on other sites

Recommended Posts

  • 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()
Мы ее оверрайдим

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

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

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

 

Edited by BorizzK (see edit history)

Share this post


Link to post
Share on other sites



  • 0

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

Share this post


Link to post
Share on other sites
  • 0
6 минут назад, 123new сказал:

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

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

 

Edited by weized (see edit history)

Share this post


Link to post
Share on other sites
  • 0
2 минуты назад, weized сказал:

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

 

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

Share this post


Link to post
Share on other sites
  • 0
2 минуты назад, 123new сказал:

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

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

Share this post


Link to post
Share on other sites
  • 0

Можно

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

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

 

Share this post


Link to post
Share on other sites
  • 0
1 час назад, BorizzK сказал:

Можно

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

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

 

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

Edited by weized (see edit history)

Share this post


Link to post
Share on other sites
  • 0
19 минут назад, weized сказал:

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

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

1 что чистим

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

 

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

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

 

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

 

Share this post


Link to post
Share on other sites
  • 0
6 минут назад, BorizzK сказал:

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

1 что чистим

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

 

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

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

 

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

 

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

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

 

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

 

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

Edited by weized (see edit history)

Share this post


Link to post
Share on other sites
  • 0

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

Share this post


Link to post
Share on other sites
  • 0
2 минуты назад, weized сказал:

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

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

Share this post


Link to post
Share on other sites
  • 0
2 минуты назад, BorizzK сказал:

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

Благодарю

Share this post


Link to post
Share on other sites
  • 0

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

Кстати

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

Edited by BorizzK (see edit history)

Share this post


Link to post
Share on other sites
  • 0
7 минут назад, BorizzK сказал:

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

Кстати

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

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

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

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

 

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

Share this post


Link to post
Share on other sites
  • 0

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

 

Share this post


Link to post
Share on other sites
  • 0
6 часов назад, weized сказал:

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

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

 

Share this post


Link to post
Share on other sites
  • 0
50 минут назад, 123new сказал:

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

 

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

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

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

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

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

 

Share this post


Link to post
Share on other sites
  • 0
18 минут назад, BorizzK сказал:

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

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

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

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

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

 

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

Share this post


Link to post
Share on other sites
  • 0
1 час назад, BorizzK сказал:

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

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

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

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

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

 

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

Share this post


Link to post
Share on other sites
  • 0

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

Share this post


Link to post
Share on other sites
  • 0

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

Edited by weized (see edit history)

Share this post


Link to post
Share on other sites
  • 0

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

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

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

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

Share this post


Link to post
Share on other sites
  • 0

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

Share this post


Link to post
Share on other sites
  • 0
3 часа назад, weized сказал:

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

Так

Приступим

кротко

ща набросаю

 

 

Share this post


Link to post
Share on other sites
  • 0
11 минут назад, BorizzK сказал:

Так

Приступим

кротко

ща набросаю

 

 

😘

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

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