// 是否可钓鱼 public bool Resource_CanFish(float distance) { if (m_pResourceDef == null) { return(false); } SCLIENT_LIFEABILITY pAbilityDef = CObjectManager.Instance.getPlayerMySelf().GetCharacterData().Get_LifeAbility(m_pResourceDef.nLifeAbility); if (pAbilityDef == null) { return(false); } if (pAbilityDef.m_pDefine.nID == (int)LIFE_ABILITY.LIFE_ABILITY_FISH) { float fishdistance = pAbilityDef.m_pDefine.fPlatformDist; //需要距离合适,如果距离不够,也不能开始钓。 if (distance > fishdistance) { // CGameProcedure::s_pEventSystem->PushEvent(GE_INFO_SELF,"The distance is too far."); //SCRIPT_SANDBOX::Talk::s_Talk.AddSelfMessage("距离太远!"); /*ADDTALKMSG("距离太远!");*/ //todo return(false); } } return(true); }
// 查看资源所需要的操作距离 public float Resource_GetOperationDistance() { if (m_pResourceDef != null) { SCLIENT_LIFEABILITY pAbilityDef = CObjectManager.Instance.getPlayerMySelf().GetCharacterData().Get_LifeAbility(m_pResourceDef.nLifeAbility); if (pAbilityDef != null) { return(pAbilityDef.m_pDefine.fPlatformDist); } } return(0.0f); }
// public ~CActionItem_LifeAbility(); // // //更新生活技能 public void Update_LifeAbility(SCLIENT_LIFEABILITY pAbility) { //todo }
// 能否可以开采资源 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); }