예제 #1
0
    public void SendSetSkillMessage(int loction, uint skillid, SkillSettingAction action, uint srcIndex = 0, uint srcSkill = 0)
    {
        GameCmd.stSetUsePosSkillUserCmd_CS cmd = new stSetUsePosSkillUserCmd_CS();
        if (action == SkillSettingAction.Add || action == SkillSettingAction.Replace)
        {
            cmd.index   = (uint)loction;
            cmd.skillid = skillid;
            cmd.status  = (uint)ShowState;
        }
        else if (action == SkillSettingAction.Remove)
        {
            cmd.src_index   = (uint)srcIndex;
            cmd.src_skillid = srcSkill;
            cmd.status      = (uint)ShowState;
        }
        else if (action == SkillSettingAction.Swap || action == SkillSettingAction.Move)
        {
            cmd.index       = (uint)loction;
            cmd.skillid     = skillid;
            cmd.status      = (uint)ShowState;
            cmd.src_index   = srcIndex;
            cmd.src_skillid = srcSkill;
        }

        NetService.Instance.Send(cmd);
    }
예제 #2
0
    /// <summary>
    /// 升级后自动设置技能
    /// </summary>
    void AutoSetSkill()
    {
        IPlayer mainPlayer        = ClientGlobal.Instance().MainPlayer;
        int     job               = mainPlayer.GetProp((int)PlayerProp.Job);
        int     level             = mainPlayer.GetProp((int)CreatureProp.Level);
        List <SkillDatabase> list = GetRoleSkillList();

        SkillDatabase db = list.Find((x) => { return(x.dwNeedLevel == level && x.wdLevel == 1); });

        if (db != null)
        {
            int loc = GameTableManager.Instance.GetGlobalConfig <int>("UnlockSkillLocation", level.ToString());
            if (loc != 0)
            {
                GameCmd.stSetUsePosSkillUserCmd_CS cmd = new stSetUsePosSkillUserCmd_CS();
                cmd.index   = (uint)loc;
                cmd.skillid = db.wdID;
                cmd.status  = (uint)1;
                NetService.Instance.Send(cmd);
            }
        }
    }
예제 #3
0
 public void OnSetLocation(stSetUsePosSkillUserCmd_CS cmd)
 {
     if (cmd.ret == (uint)SkillRet.SkillRet_Success)
     {
         //Log.Info("技能设置成功 error code is " + cmd.ret);
         stSetSkillPos sp = new stSetSkillPos();
         sp.pos     = cmd.index;
         sp.skillid = cmd.skillid;
         uint level = GetUnLockLevelByLoc((uint)cmd.index);
         if (MainPlayerHelper.GetPlayerLevel() > level)
         {
             DataManager.Manager <UIPanelManager>().SendMsg(PanelID.MainPanel, UIMsgID.eSkillBtnRefresh, null);
         }
         else
         {
             EventEngine.Instance().DispatchEvent((int)GameEventID.SKILLSYSTEM_SETSKILLPOS, sp);
         }
     }
     else
     {
         SetAllSettingItem();
         Log.Error("技能设置错误 error code is " + cmd.ret);
     }
 }
예제 #4
0
 public void OnArenaSetSkillLocation(stSetUsePosSkillUserCmd_CS cmd)
 {
     DataManager.Manager <LearnSkillDataManager>().OnSetLocation(cmd);
 }