diff options
Diffstat (limited to 'network/character_server.gd')
-rw-r--r-- | network/character_server.gd | 54 |
1 files changed, 33 insertions, 21 deletions
diff --git a/network/character_server.gd b/network/character_server.gd index 60389e4..7f0ac24 100644 --- a/network/character_server.gd +++ b/network/character_server.gd @@ -2,8 +2,8 @@ class_name CharacterServer extends Server -signal logged_in(packet: CharacterServerLoginSuccessPacket) -signal logged_in_character_list(packet: CharacterServerLoginSuccessCharacterListPacket) +#signal logged_in(packet: CharacterServerLoginSuccessPacket) +#signal logged_in_character_list(packet: CharacterServerLoginSuccessCharacterListPacket) signal requested_character_list(packet: RequestCharacterListSuccessPacket) signal selected_character(packet: CharacterSelectionSuccessPacket) @@ -24,25 +24,13 @@ func login(account_id: int, login_id1: int, login_id2: int, gender: Constants.Ge peer.get_data(4) # in-between packet - var login_response_packet = await received_packet - if login_response_packet is CharacterServerLoginSuccessPacket: - logged_in.emit(login_response_packet) - - var character_list_packet = await received_packet - if character_list_packet is CharacterServerLoginSuccessCharacterListPacket: - logged_in_character_list.emit(character_list_packet) - - var character_list_size_packet = await received_packet - var block_character_packet = await received_packet - var pin_code_state_packet = await received_packet - - return { - "login": login_response_packet, - "character_list": character_list_packet, - "character_list_size": character_list_size_packet, - "block_character": block_character_packet, - "pin_code_state": pin_code_state_packet, - } + return await wait_for_all_packets([ + CharacterServerLoginSuccessPacket, + CharacterServerLoginSuccessCharacterListPacket, + CharacterListSizePacket, + BlockCharacterPacket, + PinCodeStatePacket, + ], [CharacterSelectionFailedPacket]) func request_character_list(): @@ -65,6 +53,30 @@ func select_character(slot: int): selected_character.emit(packet) +func create_character( + name: String, + slot: int, + hair_color: int, + hair_style: int, + start_job: Constants.Job, + gender: Constants.Gender +): + var create_character_packet = CreateCharacterPacket.new() + create_character_packet.name = name + create_character_packet.slot = slot + create_character_packet.hair_color = hair_color + create_character_packet.hair_style = hair_style + create_character_packet.start_job = start_job + create_character_packet.gender = gender + + send(create_character_packet) + + return await wait_for_packets([ + CreateCharacterSuccessPacket, + CharacterCreationFailedPacket, + ]) + + func get_keep_alive_timer() -> Timer: var character_server_keep_alive_timer = Timer.new() character_server_keep_alive_timer.name = "CharacterServerKeepAliveTimer" |