1
Fork 0
mirror of https://github.com/redstrate/Kawari.git synced 2025-07-13 09:07:44 +00:00

Fix the wrong classjob being set when creating a character

This commit is contained in:
Joshua Goins 2025-07-12 18:56:00 -04:00
parent c86a5f70a6
commit fac241ce7b
2 changed files with 21 additions and 10 deletions

View file

@ -34,6 +34,7 @@ pub async fn handle_custom_ipc(connection: &mut ZoneConnection, data: &CustomIpc
}
let mut inventory = Inventory::default();
let (content_id, actor_id);
{
let mut game_data = connection.gamedata.lock().unwrap();
@ -45,16 +46,17 @@ pub async fn handle_custom_ipc(connection: &mut ZoneConnection, data: &CustomIpc
chara_make.customize.gender,
&mut game_data,
);
}
let (content_id, actor_id) = connection.database.create_player_data(
*service_account_id,
name,
chara_make_json,
city_state,
determine_initial_starting_zone(city_state),
inventory,
);
(content_id, actor_id) = connection.database.create_player_data(
*service_account_id,
name,
chara_make_json,
city_state,
determine_initial_starting_zone(city_state),
inventory,
&mut game_data,
);
}
tracing::info!("Created new player: {content_id} {actor_id}");

View file

@ -179,6 +179,7 @@ impl WorldDatabase {
character.city_state.value as u8,
132,
Inventory::default(),
game_data,
);
let mut player_data = self.find_player_data(actor_id);
@ -483,6 +484,7 @@ impl WorldDatabase {
city_state: u8,
zone_id: u16,
inventory: Inventory,
game_data: &mut GameData,
) -> (u64, u32) {
let content_id = Self::generate_content_id();
let actor_id = Self::generate_actor_id();
@ -492,7 +494,14 @@ impl WorldDatabase {
// fill out the initial classjob
let chara_make = CharaMake::from_json(chara_make_str);
let mut classjob_levels = [0i32; CLASSJOB_ARRAY_SIZE];
classjob_levels[chara_make.classjob_id as usize] = 1; // inital level
{
let index = game_data
.get_exp_array_index(chara_make.classjob_id as u16)
.unwrap();
classjob_levels[index as usize] = 1; // inital level
}
let classjob_exp = [0u32; CLASSJOB_ARRAY_SIZE];