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

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

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

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

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

История изменений

Здесь нет истории для отображения или этот комментарий был изменён модератором

  • Похожие публикации

    • Автор: Sancezz063
      Пропадают машины, люди говорят до рестарта оставляют машину, а после она просто пропадает, может ли на это влиять админка ? 
      Машины пропадают которые собирают на сервере
    • Автор: 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
      Всем добрый день уважаемые знатоки,есть проблема которую самостоятельно решить не могу,в интернете информации нет,здесь не нашёл,хотелось бы провести людям аукцион техники,но проблема в том что с инфистара техника в аренде,просто не имею понятия как это сделать,помогите кто знает.
    • Автор: Evgen66
      Добрый день.
      Ребят, подскажите кто знает как правильно написать скрипт машины в магазине, если она в моде имеет несколько цветов.
      Машины вот такие 
      "R35lu_civ"; "R35lu_civ_rouge"; "R35lu_civ_bleu"; "R35lu_civ_noir"; "R35lu_civ_gris"; "R35lu_civ_yellow"; Правильным ли будет если я сделаю вот это таким образом ?
      class R35lu_civ { vItemSpace = 50; conditions = ""; price = 75000; textures[] = {}; materials[] = {"rouge","bleu","noir","gris","yellow"}; };  
      и ещё, объсните пожалуйста, для чего тут нужна наследственность ?        "class ext_ivory_isf_police: ext_ivory_rs4_police {  price = 25000; };
      class ext_ivory_rs4_police { vItemSpace = 50; conditions = ""; price = 25000; textures[] = {}; materials[] = {"glossy","matte","metallic","chrome"}; }; class ext_ivory_isf_police: ext_ivory_rs4_police { price = 25000; }; class ext_ivory_m3_police: ext_ivory_rs4_police { price = 25000; }; class ext_ivory_evox_police: ext_ivory_rs4_police { price = 23000; };  
  • Наш выбор

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

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

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