Нужна помощь?
Создайте тему в соответствующем разделе
Не нужно писать всё в чат!Загляните на торговую площадку
Там вы можете купить
всё что касается игровых серверовНе хотите бан?
Пожалуйста, ознакомьтесь с нашими правилами
Не нарушайте порядок!Продаёте или покупаете?
Пользуйтесь услугами гаранта
Мы сделаем вашу сделку безопасной
- 0
-
Похожие публикации
-
Автор: SpiritWolf
Народ, кто-то ковырял поведение и логику Жениных ботов?
Они невероятно глупые (конкретно пехота). Можно ли как-то ужесточить их? Дальность обнаружения игрока, ибо они стреляют только с 200м.
-
Автор: Шапокляк
Как сделать чтоб Боты агрелись на Игрока с расстояния 1000-1500 метров. Темы вродибы есть но решений нет.
ai_share_info = true; // AI share info on player position ai_share_distance = 2000; // distance from killed AI for AI to share your rough position ai_skill_extreme = [["aimingAccuracy",1.00],["aimingShake",1.00],["aimingSpeed",1.00],["endurance",1.00],["spotDistance",3.99],["spotTime",1.00],["courage",1.00],["reloadSpeed",1.00],["commanding",1.00],["general",1.00]]; // Extreme ai_skill_hard = [["aimingAccuracy",1.00],["aimingShake",1.00],["aimingSpeed",1.00],["endurance",1.00],["spotDistance",3.99],["spotTime",1.00],["courage",1.00],["reloadSpeed",1.00],["commanding",1.00],["general",1.00]]; // Hard менял все не помогает.!!!
-
Автор: Sancezz063
Всем привет!
скачал оффлай режим, построил ,решил сохранить, в итоге ничего не сохранилось.
Знаю что можно в init прописать, но потом я их дальше в оффлайне редактировать не смогу. Помню раньше просто нажимал save , потом заходит и все стояло на своих местах
-
Автор: BorizzK
Накрапал функций (по мотивам того что делали для 0.62 когда-то)
Проверяем сколько машин на сервере (кстати, кому известны координаты центра Черноруси и макс полезный радиус от центра где могут располагаться объекты?)
Если машин данного типа достаточно на карте, не спавним
Если не хватает, перед спавном проверяем нет ли машины рядом (что бы не заспавнить внутрь другой)
Если все норм, спавним
int CheckNearObjects(vector pos, int radius, string objectClass) //Проверка обьектов поблизости { array<Object> nearest_objects = new array<Object>; array<CargoBase> proxy_cargos = new array<CargoBase>; Object object; string className; int objectcount = 0; GetGame().GetObjectsAtPosition(pos, radius, nearest_objects, proxy_cargos); Print("::: SpawnCars.c ::: CheckNearObjects (EntityAI m_Object, int radius) ::: Radius: " + radius.ToString() + ", all nearest_objects: " + nearest_objects.Count().ToString()); for ( int i = 0; i < nearest_objects.Count(); i++ ) { object = nearest_objects.Get(i); className = object.GetType(); if ( className == objectClass ) { objectcount++; Print( "::: SpawnCars.c ::: CheckNearestObjects: found object " + objectcount.ToString() + ": " + object.ToString() + ", Type/Class: " + className + " !!!"); } } return objectcount; } int SpawnCar(string m_Car_Class, TVectorArray spawn_Points, int max_Car_Count, float min_Car_Health, float max_Car_Health, bool damageallow) //Спавн машины по заданным параметрам { Print("::: SpawnCars.c ::: SpawnCar(" + m_Car_Class + ", " + spawn_Points.ToString() + ") :::"); vector m_Car_Pos; EntityAI m_Car; int n_Car_Count = 0; int all_Car_Count = 0; int s_Car_Count = 0; array<string> m_Car_Equip_Array = new array<string>; if (m_Car_Class == "OffroadHatchback") { /* Так то же можно m_Car_Equip_Array.Insert("HatchbackWheel"); m_Car_Equip_Array.Insert("HatchbackWheel"); m_Car_Equip_Array.Insert("HatchbackWheel"); m_Car_Equip_Array.Insert("HatchbackWheel"); m_Car_Equip_Array.Insert("CarBattery"); m_Car_Equip_Array.Insert("SparkPlug"); m_Car_Equip_Array.Insert("EngineBelt"); m_Car_Equip_Array.Insert("CarRadiator"); m_Car_Equip_Array.Insert("HatchbackDoors_Driver"); m_Car_Equip_Array.Insert("HatchbackDoors_CoDriver"); m_Car_Equip_Array.Insert("HatchbackHood"); m_Car_Equip_Array.Insert("HatchbackTrunk"); */ //И так можно m_Car_Equip_Array = {"HatchbackWheel","HatchbackWheel","HatchbackWheel","HatchbackWheel","CarBattery","SparkPlug","SparkPlug","EngineBelt","CarRadiator","HatchbackDoors_Driver","HatchbackDoors_CoDriver","HatchbackHood","HatchbackTrunk"}; //Проверяем m_Car_Equip_Array.Debug(); } /* else if (m_Car_Class == "M3S") { //Тут заполняем массив комплектующими M3S } */ else { Print("::: SpawnCars.c ::: SpawnCar() ::: NO CAR / WRONG CLASS SPECIFIED :::"); return s_Car_Count; } all_Car_Count = CheckNearObjects("7000 0 7000", 20000, m_Car_Class); //Можно отключить если сервер глючит при старте, тогда присовойте all_Car_Count значение - all_Car_Count = 1; (см ниже) //all_Car_Count = 1; for ( int i = 0; i < spawn_Points.Count(); i++ ) { m_Car_Pos = spawn_Points.Get(i); n_Car_Count = CheckNearObjects(m_Car_Pos, 10, m_Car_Class); Print("::: SpawnCars.c ::: n_Car_Count = " + n_Car_Count.ToString()); if (s_Car_Count + all_Car_Count < max_Car_Count) { if (n_Car_Count < 1) { m_Car = EntityAI.Cast(GetGame().CreateObject(m_Car_Class, m_Car_Pos, false, true)); for ( int e = 0; e < m_Car_Equip_Array.Count(); e++ ) { m_Car.GetInventory().CreateAttachment( m_Car_Equip_Array.Get(e) ); } m_Car.SetAllowDamage(damageallow); m_Car.SetHealth("","",Math.RandomInt(min_Car_Health,max_Car_Health)); Print("::: SpawnCars.c ::: Spawned car: " + m_Car.ToString() + ", Position: " + m_Car.GetPosition().ToString()); if (m_Car) { s_Car_Count++; } } else { Print("::: SpawnCars.c ::: Car spawn not allowed at position: " + m_Car_Pos.ToString() + ", becouse nearest car with same class " + m_Car_Class + " found."); } } else { Print("::: SpawnCars.c ::: Car spawn not allowed becouse cars with same class " + m_Car_Class + " >= " + max_Car_Count.ToString()); } } return s_Car_Count; }
Подключение
Правим по своему вкусу
Помещаем код в файл и размещаем в папке доступной серверу
В самом начале init.c
#include "$CurrentDir:\\путь\\путь\\имя файла с кодом.c
Далее в функции main вызываем спавн
TVectorArray spawn_Points_Niva = {"6063 0 7871"}; //array with positions, for more cars write more positios in to array int SpawnCarsCarsCount = SpawnCar("OffroadHatchback", spawn_Points_Niva, 32, 100, 100, false); //Class, Positions, Max count, min health, max health, damage allow - true/false Print("::: SpawnCars.c ::: SpawnCars() ::: Spawned cars: " + SpawnCarsCarsCount.ToString()); //это просто каммент
Или просто
int SpawnCarsCarsCount;
SpawnCarsCarsCount = SpawnCar("M3S", {"6000 0 6000", "7000 0 8000"}, 44, 100, 100, false);
Но для M3S нужно прописать комплектуху в SpawnCar() в массив m_Car_Equip_Array
Ну вобщем разберетесь )))
Добавлено:
Альтернативный вариант от комьюнити:
-
Автор: BorizzK
Функция вернет кол-во игроков рядом с текущей позицией игрока в заданном радиусе
Использую на своем сервере при рандомном спавне нового игрока, что бы не заспавнился рядом с уже вооруженным и злым
Если при спавне рядом есть игрок, то выбираются новые координаты для спавна
int CheckNearestObjects(PlayerBase player, int radius) { array<Object> nearest_objects = new array<Object>; array<CargoBase> proxy_cargos = new array<CargoBase>; Object object; string className; int objectcount = 0; GetGame().GetObjectsAtPosition (player.GetPosition(), radius, nearest_objects, proxy_cargos ); Print("::: init_mod.c ::: CheckNearestObjects (int radius) ::: Radius: " + radius.ToString() + ", nearest_objects: " + nearest_objects.Count().ToString()); for ( int i = 0; i < nearest_objects.Count(); i++ ) { object = nearest_objects.Get(i); className = object.GetType(); if ( object ) { if (object.IsMan()) { if (player != object) { Print( "::: Init.c ::: CheckNearestObjects: IsMan(): "+i.ToString()+" => " + object.ToString() + " => Type: " + className + " => Position: " + object.GetPosition().ToString()); objectcount = objectcount + 1; } else { Print( "::: Init.c ::: CheckNearestObjects: isMan(): player and object " + object.ToString() + " the same object!"); } } } } return objectcount; }
-
-
Наш выбор
-
Создаем свой серверный мод. [DayZ 1.4 to Discontined]
123new опубликовал тему в Версия 1.0 и выше,
-
Увеличение карты х2
vitacite опубликовал тему в Картостроение,
Всем привет!
Возник такой вопрос. Игроки очень любят отагривать ботов и зомби перезаходом на сервер(реконнектом).
В голове родилась порнография следующего вида(куда ее втыкать я понятия не имею):
Знающие люди, помогите пожалуйста довести идею до ума и чтобы работало, мне знаний к сожалению нехватает.. Спасибо!
P.S. Куда опубликовать новый метод дюпа (а может и не новый. С помощью Battleye) и идеи его фикса? Опять же нехватает знаний для реализации сего :)
Изменено пользователем rss_adm (история изменений)Поделиться сообщением
Ссылка на сообщение
Поделиться на других сайтах