예제 #1
0
    public LocationUpdate(GameClient client, ReceivablePacket packet)
    {
        // Read data.
        float posX       = (float)packet.ReadDouble(); // TODO: Client WriteFloat
        float posY       = (float)packet.ReadDouble(); // TODO: Client WriteFloat
        float posZ       = (float)packet.ReadDouble(); // TODO: Client WriteFloat
        float heading    = (float)packet.ReadDouble(); // TODO: Client WriteFloat
        int   animState  = packet.ReadShort();
        int   waterState = packet.ReadByte();

        // Update player location.
        Player         player   = client.GetActiveChar();
        LocationHolder location = player.GetLocation();

        location.SetX(posX);
        location.SetY(posY);
        location.SetZ(posZ);
        location.SetHeading(heading);

        // Broadcast movement.
        foreach (Player nearby in WorldManager.GetVisiblePlayers(player))
        {
            nearby.ChannelSend(new MoveToLocation(player, heading, animState, waterState));
        }
    }
예제 #2
0
    public static void Handle(GameClient client, ReceivablePacket packet)
    {
        switch (packet.ReadShort()) // Packet id.
        {
        case 1:
            new AccountAuthenticationRequest(client, packet);
            break;

        case 2:
            new CharacterSelectionInfoRequest(client, packet);
            break;

        case 3:
            new CharacterCreationRequest(client, packet);
            break;

        case 4:
            new CharacterDeletionRequest(client, packet);
            break;

        case 5:
            new CharacterSlotUpdate(client, packet);
            break;

        case 6:
            new CharacterSelectUpdate(client, packet);
            break;

        case 7:
            new EnterWorldRequest(client, packet);
            break;

        case 8:
            new ExitWorldRequest(client, packet);
            break;

        case 9:
            new LocationUpdateRequest(client, packet);
            break;

        case 10:
            new AnimatorUpdateRequest(client, packet);
            break;

        case 11:
            new ObjectInfoRequest(client, packet);
            break;

        case 12:
            new PlayerOptionsUpdate(client, packet);
            break;

        case 13:
            new ChatRequest(client, packet);
            break;
        }
    }
예제 #3
0
    public static void Handle(ReceivablePacket packet)
    {
        switch (packet.ReadShort())
        {
        case 1:
            AccountAuthenticationResult.Process(packet);
            break;

        case 2:
            CharacterSelectionInfoResult.Process(packet);
            break;

        case 3:
            CharacterCreationResult.Process(packet);
            break;

        case 4:
            CharacterDeletionResult.Process(packet);
            break;

        case 5:
            PlayerOptionsInformation.Process(packet);
            break;

        case 6:
            PlayerInformation.Process(packet);
            break;

        case 7:
            NpcInformation.Process(packet);
            break;

        case 8:
            DeleteObject.Process(packet);
            break;

        case 9:
            Logout.Process(packet);
            break;

        case 10:
            LocationUpdate.Process(packet);
            break;

        case 11:
            AnimatorUpdate.Process(packet);
            break;

        case 12:
            ChatResult.Process(packet);
            break;

        case 13:
            PlayerInventoryUpdate.Process(packet);
            break;
        }
    }
예제 #4
0
    public static void handle(ReceivablePacket packet)
    {
        switch (packet.ReadShort())
        {
        case 1:
            AccountAuthenticationResult.notify(packet);
            break;

        case 2:
            CharacterSelectionInfoResult.notify(packet);
            break;

        case 3:
            CharacterCreationResult.notify(packet);
            break;

        case 4:
            CharacterDeletionResult.notify(packet);
            break;

        case 5:
            EnterWorldInformation.notify(packet);
            break;

        case 6:
            PlayerInformation.notify(packet);
            break;

        case 7:
            DeleteObject.notify(packet);
            break;

        case 8:
            Logout.notify(packet);
            break;

        case 9:
            MoveToLocation.notify(packet);
            break;
        }
    }
    public static void Notify(ReceivablePacket packet)
    {
        OptionsManager.chatColorNormalIntValue  = packet.ReadInt();
        OptionsManager.chatColorMessageIntValue = packet.ReadInt();
        OptionsManager.chatColorSystemIntValue  = packet.ReadInt();
        OptionsManager.useChatTimestamps        = packet.ReadByte() == 1;

        InputManager.SetKeybind(0, (KeyCode)packet.ReadShort());
        InputManager.SetKeybind(1, (KeyCode)packet.ReadShort());
        InputManager.SetKeybind(2, (KeyCode)packet.ReadShort());
        InputManager.SetKeybind(3, (KeyCode)packet.ReadShort());
        InputManager.SetKeybind(4, (KeyCode)packet.ReadShort());
        InputManager.SetKeybind(5, (KeyCode)packet.ReadShort());
        InputManager.SetKeybind(6, (KeyCode)packet.ReadShort());
        InputManager.SetKeybind(7, (KeyCode)packet.ReadShort());
        InputManager.SetKeybind(8, (KeyCode)packet.ReadShort());
        InputManager.SetKeybind(9, (KeyCode)packet.ReadShort());
        InputManager.SetKeybind(10, (KeyCode)packet.ReadShort());
        InputManager.SetKeybind(11, (KeyCode)packet.ReadShort());
        InputManager.SetKeybind(12, (KeyCode)packet.ReadShort());
        InputManager.SetKeybind(13, (KeyCode)packet.ReadShort());
        InputManager.SetKeybind(14, (KeyCode)packet.ReadShort());
        InputManager.SetKeybind(15, (KeyCode)packet.ReadShort());
        InputManager.SetKeybind(16, (KeyCode)packet.ReadShort());
        InputManager.SetKeybind(17, (KeyCode)packet.ReadShort());
        InputManager.SetKeybind(18, (KeyCode)packet.ReadShort());
        InputManager.SetKeybind(19, (KeyCode)packet.ReadShort());
        InputManager.SetKeybind(20, (KeyCode)packet.ReadShort());
        InputManager.SetKeybind(21, (KeyCode)packet.ReadShort());
        InputManager.SetKeybind(22, (KeyCode)packet.ReadShort());
        InputManager.SetKeybind(23, (KeyCode)packet.ReadShort());
        InputManager.SetKeybind(24, (KeyCode)packet.ReadShort());
        InputManager.SetKeybind(25, (KeyCode)packet.ReadShort());
        InputManager.SetKeybind(26, (KeyCode)packet.ReadShort());
        InputManager.SetKeybind(27, (KeyCode)packet.ReadShort());
        InputManager.SetKeybind(28, (KeyCode)packet.ReadShort());
        InputManager.SetKeybind(29, (KeyCode)packet.ReadShort());
        InputManager.SetKeybind(30, (KeyCode)packet.ReadShort());
        InputManager.SetKeybind(31, (KeyCode)packet.ReadShort());
        InputManager.SetKeybind(32, (KeyCode)packet.ReadShort());
        InputManager.SetKeybind(33, (KeyCode)packet.ReadShort());
        InputManager.SetKeybind(34, (KeyCode)packet.ReadShort());
        InputManager.SetKeybind(35, (KeyCode)packet.ReadShort());
        InputManager.SetKeybind(36, (KeyCode)packet.ReadShort());
        InputManager.SetKeybind(37, (KeyCode)packet.ReadShort());
        InputManager.SetKeybind(38, (KeyCode)packet.ReadShort());
        InputManager.SetKeybind(39, (KeyCode)packet.ReadShort());
    }
 public PlayerOptionsUpdate(GameClient client, ReceivablePacket packet)
 {
     try
     {
         MySqlConnection con = DatabaseManager.GetConnection();
         MySqlCommand    cmd = new MySqlCommand(UPDATE_CHARACTER_OPTIONS_QUERY, con);
         cmd.Parameters.AddWithValue("chat_color_normal", packet.ReadInt());
         cmd.Parameters.AddWithValue("chat_color_message", packet.ReadInt());
         cmd.Parameters.AddWithValue("chat_color_system", packet.ReadInt());
         cmd.Parameters.AddWithValue("chat_use_timestamps", packet.ReadByte());
         cmd.Parameters.AddWithValue("key_up_1", packet.ReadShort());
         cmd.Parameters.AddWithValue("key_up_2", packet.ReadShort());
         cmd.Parameters.AddWithValue("key_down_1", packet.ReadShort());
         cmd.Parameters.AddWithValue("key_down_2", packet.ReadShort());
         cmd.Parameters.AddWithValue("key_left_1", packet.ReadShort());
         cmd.Parameters.AddWithValue("key_left_2", packet.ReadShort());
         cmd.Parameters.AddWithValue("key_right_1", packet.ReadShort());
         cmd.Parameters.AddWithValue("key_right_2", packet.ReadShort());
         cmd.Parameters.AddWithValue("key_jump_1", packet.ReadShort());
         cmd.Parameters.AddWithValue("key_jump_2", packet.ReadShort());
         cmd.Parameters.AddWithValue("key_character_1", packet.ReadShort());
         cmd.Parameters.AddWithValue("key_character_2", packet.ReadShort());
         cmd.Parameters.AddWithValue("key_inventory_1", packet.ReadShort());
         cmd.Parameters.AddWithValue("key_inventory_2", packet.ReadShort());
         cmd.Parameters.AddWithValue("key_skills_1", packet.ReadShort());
         cmd.Parameters.AddWithValue("key_skills_2", packet.ReadShort());
         cmd.Parameters.AddWithValue("key_shortcut_1_1", packet.ReadShort());
         cmd.Parameters.AddWithValue("key_shortcut_1_2", packet.ReadShort());
         cmd.Parameters.AddWithValue("key_shortcut_2_1", packet.ReadShort());
         cmd.Parameters.AddWithValue("key_shortcut_2_2", packet.ReadShort());
         cmd.Parameters.AddWithValue("key_shortcut_3_1", packet.ReadShort());
         cmd.Parameters.AddWithValue("key_shortcut_3_2", packet.ReadShort());
         cmd.Parameters.AddWithValue("key_shortcut_4_1", packet.ReadShort());
         cmd.Parameters.AddWithValue("key_shortcut_4_2", packet.ReadShort());
         cmd.Parameters.AddWithValue("key_shortcut_5_1", packet.ReadShort());
         cmd.Parameters.AddWithValue("key_shortcut_5_2", packet.ReadShort());
         cmd.Parameters.AddWithValue("key_shortcut_6_1", packet.ReadShort());
         cmd.Parameters.AddWithValue("key_shortcut_6_2", packet.ReadShort());
         cmd.Parameters.AddWithValue("key_shortcut_7_1", packet.ReadShort());
         cmd.Parameters.AddWithValue("key_shortcut_7_2", packet.ReadShort());
         cmd.Parameters.AddWithValue("key_shortcut_8_1", packet.ReadShort());
         cmd.Parameters.AddWithValue("key_shortcut_8_2", packet.ReadShort());
         cmd.Parameters.AddWithValue("key_shortcut_9_1", packet.ReadShort());
         cmd.Parameters.AddWithValue("key_shortcut_9_2", packet.ReadShort());
         cmd.Parameters.AddWithValue("key_shortcut_10_1", packet.ReadShort());
         cmd.Parameters.AddWithValue("key_shortcut_10_2", packet.ReadShort());
         cmd.Parameters.AddWithValue("key_shortcut_11_1", packet.ReadShort());
         cmd.Parameters.AddWithValue("key_shortcut_11_2", packet.ReadShort());
         cmd.Parameters.AddWithValue("key_shortcut_12_1", packet.ReadShort());
         cmd.Parameters.AddWithValue("key_shortcut_12_2", packet.ReadShort());
         cmd.Parameters.AddWithValue("name", client.GetActiveChar().GetName());
         cmd.ExecuteNonQuery();
         con.Close();
     }
     catch (Exception e)
     {
         LogManager.Log(e.ToString());
     }
 }
예제 #7
0
    public static void Handle(GameClient client, ReceivablePacket packet)
    {
        /*
         * switch (packet.ReadShort()) // Packet id.
         * {
         *  case 1:
         *      new AccountAuthenticationRequest(client, packet);
         *      break;
         *
         *  case 2:
         *      new CharacterSelectionInfoRequest(client, packet);
         *      break;
         *
         *  case 3:
         *      new CharacterCreationRequest(client, packet);
         *      break;
         *
         *  case 4:
         *      new CharacterDeletionRequest(client, packet);
         *      break;
         *
         *  case 5:
         *      new CharacterSlotUpdate(client, packet);
         *      break;
         *
         *  case 6:
         *      new CharacterSelectUpdate(client, packet);
         *      break;
         *
         *  case 7:
         *      new EnterWorldRequest(client, packet);
         *      break;
         *
         *  case 8:
         *      new ExitWorldRequest(client, packet);
         *      break;
         *
         *  case 9:
         *      new LocationUpdateRequest(client, packet);
         *      break;
         *
         *  case 10:
         *      new AnimatorUpdateRequest(client, packet);
         *      break;
         *
         *  case 11:
         *      new ObjectInfoRequest(client, packet);
         *      break;
         *
         *  case 12:
         *      new PlayerOptionsUpdate(client, packet);
         *      break;
         *
         *  case 13:
         *      new ChatRequest(client, packet);
         *      break;
         * }
         */

        // Test receive.
        LogManager.Log("" + packet.ReadByte());
        LogManager.Log("" + packet.ReadShort());
        LogManager.Log("" + packet.ReadInt());
        LogManager.Log("" + packet.ReadLong());
        LogManager.Log("" + packet.ReadFloat());
        LogManager.Log("" + packet.ReadDouble());
        LogManager.Log("" + packet.ReadString());

        // Test send.
        SendablePacket send = new SendablePacket();

        send.WriteShort(1); // id
        send.WriteString("All is good!");
        client.ChannelSend(send);
    }