//  Matrix Mod: Reloaded Library
//  for Counter-Strike: Source
//
// * Requirments
//   1.  Matrix Mod: Reloaded
//
// * Description:
//   This file contains commands and handles for the mod.  Do NOT edit any of this unless
//   you know exactly what you are doing.  Any editing could corrupt the mod!
// *******************************************

// ****************************
// Register All Mod Commands
// ****************************
block load
{
  es_xset mb_debugcopy 0
  es_xset mb_debugchar 0
  es_xset mb_debugstrchk 0
  es_xset mb_debugformat 0
  es_xset mb_libload 1
  es_xset mb_checklib 1
  es_xset mb_exists 0
  es_xexists mb_exists command mb_doexp
  if (server_var(mb_exists) = 0) do
  {
    es_xregcmd mb_doexp mb_matrix/library/lib/cmd_exp "Syntax: mb_exp <add/subtract> <Userid> <Amount>"
  }
  es_xset mb_exists 0
  es_xexists mb_exists command !focus
  if (server_var(mb_exists) = 0) do
  {
    es_xregclientcmd !focus mb_matrix/library/lib/clientfocus "Command to use focus"
  }
  es_xset mb_exists 0
  es_xexists mb_exists command !matrix
  if (server_var(mb_exists) = 0) do
  {
    es_xregsaycmd !matrix mb_matrix/library/lib/saymatrix "Command to open character menu"
  }
  es_xset mb_exists 0
  es_xexists mb_exists command changeclass
  if (server_var(mb_exists) = 0) do
  {
    es_xregsaycmd changeclass mb_matrix/library/lib/sayclasschange "Command to changeclass"
  }
  es_xset mb_exists 0
  es_xexists mb_exists command !debug
  if (server_var(mb_exists) = 0) do
  {
    es_xregcmd !debug mb_matrix/library/lib/debug "Debug Server Cmd"
  }
  es_xset mb_exists 0
  es_xexists mb_exists command !debug
  if (server_var(mb_exists) = 0) do
  {
    es_xregsaycmd !debug mb_matrix/library/lib/debug "Debug Say Cmd"
  }
}
block unload
{
  es_xset mb_checklib 0
}
// ***************
// Mod Commands
// ***************
block cmd_exp
{

}
block clientfocus
{
  es_xset mb_userid 0
  es_xgetcmduserid mb_userid
  es_xdoblock mb_matrix/format_command_steamid
  es_xdoblock mb_matrix/library/lib/focuscheck
}
block focuscheck
{
  es_xset mb_exists 0
  es_exists mb_exists key matrix server_var(mb_steamid)
  if (server_var(mb_exists) == 1) do
  {
    es_keygetvalue mb_currentclass matrix server_var(mb_steamid) currentclass
    es_xcopy mb_copyclass mb_currentclass
    es_keygetvalue mb_focus matrix server_var(mb_steamid) focus
    es_getplayerprop mb_dead server_var(mb_userid) "CCSPlayer.baseclass.pl.deadflag"
    es_keygetvalue mb_abilityexp server_var(mb_copyclass) server_var(mb_steamid) abilityexp
    es_keygetvalue mb_currentability server_var(mb_copyclass) server_var(mb_steamid) currentability
    es_keygetvalue mb_currentspeed server_var(mb_copyclass) server_var(mb_steamid) currentspeed
    es_keygetvalue mb_focustimer matrix server_var(mb_steamid) focustimer
  }
  if (server_var(mb_focustimer) == 0) do
  {
    est_PlayerCount mb_count #a
    es_xset mb_copycount 0
    es_xcopy mb_copycount mb_count
    forcecase mb_copyclass lower
    es_xmath mb_abilityexp float
    es_xmath mb_count float
    es_xmath mb_trimdec float
    es_formatv mb_formatcharblock "mb_matrix/characters/%1/%2" mb_copyclass mb_copyclass
    es_doblock server_var(mb_formatcharblock)
    es_keysetvalue matrix server_var(mb_steamid) focus server_var(mb_focus)
    es_keysetvalue matrix server_var(mb_steamid) focustimer 1
    es_delayed server_var(mb_focustime) es_xkeysetvalue matrix server_var(mb_steamid) focustimer 0
    es_xdoblock mb_matrix/hudhint2
    if (server_var(mb_copycount) >= server_var(mb_ability_exp_players)) do
    {
      if (server_var(mb_dead) == 0) do
      {
        if (server_var(mb_focus) >= 2) do
        {
          es_math mb_abilityexp + server_var(mb_trimdec)
          if (server_var(mb_currentability) < 5) do
          {
            if (server_var(mb_abilityexp) >= 100) do
            {
              es_xmath mb_currentability + 1
              es_keysetvalue server_var(mb_copyclass) server_var(mb_steamid) currentability server_var(mb_currentability)
              es_tell server_var(mb_userid) #multi #default[Ability Increase] #greenYour ability has increased in level and is more powerful!
              es_keysetvalue server_var(mb_copyclass) server_var(mb_steamid) abilityexp 0
            }
            else do
            {
              es est_trimdecimal mb_trimdec server_var(mb_abilityexp) 2
              es_keysetvalue server_var(mb_copyclass) server_var(mb_steamid) abilityexp server_var(mb_trimdec)
            }
          }
        }
      }
    }
    else do
    {
      es_tell server_var(mb_userid) #multi #green[Failure] #defaultYou cannot gain ability exp unless there are at least#green server_var(mb_ability_exp_players) #defaultplayers on the server.
    }
  }
  else do
  {
    es_tell server_var(mb_userid) #multi #defaultYou must wait#green server_var(mb_focustime) #defaultseconds before performing your ability again.
  }
}
// ***************
// Say Commands
// ***************
block saymatrix
{
  mb_userid 0
  es_xgetcmduserid mb_userid
  es_xdoblock mb_matrix/format_command_steamid
  es popup send mainmenu server_var(mb_userid)
}
block sayclasschange
{
  mb_userid 0
  es_xgetcmduserid mb_userid
  es_xdoblock mb_matrix/format_command_steamid
  es_getplayerteam mb_getteam server_var(mb_userid)
  if (server_var(mb_getteam) == 2) then popup send rebelmenu server_var(mb_userid)
  if (server_var(mb_getteam) == 3) then popup send machinemenu server_var(mb_userid)
}
block debug
{
  es_msg #multi #green[Performing Task] #defaultChecking files are installed correctly, and Eventscripts is up-to-date.
  es_xcopy mb_debugstrchk eventscripts_ver
  es_xstring mb_debugstrchk section 0 3
  if (server_var(mb_debugstrchk) != 1.5) do
  {
    es_delayed 2 es_xmsg #multi #green[FAILURE] #defaultYou are not running the correct version of Eventscripts.  Download version 1.5 or later from "http://mattie.info/cs"
  }
  else do
  {
    if (server_var(mb_libload) == 1) do
    {
      if (server_var(mb_menuload) == 1) do
      {
        es_delayed 1 es_xmsg #multi #green[Success] Eventscripts Version is correct.
        es_delayed 2 es_xmsg #multi #green[Performing Task] #defaultChecking character files.
        if (server_var(mb_charload) == 66) do
        {
          es_delayed 3 es_xmsg #multi #green[Success] #defaultAll files have been checked.  Matrix Mod should be installed correctly.
        }
        else do
        {
          es_delayed 3 es_xmsg #multi #green[Failure] #defaultOne or more character files were not loaded correctly.  
          es_delayed 4 es_xmsg #multi #green[Failure] #defaultFor additional help post the number below in the Matrix thread at: "http://mattie.info/cs."
          es_delayed 5 es_xmsg #multi #green[Failure] #defaultCharacter Number:#green server_var(mb_charload) 
        }
      }
      else do
      {
        es_delayed 2 es_xmsg #multi #green[FAILURE] #defaultMenu file has not been loaded correctly.  For additional help, visit http://mattie.info/cs
      }       
    }
    else do
    {
      es_delayed 2 es_xmsg #multi #green[FAILURE] #defaultLibrary file has not been loaded correctly.  For additional help, visit http://mattie.info/cs
    }
  }
}

                     