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

◆ CanBeCombined()

override bool InventoryItem::CanBeCombined ( EntityAI other_item,
bool reservation_check = true,
bool stack_max_limit = false )
inlineprivate

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

2143 {
2144 //TODO: delete check zero quantity check after fix double posts hands fsm events
2145 if (!other_item || GetType() != other_item.GetType() || (IsFullQuantity() && other_item.GetQuantity() > 0) || other_item == this)
2146 return false;
2147
2148 if (GetHealthLevel() == GameConstants.STATE_RUINED || other_item.GetHealthLevel() == GameConstants.STATE_RUINED)
2149 return false;
2150
2151 //can_this_be_combined = ConfigGetBool("canBeSplit");
2153 return false;
2154
2155
2156 Magazine mag = Magazine.Cast(this);
2157 if (mag)
2158 {
2159 if (mag.GetAmmoCount() >= mag.GetAmmoMax())
2160 return false;
2161
2162 if (stack_max_limit)
2163 {
2164 Magazine other_mag = Magazine.Cast(other_item);
2165 if (other_item)
2166 {
2167 if (mag.GetAmmoCount() + other_mag.GetAmmoCount() > mag.GetAmmoMax())
2168 return false;
2169 }
2170
2171 }
2172 }
2173 else
2174 {
2175 //TODO: delete check zero quantity check after fix double posts hands fsm events
2176 if (GetQuantity() >= GetQuantityMax() && other_item.GetQuantity() > 0 )
2177 return false;
2178
2179 if (stack_max_limit && (GetQuantity() + other_item.GetQuantity() > GetQuantityMax()))
2180 return false;
2181 }
2182
2183 PlayerBase player = null;
2184 if (CastTo(player, GetHierarchyRootPlayer())) //false when attached to player's attachment slot
2185 {
2186 if (player.GetInventory().HasAttachment(this))
2187 return false;
2188
2189 if (player.IsItemsToDelete())
2190 return false;
2191 }
2192
2193 if (reservation_check && (GetInventory().HasInventoryReservation(this, null) || other_item.GetInventory().HasInventoryReservation(other_item, null)))
2194 return false;
2195
2196 int slotID;
2197 string slotName;
2198 if (GetInventory().GetCurrentAttachmentSlotInfo(slotID,slotName) && GetHierarchyParent().GetInventory().GetSlotLock(slotID))
2199 return false;
2200
2201 return true;
2202 }
eBleedingSourceType GetType()
Определения BleedingSource.c:63
PlayerSpawnPreset slotName
override float GetQuantity()
Определения ItemBase.c:3386
override int GetQuantityMax()
Определения ItemBase.c:3338
bool can_this_be_combined
Определения ItemBase.c:68
bool IsFullQuantity()
Определения ItemBase.c:3391

Перекрестные ссылки can_this_be_combined, GetQuantity(), GetQuantityMax(), GetQuantityMax(), GetType(), IsFullQuantity(), slotName и GameConstants::STATE_RUINED.