Author Topic: ESA v2.11  (Read 36835 times)

0 Members and 1 Guest are viewing this topic.

Offline rainrider

  • Soldier
  • **
  • Posts: 145
    • rrhp
ESA v2.11
« on: August 24, 2006, 02:03:49 pm »

oooooooooooo¬  .oooooo..o¬  ¬  ¬  ¬ .o.¬  ¬  ¬  ¬  ¬  ¬  .oooo.¬  ¬  ¬  ¬  ¬ .o¬  ¬  ¬ .o
`888'¬  ¬  ¬ `8 d8P'¬  ¬  `Y8¬  ¬  ¬  .888.¬  ¬  ¬  ¬  ¬ .dP""Y88b¬  ¬  ¬  o888¬  ¬ o888
 888¬  ¬  ¬  ¬  ¬ Y88bo.¬  ¬  ¬  ¬  ¬  .8"888.¬  ¬  ¬  ¬  ¬  ¬  ¬  ]8P'¬  ¬  ¬  888¬  ¬  888
 888oooo8¬  ¬  ¬ `"Y8888o.¬  ¬  ¬ .8' `888.¬  ¬  ¬  ¬  ¬  ¬ .d8P'¬  ¬  ¬  ¬ 888¬  ¬  888
 888¬  ¬  "¬  ¬  ¬  ¬  ¬ `"Y88b¬  ¬ .88ooo8888.¬  ¬  ¬  ¬  .dP'¬  ¬  ¬  ¬  ¬  888¬  ¬  888
 888¬  ¬  ¬  ¬ o oo¬  ¬  ¬ .d8P¬  .8'¬  ¬  ¬ `888.¬  ¬  ¬ .oP¬  ¬  ¬ .o .o.¬  888¬  ¬  888
o888ooooood8 8""88888P'¬  o88o¬  ¬  ¬ o8888o¬  ¬  8888888888 Y8P o888o¬  o888o



 _______ _¬  ¬  ¬ _ __¬  ¬ _ _______ _______ _____¬  _____¬  __¬  ¬ _ _______
 |______ |¬  ¬  ¬ | | \¬  | |¬  ¬  ¬  ¬  ¬  |¬  ¬  ¬  |¬  ¬ |¬  ¬  ¬ | | \¬  | |______
 |¬  ¬  ¬  ¬ |_____| |¬  \_| |______¬  ¬  |¬  ¬  __|__ |_____| |¬  \_| ______|

¬  [ before you'll read...
¬  |¬  ¬ - general usage of functions: $func(param1,param2)
¬  |¬  ¬ - if you want to write bracket, dollar signs or commas which aren't part of functions use:
¬  |¬  ¬  ¬ :lbracket: for left bracket (
¬  |¬  ¬  ¬ :rbracket: for right bracket )
¬  |¬  ¬  ¬ :comma:¬  ¬  for comma
¬  |¬  ¬  ¬ :dollar:¬  ¬ for dollar sign
¬  |¬  ¬  ¬ example: $log(:lbracket:bla:comma: bla:rbracket:) will output '(bla, bla)'.
¬  |¬  ¬ - if function does not exists, it is removed.
\ | / - in list placed below numbers in brackets {x} are indexes of function parameters.
 \|/¬  ¬  it's the same as func({1},{2}..)
¬  '
function list:
name¬  ¬  ¬  ¬  ¬  ¬  ¬  ¬  ¬  ¬  params¬  description
$add¬  ¬  ¬  ¬  ¬  ¬  ¬  ¬  ¬  ¬  2+¬  ¬ adds {2..n} to {1}.
$sub¬  ¬  ¬  ¬  ¬  ¬  ¬  ¬  ¬  ¬  2+¬  ¬ substracts {2..n} from {1}.
$mul¬  ¬  ¬  ¬  ¬  ¬  ¬  ¬  ¬  ¬  2+¬  ¬ multiplies {1} by {2..n}.
$div¬  ¬  ¬  ¬  ¬  ¬  ¬  ¬  ¬  ¬  2+¬  ¬ divides {1} by {2..n}. returns rounded number.
$mod¬  ¬  ¬  ¬  ¬  ¬  ¬  ¬  ¬  ¬  2¬  ¬  performs modulo by {2} on {1}.
$abs¬  ¬  ¬  ¬  ¬  ¬  ¬  ¬  ¬  ¬  1¬  ¬  returns absolute value of {1}.
$ceil¬  ¬  ¬  ¬  ¬  ¬  ¬  ¬  ¬  ¬ 1¬  ¬  returns {1} rounded up.
$floor¬  ¬  ¬  ¬  ¬  ¬  ¬  ¬  ¬  1¬  ¬  returns {1} rounded down.
$intval¬  ¬  ¬  ¬  ¬  ¬  ¬  ¬  ¬ 1¬  ¬  returns numeric value of {1}. (see c atoi function: http://www.cplusplus.com/ref/cstdlib/atoi.html)
$floatval¬  ¬  ¬  ¬  ¬  ¬  ¬  ¬ 2¬  ¬  returns {2}-digit fracton of {1}. (see c atoi function: http://www.cplusplus.com/ref/cstdlib/atof.html)
$min¬  ¬  ¬  ¬  ¬  ¬  ¬  ¬  ¬  ¬  2+¬  ¬ returns greatest parameter.
$max¬  ¬  ¬  ¬  ¬  ¬  ¬  ¬  ¬  ¬  2+¬  ¬ returns smallest parameter.
$substr¬  ¬  ¬  ¬  ¬  ¬  ¬  ¬  ¬ 3¬  ¬  returns part of {1} which starts in {2} and is {3} bytes long.
$substr_count¬  ¬  ¬  ¬  ¬  ¬ 1¬  ¬  returns count of {2} in {1}.
$strpos¬  ¬  ¬  ¬  ¬  ¬  ¬  ¬  ¬ 2¬  ¬  returns first position of {2} in {1}.
$strrpos¬  ¬  ¬  ¬  ¬  ¬  ¬  ¬  2¬  ¬  returns last position of {2} in {1}.
$lowercase¬  ¬  ¬  ¬  ¬  ¬  ¬  1¬  ¬  returns {1} converted to lowercase.
$uppercase¬  ¬  ¬  ¬  ¬  ¬  ¬  1¬  ¬  returns {1} converted to uppercase.
$strlen¬  ¬  ¬  ¬  ¬  ¬  ¬  ¬  ¬ 1¬  ¬  returns count of bytes in {1}.
$trim¬  ¬  ¬  ¬  ¬  ¬  ¬  ¬  ¬  ¬ 1¬  ¬  returns {1} without ending and leading spaces, newlines and tabulators.
$time¬  ¬  ¬  ¬  ¬  ¬  ¬  ¬  ¬  ¬ 1/2¬  returns {2} time structure formatted in {1}. if no {2}, parses current see delphi FormatDateTime function: http://www.delphibasics.co.uk/RTL.asp?Name=FormatDateTime
$encodetime¬  ¬  ¬  ¬  ¬  ¬  ¬ 7¬  ¬  returns ready for $time structure. {1}=year,{2}=month,{3}=day,{4}=hour,{5}=min,{6}=sec,{7}=milisec.
$str_replace¬  ¬  ¬  ¬  ¬  ¬  3¬  ¬  returns {3} with replaced all {1} to {2}.
$d2a¬  ¬  ¬  ¬  ¬  ¬  ¬  ¬  ¬  ¬  2¬  ¬  dec to any. returns {1} converted to {2} system.
$a2d¬  ¬  ¬  ¬  ¬  ¬  ¬  ¬  ¬  ¬  2¬  ¬  any to dec. returns {1} in {2} system converted to decimal.
$hex¬  ¬  ¬  ¬  ¬  ¬  ¬  ¬  ¬  ¬  1¬  ¬  defined as $str_pad($d2a({1},16),0,2). returns hexagonal value of {1}.
$random¬  ¬  ¬  ¬  ¬  ¬  ¬  ¬  ¬ 2¬  ¬  returns random value between {1} and {2}.
$sleep¬  ¬  ¬  ¬  ¬  ¬  ¬  ¬  ¬  1¬  ¬  stops parsing for {1} miliseconds.
$str_repeat¬  ¬  ¬  ¬  ¬  ¬  ¬ 2¬  ¬  returns {1} repeated {2} times.
$str_pad¬  ¬  ¬  ¬  ¬  ¬  ¬  ¬  3/4¬  returns {1} 'extended' to {2} bytes using {3}. {4} is direction, not needed. see php str_pad function: http://php.net/str_pad
$str_rev¬  ¬  ¬  ¬  ¬  ¬  ¬  ¬  1¬  ¬  returns reversed {1}.
$file_exists¬  ¬  ¬  ¬  ¬  ¬  1¬  ¬  returns 1 if file {1} exists and returns readed text.
$read_file¬  ¬  ¬  ¬  ¬  ¬  ¬  1¬  ¬  returns file {1} data. (note: upto 2kb, for bigger files use append_file)
$write_file¬  ¬  ¬  ¬  ¬  ¬  ¬ 2¬  ¬  writes {2} to file {1} even if file {1} exists and returns written text. if file does not exists, it is created.
$append_file¬  ¬  ¬  ¬  ¬  ¬  2¬  ¬  appends {2} to file {1} only if file exists and returns appended text. if file does not exists, it is created.
$exploded¬  ¬  ¬  ¬  ¬  ¬  ¬  ¬ 3¬  ¬  hard to descript in one line, it's advanced scripting. check php explode: http://php.net/explode. {1}=input array, {2}=explode char, {3}=array index.
$playwav¬  ¬  ¬  ¬  ¬  ¬  ¬  ¬  1¬  ¬  plays {1} wav file.
$message¬  ¬  ¬  ¬  ¬  ¬  ¬  ¬  1¬  ¬  displays new window with {1}.
$inputquery¬  ¬  ¬  ¬  ¬  ¬  ¬ 1¬  ¬  displays new window asking user for text using {1} question. (see delphi InputQuery function: http://lazarus-ccr.sourceforge.net/kbdata/MessageDlgQuestion.png)
$run¬  ¬  ¬  ¬  ¬  ¬  ¬  ¬  ¬  ¬  1¬  ¬  runs file {1}.
$log¬  ¬  ¬  ¬  ¬  ¬  ¬  ¬  ¬  ¬  1/4¬  displays {1} in esa. when it's possible, colorizes {1} using r:{2} g:{3} b:{4}.
$send¬  ¬  ¬  ¬  ¬  ¬  ¬  ¬  ¬  ¬ 1¬  ¬  sends {1} to soldat server.
$irclog¬  ¬  ¬  ¬  ¬  ¬  ¬  ¬  ¬ 1/4¬  displays {1} in esa (irc tab). when it's possible, colorizes {1} using r:{2} g:{3} b:{4}.
$ircsend¬  ¬  ¬  ¬  ¬  ¬  ¬  ¬  1¬  ¬  sends {1} to irc server. if {2} is 1, do not display {1} in esa.
$ircconnect¬  ¬  ¬  ¬  ¬  ¬  ¬ 2¬  ¬  connects to {1} irc server on port {2}.
$ircdisconnect¬  ¬  ¬  ¬  ¬  1¬  ¬  disconnects from irc server.
$if¬  ¬  ¬  ¬  ¬  ¬  ¬  ¬  ¬  ¬  ¬ 3¬  ¬  if {1} is true, do {2}, in other case do {3}.
$and¬  ¬  ¬  ¬  ¬  ¬  ¬  ¬  ¬  ¬  1+¬  ¬ if all parameters are true, returns true. if any parameter is false, returns false.
$or¬  ¬  ¬  ¬  ¬  ¬  ¬  ¬  ¬  ¬  ¬ 1+¬  ¬ if any parameter is true, returns true. if all parameters are false, returns false.
$isgreater¬  ¬  ¬  ¬  ¬  ¬  ¬  2¬  ¬  if {1} is greater than {2}, returns true. both parameters are converted to numeric values.
$isgreaterorequal¬  ¬  ¬  ¬ 2¬  ¬  if {1} is greater or equal than {2}, returns true. both parameters are converted to numeric values.
$isless¬  ¬  ¬  ¬  ¬  ¬  ¬  ¬  ¬ 2¬  ¬  see $isgreater.
$islessorequal¬  ¬  ¬  ¬  ¬  2¬  ¬  see $isgreaterorequal.
$isequal¬  ¬  ¬  ¬  ¬  ¬  ¬  ¬  2¬  ¬  if {1} is equal to {2}, returns true. both parameters aren't converted to numeric values, they're kept as they are.
$isnotequal¬  ¬  ¬  ¬  ¬  ¬  ¬ 2¬  ¬  see $isequal.
$switch¬  ¬  ¬  ¬  ¬  ¬  ¬  ¬  ¬ 1+¬  ¬ if {1} = {2}, do {3}. if {1} = {4}, do {5}. must have {6}, which is called if nothing compared.
$while¬  ¬  ¬  ¬  ¬  ¬  ¬  ¬  ¬  2¬  ¬  while {1} do {2}.
$die¬  ¬  ¬  ¬  ¬  ¬  ¬  ¬  ¬  ¬  0¬  ¬  stops parsing script.

¬  [ before you'll read...
¬  |¬  ¬ - you should read variables section.
¬  |¬  ¬ - both static and normal variable functions does not support % (procent sign):
\ | /¬  ¬ if you want variable %tmp%, you create it by $set(tmp,1).
 \|/
¬  '
$set¬  ¬  ¬  ¬  ¬  ¬  ¬  ¬  ¬  ¬  2¬  ¬  makes new or replaces existing variable {1} with {2}.
$sset¬  ¬  ¬  ¬  ¬  ¬  ¬  ¬  ¬  ¬ 2¬  ¬  makes new or replaces existing static variable {1} with {2}. see faq, part 1, question 2.
$varexists¬  ¬  ¬  ¬  ¬  ¬  ¬  1¬  ¬  returns true if variable {1} exists.
$svarexists¬  ¬  ¬  ¬  ¬  ¬  ¬ 1¬  ¬  returns true if static variable {1} exists.
$unset¬  ¬  ¬  ¬  ¬  ¬  ¬  ¬  ¬  1¬  ¬  removes existing variable {1}. doesn't need checking that variable exists.
$unsset¬  ¬  ¬  ¬  ¬  ¬  ¬  ¬  ¬ 1¬  ¬  removes existing static variable {1}. ^ditto^
$redo¬  ¬  ¬  ¬  ¬  ¬  ¬  ¬  ¬  ¬ 1¬  ¬  reparses {1}. if you have something like %player%sid%name% and it doesn't show correctly u can place it in $redo function.
$pid2sid¬  ¬  ¬  ¬  ¬  ¬  ¬  ¬  1¬  ¬  replaces player id to structure id. see faq, part 1, question 1.



 _¬  ¬  _ _______¬  ______ _____ _______ ______¬  ¬  ¬  ¬  ¬ _______ _______
¬  \¬  /¬  |_____| |_____/¬  ¬ |¬  ¬ |_____| |_____] |¬  ¬  ¬  |______ |______
¬  ¬ \/¬  ¬ |¬  ¬  ¬ | |¬  ¬  \_ __|__ |¬  ¬  ¬ | |_____] |_____ |______ ______|

¬  [ before you'll read...
\ | / - general usage of variables: %variable%
 \|/
¬  '
%tickcount%¬  ¬  ¬  ¬  ¬  ¬  ¬ same as GetTickCount, seconds elapsed from computer run (useful for preventing function spam)
%realtime%¬  ¬  ¬  ¬  ¬  ¬  ¬  same as time(0) in c, seconds elapsed from 01-01-1970 00:00:00
%playercount%¬  ¬  ¬  ¬  ¬  ¬ description not needed?
%line%¬  ¬  ¬  ¬  ¬  ¬  ¬  ¬  ¬  incoming line.
%serveraddr%¬  ¬  ¬  ¬  ¬  ¬  server address.
%serverport%¬  ¬  ¬  ¬  ¬  ¬  server port.
%gamemode%¬  ¬  ¬  ¬  ¬  ¬  ¬  current game mode.
%mapname%¬  ¬  ¬  ¬  ¬  ¬  ¬  ¬ current map.
%nextmapname%¬  ¬  ¬  ¬  ¬  ¬ next map. works only with refreshx.
%friendlyfire%¬  ¬  ¬  ¬  ¬  friendly fire. 1 if on, 0 if off.
%timelimit%¬  ¬  ¬  ¬  ¬  ¬  ¬ time limit (in seconds).
%timeleft%¬  ¬  ¬  ¬  ¬  ¬  ¬  time left (in seconds).
%timeelapsed%¬  ¬  ¬  ¬  ¬  ¬ elapsed time (in seconds).
%pointlimit%¬  ¬  ¬  ¬  ¬  ¬  point limit.
%respawntime%¬  ¬  ¬  ¬  ¬  ¬ respawn time (in seconds).
%maxrespawntime%¬  ¬  ¬  ¬  maximum respawn time (in seconds).
%maxplayers%¬  ¬  ¬  ¬  ¬  ¬  maximum player count.
%bonusfreq%¬  ¬  ¬  ¬  ¬  ¬  ¬ bonus frequency.
%votepercent%¬  ¬  ¬  ¬  ¬  ¬ vote%.
%playerid% and %pid%¬  ¬  player id.
%structid% and %sid%¬  ¬  player's structure id.
%team1score%¬  ¬  ¬  ¬  ¬  ¬  alpha score.
%team2score%¬  ¬  ¬  ¬  ¬  ¬  bravo score.
%team3score%¬  ¬  ¬  ¬  ¬  ¬  charlie score.
%team4score%¬  ¬  ¬  ¬  ¬  ¬  delta score.
%player1..32name%¬  ¬  ¬  ¬ player x name.
%player1..32kills%¬  ¬  ¬  player x kill count (with caps).
%player1..32deaths%¬  ¬  ¬ player x death count (with suicides).
%player1..32ping%¬  ¬  ¬  ¬ player x ping.
%player1..32ip%¬  ¬  ¬  ¬  ¬ player x ip.
%player1..32id%¬  ¬  ¬  ¬  ¬ player x id.
%player1..32team%¬  ¬  ¬  ¬ player x team id.
%player1..32xpos%¬  ¬  ¬  ¬ player x x position. works only with refreshx.
%player1..32ypos%¬  ¬  ¬  ¬ player x y position. works only with refreshx.
%redflagxpos%¬  ¬  ¬  ¬  ¬  ¬ x position of red flag. works only with refreshx.
%redflagypos%¬  ¬  ¬  ¬  ¬  ¬ y position of red flag. works only with refreshx.
%blueflagxpos%¬  ¬  ¬  ¬  ¬  x position of blue flag. works only with refreshx.
%blueflagypos%¬  ¬  ¬  ¬  ¬  y position of blue flag. works only with refreshx.
%esadir%¬  ¬  ¬  ¬  ¬  ¬  ¬  ¬  path to esa.
%serverversion%¬  ¬  ¬  ¬  ¬ version of server. works on servers 2.5.1+.
%msgtype%¬  ¬  ¬  ¬  ¬  ¬  ¬  ¬ message type
%usingrefreshx%¬  ¬  ¬  ¬  ¬ is esa using refreshx?
%soltvon%¬  ¬  ¬  ¬  ¬  ¬  ¬  ¬ is soltv on?
%ircconnected%¬  ¬  ¬  ¬  ¬  is irc client connected?



 _______¬  _____¬  __¬  ¬ _ _______ _______ _______ __¬  ¬ _ _______ _______
 |¬  ¬  ¬  ¬ |¬  ¬  ¬ | | \¬  | |______¬  ¬  |¬  ¬  |_____| | \¬  |¬  ¬  |¬  ¬  |______
 |______ |_____| |¬  \_| ______|¬  ¬  |¬  ¬  |¬  ¬  ¬ | |¬  \_|¬  ¬  |¬  ¬  ______|

TM_ZERO¬  ¬  ¬  ¬  ¬  ¬  ¬  ¬  ¬ team id. gamemode: deathmatch. zero means no team.
TM_ALPHA¬  ¬  ¬  ¬  ¬  ¬  ¬  ¬  team id. gamemode: htf, inf, ctf, tm.
TM_BRAVO¬  ¬  ¬  ¬  ¬  ¬  ¬  ¬  team id. gamemode: htf, inf, ctf, tm.
TM_CHARLIE¬  ¬  ¬  ¬  ¬  ¬  ¬  team id. gamemode: tm.
TM_DELTA¬  ¬  ¬  ¬  ¬  ¬  ¬  ¬  team id. gamemode: tm.
TM_SPEC¬  ¬  ¬  ¬  ¬  ¬  ¬  ¬  ¬ team id. gamemode: all. spec means spectator.
TM_UNKNOWN¬  ¬  ¬  ¬  ¬  ¬  ¬  team id. gamemode: ? shouldn't appear.
GM_PM¬  ¬  ¬  ¬  ¬  ¬  ¬  ¬  ¬  ¬ gamemode id. pointmatch.
GM_DM¬  ¬  ¬  ¬  ¬  ¬  ¬  ¬  ¬  ¬ gamemode id. deathmatch.
GM_TM¬  ¬  ¬  ¬  ¬  ¬  ¬  ¬  ¬  ¬ gamemode id. team match.
GM_RM¬  ¬  ¬  ¬  ¬  ¬  ¬  ¬  ¬  ¬ gamemode id. rambo match.
GM_CTF¬  ¬  ¬  ¬  ¬  ¬  ¬  ¬  ¬  gamemode id. capture the flag.
GM_INF¬  ¬  ¬  ¬  ¬  ¬  ¬  ¬  ¬  gamemode id. infiltration.
GM_HTF¬  ¬  ¬  ¬  ¬  ¬  ¬  ¬  ¬  gamemode id. hold the flag.
GM_UNKNOWN¬  ¬  ¬  ¬  ¬  ¬  ¬  gamemode id. shouldn't appear.
MSG_NORMAL¬  ¬  ¬  ¬  ¬  ¬  ¬  message type. normal line
MSG_LOOPTIMER¬  ¬  ¬  ¬  ¬  ¬ message type. loop timer
MSG_IRC¬  ¬  ¬  ¬  ¬  ¬  ¬  ¬  ¬ message type. irc line
%newline%¬  ¬  ¬  ¬  ¬  ¬  ¬  ¬ new line.
%nl%¬  ¬  ¬  ¬  ¬  ¬  ¬  ¬  ¬  ¬  ditto.
%tab%¬  ¬  ¬  ¬  ¬  ¬  ¬  ¬  ¬  ¬ tabulator char.
left, right, both¬  ¬  ¬  ¬ fourth parameters for $str_pad function.



_______ _______¬  _____
|______ |_____| |¬  ¬ __|
|¬  ¬  ¬  ¬ |¬  ¬  ¬ | |____\|

scripting related questions
#1:¬  when do i use %sid% and when %pid%?
¬  ¬  ¬ use %pid% when u need to do something like /kick 4. use %sid% when u need to get
¬  ¬  ¬ something from players structure, like player ip etc. if you need to get info from
¬  ¬  ¬ structure about someone other than player with %pid% (speaker), use $pid2sid({pid})
¬  ¬  ¬ function. it's used in example !whois x function. %sid% is the same as $pid2sid(%pi
¬  ¬  ¬ d%) ofc.
#2:¬  what's difference between static and normal variables?
¬  ¬  ¬ normal variable is clear at end of parsing each line. static variable is visible for
¬  ¬  ¬ esa always (it's clear only at disconnect). so if you'll do something like:
¬  ¬  ¬ $sset(parsedlines,$add(%parsedlines%,1))$log(%parsedlines%)
¬  ¬  ¬ you'll see in esa increasing variable %parsedlines%.
#3:¬  limits..
¬  ¬  ¬ max params in function¬  ¬  ¬  ¬ 20
¬  ¬  ¬ max variable count¬  ¬  ¬  ¬  ¬  ¬ 256
¬  ¬  ¬ max static variable count¬  ¬  256
¬  ¬  ¬ max $switch statements¬  ¬  ¬  ¬ 9
¬  ¬  ¬ max param length¬  ¬  ¬  ¬  ¬  ¬  ¬ 2048 (2kb)
#4:¬  why can't i use 3-, 2- or 1-character commands?
¬  ¬  ¬ game bug (trust me)
#5:¬  where can i place comments?
¬  ¬  ¬ anywhere u want except function parameters..
#6:¬  how to load custom parsing file?
¬  ¬  ¬ place in 'esadata' folder file called 'host port.txt'
#7:¬  why scripting is many times harder here than scripting in arsse or old esa?
¬  ¬  ¬ there was too much rubbish in old esa, and you can use arsse if you want. but here's
¬  ¬  ¬ the most powerful tool i think. you can do everything u want, you can make mass-flag
¬  ¬  ¬ autokick (not vote), X player kicker, expanded voting etc. all depends on your patience.
#8:¬  my script is well written but it's not working.
¬  ¬  ¬ check twice for sure. if still problems, place after each right bracket space and
¬  ¬  ¬ then check again. since 2.03 there's no need to do it.
#9:¬  how can i make repeated in time actions, like sending some text every 10 minutes?
¬  ¬  ¬ it's easy. look at example file. if line has been requested by loop timer, special
¬  ¬  ¬ variable %bytimer% = 1, so you gotta check that %bytimer% is equal to 1. if so, do
¬  ¬  ¬ your script should actions. now script should be terminated if you don't want get
¬  ¬  ¬ strange bugs. you can change loop timer interval in options.ini (LoopTimerInterval).
¬  ¬  ¬ you have to enter value in miliseconds (one second = 1000ms, one minute = 60000ms). if
¬  ¬  ¬ you want to make different to all servers interval in server x, you have to do
¬  ¬  ¬ $set(looptimerinterval,newinterval). looptimerinterval is special argument, you can't
¬  ¬  ¬ do anything like that with any other esa internal variable. in example file it's changed
¬  ¬  ¬ at first script parsing.
#10: wrargh! how do i connect to irc? how do i handle the connection?
¬  ¬  ¬ read this: http://www.irchelp.org/irchelp/rfc/rfc.html

soltv related questions
#1:¬  what's meaning of all shapes in soltv? [by Frenchie]
¬  ¬  ¬ -polys-
¬  ¬  ¬ gray - normal
¬  ¬  ¬ light blue - ice
¬  ¬  ¬ deep blue - regenerating
¬  ¬  ¬ orange - lava/hurts
¬  ¬  ¬ red - deadly/bloody deadly
¬  ¬  ¬ green - only bullet collides
¬  ¬  ¬ yellow - only player collides
¬  ¬  ¬ seagreen/radioactive - does not collide
¬  ¬  ¬ -rest-
¬  ¬  ¬ green rectangles - grenadekits (spawnpoints)
¬  ¬  ¬ red rectangles - medikits (spawnpoints)
¬  ¬  ¬ bronze triangle - rambo bow (spawnpoint)
¬  ¬  ¬ red triangle - red flag
¬  ¬  ¬ glue triangle - blue flag
¬  ¬  ¬ colorful & moving dots/filled rectangles - players/bots
#4:¬  what's soltv navigation?
¬  ¬  ¬ numpad 5 - reset view
¬  ¬  ¬ numpad 4¬  ¬ move left¬  (hold left ctrl to haste)
¬  ¬  ¬ numpad 8¬  ¬ move up¬  ¬  (hold left ctrl to haste)
¬  ¬  ¬ numpad 6¬  ¬ move right (hold left ctrl to haste)
¬  ¬  ¬ numpad 2¬  ¬ move down¬  (hold left ctrl to haste)
¬  ¬  ¬ numpad -¬  ¬ zoom out
¬  ¬  ¬ numpad +¬  ¬ zoom in
#3:¬  i don't see map and I got valid maps directory.
¬  ¬  ¬ click again on soltv button. map will reload.
#4:¬  i don't see soltv button.
¬  ¬  ¬ you are connecting to server with too old version.
#5:¬  how player can check that i'm observing him?
¬  ¬  ¬ he just types 'is audience observing us?' and esa will send 'no it isn't' or 'yes it is'.

misc
#1:¬  why make faq if no questions were asked? [by freestyler when esa wasnt released yet]
¬  ¬  ¬ u did now :D
#2:¬  how to edit fav.txt?
¬  ¬  ¬ structure 'server port pass'. each line must have two spaces (not more not less).
#3:¬  how can i edit commands.txt file?
¬  ¬  ¬ structure is 'name|$actions()'. each line must have one | char (everything after second
¬  ¬  ¬ | char will be ignored!). if there are two same function names only first one will be
¬  ¬  ¬ executed. %line% for parsing will be visible as 'from commands box', both sid & pid as 255.
#4:¬  argh esa stops refreshing after map change or it just crashes every time i try to run!
¬  ¬  ¬ try to change refreshx to 0 in options.ini file. this will disable all features added
¬  ¬  ¬ in 2.06 version. you should also check that u got valid mapslist - server crashes on
¬  ¬  ¬ refreshx without specified mapslist.
#5:¬  things like max players, server version etc don't work!
¬  ¬  ¬ you gotta enable messages by something like $log(%line%).
#6:¬  nice ascii, can i use this font too?
¬  ¬  ¬ it's not mine. all asciis has been generated with ascii generator using font 'cyberlarge'
¬  ¬  ¬ and 'roman' (http://www.network-science.de/ascii/).
#7:¬  program crashes when i click too much connect/disconnect button while reconnecting.
¬  ¬  ¬ just click it gingerly.



 _______ _¬  ¬  ¬ _ _______ __¬  ¬ _¬  ______ _______¬  ¬  ¬  ¬  ¬ _____¬  ¬ ______
 |¬  ¬  ¬  ¬ |_____| |_____| | \¬  | |¬  ____ |______ |¬  ¬  ¬  |¬  ¬  ¬ | |¬  ____
 |_____¬  |¬  ¬  ¬ | |¬  ¬  ¬ | |¬  \_| |_____| |______ |_____ |_____| |_____|

legend:
- removed
+ added
x changed / fixed
| additional information

15 sep 2006, 2.11:
+ irc support:
¬  ~ $ircconnect
¬  ~ $ircdisconnect
¬  ~ $irclog
¬  ~ $ircsend
¬  ~ %ircconnected%
+ &#xx; etc are now :comma: :dollar: etc
+ automatically reconnecting (able to turn off)
+ position and size of main window is now remembed and changable in ini
+ smaller buttons (for 800x600)
+ $log now supports displaying colorized lines
+ background colors of players list box and incoming messages changable in ini
+ shutdown server to quick commands
% soltv button now disappear on disconnect
% fixed quick commands (no more /addbot0 etc)
% fixed banning by ip/admining in quick commands
% fixed example script file (%player%loop%x%, now %player$intval(%loop%)x%)
% %bytimer% changed to %msgtype%
% default window size is now 800x600

4 sep 2006, 2.10:
+ editable quick commands (global; check faq, part 3, question 3) (requested by Karaffka)
+ editable refresh interval
+ setteam to player popup menu
+ $intval and $floatval functions
+ $max and $min functions
+ $str_rev function
+ %soltvon% variable
+ %usingrefreshx% variable
+ $add $sub etc are now old $addf $subf etc. to display x-digit fraction use $floatval
+ some soltv security, messages are send now on:
¬  ~ server switch
¬  ~ connect to server
¬  ~ disconnect from server
¬  ~ map change
¬  ~ trigger 'is audience observing us?' (always)
% fixed negative k:d ratio when player caps and then kills himself

2 sep 2006, 2.09:
% new icon (made by Dowhook)
+ system tray icon (requested by BombSki)
+ player colorization (requested by freestyler and BombSki, colors by freestyler)
+ player menu (right click, requested by BombSki)
+ nick completion on double click on players list (requested by freestyler)
% increased font size in soltv

1 sep 2006, 2.08b:
% fixed reconnecting when pressing disconnect button

30 aug 2006, 2.08:
+ faq has now separate sections
+ added description of soltv navigation to faq
+ %serverversion% identifier (will work with server version 2.5.1+)
+ $sleep function (request by moep and Karaffka)
+ $random function (request by Karaffka)
+ $write_file and $append_file function (request by tehasdf)
+ $floor, $ceil and $abs functions
+ many parameters support for math functions (like $add(2,2,3))
+ division by zero security to $div and $divf
+ possiblement to make repeated in time actions (see faq, part 1, question 9) (request by
¬  KentheGreat)
+ not removable trigger 'is audience observing us?' which sends 'yes it is' if soltv is
¬  on and 'no it isn't' if it's off, available for admins too (example: if admin types 'is
¬  audience observing us?' esa sends message 'yes it is' or 'no it isn't').
+ limits to players and flags positions (xy -100000..100000)
+ security for spawn points (if there are more spawnpoints than esa supports, only first
¬  256 will be drawn)
+ customizable default parser (esadata\default.txt)
+ logging to file in example script (as comment)
+ if you press up arrow in command box, current text will be replaced with last sent message
- flag and death players movement (they're just teleporting back to spawnpoints now)
- blinking column headers in players list
- possiblement to avoid anti-oldversions system in soltv
- yellow flag and rambo bow spawn point from soltv
- invalid floating point operation bug in soltv (hope so)
- reloading map when hiding hint window bug (players list)
% $die now does not need any parameters
% functions returning function name with params if return value was empty (example: $read_file)
% !teams and /teams in example script
% some misspells in readme.txt (like 'arssee', sry KeFear)
% spawn points are drawn behind players (useful for stationary guns)
% modified a bit soltv toolbar icons
% soltv toolbar moved to down
% better wireframe in soltv (not so bold)
% str_replace function is now much less ram, but much more cpu eatin` (it was needed, because
¬  esa after one hour running on server with 4 bots was taking 120 mb of page file)

29 aug 2006, 2.07:
+ added description of shapes in soltv to faq
+ soltv now can be used only on servers with version included in vsrx.txt
+ reloading map on clicking soltv button
% clearing flags/players on map reload
% scripting.txt file name changed to readme.txt
% -oldmode parameter removed, now it is customizable in options.ini (refreshx=1/0)

28 aug 2006, 2.06:
+ refreshx support
+ soltv
+ %nextmapname% variable
+ %player1..32xpos% and %player1..32ypos%
+ %redflagx/ypos% %blueflagx/ypos%
| all refreshx-related things may not work. careful.

27 aug 2006, 2.05:
+ $run function
+ limit for $message (only 1 message until admin press ok)
+ disconnecting before closing (alt+f4)
x increased server closing time to 200 miliseconds
x changed changelog format

26 aug 2006, 2.04:
+ %player1..32id% identifier.

26 aug 2006, 2.03:
- need to make spaces after functions
+ little changes in example script file (new command for clanwars)

25 aug 2006, 2.02:
x fixed bug with old servers (random characters after player names)
x fixed some missings in scripting.txt file

24 aug 2006, 2.01:
¬  first working version



DL: http://rrhp.info/stuff/esa2.rar
SRC: http://rrhp.info/stuff/esa2src.rar

Original script file supports:
!version¬  ¬ displays version
!caps¬  ¬  ¬  displays player cap count on ctf and inf
!avkills¬  ¬ displays average kills excluding spectators
!avdeaths¬  displays average deaths excluding spectators
!avping¬  ¬  displays average ping including spectators
!kickme¬  ¬  kicks player
!killme¬  ¬  kills player
!pingme¬  ¬  displays player ping
!whoisme¬  ¬ displays player ip
!whois x¬  ¬ displays ip of player x
!banme¬  ¬  ¬ ;d
!kd¬  ¬  ¬  ¬  displays player k:d ratio excluding cap count
!time¬  ¬  ¬  displays server date and time
!teams¬  ¬  ¬ checks that teams are fair ot not (displays message)
!team1¬  ¬  ¬ sets player team to alpha (ctf htf inf tm)
!team2¬  ¬  ¬ sets player team to bravo (ctf htf inf tm)
!team3¬  ¬  ¬ sets player team to charlie (tm)
!team4¬  ¬  ¬ sets player team to delta (tm)
!team5¬  ¬  ¬ moves player to spectators
!admin¬  ¬  ¬ calls admin by showing message and playing rooster.wav
!info¬  ¬  ¬  shows server address and port, next map, time limit, elapsed
¬  ¬  ¬  ¬  ¬  ¬ time, respawn time (normal+max), bonus frequency, and voting %
/start¬  ¬  ¬ ready-system for CW
!players¬  ¬ irc command. shows colorful short info about players on server
« Last Edit: September 15, 2006, 12:55:34 am by rainrider »

Offline zgrabarz

  • Major(1)
  • Posts: 22
Re: ESA v2.01
« Reply #1 on: August 24, 2006, 03:01:56 pm »
it's great BUT i whant somethink like this for LINUX =-> shell is waiting

Offline Karaffka

  • Major(1)
  • Posts: 5
Re: ESA v2.01
« Reply #2 on: August 24, 2006, 03:21:55 pm »
:o :o :o :o :o :o :o :o :o :o :o
Kefear's ARSSE dethroned! Hail to teh new king!

Offline freestyler

  • Soldat Beta Team
  • Camper
  • ******
  • Posts: 326
Re: ESA v2.01
« Reply #3 on: August 24, 2006, 05:16:57 pm »
I'm using it and it works perfectly. gj

Offline Frenchie

  • Camper
  • ***
  • Posts: 358
  • SoldatHQ
Re: ESA v2.01
« Reply #4 on: August 25, 2006, 01:58:55 am »
Wow- so many options
Will try it and post back

Looks real good, good job

--Edit
The scripting engine is so powerful in this Remote Admin Client that anything that can and could be done to the server is here.
Plus runs perfectly in wine.

It will take time to get use to scripting but once understood it is quite straight forward.
Has definitely set a new and extremely high benchmark for Admin Progs. 

A must have for Admins
« Last Edit: August 25, 2006, 03:03:00 am by Frenchie »
Soldat Lobby Avec Players -New Release! - Updated AGAIN!


Offline MofoNofo

  • Veteran
  • *****
  • Posts: 1019
Re: ESA v2.01
« Reply #5 on: August 25, 2006, 05:58:37 am »
Holy crap! Nice job  ;D

Offline EnEsCe

  • Retired Soldat Developer
  • Flamebow Warrior
  • ******
  • Posts: 3101
  • http://enesce.com/
    • [eC] Official Website
Re: ESA v2.01
« Reply #6 on: August 25, 2006, 06:18:39 am »
very nice, but it would be better if you were using REFRESHX ;)

Offline khoacalacan

  • Major(1)
  • Posts: 37
    • XDreamer
Re: ESA v2.01
« Reply #7 on: August 25, 2006, 10:25:37 am »
Awesome! You deserve a cookie.

Offline mar77a

  • Global Moderator
  • Veteran
  • *****
  • Posts: 1295
  • mad
    • random stuffs
Re: ESA v2.01
« Reply #8 on: August 25, 2006, 11:50:52 am »
Very nice, you should make a console version, then port it to linux ;)

Offline Se!kA

  • Soldier
  • **
  • Posts: 100
  • Leet'n'Sweet
    • Se!kA.rox.pl
Re: ESA v2.01
« Reply #9 on: August 25, 2006, 08:46:20 pm »
Yup it really ownz! IMO its best server admin. But lets check it!

Offline Sotija

  • Veteran
  • *****
  • Posts: 1053
  • Sotija
Re: ESA v2.01
« Reply #10 on: August 26, 2006, 01:02:24 am »
Omg i didnt understand anything about this ;D

Offline ManSoft|Warlord

  • Major
  • *
  • Posts: 70
  • Soldat.IDE Creator
Re: ESA v2.01
« Reply #11 on: August 26, 2006, 01:21:09 am »
which language did you use?

Offline FliesLikeABrick

  • Administrator
  • Flamebow Warrior
  • *****
  • Posts: 6142
    • Ultimate 13 Soldat
Re: ESA v2.01
« Reply #12 on: August 26, 2006, 01:33:45 am »
I'm pretty sure he wrote it in delphi, though I could be wrong (aka this is just barely more than a guess)

Offline Leo

  • Soldat Beta Team
  • Veteran
  • ******
  • Posts: 1011
Re: ESA v2.03
« Reply #13 on: August 26, 2006, 10:27:55 am »
Great tool! Hey rainrider, could you pay us a visit at #lrs ? I need your help in this :)

Offline Iq Unlimited

  • Flagrunner
  • ****
  • Posts: 863
  • mr. foobar2000
Re: ESA v2.03
« Reply #14 on: August 26, 2006, 01:26:07 pm »
jesus, its not the system itsself that surprized the hell outta me, its the freaking post!!!!!!



Iq Unlimited

Offline Frenchie

  • Camper
  • ***
  • Posts: 358
  • SoldatHQ
Re: ESA v2.04
« Reply #15 on: August 26, 2006, 04:28:40 pm »
I'm just wondering,
would a function that allows to run an external file be easy to implement?
Soldat Lobby Avec Players -New Release! - Updated AGAIN!


Offline Frenchie

  • Camper
  • ***
  • Posts: 358
  • SoldatHQ
Re: ESA v2.04
« Reply #16 on: August 26, 2006, 09:17:36 pm »
I found that the !admin call can actually close ESA
For me it closed after 7 messages popped up and were ignored

Not much of a problem usually but could become one if you depend on the script and it gets closed up by players trying to get rid of hacker or somesort?

BTW this is my !admin line
Code: [Select]
$if($isequal(%text%,!admin),$playwav(%esadir%\esadata\rooster.wav) $send(/say Admin Requested) $log(%player%sid%name% requests you on %serveraddr%:%serverport% -- $time(h:mm:ss)) $message(%player%sid%name% requests you on %serveraddr%:%serverport% -- $time(h:mm:ss)),)
Soldat Lobby Avec Players -New Release! - Updated AGAIN!


Offline rainrider

  • Soldier
  • **
  • Posts: 145
    • rrhp
Re: ESA v2.04
« Reply #17 on: August 27, 2006, 02:17:07 am »
Hm some bug with $message(). I'll fix it and add $run(progdir).

[edit]
k should work now.
« Last Edit: August 27, 2006, 02:53:14 am by rainrider »

Offline Gold

  • Flagrunner
  • ****
  • Posts: 764
Re: ESA v2.05
« Reply #18 on: August 27, 2006, 04:25:45 am »
jesus, its not the system itsself that surprized the hell outta me, its the freaking post!!!!!!



Iq Unlimited

Agreed, lol your first post is scary, nice program btw

Offline freestyler

  • Soldat Beta Team
  • Camper
  • ******
  • Posts: 326
Re: ESA v2.05
« Reply #19 on: August 27, 2006, 04:33:27 am »
Code: [Select]
autokick majors
$if($isequal($strpos(Major has joined ,%line%),1),$send(/say Sorry, but nick Major is not allowed here.)$send(/kick Major),)

help list with basic commands
$if($isequal(%text%,!help),
  $send(/say !admin    - calls an admin to the server)
  $send(/say !kd       - shows your kd ratio)
  $send(/say !whois X  - shows IP of player no. X)
  $send(/say !team1-5  - sets you to team 1-5)
  $send(/say !info     - info about server),)