mirror of
https://github.com/ioquake/ioq3.git
synced 2024-11-10 07:11:46 +00:00
Fix bot team order to kill last player it killed
Bot's lastkilledplayer was set to -1 after carrying out an ordered kill. Later in BotChat_Random() the PlayerName function was passed -1 which caused a "Error: PlayerName: playernum out of range" message. I think the reason it was set to negative one is so that if the bot is ordered to kill the player again, the bot will not say it's done and drop the goal. Though, if the bot killed the player based on it's own decision, it will just say it's done and drop the goal (bug?). Let's check the time of the last kill to see if it happened since the team order was received instead of setting lastkilledplayer to -1 after completing the team ordered kill. This fixes bot dropping goal if target player was the last player they killed and the PlayerName out of range error.
This commit is contained in:
parent
274fa898b1
commit
4474297af8
1 changed files with 1 additions and 2 deletions
|
@ -573,11 +573,10 @@ int BotGetLongTermGoal(bot_state_t *bs, int tfl, int retreat, bot_goal_t *goal)
|
|||
bs->teammessage_time = 0;
|
||||
}
|
||||
//
|
||||
if (bs->lastkilledplayer == bs->teamgoal.entitynum) {
|
||||
if (bs->killedenemy_time > bs->teamgoal_time - TEAM_KILL_SOMEONE && bs->lastkilledplayer == bs->teamgoal.entitynum) {
|
||||
EasyClientName(bs->teamgoal.entitynum, buf, sizeof(buf));
|
||||
BotAI_BotInitialChat(bs, "kill_done", buf, NULL);
|
||||
trap_BotEnterChat(bs->cs, bs->decisionmaker, CHAT_TELL);
|
||||
bs->lastkilledplayer = -1;
|
||||
bs->ltgtype = 0;
|
||||
}
|
||||
//
|
||||
|
|
Loading…
Reference in a new issue