DayZ 1.30
DayZ Explorer by KGB
 
Загрузка...
Поиск...
Не найдено

◆ CreateItemBasePilesDispersed()

static array< ItemBase > CreateItemBasePilesDispersed ( string item_name,
vector starPos,
vector targetPos,
float radius,
float quantity,
float health,
Object ignoreObjectCollison )
staticprotected

creation method using raycast-dispersed positioning; ECE_TRACE not used as a result

См. определение в файле MiscGameplayFunctions.c строка 544

545 {
546 array<ItemBase> item_piles;
547 float max_stack_size;
548 ItemBase pile;
549
550 item_piles = new array<ItemBase>;
551 max_stack_size = g_Game.ConfigGetInt("cfgVehicles " + item_name + " varStackMax");
552 if( max_stack_size < 1)
553 max_stack_size = g_Game.ConfigGetInt("cfgVehicles " + item_name + " varQuantityMax");
554 if( max_stack_size < 1)
555 max_stack_size = 1;
556
557 int full_piles_count = Math.Floor(quantity/max_stack_size);
558 int rest = quantity - (full_piles_count*max_stack_size);
559 vector randomizedPos;
560
561 for (int i = 0; i < full_piles_count; ++i)
562 {
563 randomizedPos = MiscGameplayFunctions.GetRandomizedPositionVerified(starPos,targetPos,radius,ignoreObjectCollison);
564 pile = ItemBase.Cast(g_Game.CreateObjectEx(item_name, randomizedPos, ECE_PLACE_ON_SURFACE));
565 pile.SetQuantity(max_stack_size);
566 pile.SetHealth(health);
567 item_piles.Insert(pile);
568 }
569
570 if (rest > 0)
571 {
572 randomizedPos = MiscGameplayFunctions.GetRandomizedPositionVerified(starPos,targetPos,radius,ignoreObjectCollison);
573 pile = ItemBase.Cast(g_Game.CreateObjectEx(item_name, randomizedPos, ECE_PLACE_ON_SURFACE));
574 pile.SetQuantity(rest);
575 pile.SetHealth(health);
576 item_piles.Insert(pile);
577 }
578 return item_piles;
579 }
const int ECE_PLACE_ON_SURFACE
Определения CentralEconomy.c:38
DayZGame g_Game
Определения DayZGame.c:4074
override bool SetQuantity(float value, bool destroy_config=true, bool destroy_forced=false, bool allow_client=false, bool clamp_to_stack_max=true)
Определения PileOfBricks.c:64
Определения EnMath.c:7
Result for an object found in CGame.IsBoxCollidingGeometryProxy.
Определения EnConvert.c:119
static proto float Floor(float f)
Returns floor of value.

Перекрестные ссылки ECE_PLACE_ON_SURFACE, Math::Floor(), g_Game и ItemBase::SetQuantity().