Exemplo n.º 1
0
    protected override void OnRequest(request_skill_op request, object userdata)
    {
        if (userdata is SkillEquipActionParam)
        {
            SkillEquipActionParam param = userdata as SkillEquipActionParam;
            request.op_type = (int)SKILL_OP_TYPE.SKILL_OP_EQUIP;

            skill_equip_info info = new skill_equip_info();
            for (int i = 0; i < param.EquipIdx.Length; ++i)
            {
                info.equip_id.Add(param.EquipIdx[i]);
            }
            request.equip_info = info;
        }
        if (userdata is SkillLevelActionParam)
        {
            SkillLevelActionParam param = userdata as SkillLevelActionParam;
            request.op_type = (int)SKILL_OP_TYPE.SKILL_OP_LEVEL;

            for (int i = 0; i < param.SkillIdxs.Count; ++i)
            {
                request.skill_idx.Add(param.SkillIdxs[i]);
            }

            for (int i = 0; i < param.DefaultEquips.Count; ++i)
            {
                request.default_equip_idx.Add(param.DefaultEquips[i]);
            }
        }
        if (userdata is SkillWeaponSkillParam)
        {
            request.op_type = (int)SKILL_OP_TYPE.SKILL_OP_UNLOCK_WEAPON_SKILL;
        }
    }
Exemplo n.º 2
0
    ///技能升级;
    public bool Upgrade(int skillId)
    {
        SkillLevelTableItem item = GetDetailByCurLvSkillID(skillId);

        if (item == null)
        {
            return(false);
        }

        PlayerDataModule pdm = ModuleManager.Instance.FindModule <PlayerDataModule>();

        if (pdm == null)
        {
            return(false);
        }

        ProceedsType pt       = (ProceedsType)item.money_type;
        uint         moneyNum = pdm.GetProceeds(pt);

        if (item.money_num > moneyNum)
        {
            //Debug.LogError("钱不够了,升级失败");
            if (pt == ProceedsType.Money_Game)
            {
                PopTipManager.Instance.AddNewTip(StringHelper.StringWithColor(FontColor.Red, StringHelper.GetString("skill_lvup_nomoney")));
            }
            else if (pt == ProceedsType.Money_RMB)
            {
                PopTipManager.Instance.AddNewTip(StringHelper.StringWithColor(FontColor.Red, StringHelper.GetString("skill_lvup_normb")));
            }
            return(false);
        }

        if (pdm.GetLevel() < item.level)
        {
            //人物等级不足,技能升级失败;
            PopTipManager.Instance.AddNewTip(StringHelper.StringWithColor(FontColor.Red, StringHelper.GetString("skill_lvup_nolevel")));
            return(false);
        }

        SkillLevelActionParam param = new SkillLevelActionParam();

        param.SkillIdxs.Add(skillId);

        Net.Instance.DoAction((int)MESSAGE_ID.ID_MSG_SKILL, param);

//         pdm.ChangeProceeds((ProceedsType)item.money_type, (int)(moneyNum - item.money_num));
//      PlayerData pd = PlayerDataPool.Instance.MainData;
//      int tempLv = pd.skillData.mLevels[skillId];
//      pd.skillData.mLevels[skillId] = tempLv + 1;
        return(true);
    }
Exemplo n.º 3
0
//     public bool SetSkillEquip(int[] equips )
//     {
//         PlayerData pd = PlayerDataPool.Instance.MainData;
//         for (int i = 0; i < equips.Length && i < SkillMaxCountDefine.MAX_EQUIP_SKILL_NUM;++i )
//         {
//             pd.skillData.skills[i] = equips[i];
//         }
//
//         //更新界面
//         SkillUIEvent sue = new SkillUIEvent(SkillUIEvent.SKILL_EQUIP);
//         EventSystem.Instance.PushEvent(sue);
//
//         return true;
//
    public void GiveSkills(List <string> skills)
    {
        SkillLevelActionParam param = new SkillLevelActionParam();

        for (int i = 0; i < skills.Count; ++i)
        {
            int skillidx = int.Parse(skills[i]);
            if (GetSkillLvBySkillID(skillidx) <= 0)
            {
                param.SkillIdxs.Add(skillidx);
                param.DefaultEquips.Add(skillidx - 1);
            }
        }
        if (param.SkillIdxs.Count > 0)
        {
            Net.Instance.DoAction((int)MESSAGE_ID.ID_MSG_SKILL, param);
        }
    }
Exemplo n.º 4
0
    ///技能解锁;
    public void UnLock(int skillId)
    {
        if (GetSkillLvBySkillID(skillId) <= 0)
        {
            //直接向服务器发送 升级请求 服务器会判定 0级技能 需要解锁
            SkillLevelActionParam param = new SkillLevelActionParam();
            param.SkillIdxs.Add(skillId);
            param.DefaultEquips.Add(-1);
            Net.Instance.DoAction((int)MESSAGE_ID.ID_MSG_SKILL, param);
        }


//      PlayerData pd = PlayerDataPool.Instance.MainData;
//
//      //可以解锁状态下的技能才可以解锁成功;
//      if(!pd.skillData.mLevels.ContainsKey(skillId) || pd.skillData.mLevels[skillId] != 0)
//          return;
//
//      pd.skillData.mLevels[skillId] = 1;
    }