This commit is contained in:
aozhiwei 2021-01-15 18:04:05 +08:00
parent e153d666ce
commit 4d7b86fdb2
3 changed files with 10 additions and 3 deletions

View File

@ -473,8 +473,8 @@ void AndroidNewAI::UpdateThinking()
Human* hum = (Human*)owner; Human* hum = (Human*)owner;
if (hum->room->GetGasData().gas_mode == GasInactive || if (hum->room->GetGasData().gas_mode == GasInactive ||
hum->room->IsWaitingStart() || hum->room->IsWaitingStart() ||
hum->HasBuffEffect(kBET_Jump) hum->HasBuffEffect(kBET_Jump) ||
) { a8::HasBitFlag(hum->status, HS_DisableAttack)) {
#if 1 #if 1
if (hum->room->IsWaitingStart()) { if (hum->room->IsWaitingStart()) {
ChangeToStateNewAI(ASE_Idle); ChangeToStateNewAI(ASE_Idle);
@ -574,7 +574,9 @@ void AndroidNewAI::UpdatePursuit()
{ {
Human* myself = (Human*)owner; Human* myself = (Human*)owner;
float distance = myself->GetPos().Distance(node_.target->GetPos()); float distance = myself->GetPos().Distance(node_.target->GetPos());
if (distance < GetAttackRange()) { if (!myself->HasBuffEffect(kBET_Jump) &&
!a8::HasBitFlag(myself->status, HS_DisableAttack) &&
distance < GetAttackRange()) {
ChangeToStateNewAI(ASE_Attack); ChangeToStateNewAI(ASE_Attack);
} else { } else {
if (node_.exec_frame_num > 100 * 2) { if (node_.exec_frame_num > 100 * 2) {

View File

@ -22,6 +22,7 @@ enum HumanStatus
HS_AlreadyEquip = 5, HS_AlreadyEquip = 5,
HS_AlreadyProcNewBieLogic = 6, HS_AlreadyProcNewBieLogic = 6,
HS_LastAndroid = 7, HS_LastAndroid = 7,
HS_DisableAttack = 8,
HS_End HS_End
}; };

View File

@ -1985,6 +1985,9 @@ void Room::NotifyGameStart()
for (auto& pair : accountid_hash_) { for (auto& pair : accountid_hash_) {
pair.second->SendNotifyMsg(msg); pair.second->SendNotifyMsg(msg);
} }
for (auto& pair : human_hash_) {
a8::SetBitFlag(pair.second->status, HS_DisableAttack);
}
waiting_start_ = true; waiting_start_ = true;
xtimer.AddDeadLineTimerAndAttach xtimer.AddDeadLineTimerAndAttach
@ -2008,6 +2011,7 @@ void Room::NotifyGameStart()
MetaData::Buff* buff_meta = MetaMgr::Instance()->GetBuff(buff_id); MetaData::Buff* buff_meta = MetaMgr::Instance()->GetBuff(buff_id);
if (buff_meta) { if (buff_meta) {
for (auto& pair : room->human_hash_) { for (auto& pair : room->human_hash_) {
a8::UnSetBitFlag(pair.second->status, HS_DisableAttack);
pair.second->AddBuff(pair.second, pair.second->AddBuff(pair.second,
buff_meta, buff_meta,
1, 1,