void CompoundSingle() { bool compound = false; int unlockCount = CDataPool.Instance.TalismanInventory_UnLockCount(); CTalisman_Item item1 = null; CTalisman_Item item2 = null; for (int i = 0; i < unlockCount; i++) { item1 = CDataPool.Instance.TalismanInventory_GetItem(i); int lv = item1.GetLV(); int quality = item1.GetItemTableQuality(); item2 = CDataPool.Instance.TalismanInventory_GetSuitableCompoundItem(lv, quality); if (item2 != null) { CGOperateTalisman operateTalisman = new CGOperateTalisman(); operateTalisman.Type = 2; operateTalisman.SrcIndex = (byte)(item1.GetPosIndex() + GAMEDEFINE.MAX_BAG_SIZE); operateTalisman.DstIndex = (byte)(item2.GetPosIndex() + GAMEDEFINE.MAX_BAG_SIZE); NetManager.GetNetManager().SendPacket(operateTalisman); compound = true; return; } } if (autoCompound) { autoCompound = compound; } if (!autoCompound) { EnableButton(true); } }
//得到定义ID public override int GetDefineID() { CTalisman_Item item = ItemImpl; if (item == null) { return(-1); } return(item.Define.nTableIndex); }
//得到解释 public override string GetDesc() { CTalisman_Item item = ItemImpl; if (item == null) { return("ERROR"); } return(item.GetDesc()); }
public string GetFontColor() { CTalisman_Item item = ItemImpl; if (item == null) { return(""); } ; return(item.getFontColor()); }
public int GetSellPrice() { CTalisman_Item item = ItemImpl; if (item == null) { return(0); } ; return(item.GetItemPrice()); }
public uint GetNextLVExp() { CTalisman_Item item = ItemImpl; if (item == null) { return(0); } ; return(item.NextExp); }
public uint GetCurExp() { CTalisman_Item item = ItemImpl; if (item == null) { return(0); } ; return(item.Exp); }
// 得到等级 public virtual int GetLevel() { CTalisman_Item item = ItemImpl; if (item == null) { return(0); } ; return(item.GetLV()); }
//得到所在容器的索引 // 技能 - 第几个技能 public override int GetPosIndex() { CTalisman_Item item = ItemImpl; if (item == null) { return(-1); } return(item.GetPosIndex()); }
//更新数据 public void Update_Item(CTalisman_Item item) { m_id = item.GetID(); //名称 m_strName = item.Define.szName; //图标 m_strIconName = item.Define.szIcon; ItemImpl = item; //通知UI UpdateToRefrence(); }
void NotifyDragPackageToPackage(string szSourceName, string szTargetName) { int srcPackageIndex = Convert.ToInt32(szSourceName.Substring(1, szSourceName.Length - 1)) - 1; int desPackageIndex = Convert.ToInt32(szTargetName.Substring(1, szTargetName.Length - 1)) - 1; Debug.Log("src " + szSourceName + " dst " + szTargetName); CTalisman_Item item = ItemImpl; if (item != null) { switch (item.TypeOwner) { //Package -> Package case ITEM_OWNER.IO_TALISMAN_PACKET: { //先不做能不能放入的检测 int srcindex = (int)srcPackageIndex + GAMEDEFINE.MAX_BAG_SIZE; int dstindex = (int)desPackageIndex + GAMEDEFINE.MAX_BAG_SIZE; if (srcindex == dstindex) { return; } CTalisman_Item desItem = CDataPool.Instance.TalismanInventory_GetItem(srcPackageIndex); CTalisman_Item srcItem = CDataPool.Instance.TalismanInventory_GetItem(desPackageIndex); if (desItem != null && srcItem != null) { CGOperateTalisman operateTalisman = new CGOperateTalisman(); operateTalisman.Type = 2; operateTalisman.SrcIndex = (byte)srcindex; operateTalisman.DstIndex = (byte)dstindex; NetManager.GetNetManager().SendPacket(operateTalisman); } else { //不同格 CGPackage_SwapItem msg = new CGPackage_SwapItem(); msg.PIndex1 = (byte)srcindex; msg.PIndex2 = (byte)dstindex; NetManager.GetNetManager().SendPacket(msg); } } break; } } }
void RefreshInventoryByIndex(int index) { if (index < 0 || index >= CDataPool.Instance.TalismanInventory_UnLockCount()) { LogManager.LogError("Refresh Fabao Inventory index out of range"); return; } CTalisman_Item item = CDataPool.Instance.TalismanInventory_GetItem(index); if (item == null) { inventory_[index].SetActionItem(-1); } else { inventory_[index].SetActionItem(item.GetID()); } }
void RefreshEquiptmentByIndex(int index) { if (index < 0 || index >= CDataPool.Instance.TalismanEquipment_UnLockCount()) { LogManager.LogError("Refresh Fabao Equipt index out of range"); return; } CTalisman_Item item = CDataPool.Instance.TalismanEquipment_GetItem(index); if (item == null) { equipts_[index].SetActionItem(-1); } else { equipts_[index].SetActionItem(item.GetID()); } }
public void setItem(int index, ref _ITEM item) { if (index < 0 || index >= MAX_TALISMAN_EQUIPT_NUMBER) { return; } if (mItems[index] != null) { ObjectSystem.Instance.DestroyItem(mItems[index]); mItems[index] = null; } CTalisman_Item newItem = ObjectSystem.Instance.NewItem(item.m_ItemIndex) as CTalisman_Item; mItems[index] = newItem; newItem.PosIndex = (short)index; newItem.TypeOwner = ITEM_OWNER.IO_TALISMAN_EQUIPT; newItem.SetGUID(item.m_ItemGUID.m_World, item.m_ItemGUID.m_Server, (uint)item.m_ItemGUID.m_Serial); newItem.SetExtraInfo(ref item); }
public override NET_RESULT_DEFINE.PACKET_EXE Execute(PacketBase pPacket, ref Peer pPlayer) { if (GameProcedure.GetActiveProcedure() == GameProcedure.s_ProcMain) { GCOperateTalismanResult packet = pPacket as GCOperateTalismanResult; string resultInfo = ""; switch ((GCOperateTalismanResult.UseOperateTalismanResultCode)packet.Result) { case GCOperateTalismanResult.UseOperateTalismanResultCode.USEOPERATETALISMAN_SUCCESS: resultInfo = "成功"; break; case GCOperateTalismanResult.UseOperateTalismanResultCode.USEOPERATETALISMAN__FAIL: resultInfo = "失败"; break; case GCOperateTalismanResult.UseOperateTalismanResultCode.USEOPERATETALISMAN_BAG_FULL: CEventSystem.Instance.PushEvent(GAME_EVENT_ID.GE_INFO_SELF, "法宝栏已满"); return(NET_RESULT_DEFINE.PACKET_EXE.PACKET_EXE_CONTINUE); case GCOperateTalismanResult.UseOperateTalismanResultCode.USEOPERATETALISMAN_HAS_ITEM: CEventSystem.Instance.PushEvent(GAME_EVENT_ID.GE_INFO_SELF, "法宝装备栏已满"); return(NET_RESULT_DEFINE.PACKET_EXE.PACKET_EXE_CONTINUE); case GCOperateTalismanResult.UseOperateTalismanResultCode.USEOPERATETALISMAN_CANNOT_EAT: CEventSystem.Instance.PushEvent(GAME_EVENT_ID.GE_INFO_SELF, "法宝不能吃"); return(NET_RESULT_DEFINE.PACKET_EXE.PACKET_EXE_CONTINUE); case GCOperateTalismanResult.UseOperateTalismanResultCode.USEOPERATETALISMAN_MAX_LEVE: CEventSystem.Instance.PushEvent(GAME_EVENT_ID.GE_INFO_SELF, "法宝已经达到最大等级"); return(NET_RESULT_DEFINE.PACKET_EXE.PACKET_EXE_CONTINUE); } string operatorResult = ""; switch ((CGOperateTalisman.EOPTMType)packet.Type) { case CGOperateTalisman.EOPTMType.EOP_TM_EAT: { operatorResult = "吞噬"; CEventSystem.Instance.PushEvent(GAME_EVENT_ID.GE_COMPOUND_TALISMANITEM_RESULT, packet.Result); } break; case CGOperateTalisman.EOPTMType.EOP_TM_EQUIP: { CTalisman_Item bagItem = CDataPool.Instance.TalismanInventory_GetItem(packet.BagIndex - GAMEDEFINE.MAX_BAG_SIZE); CDataPool.Instance.TalismanEquip_SetItem(packet.EquiptIndex, bagItem as CObject_Item, true, true); CDataPool.Instance.TalismanInventory_SetItem((short)(packet.BagIndex - GAMEDEFINE.MAX_BAG_SIZE), null, true, true); CActionSystem.Instance.UserTalismanBag_Update(); CActionSystem.Instance.UserTalismanEquip_Update(); CEventSystem.Instance.PushEvent(GAME_EVENT_ID.GE_PACKAGE_TALISMANITEM_CHANGED, packet.BagIndex - GAMEDEFINE.MAX_BAG_SIZE); CEventSystem.Instance.PushEvent(GAME_EVENT_ID.GE_PACKAGE_TALISMANEQUIPT_CHANGED, packet.EquiptIndex); operatorResult = "法宝装备"; } break; case CGOperateTalisman.EOPTMType.EOP_TM_UNEQUIP: { operatorResult = "法宝卸下装备"; CTalisman_Item equiptItem = CDataPool.Instance.TalismanEquipment_GetItem(packet.EquiptIndex); CDataPool.Instance.TalismanInventory_SetItem((short)(packet.BagIndex - GAMEDEFINE.MAX_BAG_SIZE), equiptItem as CObject_Item, true, true); CDataPool.Instance.TalismanEquip_SetItem(packet.EquiptIndex, null, true, true); CActionSystem.Instance.UserTalismanEquip_Update(); CActionSystem.Instance.UserTalismanBag_Update(); CEventSystem.Instance.PushEvent(GAME_EVENT_ID.GE_PACKAGE_TALISMANITEM_CHANGED, packet.BagIndex - GAMEDEFINE.MAX_BAG_SIZE); CEventSystem.Instance.PushEvent(GAME_EVENT_ID.GE_PACKAGE_TALISMANEQUIPT_CHANGED, packet.EquiptIndex); } break; } CEventSystem.Instance.PushEvent(GAME_EVENT_ID.GE_INFO_SELF, operatorResult + resultInfo); } return(NET_RESULT_DEFINE.PACKET_EXE.PACKET_EXE_CONTINUE); }
public void SetItem(int index, CTalisman_Item item) { }
public override NET_RESULT_DEFINE.PACKET_EXE Execute(PacketBase pPacket, ref Peer pPlayer) { GCPackage_SwapItem Packet = (GCPackage_SwapItem)pPacket; if (GameProcedure.GetActiveProcedure() == GameProcedure.s_ProcMain) { //----------------------------------------------------- //失败的操作 if (Packet.Result == 0) { CEventSystem.Instance.PushEvent(GAME_EVENT_ID.GE_INFO_SELF, "包裹操作失败!"); return(NET_RESULT_DEFINE.PACKET_EXE.PACKET_EXE_CONTINUE); } //----------------------------------------------------- //UI数据池 short nIndex1 = (short)Packet.PIndex1; short nIndex2 = (short)Packet.PIndex2; if (nIndex1 >= GAMEDEFINE.MAX_BAG_SIZE && nIndex2 >= GAMEDEFINE.MAX_BAG_SIZE) { CTalisman_Item item1 = CDataPool.Instance.TalismanInventory_GetItem(nIndex1 - GAMEDEFINE.MAX_BAG_SIZE); CTalisman_Item item2 = CDataPool.Instance.TalismanInventory_GetItem(nIndex2 - GAMEDEFINE.MAX_BAG_SIZE); if (item1 != null && item2 == null) { CDataPool.Instance.TalismanInventory_SetItem((short)(nIndex2 - GAMEDEFINE.MAX_BAG_SIZE), item1 as CObject_Item, false, false); CDataPool.Instance.TalismanInventory_SetItem((short)(nIndex1 - GAMEDEFINE.MAX_BAG_SIZE), null, false, false); } else if (item1 == null && item2 != null) { CDataPool.Instance.TalismanInventory_SetItem((short)(nIndex1 - GAMEDEFINE.MAX_BAG_SIZE), item2 as CObject_Item, false, false); CDataPool.Instance.TalismanInventory_SetItem((short)(nIndex2 - GAMEDEFINE.MAX_BAG_SIZE), null, false, false); } CActionSystem.Instance.UserTalismanBag_Update(); CEventSystem.Instance.PushEvent(GAME_EVENT_ID.GE_PACKAGE_TALISMANITEM_CHANGED); return(NET_RESULT_DEFINE.PACKET_EXE.PACKET_EXE_CONTINUE); } //背包里的装备 CObject_Item pItem1 = CDataPool.Instance.UserBag_GetItemByIndex(nIndex1); CObject_Item pItem2 = CDataPool.Instance.UserBag_GetItemByIndex(nIndex2); //全空 if (pItem1 == null && pItem2 == null) { return(NET_RESULT_DEFINE.PACKET_EXE.PACKET_EXE_CONTINUE); } //Item1 -> Item2 else if (pItem1 != null && pItem2 == null) { CDataPool.Instance.UserBag_SetItem(nIndex2, pItem1, false, false); CDataPool.Instance.UserBag_SetItem(nIndex1, null, false, false); } //Item1 <- Item2 else if (pItem1 == null && pItem2 != null) { CDataPool.Instance.UserBag_SetItem(nIndex1, pItem2, false, false); CDataPool.Instance.UserBag_SetItem(nIndex2, null, false, false); } //Item1 <-> Item2 else { CDataPool.Instance.UserBag_SetItem(nIndex2, pItem1, false, false); CDataPool.Instance.UserBag_SetItem(nIndex1, pItem2, false, false); } // 更新主角身上的背包到ActionSystem CActionSystem.Instance.UserBag_Update(); // 通知界面事件 CEventSystem.Instance.PushEvent(GAME_EVENT_ID.GE_PACKAGE_ITEM_CHANGED); } return(NET_RESULT_DEFINE.PACKET_EXE.PACKET_EXE_CONTINUE); }
public CObject_Item NewItem(uint idTable) { CObject_Item newItem = null; if (IsWhiteEquip(idTable)) { //搜索纪录 _DBC_ITEM_EQUIP_BASE pEquip = EquipDBC.Search_Index_EQU((int)idTable); if (pEquip == null) { return(null); } newItem = new CObject_Item_Equip(CreateID()); ((CObject_Item_Equip)newItem).AsWhiteEquip(ref pEquip); //物品规则 itemRule(pEquip, newItem); } else if (IsGreenEquip(idTable)) { //搜索纪录 _DBC_ITEM_EQUIP_BASE pEquip = EquipDBC.Search_Index_EQU((int)idTable); if (pEquip == null) { return(null); } newItem = new CObject_Item_Equip(CreateID()); ((CObject_Item_Equip)newItem).AsGreenEquip(ref pEquip); //物品规则 itemRule(pEquip, newItem); } else if (IsBlueEquip(idTable)) { //搜索纪录 _DBC_ITEM_EQUIP_BASE pEquip = EquipDBC.Search_Index_EQU((int)idTable); if (pEquip == null) { return(null); } newItem = new CObject_Item_Equip(CreateID()); ((CObject_Item_Equip)newItem).AsBlueEquip(ref pEquip); //物品规则 itemRule(pEquip, newItem); } else if (IsPurpleEquip(idTable)) { //搜索纪录 _DBC_ITEM_EQUIP_BASE pEquip = EquipDBC.Search_Index_EQU((int)idTable); if (pEquip == null) { return(null); } newItem = new CObject_Item_Equip(CreateID()); ((CObject_Item_Equip)newItem).AsPurpleEquip(ref pEquip); //物品规则 itemRule(pEquip, newItem); } else if (IsMedicItem(idTable)) { COMMON_DBC <_DBC_ITEM_MEDIC> allMedic = CDataBaseSystem.Instance.GetDataBase <_DBC_ITEM_MEDIC>((int)DataBaseStruct.DBC_ITEM_MEDIC); if (allMedic != null) { _DBC_ITEM_MEDIC pMedic = allMedic.Search_Index_EQU((int)idTable); newItem = new CObject_Item_Medicine(CreateID()); ((CObject_Item_Medicine)newItem).AsMedicine(pMedic); itemRule(pMedic, newItem); } else { throw new Exception("_DBC_ITEM_MEDIC database not found"); } } else if (IsGemItem((int)idTable)) { //搜索纪录 _DBC_ITEM_GEM pGem = GemDBC.Search_Index_EQU((int)idTable); if (pGem == null) { return(null); } newItem = new CObject_Item_Gem(CreateID()); ((CObject_Item_Gem)newItem).AsGem(pGem); //物品规则 itemRule(pGem, newItem); } else if (isSymbolItem(idTable)) //是符印 { _DBC_ITEM_SYMBOL pSymbol = SymbolDBC.Search_Index_EQU((int)idTable); if (pSymbol == null) { return(null); } newItem = new CObject_Item_Symbol(CreateID()); ((CObject_Item_Symbol)newItem).AsSymbol(pSymbol); //物品规则 itemRule(pSymbol, newItem); } else if (isTalismanItem(idTable)) //是法宝 { _DBC_ITEM_TALISMAN dbItem = CDataBaseSystem.Instance.GetDataBase <_DBC_ITEM_TALISMAN>((int)DataBaseStruct.DBC_ITEM_TALISMAN).Search_Index_EQU((int)idTable); if (dbItem == null) { return(null); } newItem = new CTalisman_Item(CreateID()); CTalisman_Item curItem = newItem as CTalisman_Item; curItem.Define = dbItem; //物品规则 itemRule(dbItem, newItem); } if (newItem == null) { LogManager.LogError("物品编号填写错误!,ID:" + idTable); } else { newItem.m_idTable = (int)idTable; allItems[newItem.GetID()] = newItem; } return(newItem); }