예제 #1
0
    public void ChangeRoleSlot(cmd_match_room_hero_pos_change _data, int _isSelf)
    {
        Value tmpFromTeamFrame    = null;
        Value tmpFromtRoleSlot    = null;
        Value tmpFromRoleSlotInfo = null;

        Value tmpToTeamFrame = null;

        //缓存原位置的信息
        //拿到队伍
        GetTeamFrame(_data.nCampFrom, out tmpFromTeamFrame);
        if (!Value.IsValueValid(tmpFromTeamFrame))
        {
            return;
        }
        //拿到RoleSlot
        tmpFromtRoleSlot = tmpFromTeamFrame.Invoke("GetRoleSlot", _data.nPlayerSlotIDFrom);
        if (!Value.IsValueValid(tmpFromtRoleSlot))
        {
            return;
        }

        //拿RoleSlot要显示的信息

        tmpFromRoleSlotInfo = tmpFromtRoleSlot.Invoke("GetRoleSlotViewInfo");
        if (!Value.IsValueValid(tmpFromRoleSlotInfo))
        {
            return;
        }

        //原位置缓存的信息丢给新位置
        GetTeamFrame(_data.nCampTo, out tmpToTeamFrame);
        if (!Value.IsValueValid(tmpToTeamFrame))
        {
            return;
        }
        bool   bIsMaster      = (bool)tmpFromRoleSlotInfo.GetElement(0);
        int    nHeroID        = (int)tmpFromRoleSlotInfo.GetElement(1);
        string strPlayerName  = (string)tmpFromRoleSlotInfo.GetElement(2);
        string strPlayerState = (string)tmpFromRoleSlotInfo.GetElement(3);

        //自己切换位置,那就是本地玩家了
        //这里有bug,本地非本地都走这里改位置的
        if (tmpToTeamFrame.Invoke("SetRoleSlotInfo", _isSelf, bIsMaster, _data.nPlayerSlotIDTo, nHeroID
                                  , strPlayerName, strPlayerState, false, bIsLocalMaster) == null)
        {
            Trace.LogError("call SetRoleSlotInfo faild");
            return;
        }
        //并把原位置设空
        if (tmpFromtRoleSlot.Invoke("ResetViewInfoEmpty") == null)
        {
            Trace.LogError("call ResetViewInfoEmpty Failed");
            return;
        }
    }
예제 #2
0
    //点击新位置,丢给逻辑层查看是否可以转到新位置
    public void onRoleSlotMouseClick(int _slotCamp, int _slotID)
    {
        if (_eMatchRoomState >= EMatchRoomState.MatchRoomState_SelectHero)
        {
            return;
        }

        cmd_match_room_hero_pos_change data = new cmd_match_room_hero_pos_change();

        data.nCampTo         = _slotCamp;
        data.nPlayerSlotIDTo = _slotID;

        ViewEventHelper.Instance.SendCommand <cmd_match_room_hero_pos_change>(GameLogicDef.GVIEWCMD_MATCH_ROOM_HERO_POS_CHANGE, ref data);
    }