summaryrefslogtreecommitdiff
path: root/network/character_server.gd
diff options
context:
space:
mode:
authorDaniel Weipert <git@mail.dweipert.de>2025-04-07 11:45:05 +0200
committerDaniel Weipert <git@mail.dweipert.de>2025-04-07 11:45:05 +0200
commitf3d360e022fce829370c7d916abe98083b14818c (patch)
tree4ac9f886b45a9482dcd42e991e85ab2e4bea3dbc /network/character_server.gd
parentbd77c88efc9327805b6f6fd83fa0492ed59d0f9a (diff)
next commitHEADmain
Diffstat (limited to 'network/character_server.gd')
-rw-r--r--network/character_server.gd54
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"