XaniA v0.4.0D
Official Readme
 
   What is Xania
Xania is a sort of a Quake2 Proxy, like Nitro2 or BW-Proxy, that enhances your gameplay with various features, but you dont have to connect through a .exe file, simply connect with Quake2 diretly like you always did and you have all the features of Xania.
 
    Installation
Extract the zip directly in your Quake2 directory and run "Xaniapatch.exe" to patch your Quake2.exe so all future connections will be done via Xania. If you sometimes really want to connect without Xania (no idea why but ... :-) a backup of your original quake2.exe is made, called "quake2-backup.exe".
The disadvantage of this connection method is that you cant connect through a firewall by running a proxy-.exe on that computer - Xania can only be used on the pc where Quake2 is being run.

For upgraders from previous Xania versions below 0.3.2D : You will have to replace the "xania.exe" in Gamespy or Pingtool with the Quake2.exe and your \Quake2\ dir. You can also delete the xania.exe since you wont need it any more.

You may want to reuse your Nitro2 .loc files. Copy them all in the \xania\locfiles dir so Xania can use them. But remember : Xania can read Nitro2 Locs but Nitro2 can not read Xania Locs !
 
    Included Files
\xaniapatch.exe - File to patch your Quake2.exe to automatically connect via Xania
\xania32.dll - Libary needed for Xania to work, it has to bee directly in the quake2 dir
\xania.ini - Xania initialisation file, only needed for custom search pathes to the locfiledir and logfiledir
\xaniam.ini - Model definition file, needed for custom model names in teammsgs and the tooktrigger
\xania\readme.html - This readme
\xania\history.html - Changes done in each release
\xania\locfiles\q2dm1.loc - Example locfile for location marking
\xania\locfiles\q2dm6.loc - Example locfile for location marking
\xania\locfiles\q2dm8.loc - Example locfile for location marking
\xania\xania.cfg - Example Xania setting file - copy it to your baseq2 dir to use it
\xania\xania_alias.cfg - Example Xania alias setting file (for !report aliases ect.) - copy it to your baseq2 dir to use it
 
    Features and usage of Xania
Xania executes the \baseq2\xania.cfg and the \baseq2\xania_alias.cfg every start, where all the settings are saved. Example .cfgs are located in the \xania\ dir. You can edit them manually although use of the integrated menu system with the "Write to Config" feature for the xania.cfg is also possible.

On every start of a map the !map_start alias is executed, and on every map end the !map_end alias, useful for recording every game or making an automatical end-game screenshot (!map_end always has to have a trailing "wait" to work correctly)

    Funnames / Easyfont
Funname/Easyfont usage is the same as in Nitro2 except for the @xyy feature. They work in messages, names, modelnames (xaniam.ini) and centerprintmessages (%.).
#characterthis will color the character, e.g. setting your name to "#Redi#x" would result in a green R, then normal (white) edi and a green x
{}colors any text between { and } white instead of green in say_team messages, but the message reciever must also use Xania to see it white
@(the left end of the regulators used in the quake2 options
@=the middle of the regulators used in the quake2 options
@)the right end of the regulators used in the quake2 options
@athe controller of the regulator
@<the left end of the underline
@-the middle of the underline
@>the right end of the underline
@.a green middle dot
@,a white middle dot (only in names!)
@[a big green [
@]a big green ]
@_a space sign, use it instead of the normal space between grafical characters
@ba filled green block
@ca filled green arrow pointing to the right
@\everything in the message before the $\ will be deleted (even your name)
 
    Menu
Xania has a comfortable built-in menu. You can use it as an easy way to configure Xania. Set it up the way you want, then save your settings to the xania.cfg so they will be used every time with the "Write to Config" feature in the "CFG" submenu.
Navigate through it just like the Battleground, Lithium or CTF menu - by using your inventory keys (invnext, invprev, invuse). Activate the menu by typing or binding ".menu".
 
    Commands - Proxy
All Commands can be either directly passed to Xania with the Q2 console in-game or through CFG files using "say .command"
short
long
explanation
.info.inforeplys the version number as an echo
.echo [on/off].echo [on/off]determines whether replys are printed after commands
.mod [on/off].modified [on/off](de)activates the reply to p_modified proxy querys. Useful when playing on FFA servers
.cl [on/off].clock [on/off](de)activates the display of a simple clock at the in .clp set up coordinates
.clp [xpos,ypos].clockpos [xpos,ypos]sets up the location of the clock if enabled with ".cl". x0 and y0 (=.clp 0,0) would display it on the top left hand side
.clm [high/low].clockmode [high/low]sets up the color of the clock, either in highchars (=green) or in lowchars (=white)
.id [on/off].id [on/off](de)activates identifcation if you point at a player
.idp [xpos,ypos].idpos [xpos,ypos]sets up the location of the identification display if enabled with ".id". x0 and y0 (=.idp 0,0) would display it on the top left hand side
.idm [high/low].idmode [high/low]sets up the color of the identification display, either in highchars (=green) or in lowchars (=white)
.r [name].record [name]record a demo. You can use it e.g. in your !map_start alias to record every game you play. The name can include the following %-tags that will be replaced: %h= hostname of the server, %d= date formatted as [DD MM YY], %t= time foramtted as [HHMM] (no spaces), %m= short map name (q2dm1), %M= long map name (The Edge)
.ar [on/off].autorecord [on/off](de)activates the demo-autorecording feature. This only works in the Battleground MOD so you should switch to .r in combination with !map_start. Demos are saved in the format : "[date]_yourname_yourteamname_enemyteamname_mapname.dm2"
.ae [on/off].autoexecute [on/off](de)activates the automatic execution of map-specific-cfg files (e.g. q2dm1.cfg, ztn2dm3.cfg)
.am [on/off].allowmisc [on/off]determines whether all incoming %tags (%., %!, %s, %S) are being processed
.mc [on/off].messagecommands [on/off]determines whether all incoming AND outgoing % tags (%l, %h ect.) are being processed or directly parsed to the server
.log [filename/off].log [filename/off]lets xania log the quake2 console outputs to [filename] located in your quake2dir at \logs or the path you set up in the xania.ini. If the log already exists Xania will append to it. To stop logging use .log off
 
    Commands - Filter
short
long
explanation
.trails [on/off].trails [on/off](de)activates the rocket and grenade trail filter
.bt [on/off].blastertrail [on/off](de)activates the blaster trail filter
.rt2gt [on/off].chgtrails [on/off]replaces the rockettrail with a grenadetrail
.muzzle [on/off].muzzle [on/off]deletes all muzzleflash effects (similar effect to a silencer, difficult to explain check out for yourself :-)
.ka [on/off].kickangles [on/off]deletes all kickangleeffects (crosshair pushup after railshot or crosshair pushing when being chained)
.ff [on/off].fovfilter [on/off](en)ables the fovfilter. An activated fovfilter prevents the server from forcing you to chang your fov (like in action quake)
.bf [on/off].bloodfilter [on/off]deletes all blood if activated - parental lock for q2 :-)
.se [1/2/3/4/off].explosion [1/2/3/4/off](de)activates the explosionfilter. All q2-explosion effects are converted to : 1= blood, 2= yellow sparks, 3= a small sprite, 4= a teleporter effect
.bl [0-20].bloodlevel [0-20]determines the amount of blood displayed by an explosion if the explosionfilter is set to 1 (blood exlposion)
.rf [1/2/off].railfilter [1/2/off](de)activates the railfilter. All q2-railgun shot effects are converted to : 1= a straight green laser or 2= a grenade trail
.mo [0.00-99.99].modulate [0.00-99.99]sets the amount of gl_modulate to be set after entering the map. A high difference between standard modulate (.smo) and target modulate (.mo) lets players and rockets glow. Usually >50. Turn it off by setting 0.00
.smo [0.00-99.99].smodulate [0.00-99.99]sets the starting amount of gl_modulate before setting it high up to the amount set in .mo. This is usually s.th. around 1. Turn it off by setting 0.00
.nf [on/off].nagfilter [on/off](de)activates the "Battleground nagscreenfilter" to hide the stupid screen when joining a battleground server. If you want to read it afterwards type "motd" to do so
 
    Commands - Teamplay
short
long
explanation
.sf [1/2/3/off].skinfilter [1/2/3/off]sets the skinfilter mode. Off disables it completeley, 1 checks for your teammates and enemys by comparing only the skins (for ctf), 2 checks for them by comparing only the models and for 3 your friend must have the same model and skin that you have (for battleground). Default is 3 (skin+model matching)
.ts [model/skin]/[off].teamskin [off]/[model/skin]sets your teams skin. Use "off" to disable skin overriding for your team. Is still buggy when you spec s.o.
.es [model/skin]/[off].enemyskin [off]/[model/skin]sets the enemys skin. Use "off" to disable skin overrriding for the enemys team.
.sn [health,armor].setneed [health,armor]set the amount of health/armor to use for the glowing braces for %[h] and %[a]
.skm [on/off].skinmapping [on/off](de)activates Xania's skin mapping feature. For an explanation head over to the skin mapping section
 
    Commands - Trigger
short
long
explanation
.st [on/off].soundtrigger [on/off]determines whether soundtriggers (!play or %!) are being processed
.cp [on/off].centerprint [on/off]determines whether centerprints (!print or %.) are being processed
.rp [on/off].report [on/off](de)activates Xania's autoreport feature. You can use it for a teamwide automatical status request. If s.o. sends a message consisiting of "%s" the "!report" command will be executed automatically. If you want that only the %s sender and nobody else recieves the status add a %? at the end of the alias. The request string itself (%s) will be cut out so you can add other text in that teamsay. You can define it e.g. with "alias !report say_team @[ ive got %w and %[h] - {%e enemys} and {%o friends} at {%l} @]%N%?".
Sending %S is the same as %s, except that the alias !fullreport instead of !report is being executed. For compability to older versions messages consisiting only of "!report" will also be intepreted
.rt [on/off].respawntrigger [on/off](de)activates the respawntrigger. If you respawm the "!respawn" command will be automatically executed. You can define it e.g. with "alias !respawn say_team I've respawned at %l, need escort %n%N"
.dt [on/off].deathtrigger [on/off](de)activates the deathtrigger. If you die the "!dead" command will be automatically executed. You can define it e.g. with "alias !dead say_team Position at %l lost - {%e enemys} and {%o friends} are there%N". If you only want to use .ttr and/or .ft you can use "alias !dead wait". You can also build a 'auto-respawn' feature by using alias !dead "wait;+attack;wait;-attack".
.tt [on/off].tooktrigger [on/off](de)activates Xania's tooktrigger. Whenever you pick up a Item marked for the tooktrigger in the xaniam.ini (has a ,1 at the end) the !took alias will be called. Set it up with e.g. "alias !took Took {%i} at %l".
.ft [on/off].flagtrigger [on/off](de)activates Xania's flagtrigger. If you die carrying the flag the "!flaglost" alias will be called instead of "!dead" (if enabled), define it e.g. with "alias !flaglost Lost the flag at %l"
.ttr [on/off].techtrigger [on/off](de)activates Xania's techtrigger. If you die carrying a tech the "!techlost" alias will be called instead of "!dead" (if enabled), define it e.g. with "alias !techlost Lost the %C at %l"
 
    Teamplay messageenhancements
They only work in (team)says. Xania replaces the string (%? or %[?]) with your Health amount (%h) or your location (%l) ect. so teamplay can be coordinated better.
%%gets replaced by % (needed for Battle+CTF internal positions)
%aamount of armor
%[a]amount of armor displayed as [Armortype:Armoramount], if your is armor is below the value set with .setneed (default is 25) it will have glowing braces ([]) around it
%Atype of armor (names definable in the xaniam.ini)
%dlast dying location
%hamount of health
%[h]amount of health displayed as [H:Healthamount], if your is health is below the value set with .setneed (default is 25) it will have glowing braces ([]) around it
%wcurrently selected weapon (names definable in the xaniam.ini)
%mamount of ammo for the currently selected weapon
%Mtype of ammo for the currently selected weapon
%ilast picked-up item using the short name defined in the xaniam.ini
%Ilast picked-up item using the long name defined in the xaniam.ini
%pyour current powerup with its the remaining poweruptime
%Pyour current powerup with the short name defined in the xaniam.ini
%Tname of the CTF-tech you are ponting at (names definable in the xaniam.ini)
%[T]same as "[%T] spotted at [%y]" but you do not have to point at the tech, Xania will report it if there is one lying around in your area
%cyour current CTF-tech
%Cname of the CTF-tech you had last (useful for e.g. lost %C tech at %d)
%ylocation of the item you are pointing at, the item must be defined in the xaniam.ini so it can be pointed at
%Xname of the item you are pointing at, the item must be defined in the xaniam.ini so it can be pointed at
%jname of the last person that entered the server (usage e.g. hi %j)
%rlast reported location
%nsend message only to teammates in your vincinity
%Nhide your own message from yourself
%lyour current position on the map (explained further in the Commands - Marker chapter)
%eamount of enemys in your vincinity, regardless if you can see them or not
%Eamount of enemys you could see from your position. Range is unlimited, as long you can see them
%oamount of teammates in your vincinity, regardless if you can see them or not
%Oamount of teammates you could see from your position. Range is unlimited, as long you can see them
%uposition of where you are pointing at. Reacts on walls, not on objects. As if you would shoot a laser through your crosshair, and the position where it impacts is being reported.
%sautoreport request. Check out Commands - Trigger for additional infos. The old usage via "!report" is still supported
%Sfull autoreport request. Check out Commands - Trigger for additional infos
%![soundfile]teamwide play command. Same as play_team in LMCTF. Play any sound file on the PC of your teammates. Usage : bind x "say_team %!world/xian3.wav Attack %u Noowww !". The %! string itself and the following .wav file itself will not be shown, but any other text will be. This feature requires every one in your team to use Xania and to have set ".st" to "on". The old usage via "!play" is also still supported.
%.[text]teamwide centerprint command. [text] will be centerprinted on your teammates screen - use it for very important messages. You can also use Funnames/Easyfont here. Usage : bind x "say_team %.@[Full #A#T#T#A#C#K to %u !!@]". This feature requires everyone in your team to use Xania and to have set ".cp" to "on". The old usage via "!print" is also still supported.
%@group tag, look below for the explanation
 
    Commands - Message Groups
You can group your team into different message groups. An example would be an offense and a defense CTF team. You can now send messages that only the offense or only the defense team will recieve. You can also have a middle position player that recieves the messages of both groups.
You can set your own group id with .group [char][char][char] or [off] to disable groups. You can be in a maximum of 3 groups at once. You can send to a group by adding "%@[groupid-chars]" anywhere in your team message. You can also adress a maximum of 4 teams.

Example:
say_team %@12Our base has been overrun" - this would send "Our base has been overrun" to everybody in group 1 and 2. Players with group id 3 would not recieve this message, with group id 1 AND 3 they would recieve it.

 
    Commands - Skin mapping
With this feature you can give a player an individual skin, regardless of which skin they have chosen.

A short example: Your whole team has the base skin female/r2blue (using .sf). Now, you can set up that clanmate 1 runs around with a female/r2blue skin where a big "1" is on his back, clanmate 2 a "2" ect. It does not have to be a female/r2blue with a 1, it can be any skin. You can also skin map enemys.
In FFA matches you can e.g. skin map your buddy with a very special skin, so you will always recognize hin.

A limitation although is that players are not allowed to change their name after being 'skin mapped'. If they do so you have to add them again with their new nick.
short
explanation
.skm [on/off](de)activates the whole feature
.skf add [playername/playerid] [skin]lets [playername] run around with skin [skin]. You can also add a player with his player id. You get the ID by typing 'skins' in the console. If s.o. is using funnames this is unfortunately the only option for adding people
.skf del [playername/playerid]deletes [playername] from the skin mapping list
.skf dump [filename]dumps the current list of skin mapped players to [filename]. You can then just copy the contents of it to your autoexec.cfg so these players always get their designated skin. Useful for clans whose players always have the same names, and so they will always have their own special skin
 
    Commands - Marker
Location marker or .loc files let you "cartograph" the map for use with e.g. the %l command. The %l command lets your teammates know where you are - your actual position in the map is beeing looked up by checking for the nearest marker and replying its name. The tighter the net of set markers the more accurate the location is.

Xania creats the map-specific mapname.loc file automatically upon execution of the first .setmarker. You can also use already created Nitro2 Locs. Just copy them in the \xania\locfiles dir (or the custom path you defined in the xania.ini) and let Xania convert them. Important : Xania can read Nitro2 locs but not vice-versa !
short
long
explanation
.sm [markername].setmarker [markername]sets the marker [markername] on your current position
.dm.deletemarkerdeletes the nearest marker
.showmarker.showmarkershows you the nearest marker
 
 
    Serverside blocking of features
Serveradmins have the ability to block several features of Xania by setting the dmflags value. Add the amount below to your current dmflags to deactivate the features.
16777216deactivates the blood filter
33554432deactivates the explosion and trail filter
134217728deactivates the skin filter (team and enemy skin overriding)
268435456deactivates the fov, kick and blend filter
536870912enables the "secure p_modified mode", check out proxy querys/p_modified for explanations
To set instant powerups, deactivated fov filter and a deactivated blood filter you would set your dmflags to 16+268435456+16777216=402653200
 
    Proxy querys
Xania supports just like Nitro2 the proxy querycommands. With them you can check which proxys are used by the players on the server. Simply send a message containing the text to perform the check.
p_versionreports the used proxy type (in this case Xania) and its version with a checksum calculated over the proxy executable
p_dmflagsreports the used dmflags value with a checksum calculated over the serversettings, the dmflags value and the proxy executable
p_wayreports the proxy connection way (from where you are connected) to avoid use with other proxys. Same syntax as in Nitro2
p_modifiedreports if the user is cheating (explained further in the Cheating chapter)
 
    Cheating
If someone uses Xania you can check if he is cheating. If ".modified" is set to "on" recieving a message "p_modified" will force Xania to check if its user is cheating by checking the baseq2 and the mod dir for hacked models, skins and sounds (but no files in the \pics\ folder so you can still use your custom hud), just like the "f_modified" feature in quake1 proxys and then replys a "All OK" if nothing is modified. You can check if s.o. uses a "All OK" say-makro by sending "p_modified +[number]" which will add [number] to the all-ok crc checksum. The 3Fingers PAK is supported and is not considered as a cheat. If you have some hacked files xania will tell you the first 4 hacked files as an echo so you can replace them.
If the server enabled the "secure p_modified mode" the first p_modified request will force a vid_restart to be really sure nobody is cheating. All following requests will not cause a vid_restart and user-forced vid_restarts will be told to the server.
If someone is using a hacked quake2.exe Xania will reply "unknown Quake2.exe" and will not perform any checks. 3DNow users must have the newest version (Build 990204) so Xania can work.
 
    Boring legal stuff
As usual, the autor takes no responsibility for data loss or damage, hardware loss or damage or any other loss or damage caused because of Xania - don't forget: this is still a beta !
But until now nobody complained about Xania killing anything on their PC :-)
You are allowed to copy it as long as : nothing is modified, this .html-readme is included and it is totally free of charge. If you want to publish Xania anywhere my authorisation is required.
 
    Credits

programer/idea/ect.Alexander 'Redix' Reitinger - redix@xania.de
this readme/homepage/ect.Richard 'mp' Lohwasser - mp@xania.de
beta testingOliver 'J@ckal' Rosenthal - jackal@xania.de
beta testingHelmut 'Merlin64' Naughton - merlin64@xania.de
beta testingDaniel 'Stakker' Elsaesser - stakker@xania.de

Direct all questions/comments and especially BUG REPORTS to our support forum of our Homepage or contact support@xania.de
 


Copyright Alexander 'Redix' Reitinger