// ACE BOTCHAT V1.01.798
// by Ace Rimmer 2006 - 2007
// Thanks to Spikey00 for ideas and encouragement


block load
{
es_xset bot_replies_dir "|ace_botchat"
es_keygroupload bot_replies server_var(bot_replies_dir)
eventscripts_bot-cexec 1
// CHANCE OF BOTS RESPONDING / TAUNTING ETC.
// SET TO 1 to make them respond every kill etc. or higher number for less responses
// I SUGGEST TWICE THE NO of BOTS so if you have 4 bots on set this to 8
es_xset chance_of_chat 6
// BOTS WILL ALSO RESPOND TO PLAYER CHAT?
// 1 = YES 0 = NO
es_xset bot_say_replies 1
//
// DO NOT EDIT BELOW THIS LINE
}

block  unload
{
eventscripts_bot-cexec 0
es_keygroupdelete bot_replies
}


event player_say
{
if (server_var(bot_say_replies) == 1) do
  {
    es_xset he_said 0
    es_xset say_reply_count 0
    es_xset say_reply_number 0
    es_xset say_reply_string 0
    //
    es_token he_said event_var(text) 1
    //
    es_keygetvalue say_reply_count bot_replies server_var(he_said) count
    if (server_var(say_reply_count) notequalto 0) do
      {
        es_rand say_reply_number 1 server_var(say_reply_count)
        es_keygetvalue say_reply_string bot_replies server_var(he_said) server_var(say_reply_number)
        es_doblock ace_botchat/say_reply
      }
  }
}


block say_reply
{
es_xset been_replied 0
es_createplayerlist botchat_players
es_foreachkey botchat_step in botchat_players "es_xset botchat_is 0;es_keygetvalue botchat_is botchat_players server_var(botchat_step) isbot;if (server_var(botchat_is) == 1) then es_doblock ace_botchat/bot_test"
es_keygroupdelete botchat_players
}



block bot_test
{
if (server_var(been_replied) == 0) do
  {
    es_xset say_chance 0
    es_rand say_chance 1 server_var(chance_of_chat)
    if (server_var(say_chance) == 1) do
      {
        if (server_var(been_replied) == 0) do
          {
            es_xset been_replied 1
            esnq es_delayed 1 esnq es_sexec server_var(botchat_step) say server_var(say_reply_string)         
          }
      }
  }
}


event player_activate
{
if (event_var(es_steamid) equalto "BOT") do
  {
    es_xset chat_chance 0
    es_rand chat_chance 1 server_var(chance_of_chat)
    if (server_var(chat_chance) == 1) do
      {
        es_xset hello_reply_count 0
        es_xset hello_reply_number 0
        es_xset hello_reply_string 0
        //
        es_keygetvalue hello_reply_count bot_replies greetings count
        es_rand hello_reply_number 1 server_var(hello_reply_count)
        es_keygetvalue hello_reply_string bot_replies greetings server_var(hello_reply_number)
        esnq es_delayed 45 esnq es_sexec event_var(userid) say server_var(hello_reply_string)
      }
  }
es_xset con_reply_count 0
es_xset con_reply_number 0
es_xset con_reply_string 0
//
es_keygetvalue con_reply_count bot_replies playerconnect count
es_rand con_reply_number 1 server_var(con_reply_count)
es_keygetvalue con_reply_string bot_replies playerconnect server_var(con_reply_number)
es_doblock ace_botchat/con_reply
}

block con_reply
{
es_xset con_replied 0
es_createplayerlist conchat_players
es_foreachkey conchat_step in conchat_players "es_xset conchat_is 0;es_keygetvalue conchat_is conchat_players server_var(conchat_step) isbot;if (server_var(conchat_is) == 1) then es_doblock ace_botchat/con_test"
es_keygroupdelete conchat_players
}

block con_test
{
if (server_var(con_replied) == 0) do
  {
    es_xset con_chance 0
    es_rand con_chance 1 server_var(chance_of_chat)
    if (server_var(con_chance) == 1) do
      {
        if (server_var(con_replied) == 0) do
          {
            es_xset con_replied 1
            esnq es_delayed 10 esnq es_sexec server_var (conchat_step) say server_var(con_reply_string)
          }
      }
  }
}

event round_start
{
  es_xset bc_rs_ok 0
  es_delayed 11 es_xset bc_rs_ok 1
}

event round_end
{
 es_xset bc_rs_ok 0
}

event player_death
{
if (event_var(es_steamid) equalto "BOT") do
  {
    es_xset death_reply_count 0
    es_xset death_reply_number 0
    es_xset death_reply_string 0
    //
    // NORMAL DEATH
    es_keygetvalue death_reply_count bot_replies normaldeath count
    es_rand death_reply_number 1 server_var(death_reply_count)
    es_keygetvalue death_reply_string bot_replies normaldeath server_var(death_reply_number) 
    // HEADSHOT DEATH
    if (event_var(headshot) == 1) do
      {
        es_keygetvalue death_reply_count bot_replies headshotdeath count
        es_rand death_reply_number 1 server_var(death_reply_count)
        es_keygetvalue death_reply_string bot_replies headshotdeath server_var(death_reply_number)
      }
    // KNIFE DEATH
    if (event_var(weapon) equalto "knife") do
      {
        es_keygetvalue death_reply_count bot_replies knifedeath count
        es_rand death_reply_number 1 server_var(death_reply_count)
        es_keygetvalue death_reply_string bot_replies knifedeath server_var(death_reply_number)
      }
    // NADE DEATH
    if (event_var(weapon) equalto "hegrenade") do
      {
        es_keygetvalue death_reply_count bot_replies nadedeath count
        es_rand death_reply_number 1 server_var(death_reply_count)
        es_keygetvalue death_reply_string bot_replies nadedeath server_var(death_reply_number)
      }
    // SUICIDE DEATH
    if (event_var(weapon) equalto "world") do
      {
        es_keygetvalue death_reply_count bot_replies suicidedeath count
        es_rand death_reply_number 1 server_var(death_reply_count)
        es_keygetvalue death_reply_string bot_replies suicidedeath server_var(death_reply_number)
      }
    // TK DEATH
    if (event_var(es_userteam) == event_var(es_attackerteam)) do
      {
        es_keygetvalue death_reply_count bot_replies tkdeath count
        es_rand death_reply_number 1 server_var(death_reply_count)
        es_keygetvalue death_reply_string bot_replies tkdeath server_var(death_reply_number)
      }
    es_doblock ace_botchat/death_reply
  }
if (event_var(es_attackersteamid) equalto "BOT") do
  {
    es_xset kill_reply_count 0
    es_xset kill_reply_number 0
    es_xset kill_reply_string 0
    //
    // NORMAL kill
    es_keygetvalue kill_reply_count bot_replies normalkill count
    es_rand kill_reply_number 1 server_var(kill_reply_count)
    es_keygetvalue kill_reply_string bot_replies normalkill server_var(kill_reply_number)
    if (event_var(headshot) = 1) do
      {
        // HEADSHOT KILL
        es_keygetvalue kill_reply_count bot_replies headshotkill count
        es_rand kill_reply_number 1 server_var(kill_reply_count)
        es_keygetvalue kill_reply_string bot_replies headshotkill server_var(kill_reply_number)
      }
    if (event_var(weapon) equalto "knife") do
      {
        // KNIFE kill     
        es_keygetvalue kill_reply_count bot_replies knifekill count
        es_rand kill_reply_number 1 server_var(kill_reply_count)
        es_keygetvalue kill_reply_string bot_replies knifekill server_var(kill_reply_number)
      }
     if (event_var(weapon) equalto "hegrenade") do
      {
        // NADE kill
        es_keygetvalue kill_reply_count bot_replies nadekill count
        es_rand kill_reply_number 1 server_var(kill_reply_count)
        es_keygetvalue kill_reply_string bot_replies nadekill server_var(kill_reply_number)
      }
      // TK KILL
    if (event_var(es_userteam) == event_var(es_attackerteam)) do
      {
        es_keygetvalue kill_reply_count bot_replies tkkill count
        es_rand kill_reply_number 1 server_var(kill_reply_count)
        es_keygetvalue kill_reply_string bot_replies tkkill server_var(kill_reply_number)
      }
    es_doblock ace_botchat/kill_reply
  }
}

block death_reply
{
es_xset death_chance 0
es_rand death_chance 1 server_var(chance_of_chat)
if (server_var(death_chance) == 1) do
  {
    esnq es_delayed 3 esnq es_sexec event_var(userid) say server_var(death_reply_string)
  }
}

block kill_reply
{
es_xset kill_chance 0
es_rand kill_chance 1 server_var(chance_of_chat)
if (server_var(kill_chance) == 1) do
  {
    esnq es_delayed 3 esnq es_sexec event_var(attacker) say server_var(kill_reply_string)
  }
}

event item_pickup
{
if (event_var(es_steamid) equalto "BOT") do
  {
   if (server_var(bc_rs_ok) equalto 1) do
    {
      es_xset itempickup_reply_count 0
      es_xset itempickup_reply_number 0
      es_xset itempickup_reply_string 0
      //
    es_keygetvalue itempickup_reply_count bot_replies itempickup count
    es_rand itempickup_reply_number 1 server_var(itempickup_reply_count)
    es_keygetvalue itempickup_reply_string bot_replies itempickup server_var(itempickup_reply_number)
    esnq es_delayed 2 esnq es_sexec event_var(userid) say server_var(itempickup_reply_string)
    }
  }
}

event bomb_pickup
{
if (event_var(es_steamid) equalto "BOT") do
  {
    es_xset bombpickup_reply_count 0
    es_xset bombpickup_reply_number 0
    es_xset bombpickup_reply_string 0
    //
  es_keygetvalue bombpickup_reply_count bot_replies bombpickup count
  es_rand bombpickup_reply_number 1 server_var(bombpickup_reply_count)
  es_keygetvalue bombpickup_reply_string bot_replies bombpickup server_var(bombpickup_reply_number)
  esnq es_delayed 2 esnq es_sexec event_var(userid) say_team server_var(bombpickup_reply_string)
  }
}

event bomb_exploded
{
if (event_var(es_steamid) equalto "BOT") do
  {
    es_xset bombex_reply_count 0
    es_xset bombex_reply_number 0
    es_xset bombex_reply_string 0
    //
  es_keygetvalue bombex_reply_count bot_replies bombexploded count
  es_rand bombex_reply_number 1 server_var(bombex_reply_count)
  es_keygetvalue bombex_reply_string bot_replies bombexploded server_var(bombex_reply_number)
  esnq es_delayed 3 esnq es_sexec event_var(userid) say server_var(bombex_reply_string)
  }
}

event bomb_planted
{
if (event_var(es_steamid) equalto "BOT") do
  {
    es_xset bombpl_reply_count 0
    es_xset bombpl_reply_number 0
    es_xset bombpl_reply_string 0
    //
  es_keygetvalue bombpl_reply_count bot_replies bombplanted count
  es_rand bombpl_reply_number 1 server_var(bombpl_reply_count)
  es_keygetvalue bombpl_reply_string bot_replies bombplanted server_var(bombpl_reply_number)
  esnq es_delayed 2 esnq es_sexec event_var(userid) say_team server_var(bombpl_reply_string)
  }
}

event bomb_defused
{
if (event_var(es_steamid) equalto "BOT") do
  {
    es_xset bombdef_reply_count 0
    es_xset bombdef_reply_number 0
    es_xset bombdef_reply_string 0
    //
  es_keygetvalue bombdef_reply_count bot_replies bombdefused count
  es_rand bombdef_reply_number 1 server_var(bombdef_reply_count)
  es_keygetvalue bombdef_reply_string bot_replies bombdefused server_var(bombdef_reply_number)
  esnq es_delayed 2 esnq es_sexec event_var(userid) say server_var(bombdef_reply_string)
  }
}

event hostage_follows
{
if (event_var(es_steamid) equalto "BOT") do
  {
    es_xset chat_chance 0
    es_rand chat_chance 1 server_var(chance_of_chat)
    if (server_var(chat_chance) == 1) do
      {
        es_xset hofollow_reply_count 0
        es_xset hofollow_reply_number 0
        es_xset hofollow_reply_string 0
        //
        es_keygetvalue hofollow_reply_count bot_replies hostagefollows count
        es_rand hofollow_reply_number 1 server_var(hofollow_reply_count)
        es_keygetvalue hofollow_reply_string bot_replies hostagefollows server_var(hofollow_reply_number)
        esnq es_delayed 1 esnq es_sexec event_var(userid) say_team server_var(hofollow_reply_string)
      }
  }
}

event hostage_stops_following
{
if (event_var(es_steamid) equalto "BOT") do
  {
    es_xset chat_chance 0
    es_rand chat_chance 1 server_var(chance_of_chat)
    if (server_var(chat_chance) == 1) do
      {
        es_xset hostop_reply_count 0
        es_xset hostop_reply_number 0
        es_xset hostop_reply_string 0
        //
        es_keygetvalue hostop_reply_count bot_replies hostagestops count
        es_rand hostop_reply_number 1 server_var(hostop_reply_count)
        es_keygetvalue hostop_reply_string bot_replies hostagestops server_var(hostop_reply_number)
        esnq es_delayed 1 esnq es_sexec event_var(userid) say_team server_var(hostop_reply_string)
      }
  }
}

event hostage_killed
{
if (event_var(es_steamid) equalto "BOT") do
  {
    es_xset chat_chance 0
    es_rand chat_chance 1 server_var(chance_of_chat)
    if (server_var(chat_chance) == 1) do
      {
        es_xset hokill_reply_count 0
        es_xset hokill_reply_number 0
        es_xset hokill_reply_string 0
        //
        es_keygetvalue hokill_reply_count bot_replies hostagekilled count
        es_rand hokill_reply_number 1 server_var(hokill_reply_count)
        es_keygetvalue hokill_reply_string bot_replies hostagekilled server_var(hokill_reply_number)
        esnq es_delayed 1 esnq es_sexec event_var(userid) say server_var(hokill_reply_string)
      }
  }
}

event player_blind
{
if (event_var(es_steamid) equalto "BOT") do
  {
    es_xset chat_chance 0
    es_rand chat_chance 1 server_var(chance_of_chat)
    if (server_var(chat_chance) == 1) do
      {
        es_xset blind_reply_count 0
        es_xset blind_reply_number 0
        es_xset blind_reply_string 0
        //
        es_keygetvalue blind_reply_count bot_replies blinded count
        es_rand blind_reply_number 1 server_var(blind_reply_count)
        es_keygetvalue blind_reply_string bot_replies blinded server_var(blind_reply_number)
        esnq es_delayed 2 esnq es_sexec event_var(userid) say_team server_var(blind_reply_string)
      }
  }
}
