public bool Equip_InsertEquipItem(EAObjID _id, uint slot, EA_CItemUnit pitem) { EA_CCharBPlayer pActor = EACObjManager.instance.GetActor(_id); if (pActor == null) { return(false); } if (pActor.GetObjInfo().m_eObjType == eObjectType.CT_MYPLAYER) { EA_Equipment pEquipment = m_myPlItemManager.GetEquip(); if (pEquipment != null) { pEquipment.InsertEquipItem(slot, pitem); } } else { EA_Equipment pEquipment = m_PCItemManager.Get_PCEquipItem(_id); if (pEquipment == null) { pEquipment = new EA_Equipment(); m_PCItemManager.InsertPCEquip(_id, pEquipment); } // [4/10/2014 puos] Equipped with items pEquipment.InsertEquipItem(slot, pitem); } return(true); }
public EA_CItemUnit FindItemUnit(ITEM_UNIT_INDEX _id) { EA_CItemUnit pItemUnit = null; m_mapItemUnitList.TryGetValue(_id, out pItemUnit); return(pItemUnit); }
// [4/7/2014 puos] Create defensive weapons EA_CItemUnit CreateDefenseItem(EA_ItemBaseInfo info, EA_ItemDefenseInfo defenseInfo) { info.m_eItemType = eItemType.eIT_Defense; EA_CItemUnit pItemUnit = CreateItemUnit(info); if (pItemUnit != null) { pItemUnit.SetDefenseInfo(defenseInfo); } return(pItemUnit); }
// [4/7/2014 puos] Attack weapon generation public EA_CItemUnit CreateWeaponItem(EA_ItemBaseInfo info, EA_ItemAttackWeaponInfo weaponinfo) { info.m_eItemType = eItemType.eIT_Weapon; EA_CItemUnit pItemUnit = CreateItemUnit(info); if (pItemUnit != null) { pItemUnit.SetAttackWeaponInfo(weaponinfo); } return(pItemUnit); }
/*! 장비 저장하기*/ public bool EquipItem(EAObjID _id, uint slot, EA_CItemUnit pItem) { if (m_PCEquipMap.ContainsKey(_id) == true) { return(false); } EA_Equipment pEquipment = m_PCEquipMap[_id]; pEquipment.InsertEquipItem(slot, pItem); return(true); }
bool IsEquipItem(uint equip_slot) { if (m_EquipmentList.ContainsKey(equip_slot) == false) { return(false); } EA_CItemUnit pItem = m_EquipmentList[equip_slot]; if (pItem == null) { return(false); } return(true); }
EA_CItemUnit CreateItemUnit(EA_ItemBaseInfo info) { EA_CItemUnit pItemUnit = null; if (CObjGlobal.InvalidItemID == info.m_GDItemId) { info.m_GDItemId = (EAObjID)m_pIDGenerator.GenerateID(); pItemUnit = new EA_CItemUnit(); pItemUnit.SetItemInfo(info); m_mapItemUnitList.Add(info.m_GDItemId, pItemUnit); } return(pItemUnit); }
// 슬롯에 설치된 아이템 제거 public bool RemoveEquipItembySlot(uint equip_slot) { if (IsEquipItem(equip_slot) == false) { return(false); } EA_CItemUnit pPrevItemUnit = m_EquipmentList[equip_slot]; if (pPrevItemUnit != null) { pPrevItemUnit.RequestDelete(); m_EquipmentList[equip_slot] = null; } return(true); }
// Carry a weapon public void RaiseWeapon() { EA_CItem pItemBase = GetItemBase(); if (pItemBase != null) { if (pItemBase.GetItemInfo().m_iItemIndex != CObjGlobal.InvalidItemID) { EA_CItemUnit pItemUnit = EA_ItemManager.instance.FindItemUnit(pItemBase.GetItemInfo().m_iItemIndex); if (pItemUnit != null) { WeaponInfo.Copy(pItemUnit.GetAttackWeaponInfo()); } } } StopFire(); }
/*! 아이템 유닛을 장비 슬롯 위치에 저장 */ public bool InsertEquipItem(uint equip_slot, EA_CItemUnit pitem) { if ((m_EquipmentList.ContainsKey(equip_slot) == false) || (equip_slot >= (uint)eEquipSlotSpot.eESS_Max)) { return(false); } EA_CItemUnit pPrevItemUnit = m_EquipmentList[equip_slot]; if (pPrevItemUnit != null) { pPrevItemUnit.RequestDelete(); } m_EquipmentList[equip_slot] = pitem; return(true); }
EAObjID SetActorItem(EA_CCharBPlayer pUser, EA_CItemUnit pItemUnit) { if (pUser == null || pItemUnit == null) { return(CObjGlobal.InvalidObjID); } EAObjID objID = CObjGlobal.InvalidObjID; ObjectInfo ObjInfo = new ObjectInfo(); ObjInfo.m_ModelTypeIndex = pItemUnit.GetItemBaseInfo().m_ModelTypeIndex; ObjInfo.m_objClassType = pItemUnit.GetItemBaseInfo().m_objClassType; ItemObjInfo itemInfo = new ItemObjInfo(); itemInfo.m_HavenUser = pUser.GetObjID(); itemInfo.m_iItemIndex = pItemUnit.GetItemId(); // [4/7/2014 puos] The item ID of the item object if (pItemUnit.GetItemBaseInfo().m_eItemType == eItemType.eIT_Weapon) { itemInfo.m_eItemType = eItemObjType.IK_WEAPON; // [3/21/2018 puos] If there is an item object created in the current slot, it is not created. // Fixed bug that was created even with created item object EA_CItem pItem = EACObjManager.instance.GetItemObject(pItemUnit.GetItemBaseInfo().m_GDObjId); if (pItem == null) { pItem = EACObjManager.instance.CreateItem(ObjInfo, itemInfo); } if (pItem != null) { pUser.SetWeaponAttachment(pItemUnit.GetAttackWeaponInfo().weaponType, pItem.GetLinkEntity()); return(pItem.GetObjID()); } } return(objID); }
public bool DeleteItemUnit(ITEM_UNIT_INDEX _id) { EA_CItemUnit pItemUnit = FindItemUnit(_id); if (pItemUnit != null) { //GDDebug.Log("EA_ItemManager - DeleteItemUnit - ITEM_UNIT_INDEX :" + _id); // [4/10/2014 puos] Delete when an item object is created in an item unit if (pItemUnit.GetItemBaseInfo().m_GDObjId != CObjGlobal.InvalidObjID) { EACObjManager.instance.RemoveItem(pItemUnit.GetItemBaseInfo().m_GDObjId); } m_mapItemUnitList.Remove((uint)_id); m_pIDGenerator.FreeID(_id); } return(true); }
public void EquipItem(EA_CCharBPlayer pUser, uint equip_slot) { EA_CItemUnit pItemUnit = FindEquipItembySlot(equip_slot); if (pItemUnit != null) { if (pItemUnit.GetItemBaseInfo().m_eItemType == eItemType.eIT_Weapon) { EAObjID objId = SetActorItem(pUser, pItemUnit); pItemUnit.GetItemBaseInfo().m_GDObjId = objId; m_nCurrEquipSlot = equip_slot; pUser.DoSwitchWeapons((uint)pItemUnit.GetAttackWeaponInfo().weaponType); } } else // 무기가 없을시에도 장착을 시도해야함 { m_nCurrEquipSlot = equip_slot; pUser.DoSwitchWeapons(0); } }
public bool RemoveAllItem() { try { for (uint slot = 0; slot < (uint)eEquipSlotSpot.eESS_Max; ++slot) { EA_CItemUnit pPrevItemUnit = m_EquipmentList[slot]; if (pPrevItemUnit != null) { pPrevItemUnit.RequestDelete(); m_EquipmentList[slot] = null; } } } catch (System.Exception ex) { Debug.LogWarning(ex.Message); } return(true); }
/// <summary> /// /// </summary> protected void FindWeapon() { EA_CCharBPlayer pActor = GetCharBase(); EA_Equipment pEquipment = null; //2017 1126 Consider even without weapons m_pCurWeapon = null; if (pActor != null) { pEquipment = EA_ItemManager.instance.Equip_FindEqipment(pActor.GetObjID()); } if (pEquipment != null) { EA_CItemUnit pItemUnit = pEquipment.GetCurrentItem(); if (pItemUnit != null) { EA_CItem pItem = EACObjManager.instance.GetItemObject(pItemUnit.GetObjId()); if (pItem != null) { Debug.Assert(pItem.GetLinkItem() != null, "EAActor FindWeapon pItem.GetLinkItem() is null"); if (pItem.GetLinkItem() != null) { m_pCurWeapon = (EAWeapon)pItem.GetLinkItem() as EAWeapon; } } } } // [5/28/2018 puos] bug fixed if (m_pCurWeapon == null) { if (pActor != null) { pEquipment = EA_ItemManager.instance.Equip_FindEqipment(pActor.GetObjID()); } if (pEquipment != null) { EA_CItemUnit pItemUnit = pEquipment.GetCurrentItem(); if (pItemUnit != null) { EA_CItem pItem = EACObjManager.instance.GetItemObject(pItemUnit.GetObjId()); if (pItem != null) { Debug.Assert(pItem.GetLinkItem() != null, "EAActor FindWeapon2 pItem.GetLinkItem() is null"); if (pItem.GetLinkItem() != null) { m_pCurWeapon = (EAWeapon)pItem.GetLinkItem() as EAWeapon; } } } } } }