//生成一件绿色装备 public void AsGreenEquip(ref _DBC_ITEM_EQUIP_BASE pDefine) { this.AsEquipBase(pDefine, EQUIP_QUALITY.GREEN_EQUIP); }
//生成一件白色装备 public void AsWhiteEquip(ref _DBC_ITEM_EQUIP_BASE pDefine) { this.AsEquipBase(pDefine, EQUIP_QUALITY.WHITE_EQUIP); }
protected void UpdateEquip(HUMAN_EQUIP point) { CCharacterData pCharacterData = GetCharacterData(); if (pCharacterData == null) { return; } //生成一个临时的Item对象 int nID = pCharacterData.Get_Equip(point); // CObject_Item_Equip pTempEquip = null; // // if(nID != MacroDefine.INVALID_ID) // { // pTempEquip = (CObject_Item_Equip)CObject_Item.NewItem(nID); // visualID = pTempEquip.GetVisualID(); // } //因为和物品相关的代码还没有完成,暂时直接访问数据库 [1/4/2012 ZZY] DBC.COMMON_DBC <_DBC_ITEM_EQUIP_BASE> equipBaseDBC = CDataBaseSystem.Instance.GetDataBase <_DBC_ITEM_EQUIP_BASE>((int)DataBaseStruct.DBC_ITEM_EQUIP_BASE); _DBC_ITEM_EQUIP_BASE pEquip = equipBaseDBC.Search_Index_EQU(nID); //如果是装备根据装配点装备物品 bool result = false; if (/*pTempEquip != null && ITEM_CLASS.ICLASS_EQUIP == pTempEquip.GetItemClass()*/ pEquip != null && pEquip.nVisualID != MacroDefine.INVALID_ID) { if (point == HUMAN_EQUIP.HEQUIP_WEAPON) { if (m_bHideWeapon == true && mRenderInterface != null) //如果当前正隐藏武器,那么不装备武器 [2012/4/18 ZZY] { mRenderInterface.changeRightWeapon(""); mRenderInterface.changeLeftWeapon(""); SetWeaponType(ENUM_WEAPON_TYPE.WEAPON_TYPE_NONE); } else { result = EquipItem_BodyLocator(/*pTempEquip.GetItemType()*/ point, pEquip.nVisualID); SetWeaponType((ENUM_WEAPON_TYPE)pEquip.nType); } } else { result = EquipItem_BodyPart(point, pEquip.nVisualID); } } else { //卸载装备 UnEquipItem(point); } // [5/6/2011 ivan edit] if (result == false) { UnEquipItem(point); } //CObject_Item.DestroyItem(pTempEquip); }
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); }
// 能否可以开采资源 public bool Resource_CanOperation() { if (m_pResourceDef == null) { return(false); } SCLIENT_LIFEABILITY pSclientAbilityDef = (CObjectManager.Instance.getPlayerMySelf().GetCharacterData().Get_LifeAbility(m_pResourceDef.nLifeAbility)); if (pSclientAbilityDef == null) { _DBC_LIFEABILITY_DEFINE pAbilityDef = DBSystem.CDataBaseSystem.Instance.GetDataBase <_DBC_LIFEABILITY_DEFINE>((int)DataBaseStruct.DBC_LIFEABILITY_DEFINE).Search_Index_EQU(m_pResourceDef.nLifeAbility); if (pAbilityDef == null) { return(false); } string szMsg = "Ability_Requiement" + pAbilityDef.szName; GameProcedure.s_pEventSystem.PushEvent(GAME_EVENT_ID.GE_INFO_SELF, szMsg); return(false); } int my_level = CObjectManager.Instance.getPlayerMySelf().GetCharacterData().Get_Level(); if (my_level < pSclientAbilityDef.m_pDefine.nLevelNeed) { GameProcedure.s_pEventSystem.PushEvent(GAME_EVENT_ID.GE_INFO_SELF, "等级不够"); return(false); } int idNeedFacility = pSclientAbilityDef.m_pDefine.nToolNeed; if (idNeedFacility >= 0) { bool bHaveTool = false; CObject_Item Facility; Facility = CDataPool.Instance.UserEquip_GetItem(HUMAN_EQUIP.HEQUIP_WEAPON); if (Facility == null || idNeedFacility != Facility.GetParticularID()) { for (int i = 0; i < GAMEDEFINE.MAX_BAG_SIZE; i++) { if ((Facility = CDataPool.Instance.UserBag_GetItem(i)) != null) { if (idNeedFacility == Facility.GetParticularID()) { bHaveTool = true; break; } } } string szTemp = ""; //从资源表中去查找工具名称 DBC.COMMON_DBC <_DBC_ITEM_EQUIP_BASE> equipBaseDBC = DBSystem.CDataBaseSystem.Instance.GetDataBase <_DBC_ITEM_EQUIP_BASE>((int)DataBaseStruct.DBC_ITEM_EQUIP_BASE); _DBC_ITEM_EQUIP_BASE pWhiteEquip = equipBaseDBC.Search_Index_EQU(idNeedFacility); if (pWhiteEquip != null) { if (bHaveTool) { szTemp = "你需要先将" + pWhiteEquip.szName + "装备上"; } else { szTemp = "你还没有" + pWhiteEquip.szName; } } else { szTemp = "你需要装备工具。"; } GameProcedure.s_pEventSystem.PushEvent(GAME_EVENT_ID.GE_INFO_SELF, szTemp); //todo // ADDTALKMSG(szTemp); return(false); } } return(true); }