// 是否可钓鱼
    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);
 }
Example #3
0
// 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);
    }