Compare commits
6 Commits
Author | SHA1 | Date | |
---|---|---|---|
![]() |
d94635c78c | ||
![]() |
a9e333e909 | ||
![]() |
c56c6427da | ||
![]() |
2b58177482 | ||
![]() |
f07f400287 | ||
![]() |
c2eb1b4e40 |
@ -1,5 +1,16 @@
|
||||
#!/bin/bash
|
||||
|
||||
python manage.py restart $1 $2
|
||||
source /etc/profile
|
||||
source /root/.bash_profile
|
||||
|
||||
echo 'success'
|
||||
pid=$(ps -ef|grep "gameserver2001 -n $2 -i $1"|grep -v grep|awk '{print $2}')
|
||||
echo $pid
|
||||
|
||||
if [[ $pid != "" ]]
|
||||
then
|
||||
echo $pid|xargs kill -9
|
||||
else
|
||||
echo "pid 为空"
|
||||
fi
|
||||
|
||||
nohup ./gameserver2001 -n $2 -i $1 >> gameserver2001$2_$1.out &
|
||||
|
@ -49,6 +49,7 @@ public:
|
||||
std::list<MetaData::KillPoint> killpoint_list;
|
||||
std::list<metatable::Robot> robot_meta_list;
|
||||
std::vector<MetaData::Robot> robot_list;
|
||||
std::list<metatable::Text> text_meta_list;
|
||||
|
||||
std::map<std::string, MetaData::Parameter*> parameter_hash;
|
||||
std::map<int, MetaData::Map*> gamemap_hash;
|
||||
@ -72,6 +73,7 @@ public:
|
||||
std::map<int, MetaData::EquipUpgrade*> equipupgrade_hash;
|
||||
std::map<int, MetaData::Robot*> robot_hash;
|
||||
std::map<int, std::vector<MetaData::AirLine*>> airline_hash;
|
||||
std::map<std::string, std::string> text_hash;
|
||||
|
||||
void Load()
|
||||
{
|
||||
@ -115,6 +117,7 @@ public:
|
||||
f8::ReadCsvMetaFile(res_path + "rankPoint@rankPoint.csv", rankpoint_meta_list);
|
||||
f8::ReadCsvMetaFile(res_path + "equipUpgrade@equipUpgrade.csv", equipupgrade_meta_list);
|
||||
f8::ReadCsvMetaFile(res_path + "robot@robot.csv", robot_meta_list);
|
||||
f8::ReadCsvMetaFile(res_path + "text@text.csv", text_meta_list);
|
||||
BindToMetaData();
|
||||
#if 1
|
||||
{
|
||||
@ -129,6 +132,7 @@ public:
|
||||
MetaMgr::Instance()->tank_damage_interval = MetaMgr::Instance()->GetSysParamAsFloat("tank_damage_interval", 1);
|
||||
MetaMgr::Instance()->average_oil = MetaMgr::Instance()->GetSysParamAsInt("average_oil");
|
||||
MetaMgr::Instance()->max_oil = MetaMgr::Instance()->GetSysParamAsInt("max_oil");
|
||||
MetaMgr::Instance()->max_energy_shield = MetaMgr::Instance()->GetSysParamAsInt("max_energy_shield");
|
||||
if (MetaMgr::Instance()->K < 0.01f) {
|
||||
abort();
|
||||
}
|
||||
@ -310,6 +314,10 @@ private:
|
||||
robot_hash[meta.id()] = &item;
|
||||
}
|
||||
|
||||
for (auto& meta : text_meta_list) {
|
||||
text_hash[meta.textid()] = meta.text();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private:
|
||||
@ -496,3 +504,9 @@ MetaData::Robot* MetaMgr::GetRobot(int robot_id)
|
||||
auto itr = loader_->robot_hash.find(robot_id);
|
||||
return itr != loader_->robot_hash.end() ? itr->second : nullptr;
|
||||
}
|
||||
|
||||
std::string MetaMgr::GetText(const std::string& textid, const std::string& def_text)
|
||||
{
|
||||
auto itr = loader_->text_hash.find(textid);
|
||||
return itr != loader_->text_hash.end() ? itr->second : def_text;
|
||||
}
|
||||
|
@ -42,6 +42,7 @@ class MetaMgr : public a8::Singleton<MetaMgr>
|
||||
int GetKillPointParam2(int kill_num);
|
||||
std::vector<MetaData::Robot>* GetRobotList();
|
||||
MetaData::Robot* GetRobot(int robot_id);
|
||||
std::string GetText(const std::string& textid, const std::string& def_text);
|
||||
|
||||
int gas_inactive_time = 10;
|
||||
int jump_time = 10;
|
||||
@ -54,6 +55,7 @@ class MetaMgr : public a8::Singleton<MetaMgr>
|
||||
float tank_damage_interval = 0.0f;
|
||||
float average_oil = 0.0f;
|
||||
float max_oil = 0.0f;
|
||||
int max_energy_shield = 100;
|
||||
|
||||
private:
|
||||
MetaDataLoader* loader_ = nullptr;
|
||||
|
@ -31,7 +31,12 @@ void Player::Initialize()
|
||||
{
|
||||
Human::Initialize();
|
||||
health = meta->i->health();
|
||||
if (energy_shield) {
|
||||
energy_shield = MetaMgr::Instance()->max_energy_shield;
|
||||
max_energy_shield = energy_shield;
|
||||
} else {
|
||||
max_energy_shield = 0;
|
||||
}
|
||||
skin_meta = MetaMgr::Instance()->GetDress(SkinId());
|
||||
if (skin_meta) {
|
||||
skill_meta = MetaMgr::Instance()->GetSkill(skin_meta->i->skill_id());
|
||||
@ -862,8 +867,13 @@ void Player::_CMMove(f8::MsgHdr& hdr, const cs::CMMove& msg)
|
||||
if (moving) {
|
||||
moved_frames = 0;
|
||||
}
|
||||
//前一个状态是纯点射
|
||||
if (shot_start && !shot_hold) {
|
||||
|
||||
} else {
|
||||
shot_start = msg.shot_start();
|
||||
shot_hold = msg.shot_hold();
|
||||
}
|
||||
fly_distance = std::min(200.0f, msg.fly_distance());
|
||||
if (!shot_hold) {
|
||||
series_shot_frames = 0;
|
||||
@ -914,6 +924,11 @@ void Player::_CMMove(f8::MsgHdr& hdr, const cs::CMMove& msg)
|
||||
|
||||
void Player::_CMReconnect(f8::MsgHdr& hdr, const cs::CMReconnect& msg)
|
||||
{
|
||||
int old_socket_handle = socket_handle;
|
||||
if (socket_handle != 0) {
|
||||
GGListener::Instance()->ForceCloseChildSocket(socket_handle);
|
||||
PlayerMgr::Instance()->RemovePlayerBySocket(socket_handle);
|
||||
}
|
||||
socket_handle = hdr.socket_handle;
|
||||
#if 0
|
||||
TouchAllLayerHumanList
|
||||
@ -930,6 +945,13 @@ void Player::_CMReconnect(f8::MsgHdr& hdr, const cs::CMReconnect& msg)
|
||||
respmsg.set_errmsg("战斗重连成功");
|
||||
SendNotifyMsg(respmsg);
|
||||
PlayerMgr::Instance()->ReBindSocket(this);
|
||||
a8::UdpLog::Instance()->Debug
|
||||
("战斗服重连成功 %s %d %d",
|
||||
{
|
||||
account_id,
|
||||
hdr.socket_handle,
|
||||
old_socket_handle
|
||||
});
|
||||
}
|
||||
|
||||
void Player::UpdateDropWeapon()
|
||||
@ -1111,6 +1133,8 @@ void Player::_CMRevive(f8::MsgHdr& hdr, const cs::CMRevive& msg)
|
||||
dead = false;
|
||||
real_dead = false;
|
||||
downed = false;
|
||||
energy_shield = MetaMgr::Instance()->max_energy_shield;
|
||||
max_energy_shield = energy_shield;
|
||||
FreeDownedTimer();
|
||||
health = GetMaxHP();
|
||||
ResetTankSkin();
|
||||
|
@ -747,18 +747,19 @@ bool Room::CanJoin(const std::string& accountid)
|
||||
void Room::OnPlayerOffline(Player* hum)
|
||||
{
|
||||
if (GetOnlinePlayerNum() <= 0) {
|
||||
xtimer.AddDeadLineTimer
|
||||
xtimer.AddDeadLineTimerAndAttach
|
||||
(
|
||||
SERVER_FRAME_RATE * 40,
|
||||
SERVER_FRAME_RATE * 15,
|
||||
a8::XParams()
|
||||
.SetSender(this),
|
||||
[] (const a8::XParams& param)
|
||||
{
|
||||
Room* room = (Room*)param.sender.GetUserData();
|
||||
if (room->GetOnlinePlayerNum() <= 0) {
|
||||
if (room->GetOnlinePlayerNum() <= 0 && !room->added_to_over_room) {
|
||||
RoomMgr::Instance()->AddOverRoom(room->room_uuid);
|
||||
}
|
||||
});
|
||||
},
|
||||
&xtimer_attacher.timer_list_);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -49,6 +49,7 @@ public:
|
||||
long long pending_request = 0;
|
||||
long long last_debugout_tick = 0;
|
||||
a8::Vec2 last_player_jump_pos;
|
||||
bool added_to_over_room = false;
|
||||
|
||||
~Room();
|
||||
void Init();
|
||||
|
@ -128,7 +128,7 @@ void RoomMgr::_CMReconnect(f8::MsgHdr& hdr, const cs::CMReconnect& msg)
|
||||
.SetSender(socket_handle),
|
||||
[] (const a8::XParams& param)
|
||||
{
|
||||
GGListener::Instance()->ForceCloseClient(param.sender);
|
||||
GGListener::Instance()->ForceCloseChildSocket(param.sender);
|
||||
}
|
||||
);
|
||||
};
|
||||
@ -136,6 +136,11 @@ void RoomMgr::_CMReconnect(f8::MsgHdr& hdr, const cs::CMReconnect& msg)
|
||||
Room* room = GetRoomByUuid(a8::XValue(msg.room_uuid()));
|
||||
if (!room) {
|
||||
send_reconnect_failed(hdr.socket_handle, 1, "房间已销毁");
|
||||
a8::UdpLog::Instance()->Debug
|
||||
("房间已销毁 %s",
|
||||
{
|
||||
msg.room_uuid()
|
||||
});
|
||||
return;
|
||||
}
|
||||
Player* hum = room->GetPlayerByAccountId(msg.account_id());
|
||||
@ -190,6 +195,7 @@ void RoomMgr::AddOverRoom(long long room_uuid)
|
||||
inactive_room_hash_.erase(room_uuid);
|
||||
Room* room = GetRoomByUuid(room_uuid);
|
||||
if (room) {
|
||||
room->added_to_over_room = true;
|
||||
room->game_over_tick = a8::XGetTickCount();
|
||||
room->game_over_timer = a8::Timer::Instance()->AddRepeatTimer(500,
|
||||
a8::XParams()
|
||||
|
@ -38,4 +38,5 @@ enum SMMessageId_e
|
||||
_SMDebugMsg = 1010;
|
||||
_SMWxVoip = 1011;
|
||||
_SMUiUpdate = 1012;
|
||||
_SMGameStart = 1013;
|
||||
}
|
||||
|
@ -413,6 +413,9 @@ message MFObjectFull
|
||||
optional MFProjectileFull union_obj_8 = 9;
|
||||
optional MFSmokeFull union_obj_9 = 10;
|
||||
optional MFHeroFull union_obj_10 = 11;
|
||||
|
||||
optional int32 obj_uniid = 14; //唯一id
|
||||
optional int32 object_flags = 15; //对象标志位 1<<0: 存缓存 1<<1:读缓存
|
||||
}
|
||||
|
||||
//活跃玩家数据(当前)
|
||||
@ -888,3 +891,9 @@ message SMUiUpdate
|
||||
optional int32 kill_count = 2; //击杀数
|
||||
repeated MFCar car_list = 3; //载具列表
|
||||
}
|
||||
|
||||
//游戏开始
|
||||
message SMGameStart
|
||||
{
|
||||
}
|
||||
|
||||
|
@ -190,6 +190,12 @@ message KillPoint
|
||||
optional int32 parameter2 = 3;
|
||||
}
|
||||
|
||||
message Text
|
||||
{
|
||||
optional string textid = 1;
|
||||
optional string text = 2;
|
||||
}
|
||||
|
||||
//end
|
||||
|
||||
message DoorObjJson
|
||||
|
Loading…
x
Reference in New Issue
Block a user