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

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

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

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

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

Установил на сервер кастомный лут из этой темы: http://s-platoon.ru/index.php?/topic/4659-kastomnyi-lut/?hl=%D0%BA%D0%B0%D1%81%D1%82%D0%BE%D0%BC%D0%BD%D1%8B%D0%B9

В итоге ни лута, ни зомборей на сервере нет. Как решить проблемку?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Рекомендованные сообщения

  • 0

Вообщем, из-за моей невнимательности не работал ни спавн лута, на спавн зомбей, решил проблемку и все заработало)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах





  • 0

логи.. где мать вашу за ногу логи???

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0

логи.. где мать вашу за ногу логи???

Да вот в том, то и дело, что они чисты 

RPT:

 

 

=====================================================================
== C:\Arma_2\arma2oaserver.exe
== "arma2oaserver.exe"  -port=2302 "-config=instance_24_Napf\config.cfg" "-cfg=instance_24_Napf\basic.cfg" "-profiles=instance_24_Napf" -name=instance_24_Napf "-mod=@DayZ_Epoch;@DayZ_Epoch_Server;" -cpuCount=2 -exThreads=1 -maxmem=4096 -noCB
=====================================================================
Exe timestamp: 2016/05/28 21:47:23
Current time:  2016/07/24 03:33:22

Version 1.63.131129
Unsupported language Russian in stringtable
Unsupported language Russian in stringtable
Item STR_EQUIP_NAME_41 listed twice
Item STR_EQUIP_DESC_41 listed twice
Unsupported language Russian in stringtable
Unsupported language Russian in stringtable
Updating base class ->NonStrategic, by ca\config.bin/CfgVehicles/HouseBase/
Updating base class ->HouseBase, by ca\config.bin/CfgVehicles/Ruins/
Updating base class ->DestructionEffects, by ca\config.bin/CfgVehicles/House/DestructionEffects/
Updating base class ->FlagCarrierCore, by ca\ca_pmc\config.bin/CfgVehicles/FlagCarrier/
Updating base class ->VehicleMagazine, by ca\weapons\config.bin/CfgMagazines/14Rnd_FFAR/
Updating base class ->PistolCore, by ca\weapons\config.bin/cfgWeapons/Pistol/
Updating base class ->LauncherCore, by ca\weapons\config.bin/cfgWeapons/RocketPods/
Updating base class ->RocketPods, by ca\weapons\config.bin/cfgWeapons/FFARLauncher/
Updating base class ->Default, by ca\weapons\config.bin/cfgWeapons/ItemCore/
Updating base class ->Citizen, by ca\characters2\config.bin/CfgVehicles/Citizen1/
Updating base class ->SkodaBase, by ca\wheeled\config.bin/CfgVehicles/car_sedan/
Updating base class ->UH60_Base, by ca\air\config.bin/CfgVehicles/MH60S/
Updating base class ->House, by ca\misc3\config.bin/CfgVehicles/Land_Fire/
Updating base class ->House, by ca\misc3\config.bin/CfgVehicles/Land_A_tent/
Updating base class ->Camp_base, by ca\misc3\config.bin/CfgVehicles/ACamp/
Updating base class ->Car, by ca\wheeled2\lada\config.bin/CfgVehicles/Lada_base/
Updating base class StreetLamp_EP1->StreetLamp, by z\addons\dayz_code\config.bin/CfgNonAIVehicles/Land_Lamp_Small_EP1/
Updating base class StreetLamp_EP1->StreetLamp, by z\addons\dayz_code\config.bin/CfgNonAIVehicles/Land_Lamp_Street1_EP1/
Updating base class StreetLamp_EP1->StreetLamp, by z\addons\dayz_code\config.bin/CfgNonAIVehicles/Land_Lamp_Street2_EP1/
Updating base class StreetLamp_EP1->StreetLamp, by z\addons\dayz_code\config.bin/CfgNonAIVehicles/Land_Lampa_Ind_EP1/
Updating base class StreetLamp_EP1->StreetLamp, by z\addons\dayz_code\config.bin/CfgNonAIVehicles/Land_PowLines_Conc2L_EP1/
Updating base class StreetLamp_BaseMediumOrange->StreetLamp, by z\addons\dayz_code\config.bin/CfgNonAIVehicles/Land_lampa_sidl/
Updating base class StreetLamp_BaseMediumOrange->StreetLamp, by z\addons\dayz_code\config.bin/CfgNonAIVehicles/Land_lampa_sidl_2/
Updating base class StreetLamp_BaseMediumOrange->StreetLamp, by z\addons\dayz_code\config.bin/CfgNonAIVehicles/Land_lampa_sidl_3/
Updating base class StreetLamp_BaseWeakYellow->StreetLamp, by z\addons\dayz_code\config.bin/CfgNonAIVehicles/Land_lampa_ind/
Updating base class StreetLamp_BaseWeakYellow->StreetLamp, by z\addons\dayz_code\config.bin/CfgNonAIVehicles/Land_lampa_ind_zebr/
Updating base class RscStandardDisplay->, by z\addons\dayz_code\config.bin/RscDisplayStart/
Updating base class RscShortcutButton->RscShortcutButtonMain, by z\addons\dayz_code\config.bin/RscDisplayMain/controls/CA_Exit/
Updating base class RscText->, by z\addons\dayz_code\config.bin/RscTitles/Default/
Updating base class zZombie_Base->zZombie_new_Base, by z\addons\dayz_code\config.bin/CfgVehicles/z_villager1/
Updating base class zZombie_Base->zZombie_new_Base, by z\addons\dayz_code\config.bin/CfgVehicles/z_worker1/
Updating base class Soldier_Crew_PMC->Soldier_Bodyguard_M4_PMC, by z\addons\dayz_code\config.bin/CfgVehicles/SurvivorW2_DZ/
Updating base class HighCommand->Logic, by z\addons\dayz_code\config.bin/CfgVehicles/HighCommandSubordinate/
Updating base class ->ViewOptics, by z\addons\dayz_code\config.bin/CfgVehicles/Mi17_base/Turrets/MainTurret/ViewOptics/
Updating base class HouseBase->, by z\addons\dayz_code\config.bin/CfgVehicles/House/
Updating base class NonStrategic->BuiltItems, by z\addons\dayz_code\config.bin/CfgVehicles/Fort_RazorWire/
Updating base class MeleeHatchet->MeleeWeapon, by z\addons\dayz_code\config.bin/CfgWeapons/MeleeCrowbar/
Updating base class VehicleMagazine->CA_Magazine, by z\addons\dayz_code\config.bin/CfgMagazines/29Rnd_30mm_AGS30/
Updating base class VehicleMagazine->CA_Magazine, by z\addons\dayz_code\config.bin/CfgMagazines/48Rnd_40mm_MK19/
Updating base class 4000Rnd_762x51_M134->CA_Magazine, by z\addons\dayz_code\config.bin/CfgMagazines/2000Rnd_762x51_M134/
Updating base class VehicleMagazine->CA_Magazine, by z\addons\dayz_code\config.bin/CfgMagazines/100Rnd_127x99_M2/
Updating base class VehicleMagazine->CA_Magazine, by z\addons\dayz_code\config.bin/CfgMagazines/50Rnd_127x107_DSHKM/
Updating base class Hatchet_Swing->Melee_Swing, by z\addons\dayz_code\config.bin/CfgMagazines/crowbar_swing/
Updating base class CA_Magazine->Melee_Swing, by z\addons\dayz_code\config.bin/CfgMagazines/Hatchet_Swing/
Updating base class Land_HouseV_1I2->House, by zero_buildings\config.cpp/CfgVehicles/Land_HouseV_1L2/
Updating base class Land_HouseV_1I2->House, by zero_buildings\config.cpp/CfgVehicles/Land_HouseV_3I3/
Updating base class ->Plane, by ca\air2\mv22\config.bin/CfgVehicles/MV22/
Updating base class ViewOptics->, by ca\air2\uh1y\config.bin/CfgVehicles/UH1_Base/Turrets/MainTurret/ViewOptics/
Updating base class ->HouseBase, by ca\misc_e\config.bin/CfgVehicles/House/
Updating base class ->Land_CamoNet_EAST, by ca\misc_e\config.bin/CfgVehicles/Land_CamoNet_EAST_EP1/
Updating base class ->Land_CamoNetB_EAST, by ca\misc_e\config.bin/CfgVehicles/Land_CamoNetB_EAST_EP1/
Updating base class ->Sign_1L_Noentry, by ca\misc_e\config.bin/CfgVehicles/Sign_1L_Noentry_EP1/
Updating base class ->Sign_circle, by ca\misc_e\config.bin/CfgVehicles/Helper_Base_EP1/
Updating base class ->Rifle, by ca\weapons_baf\config.bin/cfgWeapons/BAF_AS50_scoped/
Updating base class ->Rifle, by ca\weapons_e\config.bin/cfgWeapons/M60A4_EP1/
Updating base class ->M249, by ca\weapons_e\config.bin/cfgWeapons/M249_EP1/
Updating base class ->M249, by ca\weapons_e\config.bin/cfgWeapons/M249_m145_EP1/
Updating base class ->m107, by ca\weapons_e\m107\config.bin/CfgWeapons/m107_TWS_EP1/
Updating base class ->M240, by ca\weapons_e\m240\config.bin/CfgWeapons/m240_scoped_EP1/
Updating base class ->V3S_Base, by ca\wheeled_e\v3s\config.bin/CfgVehicles/V3S_Base_EP1/
Updating base class ->V3S_Base_EP1, by ca\wheeled_e\v3s\config.bin/CfgVehicles/V3S_Refuel_TK_GUE_EP1/
Updating base class House->DZE_OpenHouse, by warehouse\config.bin/CfgVehicles/Land_Ind_Pec_03/
Updating base class ->C130J_base, by ca\air_e\config.bin/CfgVehicles/C130J_US_EP1/
Updating base class ->Helicopter, by ca\air_e\ah6j\config.bin/CfgVehicles/AH6_Base_EP1/
Updating base class ->Plane, by ca\air_e\an2\config.bin/CfgVehicles/An2_Base_EP1/
Updating base class ->CH47_base_EP1, by ca\air_e\ch47\config.bin/CfgVehicles/CH_47F_EP1/
Updating base class ViewOptics->, by ca\air_e\uh1h\config.bin/CfgVehicles/UH1H_base/Turrets/MainTurret/ViewOptics/
Updating base class ->Soldier_Base_PMC, by ca\characters_pmc\config.bin/cfgVehicles/Soldier_Crew_PMC/
Updating base class ->Soldier_Base_PMC, by ca\characters_pmc\config.bin/cfgVehicles/Soldier_TL_PMC/
Updating base class ->Soldier_Base_PMC, by ca\characters_pmc\config.bin/cfgVehicles/Soldier_Bodyguard_M4_PMC/
Updating base class ->Soldier_Base_PMC, by ca\characters_pmc\config.bin/cfgVehicles/Soldier_Bodyguard_AA12_PMC/
Updating base class ->BAF_Soldier_MTP, by ca\characters_w_baf\config.bin/CfgVehicles/BAF_Soldier_W/
Updating base class ->BAF_Soldier_L_MTP, by ca\characters_w_baf\config.bin/CfgVehicles/BAF_Soldier_L_W/
Updating base class ->BAF_Soldier_Officer_MTP, by ca\characters_w_baf\config.bin/CfgVehicles/BAF_Soldier_Officer_W/
Updating base class ->BAF_Soldier_SniperH_MTP, by ca\characters_w_baf\config.bin/CfgVehicles/BAF_Soldier_SniperH_W/
Updating base class ->M113Ambul_Base, by ca\tracked_e\m113\config.bin/CfgVehicles/M113Ambul_UN_EP1/
Updating base class ->M113_Base, by ca\tracked_e\m113\config.bin/CfgVehicles/M113_UN_EP1/
Updating base class ->M113Ambul_Base, by ca\tracked_e\m113\config.bin/CfgVehicles/M113Ambul_TK_EP1/
Updating base class ->M113_Base, by ca\tracked_e\m113\config.bin/CfgVehicles/M113_TK_EP1/
Updating base class ->Helicopter, by ca\air_d_baf\config.bin/CfgVehicles/BAF_Merlin_HC3_D/
Updating base class ReammoBox->Small_items, by corepatch\corepatch_additionalobjects\config.cpp/CfgVehicles/CardboardBox/
Updating base class CA_Magazine->4000Rnd_762x51_M134, by corepatch\corepatch_ccp_71142_cit_13602_25047\config.cpp/CfgMagazines/2000Rnd_762x51_M134/
 3:33:39 Initializing Steam server - Game Port: 2302, Steam Query Port: 2303
 3:33:41 Connected to Steam servers
 3:33:41 Warning Message: Cannot load mission
 3:33:42 Mission DayZ_Epoch_24.Napf: Number of roles (101) is different from 'description.ext::Header::maxPlayer' (100)
 3:33:43 Server error: Player without identity RU313_difficulty (id 805654339)
 3:33:43 Server error: Player without identity RU313_difficulty (id 805654339)
 3:33:43 Server error: Player without identity RU313_difficulty (id 805654339)
 3:33:43 Server error: Player without identity RU313_difficulty (id 805654339)
 3:33:43 Server error: Player without identity RU313_difficulty (id 805654339)
 3:33:43 Server error: Player without identity RU313_difficulty (id 805654339)
 3:33:43 Server error: Player without identity RU313_difficulty (id 805654339)
 3:33:43 Server error: Player without identity RU313_difficulty (id 805654339)
 3:33:43 Server error: Player without identity RU313_difficulty (id 805654339)
 3:33:43 Server error: Player without identity RU313_difficulty (id 805654339)
 3:33:43 Server error: Player without identity RU313_difficulty (id 805654339)
 3:33:43 Server error: Player without identity RU313_difficulty (id 805654339)
 3:33:43 Server error: Player without identity RU313_difficulty (id 805654339)
 3:33:43 Server error: Player without identity RU313_difficulty (id 805654339)
 3:33:43 Server error: Player without identity RU313_difficulty (id 805654339)
 3:33:43 Server error: Player without identity RU313_difficulty (id 805654339)
 3:33:43 Server error: Player without identity RU313_difficulty (id 805654339)
 3:33:48 Strange convex component93 in zero_buildings\models\mil_house_i.p3d:geometryView
 3:33:48 Strange convex component94 in zero_buildings\models\mil_house_i.p3d:geometryView
 3:33:48 Strange convex component95 in zero_buildings\models\mil_house_i.p3d:geometryView
 3:33:48 Strange convex component96 in zero_buildings\models\mil_house_i.p3d:geometryView
 3:33:48 Strange convex component99 in zero_buildings\models\mil_house_i.p3d:geometryView
 3:33:48 Strange convex component100 in zero_buildings\models\mil_house_i.p3d:geometryView
 3:33:48 Strange convex component101 in zero_buildings\models\mil_house_i.p3d:geometryView
 3:33:48 Strange convex component102 in zero_buildings\models\mil_house_i.p3d:geometryView
 3:33:48 Strange convex component103 in zero_buildings\models\mil_house_i.p3d:geometryView
 3:33:48 Strange convex component104 in zero_buildings\models\mil_house_i.p3d:geometryView
 3:33:48 Strange convex component105 in zero_buildings\models\mil_house_i.p3d:geometryView
 3:33:48 Strange convex component106 in zero_buildings\models\mil_house_i.p3d:geometryView
 3:33:48 Strange convex component107 in zero_buildings\models\mil_house_i.p3d:geometryView
 3:33:48 Strange convex component108 in zero_buildings\models\mil_house_i.p3d:geometryView
 3:33:48 Strange convex component109 in zero_buildings\models\mil_house_i.p3d:geometryView
 3:33:48 Strange convex component110 in zero_buildings\models\mil_house_i.p3d:geometryView
 3:33:48 Strange convex component111 in zero_buildings\models\mil_house_i.p3d:geometryView
 3:33:48 Strange convex component112 in zero_buildings\models\mil_house_i.p3d:geometryView
 3:33:48 Strange convex component113 in zero_buildings\models\mil_house_i.p3d:geometryView
 3:33:48 Strange convex component114 in zero_buildings\models\mil_house_i.p3d:geometryView
 3:33:48 Strange convex component115 in zero_buildings\models\mil_house_i.p3d:geometryView
 3:33:48 Strange convex component116 in zero_buildings\models\mil_house_i.p3d:geometryView
 3:33:48 Strange convex component117 in zero_buildings\models\mil_house_i.p3d:geometryView
 3:33:48 Strange convex component118 in zero_buildings\models\mil_house_i.p3d:geometryView
 3:33:48 Strange convex component119 in zero_buildings\models\mil_house_i.p3d:geometryView
 3:33:48 Strange convex component120 in zero_buildings\models\mil_house_i.p3d:geometryView
 3:33:48 Strange convex component121 in zero_buildings\models\mil_house_i.p3d:geometryView
 3:33:48 Strange convex component122 in zero_buildings\models\mil_house_i.p3d:geometryView
 3:33:48 Strange convex component123 in zero_buildings\models\mil_house_i.p3d:geometryView
 3:33:48 Strange convex component124 in zero_buildings\models\mil_house_i.p3d:geometryView
 3:33:48 Strange convex component125 in zero_buildings\models\mil_house_i.p3d:geometryView
 3:33:48 Strange convex component126 in zero_buildings\models\mil_house_i.p3d:geometryView
 3:33:48 Strange convex component127 in zero_buildings\models\mil_house_i.p3d:geometryView
 3:33:48 Strange convex component128 in zero_buildings\models\mil_house_i.p3d:geometryView
 3:33:48 Strange convex component129 in zero_buildings\models\mil_house_i.p3d:geometryView
 3:33:48 Strange convex component130 in zero_buildings\models\mil_house_i.p3d:geometryView
 3:33:48 Strange convex component131 in zero_buildings\models\mil_house_i.p3d:geometryView
 3:33:48 Strange convex component132 in zero_buildings\models\mil_house_i.p3d:geometryView
 3:33:48 Strange convex component133 in zero_buildings\models\mil_house_i.p3d:geometryView
 3:33:48 Strange convex component134 in zero_buildings\models\mil_house_i.p3d:geometryView
 3:33:51 Strange convex component81 in zero_buildings\models\housev_3i3_i.p3d:geometryFire
 3:33:53 ca\misc\houpacka.p3d: house, config class missing
 3:33:53 ca\misc\houpacka.p3d: house, config class missing
 3:33:53 ca\misc\houpacka.p3d: house, config class missing
 3:33:59 "DayZ Epoch: PRELOAD Functions\init [[<No group>:0 (FunctionsManager)],any]"
 3:33:59 "DayZ Epoch: MPframework inited"
 3:34:01 ca\misc\houpacka.p3d: house, config class missing
 3:34:04 ca\misc\houpacka.p3d: house, config class missing
 3:34:08 ca\misc\houpacka.p3d: house, config class missing
 3:34:08 ca\misc\houpacka.p3d: house, config class missing
 3:34:11 Strange convex component288 in warehouse\models\warehouse.p3d:geometry
 3:34:11 Strange convex component289 in warehouse\models\warehouse.p3d:geometry
 3:34:11 Strange convex component290 in warehouse\models\warehouse.p3d:geometry
 3:34:11 Strange convex component291 in warehouse\models\warehouse.p3d:geometry
 3:34:11 Strange convex component292 in warehouse\models\warehouse.p3d:geometry
 3:34:11 Strange convex component293 in warehouse\models\warehouse.p3d:geometry
 3:34:11 Strange convex component294 in warehouse\models\warehouse.p3d:geometry
 3:34:11 Strange convex component295 in warehouse\models\warehouse.p3d:geometry
 3:34:11 Strange convex component296 in warehouse\models\warehouse.p3d:geometry
 3:34:11 Strange convex component297 in warehouse\models\warehouse.p3d:geometry
 3:34:11 Strange convex component298 in warehouse\models\warehouse.p3d:geometry
 3:34:11 Strange convex component299 in warehouse\models\warehouse.p3d:geometry
 3:34:11 Strange convex component300 in warehouse\models\warehouse.p3d:geometry
 3:34:11 Strange convex component301 in warehouse\models\warehouse.p3d:geometry
 3:34:11 Strange convex component302 in warehouse\models\warehouse.p3d:geometry
 3:34:11 Strange convex component303 in warehouse\models\warehouse.p3d:geometry
 3:34:11 Strange convex component304 in warehouse\models\warehouse.p3d:geometry
 3:34:11 Strange convex component305 in warehouse\models\warehouse.p3d:geometry
 3:34:11 Strange convex component306 in warehouse\models\warehouse.p3d:geometry
 3:34:11 Strange convex component307 in warehouse\models\warehouse.p3d:geometry
 3:34:11 Strange convex component308 in warehouse\models\warehouse.p3d:geometry
 3:34:11 Strange convex component309 in warehouse\models\warehouse.p3d:geometry
 3:34:11 Strange convex component310 in warehouse\models\warehouse.p3d:geometry
 3:34:11 Strange convex component311 in warehouse\models\warehouse.p3d:geometry
 3:34:11 Strange convex component312 in warehouse\models\warehouse.p3d:geometry
 3:34:11 Strange convex component313 in warehouse\models\warehouse.p3d:geometry
 3:34:11 Strange convex component314 in warehouse\models\warehouse.p3d:geometry
 3:34:11 Strange convex component315 in warehouse\models\warehouse.p3d:geometry
 3:34:11 Strange convex component316 in warehouse\models\warehouse.p3d:geometry
 3:34:11 Strange convex component317 in warehouse\models\warehouse.p3d:geometry
 3:34:11 Strange convex component252 in warehouse\models\warehouse.p3d:geometryFire
 3:34:11 Strange convex component253 in warehouse\models\warehouse.p3d:geometryFire
 3:34:11 Strange convex component254 in warehouse\models\warehouse.p3d:geometryFire
 3:34:11 Strange convex component255 in warehouse\models\warehouse.p3d:geometryFire
 3:34:11 Strange convex component256 in warehouse\models\warehouse.p3d:geometryFire
 3:34:11 Strange convex component257 in warehouse\models\warehouse.p3d:geometryFire
 3:34:11 Strange convex component258 in warehouse\models\warehouse.p3d:geometryFire
 3:34:11 Strange convex component259 in warehouse\models\warehouse.p3d:geometryFire
 3:34:11 Strange convex component260 in warehouse\models\warehouse.p3d:geometryFire
 3:34:11 Strange convex component261 in warehouse\models\warehouse.p3d:geometryFire
 3:34:11 Strange convex component262 in warehouse\models\warehouse.p3d:geometryFire
 3:34:11 Strange convex component263 in warehouse\models\warehouse.p3d:geometryFire
 3:34:11 Strange convex component264 in warehouse\models\warehouse.p3d:geometryFire
 3:34:11 Strange convex component265 in warehouse\models\warehouse.p3d:geometryFire
 3:34:11 Strange convex component266 in warehouse\models\warehouse.p3d:geometryFire
 3:34:11 Strange convex component267 in warehouse\models\warehouse.p3d:geometryFire
 3:34:11 Strange convex component268 in warehouse\models\warehouse.p3d:geometryFire
 3:34:11 Strange convex component269 in warehouse\models\warehouse.p3d:geometryFire
 3:34:11 Strange convex component270 in warehouse\models\warehouse.p3d:geometryFire
 3:34:11 Strange convex component271 in warehouse\models\warehouse.p3d:geometryFire
 3:34:11 Strange convex component272 in warehouse\models\warehouse.p3d:geometryFire
 3:34:11 Strange convex component273 in warehouse\models\warehouse.p3d:geometryFire
 3:34:11 Strange convex component274 in warehouse\models\warehouse.p3d:geometryFire
 3:34:11 Strange convex component275 in warehouse\models\warehouse.p3d:geometryFire
 3:34:11 Strange convex component276 in warehouse\models\warehouse.p3d:geometryFire
 3:34:11 Strange convex component277 in warehouse\models\warehouse.p3d:geometryFire
 3:34:11 Strange convex component278 in warehouse\models\warehouse.p3d:geometryFire
 3:34:11 Strange convex component279 in warehouse\models\warehouse.p3d:geometryFire
 3:34:11 Strange convex component280 in warehouse\models\warehouse.p3d:geometryFire
 3:34:11 Strange convex component281 in warehouse\models\warehouse.p3d:geometryFire
 3:34:11 Strange convex component249 in warehouse\models\warehouse.p3d:geometryView
 3:34:11 Strange convex component250 in warehouse\models\warehouse.p3d:geometryView
 3:34:11 Strange convex component251 in warehouse\models\warehouse.p3d:geometryView
 3:34:11 Strange convex component252 in warehouse\models\warehouse.p3d:geometryView
 3:34:11 Strange convex component253 in warehouse\models\warehouse.p3d:geometryView
 3:34:11 Strange convex component254 in warehouse\models\warehouse.p3d:geometryView
 3:34:11 Strange convex component255 in warehouse\models\warehouse.p3d:geometryView
 3:34:11 Strange convex component256 in warehouse\models\warehouse.p3d:geometryView
 3:34:11 Strange convex component257 in warehouse\models\warehouse.p3d:geometryView
 3:34:11 Strange convex component258 in warehouse\models\warehouse.p3d:geometryView
 3:34:11 Strange convex component259 in warehouse\models\warehouse.p3d:geometryView
 3:34:11 Strange convex component260 in warehouse\models\warehouse.p3d:geometryView
 3:34:11 Strange convex component261 in warehouse\models\warehouse.p3d:geometryView
 3:34:11 Strange convex component262 in warehouse\models\warehouse.p3d:geometryView
 3:34:11 Strange convex component263 in warehouse\models\warehouse.p3d:geometryView
 3:34:11 Strange convex component264 in warehouse\models\warehouse.p3d:geometryView
 3:34:11 Strange convex component265 in warehouse\models\warehouse.p3d:geometryView
 3:34:11 Strange convex component266 in warehouse\models\warehouse.p3d:geometryView
 3:34:11 Strange convex component267 in warehouse\models\warehouse.p3d:geometryView
 3:34:11 Strange convex component268 in warehouse\models\warehouse.p3d:geometryView
 3:34:11 Strange convex component269 in warehouse\models\warehouse.p3d:geometryView
 3:34:11 Strange convex component270 in warehouse\models\warehouse.p3d:geometryView
 3:34:11 Strange convex component271 in warehouse\models\warehouse.p3d:geometryView
 3:34:11 Strange convex component272 in warehouse\models\warehouse.p3d:geometryView
 3:34:11 Strange convex component273 in warehouse\models\warehouse.p3d:geometryView
 3:34:11 Strange convex component274 in warehouse\models\warehouse.p3d:geometryView
 3:34:11 Strange convex component275 in warehouse\models\warehouse.p3d:geometryView
 3:34:11 Strange convex component276 in warehouse\models\warehouse.p3d:geometryView
 3:34:11 Strange convex component277 in warehouse\models\warehouse.p3d:geometryView
 3:34:11 Strange convex component278 in warehouse\models\warehouse.p3d:geometryView
 3:34:13 ca\misc3\wf\wf_depot.p3d: house, config class missing
 3:34:13 ca\misc3\wf\wf_depot.p3d: house, config class missing
 3:34:14 ca\misc3\wf\wf_depot.p3d: house, config class missing
 3:34:20 ca\misc\houpacka.p3d: house, config class missing
 3:34:20 ca\misc\houpacka.p3d: house, config class missing
 3:34:23 ca\misc\houpacka.p3d: house, config class missing
 3:34:23 ca\misc\houpacka.p3d: house, config class missing
 3:34:24 ca\misc\houpacka.p3d: house, config class missing
 3:34:24 ca\misc\houpacka.p3d: house, config class missing
 3:34:31 ca\misc\houpacka.p3d: house, config class missing
 3:34:34 ca\structures\house\housev\housev_2l_dam_ruins.p3d: house, config class missing
 3:34:36 "[АнтиХак] - [Модуль Запуска]: Ожидаю запуск BIS_fnc_init..."
 3:34:36 "[АнтиХак] - [Модуль Запуска]: BIS_fnc_init загружен - АнтиХак ЗАПУСКАЕТСЯ...!"
 3:34:36 "[АнтиХак] - [Версия]: Основано на оригинале: 24012015IAHAT342 | Beta Patch сервера: ["ArmA 2 OA","ArmA2OA",163,131129] | Карта: Napf | Инстанция: 24 | Миссия: DayZ_Epoch_24"
 3:34:36 "[АнтиХак] - [Версия]: Разработчик: by TheFirstNoob | Дата выпуска: 08 марта 2015 | Версия: 3.1 FREE | Основано на базе: AHAT342"
 3:34:36 "[АнтиХак] - [RandVar]: Выполняется генерация: {
_arr = ["o","a","f","I","9","f","U","z","o","R","N","P","v","Q","Y","d","E","R","9","W","4","q","7","e","6","F","V","2","4","g"];
_gen = "p";
for "_i" from 1 to 7 do {_gen = _gen + (_arr select (random ((count _arr)-1)));};
_num = str(round(random 999998));
_gen = _gen + '_' + _num;
_gen
}..."
 3:34:36 "[АнтиХак] - [RandVar]: _randvar1: pfqdQRd9_547251"
 3:34:36 "[АнтиХак] - [RandVar]: _randvar2: pVgQPoof_472114"
 3:34:36 "[АнтиХак] - [RandVar]: _randvar3: p49fo6fa_867836"
 3:34:36 "[АнтиХак] - [RandVar]: _randvar4: pzz7WNvo_614238"
 3:34:36 "[АнтиХак] - [RandVar]: _randvar5: pzqIE7vP_543163"
 3:34:36 "[АнтиХак] - [RandVar]: _randvar6: paQdEIao_184575"
 3:34:36 "[АнтиХак] - [RandVar]: _randvar8: po46Pe9f_387651"
 3:34:36 "[АнтиХак] - [RandVar]: _randvar11: pv24Qvdf_816879"
 3:34:36 "[АнтиХак] - [RandVar]: _randvar12: peoENfEP_323147"
 3:34:36 "[АнтиХак] - [RandVar]: _randvar13: pzzWa2W9_189835"
 3:34:36 "[АнтиХак] - [RandVar]: _randvar19: pW94fPeR_253915"
 3:34:36 "[АнтиХак] - [RandVar]: _randvar20: pQ999zQR_902040"
 3:34:36 "[АнтиХак] - [RandVar]: _randvar21: pgqfV4Q4_941643"
 3:34:36 "[АнтиХак] - [RandVar]: _randvar27: pdP4ez2R_347024"
 3:34:36 "[АнтиХак] - [RandVar]: _randvar26: pR4dPQIV_880444"
 3:34:36 "[АнтиХак] - [RandVar]: _randvar25: pW4W6EVV_588229"
 3:34:36 "[АнтиХак] - [RandVar]: _randvar28: pz24Y4RE_171850"
 3:34:36 "[АнтиХак] - [RandVar]: _randvar29: pRY9a744_234025"
 3:34:36 "[АнтиХак] - [RandVar]: _randvar30: pfWI6e4d_399811"
 3:34:36 "[АнтиХак] - [RandVar]: _randvar31: pEVf64PR_312700"
 3:34:36 "[АнтиХак] - [RandVar]: _randvar32: pR999fNI_505705"
 3:34:36 "[АнтиХак] - [RandVar]: _randvar33: pNE2U4F2_147467"
 3:34:36 "[АнтиХак] - [RandVar]: _randvar34: pF9Y9ged_663331"
 3:34:36 "[АнтиХак] - [RandVar]: _randvar35: pfdU9FYR_231458"
 3:34:36 "[АнтиХак] - [RandVar]: _randvar36: pP9doafo_153907"
 3:34:36 "[АнтиХак] - [Remark]: p7fR2zRo_102731"
 3:34:36 "[АнтиХак] - [AHpos]: pYd99Ya4_241074"
 3:34:36 "[АнтиХак] - [LoadedCheckPos]: pY7YaEWP_219261"
 3:34:36 "[АнтиХак] - [LoadedCheckTime]: pVIUR4Qf_45896"
 3:34:36 "[АнтиХак] - [MenuChecksRunning]: pVfffq94_833947"
 3:34:36 "[АнтиХак] - [oneachframe]: p9eWFEo9_421856"
 3:34:36 "[АнтиХак] - [bigpubvar]: pvPvofvg_869613"
 3:34:36 "[АнтиХак] - [RandVar]: _randvar10: PVAHR_0_rtlmunq_829864"
 3:34:36 "[АнтиХак] - [Модуль Запуска]: АнтиХак ЗАГРУЖЕН!"
 3:34:36 "[АнтиХак] - [Модуль Запуска]: СОЗДАЕМ Админ Меню"
 3:34:36 "[АнтиХак] - [Модуль Запуска]: ДОБАВЛЯЕМ Public Variable Event Handlers"
 3:34:36 "[АнтиХак] - [Модуль Запуска]: АнтиХак ПОЛНОСТЬЮ ЗАГРУЖЕН И ФУНКЦИОНИРУЕТ!"
 3:34:39 "[АнтиХак] - [Модуль Запуска]: АнтиХак уже запущен!"
 3:34:39 Warning: z\addons\dayz_communityassets\models\compass.p3d:0 Error while trying to generate ST for points: 863, 853, 852
 3:34:40 "HIVE: Starting"
 3:34:40 "HIVE: trying to get objects"
 3:34:41 "HIVE: found 53 objects"
 3:34:41 "HIVE: Commence Object Streaming..."
 3:34:41 "HIVE: got 0 Epoch Objects and 53 Vehicles"
 3:34:42 "[АнтиХак] - [УГРОЗА СЕРВЕРУ]: remExServer модифицирован: {}"
 3:34:42 No owner
 3:34:43 UH1Y_DZE: ObsTurret - unknown animation source ObsTurret
 3:34:43 UH1Y_DZE: ObsGun - unknown animation source ObsGun
 3:34:44 "[АнтиХак] - [ЛОГ ИГРОКА]: xxx(xxx) - 0ч 00мин"
 3:34:44 No owner
 3:34:45 ca\buildings2\a_advertisingcolumn\a_advertcolumn.p3d: No geometry and no visual shape
 3:34:45 ca\buildings2\a_advertisingcolumn\a_advertcolumn.p3d: No geometry and no visual shape
 3:34:45 ca\buildings2\a_advertisingcolumn\a_advertcolumn.p3d: No geometry and no visual shape
 3:34:45 ca\buildings2\a_advertisingcolumn\a_advertcolumn.p3d: No geometry and no visual shape
 3:34:46 "HIVE: Vehicle Spawn limit reached!"
 3:34:46 "HIVE: Spawning # of Debris: 100"
 3:34:46 "HIVE: Spawning # of Ammo Boxes: 3"
 3:34:46 "HIVE: Spawning # of Veins: 50"
 3:34:46 "Total Number of spawn locations 0"
 3:34:46 "EPOCH EVENTS INIT"
 3:34:55 "TIME SYNC: Local Time set to [2013,8,3,13,34]"
 3:34:56 String str_init_take not found
 3:34:57 String str_init_take not found
 3:35:00 "[АнтиХак] - [SafeZone]: xxx(xxx) -    Покинул торговую зону @000204"
 3:38:06 "CLEANUP: INITIALIZING CLEANUP SCRIPT"
 3:41:05 "[АнтиХак] Игрок присоединился: ["xxx","xxx"]"
 3:41:05 "[АнтиХак] - [ЛОГ ИГРОКА]:xxx(xxx) - 0ч 07мин | ******АДМИНИСТРАЦИЯ******"
 3:41:22 String str_init_take not found
 3:41:28 "[АнтиХак] - [Первый запрос Администрации]: [1234,B 1-1-C:1 (xxx) REMOTE,"xxx"]"
 3:41:28 "[АнтиХак] - [Администрация]: ******АДМИНИСТРАЦИЯ-ВХОД******: xxx(xxx): xxx(xxx)"
 3:41:28 "[АнтиХак] - [fnc_AdminReqProceed Обращение]: [1234,B 1-1-C:1 (xxx) REMOTE,"xxx"]"
 3:41:31 "[АнтиХак] - [SafeZone]: xxx(xxx) -    Покинул торговую зону @999204"
 3:41:56 String str_init_take not found
 3:42:38 Warning: looped for animation: ca\anims\characters\data\anim\sdr\mov\erc\stp\non\non\amovpercmstpsnonwnondnon_amovpercmstpsraswpstdnon_end.rtm differs (looped now 0)! MoveName: amovpercmstpsnonwnondnon_amovpercmstpsraswpstdnon_end
 3:43:06 "TIME SYNC: Local Time set to [2013,8,3,13,43]"
 3:43:08 NetServer::SendMsg: cannot find channel #1557098531, users.card=1
 3:43:08 NetServer: users.get failed when sending to 1557098531
 3:43:08 Message not sent - error 0, message ID = ffffffff, to 1557098531 (DebonaiR)
 3:43:08 "[АнтиХак] - [Выход с сервера]: _uid: xxx | _name: xxx"
 3:43:08 "get: xxx (xxx), sent: xxx (xxx)"
 3:43:08 "DISCONNECT: xxx (xxx) Object: B 1-1-C:1 (DebonaiR) REMOTE, _characterID: 40 at loc [4808.04,14373.5,0.00141144]"
 3:43:08 Client: Remote object 5:0 not found
 3:43:08 Client: Remote object 5:5 not found
 3:48:06 "TIME SYNC: Local Time set to [2013,8,3,13,48]"
 3:53:06 "TIME SYNC: Local Time set to [2013,8,3,13,53]"
 3:53:06 "CLEANUP: Deleted 1 Animals out of 1"

 

 

Изменено пользователем mafan9 (история изменений)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0

Да боже, как можно было кастом лут то запороть?
Как ставил?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0

Да боже, как можно было кастом лут то запороть?

Как ставил?

Да, меня тоже это не перестаёт удивлять  :laugh:

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0

Да боже, как можно было кастом лут то запороть?

Как ставил?

По инструкции, ни чего с ним не делал, а он не робит

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0

купил бы проще сборку чем каждый скрипт с запарывать)))))

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0

купил бы проще сборку чем каждый скрипт с запарывать)))))

Интереснее самому делать, а лут я не запарывал, я просто поставил и он не робит

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0

тогда отдельную ветку для твоего на форуме интереса проще сделать)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0

Есть у меня некие подозрения на Headless Client

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас

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

    • Автор: paranoyk
      ©(краткая ода как я выносил себе мозг с помощью лута)
      Настроить лут на сервере постарались сразу после релиза ибо многое "не там и не тут"....
      Первая фигура Марлезонского балета.
       
         Файлов которые отвечают за лут прямым и коственным образом,судя по всему мнго,но настройки которые нам доступны сосредоточены в папке mpmissions\dayzOffline.chernarusplus  и mpmissions\dayzOffline.chernarusplus\db
       
      cfglimitsdefinition.xml -файл в котором обозначены категории лута, тэги спавна, классы объектов для спавна и зоны спавна.(если я правельно понял,в информатике это называеться "заданием классов" или как то так). Даллее с чем я экспериментировал.
       
              <category name="......."/> Спавнящийся лут имеет (а может и не иметь) определенную категорию и только одну. Сюда можно вписать свою категорию и давать её предметам.(в файле тайпс)
         Тэги...  в ванили
              <tag name="floor"/>
              <tag name="shelves"/>
              <tag name="ground"/>
      Лут может иметь или не иметь, для более точного "определения" что и где должно спавнится. Можно вводить свои и потом в mapgroupproto.xml вставлять в нужном мест. Если нет-спавнятся везде, если для лута есть тэг, только в тех местах где тэг присутствует .("пол"," полка","земля"-всего лишь для удобства и понимания, можно назвать тэг хоть "мистер питкин", без кирилицы ебстестенно, вводится в другом файле о чём ниже)
         Классы объектов для спавна
              <usage name="......."/> Стационарные объекты имеют в своём обозначении один или несколько таких классов имён. Легко можно прописать свой и дать его категории стационарных объектов или объекту. (правда уникальных объектов на карте-раз,два и обчёлся). Опять таки используется в тайпс. Лут может иметь или нет. (насчёт нескольких-не проверял, но не советую).
      Прописав свой к примеру "MyBox"....и потом в mapgroupproto.xml у военных контейнеров убрав все классы и оставив только этот, в нём будут спавниться только те предметы которым вы в "тайпс" пропишите данную категорию. Так же есть на карте СЕ в виде пятен, минус в том что нанесены они небрежно, результат-спавн к примеру медпредметов в машинах и киосках больницы Черногорска. Любой объект попавший в ореол получит спавн только обозначенного ореола. (после патча 1.20 стало проблематично сразу ввести новый класс, мгновенно ломается вся экономика. Приходится несколько раз пробовать с разными именами)
         Зоны спавна
              <value name="....."/> Тиры и иже с ними. Глобальные зоны на карте для определения спавна. Лут может иметь несколько или ни одного. Будет спавнится только там, если не оговорено особые условия. см опис. тайпс) И как они нанесены на карту-опять таки СЕ редактор... (картинка устаревшая).

      Они могут накладыватся друг на друга. Так же их можно редактировать в редакторе СЕ.
       
      mapgrouppos.xml - Файл в котором определяться координаты точки "карты" лута для каждого обьекта.(мдя,чего я счас сморозил то)
      То есть указывает спавнеру "в этой точке будет спанится лут по "сетке" из файла mapgroupproto " и если там ЕСТЬ описание. Это не место спавна лута конкретно, а место спавна массива координат по которым спавнится лут. Проще всего это понять если у вас есть нормальный маппинг со спавном....и убрать маппинг-лут будет спавнится в старых местах и даже висеть в воздухе. (получить все точки для "спавна" можно с помощью команд в init )
      Пример:
          <group name="Land_Misc_FeedShack" pos="80.255409 113.792282 4422.158691" rpy="-0.000000 0.000000 -70.013718" a="160.013718" />
       
      Land_Misc_FeedShack - название обьекта из файла mapgroupproto ,его ID...Можно написать хоть "Мой генимальный спавн". И спавнер если найдёт в mapgroupproto объект с таким названием-заспавнит лут по сетке. (вот ещё способ как модифицировать спавн лута).
      pos="80.255409 113.792282 4422.158691" rpy="-0.000000 0.000000 -70.013718" - координаты центра "карты" лута для этого обьекта, совпадают с координатами обьекта
      формат записи X-Y-Z завал,наклон,поворот.
      a="........" Вектор поворота карты лута обьекта относительно самого обьекта.
      Как он определяется - экспериментально выяснил в принципе....(угол поворота объекта - 90)х(-1)...как то там ещё можно возиться переводить с +360, но я просто пишу полученное значение и всё работает.
      Да-да,именно тут прописывается что в вашей точке появляется лут и если он имеет прописанную сетку лута в mapgroupproto .(имееться ввиду в оффлайн редакторе поставив "француз"-тут вы пропишите в него лут,как прописать в он-лайн сам обьект-другая история под названием "возврат водяных колонок"). Сам объект НЕ НУЖЕН даже. Он всего лишь декорация карты и для спавна ка видите НЕ НУЖЕН.
       
      mapgroupproto.xml - Файл в котором прописана "карта" лута для объекта. Вначале идёт описание для "дефолта" ,то есть деревьев и растений,а также камней! (тут я не понял,но ...это нам и не нужно,яблоки падают и хорошо..)
      Пример:
              <group name="Land_Tisy_Barracks"> - название обьекта, ID ИЛИ придуманный вами обьект.
                      <usage name="Military" /> - класс имени обьекта,может быть не один. (а если вы ввели свои-писать именно сюда)
                      <container name="lootFloor" lootmax="8"> - имя "контейнера" и максимальное количество лута которое может там появиться.(количество лута может быть и не обозначено,но если есть-никогда не будет больше чем количество точек спавна что ниже. НЕ РАБОТАЕТ- можно даже не мучатся, есть подозрения что количество лута ни как не изменить именно этой переменной для обьекта. )
                              <category name="tools" /> - класс лута который будет спавниться в данном "контейнере" ,может быть не один.                      
                             <tag name="ground" /> - тэг лута который будет спавнится.(может быть несколько). Спавн лута с этим тэгом. Если у лута нет тэга-спавн ТОЖЕ.
                              <point pos="-2.429444 -3.799637 3.698242" range="1.199951" height="2.000000" flags="32" /> - точка спавна лута, расстояние по X-Y-Z от центральной точки "карты лута" (где она,можно выяснить только эксперементально для каждого обьекта или в редакторе или...с помощью мода).
      range="......." радиус спавна от заданной точки, то есть в этом "круге" будет спавниться лут.(не точно,если обьект имеет большие линейные размеры-не заспанится)
      height="........."-высота объекта спавна,как я понял....(не точно,если обьект имеет большие линейные размеры-не заспавнится)
      flags="32" -  указание что спавн лута будет на уровне земли игнорируя координаты по высоте. Грубо говоря к примеру если спавн вокруг елки рождественской -весь лут будет лежать на земле. Вокруг ёлки. Или округ "воображаемой точки", если надо.
      ниже всё тоже самое, но для своего "контейнера" данном здании.То есть обьект может иметь несколько контейнеров.
      </container> <container name="lootshelves" lootmax="8"> <category name="tools" /> <category name="containers" /> <category name="clothes" /> <tag name="shelves" /> <point pos="0.968751 -3.434326 7.507324" range="0.581250" height="0.532341" /> .................................................. </container> <container name="lootweapons" lootmax="8"> <category name="weapons" /> <category name="explosives" /> <point pos="3.985354 -3.434326 6.267576" range="0.478125" height="0.533684" /> ................................................... </container> </group>  
      cfgrandompresets.xml - Файл в котором мы найдём так называемые "грузы"-группы предметов спавнящихся в предметах,зомби и тому подобное....(судя по всему сделано для удобства)
              <cargo chance="0.35" name="foodVillage"> - шанс появления  и его название.
      Тут маленькое отступление. Поначалу я тоже думал что это какие то проценты, да так легче воспринимать. Но таки и немного не так. Просто опишу как спавнер "думает".
      "Обьект имеет спавна внутри, получаем псевдослучайное число от 0 до 1. Сравниваем. Псевдочисло больше-нет спавна, иначе-спавн есть". Будем привычно называть его "шанс" и обозначим его как проценты, но ещё раз это НЕ ПРОЦЕНТЫ в прямом смысле.
                      <item name="SodaCan_Cola" chance="0.11" /> - название (ID) предмета и его шанс выпадения
      .......................................................................
                      <item name="SpaghettiCan" chance="0.11" />
                      <item name="BakedBeansCan" chance="0.11" />
              </cargo>
       То есть "груз" foodVillage может выпасть в 35% случаев, если условее истинно,то может выпасть предмет из списка с вероятностью которая задана для предмета или ,если ни один предмет не прошёл-то опять таки ничего не выпадет. Выпадает только один предмет из списка, так и не выяснил,влияет ли очерёдность списка предметов или нет. То есть возможностей настройки тут-море,кто хорошо разбираеться в теорией вероятности поймёт данный раздел влёгкую.
      Дополненно. Судя по всему спавнер не перебирает все предметы,а выбирает "случайно" какой тоодин и проверяет его.
       
      Можно создавать свои собственные "миксы"....к примеру.
      </cargo> <cargo chance="1.0" name="mixOptics"> <item name="PUScopeOptic" chance="0.33" /> <item name="PSO1Optic" chance="0.33" /> <item name="HuntingOptic" chance="0.3" /> </cargo> То есть "микс" появиться стопроцентно в объекте из него может выпасть....с вероятностью 33% ...перечисленные вещи.
      Важно помнить,что если размер "контейнера" маленький (к примеру мишка),то в нём ни как не заспавниться ПСО-1. Размер имеет значение.
       
      cfgspawnabletypes.xml - Список тех вещей, "контейнеры" в которых спавняться наборы из прошлого файла.
      Так же можно прописать спавн в контейнер отдельной вещи.
      И самое важное!
      Именно тут можно указать степень износа заспавненых вещей по отдельности, если степень износа не указана-вещь будет иметь износ зданный в файле globals.xml, это строчки:
      "LootDamageMax" и "LootDamageMin" .
      Но это не относится что спавнится в них, то есть наборы грузов, аттачменты и сами грузы в контейнере всегда будут "идеальны".....(но контейнером может стать и обычная вещь!)
      Тут же прописывается аттачменты если они есть и вы хотите заспавнитьвещь с прикреплёным аттачем.
          <type name="ammobox"> - название (ID) вещи-контейнера.
          <damage min="0.0" max="0.0" /> - этой строчки может и не быть, тогда износ будет взят из "глобалс". Означает что лут будет иметь при спавне не меньше едениц урона и не больше. То есть если выствите
      min=0.2 то лут всегда будет всегда иметь при спвне 20% урона. Не меньше, максимальный урон это max, поставите к примеру 0,9 то вещи даже заруиненые будут спавнится.
      Пороги когда вещь считается неповреждённой,а когда поношеной и тк.дл.-в другом файле и меняется уже сервер модом.
           <cargo preset="optics" /> -название набора который может появиться внутри с шансом( как было описано выше)....
      ........................................
              <cargo preset="ammoArmy" />
          </type>
      То есть можно прописать несколько наборов и если из каждого заспавниться вещь,то ограничение только "размер" контейнера и вещей.
      Так же тут есть наборы аттачей для зомби, о них ниже, собраны примерно также.
       
      Вторая фигура Марлезонского балета.
       
      <type name="ZmbM_PatrolNormal_Autumn"> <cargo preset="foodArmy" /> <cargo preset="ammoArmy" /> </type>   Вот вам и первый "ходячий" контейнер.....Увеличив к примеру в cfgrandompresets.xml шанс выпадения данных наборов-получите "доставщиков пиццы на дом".
      Но не в каждом зомби такой набор и опять таки,вы можете их менять,добавлять,убирать....
      А так же для зомби тут прописано что них может быть одето в виде аттачей. Не все зомби такое могут,смотреть нужно по ванильным файлам.
      Пример:
      <type name="ZmbM_HunterOld_Winter">-наш подопытный <cargo preset="foodHermit" />-набор лута в зомби <cargo preset="toolsHermit" />-набор лута в зомби <attachments preset="glassesVillage" />-какой набор может прирепится на местоаттача (очки в данном случае) <attachments preset="hatsFarm" />-какой набор может прирепится на местоаттача (кепка в данном случае) <attachments preset="bagsHunter" />-какой набор может прирепится на местоаттача (рюкзак в данном случае) <attachments preset="vestsHunter" />-какой набор может прирепится на местоаттача (разгрузка\броник в данном случае) </type> (очки ни когда не прописывайте-не работают)
       
         А дальше-оружие...(так,дышите глубже)
       
          <type name="CZ61"> - ID оружия
              <attachments chance="0.10"> -Шанс что на нём будет прикреплён аттачмент 10%
                  <item name="AK_Suppressor" chance="1.00" /> - шанс появления самого аттачмента 100%
      (не факт что так и надо,просто так проще высчитыывать процент появления аттачементов на оружии)
              </attachments>
              <attachments chance="0.30"> -то же самое и для другого аттачмента,обратите внимание,что мы не смешиваем в одну кучу "глушители и магазины"...
                  <item name="Mag_CZ61_20Rnd" chance="1.00" />
              </attachments>
          </type>
      А если хочется "АКМ" что бы мог спавниться в полном обвесе?
      А легко...
      <type name="AKM"> <damage min="0.0" max="0.5" /> <attachments chance="1.00"> <item name="AK_WoodBttstck" chance="0.80" /> <item name="AK_PlasticBttstck" chance="0.30" /> <item name="AK_FoldingBttstck" chance="0.40" /> </attachments> <attachments chance="1.00"> <item name="AK_WoodHndgrd" chance="0.80" /> <item name="AK_PlasticHndgrd" chance="0.30" /> <item name="AK_RailHndgrd" chance="0.10" /> </attachments> <attachments chance="0.30"> <item name="Mag_AKM_30Rnd" chance="1.00" /> </attachments> <attachments chance="0.30"> <item name="AK_Suppressor" chance="0.50" /> </attachments> Видим что он может появляться с разными прикладами, цевьями, может с глушителем или без,с магазином или без....(хотите,можете и ПСО ему прописать).
       
      Как видитев в этом файле нет многих вещей, тут нет ни ИЖ18,ни МП133....и они,гады спавняться всегда как прописано в globals.....Стоит добавить
          <type name="Izh18">
               <damage min="0.0" max="0.2" />
          </type>
      .....и ИЖ18 будет спавниться с дамагом который вы установили!
      Думаете это всё?....Индейское жилище-фигвам!
      Машины!....
      <type name="OffroadHatchback"> <attachments chance="1.00"> <item name="HatchbackWheel" chance="0.60" /> </attachments> <attachments chance="1.00"> <item name="HatchbackWheel" chance="0.60" /> </attachments> <attachments chance="1.00"> <item name="HatchbackWheel" chance="0.40" /> </attachments> <attachments chance="1.00"> <item name="HatchbackWheel" chance="0.40" /> </attachments> <attachments chance="1.00"> <item name="HatchbackWheel" chance="0.20" /> </attachments> <attachments chance="1.00"> <item name="CarRadiator" chance="0.20" /> </attachments> <attachments chance="1.00"> <item name="CarBattery" chance="0.30" /> </attachments> <attachments chance="1.00"> <item name="HeadlightH7" chance="0.40" /> </attachments> <attachments chance="1.00"> <item name="HeadlightH7" chance="0.40" /> </attachments> <attachments chance="1.00"> <item name="HatchbackDoors_Driver" chance="0.30" /> </attachments> <attachments chance="1.00"> <item name="HatchbackDoors_CoDriver" chance="0.30" /> </attachments> <attachments chance="1.00"> <item name="HatchbackHood" chance="0.20" /> </attachments> <attachments chance="1.00"> <item name="HatchbackTrunk" chance="0.20" /> </attachments> </type> Это он так выглядит сейчас вроде...раньше было всё намного хуже...Машина стандартно спавнилась с ОДНИМ колесом.
      Можете изменить аттачментам шансы хоть до "1.00" что бы машина спавнилась сразу собранная.(залить в неё жидкости-знает Боррзик,описывал на форуме,ищите).
      Правда мы подло могЁм положить в машину.....бензин,масло...можно и ремкомплект.
       
              <attachments chance="1.00">
                  <item name="SparkPlug" chance="0.6" />
              </attachments>
              <attachments chance="1.00">
                  <item name="EngineOil" chance="0.5" />
              </attachments>
              <attachments chance="1.00">
                  <item name="EngineOil" chance="0.5" />
              </attachments>
              <attachments chance="1.00">
                  <item name="EngineOil" chance="0.5" />
              </attachments>
       
      (в этом же файле,ПОЗЖЕ,появились и рождественские наборы...но было уже поздно-бегемоты должны быть повешаны!)
      Дальше мы можем мелочь привесть к предметам,обычно это батарейка
      Но можно и "предмет в предмете"! Поле для извращений-огромно.
      Как пример:
       
      <type name="PersonalRadio"> <attachments chance="0.30"> <item name="Battery9V" chance="1.00" /> </attachments> </type> <type name="GPSReceiver"> <attachments chance="0.30"> <item name="Battery9V" chance="1.00" /> </attachments> </type> Файлы с названием по типу mapgroupcluster.xml -это тот же mapgrouppos для камней, грибов,яблок и прочего.
      Глыбжее,ширее,нижее. Преходим в папку db
       
      events.xml - файл в котором описаны "случайные"  события,такие как зомби,полицейская волга, хеликраш, адми...тоесть петух!, ну и прочие коровы и звери.
      Например
       
          <event name="AnimalCow"> -название ивента. Можно прописывать свои НО! Название ивента может начинатся ТОЛЬКО строго определенно.
      аnimal - события с животными.
      static - для спавна статичных ивентов типа Ми-8 или дома...
      item - Для различных игровых предметов,как пример в ванили - блок досток.
      Infected-зомби
      Trajectory - спавн грибов,ягод и прочих камней
       
      <nominal>10</nominal> - Колличество ивентов на карту единомоментно.То есть сразу. Именно ИВЕНТОВ. Десять машин, десять СТАЙ волков, десять ТОЧЕК спавна зомби....(может и меньше если невозможно заспавнить ивент из-за других условий, к примеру наличие игрока на спавне)

      <min>6</min> -  минимальное количество дочерних объектов указанных в <children> в ивенте
      <max>15</max> - максимальноеколичество дочерних объектов указанных в <children> в ивенте
      (обычно для стай волков и прочих живых организмов)
      Причем от 6 до 15 ВСЕХ вписанных <children>. А вот сколько конкретно каждого,это  уже в них настраивается

       <lifetime>180</lifetime> - "время жизни" события Именно СОБЫТИЯ. То есть заспавнаня ивентом машина-пока стоит на точке спавна-это СОБЫТИЕ,как только вы отехали-это уже лут и время её жизни будет считыватся с (не кночи будет помянут сей файл) тайпса.

       <restock>0</restock> - на сколько будет отложен спавн ивента до номинала, когда остальные условия для начала ивента выполнены.
      Думате если два хеликраша они исчезнут и заспавнятся одновременно? Ага,счасЗъ. Тут зависит от много,даже от взаимодействия с ними игрока.

      <saferadius>200</saferadius> - это расстояние от позиции игрока, на котором может возникнуть это событие.(поставте для интреса 50 для зомби:)))
       <distanceradius>0</distanceradius> - минимальное расстояние от другого события.(очень актульно для машин, решать вам)
      <cleanupradius>0</cleanupradius> - это расстояние от позиции игрока, на котором событие исчезнет после того, как время жизни закончится. (добвлено- для хеликрашей имхо лучше ставить ОЧЕНЬ большое,с хороший километр)
      <secondary>InfectedArmy</secondary> - это имя другого события, которое вы хотите вызвать одновременно с этим событием, например, чтобы вызвать зомби вокруг здания или предмета. Настраивается в дочернем событии.(можно создать свой, но смешать зомбей с волками-не получится, генетика не та)
      <flags deletable="0" init_random="0" remove_damaged="1" sec_spawner="0"/> -флаги настройки
      deletable 1/0 - ивент удалятеся согласно параметрам самого события или по истечению времени в тайпс (не точно)...ИМХО
      init_random 1/0 - ???
      remove_damaged 1/0 -  будет ли событие удаляться если достигла состояния "уничтожено" или останется лежать до истечения срока события.(актуально для машин...но ТОЛЬКО НА ТОЧКЕ СПАВНА!)
      sec_spawner="0" - сорри не знаю, а чего не знаю-не меняю.
      <position>fixed</position>
      <position>player</position> - позиция будет выбираться из зафиксированых в файле cfgeventspawns.xml или событие срабатывает "на игрока".

      <limit>.......</limit> - может быть следующии
      custom - относится к внешнему файлу, например, для территорий животных.
      child - событие будет обращатся к атрибутам min и max каждого дочернего элемента
      parent - lотносятся к минимальным и максимальным атрибутам самого события
      mixed -  будет учитыватся и дочерние и собсвенное min-max события
       
      <active>1/0</active> - включение и выключение события.(Вот она кнопка!)
       
       <children>
                  <child lootmax="0" lootmin="0" max="3" min="0" type="Animal_BosTaurusF_Brown"/>
      lootmax="0" lootmin="0" ....если предмет имеет сетку лута или контейнер -колличество лута при спавне (а теперь фокус, если в ивенте есть <secondary> с зомбями то их колличество будет равно.... мин + макс)
      max="3" min="0" ......минимальное и максимальное колличество дочерних обьектов. (к примеру-коров данного типа в стаде)
       
      types.xml-великий и ужасный.Содержит в себе данные о всём спавнещемся луте и контейнерах (хеликраши,машины,зомби-по сути-контейнеры).
      Всякий лут должен быть в этом файле иначе-нет его спавна на карте. Также и синтаксическая ошибка в этом файле приводит к исчезновению всего лута с карты.
      Если из него убрать что-то,(но этот предмет останеться лежать на земле до истечения срока)....и игрок его поднимет-краш.Так что файл требует трезвого ума и терпения.
       
          <type name="Canteen"> - Название ID предмета
              <nominal>30</nominal> -номинальное колличество спавна на карте к которому стремиться "спавнер".
              <lifetime>7200</lifetime> - время "лежания" предмета после спавна ( а также судя,по всему-время после падения на землю с игрока).в сек. (на параметр не влияет ускорение времени на сервере, но влияет параметр из скриптс-"колличество тактов в секунду")
              <restock>0</restock> - на сколько будет отложен спавн предмета до номинала, когда остальные условия для начала спавна выполнены. "задержка спавна".
              <min>20</min>- минимальное колличество предмета на карте после которого начинаеться работа спавнера.
              <quantmin>-1</quantmin> - если предмет "бутылка-магазин"-степень его наполнения минимальная - Для остальных значение -1
              <quantmax>-1</quantmax> - если предмет "бутылка-магазин"-степень его наполнения минимальная - Для остальных значение -1
             (теперь это значение работает и для оружия у котрого нет "сьёмного" магазина, типа СКС или 133 ружжа)
              <cost>100</cost> - приоритет спавна грубо говоря. чем меньше-тем ниже будет вещь в очереди.
              <flags count_in_cargo="0" count_in_hoarder="0" count_in_map="1" count_in_player="0" crafted="0" deloot="0"/> -Флаги спавнера, они указывают в каких типах объектов считать nominal и min значения:
      count_in_cargo - считает все предметы в контейнерах, ящики, рюкзаки, включая автомобили
      count_in_hoarder - будет считаться в таких вещах как закопанные предметы, бочки, сундуки и всевозможные палатки
      count_in_map - объекты, размещенные на карте (здания)
      count_in_player - внутри инвентаря игроков, исключая руки (учёт для игроков онлайн, проверяется)
      crafted - указывает на то, что данный предмет может быть закрафчен игроками
      deloot - указывает что это объекты для спавна на динамических ивентах (событиях). (хеликрашыи, крушения поездов, дтп и прочее)
              <category name="food"/> -категория лута ,может быть ТОЛЬКО одна.
              <tag name="shelves"/> - тэги для настройки точек спавна
              <usage name="Military"/> - класс  лута может быть не один.
              <value name="Tier2"/>  - Зоны в каких будет спавниться лут
              <value name="Tier3"/>
              <value name="Tier4"/>
          </type>
      Если по простому,то "фляжка" будет спавниться в колличестве 30 штук постоянно в зонах 2-3-4 на военных обектах где возможно появление еды с использованием тэга shelves, то есть если в объекте совпадает в начале описания в mapgroupproto.xml,класс,категория,тэг -то предмет заспаниться в точке спавна,которые в этом же файле,для обьекта на карте из файла mapgrouppos.xml
      <type name="ACOGOptic"> <nominal>20</nominal> <lifetime>7200</lifetime> <restock>1800</restock> <min>15</min> <quantmin>-1</quantmin> <quantmax>-1</quantmax> <cost>100</cost> <flags count_in_cargo="0" count_in_hoarder="0" count_in_map="1" count_in_player="0" crafted="0" deloot="0"/> <category name="weapons"/> <usage name="Military"/> </type> <type name="AgaricusMushroom"> <lifetime>900</lifetime> <flags count_in_cargo="0" count_in_hoarder="0" count_in_map="1" count_in_player="0" crafted="1" deloot="0"/> </type> как видите,есть даже грибы,которые спавняться динамически.
      И на закуску...
       
      (если вещевые или другие моды перезаписывают эти файлы,то следите за тем что бы они сливались в экстазе,а не выпихивали друг друга)
      По идее-ничего сложного,даже я разобрался.....почти.
       
      Третья фигура Марлезонского балета....
      Пара примеров....
      <type name="StartKitIV"> <nominal>50</nominal> <lifetime>7200</lifetime> <restock>0</restock> <min>40</min> <quantmin>-1</quantmin> <quantmax>-1</quantmax> <cost>100</cost> <flags count_in_cargo="0" count_in_hoarder="0" count_in_map="1" count_in_player="0" crafted="0" deloot="0"/> <category name="tools"/> <tag name="shelves"/> <value name="Tier1"/> <value name="Tier2"/> <value name="Tier3"/> <value name="Tier4"/> </type> Это "квадратик" или....гхм!. Что видим?Лут из категории "инструменты",спавниться постоянно в местах с тэгом,по всей карте....А какой он категории?А ни какой,вот и спавниться,хоть на лодках на берегу,хоть на вышке.
      Добавляем категорию...
      <type name="StartKitIV"> <nominal>50</nominal> <lifetime>7200</lifetime> <restock>0</restock> <min>20</min> <quantmin>-1</quantmin> <quantmax>-1</quantmax> <cost>100</cost> <flags count_in_cargo="0" count_in_hoarder="0" count_in_map="1" count_in_player="0" crafted="0" deloot="0"/> <category name="tools"/> <tag name="shelves"/> <usage name="Medic"/> <value name="Tier1"/> <value name="Tier2"/> <value name="Tier3"/> <value name="Tier4"/> </type> Всё,теперь только на обьектах с классом "медик"-как и положено. (бегемоты должны быть повешаны!)....
      Обьект радиовышка,кто лазил на неё,тот помнит что на ней спавнился полецейский лут. Почему?
      А смотрим mapgroupproto.xml
      <group name="Land_Tower_TC1"> <usage name="Village" /> <usage name="Industrial" /> <usage name="Police" /> <container name="lootFloor"> <category name="tools" /> <category name="containers" /> <category name="clothes" /> <category name="weapons" /> <category name="books" /> <category name="explosives" /> <point pos="-0.454809 14.404877 0.712779" range="0.314223" height="0.785558" /> <point pos="-0.582537 14.404785 0.034267" range="0.375000" height="0.913483" /> <point pos="0.773581 14.405716 0.067886" range="0.375000" height="0.915054" /> <point pos="-0.448550 14.404892 1.860424" range="0.432076" height="1.080190" /> <point pos="0.641068 14.405640 1.884647" range="0.512500" height="1.279480" /> <point pos="-1.132879 -1.965958 1.837671" range="0.581250" height="1.453125" /> <point pos="0.925214 -1.964554 -0.245559" range="0.821875" height="1.996796" /> <point pos="-0.880515 -1.965805 -0.105441" range="0.821875" height="2.000610" /> <point pos="0.998695 -1.964493 1.724339" range="0.890625" height="1.996490" /> </container> Лут категории "инструмент","контейнер"...."оружие" классов ...Да,"Полиция".....Удаляем нафинг полицию!
      <group name="Land_Tower_TC1"> <usage name="Village" /> <usage name="Industrial" /> <container name="lootFloor"> <category name="tools" /> <category name="containers" /> <category name="clothes" /> <category name="weapons" /> <category name="explosives" /> <point pos="-0.454809 14.404877 0.712779" range="0.314223" height="0.785558" /> <point pos="-0.582537 14.404785 0.034267" range="0.375000" height="0.913483" /> <point pos="0.773581 14.405716 0.067886" range="0.375000" height="0.915054" /> <point pos="-0.448550 14.404892 1.860424" range="0.432076" height="1.080190" /> <point pos="0.641068 14.405640 1.884647" range="0.512500" height="1.279480" /> <point pos="-1.132879 -1.965958 1.837671" range="0.581250" height="1.453125" /> <point pos="0.925214 -1.964554 -0.245559" range="0.821875" height="1.996796" /> <point pos="-0.880515 -1.965805 -0.105441" range="0.821875" height="2.000610" /> <point pos="0.998695 -1.964493 1.724339" range="0.890625" height="1.996490" /> </container> </group> Теперь в лучшем случае дробаш там будет.
       
      Ну,как то так....

      Запрещено копирование данной статьи без соглосование с Администрацией и автором на другие ресурсы. All Rights Reserved
    • Автор: BR0wi
      Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.

      Подскажите как удалить точки спавна лута после удаления ванильных объектов через дейз эдитор. А то гадость какая-то получается, объектов нет, а лут спавнит.
      Пытался найти точки по примерным коордмнатам в файле mapgrouppos.xml, но что-то как-то не получается, да и объектов слишком много удалено, вручную так искать несколько дней уйдет. Кто-нибудь владеет информацией на этот счет?
      Заранее спасибо.
    • Автор: Plut
      Доброго дня! 
      Ув. форумчане., такая проблема: берем лут и кладем в рюкзак(любой), рюкзак кладем в спец слот для рюкзаков машины, а после РР все что было в рюкзаке вываливается на землю под машину, а сам рюкзак(который в спец слоте маашины) оказывается пуст.  При этом в бочках и ящиках/сундуках все отлично сохраняется. 
       
      Может быть связанно, но когда рюкзак в машине, то в него ничего не положить(в отличии от бочек и ящиков), приходится брать его в руки, наполнять хламом и класть в специальный для него слот. 
       
      Памагити, пасиба. 
    • Автор: 123new
      И так, ребятки, вот вам небольшая 'полезняшка' от меня, и совершенно бесплатно!
       
      Описание:

      Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.
      или создать их самим со следующим содержанием:
      Script.c
      /* Описание: Скрипт выдачи индивидуального стартового лута, скина игрока и точек спавна Автор: 123new Установка: 1. По пути: {папка с вашим сервером}\mpmissions\dayzOffline.chernarusplus\ создать папку 'CustomSpawnPlayerConfig' и поместить в нее 3 файла скрипта: Script.c Sets.c init_mod.c 2. В файле: {папка с вашим сервером}\mpmissions\dayzOffline.chernarusplus\init.c в самом верху файла добавить: #include "$CurrentDir:mpmissions\dayzOffline.chernarusplus\CustomSpawnPlayerConfig\init_mod.c" 3. В папке, обозначенной параметром запуска сервера '-profile=', поместить файл с именем CustomSpawnPlayerConfig.txt и заполнить его данными по следующему формату: UID|Skin_player|sets_numbers|points_spawns где UID - это steam64id от профиля игрока в steam Skin_player - точный id скина игрока (можно указать 0 для отключения опции) sets_numbers - номер сета со стартовым лутом (можно указать несколько через ';', указать один всего, либо указать 0 для отключения опции) points_spawns - координаты спавна игрока на карте в формате 'x y z' (можно указать несколько через ';', указать всего одну точку, либо указать 0 для отключения опции) Пример: 76561198141889254|SurvivorM_Oliver|1|12955.091797 16.115206 7993.588379 76561198141889256|SurvivorM_Oliver|1;2|14791.965820 76.481781 14041.661133;12029.079102 196.356125 7274.689941 76561198141889253|SurvivorM_Oliver|0|0 4. В файле Sets.c в папке: {папка с вашим сервером}\mpmissions\dayzOffline.chernarusplus\CustomSpawnPlayerConfig\ настроить стартовый лут для ваших игроков и написать собственные сеты ВАЖНО: количество сетов можно делать любое, номера сетов брать от 1 и выше (не должно быть -1, либо 0, только от 1 и выше) Все что укажете в блоке default будет применено для всех игроков при респавне в случае, если им не выдан никакой сет! P.S. Прикрепить к соспавненному оружию магазин не получится, рабочего кода я не смог найти!! Если у вас папка активной миссии сервера отличается от dayzOffline.chernarusplus то переименуйте ее в строке, вписываемой в: {папка с вашим сервером}\mpmissions\dayzOffline.chernarusplus\init.c {папка с вашим сервером}\mpmissions\dayzOffline.chernarusplus\CustomSpawnPlayerConfig\init_mod.c */ class CustomSpawnPlayerConfig { private string Location_Directory_config = "$profile:"; // Расположение папки с конфигом скрипта private string Location_filename_config = "CustomSpawnPlayerConfig.txt"; // имя файла с конфигом скрипта private string default_log_block_name = "[CustomSpawnPlayerConfig] "; // Стандартный блок скрипта для идентификации с script.log private string disable_read_parameter = "0"; // Стандартное значение (без кавычек) для обозначения в файле конфига скрипта неиспользование параметра private string block_split_parameters_config = "|"; // Символ, обозначающий разделение параметров при чтении файла конфига private string block_split_multi_parameters_config = ";"; // Символ, обозначающий перечисление в одной ячейке параметра нескольких параметров при чтении файла конфига private bool enabled_loading_custom_spawnpoints = true; // Параметр, включающий и отключающий возможность использования приватной точки спавна для каждого игрока. В случае отключения кастомная точка спавна будет отключена для всех поумолчанию, вне зависимости от данных в конфиге! private bool enabled_loading_custom_sets = true; // Параметр, включающий и отключающий возможность использования приватного сета для каждого игроков. В случае отключения выдача сетов будет отключена для всех поумолчанию, вне зависимости от данных в конфиге, будет выдаваться только сет для всех игроков! private bool enabled_loading_custom_skins = true; // Параметр, включающий и отключающий возможность использования индивидуального стартового скина игрока для каждого игрока. В случае отключения эта возможность будет отключена для всех поумолчанию, вне зависимости от данных в конфиге! // ------------------------------------------------------------ // ---------------- NEXT CODE DON'T EDIT ----------------- // ------------------------------------------------------------ ref map<string, ref array<vector>> players_spawnpoints = new map<string, ref array<vector> >; ref map<string, ref array<int>> players_sets = new map<string, ref array<int> >; ref map<string, string> players_skins = new map<string, string>; private bool enabled_loaded_successfull_config = false; string Log_CustomSpawnPlayerConfig_GetDateTime() { private int year, month, day, hour, minute, second; GetYearMonthDay(year, month, day); GetHourMinuteSecond(hour, minute, second); string returned_message = "[" + day.ToStringLen(2) + "." + month.ToStringLen(2) + "." + year.ToStringLen(2) + " - " + hour.ToStringLen(2) + "." + minute.ToStringLen(2) + "." + second.ToStringLen(2) + "] "; return returned_message; } bool Check_coords_disable(vector coord) { private bool ret_zn = false; private float pos_x = coord[0]; private float pos_y = coord[1]; private float pos_z = coord[2]; if ((pos_x == 0.0) & (pos_y == 0.0) & (pos_z == 0.0)) { ret_zn = true; } return ret_zn; } vector Set_Read_coords_disable() { return Vector(0.0, 0.0, 0.0); } void CustomSpawnPlayerConfig() { Print(Log_CustomSpawnPlayerConfig_GetDateTime() + default_log_block_name + "CustomSpawnPlayerConfig initialize start!"); Read_Update_Config(); } void ~CustomSpawnPlayerConfig() { Print(Log_CustomSpawnPlayerConfig_GetDateTime() + default_log_block_name + "CustomSpawnPlayerConfig work end, class closed!"); } void Read_Update_Config() { private string name_block_work = "[ReadAndUpdateSettings] "; Print(Log_CustomSpawnPlayerConfig_GetDateTime() + default_log_block_name + name_block_work + " Started Reading config!"); private array<string> readed_lines_config = ReadFileConfig(); private bool check_normal_read = AnaliseFileConfig(readed_lines_config); if (check_normal_read) { LoadFileConfig(readed_lines_config); Print(Log_CustomSpawnPlayerConfig_GetDateTime() + default_log_block_name + name_block_work + "config readed successfull!"); enabled_loaded_successfull_config = true; } else { Print(Log_CustomSpawnPlayerConfig_GetDateTime() + default_log_block_name + name_block_work + "config read failed, work script disabled for players!"); enabled_loaded_successfull_config = false; } } array<string> ReadFileConfig() { private string name_block_work = "[ReadFileConfig] "; private array<string> readed_lines_config = new array<string>; readed_lines_config.Clear(); if (FileExist ( (Location_Directory_config + Location_filename_config) ) ) { private string line_content; FileHandle file = OpenFile((Location_Directory_config + Location_filename_config), FileMode.READ); Print(Log_CustomSpawnPlayerConfig_GetDateTime() + default_log_block_name + name_block_work + "Open file config: " + (Location_Directory_config + Location_filename_config)); if (file != 0) { while ( FGets( file, line_content ) > 0 ) { readed_lines_config.Insert( line_content); } CloseFile(file); } else { Print(Log_CustomSpawnPlayerConfig_GetDateTime() + default_log_block_name + name_block_work + "ERROR!!! CAN'T OPEN FILE CONFIG : " + (Location_Directory_config + Location_filename_config)); } //readed_lines_config.Debug(); } else { Print(Log_CustomSpawnPlayerConfig_GetDateTime() + default_log_block_name + name_block_work + "ERROR!!! CAN'T FOUND FILE CONFIG OR DIRECTORY: " + (Location_Directory_config + Location_filename_config)); } return readed_lines_config; } bool AnaliseFileConfig(array<string> readed_lines_config) { private bool return_zn = true; private string name_block_work = "[AnaliseFileConfig] "; if (readed_lines_config.Count() > 0) { foreach (string line : readed_lines_config) { if (line.Contains(block_split_parameters_config)) { private array<string> splited_line = new array<string>; line.Split( block_split_parameters_config, splited_line ); if (splited_line.Count() == 4) { private string UID_player = splited_line.Get(0); private string default_skin_player = splited_line.Get(1); private string sets_numbers_player = splited_line.Get(2); private string points_spawn_player = splited_line.Get(3); if ((UID_player == "") || (default_skin_player == "") || (sets_numbers_player == "") || (points_spawn_player == "")) { Print(Log_CustomSpawnPlayerConfig_GetDateTime() + default_log_block_name + name_block_work + "ERROR!!! Lines in Readed file is not correct, please, fix your config script!"); Print(Log_CustomSpawnPlayerConfig_GetDateTime() + default_log_block_name + name_block_work + "Line checking: " + line); return_zn = false; break; } } else { Print(Log_CustomSpawnPlayerConfig_GetDateTime() + default_log_block_name + name_block_work + "ERROR!!! Readed file is have incorrect count parameters with a tag '" + block_split_parameters_config + "', please, fix your config script!"); Print(Log_CustomSpawnPlayerConfig_GetDateTime() + default_log_block_name + name_block_work + "Line checking: " + line); return_zn = false; break; } } else { Print(Log_CustomSpawnPlayerConfig_GetDateTime() + default_log_block_name + name_block_work + "ERROR!!! Readed file can't have a tag '" + block_split_parameters_config + "', please, fix your config script!"); Print(Log_CustomSpawnPlayerConfig_GetDateTime() + default_log_block_name + name_block_work + "Line checking: " + line); return_zn = false; break; } } } else { Print(Log_CustomSpawnPlayerConfig_GetDateTime() + default_log_block_name + name_block_work + "ERROR!!! Config file is empty, fix your config script!"); return_zn = false; } return return_zn; } void LoadFileConfig(array<string> readed_lines_config) { private string name_block_work = "[LoadFileConfig] "; players_spawnpoints.Clear(); players_sets.Clear(); players_skins.Clear(); foreach (string line : readed_lines_config) { private array<string> splited_line = new array<string>; splited_line.Clear(); line.Split( block_split_parameters_config, splited_line ); private string UID_player = splited_line.Get(0); private string default_skin_player = splited_line.Get(1); private string sets_numbers_player = splited_line.Get(2); private string points_spawn_player = splited_line.Get(3); private array<vector> temp_players_spawnpoints = new array<vector>; temp_players_spawnpoints.Clear(); array<int> temp_players_sets = new array<int>; temp_players_sets.Clear(); array<string> temp_players_spawnpoints_string = new array<string>; temp_players_spawnpoints_string.Clear(); array<string> temp_players_sets_string = new array<string>; temp_players_sets_string.Clear(); if (points_spawn_player.Contains(block_split_multi_parameters_config)) { points_spawn_player.Split( block_split_multi_parameters_config, temp_players_spawnpoints_string ); } else { temp_players_spawnpoints_string.Insert(points_spawn_player); } foreach (string line_spawnpoint : temp_players_spawnpoints_string) { if (line_spawnpoint == disable_read_parameter) { temp_players_spawnpoints.Insert(Set_Read_coords_disable()); } else { temp_players_spawnpoints.Insert(line_spawnpoint.ToVector()); } } Print(Log_CustomSpawnPlayerConfig_GetDateTime() + default_log_block_name + name_block_work + "Generated massive for " + UID_player + " with " + temp_players_spawnpoints.Count().ToString() + " spawnpoints."); if (sets_numbers_player.Contains(block_split_multi_parameters_config)) { sets_numbers_player.Split( block_split_multi_parameters_config, temp_players_sets_string ); } else { temp_players_sets_string.Insert(sets_numbers_player); } foreach (string line_set : temp_players_sets_string) { if (line_set == disable_read_parameter) { temp_players_sets.Insert(0); } else { temp_players_sets.Insert(line_set.ToInt()); } } if (default_skin_player == disable_read_parameter) { default_skin_player = "0"; } Print(Log_CustomSpawnPlayerConfig_GetDateTime() + default_log_block_name + name_block_work + "Generated massive for " + UID_player + " with " + temp_players_sets.Count().ToString() + " sets."); Print(Log_CustomSpawnPlayerConfig_GetDateTime() + default_log_block_name + name_block_work + "Detected for " + UID_player + " skin " + default_skin_player); players_spawnpoints.Insert(UID_player,temp_players_spawnpoints); players_sets.Insert(UID_player,temp_players_sets); players_skins.Insert(UID_player,default_skin_player); } } vector Load_And_Check_Spawnpoints(PlayerIdentity identity, vector pos_default) { private string name_block_work = "[Load_And_Check_Spawnpoints] "; private vector retun_pos = pos_default; if(identity) { private string Name_P = identity.GetName(); private string UID_P = identity.GetPlainId(); private string Game_UID_P = identity.GetId(); private string Game_ID_P = identity.GetPlayerId().ToString(); if (enabled_loading_custom_spawnpoints) { if ((players_spawnpoints.Count() > 0) && (enabled_loaded_successfull_config)) { if (players_spawnpoints.Contains(UID_P)) { private array<vector> readed_lines_config = new array<vector>; readed_lines_config = players_spawnpoints.Get(UID_P); private vector retun_pos_check = readed_lines_config.GetRandomElement(); if (Check_coords_disable(retun_pos_check)) { Print(Log_CustomSpawnPlayerConfig_GetDateTime() + default_log_block_name + name_block_work + "For player " + Name_P + "(steam64id=" + UID_P + ") disabled loading private spawn point. Will be used default spawn point!"); } else { retun_pos = retun_pos_check; Print(Log_CustomSpawnPlayerConfig_GetDateTime() + default_log_block_name + name_block_work + "For player " + Name_P + "(steam64id=" + UID_P + ") setuped private spawn point: " + retun_pos.ToString()); } } else { Print(Log_CustomSpawnPlayerConfig_GetDateTime() + default_log_block_name + name_block_work + "Can't founded private spawnpoint for player " + Name_P + "(steam64id=" + UID_P + ")"); } } else { Print(Log_CustomSpawnPlayerConfig_GetDateTime() + default_log_block_name + name_block_work + "Config script is incorrect, checking private spawnpoints is disabled! Player: " + Name_P + "(steam64id=" + UID_P + ")"); } } else { Print(Log_CustomSpawnPlayerConfig_GetDateTime() + default_log_block_name + name_block_work + "disabled loading personal spawnpoints from config file script!"); } } Print(Log_CustomSpawnPlayerConfig_GetDateTime() + default_log_block_name + name_block_work + "For player " + Name_P + "(steam64id=" + UID_P + ") will be used spawn point: " + retun_pos.ToString()); return retun_pos; } string Load_And_Check_SpawnSkin_Player(PlayerIdentity identity, string characterName) { private string name_block_work = "[SelectStartSkinPlayer] "; private string retun_skin = characterName; if(identity) { private string Name_P = identity.GetName(); private string UID_P = identity.GetPlainId(); private string Game_UID_P = identity.GetId(); private string Game_ID_P = identity.GetPlayerId().ToString(); if (enabled_loading_custom_skins) { if (players_skins.Count() > 0) { if (players_skins.Contains(UID_P)) { private string readed_skin = players_skins.Get(UID_P); if (readed_skin == "0") { Print(Log_CustomSpawnPlayerConfig_GetDateTime() + default_log_block_name + name_block_work + "For player " + Name_P + "(steam64id=" + UID_P + ") disabled loading private skin setting, will be used default setting game!"); } else { retun_skin = readed_skin; Print(Log_CustomSpawnPlayerConfig_GetDateTime() + default_log_block_name + name_block_work + "For player " + Name_P + "(steam64id=" + UID_P + ") setuped private skin setting: " + retun_skin); } } else { Print(Log_CustomSpawnPlayerConfig_GetDateTime() + default_log_block_name + name_block_work + "Can't founded private skin setting for player " + Name_P + "(steam64id=" + UID_P + ")"); } } else { Print(Log_CustomSpawnPlayerConfig_GetDateTime() + default_log_block_name + name_block_work + "Config script is incorrect, checking private skin setting is disabled! Player: " + Name_P + "(steam64id=" + UID_P + ")"); } } else { Print(Log_CustomSpawnPlayerConfig_GetDateTime() + default_log_block_name + name_block_work + "disabled loading personal skin player settings from config file script!"); } } Print(Log_CustomSpawnPlayerConfig_GetDateTime() + default_log_block_name + name_block_work + "For player " + Name_P + "(steam64id=" + UID_P + ") will be used skin: " + retun_skin); return retun_skin; } void Load_And_Check_StartLoadout(PlayerBase player) { private string name_block_work = "[SelectStartSetPlayer] "; private int use_set_id = -1; private PlayerIdentity identity = player.GetIdentity(); if(identity) { private string Name_P = identity.GetName(); private string UID_P = identity.GetPlainId(); private string Game_UID_P = identity.GetId(); private string Game_ID_P = identity.GetPlayerId().ToString(); if (enabled_loading_custom_sets) { if ((players_sets.Count() > 0) && (enabled_loaded_successfull_config)) { if (players_sets.Contains(UID_P)) { private array<int> readed_lines_config = new array<int>; readed_lines_config.Clear(); readed_lines_config = players_sets.Get(UID_P); private int chek_use_set_id = readed_lines_config.GetRandomElement(); if (chek_use_set_id == 0) { Print(Log_CustomSpawnPlayerConfig_GetDateTime() + default_log_block_name + name_block_work + "For player " + Name_P + "(steam64id=" + UID_P + ") disabled loading private set numbers. Will be used default set player! "); } else { use_set_id = chek_use_set_id; Print(Log_CustomSpawnPlayerConfig_GetDateTime() + default_log_block_name + name_block_work + "For player " + Name_P + "(steam64id=" + UID_P + ") setuped private set number is: " + use_set_id.ToString()); } } else { Print(Log_CustomSpawnPlayerConfig_GetDateTime() + default_log_block_name + name_block_work + "Can't founded private sets for player " + Name_P + "(steam64id=" + UID_P + ")"); } } else { Print(Log_CustomSpawnPlayerConfig_GetDateTime() + default_log_block_name + name_block_work + "Config script is incorrect, checking private sets is disabled! Player: " + Name_P + "(steam64id=" + UID_P + ")"); } } else { Print(Log_CustomSpawnPlayerConfig_GetDateTime() + default_log_block_name + name_block_work + "disabled loading personal loadout sets player settings from config file script! Will be used default loadout!"); } if (use_set_id >= 0) { Print(Log_CustomSpawnPlayerConfig_GetDateTime() + default_log_block_name + name_block_work + "For player " + Name_P + "(steam64id=" + UID_P + ") will be used spawn set with number is: " + use_set_id.ToString()); } else { Print(Log_CustomSpawnPlayerConfig_GetDateTime() + default_log_block_name + name_block_work + "For player " + Name_P + "(steam64id=" + UID_P + ") will be used spawn default start set without number. "); } StartSetsPlayers.StartSetsPlayer(player, use_set_id); } } private array<EntityAI> GetItemListinobject(PlayerBase player,EntityAI item, bool check_player) { array<EntityAI> EntityAI_list_items = new array<EntityAI>; EntityAI_list_items.Clear(); int attIdx = 0; int attCount = 0; EntityAI item_in_object; if ((player) && (check_player)) { attCount = player.GetInventory().AttachmentCount(); for (attIdx = 0; attIdx < attCount; attIdx++) { item_in_object = player.GetInventory().GetAttachmentFromIndex(attIdx); if ( item_in_object.IsItemBase() ) { EntityAI_list_items.Insert(item_in_object); } } } if ((item) && !check_player) { attCount = item.GetInventory().AttachmentCount(); for (attIdx = 0; attIdx < attCount; attIdx++) { item_in_object = item.GetInventory().GetAttachmentFromIndex(attIdx); if ( item_in_object.IsItemBase() ) { EntityAI_list_items.Insert(item_in_object); } } } return EntityAI_list_items; } void RemoveAllItems (PlayerBase player) { private array<EntityAI> ItemListPlayer = new array<EntityAI>; private array<EntityAI> ItemsForDelete = new array<EntityAI>; private EntityAI itemInHands_player = player.GetHumanInventory().GetEntityInHands(); if (itemInHands_player != NULL) { if (player.CanDropEntity(itemInHands_player) && player.GetHumanInventory().CanRemoveEntityInHands()) { // Print("ItemForDelete: " + itemInHands_player.ToString()); ItemsForDelete.Insert(itemInHands_player); } } ItemListPlayer = GetItemListinobject(player,NULL,true); if (ItemListPlayer.Count() > 0) { foreach(EntityAI ItemPlayer: ItemListPlayer) { private array<EntityAI> ItemInItemInInventory = GetItemListinobject(NULL,ItemPlayer,false); private CargoBase cargo = ItemPlayer.GetInventory().GetCargo(); if(cargo) { if (cargo.GetItemCount() > 0) { for (int f = 0; f < cargo.GetItemCount(); f++) { if(cargo.GetItem(f)) { ItemsForDelete.Insert(cargo.GetItem(f)); } } } } if (ItemInItemInInventory.Count() > 0) { foreach(EntityAI items_temp: ItemInItemInInventory) { if(items_temp) { ItemsForDelete.Insert(items_temp); } } } if(ItemPlayer) { ItemsForDelete.Insert(ItemPlayer); } } } if (ItemsForDelete.Count() > 0) { foreach(EntityAI item_temp: ItemsForDelete) { if(item_temp) { GetGame().ObjectDelete(item_temp); } } } } }; Sets.c
      class StartSetsPlayersConfig { void StartSetsPlayer(PlayerBase player,int use_set_id) { EntityAI itemCreated = NULL; EntityAI itemCreated1 = NULL; ItemBase itemCasted = NULL; switch( use_set_id ) //Раздаем лут (можно использовать значения от 1 и выше, только не 0 и не -1) { case 1: //Set with number 1 (Сет с номером 1) { My_Custom_Spawn_Parameters.RemoveAllItems(player); // Чтобы удалить с персонажа уже имеющиеся стандартные стартовые шмотки раскомментировать строку itemCreated = player.GetInventory().CreateInInventory("CoyoteBag_Green"); // Выдаем рюкзак и записываем в переменную itemCreated if (itemCreated) // Проверяем, создался ли рюкзак. Если он создался, переменная itemCreated будет не пуста и проверка пройдет { SetRandomHealthItem(itemCreated); // Выдаем рюкзаку рандомное качество itemCreated1 = itemCreated.GetInventory().CreateInInventory("Apple"); // Добавляем в инвентарь созданного рюкзака яблоко и записываем в переменную itemCreated1 if (itemCreated1) // Проверяем, создалось ли яблоко в рюкзаке, яблоко у нас с переменной itemCreated1 { SetRandomHealthItem(itemCreated1); // Выдаем яблоку рандомное качество } itemCreated1 = NULL; // Обнуляем значение переменной после работы с ней, чтобы следующая проверка прошла корректно itemCreated1 = itemCreated.GetInventory().CreateInInventory("Rag"); // Выдаем игроку бинты в рюкзак и записываем в переменную itemCreated1 if (itemCreated1) // Проверяем, создались ли бинты в рюкзаке, они у нас с переменной itemCreated1 { itemCasted = ItemBase.Cast(itemCreated1); // Выполняем преобразование в другой класс для работы с нужной нам функцией, поскольку в классе EntityAI нет нужной нам функции SetQuantity, а в подклассе ItemBase она есть. Предмет при этом так и остается один и тот же! itemCasted.SetQuantity(4); // Определяем количество для созданных бинтов как 4 штуки SetRandomHealthItem(itemCreated); // Выдаем бинтам рандомное качество, функция работает с классом EntityAI (см. в конфе файла) } } // переменную itemCreated не обнуляем далее, поскольку мы ее не используем в проверке ниже. itemCreated = player.GetInventory().CreateInInventory("TTSKOPants"); // Выдаем игроку штаны itemCreated = player.GetInventory().CreateInInventory("TTsKOJacket_Camo"); // Выдаем игроку куртку itemCreated = player.GetInventory().CreateInInventory("CombatBoots_Black"); // Выдаем игроку обувь //itemCasted = ItemBase.Cast(itemCreated); // Строка не нужна, закоментирована. используется для изменения класса EntityAI в ItemBase (чтобы нужные операции были доступны) itemCreated = player.GetInventory().CreateInInventory("CombatKnife"); // Выдаем игроку ножик в любой свободный слот в инвентаре itemCreated = player.GetInventory().CreateInInventory("FNX45"); // Выдаем игроку FNX в любой свободный слот в инвентаре itemCreated = player.GetInventory().CreateInInventory("Mag_FNX45_15Rnd"); // Выдаем игроку магазины к FNX в любой свободный слот в инвентаре itemCreated = player.GetInventory().CreateInInventory("Mag_FNX45_15Rnd"); // Выдаем игроку магазины к FNX в любой свободный слот в инвентаре itemCreated = player.GetInventory().CreateInInventory("Mag_AKM_30Rnd"); // Выдаем игроку магазины к AKM в любой свободный слот в инвентаре itemCreated = player.GetInventory().CreateInInventory("Mag_AKM_30Rnd"); // Выдаем игроку магазины к AKM в любой свободный слот в инвентаре itemCreated = NULL; // Обнуляем значение переменной после работы с ней, нужно если мы будем использовать ее далее itemCreated = player.GetHumanInventory().CreateInHands("akm"); // Выдаем игроку AKM в руки if (itemCreated) // Проверяем, создался ли АКМ { itemCreated.GetInventory().CreateAttachment( "PSO11Optic" ); // Выдаем игроку на AKM оптику ПСО 11 и крепим itemCreated.GetInventory().CreateAttachment( "AK_WoodBttstck" ); // Выдаем игроку на AKM цевье, приклад и глушитель, и крепим itemCreated.GetInventory().CreateAttachment( "AK_WoodHndgrd" ); // Выдаем игроку на AKM цевье, приклад и глушитель, и крепим itemCreated.GetInventory().CreateAttachment( "AK_Suppressor" ); // Выдаем игроку на AKM цевье, приклад и глушитель, и крепим } break; } case 2: //Set with number 2 (Сет с номером 2) { break; } case 3: //Set with number 3 (Сет с номером 3) { break; } case 4: //Set with number 4 (Сет с номером 4) { break; } case 5: //Set with number 5 (Сет с номером 5) { break; } case 6: //Set with number 6 (Сет с номером 6) { break; } default: //Default starting spawn set (Сет поумолчанию для всех игроков, если хотите назначить - добавляйте здесь!) { //My_Custom_Spawn_Parameters.RemoveAllItems(player); // Чтобы удалить с персонажа уже имеющиеся стандартные стартовые шмотки раскомментировать строку DefaultSets(player); // Для выдачи своих сетов по рандому всем игрокам, не прописанным в скрипте, раскомментировать эту строку break; } } } void SetRandomHealthItem(EntityAI itemCreated) // Функция генерирует и применяет для предмета рандомное значение здоровья! { if ( itemCreated ) { private int rndHlt = Math.RandomInt(55,6); itemCreated.SetHealth("","",rndHlt); } } void DefaultSets(PlayerBase player) // Функция выдает сеты игрокам, не прописанным в конфигурации скрипта!!! { EntityAI itemCreated = NULL; EntityAI itemCreated1 = NULL; ItemBase itemCasted = NULL; // ниже пример, если вам нужно задать свои точки спавна для всех игроков. Этот код можно также использовать и для каждого сета индивидуально! // Код закомментирован, если это надо - раскомментируйте! // начало кода точек спавна игрока /* private array <vector> spawnpoints = {"7500 0 7500", "7500 0 7500","7500 0 7500", "7500 0 7500"}; private vector selected_spawnpoint = spawnpoints.GetRandomElement(); player.SetPosition(selected_spawnpoint); */ // конец кода точек спавна игрока private int random_set_number = Math.RandomIntInclusive(1,6); // генерируем рандом номер сета от 1 до 6 включительно (по значениям блоков case ниже) switch( random_set_number ) //Раздаем лут (можно использовать значения от 1 и выше, только не 0 и не -1) { case 1: //Set with number 1 (Сет с номером 1) { break; } case 2: //Set with number 2 (Сет с номером 2) { break; } case 3: //Set with number 3 (Сет с номером 3) { break; } case 4: //Set with number 4 (Сет с номером 4) { break; } case 5: //Set with number 5 (Сет с номером 5) { break; } case 6: //Set with number 6 (Сет с номером 6) { break; } default: //Default starting spawn set (Сет поумолчанию для всех игроков, в случае если ни один из сетов выше не выпал. { //My_Custom_Spawn_Parameters.RemoveAllItems(player); // Чтобы удалить с персонажа уже имеющиеся стандартные стартовые шмотки раскомментировать строку break; } } } } init_mod.c
      #include "$CurrentDir:mpmissions\dayzOffline.chernarusplus\CustomSpawnPlayerConfig\Script.c" #include "$CurrentDir:mpmissions\dayzOffline.chernarusplus\CustomSpawnPlayerConfig\Sets.c" ref CustomSpawnPlayerConfig My_Custom_Spawn_Parameters = new CustomSpawnPlayerConfig(); ref StartSetsPlayersConfig StartSetsPlayers = new StartSetsPlayersConfig(); modded class CustomMission { override void OnInit () { super.OnInit(); GetGame().GetCallQueue(CALL_CATEGORY_SYSTEM).CallLater(My_Custom_Spawn_Parameters.Read_Update_Config, 120000, true); // Обновление настроек скрипта кастомных спавнов, 1 минута = 60000 } override PlayerBase CreateCharacter(PlayerIdentity identity, vector pos, ParamsReadContext ctx, string characterName) { pos = My_Custom_Spawn_Parameters.Load_And_Check_Spawnpoints(identity, pos); characterName = My_Custom_Spawn_Parameters.Load_And_Check_SpawnSkin_Player(identity, characterName); super.CreateCharacter(identity, pos, ctx, characterName); return m_player; } override void StartingEquipSetup(PlayerBase player, bool clothesChosen) { super.StartingEquipSetup(player, clothesChosen); My_Custom_Spawn_Parameters.Load_And_Check_StartLoadout(player); } }  

       
      2. В файле:
      {папка с вашим сервером}\mpmissions\dayzOffline.chernarusplus\init.c в самом верху файла добавить:
      #include "$CurrentDir:mpmissions\dayzOffline.chernarusplus\CustomSpawnPlayerConfig\init_mod.c" Чтобы получилось примерно так

       
      3. В папке, обозначенной параметром запуска сервера '-profile=', поместить файл с именем CustomSpawnPlayerConfig.txt
      и заполнить его данными по следующему формату:
      UID|Skin_player|sets_numbers|points_spawns где UID - это steam64id от профиля игрока в steam
      Skin_player - точный id скина игрока (можно указать 0 для отключения опции)
      sets_numbers - номер сета со стартовым лутом (можно указать несколько через ';', указать один всего, либо указать 0 для отключения опции)
      points_spawns - координаты спавна игрока на карте в формате 'x y z' (можно указать несколько через ';', указать всего одну точку, либо указать 0 для отключения опции)
      Пример:
      Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.
      76561198141889254|SurvivorM_Oliver|1|12955.091797 16.115206 7993.588379 76561198141889256|SurvivorM_Oliver|1;2|14791.965820 76.481781 14041.661133;12029.079102 196.356125 7274.689941 76561198141889253|SurvivorM_Oliver|0|0  
      4. В файле Sets.c в папке:
      {папка с вашим сервером}\mpmissions\dayzOffline.chernarusplus\CustomSpawnPlayerConfig\ настроить стартовый лут для ваших игроков и написать собственные сеты
      ВАЖНО: количество сетов можно делать любое, номера сетов брать от 1 и выше (не должно быть -1, либо 0, только от 1 и выше)
      Все что укажете в блоке default будет применено для всех игроков при респавне в случае, если им не выдан никакой сет!
      Поумолчанию в функции default вызывается функция DefaultSets, позволяющая рандомно выбирать любой из сетов для игроков, которым сет не задан в конфигурации скрипта. Принцип составления сетов такой же, как и выше. Если будете пользоваться этим, обратите вниманием на строку:
      private int random_set_number = Math.RandomIntInclusive(1,6); Эта функция генерирует число от 1 до 6 включительно. Соответственно если сетов будет больше 6, то число надо корректировать и тут тоже!
       
      P.S. Прикрепить к соспавненному оружию магазин не получится, рабочего кода я не смог найти!!
       
      Если у вас папка активной миссии сервера отличается от dayzOffline.chernarusplus то переименуйте ее в строке, вписываемой в:
              {папка с вашим сервером}\mpmissions\dayzOffline.chernarusplus\init.c
              {папка с вашим сервером}\mpmissions\dayzOffline.chernarusplus\CustomSpawnPlayerConfig\init_mod.c
       
      Благодарности: Товарищу Mizev за его первоначальные гайды в группе VK при появлении в сети серверной части игры
       
       
    • Автор: Sancezz063
      Всем привет!
      Не получается сделать стартовый лут для персонажа, нужно заменить полностью одежду и то что выдается
      Знаю многие сейчас начнут писать мол всё есть на форуме, а я отвечу, делаю я всё именно так как рассказывается и нифига не работает, откапал старый рабочий init.c и он тоже не работает, то ли разрабы слегка поменяли код, толи я нифига не понимаю.
      Может кому не лень, напишите пример по созданию шмотки и складыванию в неё какого-нибудь предмета.
      Заранее спасибо!
      override void StartingEquipSetup(PlayerBase player, bool clothesChosen) { EntityAI itemTop; EntityAI itemEnt; ItemBase itemBs; float rand; itemTop = player.FindAttachmentBySlotName("Body"); if ( itemTop ) { itemEnt = itemTop.GetInventory().CreateInInventory("Rag"); if ( Class.CastTo(itemBs, itemEnt ) ) itemBs.SetQuantity(4); SetRandomHealth(itemEnt); string chemlightArray[] = { "Chemlight_White", "Chemlight_Yellow", "Chemlight_Green", "Chemlight_Red" }; int rndIndex = Math.RandomInt(0, 4); itemEnt = itemTop.GetInventory().CreateInInventory(chemlightArray[rndIndex]); SetRandomHealth(itemEnt); rand = Math.RandomFloatInclusive(0.0, 1.0); if ( rand < 0.35 ) itemEnt = player.GetInventory().CreateInInventory("Apple"); else if ( rand > 0.65 ) itemEnt = player.GetInventory().CreateInInventory("Pear"); else itemEnt = player.GetInventory().CreateInInventory("Plum"); SetRandomHealth(itemEnt); } }  
  • Наш выбор

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

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

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