1
This commit is contained in:
parent
a941fa538c
commit
0445d18b2d
@ -482,7 +482,7 @@ void AndroidNewAI::UpdateThinking()
|
|||||||
void AndroidNewAI::UpdateAttack()
|
void AndroidNewAI::UpdateAttack()
|
||||||
{
|
{
|
||||||
Human* myself = (Human*)owner;
|
Human* myself = (Human*)owner;
|
||||||
if (node_.target->dead) {
|
if (!node_.target || node_.target->dead) {
|
||||||
ChangeToStateNewAI(ASE_Thinking);
|
ChangeToStateNewAI(ASE_Thinking);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -490,7 +490,7 @@ void AndroidNewAI::UpdateAttack()
|
|||||||
if (distance > GetAttackRange()) {
|
if (distance > GetAttackRange()) {
|
||||||
if (ai_meta->i->pursuit_radius() <= 0) {
|
if (ai_meta->i->pursuit_radius() <= 0) {
|
||||||
//站桩
|
//站桩
|
||||||
ChangeToStateNewAI(ASE_Idle);
|
ChangeToStateNewAI(ASE_Thinking);
|
||||||
} else {
|
} else {
|
||||||
if (distance < ai_meta->i->pursuit_radius()) {
|
if (distance < ai_meta->i->pursuit_radius()) {
|
||||||
//追击
|
//追击
|
||||||
@ -589,6 +589,7 @@ void AndroidNewAI::ChangeToStateNewAI(AndroidStateEx_e to_state)
|
|||||||
switch (to_state) {
|
switch (to_state) {
|
||||||
case ASE_Idle:
|
case ASE_Idle:
|
||||||
{
|
{
|
||||||
|
node_.target = nullptr;
|
||||||
node_.param1 = 0;
|
node_.param1 = 0;
|
||||||
node_.start_shot_frameno = 0;
|
node_.start_shot_frameno = 0;
|
||||||
node_.shot_times = 0;
|
node_.shot_times = 0;
|
||||||
@ -603,6 +604,7 @@ void AndroidNewAI::ChangeToStateNewAI(AndroidStateEx_e to_state)
|
|||||||
break;
|
break;
|
||||||
case ASE_Thinking:
|
case ASE_Thinking:
|
||||||
{
|
{
|
||||||
|
node_.target = nullptr;
|
||||||
node_.param1 = 0;
|
node_.param1 = 0;
|
||||||
node_.start_shot_frameno = 0;
|
node_.start_shot_frameno = 0;
|
||||||
node_.shot_times = 0;
|
node_.shot_times = 0;
|
||||||
@ -621,6 +623,7 @@ void AndroidNewAI::ChangeToStateNewAI(AndroidStateEx_e to_state)
|
|||||||
case ASE_RandomWalk:
|
case ASE_RandomWalk:
|
||||||
{
|
{
|
||||||
moving_ = true;
|
moving_ = true;
|
||||||
|
node_.target = nullptr;
|
||||||
node_.param1 = SERVER_FRAME_RATE * 2 + rand() % (SERVER_FRAME_RATE * 3);
|
node_.param1 = SERVER_FRAME_RATE * 2 + rand() % (SERVER_FRAME_RATE * 3);
|
||||||
node_.start_shot_frameno = 0;
|
node_.start_shot_frameno = 0;
|
||||||
node_.shot_times = 0;
|
node_.shot_times = 0;
|
||||||
@ -679,6 +682,12 @@ Human* AndroidNewAI::GetTarget()
|
|||||||
target = hum;
|
target = hum;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
if (target) {
|
||||||
|
float distance = myself->GetPos().Distance(target->GetPos());
|
||||||
|
if (distance > GetAttackRange()) {
|
||||||
|
target = nullptr;
|
||||||
|
}
|
||||||
|
}
|
||||||
return target;
|
return target;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2912,9 +2912,11 @@ void Room::InitAndroidAI()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
for (Android* hum : androids) {
|
for (Android* hum : androids) {
|
||||||
#if 1
|
#ifdef DEBUG
|
||||||
hum->SetAiLevel(5);
|
#if 0
|
||||||
|
hum->SetAiLevel(2);
|
||||||
continue;
|
continue;
|
||||||
|
#endif
|
||||||
#endif
|
#endif
|
||||||
if (IsMiniRoom()) {
|
if (IsMiniRoom()) {
|
||||||
int rnd = rand() % MetaMgr::Instance()->mini_room_ai_weights_space;
|
int rnd = rand() % MetaMgr::Instance()->mini_room_ai_weights_space;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user