eolib 1.1.1__py3-none-any.whl → 2.0.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- eolib/__about__.py +1 -1
- eolib/protocol/__init__.py +1 -1
- eolib/protocol/_generated/coords.py +28 -37
- eolib/protocol/_generated/emote.py +1 -1
- eolib/protocol/_generated/map/emf.py +248 -410
- eolib/protocol/_generated/map/map_graphic_layer.py +34 -32
- eolib/protocol/_generated/map/map_graphic_row.py +41 -49
- eolib/protocol/_generated/map/map_graphic_row_tile.py +28 -37
- eolib/protocol/_generated/map/map_item.py +56 -97
- eolib/protocol/_generated/map/map_legacy_door_key.py +28 -29
- eolib/protocol/_generated/map/map_npc.py +49 -80
- eolib/protocol/_generated/map/map_sign.py +43 -54
- eolib/protocol/_generated/map/map_tile_spec_row.py +41 -49
- eolib/protocol/_generated/map/map_tile_spec_row_tile.py +28 -29
- eolib/protocol/_generated/map/map_warp.py +42 -63
- eolib/protocol/_generated/map/map_warp_row.py +41 -49
- eolib/protocol/_generated/map/map_warp_row_tile.py +28 -29
- eolib/protocol/_generated/net/char_item.py +28 -37
- eolib/protocol/_generated/net/client/account_agree_client_packet.py +40 -33
- eolib/protocol/_generated/net/client/account_create_client_packet.py +80 -91
- eolib/protocol/_generated/net/client/account_request_client_packet.py +21 -12
- eolib/protocol/_generated/net/client/admin_interact_report_client_packet.py +31 -22
- eolib/protocol/_generated/net/client/admin_interact_tell_client_packet.py +21 -12
- eolib/protocol/_generated/net/client/attack_use_client_packet.py +28 -29
- eolib/protocol/_generated/net/client/bank_add_client_packet.py +28 -37
- eolib/protocol/_generated/net/client/bank_open_client_packet.py +21 -20
- eolib/protocol/_generated/net/client/bank_take_client_packet.py +28 -37
- eolib/protocol/_generated/net/client/barber_buy_client_packet.py +35 -54
- eolib/protocol/_generated/net/client/barber_open_client_packet.py +21 -20
- eolib/protocol/_generated/net/client/board_create_client_packet.py +40 -41
- eolib/protocol/_generated/net/client/board_open_client_packet.py +21 -20
- eolib/protocol/_generated/net/client/board_remove_client_packet.py +28 -37
- eolib/protocol/_generated/net/client/board_take_client_packet.py +28 -37
- eolib/protocol/_generated/net/client/book_request_client_packet.py +22 -21
- eolib/protocol/_generated/net/client/byte_coords.py +28 -37
- eolib/protocol/_generated/net/client/chair_request_client_packet.py +56 -40
- eolib/protocol/_generated/net/client/character_create_client_packet.py +60 -91
- eolib/protocol/_generated/net/client/character_remove_client_packet.py +31 -35
- eolib/protocol/_generated/net/client/character_request_client_packet.py +22 -7
- eolib/protocol/_generated/net/client/character_take_client_packet.py +21 -20
- eolib/protocol/_generated/net/client/chest_add_client_packet.py +28 -21
- eolib/protocol/_generated/net/client/chest_open_client_packet.py +21 -12
- eolib/protocol/_generated/net/client/chest_take_client_packet.py +28 -29
- eolib/protocol/_generated/net/client/citizen_accept_client_packet.py +28 -37
- eolib/protocol/_generated/net/client/citizen_open_client_packet.py +21 -20
- eolib/protocol/_generated/net/client/citizen_remove_client_packet.py +21 -20
- eolib/protocol/_generated/net/client/citizen_reply_client_packet.py +47 -63
- eolib/protocol/_generated/net/client/citizen_request_client_packet.py +28 -37
- eolib/protocol/_generated/net/client/connection_accept_client_packet.py +35 -54
- eolib/protocol/_generated/net/client/connection_ping_client_packet.py +13 -7
- eolib/protocol/_generated/net/client/door_open_client_packet.py +21 -12
- eolib/protocol/_generated/net/client/emote_report_client_packet.py +21 -12
- eolib/protocol/_generated/net/client/face_player_client_packet.py +21 -12
- eolib/protocol/_generated/net/client/global_close_client_packet.py +13 -7
- eolib/protocol/_generated/net/client/global_open_client_packet.py +13 -7
- eolib/protocol/_generated/net/client/global_player_client_packet.py +13 -7
- eolib/protocol/_generated/net/client/global_remove_client_packet.py +13 -7
- eolib/protocol/_generated/net/client/guild_accept_client_packet.py +22 -21
- eolib/protocol/_generated/net/client/guild_agree_client_packet.py +99 -91
- eolib/protocol/_generated/net/client/guild_buy_client_packet.py +28 -37
- eolib/protocol/_generated/net/client/guild_create_client_packet.py +48 -51
- eolib/protocol/_generated/net/client/guild_junk_client_packet.py +21 -20
- eolib/protocol/_generated/net/client/guild_kick_client_packet.py +28 -29
- eolib/protocol/_generated/net/client/guild_open_client_packet.py +21 -20
- eolib/protocol/_generated/net/client/guild_player_client_packet.py +40 -41
- eolib/protocol/_generated/net/client/guild_rank_client_packet.py +36 -47
- eolib/protocol/_generated/net/client/guild_remove_client_packet.py +21 -20
- eolib/protocol/_generated/net/client/guild_report_client_packet.py +28 -29
- eolib/protocol/_generated/net/client/guild_request_client_packet.py +40 -41
- eolib/protocol/_generated/net/client/guild_take_client_packet.py +41 -29
- eolib/protocol/_generated/net/client/guild_tell_client_packet.py +28 -29
- eolib/protocol/_generated/net/client/guild_use_client_packet.py +21 -20
- eolib/protocol/_generated/net/client/init_init_client_packet.py +44 -55
- eolib/protocol/_generated/net/client/item_drop_client_packet.py +29 -29
- eolib/protocol/_generated/net/client/item_get_client_packet.py +21 -20
- eolib/protocol/_generated/net/client/item_junk_client_packet.py +21 -12
- eolib/protocol/_generated/net/client/item_use_client_packet.py +21 -20
- eolib/protocol/_generated/net/client/jukebox_msg_client_packet.py +24 -22
- eolib/protocol/_generated/net/client/jukebox_open_client_packet.py +21 -12
- eolib/protocol/_generated/net/client/jukebox_use_client_packet.py +28 -37
- eolib/protocol/_generated/net/client/locker_add_client_packet.py +28 -21
- eolib/protocol/_generated/net/client/locker_buy_client_packet.py +13 -7
- eolib/protocol/_generated/net/client/locker_open_client_packet.py +21 -12
- eolib/protocol/_generated/net/client/locker_take_client_packet.py +28 -29
- eolib/protocol/_generated/net/client/login_request_client_packet.py +32 -23
- eolib/protocol/_generated/net/client/marriage_open_client_packet.py +21 -20
- eolib/protocol/_generated/net/client/marriage_request_client_packet.py +38 -39
- eolib/protocol/_generated/net/client/message_ping_client_packet.py +13 -7
- eolib/protocol/_generated/net/client/npc_range_request_client_packet.py +35 -35
- eolib/protocol/_generated/net/client/paperdoll_add_client_packet.py +28 -37
- eolib/protocol/_generated/net/client/paperdoll_remove_client_packet.py +28 -37
- eolib/protocol/_generated/net/client/paperdoll_request_client_packet.py +22 -21
- eolib/protocol/_generated/net/client/party_accept_client_packet.py +28 -29
- eolib/protocol/_generated/net/client/party_remove_client_packet.py +21 -20
- eolib/protocol/_generated/net/client/party_request_client_packet.py +28 -29
- eolib/protocol/_generated/net/client/party_take_client_packet.py +21 -20
- eolib/protocol/_generated/net/client/player_range_request_client_packet.py +25 -23
- eolib/protocol/_generated/net/client/players_accept_client_packet.py +21 -12
- eolib/protocol/_generated/net/client/players_list_client_packet.py +13 -7
- eolib/protocol/_generated/net/client/players_request_client_packet.py +13 -7
- eolib/protocol/_generated/net/client/priest_accept_client_packet.py +21 -20
- eolib/protocol/_generated/net/client/priest_open_client_packet.py +21 -20
- eolib/protocol/_generated/net/client/priest_request_client_packet.py +31 -30
- eolib/protocol/_generated/net/client/priest_use_client_packet.py +22 -21
- eolib/protocol/_generated/net/client/quest_accept_client_packet.py +150 -115
- eolib/protocol/_generated/net/client/quest_list_client_packet.py +21 -12
- eolib/protocol/_generated/net/client/quest_use_client_packet.py +28 -38
- eolib/protocol/_generated/net/client/range_request_client_packet.py +38 -44
- eolib/protocol/_generated/net/client/refresh_request_client_packet.py +13 -7
- eolib/protocol/_generated/net/client/shop_buy_client_packet.py +28 -29
- eolib/protocol/_generated/net/client/shop_create_client_packet.py +28 -37
- eolib/protocol/_generated/net/client/shop_open_client_packet.py +21 -20
- eolib/protocol/_generated/net/client/shop_sell_client_packet.py +28 -29
- eolib/protocol/_generated/net/client/sit_request_client_packet.py +56 -43
- eolib/protocol/_generated/net/client/spell_request_client_packet.py +28 -37
- eolib/protocol/_generated/net/client/spell_target_group_client_packet.py +28 -37
- eolib/protocol/_generated/net/client/spell_target_other_client_packet.py +49 -80
- eolib/protocol/_generated/net/client/spell_target_self_client_packet.py +35 -46
- eolib/protocol/_generated/net/client/spell_use_client_packet.py +21 -12
- eolib/protocol/_generated/net/client/stat_skill_add_client_packet.py +83 -66
- eolib/protocol/_generated/net/client/stat_skill_junk_client_packet.py +21 -20
- eolib/protocol/_generated/net/client/stat_skill_open_client_packet.py +21 -20
- eolib/protocol/_generated/net/client/stat_skill_remove_client_packet.py +28 -37
- eolib/protocol/_generated/net/client/stat_skill_take_client_packet.py +28 -37
- eolib/protocol/_generated/net/client/talk_admin_client_packet.py +21 -12
- eolib/protocol/_generated/net/client/talk_announce_client_packet.py +21 -12
- eolib/protocol/_generated/net/client/talk_msg_client_packet.py +21 -12
- eolib/protocol/_generated/net/client/talk_open_client_packet.py +21 -12
- eolib/protocol/_generated/net/client/talk_player_client_packet.py +21 -12
- eolib/protocol/_generated/net/client/talk_report_client_packet.py +21 -12
- eolib/protocol/_generated/net/client/talk_request_client_packet.py +21 -12
- eolib/protocol/_generated/net/client/talk_tell_client_packet.py +31 -22
- eolib/protocol/_generated/net/client/talk_use_client_packet.py +21 -12
- eolib/protocol/_generated/net/client/trade_accept_client_packet.py +22 -21
- eolib/protocol/_generated/net/client/trade_add_client_packet.py +21 -12
- eolib/protocol/_generated/net/client/trade_agree_client_packet.py +21 -12
- eolib/protocol/_generated/net/client/trade_close_client_packet.py +13 -7
- eolib/protocol/_generated/net/client/trade_remove_client_packet.py +21 -20
- eolib/protocol/_generated/net/client/trade_request_client_packet.py +22 -21
- eolib/protocol/_generated/net/client/walk_action.py +35 -38
- eolib/protocol/_generated/net/client/walk_admin_client_packet.py +21 -12
- eolib/protocol/_generated/net/client/walk_player_client_packet.py +21 -12
- eolib/protocol/_generated/net/client/walk_spec_client_packet.py +21 -12
- eolib/protocol/_generated/net/client/warp_accept_client_packet.py +28 -37
- eolib/protocol/_generated/net/client/warp_take_client_packet.py +28 -37
- eolib/protocol/_generated/net/client/welcome_agree_client_packet.py +171 -169
- eolib/protocol/_generated/net/client/welcome_msg_client_packet.py +28 -37
- eolib/protocol/_generated/net/client/welcome_request_client_packet.py +21 -20
- eolib/protocol/_generated/net/item.py +28 -37
- eolib/protocol/_generated/net/server/__init__.py +4 -0
- eolib/protocol/_generated/net/server/account_reply_server_packet.py +190 -131
- eolib/protocol/_generated/net/server/admin_interact_agree_server_packet.py +21 -20
- eolib/protocol/_generated/net/server/admin_interact_list_server_packet.py +62 -74
- eolib/protocol/_generated/net/server/admin_interact_remove_server_packet.py +21 -20
- eolib/protocol/_generated/net/server/admin_interact_reply_server_packet.py +112 -91
- eolib/protocol/_generated/net/server/admin_interact_tell_server_packet.py +86 -110
- eolib/protocol/_generated/net/server/arena_accept_server_packet.py +47 -50
- eolib/protocol/_generated/net/server/arena_drop_server_packet.py +14 -8
- eolib/protocol/_generated/net/server/arena_spec_server_packet.py +55 -68
- eolib/protocol/_generated/net/server/arena_use_server_packet.py +21 -20
- eolib/protocol/_generated/net/server/attack_error_server_packet.py +13 -7
- eolib/protocol/_generated/net/server/attack_player_server_packet.py +28 -29
- eolib/protocol/_generated/net/server/avatar_admin_server_packet.py +67 -110
- eolib/protocol/_generated/net/server/avatar_agree_server_packet.py +21 -12
- eolib/protocol/_generated/net/server/avatar_change.py +132 -136
- eolib/protocol/_generated/net/server/avatar_change_type.py +1 -1
- eolib/protocol/_generated/net/server/avatar_remove_server_packet.py +29 -29
- eolib/protocol/_generated/net/server/avatar_reply_server_packet.py +56 -89
- eolib/protocol/_generated/net/server/bank_open_server_packet.py +35 -54
- eolib/protocol/_generated/net/server/bank_reply_server_packet.py +28 -37
- eolib/protocol/_generated/net/server/barber_agree_server_packet.py +28 -29
- eolib/protocol/_generated/net/server/barber_open_server_packet.py +21 -20
- eolib/protocol/_generated/net/server/big_coords.py +28 -37
- eolib/protocol/_generated/net/server/board_open_server_packet.py +44 -52
- eolib/protocol/_generated/net/server/board_player_server_packet.py +30 -29
- eolib/protocol/_generated/net/server/board_post_listing.py +39 -40
- eolib/protocol/_generated/net/server/book_reply_server_packet.py +42 -35
- eolib/protocol/_generated/net/server/cast_accept_server_packet.py +65 -71
- eolib/protocol/_generated/net/server/cast_reply_server_packet.py +78 -122
- eolib/protocol/_generated/net/server/cast_spec_server_packet.py +48 -60
- eolib/protocol/_generated/net/server/chair_close_server_packet.py +28 -29
- eolib/protocol/_generated/net/server/chair_player_server_packet.py +35 -38
- eolib/protocol/_generated/net/server/chair_remove_server_packet.py +28 -29
- eolib/protocol/_generated/net/server/chair_reply_server_packet.py +35 -38
- eolib/protocol/_generated/net/server/character_base_stats.py +56 -105
- eolib/protocol/_generated/net/server/character_base_stats_welcome.py +56 -105
- eolib/protocol/_generated/net/server/character_details.py +92 -115
- eolib/protocol/_generated/net/server/character_elemental_stats.py +56 -105
- eolib/protocol/_generated/net/server/character_map_info.py +161 -283
- eolib/protocol/_generated/net/server/character_player_server_packet.py +28 -37
- eolib/protocol/_generated/net/server/character_reply_server_packet.py +229 -179
- eolib/protocol/_generated/net/server/character_secondary_stats.py +49 -88
- eolib/protocol/_generated/net/server/character_secondary_stats_info_lookup.py +49 -88
- eolib/protocol/_generated/net/server/character_selection_list_entry.py +80 -125
- eolib/protocol/_generated/net/server/character_stats_equipment_change.py +42 -55
- eolib/protocol/_generated/net/server/character_stats_info_lookup.py +65 -100
- eolib/protocol/_generated/net/server/character_stats_reset.py +77 -140
- eolib/protocol/_generated/net/server/character_stats_update.py +56 -89
- eolib/protocol/_generated/net/server/character_stats_welcome.py +84 -157
- eolib/protocol/_generated/net/server/chest_agree_server_packet.py +25 -15
- eolib/protocol/_generated/net/server/chest_close_server_packet.py +28 -24
- eolib/protocol/_generated/net/server/chest_get_server_packet.py +39 -33
- eolib/protocol/_generated/net/server/chest_open_server_packet.py +32 -24
- eolib/protocol/_generated/net/server/chest_reply_server_packet.py +46 -58
- eolib/protocol/_generated/net/server/chest_spec_server_packet.py +13 -7
- eolib/protocol/_generated/net/server/citizen_accept_server_packet.py +21 -20
- eolib/protocol/_generated/net/server/citizen_open_server_packet.py +53 -79
- eolib/protocol/_generated/net/server/citizen_remove_server_packet.py +21 -12
- eolib/protocol/_generated/net/server/citizen_reply_server_packet.py +21 -20
- eolib/protocol/_generated/net/server/citizen_request_server_packet.py +21 -20
- eolib/protocol/_generated/net/server/connection_player_server_packet.py +28 -37
- eolib/protocol/_generated/net/server/dialog_entry.py +63 -57
- eolib/protocol/_generated/net/server/dialog_quest_entry.py +28 -29
- eolib/protocol/_generated/net/server/door_close_server_packet.py +21 -20
- eolib/protocol/_generated/net/server/door_open_server_packet.py +25 -14
- eolib/protocol/_generated/net/server/effect_admin_server_packet.py +42 -63
- eolib/protocol/_generated/net/server/effect_agree_server_packet.py +32 -38
- eolib/protocol/_generated/net/server/effect_player_server_packet.py +32 -45
- eolib/protocol/_generated/net/server/effect_report_server_packet.py +13 -7
- eolib/protocol/_generated/net/server/effect_spec_server_packet.py +111 -142
- eolib/protocol/_generated/net/server/effect_target_other_server_packet.py +46 -66
- eolib/protocol/_generated/net/server/effect_use_server_packet.py +56 -48
- eolib/protocol/_generated/net/server/emote_player_server_packet.py +28 -29
- eolib/protocol/_generated/net/server/equipment_change.py +50 -89
- eolib/protocol/_generated/net/server/equipment_character_select.py +49 -88
- eolib/protocol/_generated/net/server/equipment_map_info.py +53 -92
- eolib/protocol/_generated/net/server/equipment_paperdoll.py +115 -229
- eolib/protocol/_generated/net/server/equipment_welcome.py +114 -228
- eolib/protocol/_generated/net/server/face_player_server_packet.py +28 -29
- eolib/protocol/_generated/net/server/global_backfill_message.py +31 -22
- eolib/protocol/_generated/net/server/group_heal_target_player.py +35 -54
- eolib/protocol/_generated/net/server/guild_accept_server_packet.py +21 -20
- eolib/protocol/_generated/net/server/guild_agree_server_packet.py +48 -51
- eolib/protocol/_generated/net/server/guild_buy_server_packet.py +22 -21
- eolib/protocol/_generated/net/server/guild_create_server_packet.py +55 -68
- eolib/protocol/_generated/net/server/guild_kick_server_packet.py +13 -7
- eolib/protocol/_generated/net/server/guild_member.py +39 -40
- eolib/protocol/_generated/net/server/guild_open_server_packet.py +21 -20
- eolib/protocol/_generated/net/server/guild_rank_server_packet.py +30 -28
- eolib/protocol/_generated/net/server/guild_reply_server_packet.py +117 -93
- eolib/protocol/_generated/net/server/guild_report_server_packet.py +91 -111
- eolib/protocol/_generated/net/server/guild_request_server_packet.py +28 -29
- eolib/protocol/_generated/net/server/guild_sell_server_packet.py +21 -20
- eolib/protocol/_generated/net/server/guild_staff.py +31 -30
- eolib/protocol/_generated/net/server/guild_take_server_packet.py +21 -12
- eolib/protocol/_generated/net/server/guild_tell_server_packet.py +38 -36
- eolib/protocol/_generated/net/server/init_ban_type.py +1 -1
- eolib/protocol/_generated/net/server/init_init_server_packet.py +454 -393
- eolib/protocol/_generated/net/server/init_reply.py +3 -0
- eolib/protocol/_generated/net/server/item_accept_server_packet.py +21 -20
- eolib/protocol/_generated/net/server/item_add_server_packet.py +42 -63
- eolib/protocol/_generated/net/server/item_agree_server_packet.py +22 -21
- eolib/protocol/_generated/net/server/item_drop_server_packet.py +49 -64
- eolib/protocol/_generated/net/server/item_get_server_packet.py +35 -38
- eolib/protocol/_generated/net/server/item_junk_server_packet.py +35 -38
- eolib/protocol/_generated/net/server/item_kick_server_packet.py +28 -29
- eolib/protocol/_generated/net/server/item_map_info.py +42 -63
- eolib/protocol/_generated/net/server/item_obtain_server_packet.py +28 -29
- eolib/protocol/_generated/net/server/item_remove_server_packet.py +21 -20
- eolib/protocol/_generated/net/server/item_reply_server_packet.py +235 -300
- eolib/protocol/_generated/net/server/item_spec_server_packet.py +13 -7
- eolib/protocol/_generated/net/server/jukebox_agree_server_packet.py +21 -20
- eolib/protocol/_generated/net/server/jukebox_msg_server_packet.py +42 -63
- eolib/protocol/_generated/net/server/jukebox_open_server_packet.py +28 -29
- eolib/protocol/_generated/net/server/jukebox_player_server_packet.py +21 -20
- eolib/protocol/_generated/net/server/jukebox_reply_server_packet.py +13 -7
- eolib/protocol/_generated/net/server/jukebox_use_server_packet.py +22 -18
- eolib/protocol/_generated/net/server/level_up_stats.py +56 -105
- eolib/protocol/_generated/net/server/locker_buy_server_packet.py +28 -37
- eolib/protocol/_generated/net/server/locker_get_server_packet.py +39 -33
- eolib/protocol/_generated/net/server/locker_open_server_packet.py +32 -24
- eolib/protocol/_generated/net/server/locker_reply_server_packet.py +39 -33
- eolib/protocol/_generated/net/server/locker_spec_server_packet.py +21 -20
- eolib/protocol/_generated/net/server/login_reply.py +6 -0
- eolib/protocol/_generated/net/server/login_reply_server_packet.py +169 -115
- eolib/protocol/_generated/net/server/map_drain_damage_other.py +35 -54
- eolib/protocol/_generated/net/server/map_file.py +21 -12
- eolib/protocol/_generated/net/server/marriage_open_server_packet.py +21 -20
- eolib/protocol/_generated/net/server/marriage_reply_server_packet.py +56 -48
- eolib/protocol/_generated/net/server/message_accept_server_packet.py +30 -28
- eolib/protocol/_generated/net/server/message_close_server_packet.py +13 -7
- eolib/protocol/_generated/net/server/message_open_server_packet.py +21 -12
- eolib/protocol/_generated/net/server/message_pong_server_packet.py +13 -7
- eolib/protocol/_generated/net/server/music_player_server_packet.py +21 -20
- eolib/protocol/_generated/net/server/nearby_info.py +59 -61
- eolib/protocol/_generated/net/server/npc_accept_server_packet.py +47 -38
- eolib/protocol/_generated/net/server/npc_agree_server_packet.py +34 -32
- eolib/protocol/_generated/net/server/npc_dialog_server_packet.py +28 -29
- eolib/protocol/_generated/net/server/npc_junk_server_packet.py +21 -20
- eolib/protocol/_generated/net/server/npc_killed_data.py +70 -123
- eolib/protocol/_generated/net/server/npc_map_info.py +42 -55
- eolib/protocol/_generated/net/server/npc_player_server_packet.py +66 -76
- eolib/protocol/_generated/net/server/npc_reply_server_packet.py +60 -89
- eolib/protocol/_generated/net/server/npc_spec_server_packet.py +30 -27
- eolib/protocol/_generated/net/server/npc_update_attack.py +56 -89
- eolib/protocol/_generated/net/server/npc_update_chat.py +36 -45
- eolib/protocol/_generated/net/server/npc_update_position.py +35 -38
- eolib/protocol/_generated/net/server/online_player.py +60 -75
- eolib/protocol/_generated/net/server/paperdoll_agree_server_packet.py +49 -72
- eolib/protocol/_generated/net/server/paperdoll_ping_server_packet.py +22 -22
- eolib/protocol/_generated/net/server/paperdoll_remove_server_packet.py +42 -55
- eolib/protocol/_generated/net/server/paperdoll_reply_server_packet.py +37 -30
- eolib/protocol/_generated/net/server/party_add_server_packet.py +21 -12
- eolib/protocol/_generated/net/server/party_agree_server_packet.py +28 -37
- eolib/protocol/_generated/net/server/party_close_server_packet.py +13 -7
- eolib/protocol/_generated/net/server/party_create_server_packet.py +27 -16
- eolib/protocol/_generated/net/server/party_exp_share.py +37 -57
- eolib/protocol/_generated/net/server/party_list_server_packet.py +27 -16
- eolib/protocol/_generated/net/server/party_member.py +50 -73
- eolib/protocol/_generated/net/server/party_remove_server_packet.py +21 -20
- eolib/protocol/_generated/net/server/party_reply_server_packet.py +83 -58
- eolib/protocol/_generated/net/server/party_request_server_packet.py +35 -38
- eolib/protocol/_generated/net/server/party_target_group_server_packet.py +25 -15
- eolib/protocol/_generated/net/server/player_effect.py +90 -0
- eolib/protocol/_generated/net/server/players_agree_server_packet.py +21 -12
- eolib/protocol/_generated/net/server/players_list.py +38 -36
- eolib/protocol/_generated/net/server/players_list_friends.py +38 -36
- eolib/protocol/_generated/net/server/players_list_server_packet.py +23 -12
- eolib/protocol/_generated/net/server/players_net242_server_packet.py +21 -12
- eolib/protocol/_generated/net/server/players_ping_server_packet.py +21 -12
- eolib/protocol/_generated/net/server/players_pong_server_packet.py +21 -12
- eolib/protocol/_generated/net/server/players_remove_server_packet.py +21 -20
- eolib/protocol/_generated/net/server/players_reply_server_packet.py +23 -12
- eolib/protocol/_generated/net/server/priest_open_server_packet.py +21 -20
- eolib/protocol/_generated/net/server/priest_reply_server_packet.py +21 -12
- eolib/protocol/_generated/net/server/priest_request_server_packet.py +28 -29
- eolib/protocol/_generated/net/server/pub_file.py +28 -29
- eolib/protocol/_generated/net/server/quest_dialog_server_packet.py +76 -117
- eolib/protocol/_generated/net/server/quest_list_server_packet.py +99 -83
- eolib/protocol/_generated/net/server/quest_progress_entry.py +53 -66
- eolib/protocol/_generated/net/server/quest_report_server_packet.py +38 -37
- eolib/protocol/_generated/net/server/range_reply_server_packet.py +21 -12
- eolib/protocol/_generated/net/server/recover_agree_server_packet.py +35 -54
- eolib/protocol/_generated/net/server/recover_list_server_packet.py +28 -29
- eolib/protocol/_generated/net/server/recover_player_server_packet.py +30 -37
- eolib/protocol/_generated/net/server/recover_reply_server_packet.py +53 -93
- eolib/protocol/_generated/net/server/recover_target_group_server_packet.py +49 -88
- eolib/protocol/_generated/net/server/refresh_reply_server_packet.py +21 -12
- eolib/protocol/_generated/net/server/server_settings.py +63 -114
- eolib/protocol/_generated/net/server/shop_buy_server_packet.py +35 -38
- eolib/protocol/_generated/net/server/shop_craft_item.py +34 -42
- eolib/protocol/_generated/net/server/shop_create_server_packet.py +41 -51
- eolib/protocol/_generated/net/server/shop_open_server_packet.py +53 -57
- eolib/protocol/_generated/net/server/shop_sell_server_packet.py +35 -38
- eolib/protocol/_generated/net/server/shop_sold_item.py +28 -37
- eolib/protocol/_generated/net/server/shop_trade_item.py +42 -71
- eolib/protocol/_generated/net/server/sit_close_server_packet.py +28 -29
- eolib/protocol/_generated/net/server/sit_player_server_packet.py +36 -39
- eolib/protocol/_generated/net/server/sit_remove_server_packet.py +28 -29
- eolib/protocol/_generated/net/server/sit_reply_server_packet.py +36 -39
- eolib/protocol/_generated/net/server/skill_learn.py +64 -106
- eolib/protocol/_generated/net/server/skill_stat_requirements.py +134 -0
- eolib/protocol/_generated/net/server/spell_error_server_packet.py +13 -7
- eolib/protocol/_generated/net/server/spell_player_server_packet.py +28 -29
- eolib/protocol/_generated/net/server/spell_reply_server_packet.py +133 -0
- eolib/protocol/_generated/net/server/spell_request_server_packet.py +28 -37
- eolib/protocol/_generated/net/server/spell_target_group_server_packet.py +53 -83
- eolib/protocol/_generated/net/server/spell_target_other_server_packet.py +64 -114
- eolib/protocol/_generated/net/server/spell_target_self_server_packet.py +58 -107
- eolib/protocol/_generated/net/server/stat_skill_accept_server_packet.py +28 -29
- eolib/protocol/_generated/net/server/stat_skill_junk_server_packet.py +21 -12
- eolib/protocol/_generated/net/server/stat_skill_open_server_packet.py +42 -42
- eolib/protocol/_generated/net/server/stat_skill_player_server_packet.py +28 -29
- eolib/protocol/_generated/net/server/stat_skill_remove_server_packet.py +21 -20
- eolib/protocol/_generated/net/server/stat_skill_reply_server_packet.py +56 -48
- eolib/protocol/_generated/net/server/stat_skill_take_server_packet.py +28 -37
- eolib/protocol/_generated/net/server/talk_admin_server_packet.py +31 -22
- eolib/protocol/_generated/net/server/talk_announce_server_packet.py +31 -22
- eolib/protocol/_generated/net/server/talk_list_server_packet.py +27 -16
- eolib/protocol/_generated/net/server/talk_msg_server_packet.py +31 -22
- eolib/protocol/_generated/net/server/talk_open_server_packet.py +28 -29
- eolib/protocol/_generated/net/server/talk_player_server_packet.py +28 -29
- eolib/protocol/_generated/net/server/talk_reply_server_packet.py +28 -21
- eolib/protocol/_generated/net/server/talk_request_server_packet.py +31 -22
- eolib/protocol/_generated/net/server/talk_server_server_packet.py +21 -12
- eolib/protocol/_generated/net/server/talk_spec_server_packet.py +21 -12
- eolib/protocol/_generated/net/server/talk_tell_server_packet.py +31 -22
- eolib/protocol/_generated/net/server/tile_effect.py +91 -0
- eolib/protocol/_generated/net/server/trade_admin_server_packet.py +35 -13
- eolib/protocol/_generated/net/server/trade_agree_server_packet.py +28 -29
- eolib/protocol/_generated/net/server/trade_close_server_packet.py +21 -20
- eolib/protocol/_generated/net/server/trade_item_data.py +38 -82
- eolib/protocol/_generated/net/server/trade_open_server_packet.py +46 -57
- eolib/protocol/_generated/net/server/trade_reply_server_packet.py +35 -13
- eolib/protocol/_generated/net/server/trade_request_server_packet.py +29 -30
- eolib/protocol/_generated/net/server/trade_spec_server_packet.py +21 -12
- eolib/protocol/_generated/net/server/trade_use_server_packet.py +35 -13
- eolib/protocol/_generated/net/server/walk_close_server_packet.py +13 -7
- eolib/protocol/_generated/net/server/walk_open_server_packet.py +13 -7
- eolib/protocol/_generated/net/server/walk_player_server_packet.py +35 -58
- eolib/protocol/_generated/net/server/walk_reply_server_packet.py +49 -57
- eolib/protocol/_generated/net/server/warp_agree_server_packet.py +72 -66
- eolib/protocol/_generated/net/server/warp_create_server_packet.py +21 -12
- eolib/protocol/_generated/net/server/warp_player_server_packet.py +21 -12
- eolib/protocol/_generated/net/server/warp_request_server_packet.py +83 -106
- eolib/protocol/_generated/net/server/welcome_net242_server_packet.py +21 -12
- eolib/protocol/_generated/net/server/welcome_net243_server_packet.py +21 -12
- eolib/protocol/_generated/net/server/welcome_net244_server_packet.py +21 -12
- eolib/protocol/_generated/net/server/welcome_ping_server_packet.py +21 -12
- eolib/protocol/_generated/net/server/welcome_pong_server_packet.py +21 -12
- eolib/protocol/_generated/net/server/welcome_reply_server_packet.py +350 -556
- eolib/protocol/_generated/net/spell.py +28 -37
- eolib/protocol/_generated/net/three_item.py +28 -37
- eolib/protocol/_generated/net/version.py +35 -54
- eolib/protocol/_generated/net/weight.py +28 -37
- eolib/protocol/_generated/pub/ecf.py +52 -74
- eolib/protocol/_generated/pub/ecf_record.py +85 -164
- eolib/protocol/_generated/pub/eif.py +52 -74
- eolib/protocol/_generated/pub/eif_record.py +303 -658
- eolib/protocol/_generated/pub/enf.py +52 -74
- eolib/protocol/_generated/pub/enf_record.py +169 -328
- eolib/protocol/_generated/pub/esf.py +52 -74
- eolib/protocol/_generated/pub/esf_record.py +242 -491
- eolib/protocol/_generated/pub/server/__init__.py +30 -0
- eolib/protocol/_generated/pub/server/drop_file.py +87 -0
- eolib/protocol/_generated/pub/server/drop_npc_record.py +104 -0
- eolib/protocol/_generated/pub/server/drop_record.py +115 -0
- eolib/protocol/_generated/pub/server/inn_file.py +87 -0
- eolib/protocol/_generated/pub/server/inn_question_record.py +106 -0
- eolib/protocol/_generated/pub/server/inn_record.py +255 -0
- eolib/protocol/_generated/pub/server/shop_craft_ingredient_record.py +93 -0
- eolib/protocol/_generated/pub/server/shop_craft_record.py +98 -0
- eolib/protocol/_generated/pub/server/shop_file.py +87 -0
- eolib/protocol/_generated/pub/server/shop_record.py +188 -0
- eolib/protocol/_generated/pub/server/shop_trade_record.py +121 -0
- eolib/protocol/_generated/pub/server/skill_master_file.py +87 -0
- eolib/protocol/_generated/pub/server/skill_master_record.py +168 -0
- eolib/protocol/_generated/pub/server/skill_master_skill_record.py +223 -0
- eolib/protocol/_generated/pub/server/talk_file.py +87 -0
- eolib/protocol/_generated/pub/server/talk_message_record.py +87 -0
- eolib/protocol/_generated/pub/server/talk_record.py +121 -0
- eolib/protocol/protocol_enum_meta.py +1 -3
- eolib/protocol/pub/server/__init__.py +8 -0
- {eolib-1.1.1.dist-info → eolib-2.0.0.dist-info}/METADATA +5 -3
- {eolib-1.1.1.dist-info → eolib-2.0.0.dist-info}/RECORD +437 -414
- {eolib-1.1.1.dist-info → eolib-2.0.0.dist-info}/WHEEL +1 -1
- {eolib-1.1.1.dist-info → eolib-2.0.0.dist-info}/licenses/LICENSE.txt +0 -0
@@ -5,6 +5,7 @@
|
|
5
5
|
|
6
6
|
from __future__ import annotations
|
7
7
|
from typing import Union
|
8
|
+
from collections.abc import Iterable
|
8
9
|
from .welcome_code import WelcomeCode
|
9
10
|
from .server_settings import ServerSettings
|
10
11
|
from .nearby_info import NearbyInfo
|
@@ -27,8 +28,19 @@ class WelcomeReplyServerPacket(Packet):
|
|
27
28
|
Reply to selecting a character / entering game
|
28
29
|
"""
|
29
30
|
_byte_size: int = 0
|
30
|
-
_welcome_code: WelcomeCode
|
31
|
-
_welcome_code_data: 'WelcomeReplyServerPacket.WelcomeCodeData'
|
31
|
+
_welcome_code: WelcomeCode
|
32
|
+
_welcome_code_data: 'WelcomeReplyServerPacket.WelcomeCodeData'
|
33
|
+
|
34
|
+
def __init__(self, *, welcome_code: WelcomeCode, welcome_code_data: 'WelcomeReplyServerPacket.WelcomeCodeData' = None):
|
35
|
+
"""
|
36
|
+
Create a new instance of WelcomeReplyServerPacket.
|
37
|
+
|
38
|
+
Args:
|
39
|
+
welcome_code (WelcomeCode):
|
40
|
+
welcome_code_data (WelcomeReplyServerPacket.WelcomeCodeData): Data associated with the `welcome_code` field.
|
41
|
+
"""
|
42
|
+
self._welcome_code = welcome_code
|
43
|
+
self._welcome_code_data = welcome_code_data
|
32
44
|
|
33
45
|
@property
|
34
46
|
def byte_size(self) -> int:
|
@@ -44,21 +56,13 @@ class WelcomeReplyServerPacket(Packet):
|
|
44
56
|
def welcome_code(self) -> WelcomeCode:
|
45
57
|
return self._welcome_code
|
46
58
|
|
47
|
-
@welcome_code.setter
|
48
|
-
def welcome_code(self, welcome_code: WelcomeCode) -> None:
|
49
|
-
self._welcome_code = welcome_code
|
50
|
-
|
51
59
|
@property
|
52
60
|
def welcome_code_data(self) -> 'WelcomeReplyServerPacket.WelcomeCodeData':
|
53
61
|
"""
|
54
|
-
WelcomeReplyServerPacket.WelcomeCodeData:
|
62
|
+
WelcomeReplyServerPacket.WelcomeCodeData: Data associated with the `welcome_code` field.
|
55
63
|
"""
|
56
64
|
return self._welcome_code_data
|
57
65
|
|
58
|
-
@welcome_code_data.setter
|
59
|
-
def welcome_code_data(self, welcome_code_data: 'WelcomeReplyServerPacket.WelcomeCodeData') -> None:
|
60
|
-
self._welcome_code_data = welcome_code_data
|
61
|
-
|
62
66
|
@staticmethod
|
63
67
|
def family() -> PacketFamily:
|
64
68
|
"""
|
@@ -97,17 +101,23 @@ class WelcomeReplyServerPacket(Packet):
|
|
97
101
|
writer (EoWriter): The writer that the data will be serialized to.
|
98
102
|
data (WelcomeReplyServerPacket): The data to serialize.
|
99
103
|
"""
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
104
|
+
old_string_sanitization_mode: bool = writer.string_sanitization_mode
|
105
|
+
try:
|
106
|
+
if data._welcome_code is None:
|
107
|
+
raise SerializationError("welcome_code must be provided.")
|
108
|
+
writer.add_short(int(data._welcome_code))
|
109
|
+
writer.string_sanitization_mode = True
|
110
|
+
if data._welcome_code == WelcomeCode.SelectCharacter:
|
111
|
+
if not isinstance(data._welcome_code_data, WelcomeReplyServerPacket.WelcomeCodeDataSelectCharacter):
|
112
|
+
raise SerializationError("Expected welcome_code_data to be type WelcomeReplyServerPacket.WelcomeCodeDataSelectCharacter for welcome_code " + WelcomeCode(data._welcome_code).name + ".")
|
113
|
+
WelcomeReplyServerPacket.WelcomeCodeDataSelectCharacter.serialize(writer, data._welcome_code_data)
|
114
|
+
elif data._welcome_code == WelcomeCode.EnterGame:
|
115
|
+
if not isinstance(data._welcome_code_data, WelcomeReplyServerPacket.WelcomeCodeDataEnterGame):
|
116
|
+
raise SerializationError("Expected welcome_code_data to be type WelcomeReplyServerPacket.WelcomeCodeDataEnterGame for welcome_code " + WelcomeCode(data._welcome_code).name + ".")
|
117
|
+
WelcomeReplyServerPacket.WelcomeCodeDataEnterGame.serialize(writer, data._welcome_code_data)
|
118
|
+
writer.string_sanitization_mode = False
|
119
|
+
finally:
|
120
|
+
writer.string_sanitization_mode = old_string_sanitization_mode
|
111
121
|
|
112
122
|
@staticmethod
|
113
123
|
def deserialize(reader: EoReader) -> "WelcomeReplyServerPacket":
|
@@ -120,19 +130,20 @@ class WelcomeReplyServerPacket(Packet):
|
|
120
130
|
Returns:
|
121
131
|
WelcomeReplyServerPacket: The data to serialize.
|
122
132
|
"""
|
123
|
-
data: WelcomeReplyServerPacket = WelcomeReplyServerPacket()
|
124
133
|
old_chunked_reading_mode: bool = reader.chunked_reading_mode
|
125
134
|
try:
|
126
135
|
reader_start_position: int = reader.position
|
127
|
-
|
136
|
+
welcome_code = WelcomeCode(reader.get_short())
|
128
137
|
reader.chunked_reading_mode = True
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
138
|
+
welcome_code_data: WelcomeReplyServerPacket.WelcomeCodeData = None
|
139
|
+
if welcome_code == WelcomeCode.SelectCharacter:
|
140
|
+
welcome_code_data = WelcomeReplyServerPacket.WelcomeCodeDataSelectCharacter.deserialize(reader)
|
141
|
+
elif welcome_code == WelcomeCode.EnterGame:
|
142
|
+
welcome_code_data = WelcomeReplyServerPacket.WelcomeCodeDataEnterGame.deserialize(reader)
|
133
143
|
reader.chunked_reading_mode = False
|
134
|
-
|
135
|
-
|
144
|
+
result = WelcomeReplyServerPacket(welcome_code=welcome_code, welcome_code_data=welcome_code_data)
|
145
|
+
result._byte_size = reader.position - reader_start_position
|
146
|
+
return result
|
136
147
|
finally:
|
137
148
|
reader.chunked_reading_mode = old_chunked_reading_mode
|
138
149
|
|
@@ -140,44 +151,106 @@ class WelcomeReplyServerPacket(Packet):
|
|
140
151
|
return f"WelcomeReplyServerPacket(byte_size={repr(self._byte_size)}, welcome_code={repr(self._welcome_code)}, welcome_code_data={repr(self._welcome_code_data)})"
|
141
152
|
|
142
153
|
WelcomeCodeData = Union['WelcomeReplyServerPacket.WelcomeCodeDataSelectCharacter', 'WelcomeReplyServerPacket.WelcomeCodeDataEnterGame', None]
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
"""
|
154
|
+
"""
|
155
|
+
Data associated with different values of the `welcome_code` field.
|
156
|
+
"""
|
147
157
|
|
148
158
|
class WelcomeCodeDataSelectCharacter:
|
149
159
|
"""
|
150
160
|
Data associated with welcome_code value WelcomeCode.SelectCharacter
|
151
161
|
"""
|
152
162
|
_byte_size: int = 0
|
153
|
-
_session_id: int
|
154
|
-
_character_id: int
|
155
|
-
_map_id: int
|
156
|
-
_map_rid:
|
157
|
-
_map_file_size: int
|
158
|
-
_eif_rid:
|
159
|
-
_eif_length: int
|
160
|
-
_enf_rid:
|
161
|
-
_enf_length: int
|
162
|
-
_esf_rid:
|
163
|
-
_esf_length: int
|
164
|
-
_ecf_rid:
|
165
|
-
_ecf_length: int
|
166
|
-
_name: str
|
167
|
-
_title: str
|
168
|
-
_guild_name: str
|
169
|
-
_guild_rank_name: str
|
170
|
-
_class_id: int
|
171
|
-
_guild_tag: str
|
172
|
-
_admin: AdminLevel
|
173
|
-
_level: int
|
174
|
-
_experience: int
|
175
|
-
_usage: int
|
176
|
-
_stats: CharacterStatsWelcome
|
177
|
-
_equipment: EquipmentWelcome
|
178
|
-
_guild_rank: int
|
179
|
-
_settings: ServerSettings
|
180
|
-
_login_message_code: LoginMessageCode
|
163
|
+
_session_id: int
|
164
|
+
_character_id: int
|
165
|
+
_map_id: int
|
166
|
+
_map_rid: tuple[int, ...]
|
167
|
+
_map_file_size: int
|
168
|
+
_eif_rid: tuple[int, ...]
|
169
|
+
_eif_length: int
|
170
|
+
_enf_rid: tuple[int, ...]
|
171
|
+
_enf_length: int
|
172
|
+
_esf_rid: tuple[int, ...]
|
173
|
+
_esf_length: int
|
174
|
+
_ecf_rid: tuple[int, ...]
|
175
|
+
_ecf_length: int
|
176
|
+
_name: str
|
177
|
+
_title: str
|
178
|
+
_guild_name: str
|
179
|
+
_guild_rank_name: str
|
180
|
+
_class_id: int
|
181
|
+
_guild_tag: str
|
182
|
+
_admin: AdminLevel
|
183
|
+
_level: int
|
184
|
+
_experience: int
|
185
|
+
_usage: int
|
186
|
+
_stats: CharacterStatsWelcome
|
187
|
+
_equipment: EquipmentWelcome
|
188
|
+
_guild_rank: int
|
189
|
+
_settings: ServerSettings
|
190
|
+
_login_message_code: LoginMessageCode
|
191
|
+
|
192
|
+
def __init__(self, *, session_id: int, character_id: int, map_id: int, map_rid: Iterable[int], map_file_size: int, eif_rid: Iterable[int], eif_length: int, enf_rid: Iterable[int], enf_length: int, esf_rid: Iterable[int], esf_length: int, ecf_rid: Iterable[int], ecf_length: int, name: str, title: str, guild_name: str, guild_rank_name: str, class_id: int, guild_tag: str, admin: AdminLevel, level: int, experience: int, usage: int, stats: CharacterStatsWelcome, equipment: EquipmentWelcome, guild_rank: int, settings: ServerSettings, login_message_code: LoginMessageCode):
|
193
|
+
"""
|
194
|
+
Create a new instance of WelcomeReplyServerPacket.WelcomeCodeDataSelectCharacter.
|
195
|
+
|
196
|
+
Args:
|
197
|
+
session_id (int): (Value range is 0-64008.)
|
198
|
+
character_id (int): (Value range is 0-4097152080.)
|
199
|
+
map_id (int): (Value range is 0-64008.)
|
200
|
+
map_rid (Iterable[int]): (Length must be `2`.) (Element value range is 0-64008.)
|
201
|
+
map_file_size (int): (Value range is 0-16194276.)
|
202
|
+
eif_rid (Iterable[int]): (Length must be `2`.) (Element value range is 0-64008.)
|
203
|
+
eif_length (int): (Value range is 0-64008.)
|
204
|
+
enf_rid (Iterable[int]): (Length must be `2`.) (Element value range is 0-64008.)
|
205
|
+
enf_length (int): (Value range is 0-64008.)
|
206
|
+
esf_rid (Iterable[int]): (Length must be `2`.) (Element value range is 0-64008.)
|
207
|
+
esf_length (int): (Value range is 0-64008.)
|
208
|
+
ecf_rid (Iterable[int]): (Length must be `2`.) (Element value range is 0-64008.)
|
209
|
+
ecf_length (int): (Value range is 0-64008.)
|
210
|
+
name (str):
|
211
|
+
title (str):
|
212
|
+
guild_name (str):
|
213
|
+
guild_rank_name (str):
|
214
|
+
class_id (int): (Value range is 0-252.)
|
215
|
+
guild_tag (str): (Length must be `3`.)
|
216
|
+
admin (AdminLevel):
|
217
|
+
level (int): (Value range is 0-252.)
|
218
|
+
experience (int): (Value range is 0-4097152080.)
|
219
|
+
usage (int): (Value range is 0-4097152080.)
|
220
|
+
stats (CharacterStatsWelcome):
|
221
|
+
equipment (EquipmentWelcome):
|
222
|
+
guild_rank (int): (Value range is 0-252.)
|
223
|
+
settings (ServerSettings):
|
224
|
+
login_message_code (LoginMessageCode):
|
225
|
+
"""
|
226
|
+
self._session_id = session_id
|
227
|
+
self._character_id = character_id
|
228
|
+
self._map_id = map_id
|
229
|
+
self._map_rid = tuple(map_rid)
|
230
|
+
self._map_file_size = map_file_size
|
231
|
+
self._eif_rid = tuple(eif_rid)
|
232
|
+
self._eif_length = eif_length
|
233
|
+
self._enf_rid = tuple(enf_rid)
|
234
|
+
self._enf_length = enf_length
|
235
|
+
self._esf_rid = tuple(esf_rid)
|
236
|
+
self._esf_length = esf_length
|
237
|
+
self._ecf_rid = tuple(ecf_rid)
|
238
|
+
self._ecf_length = ecf_length
|
239
|
+
self._name = name
|
240
|
+
self._title = title
|
241
|
+
self._guild_name = guild_name
|
242
|
+
self._guild_rank_name = guild_rank_name
|
243
|
+
self._class_id = class_id
|
244
|
+
self._guild_tag = guild_tag
|
245
|
+
self._admin = admin
|
246
|
+
self._level = level
|
247
|
+
self._experience = experience
|
248
|
+
self._usage = usage
|
249
|
+
self._stats = stats
|
250
|
+
self._equipment = equipment
|
251
|
+
self._guild_rank = guild_rank
|
252
|
+
self._settings = settings
|
253
|
+
self._login_message_code = login_message_code
|
181
254
|
|
182
255
|
@property
|
183
256
|
def byte_size(self) -> int:
|
@@ -191,390 +264,116 @@ class WelcomeReplyServerPacket(Packet):
|
|
191
264
|
|
192
265
|
@property
|
193
266
|
def session_id(self) -> int:
|
194
|
-
"""
|
195
|
-
Note:
|
196
|
-
- Value range is 0-64008.
|
197
|
-
"""
|
198
267
|
return self._session_id
|
199
268
|
|
200
|
-
@session_id.setter
|
201
|
-
def session_id(self, session_id: int) -> None:
|
202
|
-
"""
|
203
|
-
Note:
|
204
|
-
- Value range is 0-64008.
|
205
|
-
"""
|
206
|
-
self._session_id = session_id
|
207
|
-
|
208
269
|
@property
|
209
270
|
def character_id(self) -> int:
|
210
|
-
"""
|
211
|
-
Note:
|
212
|
-
- Value range is 0-4097152080.
|
213
|
-
"""
|
214
271
|
return self._character_id
|
215
272
|
|
216
|
-
@character_id.setter
|
217
|
-
def character_id(self, character_id: int) -> None:
|
218
|
-
"""
|
219
|
-
Note:
|
220
|
-
- Value range is 0-4097152080.
|
221
|
-
"""
|
222
|
-
self._character_id = character_id
|
223
|
-
|
224
273
|
@property
|
225
274
|
def map_id(self) -> int:
|
226
|
-
"""
|
227
|
-
Note:
|
228
|
-
- Value range is 0-64008.
|
229
|
-
"""
|
230
275
|
return self._map_id
|
231
276
|
|
232
|
-
@map_id.setter
|
233
|
-
def map_id(self, map_id: int) -> None:
|
234
|
-
"""
|
235
|
-
Note:
|
236
|
-
- Value range is 0-64008.
|
237
|
-
"""
|
238
|
-
self._map_id = map_id
|
239
|
-
|
240
277
|
@property
|
241
|
-
def map_rid(self) ->
|
242
|
-
"""
|
243
|
-
Note:
|
244
|
-
- Length must be `2`.
|
245
|
-
- Element value range is 0-64008.
|
246
|
-
"""
|
278
|
+
def map_rid(self) -> tuple[int, ...]:
|
247
279
|
return self._map_rid
|
248
280
|
|
249
|
-
@map_rid.setter
|
250
|
-
def map_rid(self, map_rid: list[int]) -> None:
|
251
|
-
"""
|
252
|
-
Note:
|
253
|
-
- Length must be `2`.
|
254
|
-
- Element value range is 0-64008.
|
255
|
-
"""
|
256
|
-
self._map_rid = map_rid
|
257
|
-
|
258
281
|
@property
|
259
282
|
def map_file_size(self) -> int:
|
260
|
-
"""
|
261
|
-
Note:
|
262
|
-
- Value range is 0-16194276.
|
263
|
-
"""
|
264
283
|
return self._map_file_size
|
265
284
|
|
266
|
-
@map_file_size.setter
|
267
|
-
def map_file_size(self, map_file_size: int) -> None:
|
268
|
-
"""
|
269
|
-
Note:
|
270
|
-
- Value range is 0-16194276.
|
271
|
-
"""
|
272
|
-
self._map_file_size = map_file_size
|
273
|
-
|
274
285
|
@property
|
275
|
-
def eif_rid(self) ->
|
276
|
-
"""
|
277
|
-
Note:
|
278
|
-
- Length must be `2`.
|
279
|
-
- Element value range is 0-64008.
|
280
|
-
"""
|
286
|
+
def eif_rid(self) -> tuple[int, ...]:
|
281
287
|
return self._eif_rid
|
282
288
|
|
283
|
-
@eif_rid.setter
|
284
|
-
def eif_rid(self, eif_rid: list[int]) -> None:
|
285
|
-
"""
|
286
|
-
Note:
|
287
|
-
- Length must be `2`.
|
288
|
-
- Element value range is 0-64008.
|
289
|
-
"""
|
290
|
-
self._eif_rid = eif_rid
|
291
|
-
|
292
289
|
@property
|
293
290
|
def eif_length(self) -> int:
|
294
|
-
"""
|
295
|
-
Note:
|
296
|
-
- Value range is 0-64008.
|
297
|
-
"""
|
298
291
|
return self._eif_length
|
299
292
|
|
300
|
-
@eif_length.setter
|
301
|
-
def eif_length(self, eif_length: int) -> None:
|
302
|
-
"""
|
303
|
-
Note:
|
304
|
-
- Value range is 0-64008.
|
305
|
-
"""
|
306
|
-
self._eif_length = eif_length
|
307
|
-
|
308
293
|
@property
|
309
|
-
def enf_rid(self) ->
|
310
|
-
"""
|
311
|
-
Note:
|
312
|
-
- Length must be `2`.
|
313
|
-
- Element value range is 0-64008.
|
314
|
-
"""
|
294
|
+
def enf_rid(self) -> tuple[int, ...]:
|
315
295
|
return self._enf_rid
|
316
296
|
|
317
|
-
@enf_rid.setter
|
318
|
-
def enf_rid(self, enf_rid: list[int]) -> None:
|
319
|
-
"""
|
320
|
-
Note:
|
321
|
-
- Length must be `2`.
|
322
|
-
- Element value range is 0-64008.
|
323
|
-
"""
|
324
|
-
self._enf_rid = enf_rid
|
325
|
-
|
326
297
|
@property
|
327
298
|
def enf_length(self) -> int:
|
328
|
-
"""
|
329
|
-
Note:
|
330
|
-
- Value range is 0-64008.
|
331
|
-
"""
|
332
299
|
return self._enf_length
|
333
300
|
|
334
|
-
@enf_length.setter
|
335
|
-
def enf_length(self, enf_length: int) -> None:
|
336
|
-
"""
|
337
|
-
Note:
|
338
|
-
- Value range is 0-64008.
|
339
|
-
"""
|
340
|
-
self._enf_length = enf_length
|
341
|
-
|
342
301
|
@property
|
343
|
-
def esf_rid(self) ->
|
344
|
-
"""
|
345
|
-
Note:
|
346
|
-
- Length must be `2`.
|
347
|
-
- Element value range is 0-64008.
|
348
|
-
"""
|
302
|
+
def esf_rid(self) -> tuple[int, ...]:
|
349
303
|
return self._esf_rid
|
350
304
|
|
351
|
-
@esf_rid.setter
|
352
|
-
def esf_rid(self, esf_rid: list[int]) -> None:
|
353
|
-
"""
|
354
|
-
Note:
|
355
|
-
- Length must be `2`.
|
356
|
-
- Element value range is 0-64008.
|
357
|
-
"""
|
358
|
-
self._esf_rid = esf_rid
|
359
|
-
|
360
305
|
@property
|
361
306
|
def esf_length(self) -> int:
|
362
|
-
"""
|
363
|
-
Note:
|
364
|
-
- Value range is 0-64008.
|
365
|
-
"""
|
366
307
|
return self._esf_length
|
367
308
|
|
368
|
-
@esf_length.setter
|
369
|
-
def esf_length(self, esf_length: int) -> None:
|
370
|
-
"""
|
371
|
-
Note:
|
372
|
-
- Value range is 0-64008.
|
373
|
-
"""
|
374
|
-
self._esf_length = esf_length
|
375
|
-
|
376
309
|
@property
|
377
|
-
def ecf_rid(self) ->
|
378
|
-
"""
|
379
|
-
Note:
|
380
|
-
- Length must be `2`.
|
381
|
-
- Element value range is 0-64008.
|
382
|
-
"""
|
310
|
+
def ecf_rid(self) -> tuple[int, ...]:
|
383
311
|
return self._ecf_rid
|
384
312
|
|
385
|
-
@ecf_rid.setter
|
386
|
-
def ecf_rid(self, ecf_rid: list[int]) -> None:
|
387
|
-
"""
|
388
|
-
Note:
|
389
|
-
- Length must be `2`.
|
390
|
-
- Element value range is 0-64008.
|
391
|
-
"""
|
392
|
-
self._ecf_rid = ecf_rid
|
393
|
-
|
394
313
|
@property
|
395
314
|
def ecf_length(self) -> int:
|
396
|
-
"""
|
397
|
-
Note:
|
398
|
-
- Value range is 0-64008.
|
399
|
-
"""
|
400
315
|
return self._ecf_length
|
401
316
|
|
402
|
-
@ecf_length.setter
|
403
|
-
def ecf_length(self, ecf_length: int) -> None:
|
404
|
-
"""
|
405
|
-
Note:
|
406
|
-
- Value range is 0-64008.
|
407
|
-
"""
|
408
|
-
self._ecf_length = ecf_length
|
409
|
-
|
410
317
|
@property
|
411
318
|
def name(self) -> str:
|
412
319
|
return self._name
|
413
320
|
|
414
|
-
@name.setter
|
415
|
-
def name(self, name: str) -> None:
|
416
|
-
self._name = name
|
417
|
-
|
418
321
|
@property
|
419
322
|
def title(self) -> str:
|
420
323
|
return self._title
|
421
324
|
|
422
|
-
@title.setter
|
423
|
-
def title(self, title: str) -> None:
|
424
|
-
self._title = title
|
425
|
-
|
426
325
|
@property
|
427
326
|
def guild_name(self) -> str:
|
428
327
|
return self._guild_name
|
429
328
|
|
430
|
-
@guild_name.setter
|
431
|
-
def guild_name(self, guild_name: str) -> None:
|
432
|
-
self._guild_name = guild_name
|
433
|
-
|
434
329
|
@property
|
435
330
|
def guild_rank_name(self) -> str:
|
436
331
|
return self._guild_rank_name
|
437
332
|
|
438
|
-
@guild_rank_name.setter
|
439
|
-
def guild_rank_name(self, guild_rank_name: str) -> None:
|
440
|
-
self._guild_rank_name = guild_rank_name
|
441
|
-
|
442
333
|
@property
|
443
334
|
def class_id(self) -> int:
|
444
|
-
"""
|
445
|
-
Note:
|
446
|
-
- Value range is 0-252.
|
447
|
-
"""
|
448
335
|
return self._class_id
|
449
336
|
|
450
|
-
@class_id.setter
|
451
|
-
def class_id(self, class_id: int) -> None:
|
452
|
-
"""
|
453
|
-
Note:
|
454
|
-
- Value range is 0-252.
|
455
|
-
"""
|
456
|
-
self._class_id = class_id
|
457
|
-
|
458
337
|
@property
|
459
338
|
def guild_tag(self) -> str:
|
460
|
-
"""
|
461
|
-
Note:
|
462
|
-
- Length must be `3`.
|
463
|
-
"""
|
464
339
|
return self._guild_tag
|
465
340
|
|
466
|
-
@guild_tag.setter
|
467
|
-
def guild_tag(self, guild_tag: str) -> None:
|
468
|
-
"""
|
469
|
-
Note:
|
470
|
-
- Length must be `3`.
|
471
|
-
"""
|
472
|
-
self._guild_tag = guild_tag
|
473
|
-
|
474
341
|
@property
|
475
342
|
def admin(self) -> AdminLevel:
|
476
343
|
return self._admin
|
477
344
|
|
478
|
-
@admin.setter
|
479
|
-
def admin(self, admin: AdminLevel) -> None:
|
480
|
-
self._admin = admin
|
481
|
-
|
482
345
|
@property
|
483
346
|
def level(self) -> int:
|
484
|
-
"""
|
485
|
-
Note:
|
486
|
-
- Value range is 0-252.
|
487
|
-
"""
|
488
347
|
return self._level
|
489
348
|
|
490
|
-
@level.setter
|
491
|
-
def level(self, level: int) -> None:
|
492
|
-
"""
|
493
|
-
Note:
|
494
|
-
- Value range is 0-252.
|
495
|
-
"""
|
496
|
-
self._level = level
|
497
|
-
|
498
349
|
@property
|
499
350
|
def experience(self) -> int:
|
500
|
-
"""
|
501
|
-
Note:
|
502
|
-
- Value range is 0-4097152080.
|
503
|
-
"""
|
504
351
|
return self._experience
|
505
352
|
|
506
|
-
@experience.setter
|
507
|
-
def experience(self, experience: int) -> None:
|
508
|
-
"""
|
509
|
-
Note:
|
510
|
-
- Value range is 0-4097152080.
|
511
|
-
"""
|
512
|
-
self._experience = experience
|
513
|
-
|
514
353
|
@property
|
515
354
|
def usage(self) -> int:
|
516
|
-
"""
|
517
|
-
Note:
|
518
|
-
- Value range is 0-4097152080.
|
519
|
-
"""
|
520
355
|
return self._usage
|
521
356
|
|
522
|
-
@usage.setter
|
523
|
-
def usage(self, usage: int) -> None:
|
524
|
-
"""
|
525
|
-
Note:
|
526
|
-
- Value range is 0-4097152080.
|
527
|
-
"""
|
528
|
-
self._usage = usage
|
529
|
-
|
530
357
|
@property
|
531
358
|
def stats(self) -> CharacterStatsWelcome:
|
532
359
|
return self._stats
|
533
360
|
|
534
|
-
@stats.setter
|
535
|
-
def stats(self, stats: CharacterStatsWelcome) -> None:
|
536
|
-
self._stats = stats
|
537
|
-
|
538
361
|
@property
|
539
362
|
def equipment(self) -> EquipmentWelcome:
|
540
363
|
return self._equipment
|
541
364
|
|
542
|
-
@equipment.setter
|
543
|
-
def equipment(self, equipment: EquipmentWelcome) -> None:
|
544
|
-
self._equipment = equipment
|
545
|
-
|
546
365
|
@property
|
547
366
|
def guild_rank(self) -> int:
|
548
|
-
"""
|
549
|
-
Note:
|
550
|
-
- Value range is 0-252.
|
551
|
-
"""
|
552
367
|
return self._guild_rank
|
553
368
|
|
554
|
-
@guild_rank.setter
|
555
|
-
def guild_rank(self, guild_rank: int) -> None:
|
556
|
-
"""
|
557
|
-
Note:
|
558
|
-
- Value range is 0-252.
|
559
|
-
"""
|
560
|
-
self._guild_rank = guild_rank
|
561
|
-
|
562
369
|
@property
|
563
370
|
def settings(self) -> ServerSettings:
|
564
371
|
return self._settings
|
565
372
|
|
566
|
-
@settings.setter
|
567
|
-
def settings(self, settings: ServerSettings) -> None:
|
568
|
-
self._settings = settings
|
569
|
-
|
570
373
|
@property
|
571
374
|
def login_message_code(self) -> LoginMessageCode:
|
572
375
|
return self._login_message_code
|
573
376
|
|
574
|
-
@login_message_code.setter
|
575
|
-
def login_message_code(self, login_message_code: LoginMessageCode) -> None:
|
576
|
-
self._login_message_code = login_message_code
|
577
|
-
|
578
377
|
@staticmethod
|
579
378
|
def serialize(writer: EoWriter, data: "WelcomeReplyServerPacket.WelcomeCodeDataSelectCharacter") -> None:
|
580
379
|
"""
|
@@ -584,112 +383,116 @@ class WelcomeReplyServerPacket(Packet):
|
|
584
383
|
writer (EoWriter): The writer that the data will be serialized to.
|
585
384
|
data (WelcomeReplyServerPacket.WelcomeCodeDataSelectCharacter): The data to serialize.
|
586
385
|
"""
|
587
|
-
|
588
|
-
|
589
|
-
|
590
|
-
|
591
|
-
|
592
|
-
|
593
|
-
|
594
|
-
|
595
|
-
|
596
|
-
|
597
|
-
|
598
|
-
|
599
|
-
|
600
|
-
|
601
|
-
|
602
|
-
|
603
|
-
|
604
|
-
|
605
|
-
|
606
|
-
|
607
|
-
|
608
|
-
|
609
|
-
|
610
|
-
|
611
|
-
|
612
|
-
|
613
|
-
|
614
|
-
|
615
|
-
|
616
|
-
|
617
|
-
|
618
|
-
|
619
|
-
|
620
|
-
|
621
|
-
|
622
|
-
|
623
|
-
|
624
|
-
|
625
|
-
|
626
|
-
|
627
|
-
|
628
|
-
|
629
|
-
|
630
|
-
|
631
|
-
|
632
|
-
|
633
|
-
|
634
|
-
|
635
|
-
|
636
|
-
|
637
|
-
|
638
|
-
|
639
|
-
|
640
|
-
|
641
|
-
|
642
|
-
|
643
|
-
|
644
|
-
|
645
|
-
|
646
|
-
|
647
|
-
|
648
|
-
|
649
|
-
|
650
|
-
|
651
|
-
|
652
|
-
|
653
|
-
|
654
|
-
|
655
|
-
|
656
|
-
|
657
|
-
|
658
|
-
|
659
|
-
|
660
|
-
|
661
|
-
|
662
|
-
|
663
|
-
|
664
|
-
|
665
|
-
|
666
|
-
|
667
|
-
|
668
|
-
|
669
|
-
|
670
|
-
|
671
|
-
|
672
|
-
|
673
|
-
|
674
|
-
|
675
|
-
|
676
|
-
|
677
|
-
|
678
|
-
|
679
|
-
|
680
|
-
|
681
|
-
|
682
|
-
|
683
|
-
|
684
|
-
|
685
|
-
|
686
|
-
|
687
|
-
|
688
|
-
|
689
|
-
|
690
|
-
|
691
|
-
|
692
|
-
|
386
|
+
old_string_sanitization_mode: bool = writer.string_sanitization_mode
|
387
|
+
try:
|
388
|
+
if data._session_id is None:
|
389
|
+
raise SerializationError("session_id must be provided.")
|
390
|
+
writer.add_short(data._session_id)
|
391
|
+
if data._character_id is None:
|
392
|
+
raise SerializationError("character_id must be provided.")
|
393
|
+
writer.add_int(data._character_id)
|
394
|
+
if data._map_id is None:
|
395
|
+
raise SerializationError("map_id must be provided.")
|
396
|
+
writer.add_short(data._map_id)
|
397
|
+
if data._map_rid is None:
|
398
|
+
raise SerializationError("map_rid must be provided.")
|
399
|
+
if len(data._map_rid) != 2:
|
400
|
+
raise SerializationError(f"Expected length of map_rid to be exactly 2, got {len(data._map_rid)}.")
|
401
|
+
for i in range(2):
|
402
|
+
writer.add_short(data._map_rid[i])
|
403
|
+
if data._map_file_size is None:
|
404
|
+
raise SerializationError("map_file_size must be provided.")
|
405
|
+
writer.add_three(data._map_file_size)
|
406
|
+
if data._eif_rid is None:
|
407
|
+
raise SerializationError("eif_rid must be provided.")
|
408
|
+
if len(data._eif_rid) != 2:
|
409
|
+
raise SerializationError(f"Expected length of eif_rid to be exactly 2, got {len(data._eif_rid)}.")
|
410
|
+
for i in range(2):
|
411
|
+
writer.add_short(data._eif_rid[i])
|
412
|
+
if data._eif_length is None:
|
413
|
+
raise SerializationError("eif_length must be provided.")
|
414
|
+
writer.add_short(data._eif_length)
|
415
|
+
if data._enf_rid is None:
|
416
|
+
raise SerializationError("enf_rid must be provided.")
|
417
|
+
if len(data._enf_rid) != 2:
|
418
|
+
raise SerializationError(f"Expected length of enf_rid to be exactly 2, got {len(data._enf_rid)}.")
|
419
|
+
for i in range(2):
|
420
|
+
writer.add_short(data._enf_rid[i])
|
421
|
+
if data._enf_length is None:
|
422
|
+
raise SerializationError("enf_length must be provided.")
|
423
|
+
writer.add_short(data._enf_length)
|
424
|
+
if data._esf_rid is None:
|
425
|
+
raise SerializationError("esf_rid must be provided.")
|
426
|
+
if len(data._esf_rid) != 2:
|
427
|
+
raise SerializationError(f"Expected length of esf_rid to be exactly 2, got {len(data._esf_rid)}.")
|
428
|
+
for i in range(2):
|
429
|
+
writer.add_short(data._esf_rid[i])
|
430
|
+
if data._esf_length is None:
|
431
|
+
raise SerializationError("esf_length must be provided.")
|
432
|
+
writer.add_short(data._esf_length)
|
433
|
+
if data._ecf_rid is None:
|
434
|
+
raise SerializationError("ecf_rid must be provided.")
|
435
|
+
if len(data._ecf_rid) != 2:
|
436
|
+
raise SerializationError(f"Expected length of ecf_rid to be exactly 2, got {len(data._ecf_rid)}.")
|
437
|
+
for i in range(2):
|
438
|
+
writer.add_short(data._ecf_rid[i])
|
439
|
+
if data._ecf_length is None:
|
440
|
+
raise SerializationError("ecf_length must be provided.")
|
441
|
+
writer.add_short(data._ecf_length)
|
442
|
+
if data._name is None:
|
443
|
+
raise SerializationError("name must be provided.")
|
444
|
+
writer.add_string(data._name)
|
445
|
+
writer.add_byte(0xFF)
|
446
|
+
if data._title is None:
|
447
|
+
raise SerializationError("title must be provided.")
|
448
|
+
writer.add_string(data._title)
|
449
|
+
writer.add_byte(0xFF)
|
450
|
+
if data._guild_name is None:
|
451
|
+
raise SerializationError("guild_name must be provided.")
|
452
|
+
writer.add_string(data._guild_name)
|
453
|
+
writer.add_byte(0xFF)
|
454
|
+
if data._guild_rank_name is None:
|
455
|
+
raise SerializationError("guild_rank_name must be provided.")
|
456
|
+
writer.add_string(data._guild_rank_name)
|
457
|
+
writer.add_byte(0xFF)
|
458
|
+
if data._class_id is None:
|
459
|
+
raise SerializationError("class_id must be provided.")
|
460
|
+
writer.add_char(data._class_id)
|
461
|
+
if data._guild_tag is None:
|
462
|
+
raise SerializationError("guild_tag must be provided.")
|
463
|
+
if len(data._guild_tag) != 3:
|
464
|
+
raise SerializationError(f"Expected length of guild_tag to be exactly 3, got {len(data._guild_tag)}.")
|
465
|
+
writer.add_fixed_string(data._guild_tag, 3, False)
|
466
|
+
if data._admin is None:
|
467
|
+
raise SerializationError("admin must be provided.")
|
468
|
+
writer.add_char(int(data._admin))
|
469
|
+
if data._level is None:
|
470
|
+
raise SerializationError("level must be provided.")
|
471
|
+
writer.add_char(data._level)
|
472
|
+
if data._experience is None:
|
473
|
+
raise SerializationError("experience must be provided.")
|
474
|
+
writer.add_int(data._experience)
|
475
|
+
if data._usage is None:
|
476
|
+
raise SerializationError("usage must be provided.")
|
477
|
+
writer.add_int(data._usage)
|
478
|
+
if data._stats is None:
|
479
|
+
raise SerializationError("stats must be provided.")
|
480
|
+
CharacterStatsWelcome.serialize(writer, data._stats)
|
481
|
+
if data._equipment is None:
|
482
|
+
raise SerializationError("equipment must be provided.")
|
483
|
+
EquipmentWelcome.serialize(writer, data._equipment)
|
484
|
+
if data._guild_rank is None:
|
485
|
+
raise SerializationError("guild_rank must be provided.")
|
486
|
+
writer.add_char(data._guild_rank)
|
487
|
+
if data._settings is None:
|
488
|
+
raise SerializationError("settings must be provided.")
|
489
|
+
ServerSettings.serialize(writer, data._settings)
|
490
|
+
if data._login_message_code is None:
|
491
|
+
raise SerializationError("login_message_code must be provided.")
|
492
|
+
writer.add_char(int(data._login_message_code))
|
493
|
+
writer.add_byte(0xFF)
|
494
|
+
finally:
|
495
|
+
writer.string_sanitization_mode = old_string_sanitization_mode
|
693
496
|
|
694
497
|
@staticmethod
|
695
498
|
def deserialize(reader: EoReader) -> "WelcomeReplyServerPacket.WelcomeCodeDataSelectCharacter":
|
@@ -702,55 +505,55 @@ class WelcomeReplyServerPacket(Packet):
|
|
702
505
|
Returns:
|
703
506
|
WelcomeReplyServerPacket.WelcomeCodeDataSelectCharacter: The data to serialize.
|
704
507
|
"""
|
705
|
-
data: WelcomeReplyServerPacket.WelcomeCodeDataSelectCharacter = WelcomeReplyServerPacket.WelcomeCodeDataSelectCharacter()
|
706
508
|
old_chunked_reading_mode: bool = reader.chunked_reading_mode
|
707
509
|
try:
|
708
510
|
reader_start_position: int = reader.position
|
709
|
-
|
710
|
-
|
711
|
-
|
712
|
-
|
511
|
+
session_id = reader.get_short()
|
512
|
+
character_id = reader.get_int()
|
513
|
+
map_id = reader.get_short()
|
514
|
+
map_rid = []
|
713
515
|
for i in range(2):
|
714
|
-
|
715
|
-
|
716
|
-
|
516
|
+
map_rid.append(reader.get_short())
|
517
|
+
map_file_size = reader.get_three()
|
518
|
+
eif_rid = []
|
717
519
|
for i in range(2):
|
718
|
-
|
719
|
-
|
720
|
-
|
520
|
+
eif_rid.append(reader.get_short())
|
521
|
+
eif_length = reader.get_short()
|
522
|
+
enf_rid = []
|
721
523
|
for i in range(2):
|
722
|
-
|
723
|
-
|
724
|
-
|
524
|
+
enf_rid.append(reader.get_short())
|
525
|
+
enf_length = reader.get_short()
|
526
|
+
esf_rid = []
|
725
527
|
for i in range(2):
|
726
|
-
|
727
|
-
|
728
|
-
|
528
|
+
esf_rid.append(reader.get_short())
|
529
|
+
esf_length = reader.get_short()
|
530
|
+
ecf_rid = []
|
729
531
|
for i in range(2):
|
730
|
-
|
731
|
-
|
732
|
-
|
532
|
+
ecf_rid.append(reader.get_short())
|
533
|
+
ecf_length = reader.get_short()
|
534
|
+
name = reader.get_string()
|
733
535
|
reader.next_chunk()
|
734
|
-
|
536
|
+
title = reader.get_string()
|
735
537
|
reader.next_chunk()
|
736
|
-
|
538
|
+
guild_name = reader.get_string()
|
737
539
|
reader.next_chunk()
|
738
|
-
|
540
|
+
guild_rank_name = reader.get_string()
|
739
541
|
reader.next_chunk()
|
740
|
-
|
741
|
-
|
742
|
-
|
743
|
-
|
744
|
-
|
745
|
-
|
746
|
-
|
747
|
-
|
748
|
-
|
749
|
-
|
750
|
-
|
542
|
+
class_id = reader.get_char()
|
543
|
+
guild_tag = reader.get_fixed_string(3, False)
|
544
|
+
admin = AdminLevel(reader.get_char())
|
545
|
+
level = reader.get_char()
|
546
|
+
experience = reader.get_int()
|
547
|
+
usage = reader.get_int()
|
548
|
+
stats = CharacterStatsWelcome.deserialize(reader)
|
549
|
+
equipment = EquipmentWelcome.deserialize(reader)
|
550
|
+
guild_rank = reader.get_char()
|
551
|
+
settings = ServerSettings.deserialize(reader)
|
552
|
+
login_message_code = LoginMessageCode(reader.get_char())
|
751
553
|
reader.next_chunk()
|
752
|
-
|
753
|
-
|
554
|
+
result = WelcomeReplyServerPacket.WelcomeCodeDataSelectCharacter(session_id=session_id, character_id=character_id, map_id=map_id, map_rid=map_rid, map_file_size=map_file_size, eif_rid=eif_rid, eif_length=eif_length, enf_rid=enf_rid, enf_length=enf_length, esf_rid=esf_rid, esf_length=esf_length, ecf_rid=ecf_rid, ecf_length=ecf_length, name=name, title=title, guild_name=guild_name, guild_rank_name=guild_rank_name, class_id=class_id, guild_tag=guild_tag, admin=admin, level=level, experience=experience, usage=usage, stats=stats, equipment=equipment, guild_rank=guild_rank, settings=settings, login_message_code=login_message_code)
|
555
|
+
result._byte_size = reader.position - reader_start_position
|
556
|
+
return result
|
754
557
|
finally:
|
755
558
|
reader.chunked_reading_mode = old_chunked_reading_mode
|
756
559
|
|
@@ -762,11 +565,28 @@ class WelcomeReplyServerPacket(Packet):
|
|
762
565
|
Data associated with welcome_code value WelcomeCode.EnterGame
|
763
566
|
"""
|
764
567
|
_byte_size: int = 0
|
765
|
-
_news:
|
766
|
-
_weight: Weight
|
767
|
-
_items:
|
768
|
-
_spells:
|
769
|
-
_nearby: NearbyInfo
|
568
|
+
_news: tuple[str, ...]
|
569
|
+
_weight: Weight
|
570
|
+
_items: tuple[Item, ...]
|
571
|
+
_spells: tuple[Spell, ...]
|
572
|
+
_nearby: NearbyInfo
|
573
|
+
|
574
|
+
def __init__(self, *, news: Iterable[str], weight: Weight, items: Iterable[Item], spells: Iterable[Spell], nearby: NearbyInfo):
|
575
|
+
"""
|
576
|
+
Create a new instance of WelcomeReplyServerPacket.WelcomeCodeDataEnterGame.
|
577
|
+
|
578
|
+
Args:
|
579
|
+
news (Iterable[str]): (Length must be `9`.)
|
580
|
+
weight (Weight):
|
581
|
+
items (Iterable[Item]):
|
582
|
+
spells (Iterable[Spell]):
|
583
|
+
nearby (NearbyInfo):
|
584
|
+
"""
|
585
|
+
self._news = tuple(news)
|
586
|
+
self._weight = weight
|
587
|
+
self._items = tuple(items)
|
588
|
+
self._spells = tuple(spells)
|
589
|
+
self._nearby = nearby
|
770
590
|
|
771
591
|
@property
|
772
592
|
def byte_size(self) -> int:
|
@@ -779,53 +599,25 @@ class WelcomeReplyServerPacket(Packet):
|
|
779
599
|
return self._byte_size
|
780
600
|
|
781
601
|
@property
|
782
|
-
def news(self) ->
|
783
|
-
"""
|
784
|
-
Note:
|
785
|
-
- Length must be `9`.
|
786
|
-
"""
|
602
|
+
def news(self) -> tuple[str, ...]:
|
787
603
|
return self._news
|
788
604
|
|
789
|
-
@news.setter
|
790
|
-
def news(self, news: list[str]) -> None:
|
791
|
-
"""
|
792
|
-
Note:
|
793
|
-
- Length must be `9`.
|
794
|
-
"""
|
795
|
-
self._news = news
|
796
|
-
|
797
605
|
@property
|
798
606
|
def weight(self) -> Weight:
|
799
607
|
return self._weight
|
800
608
|
|
801
|
-
@weight.setter
|
802
|
-
def weight(self, weight: Weight) -> None:
|
803
|
-
self._weight = weight
|
804
|
-
|
805
609
|
@property
|
806
|
-
def items(self) ->
|
610
|
+
def items(self) -> tuple[Item, ...]:
|
807
611
|
return self._items
|
808
612
|
|
809
|
-
@items.setter
|
810
|
-
def items(self, items: list[Item]) -> None:
|
811
|
-
self._items = items
|
812
|
-
|
813
613
|
@property
|
814
|
-
def spells(self) ->
|
614
|
+
def spells(self) -> tuple[Spell, ...]:
|
815
615
|
return self._spells
|
816
616
|
|
817
|
-
@spells.setter
|
818
|
-
def spells(self, spells: list[Spell]) -> None:
|
819
|
-
self._spells = spells
|
820
|
-
|
821
617
|
@property
|
822
618
|
def nearby(self) -> NearbyInfo:
|
823
619
|
return self._nearby
|
824
620
|
|
825
|
-
@nearby.setter
|
826
|
-
def nearby(self, nearby: NearbyInfo) -> None:
|
827
|
-
self._nearby = nearby
|
828
|
-
|
829
621
|
@staticmethod
|
830
622
|
def serialize(writer: EoWriter, data: "WelcomeReplyServerPacket.WelcomeCodeDataEnterGame") -> None:
|
831
623
|
"""
|
@@ -835,31 +627,34 @@ class WelcomeReplyServerPacket(Packet):
|
|
835
627
|
writer (EoWriter): The writer that the data will be serialized to.
|
836
628
|
data (WelcomeReplyServerPacket.WelcomeCodeDataEnterGame): The data to serialize.
|
837
629
|
"""
|
838
|
-
writer.
|
839
|
-
|
840
|
-
|
841
|
-
|
842
|
-
|
843
|
-
|
844
|
-
|
630
|
+
old_string_sanitization_mode: bool = writer.string_sanitization_mode
|
631
|
+
try:
|
632
|
+
writer.add_byte(0xFF)
|
633
|
+
if data._news is None:
|
634
|
+
raise SerializationError("news must be provided.")
|
635
|
+
if len(data._news) != 9:
|
636
|
+
raise SerializationError(f"Expected length of news to be exactly 9, got {len(data._news)}.")
|
637
|
+
for i in range(9):
|
638
|
+
writer.add_string(data._news[i])
|
845
639
|
writer.add_byte(0xFF)
|
846
|
-
|
847
|
-
|
848
|
-
|
849
|
-
|
850
|
-
|
851
|
-
|
852
|
-
|
853
|
-
|
854
|
-
|
855
|
-
|
856
|
-
|
857
|
-
|
858
|
-
|
859
|
-
|
860
|
-
|
861
|
-
|
862
|
-
|
640
|
+
if data._weight is None:
|
641
|
+
raise SerializationError("weight must be provided.")
|
642
|
+
Weight.serialize(writer, data._weight)
|
643
|
+
if data._items is None:
|
644
|
+
raise SerializationError("items must be provided.")
|
645
|
+
for i in range(len(data._items)):
|
646
|
+
Item.serialize(writer, data._items[i])
|
647
|
+
writer.add_byte(0xFF)
|
648
|
+
if data._spells is None:
|
649
|
+
raise SerializationError("spells must be provided.")
|
650
|
+
for i in range(len(data._spells)):
|
651
|
+
Spell.serialize(writer, data._spells[i])
|
652
|
+
writer.add_byte(0xFF)
|
653
|
+
if data._nearby is None:
|
654
|
+
raise SerializationError("nearby must be provided.")
|
655
|
+
NearbyInfo.serialize(writer, data._nearby)
|
656
|
+
finally:
|
657
|
+
writer.string_sanitization_mode = old_string_sanitization_mode
|
863
658
|
|
864
659
|
@staticmethod
|
865
660
|
def deserialize(reader: EoReader) -> "WelcomeReplyServerPacket.WelcomeCodeDataEnterGame":
|
@@ -872,30 +667,29 @@ class WelcomeReplyServerPacket(Packet):
|
|
872
667
|
Returns:
|
873
668
|
WelcomeReplyServerPacket.WelcomeCodeDataEnterGame: The data to serialize.
|
874
669
|
"""
|
875
|
-
data: WelcomeReplyServerPacket.WelcomeCodeDataEnterGame = WelcomeReplyServerPacket.WelcomeCodeDataEnterGame()
|
876
670
|
old_chunked_reading_mode: bool = reader.chunked_reading_mode
|
877
671
|
try:
|
878
672
|
reader_start_position: int = reader.position
|
879
673
|
reader.next_chunk()
|
880
|
-
|
674
|
+
news = []
|
881
675
|
for i in range(9):
|
882
|
-
|
883
|
-
|
884
|
-
|
885
|
-
data._weight = Weight.deserialize(reader)
|
676
|
+
news.append(reader.get_string())
|
677
|
+
reader.next_chunk()
|
678
|
+
weight = Weight.deserialize(reader)
|
886
679
|
items_length = int(reader.remaining / 6)
|
887
|
-
|
680
|
+
items = []
|
888
681
|
for i in range(items_length):
|
889
|
-
|
682
|
+
items.append(Item.deserialize(reader))
|
890
683
|
reader.next_chunk()
|
891
684
|
spells_length = int(reader.remaining / 4)
|
892
|
-
|
685
|
+
spells = []
|
893
686
|
for i in range(spells_length):
|
894
|
-
|
687
|
+
spells.append(Spell.deserialize(reader))
|
895
688
|
reader.next_chunk()
|
896
|
-
|
897
|
-
|
898
|
-
|
689
|
+
nearby = NearbyInfo.deserialize(reader)
|
690
|
+
result = WelcomeReplyServerPacket.WelcomeCodeDataEnterGame(news=news, weight=weight, items=items, spells=spells, nearby=nearby)
|
691
|
+
result._byte_size = reader.position - reader_start_position
|
692
|
+
return result
|
899
693
|
finally:
|
900
694
|
reader.chunked_reading_mode = old_chunked_reading_mode
|
901
695
|
|