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

◆ CanBeCombined()

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

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

2177 {
2178 //TODO: delete check zero quantity check after fix double posts hands fsm events
2179 if (!other_item || GetType() != other_item.GetType() || (IsFullQuantity() && other_item.GetQuantity() > 0) || other_item == this)
2180 return false;
2181
2182 if (GetHealthLevel() == GameConstants.STATE_RUINED || other_item.GetHealthLevel() == GameConstants.STATE_RUINED)
2183 return false;
2184
2185 //can_this_be_combined = ConfigGetBool("canBeSplit");
2187 return false;
2188
2189
2190 Magazine mag = Magazine.Cast(this);
2191 if (mag)
2192 {
2193 if (mag.GetAmmoCount() >= mag.GetAmmoMax())
2194 return false;
2195
2196 if (stack_max_limit)
2197 {
2198 Magazine other_mag = Magazine.Cast(other_item);
2199 if (other_item)
2200 {
2201 if (mag.GetAmmoCount() + other_mag.GetAmmoCount() > mag.GetAmmoMax())
2202 return false;
2203 }
2204
2205 }
2206 }
2207 else
2208 {
2209 //TODO: delete check zero quantity check after fix double posts hands fsm events
2210 if (GetQuantity() >= GetQuantityMax() && other_item.GetQuantity() > 0 )
2211 return false;
2212
2213 if (stack_max_limit && (GetQuantity() + other_item.GetQuantity() > GetQuantityMax()))
2214 return false;
2215 }
2216
2217 PlayerBase player = null;
2218 if (CastTo(player, GetHierarchyRootPlayer())) //false when attached to player's attachment slot
2219 {
2220 if (player.GetInventory().HasAttachment(this))
2221 return false;
2222
2223 if (player.IsItemsToDelete())
2224 return false;
2225 }
2226
2227 if (reservation_check && (GetInventory().HasInventoryReservation(this, null) || other_item.GetInventory().HasInventoryReservation(other_item, null)))
2228 return false;
2229
2230 int slotID;
2231 string slotName;
2232 if (GetInventory().GetCurrentAttachmentSlotInfo(slotID,slotName) && GetHierarchyParent().GetInventory().GetSlotLock(slotID))
2233 return false;
2234
2235 return true;
2236 }
eBleedingSourceType GetType()
PlayerSpawnPreset slotName
override float GetQuantity()
Определения ItemBase.c:3456
override int GetQuantityMax()
Определения ItemBase.c:3408
bool can_this_be_combined
Определения ItemBase.c:68
bool IsFullQuantity()
Определения ItemBase.c:3461

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