Нужна помощь?
Создайте тему в соответствующем разделе
Не нужно писать всё в чат!Загляните на торговую площадку
Там вы можете купить
всё что касается игровых серверовНе хотите бан?
Пожалуйста, ознакомьтесь с нашими правилами
Не нарушайте порядок!Продаёте или покупаете?
Пользуйтесь услугами гаранта
Мы сделаем вашу сделку безопасной
- 0
-
Похожие публикации
-
Автор: Sancezz063
Пропадают машины, люди говорят до рестарта оставляют машину, а после она просто пропадает, может ли на это влиять админка ?
Машины пропадают которые собирают на сервере
-
Автор: ownness
Ребят, подскажите, можно ли добавить цвета/текстуры на автомобили, чтобы при покупке выбирать?
вот кусок кода Config_Vehicles.hpp... в нем две телеги, у первой есть цвета (так и не понял, откуда они тянутся), у второй - нет. есть варианты реализации?
class madsa_hummer_h2 { realname="Hummer H2"; buyPrice=344000; inventory=85; side="CIV"; insurance=0; disableOwnerInfos=1; licenses[]={"rebelle_1"}; fuel="SP95"; fuelCapacity=121; colors[]= { "madsa_hummer_h2_black_F", "madsa_hummer_h2_blue_F", "madsa_hummer_h2_gold_F", "madsa_hummer_h2_green_F", "madsa_hummer_h2_pink_F", "madsa_hummer_h2_purple_F", "madsa_hummer_h2_red_F", "madsa_hummer_h2_silver_F", "madsa_hummer_h2_white_F", "madsa_hummer_h2_yellow_F" }; }; class madsa_hummer_h2_black_F: madsa_hummer_h2 {}; class madsa_hummer_h2_blue_F: madsa_hummer_h2 {}; class madsa_hummer_h2_gold_F: madsa_hummer_h2 {}; class madsa_hummer_h2_green_F: madsa_hummer_h2 {}; class madsa_hummer_h2_pink_F: madsa_hummer_h2 {}; class madsa_hummer_h2_purple_F: madsa_hummer_h2 {}; class madsa_hummer_h2_red_F: madsa_hummer_h2 {}; class madsa_hummer_h2_silver_F: madsa_hummer_h2 {}; class madsa_hummer_h2_white_F: madsa_hummer_h2 {}; class madsa_hummer_h2_yellow_F: madsa_hummer_h2 {}; class madsa_zl1_f { realname="Chevrolet zl1f"; buyprice=260000; inventory=20; side="CIV"; insurance=1; licence[]={"driver"}; fuel="SP98"; fuelCapacity=67; colors[]={}; };
-
Автор: BorizzK
//AUTHOR: BORIZZ.K //Version 20.12.2018.0011 void PlaceAllCarsToGround() { array<Object> nearest_objects = new array<Object>; array<CargoBase> proxy_cargos = new array<CargoBase>; Object object; string className; int objectcount = 0; vector mapcenter = "7500 0 7500"; int radius = 20000; vector foundcar_pos; mapcenter[1] = GetGame().SurfaceY( mapcenter[0], mapcenter[2] ); GetGame().GetObjectsAtPosition(mapcenter, radius, nearest_objects, proxy_cargos); for ( int i = 0; i < nearest_objects.Count(); i++ ) { object = nearest_objects.Get(i); className = object.GetType(); if ( GetGame().IsKindOf(className, "Car" ) ) //if ( className == "OffroadHatchback" || className == "V3SVehicle" || className == "V3SChassis" || className == "CivilianSedan") { EntityAI objectEnt = EntityAI.Cast(object); if (objectEnt) { foundcar_pos = objectEnt.GetPosition(); Print("::: PlaceAllCarsToGround() ::: Found car: " + className + ", objectEnt: " + objectEnt + ", Position: " + foundcar_pos.ToString() + ", SurfaceGetNormal: " + GetGame().SurfaceGetNormal(foundcar_pos[0], foundcar_pos[2]).ToString()); //Check surface under car /* string surface_type; int liquidType; GetGame().SurfaceUnderObject(object, surface_type, liquidType); Print("::: PlaceAllCarsToGround() ::: Found car: " + className + ", objectEnt: " + objectEnt + ", surface_type: " + surface_type + ", liquidType: " + liquidType); */ if ( foundcar_pos[1] < (GetGame().SurfaceY(foundcar_pos[0], foundcar_pos[2])) - 0.1 || foundcar_pos[1] > (GetGame().SurfaceY(foundcar_pos[0], foundcar_pos[2])) + 0.1 ) { foundcar_pos[1] = GetGame().SurfaceY(foundcar_pos[0], foundcar_pos[2]); objectEnt.SetPosition(foundcar_pos); objectEnt.SetOrientation(objectEnt .GetOrientation()); objectEnt.SetDirection(objectEnt .GetDirection()); Print("::: PlaceAllCarsToGround() ::: Position changed for car : " + className + ", objectEnt: " + objectEnt + ", Position: " + foundcar_pos.ToString()); } else { Print("::: PlaceAllCarsToGround() ::: No position change required for car : " + className + ", objectEnt: " + objectEnt); } } } } } Добавить код в init.c (ВНЕ КЛАССА)
Вызывать в конце функции main()
Просто вставив в конце
PlaceAllCarsToGround();
P.S. Поправил код, + учел рекомендации Ультимы
У меня на сервере с машинами все ок
-
Автор: 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
Ну вобщем разберетесь )))
Добавлено:
Альтернативный вариант от комьюнити:
-
Автор: petpoleoo
Всем добрый день уважаемые знатоки,есть проблема которую самостоятельно решить не могу,в интернете информации нет,здесь не нашёл,хотелось бы провести людям аукцион техники,но проблема в том что с инфистара техника в аренде,просто не имею понятия как это сделать,помогите кто знает.
-
-
Наш выбор
-
Создаем свой серверный мод. [DayZ 1.4 to Discontined]
123new опубликовал тему в Версия 1.0 и выше,
-
Увеличение карты х2
vitacite опубликовал тему в Картостроение,
Заметил одну вещь. На сервере есть машины которые очень трудно уничтожить, стекла бьются нормально, но чтобы сбить колесо из печенега нужно 3-4 обоимы. Некоторые вертолеты так же. А некоторые машины, нормально, пару выстрелов и колеса нет. В чем может быть причина?
Поделиться сообщением
Ссылка на сообщение
Поделиться на других сайтах