1
Fork 0
mirror of https://github.com/redstrate/Kawari.git synced 2025-07-13 17:07:45 +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 mut inventory = Inventory::default();
let (content_id, actor_id);
{ {
let mut game_data = connection.gamedata.lock().unwrap(); 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, chara_make.customize.gender,
&mut game_data, &mut game_data,
); );
}
let (content_id, actor_id) = connection.database.create_player_data( (content_id, actor_id) = connection.database.create_player_data(
*service_account_id, *service_account_id,
name, name,
chara_make_json, chara_make_json,
city_state, city_state,
determine_initial_starting_zone(city_state), determine_initial_starting_zone(city_state),
inventory, inventory,
); &mut game_data,
);
}
tracing::info!("Created new player: {content_id} {actor_id}"); tracing::info!("Created new player: {content_id} {actor_id}");

View file

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