Example #1
0
 private void CheckForSendActiveAbilityPressed(MPlayer mplayer)
 {
     // Some classes hold their active ability button down. We don't want to send a million packets, with it possibly firing on the wrong frame due to lag
     // (which is virtually guaranteed with any latency, except maybe over LAN), so for those classes, just send one packet when it's released instead.
     if (!mplayer.IsActiveAbilityKeyHeld())
     {
         PlayerActiveAbilityStartNetMsg.SerializeAndSend(
             this,
             mplayer.player.whoAmI,
             false,
             mplayer.special);
     }
 }
Example #2
0
        // tModLoader calls senderPlayerId `whoAmI` instead, but this name is more accurate.
        public override void HandlePacket(BinaryReader reader, int senderPlayerId)
        {
            PacketMessageTypeEnum messageType = (PacketMessageTypeEnum)reader.ReadInt32();

            switch (messageType)
            {
            case PacketMessageTypeEnum.SPAWN_DUST:
                if (Main.netMode != NetmodeID.Server)
                {
                    SpawnDustNetMsg spawnDustNetMsg = new SpawnDustNetMsg();
                    spawnDustNetMsg.HandlePacket(
                        reader,
                        senderPlayerId,
                        this);
                }
                break;

            case PacketMessageTypeEnum.VELOCITY_CHANGE_NPC:
                VelocityChangeNpcNetMsg velocityChangeNpcNetMsg = new VelocityChangeNpcNetMsg();
                velocityChangeNpcNetMsg.HandlePacket(
                    reader,
                    senderPlayerId,
                    this);
                break;

            case PacketMessageTypeEnum.SANDSTORM_VISUALS:
                // For Legacy support to support play with out-of-date players, but shouldn't be sent anymore
                SandstormVisualsNetMsg sandstormVisualsNetMsg = new SandstormVisualsNetMsg();
                sandstormVisualsNetMsg.HandlePacket(
                    reader,
                    senderPlayerId,
                    this);
                break;

            case PacketMessageTypeEnum.HEAL_PLAYER:
                HealPlayerNetMsg healPlayerNetMsg = new HealPlayerNetMsg();
                healPlayerNetMsg.HandlePacket(
                    reader,
                    senderPlayerId,
                    this);
                break;

            case PacketMessageTypeEnum.LEVEL_UP_PLAYER:
                LevelUpPlayerNetMsg levelUpPlayerNetMsg = new LevelUpPlayerNetMsg();
                levelUpPlayerNetMsg.HandlePacket(
                    reader,
                    senderPlayerId,
                    this);
                break;

            case PacketMessageTypeEnum.PLAYER_CLASS_LEVEL_INFO:
                PlayerClassLevelInfoNetMsg playerClassLevelInfoNetMsg = new PlayerClassLevelInfoNetMsg();
                playerClassLevelInfoNetMsg.HandlePacket(
                    reader,
                    senderPlayerId,
                    this);
                break;

            case PacketMessageTypeEnum.PLAYER_ACTIVE_ABILITY_INFO:
                PlayerActiveAbilityInfoNetMsg playerActiveAbilityInfoNetMsg = new PlayerActiveAbilityInfoNetMsg();
                playerActiveAbilityInfoNetMsg.HandlePacket(
                    reader,
                    senderPlayerId,
                    this);
                break;

            case PacketMessageTypeEnum.PLAYER_ACTIVE_ABILITY_START:
                PlayerActiveAbilityStartNetMsg playerActiveAbilityStartNetMsg = new PlayerActiveAbilityStartNetMsg();
                playerActiveAbilityStartNetMsg.HandlePacket(
                    reader,
                    senderPlayerId,
                    this);
                break;

            default:
                //zzz log unhandled message
                break;
            }
        }