处理翻滚
This commit is contained in:
parent
d8fe3ecd20
commit
0c0bc77fa7
@ -379,7 +379,9 @@ const int ZOMBIE_RACE_META_START_ID = 6001;
|
||||
|
||||
const int TERMINATOR_BUFF_ID = 1033;
|
||||
|
||||
#if 0
|
||||
const int TURN_OVER_SKILL_ID = 41001;
|
||||
#endif
|
||||
|
||||
const int HUNLUAN_BUFFID = 6001;
|
||||
|
||||
|
@ -549,7 +549,11 @@ void Creature::DoSkill(int skill_id,
|
||||
RemoveBuffByEffectId(kBET_Camouflage);
|
||||
}
|
||||
DoSkillPostProc(true, skill_id, target_id, target_pos);
|
||||
#if 0
|
||||
if (skill_id != TURN_OVER_SKILL_ID) {
|
||||
#else
|
||||
{
|
||||
#endif
|
||||
CreatureWeakPtr ptr;
|
||||
ptr.Attach(this);
|
||||
room->frame_event.AddPlaySkill(ptr, skill_id);
|
||||
@ -935,7 +939,7 @@ void Creature::ClearSkill()
|
||||
{
|
||||
Skill* reserve_skill = nullptr;
|
||||
for (auto& pair : skill_hash_) {
|
||||
if (pair.second->meta->i->skill_id() == TURN_OVER_SKILL_ID) {
|
||||
if (pair.second->meta->IsTurnOverSkill()) {
|
||||
reserve_skill = pair.second;
|
||||
} else {
|
||||
delete pair.second;
|
||||
|
@ -544,6 +544,11 @@ namespace MetaData
|
||||
}
|
||||
}
|
||||
|
||||
bool Skill::IsTurnOverSkill()
|
||||
{
|
||||
return !phases.empty() && phases[0].func_id == kSkill_TurnOver;
|
||||
}
|
||||
|
||||
void Buff::Init()
|
||||
{
|
||||
param1 = a8::XValue(i->buff_param1()).GetDouble();
|
||||
|
@ -203,6 +203,7 @@ namespace MetaData
|
||||
std::set<int> buff_list;
|
||||
std::map<int, std::set<MetaData::Buff*>> trigger_type_buffs;
|
||||
std::vector<MetaData::SkillPhase> phases;
|
||||
bool IsTurnOverSkill();
|
||||
};
|
||||
|
||||
struct Dress
|
||||
|
@ -36,7 +36,6 @@ void Player::Initialize()
|
||||
{
|
||||
Human::Initialize();
|
||||
max_energy_shield = energy_shield;
|
||||
AddSkill(TURN_OVER_SKILL_ID);
|
||||
RecalcBaseAttr();
|
||||
}
|
||||
|
||||
|
@ -136,7 +136,7 @@ void Skill::NotifySkillState()
|
||||
|
||||
void Skill::ResetSkillCd()
|
||||
{
|
||||
if (meta->i->skill_id() != TURN_OVER_SKILL_ID) {
|
||||
if (!meta->IsTurnOverSkill()) {
|
||||
curr_times_ = 0;
|
||||
if (inc_times_timer_) {
|
||||
owner->room->xtimer.ModifyTimer(inc_times_timer_, GetCd() / FRAME_RATE_MS);
|
||||
|
@ -196,7 +196,7 @@ void ZombieModeAI::UpdateAttack()
|
||||
if (distance > GetAttackRange()) {
|
||||
Skill* skill = myself->SelectSkill();
|
||||
if (myself->CanUseSkill(skill->meta->i->skill_id()) &&
|
||||
skill->meta->i->skill_id() != TURN_OVER_SKILL_ID &&
|
||||
skill->meta->IsTurnOverSkill() &&
|
||||
distance < skill->meta->i->skill_distance()) {
|
||||
DoSkill(skill->meta->i->skill_id());
|
||||
} else if (node_->ai_meta->i->pursuit_radius() <= 0) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user