Пример #1
0
        public uint Execute(PacketDistributed ipacket)
        {
            GC_BROADCAST_ATTR packet = (GC_BROADCAST_ATTR )ipacket;

            if (null == packet)
            {
                return((uint)PACKET_EXE.PACKET_EXE_ERROR);
            }
            //enter your logic
            return((uint)PACKET_EXE.PACKET_EXE_CONTINUE);
        }
Пример #2
0
        public uint Execute(PacketDistributed ipacket)
        {
            GC_BROADCAST_ATTR packet = (GC_BROADCAST_ATTR )ipacket;

            if (null == packet)
            {
                return((uint)PACKET_EXE.PACKET_EXE_ERROR);
            }
            //enter your logic
            int           objId     = packet.ObjId;
            Obj_Character TargetObj = Singleton <ObjManager> .GetInstance().FindObjCharacterInScene(objId);

            if (TargetObj == null)
            {
                return((uint)PACKET_EXE.PACKET_EXE_CONTINUE);
            }

            TargetObj.UpdateAttrBroadcastPackt(packet);
            return((uint)PACKET_EXE.PACKET_EXE_CONTINUE);
        }
Пример #3
0
        public virtual void UpdateAttrBroadcastPackt(GC_BROADCAST_ATTR packet)
        {
            //bind parent
            if (packet.HasBindparent)
            {
                BindParent = packet.Bindparent;
            }
            //bind children
            // 没数据 也别更新啦
            if (packet.bindchildrenCount > 0)
            {
                List <int> newlist = new List <int>(packet.bindchildrenList);
                UpdateBindChildren(newlist);
            }
            if (packet.HasName)
            {
                if (!string.IsNullOrEmpty(packet.Name))
                {
                    char   firstChar    = packet.Name[0];
                    string szNameResult = "";
                    if (firstChar == '#' && 0 == StrDictionary.GetServerDictionaryFormatString(packet.Name, ref szNameResult))
                    {
                        BaseAttr.RoleName = szNameResult;
                    }
                    else
                    {
                        BaseAttr.RoleName = packet.Name;
                    }
                }
                OptNameChange();
            }
            if (packet.HasCurForce)
            {
                BaseAttr.Force = packet.CurForce;
                OptForceChange();
            }
            if (packet.HasVipCost)
            {
                if (ObjType == Games.GlobeDefine.GameDefine_Globe.OBJ_TYPE.OBJ_MAIN_PLAYER)
                {
                    Obj_MainPlayer mainPlayer = this as Obj_MainPlayer;
                    if (mainPlayer != null)
                    {
                        mainPlayer.VipCost = packet.VipCost;
                        //更新自动挂机
                        if (mainPlayer.BaseAttr.Level >= GlobeVar.MAX_AUTOEQUIT_LIVE && VipData.GetVipLv() >= GlobeVar.USE_AUTOFIGHT_VIPLEVEL)
                        {
                            //vip2的时候选择自动强化
                            mainPlayer.UpdateSelectEquip();
                        }
                    }
                }
                if (ObjType == Games.GlobeDefine.GameDefine_Globe.OBJ_TYPE.OBJ_OTHER_PLAYER)
                {
                    Obj_OtherPlayer otherPlayer = this as Obj_OtherPlayer;
                    if (otherPlayer != null)
                    {
                        otherPlayer.VipCost = packet.VipCost;
                    }
                }
            }
            if (packet.HasCombatValue)
            {
                if (ObjType == Games.GlobeDefine.GameDefine_Globe.OBJ_TYPE.OBJ_MAIN_PLAYER)
                {
                    Obj_MainPlayer mainPlayer = this as Obj_MainPlayer;
                    if (mainPlayer != null)
                    {
                        mainPlayer.OtherCombatValue = packet.CombatValue;
                        mainPlayer.UpdateCombatValue();
                    }
                }
                if (ObjType == Games.GlobeDefine.GameDefine_Globe.OBJ_TYPE.OBJ_OTHER_PLAYER)
                {
                    Obj_OtherPlayer otherPlayer = this as Obj_OtherPlayer;
                    if (otherPlayer != null)
                    {
                        otherPlayer.OtherCombatValue = packet.CombatValue;
                        otherPlayer.UpdateCombatValue();
                    }
                }
            }

            if (packet.HasMoveSpeed)
            {
                BaseAttr.MoveSpeed = packet.MoveSpeed / 100.0f;
                if (NavAgent != null)
                {
                    NavAgent.speed = BaseAttr.MoveSpeed;
                }

                //主角的伙伴需要特殊处理
                if (ObjType == Games.GlobeDefine.GameDefine_Globe.OBJ_TYPE.OBJ_FELLOW)
                {
                    Obj_Fellow fellowObj = this as Obj_Fellow;
                    if (null != fellowObj && fellowObj.IsOwnedByMainPlayer())
                    {
                        fellowObj.SetMoveSpeedAsMainPlayer();
                    }
                }
                //主角速度变化把自己伙伴的速度也改变
                if (ObjType == Games.GlobeDefine.GameDefine_Globe.OBJ_TYPE.OBJ_MAIN_PLAYER)
                {
                    Obj_MainPlayer mainPlayer = this as Obj_MainPlayer;
                    if (mainPlayer != null)
                    {
                        Obj_Fellow fellowObj = mainPlayer.GetCurFellow();
                        if (fellowObj != null)
                        {
                            fellowObj.SetMoveSpeedAsMainPlayer();
                        }
                    }
                }
            }
            if (packet.HasBDie)
            {
                bool bDie = packet.BDie == 1;
                if (bDie == true)
                {
                    OnDie();
                }
            }
            if (packet.HasStealthLev)
            {
                StealthLev = packet.StealthLev;
                OptStealthLevChange();
            }
        }
Пример #4
0
    public static PacketDistributed CreatePacket(MessageID packetID)
    {
        PacketDistributed packet = null;

        switch (packetID)
        {
        case MessageID.PACKET_CG_ABANDONMISSION: { packet = new CG_ABANDONMISSION(); } break;

        case MessageID.PACKET_CG_ACCEPTMISSION: { packet = new CG_ACCEPTMISSION(); } break;

        case MessageID.PACKET_CG_ASK_SETCOMMONFLAG: { packet = new CG_ASK_SETCOMMONFLAG(); } break;

        case MessageID.PACKET_CG_COMPLETEMISSION: { packet = new CG_COMPLETEMISSION(); } 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_ENTER_SCENE_OK: { packet = new CG_ENTER_SCENE_OK(); } 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_PING: { packet = new CG_PING(); } break;

        case MessageID.PACKET_CG_REQ_CHANGE_SCENE: { packet = new CG_REQ_CHANGE_SCENE(); } break;

        case MessageID.PACKET_CG_REQ_RANDOMNAME: { packet = new CG_REQ_RANDOMNAME(); } break;

        case MessageID.PACKET_CG_SELECTROLE: { packet = new CG_SELECTROLE(); } break;

        case MessageID.PACKET_CG_SYNC_POS: { packet = new CG_SYNC_POS(); } break;

        case MessageID.PACKET_GC_ABANDONMISSION_RET: { packet = new GC_ABANDONMISSION_RET(); } break;

        case MessageID.PACKET_GC_ACCEPTMISSION_RET: { packet = new GC_ACCEPTMISSION_RET(); } break;

        case MessageID.PACKET_GC_ASK_COMMONFLAG_RET: { packet = new GC_ASK_COMMONFLAG_RET(); } break;

        case MessageID.PACKET_GC_BROADCAST_ATTR: { packet = new GC_BROADCAST_ATTR(); } break;

        case MessageID.PACKET_GC_COMPLETEMISSION_RET: { packet = new GC_COMPLETEMISSION_RET(); } 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_CREATE_PLAYER: { packet = new GC_CREATE_PLAYER(); } break;

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

        case MessageID.PACKET_GC_ENTER_SCENE: { packet = new GC_ENTER_SCENE(); } 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_MISSION_PARAM: { packet = new GC_MISSION_PARAM(); } break;

        case MessageID.PACKET_GC_MISSION_STATE: { packet = new GC_MISSION_STATE(); } break;

        case MessageID.PACKET_GC_MISSION_SYNC_MISSIONLIST: { packet = new GC_MISSION_SYNC_MISSIONLIST(); } break;

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

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

        case MessageID.PACKET_GC_RET_PING: { packet = new GC_RET_PING(); } break;

        case MessageID.PACKET_GC_RET_RANDOMNAME: { packet = new GC_RET_RANDOMNAME(); } break;

        case MessageID.PACKET_GC_SELECTROLE_RET: { packet = new GC_SELECTROLE_RET(); } break;

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

        case MessageID.PACKET_GC_SYNC_COMMONDATA: { packet = new GC_SYNC_COMMONDATA(); } break;

        case MessageID.PACKET_GC_SYNC_COMMONFLAG: { packet = new GC_SYNC_COMMONFLAG(); } break;

        case MessageID.PACKET_GC_SYNC_POS: { packet = new GC_SYNC_POS(); } break;

        case MessageID.PACKET_GC_SYN_ATTR: { packet = new GC_SYN_ATTR(); } break;
        }
        if (null != packet)
        {
            packet.packetID = packetID;
        }
        return(packet);
    }