1. mickael9
  2. ioq3-urt-custom

Wiki

Clone wiki

ioq3-urt-custom / Home

What is it ?

This is a custom build of ioquake3, an improved Quake3 engine that runs UrbanTerror. It has been customized to run UrbanTerror only, and it includes security fixes and new features.

Feature list

  • Security fixes from http://forums.urbanterror.info/topic/18495-svn-repository-for-iourbanterror-exploit-fixes
  • Some features took from mitsubishi's build (http://www.www0.org/w/Optimized_executable%3b_builds_of_ioq3_engine_for_urt) :
    • 'server is full and server is for low pings /reconnect' workaround (auto-reconnect)
    • preloading of UrT sounds / funstuff
  • Lua scripting (both client & server)
  • CMake build system
  • Cvar-substitution : \$cvar\ is replaced by the cvar value, \$$$...cvar\ can be used for late-evaluation
  • Scripting commands (mostly took from Tremfusion) :
    • if <number1> <operator> <number2> <cmdif> [<cmdelse>]
      where operator can be one of '=', '!=', '<', '<=', '>' '>='
    • math command :
      • math <variableToSet> = <value1> <operator> <value2> (eg math x = 21 * 2)
      • math <variableToSet> <operator> <value1> (eg math x + 42 adds 42 to x)
      • math <variableToSet> ++ (incrementation)
      • math <variableToSet> -- (decrementation)
      • math <variableToSet> ! (binary negation)
      • valid operators are + - * / & |
    • concat <variableToSet> <variable1> ... <variableN> : cvar concatenation
    • strcmp <string1> <operator> <string2> <cmdif> [<cmdelse>]
      where operator can be either = or !=
    • delay <millisec delay>|<framedelay>f <command> (like wait, but asynchronous)
    • loop <command> (wait can be used in loops)
      • Use endloop to stop the loop in the executed command.
      • Example: set i 0 ; loop "if \$$i\ = 42 endloop ; math i ++ ; echo \$$i\ "
    • foreach <command> <arg1> ... <argN> : set "arg" cvar then execute <command> for each argument.
    • stop : clears the execution buffer
  • Passing arguments to exec (eg /exec file arg1 arg2) will set the following cvars :
    • arg_count : the number of arguments
    • arg_all : the concatenation of all arguments
    • arg_0...arg_n-1 : the n arguments
  • Quotes escaping (\" => ")
  • New rcon commands :
    • spoof <player/id> command [args...] : make the player execute this command (for instance /rcon 2 kill will make player 2 kill himself)
      Note that only commands carried over the network can be spoofed that way.
    • /sendcommand <player/id> command [args...] : send a server command to this client, these include :
      • cs <num> <value> : set the configstring <num> to <value>
      • cp <message> : bigtext, shown in the middle of the screen (X has taken the red flag etc.)
      • chat <message> : chat message, shown in the lower part of the screen
      • print <message> : server message, shown in the upper part of the screen
    • forcecvar <player/id> <name> <value> : set the userinfo cvar <name> to <value>
      Example: forcecvar Leet name Noob : will change the nick of the player Leet to Noob
    • teleport :
      • teleport <player/id> : prints the (x, y, z) location of the player
      • teleport <player/id> <x> <y> <z> : teleport the player to (x, y, z)
      • teleport <target player/id> <source player/id> : teleport source player to the location of target player
    • lua_exec <filename>: execute the lua script <filename>
    • lua_eval <expr>... : evaluate the lua expression
  • New client commands for jump servers, enable with sv_allowgoto 1
    A player (identified by GUID) can save it's location on a map which is written in a userlocs.dat file.
    Additionally, a player can use the allowgoto command
    • save : record your location on the map
    • load : go back to the previously saved location
    • allowgoto : toggle whether other players can teleport to you
    • goto <player/id> : go to the player's location, if he has allowed it

Updated