1
This commit is contained in:
parent
b810720ac9
commit
837ed5b259
@ -473,6 +473,12 @@ enum PolyExtDataFlag_e
|
|||||||
kWater3ExtFlag = 3, //游泳不能射击
|
kWater3ExtFlag = 3, //游泳不能射击
|
||||||
};
|
};
|
||||||
|
|
||||||
|
A8_DECLARE_ENUM(TimerUserEvent_e,
|
||||||
|
kCheckShotHoldStateTimerEvent = 100,
|
||||||
|
kShenBaoAddTimeTimerEvent,
|
||||||
|
kAddDjsHaloRangeTimerEvent
|
||||||
|
);
|
||||||
|
|
||||||
const char* const PROJ_NAME_FMT = "game%d_gameserver";
|
const char* const PROJ_NAME_FMT = "game%d_gameserver";
|
||||||
const char* const PROJ_ROOT_FMT = "/data/logs/%s";
|
const char* const PROJ_ROOT_FMT = "/data/logs/%s";
|
||||||
|
|
||||||
@ -530,8 +536,5 @@ const int ANDROID_AI_ID_START = 10001;
|
|||||||
|
|
||||||
const int MAX_SKILL_LV = 15;
|
const int MAX_SKILL_LV = 15;
|
||||||
|
|
||||||
const int CHECK_SHOT_HOLD_STATE_TIMER_EVENT = a8::TIMER_USER_EVENT + 1;
|
|
||||||
const int SHEN_BAO_ADD_TIME_TIMER_EVENT = a8::TIMER_USER_EVENT + 2;
|
|
||||||
|
|
||||||
const int kReviveTimeAdd = 12;
|
const int kReviveTimeAdd = 12;
|
||||||
const int kSkinNum = 4;
|
const int kSkinNum = 4;
|
||||||
|
@ -2191,7 +2191,7 @@ void Human::ProcUseItemAction()
|
|||||||
+stats.use_medicine_times;
|
+stats.use_medicine_times;
|
||||||
if (!shen_bao_timer.expired()) {
|
if (!shen_bao_timer.expired()) {
|
||||||
a8::Args args({item_meta->time()});
|
a8::Args args({item_meta->time()});
|
||||||
room->xtimer.FireEvent(shen_bao_timer, SHEN_BAO_ADD_TIME_TIMER_EVENT, &args);
|
room->xtimer.FireEvent(shen_bao_timer, kShenBaoAddTimeTimerEvent, &args);
|
||||||
} else {
|
} else {
|
||||||
int exec_time = 0;
|
int exec_time = 0;
|
||||||
int total_time = item_meta->time();
|
int total_time = item_meta->time();
|
||||||
@ -2208,7 +2208,7 @@ void Human::ProcUseItemAction()
|
|||||||
} else {
|
} else {
|
||||||
AddHp(heal);
|
AddHp(heal);
|
||||||
}
|
}
|
||||||
} else if (SHEN_BAO_ADD_TIME_TIMER_EVENT == event) {
|
} else if (kShenBaoAddTimeTimerEvent == event) {
|
||||||
total_time += args->Get<int>(0);
|
total_time += args->Get<int>(0);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -1456,7 +1456,7 @@ void Player::CheckShotHoldState(Weapon* weapon)
|
|||||||
}
|
}
|
||||||
if (!shot_hold_timer.expired()) {
|
if (!shot_hold_timer.expired()) {
|
||||||
a8::Args args({weapon->meta->_buff_meta->buff_id()});
|
a8::Args args({weapon->meta->_buff_meta->buff_id()});
|
||||||
room->xtimer.FireEvent(shot_hold_timer, CHECK_SHOT_HOLD_STATE_TIMER_EVENT, &args);
|
room->xtimer.FireEvent(shot_hold_timer, kCheckShotHoldStateTimerEvent, &args);
|
||||||
}
|
}
|
||||||
//second
|
//second
|
||||||
if (shot_hold_timer.expired()) {
|
if (shot_hold_timer.expired()) {
|
||||||
@ -1471,7 +1471,7 @@ void Player::CheckShotHoldState(Weapon* weapon)
|
|||||||
if (dead || !shot_hold) {
|
if (dead || !shot_hold) {
|
||||||
room->xtimer.Delete(shot_hold_timer);
|
room->xtimer.Delete(shot_hold_timer);
|
||||||
}
|
}
|
||||||
} else if (CHECK_SHOT_HOLD_STATE_TIMER_EVENT == event) {
|
} else if (kCheckShotHoldStateTimerEvent == event) {
|
||||||
if (args->Get<int>(0) != buff_id) {
|
if (args->Get<int>(0) != buff_id) {
|
||||||
room->xtimer.Delete(shot_hold_timer);
|
room->xtimer.Delete(shot_hold_timer);
|
||||||
}
|
}
|
||||||
|
@ -277,7 +277,7 @@ void Skill::InitPassiveSkill()
|
|||||||
break;
|
break;
|
||||||
case MAGIC_30601_DJS:
|
case MAGIC_30601_DJS:
|
||||||
{
|
{
|
||||||
ProcMYXY();
|
Proc30601DJS();
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case MAGIC_30701_BAO:
|
case MAGIC_30701_BAO:
|
||||||
@ -606,54 +606,34 @@ void Skill::ProcCMXD()
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Skill::ProcMYXY()
|
void Skill::Proc30601DJS()
|
||||||
{
|
{
|
||||||
float speed_rate = SkillHelper::GetMyxySpeedRate(meta);
|
a8::XTimerWp timer = owner->room->xtimer.SetIntervalWpEx
|
||||||
float atk_rate = SkillHelper::GetMyxyAtkRate(meta);
|
(
|
||||||
std::shared_ptr<int> immune_buff_uniid = std::make_shared<int>(0);
|
GetCd() / FRAME_RATE_MS,
|
||||||
|
[this] (int event, const a8::Args* args)
|
||||||
|
{
|
||||||
|
if (a8::TIMER_EXEC_EVENT == event) {
|
||||||
|
if (!owner->dead) {
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
&xtimer_attacher);
|
||||||
|
|
||||||
owner->GetTrigger()->AddListener
|
owner->GetTrigger()->AddListener
|
||||||
(
|
(
|
||||||
kUseSkillEvent,
|
kUseSkillEvent,
|
||||||
[this, speed_rate, atk_rate, immune_buff_uniid]
|
[this, timer] (const a8::Args& args) mutable
|
||||||
(const a8::Args& args)
|
|
||||||
{
|
{
|
||||||
Skill* skill = args.Get<Skill*>(0);
|
if (!timer.expired()) {
|
||||||
if (skill->meta->GetMagicId() != MAGIC_20201_HX) {
|
Skill* skill = args.Get<Skill*>(0);
|
||||||
return;
|
if (skill->meta->GetMagicId() == MAGIC_20601_DJS) {
|
||||||
}
|
|
||||||
owner->GetAbility()->AddSpeedAddition(speed_rate);
|
|
||||||
if (*immune_buff_uniid) {
|
|
||||||
owner->RemoveBuffByUniId(*immune_buff_uniid);
|
|
||||||
*immune_buff_uniid = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
owner->TryAddBuff
|
}
|
||||||
(owner,
|
}
|
||||||
kDispelEffectBuffId,
|
|
||||||
meta);
|
|
||||||
|
|
||||||
*immune_buff_uniid = owner->TryAddBuffAndSetTime
|
|
||||||
(owner,
|
|
||||||
kImmuneEffectBuffId,
|
|
||||||
meta->_number_meta->_float_time * 1000,
|
|
||||||
meta);
|
|
||||||
owner->GetAbility()->DelSpeedAddition(speed_rate);
|
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
#ifdef DEBUG
|
|
||||||
{
|
|
||||||
std::string dbg_msg = a8::Format
|
|
||||||
(
|
|
||||||
"skill_id:%d 免疫眩晕 攻击力:%f 移动提升:%f",
|
|
||||||
{
|
|
||||||
meta->skill_id(),
|
|
||||||
atk_rate,
|
|
||||||
speed_rate
|
|
||||||
});
|
|
||||||
owner->SendDebugMsg(dbg_msg);
|
|
||||||
a8::XPrintf("%s\n", {dbg_msg});
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void Skill::ProcGZJS()
|
void Skill::ProcGZJS()
|
||||||
|
@ -55,7 +55,7 @@ private:
|
|||||||
void Proc30301XL();
|
void Proc30301XL();
|
||||||
void ProcSWZB();
|
void ProcSWZB();
|
||||||
void ProcCMXD();
|
void ProcCMXD();
|
||||||
void ProcMYXY();
|
void Proc30601DJS();
|
||||||
void ProcGZJS();
|
void ProcGZJS();
|
||||||
void ProcJYFH();
|
void ProcJYFH();
|
||||||
void ProcFH();
|
void ProcFH();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user