コード例 #1
0
    public static PacketDistributed CreatePacket(MessageID packetID)
    {
        PacketDistributed packet = null;

        switch (packetID)
        {
        case MessageID.PACKET_CG_CHAT: { packet = new CG_CHAT(); } break;

        case MessageID.PACKET_CG_CONNECTED_HEARTBEAT: { packet = new CG_CONNECTED_HEARTBEAT(); } break;

        case MessageID.PACKET_CG_FIGHT: { packet = new CG_FIGHT(); } break;

        case MessageID.PACKET_CG_LEAVE_COPYSCENE: { packet = new CG_LEAVE_COPYSCENE(); } break;

        case MessageID.PACKET_CG_LOGIN: { packet = new CG_LOGIN(); } break;

        case MessageID.PACKET_CG_MOVE: { packet = new CG_MOVE(); } break;

        case MessageID.PACKET_CG_REQ_NEAR_LIST: { packet = new CG_REQ_NEAR_LIST(); } break;

        case MessageID.PACKET_GC_ATTACKFLY: { packet = new GC_ATTACKFLY(); } break;

        case MessageID.PACKET_GC_CHAT: { packet = new GC_CHAT(); } break;

        case MessageID.PACKET_GC_CONNECTED_HEARTBEAT: { packet = new GC_CONNECTED_HEARTBEAT(); } break;

        case MessageID.PACKET_GC_DELETE_OBJ: { packet = new GC_DELETE_OBJ(); } break;

        case MessageID.PACKET_GC_FORCE_SETPOS: { packet = new GC_FORCE_SETPOS(); } break;

        case MessageID.PACKET_GC_LOGIN_RET: { packet = new GC_LOGIN_RET(); } break;

        case MessageID.PACKET_GC_MOVE: { packet = new GC_MOVE(); } break;

        case MessageID.PACKET_GC_NEAR_MARCHLIST: { packet = new GC_NEAR_MARCHLIST(); } break;

        case MessageID.PACKET_GC_NOTICE: { packet = new GC_NOTICE(); } break;

        case MessageID.PACKET_GC_PLAY_EFFECT: { packet = new GC_PLAY_EFFECT(); } break;

        case MessageID.PACKET_GC_REMOVEEFFECT: { packet = new GC_REMOVEEFFECT(); } break;

        case MessageID.PACKET_GC_RET_USE_SKILL: { packet = new GC_RET_USE_SKILL(); } break;

        case MessageID.PACKET_GC_STOP: { packet = new GC_STOP(); } break;

        case MessageID.PACKET_GC_TELEMOVE: { packet = new GC_TELEMOVE(); } break;

        case MessageID.PACKET_GC_UPDATE_ANIMATION_STATE: { packet = new GC_UPDATE_ANIMATION_STATE(); } break;

        case MessageID.PACKET_GC_UPDATE_NEEDIMPACTINFO: { packet = new GC_UPDATE_NEEDIMPACTINFO(); } break;

        case MessageID.PACKET_GC_UPDATE_SCENE_INSTACTIVATION: { packet = new GC_UPDATE_SCENE_INSTACTIVATION(); } break;
        }
        if (null != packet)
        {
            packet.packetID = packetID;
        }
        return(packet);
    }
コード例 #2
0
 public static void SetUseSkill(CUseSkill useSkill, GC_RET_USE_SKILL gcUseSkill)
 {
     useSkill.sceneId       = gcUseSkill.SceneId;
     useSkill.senderId      = gcUseSkill.SenderId;
     useSkill.skillfailType = gcUseSkill.SkillfailType;
     useSkill.skillId       = gcUseSkill.SkillId;
     useSkill.skillname     = gcUseSkill.Skillname;
     useSkill.targetId      = gcUseSkill.TargetId;
 }
コード例 #3
0
        public uint Execute(PacketDistributed ipacket)
        {
            GC_RET_USE_SKILL packet = (GC_RET_USE_SKILL )ipacket;

            if (null == packet)
            {
                return((uint)PACKET_EXE.PACKET_EXE_ERROR);
            }
            //enter your logic
            return((uint)PACKET_EXE.PACKET_EXE_CONTINUE);
        }
コード例 #4
0
        public uint Execute(PacketDistributed ipacket)
        {
            GC_RET_USE_SKILL packet = (GC_RET_USE_SKILL )ipacket;

            if (null == packet)
            {
                return((uint)PACKET_EXE.PACKET_EXE_ERROR);
            }
            //enter your logic
            BattleProxy proxy = GameFacade.GetProxy <BattleProxy>();

            BattleProxy.SetUseSkill(proxy.UseSkill, packet);
            EventManager.GetInstance().SendEvent(EventId.ReceiveSkill, packet);
            return((uint)PACKET_EXE.PACKET_EXE_CONTINUE);
        }
コード例 #5
0
    public static PacketDistributed CreatePacket(MessageID packetID)
    {
        PacketDistributed packet = null;

        switch (packetID)
        {
        case MessageID.PACKET_CG_ASSIGN_HERO: { packet = new CG_ASSIGN_HERO(); } break;

        case MessageID.PACKET_CG_BATTLEINFOR: { packet = new CG_BATTLEINFOR(); } break;

        case MessageID.PACKET_CG_BATTLEPREPARE: { packet = new CG_BATTLEPREPARE(); } break;

        case MessageID.PACKET_CG_BUILDING_LEVELUP: { packet = new CG_Building_LevelUp(); } break;

        case MessageID.PACKET_CG_CHAT: { packet = new CG_CHAT(); } break;

        case MessageID.PACKET_CG_CONNECTED_HEARTBEAT: { packet = new CG_CONNECTED_HEARTBEAT(); } break;

        case MessageID.PACKET_CG_CREATEROLE: { packet = new CG_CREATEROLE(); } break;

        case MessageID.PACKET_CG_FIGHT: { packet = new CG_FIGHT(); } break;

        case MessageID.PACKET_CG_LEAVE_COPYSCENE: { packet = new CG_LEAVE_COPYSCENE(); } break;

        case MessageID.PACKET_CG_LOGIN: { packet = new CG_LOGIN(); } break;

        case MessageID.PACKET_CG_MARCH_MOVE: { packet = new CG_MARCH_MOVE(); } break;

        case MessageID.PACKET_CG_MOVE: { packet = new CG_MOVE(); } break;

        case MessageID.PACKET_CG_OBJPOSLIST: { packet = new CG_OBJPOSLIST(); } break;

        case MessageID.PACKET_CG_REQ_NEAR_LIST: { packet = new CG_REQ_NEAR_LIST(); } break;

        case MessageID.PACKET_CG_ROBOT_OPEN: { packet = new CG_ROBOT_OPEN(); } break;

        case MessageID.PACKET_CG_SEND_MARCH: { packet = new CG_SEND_MARCH(); } break;

        case MessageID.PACKET_CG_SKILL_USE: { packet = new CG_SKILL_USE(); } break;

        case MessageID.PACKET_CG_TROOP_TRAIN: { packet = new CG_Troop_Train(); } break;

        case MessageID.PACKET_GC_ASSIGN_HERO: { packet = new GC_ASSIGN_HERO(); } break;

        case MessageID.PACKET_GC_ATTACKFLY: { packet = new GC_ATTACKFLY(); } break;

        case MessageID.PACKET_GC_BATTLEEND: { packet = new GC_BATTLEEND(); } break;

        case MessageID.PACKET_GC_BATTLEINFOR: { packet = new GC_BATTLEINFOR(); } break;

        case MessageID.PACKET_GC_BATTLEPREPARE: { packet = new GC_BATTLEPREPARE(); } break;

        case MessageID.PACKET_GC_BATTLESTART: { packet = new GC_BattleStart(); } break;

        case MessageID.PACKET_GC_BUILDING_LEVELUP: { packet = new GC_Building_LevelUp(); } break;

        case MessageID.PACKET_GC_CHAT: { packet = new GC_CHAT(); } break;

        case MessageID.PACKET_GC_CONNECTED_HEARTBEAT: { packet = new GC_CONNECTED_HEARTBEAT(); } break;

        case MessageID.PACKET_GC_CREATEROLE_RET: { packet = new GC_CREATEROLE_RET(); } break;

        case MessageID.PACKET_GC_DELETE_OBJ: { packet = new GC_DELETE_OBJ(); } break;

        case MessageID.PACKET_GC_FIGHT: { packet = new GC_FIGHT(); } break;

        case MessageID.PACKET_GC_FORCE_SETPOS: { packet = new GC_FORCE_SETPOS(); } break;

        case MessageID.PACKET_GC_LOGIN_QUEUE_STATUS: { packet = new GC_LOGIN_QUEUE_STATUS(); } break;

        case MessageID.PACKET_GC_LOGIN_RET: { packet = new GC_LOGIN_RET(); } break;

        case MessageID.PACKET_GC_MARCH_MOVE: { packet = new GC_MARCH_MOVE(); } break;

        case MessageID.PACKET_GC_MOVE: { packet = new GC_MOVE(); } break;

        case MessageID.PACKET_GC_NEAR_MARCHLIST: { packet = new GC_NEAR_MARCHLIST(); } break;

        case MessageID.PACKET_GC_NOTICE: { packet = new GC_NOTICE(); } break;

        case MessageID.PACKET_GC_OBJCOMMANDPURSUE: { packet = new GC_OBJCOMMANDPURSUE(); } break;

        case MessageID.PACKET_GC_OBJGETHURT: { packet = new GC_OBJGETHURT(); } break;

        case MessageID.PACKET_GC_OBJPOSLIST: { packet = new GC_OBJPOSLIST(); } break;

        case MessageID.PACKET_GC_OBJPREPAREFORATTACK: { packet = new GC_OBJPREPAREFORATTACK(); } break;

        case MessageID.PACKET_GC_PLAY_EFFECT: { packet = new GC_PLAY_EFFECT(); } break;

        case MessageID.PACKET_GC_REMOVEEFFECT: { packet = new GC_REMOVEEFFECT(); } break;

        case MessageID.PACKET_GC_RET_USE_SKILL: { packet = new GC_RET_USE_SKILL(); } break;

        case MessageID.PACKET_GC_ROBOT_OPEN: { packet = new GC_ROBOT_OPEN(); } break;

        case MessageID.PACKET_GC_SEND_MARCH: { packet = new GC_SEND_MARCH(); } break;

        case MessageID.PACKET_GC_STOP: { packet = new GC_STOP(); } break;

        case MessageID.PACKET_GC_TELEMOVE: { packet = new GC_TELEMOVE(); } break;

        case MessageID.PACKET_GC_TROOPTRAIN_OVER: { packet = new GC_TroopTrain_Over(); } break;

        case MessageID.PACKET_GC_TROOP_TRAIN: { packet = new GC_Troop_Train(); } break;

        case MessageID.PACKET_GC_UPDATE_ANIMATION_STATE: { packet = new GC_UPDATE_ANIMATION_STATE(); } break;

        case MessageID.PACKET_GC_UPDATE_MARCH: { packet = new GC_Update_March(); } break;

        case MessageID.PACKET_GC_UPDATE_NEEDIMPACTINFO: { packet = new GC_UPDATE_NEEDIMPACTINFO(); } break;

        case MessageID.PACKET_GC_UPDATE_SCENE_INSTACTIVATION: { packet = new GC_UPDATE_SCENE_INSTACTIVATION(); } break;
        }
        if (null != packet)
        {
            packet.packetID = packetID;
        }
        return(packet);
    }
コード例 #6
0
        public uint Execute(PacketDistributed ipacket)
        {
            GC_RET_USE_SKILL packet = (GC_RET_USE_SKILL)ipacket;

            if (null == packet)
            {
                return((uint)PACKET_EXE.PACKET_EXE_ERROR);
            }
            //enter your logic
            int nSkillId  = packet.HasFixedSkillId ? packet.FixedSkillId : packet.SkillId;
            int nSenderId = packet.SenderId;
            int nTargetID = packet.TargetId;

            Obj_Character Sender = Singleton <ObjManager> .GetInstance().FindObjCharacterInScene(nSenderId);

            if (Sender == null)
            {
                return((uint)PACKET_EXE.PACKET_EXE_CONTINUE);
            }
            if (Sender.SkillCore == null)
            {
                return((uint)PACKET_EXE.PACKET_EXE_CONTINUE);
            }
            int nFailType = (int)SKILLUSEFAILTYPE.INVALID;

            if (packet.HasSkillfailType)
            {
                nFailType = packet.SkillfailType;
            }
            string szSkillName = "";

            if (packet.HasSkillname)
            {
                szSkillName = packet.Skillname;
            }
            if (nFailType == (int)SKILLUSEFAILTYPE.DISTANCE)
            {
                if (Sender.ObjType == Games.GlobeDefine.GameDefine_Globe.OBJ_TYPE.OBJ_MAIN_PLAYER)
                {
                    //服务器认定 距离不够 再往前走点
                    Obj_Character targetCharacter = Singleton <ObjManager> .GetInstance().FindObjCharacterInScene(nTargetID);

                    if (targetCharacter)
                    {
                        Tab_SkillEx _skillEx = TableManager.GetSkillExByID(nSkillId, 0);
                        if (_skillEx != null)
                        {
                            if (Sender.SkillCore.IsUsingSkill)
                            {
                                Sender.SkillCore.BreakCurSkill();
                            }
                            Singleton <ObjManager> .GetInstance().MainPlayer.CurUseSkillId = nSkillId;

                            Singleton <ObjManager> .GetInstance().MainPlayer.MoveTo(targetCharacter.Position, targetCharacter.gameObject, _skillEx.Radius - 2.0f);
                        }
                    }
                }
            }
            else
            {
                //结婚相关特殊表现
                if (nSkillId == GlobeVar.MARRY_SKILL_2)
                {
                    Sender.SkillCore.BreakCurSkill();
                    Sender.FaceTo(new UnityEngine.Vector3(13.79419f, 0.9015087f, 30.36249f));
                }
                //结婚相关特殊表现
                if (nSkillId == GlobeVar.MARRY_SKILL_1)
                {
                    Sender.SkillCore.BreakCurSkill();
                    Sender.FaceTo(new UnityEngine.Vector3(13.79419f, 0.9015087f, 4.068859f));
                }
                if (szSkillName != "")
                {
                    Sender.SkillCore.UseSkill(nSkillId, nSenderId, nTargetID, szSkillName);
                }
                else
                {
                    Sender.SkillCore.UseSkill(nSkillId, nSenderId, nTargetID);
                }

                Tab_SkillEx _skillEx = TableManager.GetSkillExByID(nSkillId, 0);
            }

            if (Sender is Obj_MainPlayer)
            {
                //if the main player in the state of changing mode

                int nImpactCount = GameManager.gameManager.PlayerDataPool.ClientImpactInfo.Count;

                Obj_MainPlayer _mainPlayer = Singleton <ObjManager> .Instance.MainPlayer;
                Tab_SkillEx    _skillEx    = TableManager.GetSkillExByID(nSkillId, 0);

                Tab_SkillBase _skillBase = null;

                int nSkillIndex  = -1;
                int nChangeState = -1;
                if (null != _mainPlayer)
                {
                    for (int i = 0; i < _mainPlayer.OwnSkillInfo.Length; i++)
                    {
                        if (_mainPlayer.OwnSkillInfo[i].SkillId == nSkillId)
                        {
                            nSkillIndex = i;
                            break;
                        }
                    }

                    nChangeState = _mainPlayer.GetCurrentChangeState();

                    // added by mawenbin
                    // 缓存玩家使用的技能,用于挂机连续技的判定
                    AI_PlayerCombat aiPlayerCombat = _mainPlayer.GetComponent <AI_PlayerCombat>();
                    if (null != aiPlayerCombat && Games.GlobeDefine.GameDefine_Globe.OBJ_TYPE.OBJ_MAIN_PLAYER == Sender.ObjType)
                    {
                        aiPlayerCombat.CurUseSkillId = nSkillId;
                    }
                }

                if (null != _skillEx)
                {
                    _skillBase = TableManager.GetSkillBaseByID(_skillEx.BaseId, 0);
                }

                if (null != _skillBase)
                {
                    if (null != SkillBarLogic.Instance())
                    {
                        //if the skill is xp skill and can put into skillbar
                        if ((_skillBase.SkillClass & (int)SKILLCLASS.AUTOREPEAT) == 0 &&
                            (_skillBase.SkillClass & (int)SKILLCLASS.XP) == 0 &&
                            (_skillBase.GetChangeModebyIndex(_mainPlayer.CurChangeState) > 0) &&
                            (_skillBase.SkillClass & (int)SKILLCLASS.PASSIVITY) == 0)
                        {
                            for (int i = 0; i < SkillBarLogic.Instance().MySkillBarInfo.Length; i++)
                            {
                                if (nSkillId == SkillBarLogic.Instance().MySkillBarInfo[i].CurSkillId)
                                {
                                    SkillBarLogic.Instance().MySkillBarInfo[i].nPreSkillId           = nSkillId;
                                    SkillBarLogic.Instance().MySkillBarInfo[i].fCurrentStartTime     = Time.realtimeSinceStartup;
                                    SkillBarLogic.Instance().MySkillBarInfo[i].fCurDisabledStartTime = Time.realtimeSinceStartup;
                                    SkillBarLogic.Instance().MySkillBarInfo[i].nCurrentCDTime        = _skillEx.NextSkillEffectTime / 1000.0f;
                                    SkillBarLogic.Instance().MySkillBarInfo[i].fRemainCDTime         = _skillEx.NextSkillEffectTime / 1000.0f;
                                    SkillBarLogic.Instance().MySkillBarInfo[i].fDisabledRemTime      = _skillEx.NextSkillDisabledTime / 1000.0f;
                                    SkillBarLogic.Instance().MySkillBarInfo[i].fCurDisabedTime       = _skillEx.NextSkillDisabledTime / 1000.0f;
                                    SkillBarLogic.Instance().MySkillBarInfo[i].SkillCount++;
                                    if (false == GameManager.gameManager.PlayerDataPool.CommonData.GetCommondFlag((int)USER_COMMONFLAG.CF_COMBO_FIRSTUSED))
                                    {
                                        if (nSkillId == GlobeVar.SHUANGJIANSHI_SKILL1_COMBO1 || nSkillId == GlobeVar.SHUANGJIANSHI_SKILL1_COMBO2)
                                        {
                                            SkillBarLogic.Instance().MySkillBarInfo[i].nCurrentCDTime = 10;
                                            SkillBarLogic.Instance().MySkillBarInfo[i].fRemainCDTime  = 10;
                                        }
                                    }
                                    SkillBarLogic.Instance().SetSkillBarInfoForNext(i, _skillEx.NextContinueSkillId);

                                    //第一个连续技能来了,要有提示
                                    if (nSkillIndex != -1 && nSkillIndex == SkillBarLogic.Instance().MySkillBarInfo[i].SkillIndex)
                                    {
                                        if (null != ComboSkillTipLogic.Instance())
                                        {
                                            System.Collections.Generic.List <string> iconList = SkillBarLogic.Instance().GetContinueSkillIcons(_skillBase);
                                            ComboSkillTipLogic.Instance().Show(i, iconList.Count, iconList);
                                        }
                                    }

                                    if (null != ComboSkillTipLogic.Instance())
                                    {
                                        ComboSkillTipLogic.Instance().SetStep(i, SkillBarLogic.Instance().MySkillBarInfo[i].SkillCount);
                                    }
                                    if (_skillBase.NextIndex == _skillBase.FirstIndex)
                                    {
                                        SkillBarLogic.Instance().MySkillBarInfo[i].isCompleted = true;
                                        SkillBarLogic.Instance().MySkillBarInfo[i].SkillCount  = 0;
                                    }


                                    break;
                                }
                            }
                        }
                    }

                    //if it is xpSkill and attackSkill
                    if (((_skillBase.SkillClass & (int)SKILLCLASS.AUTOREPEAT) != 0) &&
                        _skillBase.GetChangeModebyIndex(_mainPlayer.CurChangeState) >= 0 &&
                        SkillBarLogic.Instance()._AttackBarInfo != null)
                    {
                        SkillBarLogic.Instance()._AttackBarInfo.fCurrentStartTime = Time.realtimeSinceStartup;
                        SkillBarLogic.Instance()._AttackBarInfo.fCurDisabledStartTime = Time.realtimeSinceStartup;
                        SkillBarLogic.Instance()._AttackBarInfo.nCurrentCDTime = _skillEx.NextSkillEffectTime;
                        SkillBarLogic.Instance()._AttackBarInfo.fRemainCDTime = _skillEx.NextSkillEffectTime;
                        SkillBarLogic.Instance()._AttackBarInfo.fDisabledRemTime = _skillEx.NextSkillDisabledTime;
                        SkillBarLogic.Instance()._AttackBarInfo.fCurDisabledTime = _skillEx.NextSkillDisabledTime;
                        SkillBarLogic.Instance()._AttackBarInfo.nCurSkillId = _skillEx.NextContinueSkillId;
                    }
                }
            }


            return((uint)PACKET_EXE.PACKET_EXE_CONTINUE);
        }