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

◆ TakeEntityAsTargetAttachmentEx()

bool GameInventory::TakeEntityAsTargetAttachmentEx ( InventoryMode mode,
notnull EntityAI target,
notnull EntityAI item,
int slot )
inlineprotected

put item as attachment of target

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

1136 {
1137 if (LogManager.IsInventoryMoveLogEnable()) inventoryDebugPrint("[inv] I::Take2TargetAttEx(" + typename.EnumToString(InventoryMode, mode) + ") as ATT of target=" + target + " item=" + item + " slot=" + slot);
1138 InventoryLocation src = new InventoryLocation();
1139 if (item.GetInventory().GetCurrentInventoryLocation(src))
1140 {
1141 EntityAI att = target.GetInventory().FindAttachment(slot);
1142 if (att)
1143 {
1144 if (mode == InventoryMode.SERVER)
1145 {
1146 att.CombineItemsEx(item, true);
1147 }
1148 else
1149 {
1150 att.CombineItemsClient(item, true);
1151 }
1152 return true;
1153 }
1154 else if (item.CanBeSplit() && item.GetTargetQuantityMax(slot) < item.GetQuantity())
1155 {
1156 if (mode == InventoryMode.SERVER)
1157 {
1158 item.SplitIntoStackMaxEx(target, slot);
1159 }
1160 else
1161 {
1162 item.SplitIntoStackMaxClient(target,slot);
1163 }
1164 return true;
1165 }
1166 else
1167 {
1168 InventoryLocation dst = new InventoryLocation();
1169 dst.SetAttachment(target, item, slot);
1170 return TakeToDst(mode, src, dst);
1171 }
1172 }
1173 Error("[inv] I::Take2AttEx(" + typename.EnumToString(InventoryMode, mode) + ") item=" + item + " Error - src has no inventory location");
1174 return false;
1175 }
void inventoryDebugPrint(string s)
Определения Debug.c:19
InventoryMode
NOTE: PREDICTIVE is not to be used at all in multiplayer.
Определения Inventory.c:22
class LogManager EntityAI
bool TakeToDst(InventoryMode mode, notnull InventoryLocation src, notnull InventoryLocation dst)
move src to dst
Определения Inventory.c:1055
proto native void SetAttachment(notnull EntityAI parent, EntityAI e, int slotId)
sets current inventory location type to Attachment with slot id set to <slotId>
void Error(string err)
Messagebox with error message.
Определения EnDebug.c:90

Перекрестные ссылки Error(), inventoryDebugPrint(), LogManager::IsInventoryMoveLogEnable(), InventoryLocation::SetAttachment() и TakeToDst().

Используется в TakeEntityAsAttachmentEx().