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

◆ OnDropReceivedFromGhostArea()

void ZombieContainer::OnDropReceivedFromGhostArea ( Widget w,
int x,
int y,
Widget receiver )
inlineprotected

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

170 {
171 ItemPreviewWidget ipw = ItemPreviewWidget.Cast( w.FindAnyWidget("Render"));
172 string name = receiver.GetName();
173 name.Replace("PanelWidget", "Render");
174 ItemPreviewWidget receiver_iw = ItemPreviewWidget.Cast( receiver.FindAnyWidget(name));
175 EntityAI receiver_item;
176 if (receiver_iw)
177 {
178 receiver_item = receiver_iw.GetItem();
179 }
180
181 if( !ipw )
182 {
183 name = w.GetName();
184 name.Replace( "PanelWidget", "Render" );
185 ipw = ItemPreviewWidget.Cast( w.FindAnyWidget(name));
186 }
187 if(!ipw)
188 {
189 ipw = ItemPreviewWidget.Cast(w);
190 }
191
192 if(!ipw.IsInherited(ItemPreviewWidget))
193 {
194 return;
195 }
196
197 EntityAI item = ipw.GetItem();
198 PlayerBase player = PlayerBase.Cast(GetGame().GetPlayer());
199
200 if(!item.GetInventory().CanRemoveEntity())
201 {
202 return;
203 }
204
205 if(receiver_item)
206 {
207 if(receiver_item.GetInventory().CanAddAttachment(item))
208 {
209 player.PredictiveTakeEntityToTargetAttachment(receiver_item, item);
210 return;
211 }
212 else if(receiver_item.GetInventory().CanAddEntityInCargo(item, item.GetInventory().GetFlipCargo()) && !receiver_item.GetInventory().HasEntityInCargo(item))
213 {
214 player.PredictiveTakeEntityToTargetInventory(receiver_item, FindInventoryLocationType.ANY, item);
215 return;
216 }
217 }
218
219 if(item)
220 {
221 if(m_ZombieEntity.GetInventory().CanAddAttachment(item))
222 {
223 player.PredictiveTakeEntityToTargetAttachment(m_ZombieEntity, item);
224 }
225 else if(m_ZombieEntity.GetInventory().CanAddEntityToInventory(item))
226 {
227 player.PredictiveTakeEntityToTargetInventory(m_ZombieEntity, FindInventoryLocationType.ANY, item);
228 }
229 }
230
231 if( item )
232 {
233 if( m_ZombieEntity.GetInventory().CanAddEntityInto(item, FindInventoryLocationType.CARGO ))
234 {
235 player.PredictiveTakeEntityToTargetInventory(m_ZombieEntity, FindInventoryLocationType.CARGO, item);
236 }
237 }
238 }
class LogManager EntityAI
PlayerSpawnPresetDiscreteItemSetSlotData name
one set for cargo
FindInventoryLocationType
flags for searching locations in inventory
Определения InventoryLocation.c:17
PlayerBase GetPlayer()
Определения ModifierBase.c:51
proto native EntityAI GetItem()
EntityAI m_ZombieEntity
Определения ZombieContainer.c:7
proto native CGame GetGame()

Перекрестные ссылки GetGame(), ItemPreviewWidget::GetItem(), GetPlayer(), m_ZombieEntity, name, x и y.