bot_cmd.bot_cmd_parm_string = strzone(parm);
break;
case BOT_CMD_PARAMETER_VECTOR:
+ if(substring(parm, 0, 1) != "\'")
+ {
+ LOG_INFOF("ERROR: expected vector type \'x y z\', got %s\n", parm);
+ return 0;
+ }
bot_cmd.bot_cmd_parm_vector = stov(parm);
break;
default:
LOG_INFO("Look to the right or left N degrees. For turning to the left use positive numbers.");
break;
case BOT_CMD_MOVETO:
- LOG_INFO("Walk to an specific coordinate on the map. Usage: moveto \"x y z\"");
+ LOG_INFO("Walk to an specific coordinate on the map. Usage: moveto \'x y z\'");
break;
case BOT_CMD_MOVETOTARGET:
LOG_INFO("Walk to the specific target on the map");
float bot_cmd_continue(entity this)
{
+ bot_relinkplayerlist();
this.bot_exec_status &= ~BOT_EXEC_STATUS_PAUSED;
return CMD_STATUS_FINISHED;
}
{
case "all":
if(enabled)
- this.bot_cmd_keys = power2of(20) - 1; // >:)
+ this.bot_cmd_keys = (2 ** 20) - 1; // >:)
else
this.bot_cmd_keys = BOT_CMD_KEY_NONE;
case "forward":
this.movement = '0 0 0';
this.bot_cmd_keys = BOT_CMD_KEY_NONE;
+ bot_clear(this);
this.bot_exec_status |= BOT_EXEC_STATUS_PAUSED;
return CMD_STATUS_FINISHED;
}
if(!this.bot_cmd_current)
{
this.bot_cmd_current = new_pure(bot_cmd);
- this.bot_cmd_current.is_bot_cmd = true;
}
bot_cmd = this.bot_cmd_current;
// Find command
bot_setcurrentcommand(this);
- // if we have no bot command, better return
- // old logic kept pressing previously pressed keys, but that has problems
- // (namely, it means you cannot make a bot "normal" ever again)
- // to keep a bot walking for a while, use the "wait" bot command
- if(bot_cmd == NULL)
- return false;
-
// Ignore all commands except continue when the bot is paused
- if(this.bot_exec_status & BOT_EXEC_STATUS_PAUSED)
- if(bot_cmd.bot_cmd_type!=BOT_CMD_CONTINUE)
+ if(!(self.bot_exec_status & BOT_EXEC_STATUS_PAUSED))
+ {
+ // if we have no bot command, better return
+ // old logic kept pressing previously pressed keys, but that has problems
+ // (namely, it means you cannot make a bot "normal" ever again)
+ // to keep a bot walking for a while, use the "wait" bot command
+ if(bot_cmd == world)
+ return 0;
+ }
+ else if(bot_cmd.bot_cmd_type != BOT_CMD_CONTINUE)
{
if(bot_cmd.bot_cmd_type!=BOT_CMD_NULL)
{