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
Yahweh

Динамические НПС

1) Каким способом можно сделать динамические нпс на сервере? Отображение НПС ( боты, трейдеры, игроки ) в определенном радиусе.

2) Как сделать динамичными постройки игроков ( Епоч постройки ) ?

Share this post


Link to post
Share on other sites

1 answer to this question

Recommended Posts

  • 0

Сформулируйте вопрос правильно, что вы понимаете под значением слов "динамические" и "динамичными". Отображение НПС? ака есп или на карте?

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

  • Similar Content

    • By paranoyk
      Постоянный вопрос - как спавнить лут в зомби.
      Ванильные зомби изначально имеют инвентарь. Модовые-не всегда, поэтому тут или обращаться к разработчику мода или пробовать в меру возможности переписать конфиг у мода (как-рассматривается в профильных темах).
      Пример:
       
      class MyZombie; // ID зомби { class Cargo //указываешь, что у этого зомби есть карго { itemsCargoSize[]={4,4}; //Размер инвентаря allowOwnedCargoManipulation=1; //Возможность взять openable=0; //Доступность }; }; Далее есть три варианта спавна лута.
      Первый-с помощью пресетов
      Второй-с помощью карго
      Третий-смешанный
      Для первого варианта переходим в папку cfgrandompresets.xml , создаём нужны нам "набор", "пресет".
      <cargo chance="Шанс спавна пресета от 0 до 1" name="Наименование вашего персета"> <item name="ID лута" chance="Шанс выпадения лута от 0 до 1" /> <item name="ID лута" chance="Шанс выпадения лута" /> <item name="ID лута" chance="Шанс выпадения лута" /> <item name="ID лута" chance="Шанс выпадения лута" /> <item name="ID лута" chance="Шанс выпадения лута" /> <item name="ID лута" chance="Шанс выпадения лута" /> <item name="ID лута" chance="Шанс выпадения лута" /> </cargo> Количество предметов может быть любым но заспанится только один или вообще ни одного.
      Механика работает следующем образом. Шанс выпадения пресета - если рандомайзер выдаст число больше или равное вашему шансу что в пресете  то спавн считается верным и переходит к проверке лута,если нет-спавна не будет. Грубо говоря если прописать 0 то спавна не будет, если 1.0 то пресет заспанится обязательно если лут пройдёт проверку (ниже).
      Далее аналогично шансу пресета рассчитывается выпадение каждого лута, если при проверке один должен заспавнится - остальные не проверяются. Если ни один не проходит проверку - спавна не будет. Если прописать 0, то лут точно никогда не заспавнится, если 1.0 то спавн будет.
      Порядок проверки лута случаен. (или псевдослучаен, если быть точнее). Поэтому если все вещи имеют шанс 1.0 то выпадет только одна из.
      Далее переходим в файл cfgspawnabletypes.xml .
      Находим вашего НПС или вписываем своего.
      <type name="ID вашего НПС"> <cargo preset="Имя вашего пресета" /> <cargo preset="toolsIndustrial (как пример с ванили)" /> <attachments preset="аттачменты НПС если они прописаны" /> <attachments preset="hatsIndustrial (как пример с ванили)" /> <attachments preset="bagsIndustrial" /> <attachments preset="vestsIndustrial" /> </type> НПС может иметь сколько угодно пресетов, для каждого походит расчёт на спавн лута. Если и из первого и второго, как примере, должен заспавнится лут-в НПС будет две вещи.
      Внимание! Спавнер не умеет поворачивать вещи в инвентаре и "играть в тэтрис". Если лут не помещается - спавна не будет!
      Что дают нам пресеты при спавне - рэндом спавна вещей из списка пресета.
      Второй вариант.
      Переходим сразу в файл cfgspawnabletypes.xml
      Находим НПС или вписываем своего
      <type name="ID вашего НПС"> <cargo chance="Шанс выпадения лута от 0 до 1"> <item name="ID лута" chance="Шанс выпадения конкретного лута от 0 до 1" /> <item name="ID лута" chance="Шанс выпадения конкретного лута от 0 до 1" /> <item name="ID лута" chance="Шанс выпадения конкретного лута от 0 до 1" /> </cargo> <cargo chance="Шанс выпадения лута от 0 до 1"> <item name="ID лута" chance="Шанс выпадения конкретного лута от 0 до 1" /> </cargo> <attachments preset="glassesVillage" /> <attachments preset="hatsPrisoner" /> </type> Всё одинаково с первым вариантом, используется чаще всего когда нужно прописать спавн одной-двух вещей, что бы не плодить пресеты. Или вы хотите конкретному НПС давать в инвентарь конкретную вещь.
      Третий вариант просто гибрид первого и второго варианта.
      Как пример.
      <type name="ZmbM_HikerSkinny_Yellow"> <cargo preset="foodHermit" /> <cargo preset="toolsHermit" /> <cargo chance="0.5"> <item name="TLRLight" chance="1.0" /> </cargo> <attachments preset="hatsFarm" /> <attachments preset="Headtorches" /> </type> ....У НПС есть шанс появления лута из пресета foodHermit и toolsHermit или оба два:) и шанс 0.5 TLRLight .
      И ещё раз, СПАВНЕР НЕ УМЕЕТ ИГРАТЬ В ТЭТРИС С ВАШИМ ЛУТОМ В ИНВЕНТАРЕ!
      Иногда когда используется второй вариант при обязательном спавне лута приходится менять порядок. Бывает что помогает.

      Насчёт расчёта шанса, можно считать что 1.0 это 100%, а 0.01 это один процент. Если кому так легче.

      Как то так....

      создано в соавторстве с @skadjna 
    • By Yahweh
      Миссия с динамичными постройками должна же находится в миссии?
      Вот мой файл компакт файл
      _fileName = "mission.sqf"; // Name of file to convert private ["_compact","_type"]; if ((preprocessFileLineNumbers _fileName) != "") then { outPutObjects = format[" Begin objects output for file: %1",_fileName]; outPutUnits = format[" Begin units output for file: %1",_fileName]; bigObjectArray = []; call compile preProcessFileLineNumbers _fileName; { //_pos = getPosASL _x; //if !(surfaceIsWater _pos) then {_pos = ASLToATL _pos;}; // less accurate than getPos _type = typeOf _x; _compact = []; _compact set [0,_type]; _compact set [1,(getPos _x)]; _compact set [2,(getDir _x)]; if (_type isKindOf "Man") then { outPutUnits = outPutUnits + ", " + str(_compact); } else { outPutObjects = outPutObjects + ", " + str(_compact); }; } count bigObjectArray; {deleteVehicle _x;} count bigObjectArray; outPutObjects = outPutObjects + format[" End objects output for file: %1 ",_fileName]; outPutUnits = outPutUnits + format[" End units output for file: %1 ",_fileName]; profileNamespace setVariable["objectsArrayOutput",outPutObjects]; profileNamespace setVariable["unitsArrayOutput",outPutUnits]; saveProfileNamespace; cutText ["[RDZ]: Сервер читает профиль армы - успешно.","PLAIN",3]; systemChat "[RDZ]: Сервер читает профиль армы - успешно."; } else { cutText ["[RDZ]: Файл некоректен.","PLAIN",3]; systemChat "[RDZ]: Файл некоректен."; bigObjectArray set [count bigObjectArray,_this];}; Пример миссии
       
      private ["_object","_objects"]; _objects = [ ["MAP_kr_t_asf2_asf2",[12961.76,5964.8501,0.15310472],-10.671323], ["MAP_asf2_7_100",[12930.017,5960.1909],77.587875], ["MAP_asf2_7_100",[12955.713,5963.6875,1.5258789e-005],-100.71323], ["MAP_asf2_7_100",[12917.463,5956.6279,6.1035156e-005],70.514389], ["MAP_asf2_7_100",[12905.515,5951.5269,-0.00010681152],63.253605], ["MAP_asf2_7_100",[12894.314,5945.0688,-1.5258789e-005],56.341312], ["MAP_asf2_1_1000",[12879.95,5935.3545,-1.5258789e-005],55.49305], ["MAP_asf2_7_100",[12869.803,5927.2026,4.5776367e-005],47.660374], ["MAP_asf2_1_1000",[12856.908,5915.7285,4.5776367e-005],47.868805], ["MAP_asf2_1_1000",[12844.306,5903.8462,0.00012207031],46.32745], ["MAP_asf2_7_100",[12835.914,5894.1909,4.5776367e-005],36.739189], ["MAP_asf2_7_100",[12829.659,5882.9961,4.5776367e-005],25.568272], ["MAP_asf2_1_1000",[12823.605,5867.1274,0],20.118275], ["MAP_asf2_0_2000",[12817.941,5850.8198,6.1035156e-005],18.996674], ["MAP_asf2_0_2000",[12812.266,5834.458,-1.5258789e-005],18.961143], ["MAP_asf2_0_2000",[12806.635,5818.0415,6.1035156e-005],18.447439], ["MAP_asf2_0_2000",[12801.018,5801.6597,-6.1035156e-005],18.669155], ["MAP_asf2_7_100",[12801.099,5801.8203,6.1035156e-005],201.17354], ["MAP_asf2_7_100",[12795.614,5789.9873,-3.0517578e-005],209.06213], ["MAP_asf2_0_2000",[12788.701,5779.2607,4.5776367e-005],-140.57358], ["MAP_asf2_0_2000",[12777.543,5765.9336,0.00010681152],-139.87437], ["MAP_asf2_0_2000",[12766.168,5752.8398,0],-139.17378], ["MAP_asf2_0_2000",[12754.739,5739.7109,-4.5776367e-005],-138.42322], ["MAP_asf2_7_100",[12743.185,5726.8022,0.00015258789],222.39578], ["MAP_asf2_7_100",[12733.965,5717.9482,0.00015258789],228.63528], ["MAP_asf2_0_2000",[12723.871,5710.1357,1.5258789e-005],-127.61487], ["MAP_asf2_0_2000",[12710.236,5699.7227,0.00018310547],-130.19102], ["MAP_asf2_22_50",[12684.475,5673.5396,-0.00024414063],28.383541], ["MAP_asf2_0_2000",[12675.876,5658.6016,-3.0517578e-005],29.571743], ["MAP_asf2_0_2000",[12667.312,5643.4717,0.00015258789],29.093756], ["MAP_asf2_0_2000",[12658.713,5628.5283,4.5776367e-005],29.571743], ["MAP_asf2_0_2000",[12650.103,5613.521,6.1035156e-005],29.571743], ["MAP_asf2_0_2000",[12641.524,5598.583,1.5258789e-005],29.571743], ["MAP_asf2_22_50",[12634.366,5580.7642,7.6293945e-005],10.591627], ["MAP_asf2_0_2000",[12630.915,5563.8789,-1.5258789e-005],11.410409], ["MAP_asf2_0_2000",[12629.36,5525.4233,-3.0517578e-005],-168.01964], ["MAP_asf2_22_50",[12629.826,5544.7173,-4.5776367e-005],-7.9248333], ["MAP_asf2_22_50",[12629.801,5544.8755,4.5776367e-005],170.0592], ["MAP_asf2_0_2000",[12618.268,5490.7397,0.00012207031],-144.99414], ["MAP_asf2_22_50",[12625.673,5508.4951,4.5776367e-005],191.4584], ["MAP_asf2_0_2000",[12608.246,5476.562,-0.00010681152],-144.99414], ["MAP_asf2_0_2000",[12598.226,5462.4521,-0.00019836426],-144.99414], ["MAP_asf2_22_50",[12581.991,5430.1714,-7.6293945e-005],8.0685301], ["MAP_asf2_0_2000",[12579.054,5413.1895,0.00010681152],9.6576042], ["MAP_asf2_22_50",[12579.195,5413.71,4.5776367e-005],-166.46851], ["MAP_asf2_22_50",[12571.106,5396.1196,-6.1035156e-005],-142.16188], ["MAP_asf2_0_2000",[12556.486,5383.4302,0],-120.19775], ["MAP_asf2_0_2000",[12541.514,5374.7935,4.5776367e-005],-120.19775], ["MAP_asf2_0_2000",[12526.5,5366.1313,-1.5258789e-005],-120.19775], ["MAP_asf2_0_2000",[12511.476,5357.4668,3.0517578e-005],-120.19775], ["MAP_asf2_22_50",[12481.611,5336.3604,-9.1552734e-005],38.767746], ["MAP_asf2_0_2000",[12471.125,5322.6348,0.00021362305],37.194469], ["MAP_asf2_0_2000",[12462.639,5308.0112,0.00010681152],30.022554], ["MAP_asf2_22_50",[12456.357,5289.7759,0.00010681152],7.7718935], ["MAP_asf2_22_50",[12456.412,5289.9404,4.5776367e-005],188.39738], ["MAP_asf2_0_2000",[12449.95,5271.7358,0],-151.13425], ["MAP_asf2_0_2000",[12441.505,5256.585,-1.5258789e-005],-150.38803], ["MAP_asf2_0_2000",[12432.807,5241.5347,1.5258789e-005],-150.38803], ["MAP_asf2_0_2000",[12424.162,5226.4478,1.5258789e-005],-150.38803], ["MAP_asf2_0_2000",[12415.536,5211.4189,-1.5258789e-005],-150.38803], ["MAP_asf2_0_2000",[12406.978,5196.5063,-1.5258789e-005],-150.38803], ["MAP_asf2_22_50",[12391.285,5163.417,1.5258789e-005],10.087194], ["MAP_asf2_0_2000",[12388.303,5146.2896,-1.5258789e-005],9.7330446], ["MAP_asf2_0_2000",[12386.209,5129.2861,4.5776367e-005],6.7555504], ["MAP_asf2_22_50",[12388.193,5110.2261,1.5258789e-005],-17.109587], ["MAP_asf2_0_2000",[12393.962,5093.9917,6.1035156e-005],-19.840439], ["MAP_asf2_6konec",[12396.037,5088.2959,-6.1035156e-005],-19.853428], ["MAP_t_pyrus2s",[12381.131,5078.8618,-1.2484815],25.367994], ["MAP_t_quercus2f",[12402.81,5104.4409,0.34566125],-90.784027], ["MAP_t_populus3s",[12391.747,5122.624,-3.0517578e-005],25.872578], ["MAP_t_pinusS2f",[12419.986,5046.5391,-0.00015258789],16.578789], ["MAP_t_populus3s",[12395.714,5150.7075,-3.0517578e-005],20.484444], ["MAP_t_populus3s",[12404.16,5178.7041,4.5776367e-005],20.484444], ["MAP_t_populus3s",[12437.676,5237.1641,-0.00010681152],20.484444], ["MAP_t_populus3s",[12453.387,5265.4536,0.12509425],31.977455], ["MAP_t_populus3s",[12463.763,5295.6968,0.078610808],-17.665117], ["MAP_t_populus3s",[12483.958,5327.5596,7.6293945e-005],20.484444], ["MAP_t_populus3s",[12507.187,5347.0508,-0.00019836426],20.484444], ["MAP_t_populus3s",[12534.619,5363.5791,-6.1035156e-005],20.484444], ["MAP_t_populus3s",[12572.636,5389.1646,-0.00021362305],20.484444], ["MAP_t_populus3s",[12585.167,5407.8857,1.5258789e-005],20.484444], ["MAP_t_populus3s",[12594.908,5443.7573,4.5776367e-005],20.484444], ["MAP_t_populus3s",[12628.753,5494.4067,0.00016784668],20.484444], ["MAP_t_populus3s",[12634.842,5518.8501,-0.00012207031],20.484444], ["MAP_t_populus3s",[12643.348,5583.519,-0.00015258789],20.484444], ["MAP_t_populus3s",[12692.736,5671.7485,3.0517578e-005],20.484444], ["MAP_t_populus3s",[12730.438,5705.6533,0.00016784668],20.484444], ["MAP_t_populus3s",[12768.995,5744.1948,4.5776367e-005],20.484444], ["MAP_t_populus3s",[12801.028,5784.0645,3.0517578e-005],20.484444], ["MAP_t_populus3s",[12814.593,5815.8687,3.0517578e-005],20.484444], ["MAP_t_populus3s",[12826.802,5850.1631,6.1035156e-005],20.484444], ["MAP_t_populus3s",[12840.684,5886.2412,-3.0517578e-005],20.484444], ["MAP_t_populus3s",[12870.388,5917.1426,0.00024414063],20.484444], ["MAP_t_populus3s",[12901.829,5940.2227,0.00021362305],20.484444], ["MAP_t_populus3s",[12931.166,5953.0938,-0.0001373291],20.484444], ["MAP_t_populus3s",[12955.889,5956.7402,6.1035156e-005],20.484444], ["MAP_t_populus3s",[12675.719,5643.7969,0.20396914],-44.703213], ["MAP_t_populus3s",[12654.184,5607.1416,0.15627691],-34.953941], ["MAP_t_populus3s",[12421.755,5209.5605,0.16859712],20.484444], ["MAP_t_populus3s",[12783.314,5762.4585,-3.0517578e-005],-20.693563], ["MAP_t_pyrus2s",[12379.632,5092.2349,0.20175517],-142.66637], ["MAP_t_pinusN2s",[12378.704,5107.3486,0.1038281],22.037758], ["MAP_t_fraxinus2W",[12413.718,5043.3687,3.0517578e-005],-9.7274151], ["ClutterCutter_EP1",[12838.171,5873.1226,6.1035156e-005],0], ["ClutterCutter_EP1",[12834.66,5892.0098,4.5776367e-005],0], ["ClutterCutter_small_EP1",[12841.059,5900.2749,9.1552734e-005],0], ["ClutterCutter_small_EP1",[12847.492,5907.1162,0.00010681152],0], ["ClutterCutter_small_EP1",[12854.642,5913.7441,9.1552734e-005],0], ["ClutterCutter_small_EP1",[12863.591,5922.187,-7.6293945e-005],0], ["ClutterCutter_small_EP1",[12872.363,5929.5669,3.0517578e-005],0], ["ClutterCutter_small_EP1",[12878.904,5933.5049,-3.0517578e-005],0], ["ClutterCutter_small_EP1",[12884.042,5938.0298,-1.5258789e-005],0], ["ClutterCutter_small_EP1",[12894.727,5945.7837,4.5776367e-005],0], ["ClutterCutter_small_EP1",[12906.163,5952.4795,0],0], ["ClutterCutter_small_EP1",[12923.688,5958.4336,9.1552734e-005],0] ]; { _object = (_x select 0) createVehicleLocal (_x select 1); _object setDir (_x select 2); _object setPos (_x select 1); _object allowDamage false; _object enableSimulation false; } count _objects; private ["_trader","_traders"]; _traders = [ ["Soldier_MG_PKM_PMC",[8264.5371,15495.855,3.7374172],56.102802], ["GUE_Woodlander3",[8266.668,15482.221,0.10264076],-141.76392], ["GUE_Woodlander2",[8254.9502,15509.599,0.23239325],-170.64685], ["GUE_Worker2",[8262.3057,15499.362,3.5365536],415.11279], ["Damsel3",[8262.2666,15499.865,0.28269568],-131.36397], ["Soldier_GL_PMC",[8243.2871,15505.409,-2.8610229e-005],134.79477], ["GUE_Villager3",[12421.655,5051.9307,0.71062249],6.034544], ["Dr_Annie_Baker_EP1",[12401.616,5045.4702,1.8259125],-35.831966], ["CIV_EuroWoman01_EP1",[12392.748,5053.9941,1.4861736],172.95543], ["US_Delta_Force_AR_EP1",[12427.486,5058.2739,3.513485],-78.654518], ["Graves",[12425.565,5054.9614,3.5064285],-38.965942], ["GUE_Commander",[12421.825,5058.9873,0.15634714],24.803446], ["Ins_Soldier_AR",[15507.673,13226.056,-1.8119812e-005],28.482628], ["Ins_Lopotev",[15503.225,13227.221,-0.00010824203],9.4583635], ["Ins_Woodlander3",[15518.751,13226.484,-7.4863434e-005],-20.681011], ["Ins_Worker2",[15473.157,13187.692,-9.1075897e-005],34.35025], ["Dr_Hladik_EP1",[15520.006,13250.66,0.26522979],-31.105717], ["Tanny_PMC",[5154.019,4855.4419,1.5258789e-005],-93.96814], ["Ins_Woodlander2",[16864.951,5273.5635,1.3620883]], ["TK_Special_Forces_EP1",[6773.3965,16950.34,1.351161],-31.881969], ["RUS_Commander",[5372.9751,16095.265,-0.00016623829],-113.97614], ["TK_Special_Forces_MG_EP1",[2128.2959,7807.7822,6.9963961],-99.433609], ["RUS_Soldier2",[10395.563,8270.3369,-4.5776367e-005],214.98192], ["Drake_Light",[15128.7,16420.936,0.075260207],134.33461], ["Damsel5",[15536.542,13224.494,0.92211318]], ["pook_Doc_Bell47",[8269.4893,15490.62,3.3378601e-006],-104.75245] ]; { _trader = createAgent [_x select 0,_x select 1,[],0,"CAN_COLLIDE"]; {_trader removeMagazine _x;} count magazines _trader; removeAllItems _trader; removeAllWeapons _trader; removeBackpack _trader; _trader switchMove ""; _trader setDir (_x select 2); _trader setVehicleInit "this disableAI 'ANIM'; this disableAI 'AUTOTARGET'; this disableAI 'FSM'; this disableAI 'MOVE'; this disableAI 'TARGET'; this setBehaviour 'CARELESS'; this forceSpeed 0; this allowDamage false;"; _trader setUnitAbility 0.6; _trader disableAI "ANIM"; _trader disableAI "AUTOTARGET"; _trader disableAI "FSM"; _trader disableAI "MOVE"; _trader disableAI "TARGET"; _trader setBehaviour "CARELESS"; _trader forceSpeed 0; _trader allowDamage false; _trader enableSimulation false; } count _traders; processInitCommands;  
      Обьекты появляются, но все ли верно, идет ли загрузка на определенный радиус? Как это проверить?
    • By Yahweh
      Здарова ребят, нужна помощь. В общем хочу напфовский mission.sqf перевести в этот формат 
       
      ["ObjectName",[setPosX,setPosY,setPosZ],setDir],   Есть ли программы или сайты, чтобы быстро перевести все? Без заморочек. А то исправляя одну за другой в ручную сильно надоедает, да и строк очень много. Заранее спасибо.
    • By SteelSoul
      Как отключить все нпс существа (кролики, собаки, козы, рыбы и т.п.)?
  • Our picks

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