1
This commit is contained in:
parent
18de7c6deb
commit
c8618d3dea
@ -132,6 +132,7 @@ enum BuffEffectType_e
|
||||
kBET_Terminator = 13, //终结者模式
|
||||
kBET_PlayShotAni = 14, //播放射击动画
|
||||
kBET_Vertigo = 15, //眩晕
|
||||
kBET_DecHp = 16, //扣血
|
||||
kBET_End
|
||||
};
|
||||
|
||||
|
@ -1901,7 +1901,19 @@ void Human::_UpdateSpecMove()
|
||||
}
|
||||
}
|
||||
if (move_end) {
|
||||
if (GetBuffByEffectId(kBET_JumpTo)) {
|
||||
Buff* buff = GetBuffByEffectId(kBET_JumpTo);
|
||||
if (buff) {
|
||||
if (buff->skill_meta == skill_meta_ &&
|
||||
!skill_meta_->phases.empty()) {
|
||||
std::set<Entity*> target_list;
|
||||
metatable::Skill* mutable_skill_meta = (metatable::Skill*)skill_meta_->i;
|
||||
float old_skill_distance = skill_meta_->i->skill_distance();
|
||||
mutable_skill_meta->set_skill_distance(skill_meta_->phases[0].param1.GetDouble());
|
||||
SelectSkillTargets(GetPos(), target_list);
|
||||
mutable_skill_meta->set_skill_distance(old_skill_distance);
|
||||
|
||||
TriggerBuff(target_list, kBTT_SkillHit);
|
||||
}
|
||||
RemoveBuffByEffectId(kBET_JumpTo);
|
||||
}
|
||||
if (GetBuffByEffectId(kBET_BePull)) {
|
||||
@ -2747,21 +2759,21 @@ void Human::TriggerOneObjectBuff(Entity* target, BuffTriggerType_e trigger_type)
|
||||
case kBuffTargetSelf: //自己
|
||||
{
|
||||
if (hum == this) {
|
||||
hum->AddBuff(this, buff_meta, GetSkillLv());
|
||||
hum->AddBuff(this, buff_meta, GetSkillLv(), skill_meta_);
|
||||
}
|
||||
}
|
||||
break;
|
||||
case kBuffTargetFriendly: //友军
|
||||
{
|
||||
if (hum->team_id == team_id) {
|
||||
hum->AddBuff(this, buff_meta, GetSkillLv());
|
||||
hum->AddBuff(this, buff_meta, GetSkillLv(), skill_meta_);
|
||||
}
|
||||
}
|
||||
break;
|
||||
case kBuffTargetEnemy: //敌军
|
||||
{
|
||||
if (hum->team_id != team_id) {
|
||||
hum->AddBuff(this, buff_meta, GetSkillLv());
|
||||
hum->AddBuff(this, buff_meta, GetSkillLv(), skill_meta_);
|
||||
}
|
||||
}
|
||||
break;
|
||||
@ -2779,7 +2791,10 @@ void Human::TriggerBuff(std::set<Entity*>& target_list, BuffTriggerType_e trigge
|
||||
}
|
||||
}
|
||||
|
||||
void Human::AddBuff(Human* caster, MetaData::Buff* buff_meta, int skill_lv)
|
||||
void Human::AddBuff(Human* caster,
|
||||
MetaData::Buff* buff_meta,
|
||||
int skill_lv,
|
||||
MetaData::Skill* buff_skill_meta)
|
||||
{
|
||||
if (GetBuffById(buff_meta->i->buff_id())) {
|
||||
return;
|
||||
@ -2808,7 +2823,7 @@ void Human::AddBuff(Human* caster, MetaData::Buff* buff_meta, int skill_lv)
|
||||
buff->skill_lv = skill_lv;
|
||||
buff->owner = this;
|
||||
buff->meta = buff_meta;
|
||||
//buff->skill_meta
|
||||
buff->skill_meta = buff_skill_meta;
|
||||
buff->add_frameno = room->GetFrameNo();
|
||||
buff->xtimer_attacher.xtimer = &room->xtimer;
|
||||
buff_effect_[buff->meta->i->buff_effect()] = buff;
|
||||
@ -2994,6 +3009,23 @@ void Human::ProcBuffEffect(Human* caster, Buff* buff)
|
||||
|
||||
}
|
||||
break;
|
||||
case kBET_Vertigo:
|
||||
{
|
||||
int i = 0;
|
||||
}
|
||||
break;
|
||||
case kBET_DecHp:
|
||||
{
|
||||
#if 0
|
||||
float def = hum->ability.def * (1 + hum->GetBuffAttrRate(kHAT_Def)) +
|
||||
hum->GetBuffAttrAbs(kHAT_Def);
|
||||
#endif
|
||||
DecHP(buff->meta->param1,
|
||||
caster->GetEntityUniId(),
|
||||
caster->name,
|
||||
0);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
{
|
||||
}
|
||||
|
@ -249,7 +249,10 @@ class Human : public MoveableEntity
|
||||
float GetSkillAtkAdd(int skill_id);
|
||||
void TriggerOneObjectBuff(Entity* target, BuffTriggerType_e trigger_type);
|
||||
void TriggerBuff(std::set<Entity*>& target_list, BuffTriggerType_e trigger_type);
|
||||
void AddBuff(Human* caster, MetaData::Buff* buff_meta, int skill_lv);
|
||||
void AddBuff(Human* caster,
|
||||
MetaData::Buff* buff_meta,
|
||||
int skill_lv,
|
||||
MetaData::Skill* buff_skill_meta = nullptr);
|
||||
void RemoveBuffById(int buff_id);
|
||||
void RemoveBuffByEffectId(int buff_effect_id);
|
||||
void ClearBuffList();
|
||||
|
@ -1988,7 +1988,7 @@ long long Room::GetGasInactiveTime()
|
||||
if (f8::IsTestEnv()) {
|
||||
return MetaMgr::Instance()->zbmode_gas_inactive_time + 10000;
|
||||
} else {
|
||||
return 5;
|
||||
return 5 + 100;
|
||||
}
|
||||
#else
|
||||
return MetaMgr::Instance()->zbmode_gas_inactive_time;
|
||||
@ -2662,7 +2662,7 @@ void Room::AddPlayerPostProc(Player* hum)
|
||||
}
|
||||
if (GetRoomMode() == kZombieMode) {
|
||||
#if 1
|
||||
hum->ChangeToRace(kZombieRace, 2);
|
||||
hum->ChangeToRace(kZombieRace, 3);
|
||||
#else
|
||||
hum->ChangeToRace(kHumanRace, 1);
|
||||
#endif
|
||||
|
Loading…
x
Reference in New Issue
Block a user