Нужна помощь?
Создайте тему в соответствующем разделе
Не нужно писать всё в чат!Загляните на торговую площадку
Там вы можете купить
всё что касается игровых серверовНе хотите бан?
Пожалуйста, ознакомьтесь с нашими правилами
Не нарушайте порядок!Продаёте или покупаете?
Пользуйтесь услугами гаранта
Мы сделаем вашу сделку безопасной
- 0
-
Похожие публикации
-
Автор: 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 секунда да же
НО! обьекты эти после рестарта опять на месте
Пока придумал костыль - сохраняю в профиль сервера при каждом спавне координаты и тайпнеймы заспавленных обьектов и при запуске в конструкторе проверяю это место и грохаю обьекты по тайпнеймам - места безлюдные и открытые, лагерей и тп там быть не может - потому в принципе ничего лишнего туда попасть не может
к тому же это полезно в случае крашей
и все же
почему обьекты не удаляются при завершении работы сервера?
-
Автор: ZigoFrend
Источник: Тык
Мод: Тык
Установка
1.Открываем init.c и ищем данный блок CustomMission: MissionServer
2.В конце данного блока вставляем
void SetClothes() { TStringArray tops = {"HuntingJacket_Autumn","LeatherJacket_Beige","LeatherJacket_Black","LeatherJacket_Brown","LeatherJacket_Natural"}; // Список рандомных курток TStringArray pants = {"LeatherPants_Beige","LeatherPants_Black","LeatherPants_Brown","LeatherPants_Natural"}; // Список рандомных штанов TStringArray shoes = {"LeatherMoccasinsShoes_Beige","LeatherMoccasinsShoes_Black","LeatherMoccasinsShoes_Brown","LeatherMoccasinsShoes_Natural"}; // Список рандомной обуви TStringArray hats = {"CowboyHat_black","CowboyHat_darkBrown","CowboyHat_green","LeatherHat_Beige","LeatherHat_Black","LeatherHat_Brown"}; // Список рандомных шапок int Max; Max= m_Trader_SpawnedTraderCharacters.Count(); for (int i=0; i< Max; i++) { EntityAI item = m_Trader_SpawnedTraderCharacters.Get(i).GetInventory().CreateInInventory(tops.GetRandomElement()); EntityAI item1 = m_Trader_SpawnedTraderCharacters.Get(i).GetInventory().CreateInInventory(pants.GetRandomElement()); EntityAI item2 = m_Trader_SpawnedTraderCharacters.Get(i).GetInventory().CreateInInventory(shoes.GetRandomElement()); EntityAI item3 = m_Trader_SpawnedTraderCharacters.Get(i).GetInventory().CreateInInventory(hats.GetRandomElement()); } } override void OnInit() { super.OnInit(); SetClothes(); } Готово ! Теперь торговцы одеты в вещи из данных списков:
TStringArray tops = {"HuntingJacket_Autumn","LeatherJacket_Beige","LeatherJacket_Black","LeatherJacket_Brown","LeatherJacket_Natural"}; // Список рандомных курток TStringArray pants = {"LeatherPants_Beige","LeatherPants_Black","LeatherPants_Brown","LeatherPants_Natural"}; // Список рандомных штанов TStringArray shoes = {"LeatherMoccasinsShoes_Beige","LeatherMoccasinsShoes_Black","LeatherMoccasinsShoes_Brown","LeatherMoccasinsShoes_Natural"}; // Список рандомной обуви TStringArray hats = {"CowboyHat_black","CowboyHat_darkBrown","CowboyHat_green","LeatherHat_Beige","LeatherHat_Black","LeatherHat_Brown"}; // Список рандомных шапок Но мы же хотим одеть их сами
Тогда делаем так :
1. Повторяем пункт первый
2. Вставляем туда это
void SetClothes() { int Max; Max= m_Trader_SpawnedTraderCharacters.Count(); for (int i=0; i< Max; i++) { if ( i == 0 ) // Торговец с ID 0 { EntityAI item20 = m_Trader_SpawnedTraderCharacters.Get(i).GetInventory().CreateInInventory("BaseballCap_Blue"); EntityAI item = m_Trader_SpawnedTraderCharacters.Get(i).GetInventory().CreateInInventory("Jeans_Black"); EntityAI item1 = m_Trader_SpawnedTraderCharacters.Get(i).GetInventory().CreateInInventory("AthleticShoes_Blue"); EntityAI item2 = m_Trader_SpawnedTraderCharacters.Get(i).GetInventory().CreateInInventory("Sweater_Gray"); } else if ( i == 1 ) // Торговец с ID 1 { EntityAI item21 = m_Trader_SpawnedTraderCharacters.Get(i).GetInventory().CreateInInventory("BaseballCap_Beige"); EntityAI item4 = m_Trader_SpawnedTraderCharacters.Get(i).GetInventory().CreateInInventory("Jeans_Blue"); EntityAI item5 = m_Trader_SpawnedTraderCharacters.Get(i).GetInventory().CreateInInventory("AthleticShoes_Black"); EntityAI item6 = m_Trader_SpawnedTraderCharacters.Get(i).GetInventory().CreateInInventory("Sweater_Blue"); } else if ( i == 2 ) // Торговец с ID 2 { EntityAI item8 = m_Trader_SpawnedTraderCharacters.Get(i).GetInventory().CreateInInventory("BaseballCap_Black"); EntityAI item9 = m_Trader_SpawnedTraderCharacters.Get(i).GetInventory().CreateInInventory("Jeans_Brown"); EntityAI item10 = m_Trader_SpawnedTraderCharacters.Get(i).GetInventory().CreateInInventory("AthleticShoes_Brown"); EntityAI item11 = m_Trader_SpawnedTraderCharacters.Get(i).GetInventory().CreateInInventory("Sweater_Green"); } else ( i == 3 ) // Торговец с ID 3 { EntityAI item15 = m_Trader_SpawnedTraderCharacters.Get(i).GetInventory().CreateInInventory("BaseballCap_Olive"); EntityAI item12 = m_Trader_SpawnedTraderCharacters.Get(i).GetInventory().CreateInInventory("Jeans_Green"); EntityAI item13 = m_Trader_SpawnedTraderCharacters.Get(i).GetInventory().CreateInInventory("AthleticShoes_Brown"); EntityAI item14 = m_Trader_SpawnedTraderCharacters.Get(i).GetInventory().CreateInInventory("Sweater_Red"); } } } override void OnInit() { super.OnInit(); SetClothes(); }
Думаю тут всё понятно
-
Автор: catttt61
Здравствуйте , вобщем такая проблема поставил трейдеров на карту , но здания дюпнулись за место 1 стоит 4 в 1 и так со всеми предметами столы, бочки, здания все появилось в разы больше. И двери чтобы открыть приходиться открывать 4 двери за место 1. И так со всеми трейдорами. Прошу вас помочь разобраться где копать и как можно исправить эту проблему. Заранее спасибо!!!
Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.
-
Наш выбор
-
Создаем свой серверный мод. [DayZ 1.4 to Discontined]
123new опубликовал тему в Версия 1.0 и выше,
-
Увеличение карты х2
vitacite опубликовал тему в Картостроение,
Хочу использовать "не стандартную" карту для сервера Exile, поэтому возник вопрос как поменять карту, где указывается карта которая загружается, а также как изменить точки сейф зон, я так понимаю они привязаны к глобальным координатам, а вот где и как их получить я не понял )
Поделиться сообщением
Ссылка на сообщение
Поделиться на других сайтах