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