Teleport via map marks
This commit is contained in:
parent
b9631c1442
commit
5ead0fb3be
11 changed files with 191 additions and 137 deletions
|
@ -1,24 +1,22 @@
|
|||
use proto::*;
|
||||
|
||||
use super::*;
|
||||
use crate::{
|
||||
data,
|
||||
game::{constants, AvatarData},
|
||||
util,
|
||||
};
|
||||
use crate::{data, game::AvatarData, util};
|
||||
|
||||
pub struct SceneAvatar {
|
||||
data: AvatarData,
|
||||
weapon: SceneWeapon,
|
||||
entity_id: u32,
|
||||
pos: Vector,
|
||||
}
|
||||
|
||||
impl SceneAvatar {
|
||||
pub fn new(id: u32, data: AvatarData, weapon: SceneWeapon) -> Self {
|
||||
pub fn new(id: u32, data: AvatarData, weapon: SceneWeapon, pos: Vector) -> Self {
|
||||
Self {
|
||||
data,
|
||||
weapon,
|
||||
entity_id: calc_entity_id(id, ProtEntityType::ProtEntityAvatar),
|
||||
pos,
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -85,7 +83,11 @@ impl SceneAvatar {
|
|||
|
||||
impl Entity for SceneAvatar {
|
||||
fn get_position(&self) -> Vector {
|
||||
constants::INITIAL_POS.clone()
|
||||
self.pos.clone()
|
||||
}
|
||||
|
||||
fn set_position(&mut self, pos: Vector) {
|
||||
self.pos = pos
|
||||
}
|
||||
|
||||
fn get_entity_id(&self) -> u32 {
|
||||
|
|
|
@ -8,6 +8,7 @@ pub use weapon::SceneWeapon;
|
|||
|
||||
pub trait Entity {
|
||||
fn get_position(&self) -> Vector;
|
||||
fn set_position(&mut self, pos: Vector);
|
||||
fn get_entity_id(&self) -> u32;
|
||||
fn get_entity_type(&self) -> ProtEntityType;
|
||||
fn info(&self) -> SceneEntityInfo;
|
||||
|
|
|
@ -44,6 +44,8 @@ impl Entity for SceneWeapon {
|
|||
Vector::default()
|
||||
}
|
||||
|
||||
fn set_position(&mut self, _pos: Vector) {}
|
||||
|
||||
fn get_entity_id(&self) -> u32 {
|
||||
self.entity_id
|
||||
}
|
||||
|
|
|
@ -2,16 +2,19 @@ use std::sync::atomic::{AtomicU32, Ordering};
|
|||
|
||||
use anyhow::Result;
|
||||
use proto::*;
|
||||
use rand::RngCore;
|
||||
|
||||
use super::{
|
||||
constants,
|
||||
entity::{Entity, SceneAvatar, SceneWeapon},
|
||||
AvatarData,
|
||||
};
|
||||
use crate::net::PlayerSession;
|
||||
use crate::{net::PlayerSession, util};
|
||||
|
||||
pub struct Scene {
|
||||
id: u32,
|
||||
entity_id_counter: AtomicU32,
|
||||
last_player_pos: Vector,
|
||||
pub avatars: Vec<SceneAvatar>,
|
||||
pub cur_entity_id: u32,
|
||||
}
|
||||
|
@ -20,6 +23,7 @@ impl Scene {
|
|||
pub fn new(id: u32) -> Self {
|
||||
Self {
|
||||
id,
|
||||
last_player_pos: constants::INITIAL_POS.clone(),
|
||||
entity_id_counter: AtomicU32::new(0),
|
||||
avatars: Vec::new(),
|
||||
cur_entity_id: 0,
|
||||
|
@ -37,8 +41,53 @@ impl Scene {
|
|||
pub fn add_avatar(&mut self, data: AvatarData) {
|
||||
let weapon = SceneWeapon::new(self.next_entity_id(), data.weapon.clone());
|
||||
|
||||
self.avatars
|
||||
.push(SceneAvatar::new(self.next_entity_id(), data, weapon));
|
||||
self.avatars.push(SceneAvatar::new(
|
||||
self.next_entity_id(),
|
||||
data,
|
||||
weapon,
|
||||
self.cur_player_pos(),
|
||||
));
|
||||
}
|
||||
|
||||
pub fn cur_player_pos(&self) -> Vector {
|
||||
if let Some(avatar) = self
|
||||
.avatars
|
||||
.iter()
|
||||
.find(|a| a.get_entity_id() == self.cur_entity_id)
|
||||
{
|
||||
avatar.get_position()
|
||||
} else {
|
||||
self.last_player_pos.clone()
|
||||
}
|
||||
}
|
||||
|
||||
pub fn teleport(&mut self, to_pos: &Vector) {
|
||||
self.last_player_pos = to_pos.clone();
|
||||
|
||||
for avatar in self.avatars.iter_mut() {
|
||||
avatar.set_position(self.last_player_pos.clone())
|
||||
}
|
||||
}
|
||||
|
||||
pub async fn enter(&mut self, session: &PlayerSession, enter_type: EnterType) -> Result<()> {
|
||||
let begin_time_ms = util::cur_timestamp_ms();
|
||||
let begin_time = begin_time_ms / 1000;
|
||||
let scene_id = self.id;
|
||||
let player_uid = session.player_uid();
|
||||
|
||||
let enter_scene = PlayerEnterSceneNotify {
|
||||
scene_begin_time: begin_time_ms,
|
||||
scene_id,
|
||||
enter_scene_token: rand::thread_rng().next_u32() % 65535,
|
||||
scene_transaction: format!("{scene_id}-{player_uid}-{begin_time}-179398"),
|
||||
pos: Some(self.last_player_pos.clone()),
|
||||
prev_pos: Some(Vector::default()),
|
||||
target_uid: player_uid,
|
||||
r#type: enter_type.into(),
|
||||
..Default::default()
|
||||
};
|
||||
|
||||
session.send(PLAYER_ENTER_SCENE_NOTIFY, enter_scene).await
|
||||
}
|
||||
|
||||
pub async fn sync_scene_team(&self, session: &PlayerSession) -> Result<()> {
|
||||
|
|
|
@ -5,7 +5,9 @@ use rand::RngCore;
|
|||
|
||||
use super::*;
|
||||
use crate::{
|
||||
data::EXCEL_COLLECTION, game::{constants, entity::Entity, prop_types::*}, util
|
||||
data::EXCEL_COLLECTION,
|
||||
game::{entity::Entity, prop_types::*},
|
||||
util,
|
||||
};
|
||||
|
||||
pub async fn on_get_player_token_req(
|
||||
|
@ -37,9 +39,6 @@ pub async fn on_get_player_token_req(
|
|||
pub async fn on_player_login_req(session: &PlayerSession, _body: &PlayerLoginReq) -> Result<()> {
|
||||
session.player_info_mut().unlock_all_avatars();
|
||||
|
||||
let login_time_ms = util::cur_timestamp_ms();
|
||||
let login_time = login_time_ms / 1000;
|
||||
|
||||
let props = [
|
||||
(PROP_PLAYER_LEVEL, 5),
|
||||
(PROP_IS_FLYABLE, 1),
|
||||
|
@ -74,7 +73,8 @@ pub async fn on_player_login_req(session: &PlayerSession, _body: &PlayerLoginReq
|
|||
.send(
|
||||
OPEN_STATE_UPDATE_NOTIFY,
|
||||
OpenStateUpdateNotify {
|
||||
open_state_map: EXCEL_COLLECTION.open_state_configs
|
||||
open_state_map: EXCEL_COLLECTION
|
||||
.open_state_configs
|
||||
.iter()
|
||||
.map(|op| (op.id, 1))
|
||||
.collect(),
|
||||
|
@ -110,7 +110,6 @@ pub async fn on_player_login_req(session: &PlayerSession, _body: &PlayerLoginReq
|
|||
|
||||
session.send(AVATAR_DATA_NOTIFY, avatar_data_notify).await?;
|
||||
|
||||
{
|
||||
let mut scene = session.context.scene.borrow_mut();
|
||||
let player = session.player_info();
|
||||
|
||||
|
@ -123,26 +122,8 @@ pub async fn on_player_login_req(session: &PlayerSession, _body: &PlayerLoginReq
|
|||
.clone(),
|
||||
);
|
||||
|
||||
scene.cur_entity_id = scene.avatars.first().unwrap().get_entity_id()
|
||||
}
|
||||
|
||||
let scene = session.context.scene.borrow();
|
||||
let scene_id = scene.id();
|
||||
let player_uid = session.player_uid();
|
||||
let enter_scene = PlayerEnterSceneNotify {
|
||||
scene_begin_time: 7313,
|
||||
scene_id,
|
||||
enter_scene_token: 15771,
|
||||
scene_transaction: format!("{scene_id}-{player_uid}-{login_time}-179398"),
|
||||
scene_tag_id_list: Vec::new(),
|
||||
pos: Some(constants::INITIAL_POS.clone()),
|
||||
prev_pos: Some(Vector::default()),
|
||||
target_uid: player_uid,
|
||||
r#type: EnterType::EnterSelf.into(),
|
||||
..Default::default()
|
||||
};
|
||||
|
||||
session.send(PLAYER_ENTER_SCENE_NOTIFY, enter_scene).await?;
|
||||
scene.cur_entity_id = scene.avatars.first().unwrap().get_entity_id();
|
||||
scene.enter(session, EnterType::EnterSelf).await?;
|
||||
|
||||
session
|
||||
.send(
|
||||
|
|
14
gameserver/src/net/handlers/map.rs
Normal file
14
gameserver/src/net/handlers/map.rs
Normal file
|
@ -0,0 +1,14 @@
|
|||
use super::*;
|
||||
|
||||
pub async fn on_mark_map_req(session: &PlayerSession, body: &MarkMapReq) -> Result<()> {
|
||||
if let Some(mark) = body.mark.as_ref() {
|
||||
let mut scene = session.context.scene.borrow_mut();
|
||||
let mut pos = mark.pos.clone().unwrap();
|
||||
pos.y = 500.0;
|
||||
|
||||
scene.teleport(&pos);
|
||||
scene.enter(session, EnterType::EnterJump).await?;
|
||||
}
|
||||
|
||||
session.send(MARK_MAP_RSP, MarkMapRsp::default()).await
|
||||
}
|
|
@ -1,11 +1,13 @@
|
|||
mod authentication;
|
||||
mod avatar;
|
||||
mod map;
|
||||
mod time;
|
||||
mod world;
|
||||
|
||||
use anyhow::Result;
|
||||
pub use authentication::*;
|
||||
pub use avatar::*;
|
||||
pub use map::*;
|
||||
use proto::*;
|
||||
pub use time::*;
|
||||
pub use world::*;
|
||||
|
|
|
@ -136,4 +136,5 @@ trait_handler! {
|
|||
ChangeAvatarReq 3330;
|
||||
EvtAvatarSitDownReq 764;
|
||||
EvtAvatarStandUpNotify 8549;
|
||||
MarkMapReq 7802;
|
||||
}
|
||||
|
|
182
proto/out/_.rs
182
proto/out/_.rs
|
@ -11,16 +11,16 @@ pub struct Ofcnfieofjd {
|
|||
/// CmdId: 7802
|
||||
#[allow(clippy::derive_partial_eq_without_eq)]
|
||||
#[derive(Clone, PartialEq, ::prost::Message)]
|
||||
pub struct Lejfdkbfmgo {
|
||||
pub struct MarkMapReq {
|
||||
#[prost(message, optional, tag = "4")]
|
||||
pub leeiienppam: ::core::option::Option<Nglnpheglgn>,
|
||||
pub mark: ::core::option::Option<MapMarkPoint>,
|
||||
#[prost(message, optional, tag = "2")]
|
||||
pub igcjmcbldjg: ::core::option::Option<Nglnpheglgn>,
|
||||
#[prost(enumeration = "lejfdkbfmgo::Ebneiedplpg", tag = "11")]
|
||||
pub gfokgkdiiph: i32,
|
||||
pub old: ::core::option::Option<MapMarkPoint>,
|
||||
#[prost(enumeration = "mark_map_req::Operation", tag = "11")]
|
||||
pub op: i32,
|
||||
}
|
||||
/// Nested message and enum types in `LEJFDKBFMGO`.
|
||||
pub mod lejfdkbfmgo {
|
||||
/// Nested message and enum types in `MarkMapReq`.
|
||||
pub mod mark_map_req {
|
||||
#[derive(
|
||||
Clone,
|
||||
Copy,
|
||||
|
@ -33,32 +33,32 @@ pub mod lejfdkbfmgo {
|
|||
::prost::Enumeration
|
||||
)]
|
||||
#[repr(i32)]
|
||||
pub enum Ebneiedplpg {
|
||||
pub enum Operation {
|
||||
Add = 0,
|
||||
Mod = 1,
|
||||
Del = 2,
|
||||
Get = 3,
|
||||
}
|
||||
impl Ebneiedplpg {
|
||||
impl Operation {
|
||||
/// String value of the enum field names used in the ProtoBuf definition.
|
||||
///
|
||||
/// The values are not transformed in any way and thus are considered stable
|
||||
/// (if the ProtoBuf definition does not change) and safe for programmatic use.
|
||||
pub fn as_str_name(&self) -> &'static str {
|
||||
match self {
|
||||
Ebneiedplpg::Add => "EBNEIEDPLPG_Add",
|
||||
Ebneiedplpg::Mod => "EBNEIEDPLPG_Mod",
|
||||
Ebneiedplpg::Del => "EBNEIEDPLPG_Del",
|
||||
Ebneiedplpg::Get => "EBNEIEDPLPG_Get",
|
||||
Operation::Add => "Operation_Add",
|
||||
Operation::Mod => "Operation_Mod",
|
||||
Operation::Del => "Operation_Del",
|
||||
Operation::Get => "Operation_Get",
|
||||
}
|
||||
}
|
||||
/// Creates an enum from field names used in the ProtoBuf definition.
|
||||
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
|
||||
match value {
|
||||
"EBNEIEDPLPG_Add" => Some(Self::Add),
|
||||
"EBNEIEDPLPG_Mod" => Some(Self::Mod),
|
||||
"EBNEIEDPLPG_Del" => Some(Self::Del),
|
||||
"EBNEIEDPLPG_Get" => Some(Self::Get),
|
||||
"Operation_Add" => Some(Self::Add),
|
||||
"Operation_Mod" => Some(Self::Mod),
|
||||
"Operation_Del" => Some(Self::Del),
|
||||
"Operation_Get" => Some(Self::Get),
|
||||
_ => None,
|
||||
}
|
||||
}
|
||||
|
@ -897,7 +897,7 @@ pub struct Lbhkijoadff {
|
|||
#[derive(Clone, PartialEq, ::prost::Message)]
|
||||
pub struct Jfehnaejhal {
|
||||
#[prost(message, optional, tag = "8")]
|
||||
pub gfokgkdiiph: ::core::option::Option<Dhiiiggagmk>,
|
||||
pub op: ::core::option::Option<Dhiiiggagmk>,
|
||||
#[prost(uint32, tag = "14")]
|
||||
pub bbhadchkhpo: u32,
|
||||
#[prost(uint32, tag = "6")]
|
||||
|
@ -1657,7 +1657,7 @@ pub struct Cioinleeemn {
|
|||
#[prost(message, optional, tag = "9")]
|
||||
pub entity: ::core::option::Option<Jchhiaoepko>,
|
||||
#[prost(uint32, tag = "4")]
|
||||
pub aagijbfjkak: u32,
|
||||
pub quest_id: u32,
|
||||
#[prost(uint32, tag = "2")]
|
||||
pub parent_quest_id: u32,
|
||||
#[prost(bool, tag = "12")]
|
||||
|
@ -1889,7 +1889,7 @@ pub mod liflookhepo {
|
|||
#[prost(bool, tag = "2")]
|
||||
pub knelagpemhm: bool,
|
||||
#[prost(uint32, tag = "12")]
|
||||
pub aagijbfjkak: u32,
|
||||
pub quest_id: u32,
|
||||
#[prost(uint32, tag = "13")]
|
||||
pub mjlibgicacg: u32,
|
||||
}
|
||||
|
@ -2893,7 +2893,7 @@ pub struct AvatarEnterSceneInfo {
|
|||
#[derive(Clone, PartialEq, ::prost::Message)]
|
||||
pub struct Gndfiidbgmp {
|
||||
#[prost(uint32, tag = "11")]
|
||||
pub aagijbfjkak: u32,
|
||||
pub quest_id: u32,
|
||||
#[prost(uint32, tag = "8")]
|
||||
pub entity_id: u32,
|
||||
#[prost(uint32, tag = "3")]
|
||||
|
@ -4554,7 +4554,7 @@ pub struct Odgpempeeml {}
|
|||
#[derive(Clone, PartialEq, ::prost::Message)]
|
||||
pub struct Ioandanhmjl {
|
||||
#[prost(uint32, tag = "5")]
|
||||
pub aagijbfjkak: u32,
|
||||
pub quest_id: u32,
|
||||
#[prost(uint32, tag = "13")]
|
||||
pub state: u32,
|
||||
#[prost(uint32, tag = "10")]
|
||||
|
@ -7658,7 +7658,7 @@ pub struct Mhjfbnaniha {
|
|||
#[derive(Clone, PartialEq, ::prost::Message)]
|
||||
pub struct Kijebomljgi {
|
||||
#[prost(uint32, tag = "10")]
|
||||
pub aagijbfjkak: u32,
|
||||
pub quest_id: u32,
|
||||
}
|
||||
#[allow(clippy::derive_partial_eq_without_eq)]
|
||||
#[derive(Clone, PartialEq, ::prost::Message)]
|
||||
|
@ -9906,7 +9906,7 @@ pub struct Cjpkmhnbijb {
|
|||
#[derive(Clone, PartialEq, ::prost::Message)]
|
||||
pub struct Hiipehiplhj {
|
||||
#[prost(uint32, tag = "11")]
|
||||
pub aagijbfjkak: u32,
|
||||
pub quest_id: u32,
|
||||
}
|
||||
#[allow(clippy::derive_partial_eq_without_eq)]
|
||||
#[derive(Clone, PartialEq, ::prost::Message)]
|
||||
|
@ -10639,7 +10639,7 @@ pub struct Ngjmlhicoll {
|
|||
#[prost(uint32, repeated, tag = "15")]
|
||||
pub apkobinehkb: ::prost::alloc::vec::Vec<u32>,
|
||||
#[prost(uint32, tag = "13")]
|
||||
pub aagijbfjkak: u32,
|
||||
pub quest_id: u32,
|
||||
}
|
||||
#[allow(clippy::derive_partial_eq_without_eq)]
|
||||
#[derive(Clone, PartialEq, ::prost::Message)]
|
||||
|
@ -11161,7 +11161,7 @@ pub struct Aedbjmepaba {
|
|||
#[prost(enumeration = "aedbjmepaba::Adpedjjijdd", tag = "11")]
|
||||
pub state: i32,
|
||||
#[prost(uint32, tag = "14")]
|
||||
pub aagijbfjkak: u32,
|
||||
pub quest_id: u32,
|
||||
#[prost(uint32, tag = "2")]
|
||||
pub omeiljenicn: u32,
|
||||
#[prost(uint32, tag = "7")]
|
||||
|
@ -11354,7 +11354,7 @@ pub struct Kakehjmiglh {
|
|||
#[prost(bool, tag = "12")]
|
||||
pub gflglppegjk: bool,
|
||||
#[prost(uint32, tag = "10")]
|
||||
pub aagijbfjkak: u32,
|
||||
pub quest_id: u32,
|
||||
#[prost(uint32, tag = "6")]
|
||||
pub phkohddafpa: u32,
|
||||
}
|
||||
|
@ -11369,7 +11369,7 @@ pub struct Fimhcnhplhd {
|
|||
#[derive(Clone, PartialEq, ::prost::Message)]
|
||||
pub struct Hjeadllmbbc {
|
||||
#[prost(message, optional, tag = "1")]
|
||||
pub leeiienppam: ::core::option::Option<Pcoldcbnbbg>,
|
||||
pub mark: ::core::option::Option<Pcoldcbnbbg>,
|
||||
}
|
||||
/// CmdId: 7902
|
||||
#[allow(clippy::derive_partial_eq_without_eq)]
|
||||
|
@ -12436,7 +12436,7 @@ pub struct Lbohlcbepfl {
|
|||
#[prost(uint32, repeated, tag = "13")]
|
||||
pub kfgbjkgenfi: ::prost::alloc::vec::Vec<u32>,
|
||||
#[prost(message, repeated, tag = "12")]
|
||||
pub jfboglilobd: ::prost::alloc::vec::Vec<Pcoldcbnbbg>,
|
||||
pub mark_list: ::prost::alloc::vec::Vec<Pcoldcbnbbg>,
|
||||
#[prost(bool, tag = "10")]
|
||||
pub abjicjkehah: bool,
|
||||
#[prost(bool, tag = "15")]
|
||||
|
@ -12485,7 +12485,7 @@ pub struct Ecackgngdhj {
|
|||
#[prost(uint32, repeated, tag = "2")]
|
||||
pub djhgadgnhno: ::prost::alloc::vec::Vec<u32>,
|
||||
#[prost(uint32, tag = "5")]
|
||||
pub aagijbfjkak: u32,
|
||||
pub quest_id: u32,
|
||||
}
|
||||
/// CmdId: 23261
|
||||
#[allow(clippy::derive_partial_eq_without_eq)]
|
||||
|
@ -12906,7 +12906,7 @@ pub struct Iheaahkbchn {
|
|||
#[prost(int32, tag = "13")]
|
||||
pub retcode: i32,
|
||||
#[prost(enumeration = "Cpmhcibnkmj", tag = "5")]
|
||||
pub gfokgkdiiph: i32,
|
||||
pub op: i32,
|
||||
}
|
||||
#[allow(clippy::derive_partial_eq_without_eq)]
|
||||
#[derive(Clone, PartialEq, ::prost::Message)]
|
||||
|
@ -13940,7 +13940,7 @@ pub struct Klbpjpiiijp {
|
|||
#[derive(Clone, PartialEq, ::prost::Message)]
|
||||
pub struct Chgengfloag {
|
||||
#[prost(uint32, tag = "3")]
|
||||
pub aagijbfjkak: u32,
|
||||
pub quest_id: u32,
|
||||
#[prost(uint32, tag = "4")]
|
||||
pub nohiaaphhkf: u32,
|
||||
#[prost(uint32, tag = "5")]
|
||||
|
@ -14447,7 +14447,7 @@ pub struct Gdjlgibbiih {
|
|||
#[prost(message, repeated, tag = "6")]
|
||||
pub eniaoadffpi: ::prost::alloc::vec::Vec<Bnfbjeajcko>,
|
||||
#[prost(uint32, tag = "5")]
|
||||
pub aagijbfjkak: u32,
|
||||
pub quest_id: u32,
|
||||
#[prost(bool, tag = "1")]
|
||||
pub pfnlioenalo: bool,
|
||||
#[prost(bool, tag = "3")]
|
||||
|
@ -14916,7 +14916,7 @@ pub struct Hhmppapdmkg {
|
|||
#[prost(uint32, tag = "5")]
|
||||
pub entity_id: u32,
|
||||
#[prost(uint32, tag = "12")]
|
||||
pub aagijbfjkak: u32,
|
||||
pub quest_id: u32,
|
||||
}
|
||||
/// CmdId: 24087
|
||||
#[allow(clippy::derive_partial_eq_without_eq)]
|
||||
|
@ -15019,7 +15019,7 @@ pub struct Kanbpggkemd {
|
|||
#[prost(uint32, tag = "7")]
|
||||
pub jjgeokjgeej: u32,
|
||||
#[prost(enumeration = "Cpmhcibnkmj", tag = "14")]
|
||||
pub gfokgkdiiph: i32,
|
||||
pub op: i32,
|
||||
}
|
||||
/// CmdId: 21626
|
||||
#[allow(clippy::derive_partial_eq_without_eq)]
|
||||
|
@ -17571,7 +17571,7 @@ pub struct Hhhcenhoddn {
|
|||
#[prost(int32, tag = "7")]
|
||||
pub retcode: i32,
|
||||
#[prost(uint32, tag = "12")]
|
||||
pub aagijbfjkak: u32,
|
||||
pub quest_id: u32,
|
||||
}
|
||||
#[allow(clippy::derive_partial_eq_without_eq)]
|
||||
#[derive(Clone, PartialEq, ::prost::Message)]
|
||||
|
@ -18501,9 +18501,9 @@ pub struct Omggbmjfkpe {
|
|||
/// CmdId: 25569
|
||||
#[allow(clippy::derive_partial_eq_without_eq)]
|
||||
#[derive(Clone, PartialEq, ::prost::Message)]
|
||||
pub struct Kpdddliagai {
|
||||
pub struct MarkMapRsp {
|
||||
#[prost(message, repeated, tag = "14")]
|
||||
pub jfboglilobd: ::prost::alloc::vec::Vec<Nglnpheglgn>,
|
||||
pub mark_list: ::prost::alloc::vec::Vec<MapMarkPoint>,
|
||||
#[prost(int32, tag = "4")]
|
||||
pub retcode: i32,
|
||||
}
|
||||
|
@ -19216,7 +19216,7 @@ pub struct Jpeajcodfbe {
|
|||
#[prost(message, repeated, tag = "12")]
|
||||
pub jnanlopjgmc: ::prost::alloc::vec::Vec<Kphngndmonk>,
|
||||
#[prost(uint32, tag = "6")]
|
||||
pub aagijbfjkak: u32,
|
||||
pub quest_id: u32,
|
||||
}
|
||||
#[allow(clippy::derive_partial_eq_without_eq)]
|
||||
#[derive(Clone, PartialEq, ::prost::Message)]
|
||||
|
@ -20193,7 +20193,7 @@ pub struct Ieghhfjhfpa {
|
|||
#[prost(uint32, tag = "8")]
|
||||
pub okdlgpaafhc: u32,
|
||||
#[prost(uint32, tag = "1")]
|
||||
pub aagijbfjkak: u32,
|
||||
pub quest_id: u32,
|
||||
#[prost(bool, tag = "5")]
|
||||
pub mbfgongjfdn: bool,
|
||||
#[prost(uint32, tag = "7")]
|
||||
|
@ -21390,7 +21390,7 @@ pub struct Flmmpoonphk {
|
|||
#[derive(Clone, PartialEq, ::prost::Message)]
|
||||
pub struct Jekhiockaad {
|
||||
#[prost(uint32, tag = "14")]
|
||||
pub aagijbfjkak: u32,
|
||||
pub quest_id: u32,
|
||||
#[prost(int32, tag = "7")]
|
||||
pub retcode: i32,
|
||||
}
|
||||
|
@ -22779,7 +22779,7 @@ pub struct Fmjcacaffmk {
|
|||
#[prost(message, optional, tag = "5")]
|
||||
pub aobjhjihjdn: ::core::option::Option<Bocelbglbdb>,
|
||||
#[prost(enumeration = "Cpmhcibnkmj", tag = "3")]
|
||||
pub gfokgkdiiph: i32,
|
||||
pub op: i32,
|
||||
}
|
||||
/// CmdId: 8028
|
||||
#[allow(clippy::derive_partial_eq_without_eq)]
|
||||
|
@ -26287,7 +26287,7 @@ pub struct Afkfhplmfmb {
|
|||
#[prost(message, repeated, tag = "7")]
|
||||
pub nniilnfgjjb: ::prost::alloc::vec::Vec<Odlbcgmecnm>,
|
||||
#[prost(uint32, tag = "10")]
|
||||
pub aagijbfjkak: u32,
|
||||
pub quest_id: u32,
|
||||
#[prost(uint32, tag = "15")]
|
||||
pub parent_quest_id: u32,
|
||||
#[prost(uint32, tag = "12")]
|
||||
|
@ -26300,7 +26300,7 @@ pub struct Nehfkmeooha {
|
|||
#[prost(uint32, tag = "4")]
|
||||
pub abbofbbkapb: u32,
|
||||
#[prost(uint32, tag = "3")]
|
||||
pub aagijbfjkak: u32,
|
||||
pub quest_id: u32,
|
||||
#[prost(uint32, tag = "10")]
|
||||
pub parent_quest_id: u32,
|
||||
#[prost(int32, tag = "6")]
|
||||
|
@ -27062,7 +27062,7 @@ pub mod onheihnjnka {
|
|||
#[derive(Clone, PartialEq, ::prost::Message)]
|
||||
pub struct Lhebfcljnla {
|
||||
#[prost(uint32, tag = "10")]
|
||||
pub aagijbfjkak: u32,
|
||||
pub quest_id: u32,
|
||||
}
|
||||
#[allow(clippy::derive_partial_eq_without_eq)]
|
||||
#[derive(Clone, PartialEq, ::prost::Message)]
|
||||
|
@ -28774,7 +28774,7 @@ pub struct Dfdipgagjcm {
|
|||
#[prost(message, repeated, tag = "6")]
|
||||
pub mccnddlmpin: ::prost::alloc::vec::Vec<Jaclbgniman>,
|
||||
#[prost(uint32, tag = "2")]
|
||||
pub aagijbfjkak: u32,
|
||||
pub quest_id: u32,
|
||||
}
|
||||
/// CmdId: 22510
|
||||
#[allow(clippy::derive_partial_eq_without_eq)]
|
||||
|
@ -29533,23 +29533,23 @@ pub mod dkbchkjeeie {
|
|||
}
|
||||
#[allow(clippy::derive_partial_eq_without_eq)]
|
||||
#[derive(Clone, PartialEq, ::prost::Message)]
|
||||
pub struct Nglnpheglgn {
|
||||
pub struct MapMarkPoint {
|
||||
#[prost(message, optional, tag = "3")]
|
||||
pub pos: ::core::option::Option<Vector>,
|
||||
#[prost(string, tag = "2")]
|
||||
pub name: ::prost::alloc::string::String,
|
||||
#[prost(enumeration = "Lkabjppedih", tag = "4")]
|
||||
pub fcjglbamakh: i32,
|
||||
#[prost(enumeration = "MapMarkPointType", tag = "4")]
|
||||
pub point_type: i32,
|
||||
#[prost(uint32, tag = "5")]
|
||||
pub monster_id: u32,
|
||||
#[prost(uint32, tag = "1")]
|
||||
pub scene_id: u32,
|
||||
#[prost(enumeration = "Dknbdkbcpjo", tag = "6")]
|
||||
pub nimceenhdkm: i32,
|
||||
#[prost(enumeration = "MapMarkFromType", tag = "6")]
|
||||
pub from_type: i32,
|
||||
#[prost(uint32, tag = "8")]
|
||||
pub emolgaafllp: u32,
|
||||
#[prost(uint32, tag = "7")]
|
||||
pub aagijbfjkak: u32,
|
||||
pub quest_id: u32,
|
||||
}
|
||||
/// CmdId: 29498
|
||||
#[allow(clippy::derive_partial_eq_without_eq)]
|
||||
|
@ -29622,7 +29622,7 @@ pub struct Kmpccabkcee {}
|
|||
#[derive(Clone, PartialEq, ::prost::Message)]
|
||||
pub struct Dkelhcecdpo {
|
||||
#[prost(uint32, tag = "7")]
|
||||
pub aagijbfjkak: u32,
|
||||
pub quest_id: u32,
|
||||
#[prost(uint32, tag = "11")]
|
||||
pub homjegjkgom: u32,
|
||||
#[prost(int32, tag = "2")]
|
||||
|
@ -31110,7 +31110,7 @@ pub mod kigbchgjdha {
|
|||
#[prost(uint32, tag = "10")]
|
||||
pub dloklkcahpp: u32,
|
||||
#[prost(uint32, tag = "8")]
|
||||
pub aagijbfjkak: u32,
|
||||
pub quest_id: u32,
|
||||
}
|
||||
#[derive(
|
||||
Clone,
|
||||
|
@ -32507,7 +32507,7 @@ pub struct Ifnokkffbio {
|
|||
#[derive(Clone, PartialEq, ::prost::Message)]
|
||||
pub struct Eapmidblefj {
|
||||
#[prost(uint32, tag = "13")]
|
||||
pub aagijbfjkak: u32,
|
||||
pub quest_id: u32,
|
||||
#[prost(uint32, tag = "1")]
|
||||
pub homjegjkgom: u32,
|
||||
}
|
||||
|
@ -32667,7 +32667,7 @@ pub struct Ggjbdcnoaih {
|
|||
#[prost(uint32, tag = "12")]
|
||||
pub entity_id: u32,
|
||||
#[prost(uint32, tag = "11")]
|
||||
pub aagijbfjkak: u32,
|
||||
pub quest_id: u32,
|
||||
}
|
||||
/// CmdId: 2656
|
||||
#[allow(clippy::derive_partial_eq_without_eq)]
|
||||
|
@ -33099,7 +33099,7 @@ pub struct Hcgfamcmiij {
|
|||
#[derive(Clone, PartialEq, ::prost::Message)]
|
||||
pub struct Glccangogea {
|
||||
#[prost(message, repeated, tag = "11")]
|
||||
pub jfboglilobd: ::prost::alloc::vec::Vec<Nglnpheglgn>,
|
||||
pub mark_list: ::prost::alloc::vec::Vec<MapMarkPoint>,
|
||||
}
|
||||
/// CmdId: 21238
|
||||
#[allow(clippy::derive_partial_eq_without_eq)]
|
||||
|
@ -35394,14 +35394,14 @@ pub mod hnmiejbjimb {
|
|||
#[allow(clippy::derive_partial_eq_without_eq)]
|
||||
#[derive(Clone, PartialEq, ::prost::Message)]
|
||||
pub struct Dhiiiggagmk {
|
||||
#[prost(oneof = "dhiiiggagmk::Gfokgkdiiph", tags = "5, 9, 15, 3, 4, 7, 13, 14")]
|
||||
pub gfokgkdiiph: ::core::option::Option<dhiiiggagmk::Gfokgkdiiph>,
|
||||
#[prost(oneof = "dhiiiggagmk::Op", tags = "5, 9, 15, 3, 4, 7, 13, 14")]
|
||||
pub op: ::core::option::Option<dhiiiggagmk::Op>,
|
||||
}
|
||||
/// Nested message and enum types in `DHIIIGGAGMK`.
|
||||
pub mod dhiiiggagmk {
|
||||
#[allow(clippy::derive_partial_eq_without_eq)]
|
||||
#[derive(Clone, PartialEq, ::prost::Oneof)]
|
||||
pub enum Gfokgkdiiph {
|
||||
pub enum Op {
|
||||
#[prost(message, tag = "5")]
|
||||
OpRedraw(super::Mecblnblbbo),
|
||||
#[prost(message, tag = "9")]
|
||||
|
@ -35833,7 +35833,7 @@ pub struct Mfokkhgaodh {
|
|||
#[derive(Clone, PartialEq, ::prost::Message)]
|
||||
pub struct Eafhmdmlolm {
|
||||
#[prost(uint32, tag = "9")]
|
||||
pub aagijbfjkak: u32,
|
||||
pub quest_id: u32,
|
||||
}
|
||||
/// CmdId: 26723
|
||||
#[allow(clippy::derive_partial_eq_without_eq)]
|
||||
|
@ -38229,7 +38229,7 @@ pub struct Nkkhbleilch {
|
|||
#[prost(uint32, tag = "8")]
|
||||
pub phijcmelhfb: u32,
|
||||
#[prost(uint32, tag = "9")]
|
||||
pub gfokgkdiiph: u32,
|
||||
pub op: u32,
|
||||
#[prost(uint32, tag = "7")]
|
||||
pub pggehhnihod: u32,
|
||||
#[prost(uint32, tag = "4")]
|
||||
|
@ -38829,7 +38829,7 @@ pub struct Flcbabihdlm {
|
|||
#[prost(int32, tag = "15")]
|
||||
pub retcode: i32,
|
||||
#[prost(uint32, tag = "6")]
|
||||
pub aagijbfjkak: u32,
|
||||
pub quest_id: u32,
|
||||
}
|
||||
#[allow(clippy::derive_partial_eq_without_eq)]
|
||||
#[derive(Clone, PartialEq, ::prost::Message)]
|
||||
|
@ -40242,7 +40242,7 @@ pub struct Ffdgmjklonk {
|
|||
#[prost(uint32, tag = "5")]
|
||||
pub jablkfbjnhp: u32,
|
||||
#[prost(uint32, tag = "4")]
|
||||
pub aagijbfjkak: u32,
|
||||
pub quest_id: u32,
|
||||
}
|
||||
/// CmdId: 8708
|
||||
#[allow(clippy::derive_partial_eq_without_eq)]
|
||||
|
@ -41151,7 +41151,7 @@ pub struct Eimfhonjiim {
|
|||
#[derive(Clone, PartialEq, ::prost::Message)]
|
||||
pub struct Ajngpjibnja {
|
||||
#[prost(message, repeated, tag = "13")]
|
||||
pub jfboglilobd: ::prost::alloc::vec::Vec<Nglnpheglgn>,
|
||||
pub mark_list: ::prost::alloc::vec::Vec<MapMarkPoint>,
|
||||
#[prost(int32, tag = "8")]
|
||||
pub retcode: i32,
|
||||
}
|
||||
|
@ -42638,7 +42638,7 @@ pub struct Bcpdiknpmbm {
|
|||
#[prost(uint32, tag = "5")]
|
||||
pub entity_id: u32,
|
||||
#[prost(uint32, tag = "8")]
|
||||
pub gfokgkdiiph: u32,
|
||||
pub op: u32,
|
||||
#[prost(uint32, tag = "13")]
|
||||
pub pggehhnihod: u32,
|
||||
}
|
||||
|
@ -45312,7 +45312,7 @@ pub struct Mdjhiogomni {
|
|||
#[derive(Clone, PartialEq, ::prost::Message)]
|
||||
pub struct Koepofignoh {
|
||||
#[prost(message, repeated, tag = "7")]
|
||||
pub jfboglilobd: ::prost::alloc::vec::Vec<Nglnpheglgn>,
|
||||
pub mark_list: ::prost::alloc::vec::Vec<MapMarkPoint>,
|
||||
}
|
||||
/// CmdId: 7884
|
||||
#[allow(clippy::derive_partial_eq_without_eq)]
|
||||
|
@ -47733,29 +47733,29 @@ impl Lihghmndadc {
|
|||
}
|
||||
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
|
||||
#[repr(i32)]
|
||||
pub enum Dknbdkbcpjo {
|
||||
pub enum MapMarkFromType {
|
||||
Noe = 0,
|
||||
Monster = 1,
|
||||
Quest = 2,
|
||||
}
|
||||
impl Dknbdkbcpjo {
|
||||
impl MapMarkFromType {
|
||||
/// String value of the enum field names used in the ProtoBuf definition.
|
||||
///
|
||||
/// The values are not transformed in any way and thus are considered stable
|
||||
/// (if the ProtoBuf definition does not change) and safe for programmatic use.
|
||||
pub fn as_str_name(&self) -> &'static str {
|
||||
match self {
|
||||
Dknbdkbcpjo::Noe => "DKNBDKBCPJO_Noe",
|
||||
Dknbdkbcpjo::Monster => "DKNBDKBCPJO_Monster",
|
||||
Dknbdkbcpjo::Quest => "DKNBDKBCPJO_Quest",
|
||||
MapMarkFromType::Noe => "MapMarkFromType_Noe",
|
||||
MapMarkFromType::Monster => "MapMarkFromType_Monster",
|
||||
MapMarkFromType::Quest => "MapMarkFromType_Quest",
|
||||
}
|
||||
}
|
||||
/// Creates an enum from field names used in the ProtoBuf definition.
|
||||
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
|
||||
match value {
|
||||
"DKNBDKBCPJO_Noe" => Some(Self::Noe),
|
||||
"DKNBDKBCPJO_Monster" => Some(Self::Monster),
|
||||
"DKNBDKBCPJO_Quest" => Some(Self::Quest),
|
||||
"MapMarkFromType_Noe" => Some(Self::Noe),
|
||||
"MapMarkFromType_Monster" => Some(Self::Monster),
|
||||
"MapMarkFromType_Quest" => Some(Self::Quest),
|
||||
_ => None,
|
||||
}
|
||||
}
|
||||
|
@ -49134,7 +49134,7 @@ impl Hmpljgiladb {
|
|||
}
|
||||
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
|
||||
#[repr(i32)]
|
||||
pub enum Lkabjppedih {
|
||||
pub enum MapMarkPointType {
|
||||
Npc = 0,
|
||||
Quest = 1,
|
||||
Special = 2,
|
||||
|
@ -49143,32 +49143,32 @@ pub enum Lkabjppedih {
|
|||
Monster = 5,
|
||||
FishPool = 6,
|
||||
}
|
||||
impl Lkabjppedih {
|
||||
impl MapMarkPointType {
|
||||
/// String value of the enum field names used in the ProtoBuf definition.
|
||||
///
|
||||
/// The values are not transformed in any way and thus are considered stable
|
||||
/// (if the ProtoBuf definition does not change) and safe for programmatic use.
|
||||
pub fn as_str_name(&self) -> &'static str {
|
||||
match self {
|
||||
Lkabjppedih::Npc => "LKABJPPEDIH_Npc",
|
||||
Lkabjppedih::Quest => "LKABJPPEDIH_Quest",
|
||||
Lkabjppedih::Special => "LKABJPPEDIH_Special",
|
||||
Lkabjppedih::Mine => "LKABJPPEDIH_Mine",
|
||||
Lkabjppedih::Collection => "LKABJPPEDIH_Collection",
|
||||
Lkabjppedih::Monster => "LKABJPPEDIH_Monster",
|
||||
Lkabjppedih::FishPool => "LKABJPPEDIH_FishPool",
|
||||
MapMarkPointType::Npc => "MapMarkPointType_Npc",
|
||||
MapMarkPointType::Quest => "MapMarkPointType_Quest",
|
||||
MapMarkPointType::Special => "MapMarkPointType_Special",
|
||||
MapMarkPointType::Mine => "MapMarkPointType_Mine",
|
||||
MapMarkPointType::Collection => "MapMarkPointType_Collection",
|
||||
MapMarkPointType::Monster => "MapMarkPointType_Monster",
|
||||
MapMarkPointType::FishPool => "MapMarkPointType_FishPool",
|
||||
}
|
||||
}
|
||||
/// Creates an enum from field names used in the ProtoBuf definition.
|
||||
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
|
||||
match value {
|
||||
"LKABJPPEDIH_Npc" => Some(Self::Npc),
|
||||
"LKABJPPEDIH_Quest" => Some(Self::Quest),
|
||||
"LKABJPPEDIH_Special" => Some(Self::Special),
|
||||
"LKABJPPEDIH_Mine" => Some(Self::Mine),
|
||||
"LKABJPPEDIH_Collection" => Some(Self::Collection),
|
||||
"LKABJPPEDIH_Monster" => Some(Self::Monster),
|
||||
"LKABJPPEDIH_FishPool" => Some(Self::FishPool),
|
||||
"MapMarkPointType_Npc" => Some(Self::Npc),
|
||||
"MapMarkPointType_Quest" => Some(Self::Quest),
|
||||
"MapMarkPointType_Special" => Some(Self::Special),
|
||||
"MapMarkPointType_Mine" => Some(Self::Mine),
|
||||
"MapMarkPointType_Collection" => Some(Self::Collection),
|
||||
"MapMarkPointType_Monster" => Some(Self::Monster),
|
||||
"MapMarkPointType_FishPool" => Some(Self::FishPool),
|
||||
_ => None,
|
||||
}
|
||||
}
|
||||
|
|
|
@ -21,3 +21,4 @@ pub const SET_UP_AVATAR_TEAM_RSP: u16 = 29283;
|
|||
pub const CHANGE_AVATAR_RSP: u16 = 5958;
|
||||
pub const EVT_AVATAR_SIT_DOWN_RSP: u16 = 29232;
|
||||
pub const EVT_AVATAR_STAND_UP_NOTIFY: u16 = 8549;
|
||||
pub const MARK_MAP_RSP: u16 = 25569;
|
||||
|
|
|
@ -4,3 +4,4 @@ format_macro_matchers = true
|
|||
imports_granularity = "Crate"
|
||||
group_imports = "StdExternalCrate"
|
||||
wrap_comments = true
|
||||
edition = "2021"
|
||||
|
|
Loading…
Reference in a new issue