//进入激活 public override void Tripper_Active() { if (m_pResourceDef == null) { return; } Network.Packets.CGUseAbility msg = new Network.Packets.CGUseAbility(); int idAbility = m_pResourceDef.nLifeAbility; //if( CObjectManager.Instance.getPlayerMySelf().CharacterLogic_Get() == ENUM_CHARACTER_LOGIC.CHARACTER_LOGIC_ABILITY_ACTION ) // return; //如果没有该生活技能,返回 if ((CObjectManager.Instance.getPlayerMySelf().GetCharacterData().Get_LifeAbility(idAbility)) == null) { _DBC_LIFEABILITY_DEFINE pAbilityDef = DBSystem.CDataBaseSystem.Instance.GetDataBase <_DBC_LIFEABILITY_DEFINE>((int)DataBaseStruct.DBC_LIFEABILITY_DEFINE).Search_Index_EQU(idAbility); if (pAbilityDef == null) { return; } string szMsg = "需要" + pAbilityDef.szName + "生活技能"; GameProcedure.s_pEventSystem.PushEvent(GAME_EVENT_ID.GE_INFO_SELF, szMsg); return; } msg.SetAbilityID((short)idAbility); msg.SetPlatformGUID((uint)ServerID); msg.SetPrescriptionID(MacroDefine.INVALID_ID); msg.SetSpecialFlag(MacroDefine.UINT_MAX); GameProcedure.s_NetManager.SendPacket(msg); }
// 能否可以开采资源 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); }