1
This commit is contained in:
parent
155e5cf0ea
commit
8ea4821d7f
@ -32,8 +32,8 @@ void GameLog::GameStart(Player* hum)
|
||||
prop->SetVal("server_node_id", App::Instance()->node_id);
|
||||
prop->SetVal("server_instance_id", App::Instance()->instance_id);
|
||||
|
||||
prop->SetVal("map_id", hum->room->map_meta->i->map_id());
|
||||
prop->SetVal("map_name", hum->room->map_meta->i->map_name());
|
||||
prop->SetVal("map_id", hum->room->map_meta->p->map_id());
|
||||
prop->SetVal("map_name", hum->room->map_meta->p->map_name());
|
||||
prop->SetVal("map_tpl_name", hum->room->map_tpl_name);
|
||||
|
||||
f8::TGLog::Instance()->AddTrackLog(game_id, hum->account_id, hum->ip_saddr, logclass1, logclass2, prop);
|
||||
@ -72,8 +72,8 @@ void GameLog::GameEnd(Player* hum)
|
||||
prop->SetVal("server_node_id", App::Instance()->node_id);
|
||||
prop->SetVal("server_instance_id", App::Instance()->instance_id);
|
||||
|
||||
prop->SetVal("map_id", hum->room->map_meta->i->map_id());
|
||||
prop->SetVal("map_name", hum->room->map_meta->i->map_name());
|
||||
prop->SetVal("map_id", hum->room->map_meta->p->map_id());
|
||||
prop->SetVal("map_name", hum->room->map_meta->p->map_name());
|
||||
prop->SetVal("map_tpl_name", hum->room->map_tpl_name);
|
||||
if (!hum->dead) {
|
||||
prop->SetVal("alive_time", hum->room->frame_no * 1000.0f / SERVER_FRAME_RATE);
|
||||
|
@ -43,16 +43,7 @@ float Human::GetSpeed()
|
||||
#if 1
|
||||
return 0;
|
||||
#else
|
||||
return meta->i->move_speed() + buff.speed;
|
||||
#endif
|
||||
}
|
||||
|
||||
float Human::GetSpeed4()
|
||||
{
|
||||
#if 1
|
||||
return 0;
|
||||
#else
|
||||
return meta->i->move_speed4();
|
||||
return meta->p->move_speed() + buff.speed;
|
||||
#endif
|
||||
}
|
||||
|
||||
@ -61,10 +52,6 @@ void Human::FillMFObjectPart(cs::MFObjectPart* part_data)
|
||||
part_data->set_object_type(ET_Player);
|
||||
cs::MFPlayerPart* p = part_data->mutable_union_obj_1();
|
||||
p->set_obj_uniid(entity_uniid);
|
||||
#if 0
|
||||
TypeConvert::ToPb(pos, p->mutable_pos());
|
||||
TypeConvert::ToPb(attack_dir, p->mutable_dir());
|
||||
#endif
|
||||
}
|
||||
|
||||
void Human::FillMFObjectFull(cs::MFObjectFull* full_data)
|
||||
@ -72,10 +59,6 @@ void Human::FillMFObjectFull(cs::MFObjectFull* full_data)
|
||||
full_data->set_object_type(ET_Player);
|
||||
cs::MFPlayerFull* p = full_data->mutable_union_obj_1();
|
||||
p->set_obj_uniid(entity_uniid);
|
||||
#if 0
|
||||
TypeConvert::ToPb(pos, p->mutable_pos());
|
||||
TypeConvert::ToPb(attack_dir, p->mutable_dir());
|
||||
#endif
|
||||
|
||||
p->set_dead(dead);
|
||||
p->set_disconnected(disconnected);
|
||||
@ -148,10 +131,10 @@ void Human::GetAabbBox(AabbCollider& aabb_box)
|
||||
#if 0
|
||||
aabb_box.active = true;
|
||||
aabb_box.owner = this;
|
||||
aabb_box._min.x = -meta->i->radius();
|
||||
aabb_box._min.y = -meta->i->radius();
|
||||
aabb_box._max.x = meta->i->radius();
|
||||
aabb_box._max.y = meta->i->radius();
|
||||
aabb_box._min.x = -meta->p->radius();
|
||||
aabb_box._min.y = -meta->p->radius();
|
||||
aabb_box._max.x = meta->p->radius();
|
||||
aabb_box._max.y = meta->p->radius();
|
||||
#endif
|
||||
}
|
||||
|
||||
@ -182,14 +165,14 @@ void Human::RecalcSelfCollider()
|
||||
AddCollider(self_collider_);
|
||||
}
|
||||
self_collider_->pos = a8::Vec2();
|
||||
self_collider_->rad = meta->i->radius();
|
||||
self_collider_->rad = meta->p->radius();
|
||||
#endif
|
||||
}
|
||||
|
||||
bool Human::IsCollisionInMapService()
|
||||
{
|
||||
#if 0
|
||||
if (room->OverBorder(pos, meta->i->radius())){
|
||||
if (room->OverBorder(pos, meta->p->radius())){
|
||||
return true;
|
||||
}
|
||||
|
||||
@ -215,7 +198,7 @@ float Human::GetRadius()
|
||||
#if 1
|
||||
return 0;
|
||||
#else
|
||||
return meta->i->radius();
|
||||
return meta->p->radius();
|
||||
#endif
|
||||
}
|
||||
|
||||
@ -691,8 +674,8 @@ void Human::GenBattleReportData(a8::MutableXObject* params)
|
||||
}
|
||||
stats.rank = rank;
|
||||
params->SetVal("account_id", account_id);
|
||||
params->SetVal("map_id", room->map_meta->i->map_id());
|
||||
params->SetVal("map_name", room->map_meta->i->map_name());
|
||||
params->SetVal("map_id", room->map_meta->p->map_id());
|
||||
params->SetVal("map_name", room->map_meta->p->map_name());
|
||||
params->SetVal("map_tpl_name", room->map_tpl_name);
|
||||
params->SetVal("game_time", time(nullptr));
|
||||
params->SetVal("hurt", stats.damage_amount_in);
|
||||
|
@ -6,9 +6,7 @@
|
||||
|
||||
namespace MetaData
|
||||
{
|
||||
struct Player;
|
||||
struct Equip;
|
||||
struct Dress;
|
||||
|
||||
}
|
||||
|
||||
enum HumanStatus
|
||||
@ -63,7 +61,6 @@ class Human : public Entity
|
||||
virtual ~Human() override;
|
||||
virtual void Initialize() override;
|
||||
virtual float GetSpeed() override;
|
||||
virtual float GetSpeed4();
|
||||
virtual void FillMFObjectPart(cs::MFObjectPart* part_data) override;
|
||||
virtual void FillMFObjectFull(cs::MFObjectFull* full_data) override;
|
||||
virtual void FillMFPlayerStats(cs::MFPlayerStats* stats);
|
||||
@ -118,6 +115,9 @@ private:
|
||||
void Revive();
|
||||
|
||||
protected:
|
||||
SnakeBodyNode* head_ = nullptr;
|
||||
SnakeBodyNode* tail_ = nullptr;
|
||||
std::list<SnakeBodyNode> body_list;
|
||||
long long last_sync_teamdata_frameno_ = 0;
|
||||
bool leave_ = false;
|
||||
long long leave_frameno_ = 0;
|
||||
|
@ -6,9 +6,9 @@ namespace MetaData
|
||||
{
|
||||
void Parameter::Init()
|
||||
{
|
||||
int_val = a8::XValue(i->param_value());
|
||||
float_val = a8::XValue(i->param_value());
|
||||
str_val = a8::XValue(i->param_value()).GetString();
|
||||
int_val = a8::XValue(p->param_value());
|
||||
float_val = a8::XValue(p->param_value());
|
||||
str_val = a8::XValue(p->param_value()).GetString();
|
||||
}
|
||||
|
||||
void Map::Init()
|
||||
|
@ -7,7 +7,7 @@ namespace MetaData
|
||||
|
||||
struct Parameter
|
||||
{
|
||||
const metatable::Parameter* i = nullptr;
|
||||
const metatable::Parameter* p = nullptr;
|
||||
|
||||
int int_val = 0;
|
||||
std::string str_val;
|
||||
@ -18,36 +18,36 @@ namespace MetaData
|
||||
|
||||
struct Map
|
||||
{
|
||||
const metatable::Map* i = nullptr;
|
||||
const metatable::Map* p = nullptr;
|
||||
|
||||
void Init();
|
||||
};
|
||||
|
||||
struct Robot
|
||||
{
|
||||
const metatable::Robot* i = nullptr;
|
||||
const metatable::Robot* p = nullptr;
|
||||
|
||||
void Init();
|
||||
};
|
||||
|
||||
struct RankReward
|
||||
{
|
||||
const metatable::RankReward* i = nullptr;
|
||||
const metatable::RankReward* p = nullptr;
|
||||
};
|
||||
|
||||
struct KillReward
|
||||
{
|
||||
const metatable::KillReward* i = nullptr;
|
||||
const metatable::KillReward* p = nullptr;
|
||||
};
|
||||
|
||||
struct RankPoint
|
||||
{
|
||||
const metatable::RankPoint* i = nullptr;
|
||||
const metatable::RankPoint* p = nullptr;
|
||||
};
|
||||
|
||||
struct KillPoint
|
||||
{
|
||||
const metatable::KillPoint* i = nullptr;
|
||||
const metatable::KillPoint* p = nullptr;
|
||||
};
|
||||
|
||||
}
|
||||
|
@ -86,47 +86,47 @@ private:
|
||||
|
||||
for (auto& meta : parameter_meta_list) {
|
||||
MetaData::Parameter& item = a8::FastAppend(parameter_list);
|
||||
item.i = &meta;
|
||||
item.p = &meta;
|
||||
item.Init();
|
||||
parameter_hash[item.i->param_name()] = &item;
|
||||
parameter_hash[item.p->param_name()] = &item;
|
||||
}
|
||||
|
||||
{
|
||||
for (auto& meta : map_meta_list) {
|
||||
MetaData::Map& item = a8::FastAppend(map_list);
|
||||
item.i = &meta;
|
||||
item.p = &meta;
|
||||
item.Init();
|
||||
gamemap_hash[item.i->map_id()] = &item;
|
||||
gamemap_hash[item.p->map_id()] = &item;
|
||||
}
|
||||
}
|
||||
|
||||
for (auto& meta : rankreward_meta_list) {
|
||||
MetaData::RankReward& item = a8::FastAppend(rankreward_list);
|
||||
item.i = &meta;
|
||||
rankreward_hash[item.i->rank()] = &item;
|
||||
item.p = &meta;
|
||||
rankreward_hash[item.p->rank()] = &item;
|
||||
}
|
||||
|
||||
for (auto& meta : killreward_meta_list) {
|
||||
MetaData::KillReward& item = a8::FastAppend(killreward_list);
|
||||
item.i = &meta;
|
||||
killreward_hash[item.i->kill_num()] = &item;
|
||||
item.p = &meta;
|
||||
killreward_hash[item.p->kill_num()] = &item;
|
||||
}
|
||||
|
||||
for (auto& meta : killpoint_meta_list) {
|
||||
MetaData::KillPoint& item = a8::FastAppend(killpoint_list);
|
||||
item.i = &meta;
|
||||
killpoint_hash[item.i->kill_num()] = &item;
|
||||
item.p = &meta;
|
||||
killpoint_hash[item.p->kill_num()] = &item;
|
||||
}
|
||||
|
||||
for (auto& meta : rankpoint_meta_list) {
|
||||
MetaData::RankPoint& item = a8::FastAppend(rankpoint_list);
|
||||
item.i = &meta;
|
||||
rankpoint_hash[item.i->rank()] = &item;
|
||||
item.p = &meta;
|
||||
rankpoint_hash[item.p->rank()] = &item;
|
||||
}
|
||||
|
||||
for (auto& meta : robot_meta_list) {
|
||||
MetaData::Robot& item = a8::FastAppend(robot_list);
|
||||
item.i = &meta;
|
||||
item.p = &meta;
|
||||
item.Init();
|
||||
robot_hash[meta.id()] = &item;
|
||||
}
|
||||
@ -185,37 +185,37 @@ MetaData::Map* MetaMgr::GetMap(int map_id)
|
||||
float MetaMgr::GetRankRewardParam(int rank)
|
||||
{
|
||||
auto itr = loader_->rankreward_hash.find(rank);
|
||||
return itr != loader_->rankreward_hash.end() ? itr->second->i->parameter() : 0.0f;
|
||||
return itr != loader_->rankreward_hash.end() ? itr->second->p->parameter() : 0.0f;
|
||||
}
|
||||
|
||||
float MetaMgr::GetKillRewardParam(int kill_num)
|
||||
{
|
||||
auto itr = loader_->killreward_hash.find(kill_num);
|
||||
return itr != loader_->killreward_hash.end() ? itr->second->i->parameter() : 0.0f;
|
||||
return itr != loader_->killreward_hash.end() ? itr->second->p->parameter() : 0.0f;
|
||||
}
|
||||
|
||||
int MetaMgr::GetRankPointParam1(int rank)
|
||||
{
|
||||
auto itr = loader_->rankpoint_hash.find(rank);
|
||||
return itr != loader_->rankpoint_hash.end() ? itr->second->i->parameter() : 0;
|
||||
return itr != loader_->rankpoint_hash.end() ? itr->second->p->parameter() : 0;
|
||||
}
|
||||
|
||||
int MetaMgr::GetRankPointParam2(int rank)
|
||||
{
|
||||
auto itr = loader_->rankpoint_hash.find(rank);
|
||||
return itr != loader_->rankpoint_hash.end() ? itr->second->i->parameter2() : 0;
|
||||
return itr != loader_->rankpoint_hash.end() ? itr->second->p->parameter2() : 0;
|
||||
}
|
||||
|
||||
int MetaMgr::GetKillPointParam1(int kill_num)
|
||||
{
|
||||
auto itr = loader_->killpoint_hash.find(kill_num);
|
||||
return itr != loader_->killpoint_hash.end() ? itr->second->i->parameter() : 0;
|
||||
return itr != loader_->killpoint_hash.end() ? itr->second->p->parameter() : 0;
|
||||
}
|
||||
|
||||
int MetaMgr::GetKillPointParam2(int kill_num)
|
||||
{
|
||||
auto itr = loader_->killpoint_hash.find(kill_num);
|
||||
return itr != loader_->killpoint_hash.end() ? itr->second->i->parameter2() : 0;
|
||||
return itr != loader_->killpoint_hash.end() ? itr->second->p->parameter2() : 0;
|
||||
}
|
||||
|
||||
std::vector<MetaData::Robot>* MetaMgr::GetRobotList()
|
||||
|
@ -37,20 +37,20 @@ Room::~Room()
|
||||
|
||||
void Room::Init()
|
||||
{
|
||||
if (map_meta->i->map_width() < 1) {
|
||||
if (map_meta->p->map_width() < 1) {
|
||||
abort();
|
||||
}
|
||||
if (map_meta->i->map_height() < 1) {
|
||||
if (map_meta->p->map_height() < 1) {
|
||||
abort();
|
||||
}
|
||||
|
||||
xtimer.Init(RoomXGetTickCount, this, 100, 100);
|
||||
xtimer_attacher.xtimer = &xtimer;
|
||||
grid_service.Init(map_meta->i->map_width(),
|
||||
map_meta->i->map_height(),
|
||||
grid_service.Init(map_meta->p->map_width(),
|
||||
map_meta->p->map_height(),
|
||||
MAP_CELL_WIDTH);
|
||||
map_service.Init(map_meta->i->map_width() / MAP_GRID_WIDTH,
|
||||
map_meta->i->map_height() / MAP_GRID_WIDTH,
|
||||
map_service.Init(map_meta->p->map_width() / MAP_GRID_WIDTH,
|
||||
map_meta->p->map_height() / MAP_GRID_WIDTH,
|
||||
MAP_GRID_WIDTH);
|
||||
|
||||
ShuaAndroid();
|
||||
@ -228,7 +228,7 @@ void Room::CreateAndroid(int robot_num)
|
||||
int try_count = 0;
|
||||
while (true) {
|
||||
MetaData::Robot& tmp_robot_meta = (*robot_list)[rand() % robot_list->size()];
|
||||
if (refreshed_robot_set_.find(tmp_robot_meta.i->id()) ==
|
||||
if (refreshed_robot_set_.find(tmp_robot_meta.p->id()) ==
|
||||
refreshed_robot_set_.end()) {
|
||||
robot_meta = &tmp_robot_meta;
|
||||
break;
|
||||
@ -240,7 +240,7 @@ void Room::CreateAndroid(int robot_num)
|
||||
}
|
||||
|
||||
Android* hum = new Android();
|
||||
hum->name = robot_meta->i->name();
|
||||
hum->name = robot_meta->p->name();
|
||||
hum->meta = hum_meta;
|
||||
hum->robot_meta = robot_meta;
|
||||
hum->entity_uniid = AllocUniid();
|
||||
@ -264,7 +264,7 @@ void Room::CreateAndroid(int robot_num)
|
||||
hum->team_members = &team_hash_[hum->team_id];
|
||||
hum->team_members->insert(hum);
|
||||
}
|
||||
refreshed_robot_set_.insert(robot_meta->i->id());
|
||||
refreshed_robot_set_.insert(robot_meta->p->id());
|
||||
}
|
||||
#endif
|
||||
}
|
||||
@ -358,14 +358,14 @@ bool Room::OverBorder(const a8::Vec2 pos, float radius)
|
||||
return true;
|
||||
}
|
||||
int right_x = pos.x + radius;
|
||||
if (right_x > map_meta->i->map_width()) {
|
||||
if (right_x > map_meta->p->map_width()) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
//检查y轴
|
||||
{
|
||||
int up_y = pos.y + radius;
|
||||
if (up_y > map_meta->i->map_height()) {
|
||||
if (up_y > map_meta->p->map_height()) {
|
||||
return true;
|
||||
}
|
||||
int down_y = pos.y - radius;
|
||||
|
@ -98,9 +98,9 @@ void RoomMgr::_CMJoin(f8::MsgHdr& hdr, const cs::CMJoin& msg)
|
||||
}
|
||||
{
|
||||
cs::SMMapInfo notifymsg;
|
||||
notifymsg.set_map_id(room->map_meta->i->map_id());
|
||||
notifymsg.set_map_width(room->map_meta->i->map_width());
|
||||
notifymsg.set_map_height(room->map_meta->i->map_height());
|
||||
notifymsg.set_map_id(room->map_meta->p->map_id());
|
||||
notifymsg.set_map_width(room->map_meta->p->map_width());
|
||||
notifymsg.set_map_height(room->map_meta->p->map_height());
|
||||
GGListener::Instance()->SendToClient(hdr.socket_handle, hdr.seqid, notifymsg);
|
||||
}
|
||||
}
|
||||
|
@ -56,3 +56,13 @@ struct HumanAbility
|
||||
float def_add = 0.0f;
|
||||
float reflect_damage = 0.0f;
|
||||
};
|
||||
|
||||
struct SnakeBodyNode
|
||||
{
|
||||
int node_id = 0;
|
||||
float speed = 0.0f;
|
||||
a8::Vec2 dir;
|
||||
a8::Vec2 last_move;
|
||||
bool moved = false;
|
||||
struct SnakeBodyNode* pre_node = nullptr;
|
||||
};
|
||||
|
Loading…
x
Reference in New Issue
Block a user