mirror of
https://github.com/redstrate/Kawari.git
synced 2025-04-19 22:36:49 +00:00
Move player stat sending function to ZoneConnection
This commit is contained in:
parent
10c1369119
commit
79f3ac73b6
4 changed files with 43 additions and 43 deletions
|
@ -336,40 +336,7 @@ async fn client_loop(
|
|||
.await;
|
||||
|
||||
// Stats
|
||||
{
|
||||
let attributes;
|
||||
{
|
||||
let mut game_data = game_data.lock().unwrap();
|
||||
|
||||
attributes = game_data.get_racial_base_attributes(
|
||||
chara_details.chara_make.customize.subrace,
|
||||
);
|
||||
}
|
||||
|
||||
let ipc = ServerZoneIpcSegment {
|
||||
op_code: ServerZoneIpcType::PlayerStats,
|
||||
timestamp: timestamp_secs(),
|
||||
data: ServerZoneIpcData::PlayerStats(PlayerStats {
|
||||
strength: attributes.strength,
|
||||
dexterity: attributes.dexterity,
|
||||
vitality: attributes.vitality,
|
||||
intelligence: attributes.intelligence,
|
||||
mind: attributes.mind,
|
||||
hp: connection.player_data.max_hp,
|
||||
mp: connection.player_data.max_mp as u32,
|
||||
..Default::default()
|
||||
}),
|
||||
..Default::default()
|
||||
};
|
||||
|
||||
connection
|
||||
.send_segment(PacketSegment {
|
||||
source_actor: connection.player_data.actor_id,
|
||||
target_actor: connection.player_data.actor_id,
|
||||
segment_type: SegmentType::Ipc { data: ipc },
|
||||
})
|
||||
.await;
|
||||
}
|
||||
connection.send_stats(&chara_details).await;
|
||||
|
||||
// Player Setup
|
||||
{
|
||||
|
|
|
@ -151,7 +151,7 @@ impl LoginDatabase {
|
|||
.prepare("SELECT user_id FROM sessions WHERE sid = ?1")
|
||||
.ok()
|
||||
.unwrap();
|
||||
user_id = stmt.query_row((sid,), |row| Ok(row.get(0)?)).unwrap();
|
||||
user_id = stmt.query_row((sid,), |row| row.get(0)).unwrap();
|
||||
}
|
||||
|
||||
// service accounts
|
||||
|
@ -185,7 +185,7 @@ impl LoginDatabase {
|
|||
.ok()
|
||||
.unwrap();
|
||||
let selected_row: Result<u32, rusqlite::Error> =
|
||||
stmt.query_row((username,), |row| Ok(row.get(0)?));
|
||||
stmt.query_row((username,), |row| row.get(0));
|
||||
|
||||
selected_row.is_ok()
|
||||
}
|
||||
|
@ -197,7 +197,7 @@ impl LoginDatabase {
|
|||
.prepare("SELECT user_id FROM sessions WHERE sid = ?1")
|
||||
.ok()
|
||||
.unwrap();
|
||||
stmt.query_row((sid,), |row| Ok(row.get(0)?)).unwrap()
|
||||
stmt.query_row((sid,), |row| row.get(0)).unwrap()
|
||||
}
|
||||
|
||||
pub fn get_username(&self, user_id: u32) -> String {
|
||||
|
@ -207,6 +207,6 @@ impl LoginDatabase {
|
|||
.prepare("SELECT username FROM users WHERE id = ?1")
|
||||
.ok()
|
||||
.unwrap();
|
||||
stmt.query_row((user_id,), |row| Ok(row.get(0)?)).unwrap()
|
||||
stmt.query_row((user_id,), |row| row.get(0)).unwrap()
|
||||
}
|
||||
}
|
||||
|
|
|
@ -4,7 +4,7 @@ use crate::{
|
|||
opcodes::ServerZoneIpcType,
|
||||
packet::{PacketSegment, SegmentType},
|
||||
world::{
|
||||
Actor, Event,
|
||||
Event,
|
||||
ipc::{
|
||||
ActorControl, ActorControlCategory, BattleNpcSubKind, CommonSpawn, DisplayFlag,
|
||||
EventStart, NpcSpawn, ObjectKind, OnlineStatus, PlayerSpawn, PlayerSubKind,
|
||||
|
|
|
@ -18,13 +18,13 @@ use crate::{
|
|||
};
|
||||
|
||||
use super::{
|
||||
Actor, Event, Inventory, Item, LuaPlayer, StatusEffects, WorldDatabase, Zone,
|
||||
Actor, CharacterData, Event, Inventory, Item, LuaPlayer, StatusEffects, WorldDatabase, Zone,
|
||||
inventory::Container,
|
||||
ipc::{
|
||||
ActorControlSelf, ActorMove, ActorSetPos, ClientZoneIpcSegment, CommonSpawn, ContainerInfo,
|
||||
ContainerType, DisplayFlag, Equip, InitZone, ItemInfo, NpcSpawn, ObjectKind, PlayerSubKind,
|
||||
ServerZoneIpcData, ServerZoneIpcSegment, StatusEffect, StatusEffectList, UpdateClassInfo,
|
||||
WeatherChange,
|
||||
ContainerType, DisplayFlag, Equip, InitZone, ItemInfo, NpcSpawn, ObjectKind, PlayerStats,
|
||||
PlayerSubKind, ServerZoneIpcData, ServerZoneIpcSegment, StatusEffect, StatusEffectList,
|
||||
UpdateClassInfo, WeatherChange,
|
||||
},
|
||||
};
|
||||
|
||||
|
@ -833,4 +833,37 @@ impl ZoneConnection {
|
|||
..Default::default()
|
||||
}
|
||||
}
|
||||
|
||||
pub async fn send_stats(&mut self, chara_details: &CharacterData) {
|
||||
let attributes;
|
||||
{
|
||||
let mut game_data = self.gamedata.lock().unwrap();
|
||||
|
||||
attributes =
|
||||
game_data.get_racial_base_attributes(chara_details.chara_make.customize.subrace);
|
||||
}
|
||||
|
||||
let ipc = ServerZoneIpcSegment {
|
||||
op_code: ServerZoneIpcType::PlayerStats,
|
||||
timestamp: timestamp_secs(),
|
||||
data: ServerZoneIpcData::PlayerStats(PlayerStats {
|
||||
strength: attributes.strength,
|
||||
dexterity: attributes.dexterity,
|
||||
vitality: attributes.vitality,
|
||||
intelligence: attributes.intelligence,
|
||||
mind: attributes.mind,
|
||||
hp: self.player_data.max_hp,
|
||||
mp: self.player_data.max_mp as u32,
|
||||
..Default::default()
|
||||
}),
|
||||
..Default::default()
|
||||
};
|
||||
|
||||
self.send_segment(PacketSegment {
|
||||
source_actor: self.player_data.actor_id,
|
||||
target_actor: self.player_data.actor_id,
|
||||
segment_type: SegmentType::Ipc { data: ipc },
|
||||
})
|
||||
.await;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue