<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>https://wiki.soldat.pl/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=ExHunter</id>
		<title>Soldat Community Wiki - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="https://wiki.soldat.pl/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=ExHunter"/>
		<link rel="alternate" type="text/html" href="https://wiki.soldat.pl/index.php/Special:Contributions/ExHunter"/>
		<updated>2026-05-26T02:24:13Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>https://wiki.soldat.pl/index.php?title=TActivePlayer&amp;diff=1626</id>
		<title>TActivePlayer</title>
		<link rel="alternate" type="text/html" href="https://wiki.soldat.pl/index.php?title=TActivePlayer&amp;diff=1626"/>
				<updated>2016-03-01T13:22:04Z</updated>
		
		<summary type="html">&lt;p&gt;ExHunter: /* Members */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Inheritance==&lt;br /&gt;
*[[TPlayer]]&lt;br /&gt;
**[[TActivePlayer]]&lt;br /&gt;
**[[TNewPlayer]]&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
Represents an active player. Accessible trough [[TPlayers.Player|Players[]]] array property.&lt;br /&gt;
&lt;br /&gt;
user constructable: '''NO'''&amp;lt;br&amp;gt;&lt;br /&gt;
user destructable: '''NO'''&lt;br /&gt;
&lt;br /&gt;
==Members==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Member declaration !! Access mode !! Inherited !! SS Version&lt;br /&gt;
|-&lt;br /&gt;
| function [[TActivePlayer.Ban|Ban]](Time: Integer; Reason: string): Boolean || align=&amp;quot;center&amp;quot; |  || align=&amp;quot;center&amp;quot; | no&lt;br /&gt;
|-&lt;br /&gt;
| function [[TActivePlayer.Kick|Kick]]: Boolean || align=&amp;quot;center&amp;quot; |  || align=&amp;quot;center&amp;quot; | no&lt;br /&gt;
|-&lt;br /&gt;
| procedure [[TActivePlayer.Say|Say]](Text: string) || align=&amp;quot;center&amp;quot; |  || align=&amp;quot;center&amp;quot; | no&lt;br /&gt;
|-&lt;br /&gt;
| procedure [[TActivePlayer.Damage|Damage]](Shooter: Byte; Damage: Integer) || align=&amp;quot;center&amp;quot; |  || align=&amp;quot;center&amp;quot; | no&lt;br /&gt;
|-&lt;br /&gt;
| procedure [[TActivePlayer.BigText|BigText]](Layer: Byte; Text: string; Delay: Integer; Color: Longint; Scale: Single; X, Y: Integer) || align=&amp;quot;center&amp;quot; |  || align=&amp;quot;center&amp;quot; | no&lt;br /&gt;
|-&lt;br /&gt;
| procedure [[TActivePlayer.ForceWeapon|ForceWeapon]](Primary, Secondary: [[TWeapon]]) || align=&amp;quot;center&amp;quot; |  || align=&amp;quot;center&amp;quot; | no&lt;br /&gt;
|-&lt;br /&gt;
| procedure [[TActivePlayer.ForwardTo|ForwardTo]](TargetIP: string; TargetPort: Word; Message: string) || align=&amp;quot;center&amp;quot; |  || align=&amp;quot;center&amp;quot; | no&lt;br /&gt;
|-&lt;br /&gt;
| procedure [[TActivePlayer.GiveBonus|GiveBonus]](BType: Byte) || align=&amp;quot;center&amp;quot; |  || align=&amp;quot;center&amp;quot; | no&lt;br /&gt;
|-&lt;br /&gt;
| procedure [[TActivePlayer.Move|Move]](X, Y: Single) || align=&amp;quot;center&amp;quot; |  || align=&amp;quot;center&amp;quot; | no&lt;br /&gt;
|-&lt;br /&gt;
| procedure [[TActivePlayer.Tell|Tell]](Text: string) || align=&amp;quot;center&amp;quot; |  || align=&amp;quot;center&amp;quot; | no&lt;br /&gt;
|-&lt;br /&gt;
| procedure [[TActivePlayer.WriteConsole|WriteConsole]](Text: string; Color: Longint) || align=&amp;quot;center&amp;quot; |  || align=&amp;quot;center&amp;quot; | no&lt;br /&gt;
|-&lt;br /&gt;
| procedure [[TActivePlayer.WorldText|WorldText]](Layer: Byte; Text: string; Delay: Integer; Color: Longint; Scale, X, Y: Single) || || || 2.7.8.b1&lt;br /&gt;
|-&lt;br /&gt;
| procedure [[TActivePlayer.SetVelocity|SetVelocity]](VelX, VelY: Single) || || || 2.7.8.b1&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| property [[TPlayer.Name|Name]]: string || align=&amp;quot;center&amp;quot; | R || align=&amp;quot;center&amp;quot; | yes&lt;br /&gt;
|-&lt;br /&gt;
| property [[TPlayer.Health|Health]]: Integer || align=&amp;quot;center&amp;quot; | R || align=&amp;quot;center&amp;quot; | yes&lt;br /&gt;
|-&lt;br /&gt;
| property [[TPlayer.Primary|Primary]]: [[TPlayerWeapon]] || align=&amp;quot;center&amp;quot; | R || align=&amp;quot;center&amp;quot; | yes&lt;br /&gt;
|-&lt;br /&gt;
| property [[TPlayer.Secondary|Secondary]]: [[TPlayerWeapon]] || align=&amp;quot;center&amp;quot; | R || align=&amp;quot;center&amp;quot; | yes&lt;br /&gt;
|-&lt;br /&gt;
| property [[TPlayer.ShirtColor|ShirtColor]]: Longword || align=&amp;quot;center&amp;quot; | R || align=&amp;quot;center&amp;quot; | yes&lt;br /&gt;
|-&lt;br /&gt;
| property [[TPlayer.PantsColor|PantsColor]]: Longword  || align=&amp;quot;center&amp;quot; | R || align=&amp;quot;center&amp;quot; | yes&lt;br /&gt;
|-&lt;br /&gt;
| property [[TPlayer.SkinColor|SkinColor]]: Longword || align=&amp;quot;center&amp;quot; | R || align=&amp;quot;center&amp;quot; | yes&lt;br /&gt;
|-&lt;br /&gt;
| property [[TPlayer.HairColor|HairColor]]: Longword || align=&amp;quot;center&amp;quot; | R || align=&amp;quot;center&amp;quot; | yes&lt;br /&gt;
|-&lt;br /&gt;
| property [[TPlayer.FavouriteWeapon|FavouriteWeapon]]: string || align=&amp;quot;center&amp;quot; | RW || align=&amp;quot;center&amp;quot; | yes&lt;br /&gt;
|-&lt;br /&gt;
| property [[TPlayer.ChosenSecondaryWeapon|ChosenSecondaryWeapon]]: Byte || align=&amp;quot;center&amp;quot; | R || align=&amp;quot;center&amp;quot; | yes&lt;br /&gt;
|-&lt;br /&gt;
| property [[TPlayer.Friend|Friend]]: string || align=&amp;quot;center&amp;quot; | RW || align=&amp;quot;center&amp;quot; | yes&lt;br /&gt;
|-&lt;br /&gt;
| property [[TPlayer.Accuracy|Accuracy]]: Byte || align=&amp;quot;center&amp;quot; | RW || align=&amp;quot;center&amp;quot; | yes&lt;br /&gt;
|-&lt;br /&gt;
| property [[TPlayer.ShootDead|ShootDead]]: Boolean || align=&amp;quot;center&amp;quot; | RW || align=&amp;quot;center&amp;quot; | yes&lt;br /&gt;
|-&lt;br /&gt;
| property [[TPlayer.GrenadeFrequency|GrenadeFrequency]]: Byte || align=&amp;quot;center&amp;quot; | RW || align=&amp;quot;center&amp;quot; | yes&lt;br /&gt;
|-&lt;br /&gt;
| property [[TPlayer.Camping|Camping]]: Boolean || align=&amp;quot;center&amp;quot; | RW || align=&amp;quot;center&amp;quot; | yes&lt;br /&gt;
|-&lt;br /&gt;
| property [[TPlayer.OnStartUse|OnStartUse]]: Byte || align=&amp;quot;center&amp;quot; | RW || align=&amp;quot;center&amp;quot; | yes&lt;br /&gt;
|-&lt;br /&gt;
| property [[TPlayer.HairStyle|HairStyle]]: Byte || align=&amp;quot;center&amp;quot; | R || align=&amp;quot;center&amp;quot; | yes&lt;br /&gt;
|-&lt;br /&gt;
| property [[TPlayer.Headgear|Headgear]]: Byte || align=&amp;quot;center&amp;quot; | R || align=&amp;quot;center&amp;quot; | yes&lt;br /&gt;
|-&lt;br /&gt;
| property [[TPlayer.Chain|Chain]]: Byte || align=&amp;quot;center&amp;quot; | R || align=&amp;quot;center&amp;quot; | yes&lt;br /&gt;
|-&lt;br /&gt;
| property [[TPlayer.ChatFrequency|ChatFrequency]]: Byte || align=&amp;quot;center&amp;quot; | RW || align=&amp;quot;center&amp;quot; | yes&lt;br /&gt;
|-&lt;br /&gt;
| property [[TPlayer.ChatKill|ChatKill]]: string || align=&amp;quot;center&amp;quot; | RW || align=&amp;quot;center&amp;quot; | yes&lt;br /&gt;
|-&lt;br /&gt;
| property [[TPlayer.ChatDead|ChatDead]]: string || align=&amp;quot;center&amp;quot; | RW || align=&amp;quot;center&amp;quot; | yes&lt;br /&gt;
|-&lt;br /&gt;
| property [[TPlayer.ChatLowHealth|ChatLowHealth]]: string || align=&amp;quot;center&amp;quot; | RW || align=&amp;quot;center&amp;quot; | yes&lt;br /&gt;
|-&lt;br /&gt;
| property [[TPlayer.ChatSeeEnemy|ChatSeeEnemy]]: string || align=&amp;quot;center&amp;quot; | RW || align=&amp;quot;center&amp;quot; | yes&lt;br /&gt;
|-&lt;br /&gt;
| property [[TPlayer.ChatWinning|ChatWinning]]: string || align=&amp;quot;center&amp;quot; | RW || align=&amp;quot;center&amp;quot; | yes&lt;br /&gt;
|-&lt;br /&gt;
| property [[TPlayer.Dummy|Dummy]]: Boolean || align=&amp;quot;center&amp;quot; | R || align=&amp;quot;center&amp;quot; | yes&lt;br /&gt;
|-&lt;br /&gt;
| property [[TActivePlayer.ID|ID]]: Byte || align=&amp;quot;center&amp;quot; | R || align=&amp;quot;center&amp;quot; | no&lt;br /&gt;
|-&lt;br /&gt;
| property [[TActivePlayer.Team|Team]]: Byte || align=&amp;quot;center&amp;quot; | RW || align=&amp;quot;center&amp;quot; | yes (modif.)&lt;br /&gt;
|-&lt;br /&gt;
| property [[TActivePlayer.Alive|Alive]]: Boolean || align=&amp;quot;center&amp;quot; | RW || align=&amp;quot;center&amp;quot; | yes (modif.)&lt;br /&gt;
|-&lt;br /&gt;
| property [[TActivePlayer.Kills|Kills]]: Integer || align=&amp;quot;center&amp;quot; | RW || align=&amp;quot;center&amp;quot; | no&lt;br /&gt;
|-&lt;br /&gt;
| property [[TActivePlayer.Deaths|Deaths]]: Integer || align=&amp;quot;center&amp;quot; | R || align=&amp;quot;center&amp;quot; | no&lt;br /&gt;
|-&lt;br /&gt;
| property [[TActivePlayer.Ping|Ping]]: Integer || align=&amp;quot;center&amp;quot; | R || align=&amp;quot;center&amp;quot; | no&lt;br /&gt;
|-&lt;br /&gt;
| property [[TActivePlayer.Active|Active]]: Boolean || align=&amp;quot;center&amp;quot; | R || align=&amp;quot;center&amp;quot; | no&lt;br /&gt;
|-&lt;br /&gt;
| property [[TActivePlayer.IP|IP]]: string || align=&amp;quot;center&amp;quot; | R || align=&amp;quot;center&amp;quot; | no&lt;br /&gt;
|-&lt;br /&gt;
| property [[TActivePlayer.Port|Port]]: Word || align=&amp;quot;center&amp;quot; | R || align=&amp;quot;center&amp;quot; | no&lt;br /&gt;
|-&lt;br /&gt;
| property [[TActivePlayer.VelX|VelX]]: Single || align=&amp;quot;center&amp;quot; | R || align=&amp;quot;center&amp;quot; | no&lt;br /&gt;
|-&lt;br /&gt;
| property [[TActivePlayer.VelY|VelY]]: Single || align=&amp;quot;center&amp;quot; | R || align=&amp;quot;center&amp;quot; | no&lt;br /&gt;
|-&lt;br /&gt;
| property [[TActivePlayer.Muted|Muted]]: Boolean || align=&amp;quot;center&amp;quot; | RW || align=&amp;quot;center&amp;quot; | no&lt;br /&gt;
|-&lt;br /&gt;
| property [[TActivePlayer.Jets|Jets]]: Integer || align=&amp;quot;center&amp;quot; | R || align=&amp;quot;center&amp;quot; | no&lt;br /&gt;
|-&lt;br /&gt;
| property [[TActivePlayer.Grenades|Grenades]]: Byte || align=&amp;quot;center&amp;quot; | R || align=&amp;quot;center&amp;quot; | no&lt;br /&gt;
|-&lt;br /&gt;
| property [[TActivePlayer.X|X]]: Single || align=&amp;quot;center&amp;quot; | R || align=&amp;quot;center&amp;quot; | no&lt;br /&gt;
|-&lt;br /&gt;
| property [[TActivePlayer.Y|Y]]: Single || align=&amp;quot;center&amp;quot; | R || align=&amp;quot;center&amp;quot; | no&lt;br /&gt;
|-&lt;br /&gt;
| property [[TActivePlayer.Flagger|Flagger]]: Boolean || align=&amp;quot;center&amp;quot; | R || align=&amp;quot;center&amp;quot; | no&lt;br /&gt;
|-&lt;br /&gt;
| property [[TActivePlayer.Time|Time]]: Integer || align=&amp;quot;center&amp;quot; | R || align=&amp;quot;center&amp;quot; | no&lt;br /&gt;
|-&lt;br /&gt;
| property [[TActivePlayer.OnGround|OnGround]]: Boolean || align=&amp;quot;center&amp;quot; | R || align=&amp;quot;center&amp;quot; | no&lt;br /&gt;
|-&lt;br /&gt;
| property [[TActivePlayer.Human|Human]]: Boolean || align=&amp;quot;center&amp;quot; | R || align=&amp;quot;center&amp;quot; | no&lt;br /&gt;
|-&lt;br /&gt;
| property [[TActivePlayer.Direction|Direction]]: Shortint || align=&amp;quot;center&amp;quot; | R || align=&amp;quot;center&amp;quot; | no&lt;br /&gt;
|-&lt;br /&gt;
| property [[TActivePlayer.Flags|Flags]]: Byte || align=&amp;quot;center&amp;quot; | R || align=&amp;quot;center&amp;quot; | no&lt;br /&gt;
|-&lt;br /&gt;
| property [[TActivePlayer.HWID|HWID]]: string || align=&amp;quot;center&amp;quot; | R || align=&amp;quot;center&amp;quot; | no&lt;br /&gt;
|-&lt;br /&gt;
| property [[TActivePlayer.IsAdmin|IsAdmin]]: Boolean || align=&amp;quot;center&amp;quot; | RW || align=&amp;quot;center&amp;quot; | no || 2.7.8.b1&lt;br /&gt;
|-&lt;br /&gt;
| property [[TActivePlayer.KeyUp|KeyUp]]: Boolean || align=&amp;quot;center&amp;quot; | RW* || align=&amp;quot;center&amp;quot; | no&lt;br /&gt;
|-&lt;br /&gt;
| property [[TActivePlayer.KeyLeft|KeyLeft]]: Boolean || align=&amp;quot;center&amp;quot; | RW* || align=&amp;quot;center&amp;quot; | no&lt;br /&gt;
|-&lt;br /&gt;
| property [[TActivePlayer.KeyRight|KeyRight]]: Boolean || align=&amp;quot;center&amp;quot; | RW* || align=&amp;quot;center&amp;quot; | no&lt;br /&gt;
|-&lt;br /&gt;
| property [[TActivePlayer.KeyShoot|KeyShoot]]: Boolean || align=&amp;quot;center&amp;quot; | RW* || align=&amp;quot;center&amp;quot; | no&lt;br /&gt;
|-&lt;br /&gt;
| property [[TActivePlayer.KeyJetpack|KeyJetpack]]: Boolean || align=&amp;quot;center&amp;quot; | RW* || align=&amp;quot;center&amp;quot; | no&lt;br /&gt;
|-&lt;br /&gt;
| property [[TActivePlayer.KeyGrenade|KeyGrenade]]: Boolean || align=&amp;quot;center&amp;quot; | RW* || align=&amp;quot;center&amp;quot; | no&lt;br /&gt;
|-&lt;br /&gt;
| property [[TActivePlayer.KeyChangeWeap|KeyChangeWeap]]: Boolean || align=&amp;quot;center&amp;quot; | RW* || align=&amp;quot;center&amp;quot; | no&lt;br /&gt;
|-&lt;br /&gt;
| property [[TActivePlayer.KeyThrow|KeyThrow]]: Boolean || align=&amp;quot;center&amp;quot; | RW* || align=&amp;quot;center&amp;quot; | no&lt;br /&gt;
|-&lt;br /&gt;
| property [[TActivePlayer.KeyReload|KeyReload]]: Boolean || align=&amp;quot;center&amp;quot; | RW* || align=&amp;quot;center&amp;quot; | no&lt;br /&gt;
|-&lt;br /&gt;
| property [[TActivePlayer.KeyCrouch|KeyCrouch]]: Boolean || align=&amp;quot;center&amp;quot; | RW* || align=&amp;quot;center&amp;quot; | no&lt;br /&gt;
|-&lt;br /&gt;
| property [[TActivePlayer.KeyProne|KeyProne]]: Boolean || align=&amp;quot;center&amp;quot; | RW* || align=&amp;quot;center&amp;quot; | no&lt;br /&gt;
|-&lt;br /&gt;
| property [[TActivePlayer.WeaponActive|WeaponActive]][ID: Byte]: Boolean || align=&amp;quot;center&amp;quot; | W || align=&amp;quot;center&amp;quot; | no&lt;br /&gt;
|-&lt;br /&gt;
| property [[TActivePlayer.OnFlagGrab|OnFlagGrab]]: [[TOnFlagGrabEvent]] || align=&amp;quot;center&amp;quot; | RW || align=&amp;quot;center&amp;quot; | no&lt;br /&gt;
|-&lt;br /&gt;
| property [[TActivePlayer.OnFlagReturn|OnFlagReturn]]: [[TOnFlagReturnEvent]] || align=&amp;quot;center&amp;quot; | RW || align=&amp;quot;center&amp;quot; | no&lt;br /&gt;
|-&lt;br /&gt;
| property [[TActivePlayer.OnFlagScore|OnFlagScore]]: [[TOnFlagScoreEvent]] || align=&amp;quot;center&amp;quot; | RW || align=&amp;quot;center&amp;quot; | no&lt;br /&gt;
|-&lt;br /&gt;
| property [[TActivePlayer.OnBeforeRespawn|OnBeforeRespawn]]: [[TOnBeforeRespawnEvent]] || align=&amp;quot;center&amp;quot; | RW || align=&amp;quot;center&amp;quot; | no&lt;br /&gt;
|-&lt;br /&gt;
| property [[TActivePlayer.OnAfterRespawn|OnAfterRespawn]]: [[TOnAfterRespawnEvent]] || align=&amp;quot;center&amp;quot; | RW || align=&amp;quot;center&amp;quot; | no&lt;br /&gt;
|-&lt;br /&gt;
| property [[TActivePlayer.OnDamage|OnDamage]]: [[TOnDamageEvent]] || align=&amp;quot;center&amp;quot; | RW || align=&amp;quot;center&amp;quot; | no&lt;br /&gt;
|-&lt;br /&gt;
| property [[TActivePlayer.OnKill|OnKill]]: [[TOnKillEvent]] || align=&amp;quot;center&amp;quot; | RW || align=&amp;quot;center&amp;quot; | no&lt;br /&gt;
|-&lt;br /&gt;
| property [[TActivePlayer.OnWeaponChange|OnWeaponChange]]: [[TOnWeaponChangeEvent]] || align=&amp;quot;center&amp;quot; | RW || align=&amp;quot;center&amp;quot; | no&lt;br /&gt;
|-&lt;br /&gt;
| property [[TActivePlayer.OnVoteMapStart|OnVoteMapStart]]: [[TOnVoteMapStartEvent]] || align=&amp;quot;center&amp;quot; | RW || align=&amp;quot;center&amp;quot; | no&lt;br /&gt;
|-&lt;br /&gt;
| property [[TActivePlayer.OnVoteKickStart|OnVoteKickStart]]: [[TOnVoteKickStartEvent]] || align=&amp;quot;center&amp;quot; | RW || align=&amp;quot;center&amp;quot; | no&lt;br /&gt;
|-&lt;br /&gt;
| property [[TActivePlayer.OnVoteMap|OnVoteMap]]: [[TOnVoteMapEvent]] || align=&amp;quot;center&amp;quot; | RW || align=&amp;quot;center&amp;quot; | no&lt;br /&gt;
|-&lt;br /&gt;
| property [[TActivePlayer.OnVoteKick|OnVoteKick]]: [[TOnVoteKickEvent]] || align=&amp;quot;center&amp;quot; | RW || align=&amp;quot;center&amp;quot; | no&lt;br /&gt;
|-&lt;br /&gt;
| property [[TActivePlayer.OnSpeak|OnSpeak]]: [[TOnSpeakEvent]] || align=&amp;quot;center&amp;quot; | RW || align=&amp;quot;center&amp;quot; | no&lt;br /&gt;
|-&lt;br /&gt;
| property [[TActivePlayer.OnCommand|OnCommand]]: [[TOnCommandEvent]] || align=&amp;quot;center&amp;quot; | RW || align=&amp;quot;center&amp;quot; | no&lt;br /&gt;
|-&lt;br /&gt;
| property [[TActivePlayer.OnKitPickup|OnKitPickup]]: [[TOnKitPickupEvent]] || align=&amp;quot;center&amp;quot; | RW || align=&amp;quot;center&amp;quot; | no || 2.7.8.b1&lt;br /&gt;
|-&lt;br /&gt;
| property [[TActivePlayer.OnFlagDrop|OnFlagDrop]]: [[TOnFlagDropEvent]] || align=&amp;quot;center&amp;quot; | RW || align=&amp;quot;center&amp;quot; | no || 2.7.8.b1&lt;br /&gt;
|}&lt;br /&gt;
'''Note''': writing properties marked with &amp;quot;RW*&amp;quot; affects only bots.&lt;br /&gt;
&lt;br /&gt;
[[Category:Classes]][[Category:TPlayer]]&lt;/div&gt;</summary>
		<author><name>ExHunter</name></author>	</entry>

	<entry>
		<id>https://wiki.soldat.pl/index.php?title=TMap.Objects&amp;diff=1600</id>
		<title>TMap.Objects</title>
		<link rel="alternate" type="text/html" href="https://wiki.soldat.pl/index.php?title=TMap.Objects&amp;diff=1600"/>
				<updated>2015-03-02T02:07:19Z</updated>
		
		<summary type="html">&lt;p&gt;ExHunter: /* Description */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; '''property Objects[ID: Byte]: [[TActiveMapObject]]'''&lt;br /&gt;
  Access mode: R&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
Array of [[TActiveMapObject]], like medkits, bonuses, flags or nades.&amp;lt;br&amp;gt; &lt;br /&gt;
'''Note: it's an array[1..90], NOT [0..90]. Calling Objects[0] will cause an error'''&lt;br /&gt;
&lt;br /&gt;
[[Category:TMap]]&lt;/div&gt;</summary>
		<author><name>ExHunter</name></author>	</entry>

	<entry>
		<id>https://wiki.soldat.pl/index.php?title=TMapObject.Style&amp;diff=1599</id>
		<title>TMapObject.Style</title>
		<link rel="alternate" type="text/html" href="https://wiki.soldat.pl/index.php?title=TMapObject.Style&amp;diff=1599"/>
				<updated>2015-01-18T00:21:55Z</updated>
		
		<summary type="html">&lt;p&gt;ExHunter: /* Description */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; '''''property Style: Integer'''''&lt;br /&gt;
  Access mode: R&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
Number representing MapObject's style.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
 ! '''Style''' || '''Description'''&lt;br /&gt;
 |-&lt;br /&gt;
 | 1 || Alpha Flag&lt;br /&gt;
 |-&lt;br /&gt;
 | 2 || Bravo Flag&lt;br /&gt;
 |-&lt;br /&gt;
 | 3 || Point Match Flag&lt;br /&gt;
 |-&lt;br /&gt;
 | 4 || USSOCOM&lt;br /&gt;
 |-&lt;br /&gt;
 | 5 || Desert Eagle&lt;br /&gt;
 |-&lt;br /&gt;
 | 6 || HK MP5&lt;br /&gt;
 |-&lt;br /&gt;
 | 7 || AK 74&lt;br /&gt;
 |-&lt;br /&gt;
 | 8 || Steyr AUG&lt;br /&gt;
 |-&lt;br /&gt;
 | 9 || Spas 12&lt;br /&gt;
 |-&lt;br /&gt;
 | 10 || Ruger77&lt;br /&gt;
 |-&lt;br /&gt;
 | 11 || M79&lt;br /&gt;
 |-&lt;br /&gt;
 | 12 || Barrett M82A1&lt;br /&gt;
 |-&lt;br /&gt;
 | 13 || Minimi&lt;br /&gt;
 |-&lt;br /&gt;
 | 14 || Minigun&lt;br /&gt;
 |-&lt;br /&gt;
 | 15 || Rambo Bow&lt;br /&gt;
 |-&lt;br /&gt;
 | 16 || Medical Kit&lt;br /&gt;
 |-&lt;br /&gt;
 | 17 || Grenade Kit&lt;br /&gt;
 |-&lt;br /&gt;
 | 18 || Flamer Kit&lt;br /&gt;
 |-&lt;br /&gt;
 | 19 || Predator Kit&lt;br /&gt;
 |-&lt;br /&gt;
 | 20 || Vest Kit&lt;br /&gt;
 |-&lt;br /&gt;
 | 21 || Beserk Kit&lt;br /&gt;
 |-&lt;br /&gt;
 | 22 || Cluster Kit&lt;br /&gt;
 |-&lt;br /&gt;
 | 23 || Parachute&lt;br /&gt;
 |-&lt;br /&gt;
 | 24 || Combat Knife&lt;br /&gt;
 |-&lt;br /&gt;
 | 25 || Chainsaw&lt;br /&gt;
 |-&lt;br /&gt;
 | 26 || LAW&lt;br /&gt;
 |-&lt;br /&gt;
 | 27 || Stationary Gun&lt;br /&gt;
 |-&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
[[Category:TMapObject]]&lt;/div&gt;</summary>
		<author><name>ExHunter</name></author>	</entry>

	<entry>
		<id>https://wiki.soldat.pl/index.php?title=TActiveMapBullet.Style&amp;diff=1598</id>
		<title>TActiveMapBullet.Style</title>
		<link rel="alternate" type="text/html" href="https://wiki.soldat.pl/index.php?title=TActiveMapBullet.Style&amp;diff=1598"/>
				<updated>2015-01-17T14:53:51Z</updated>
		
		<summary type="html">&lt;p&gt;ExHunter: /* Description */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Description==&lt;br /&gt;
TActiveMapBullet Styles. &lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|-&lt;br /&gt;
! ID&lt;br /&gt;
! Weapon&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Socom&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Deagles&lt;br /&gt;
|-&lt;br /&gt;
| 2 || HK MP5&lt;br /&gt;
|-&lt;br /&gt;
| 3 || AK 74&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Steyr&lt;br /&gt;
|-&lt;br /&gt;
| 5 || Spas&lt;br /&gt;
|-&lt;br /&gt;
| 6 || Ruger&lt;br /&gt;
|-&lt;br /&gt;
| 7 || M79&lt;br /&gt;
|-&lt;br /&gt;
| 8 || Barret&lt;br /&gt;
|-&lt;br /&gt;
| 9 || Minimi&lt;br /&gt;
|-&lt;br /&gt;
| 10 || Minigun&lt;br /&gt;
|-&lt;br /&gt;
| 11 || Knife&lt;br /&gt;
|-&lt;br /&gt;
| 12 || Chainsaw&lt;br /&gt;
|-&lt;br /&gt;
| 13 || LAW&lt;br /&gt;
|-&lt;br /&gt;
| 14 || Flamer&lt;br /&gt;
|-&lt;br /&gt;
| 15 || Bow&lt;br /&gt;
|-&lt;br /&gt;
| 16 || Flame Bow&lt;br /&gt;
|-&lt;br /&gt;
| 30 || Stationary Gun&lt;br /&gt;
|-&lt;br /&gt;
| 50 || Grenade&lt;br /&gt;
|-&lt;br /&gt;
| 51 || Clustergrenade&lt;br /&gt;
|-&lt;br /&gt;
| 52 || Cluster&lt;br /&gt;
|-&lt;br /&gt;
| 53 || Thrownknife&lt;br /&gt;
|-&lt;br /&gt;
| 255 || Hands&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;/div&gt;</summary>
		<author><name>ExHunter</name></author>	</entry>

	<entry>
		<id>https://wiki.soldat.pl/index.php?title=TActiveMapBullet.Style&amp;diff=1597</id>
		<title>TActiveMapBullet.Style</title>
		<link rel="alternate" type="text/html" href="https://wiki.soldat.pl/index.php?title=TActiveMapBullet.Style&amp;diff=1597"/>
				<updated>2015-01-17T14:53:15Z</updated>
		
		<summary type="html">&lt;p&gt;ExHunter: Created page with &amp;quot;==Description== TActiveMapBullet Styles.  {| class=&amp;quot;wikitable&amp;quot;  |- ! ID ! Weapon |- | 0 || Socom |- | 1 || Deagles |- | 2 || HK MP5 |- | 3 || AK 74 |- | 4 || Steyr |- | 5 || S...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Description==&lt;br /&gt;
TActiveMapBullet Styles. &lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|-&lt;br /&gt;
! ID&lt;br /&gt;
! Weapon&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Socom&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Deagles&lt;br /&gt;
|-&lt;br /&gt;
| 2 || HK MP5&lt;br /&gt;
|-&lt;br /&gt;
| 3 || AK 74&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Steyr&lt;br /&gt;
|-&lt;br /&gt;
| 5 || Spas&lt;br /&gt;
|-&lt;br /&gt;
| 6 || Ruger&lt;br /&gt;
|-&lt;br /&gt;
| 7 || M79&lt;br /&gt;
|-&lt;br /&gt;
| 8 || Barret&lt;br /&gt;
|-&lt;br /&gt;
| 9 || Minimi&lt;br /&gt;
|-&lt;br /&gt;
| 10 || Minigun&lt;br /&gt;
|-&lt;br /&gt;
| 11 || Knife&lt;br /&gt;
|-&lt;br /&gt;
| 12 || Chainsaw&lt;br /&gt;
|-&lt;br /&gt;
| 13 || LAW&lt;br /&gt;
|-&lt;br /&gt;
| 14 || Flamer&lt;br /&gt;
|-&lt;br /&gt;
| 15 || Bow&lt;br /&gt;
|-&lt;br /&gt;
| 16 || Flame Bow&lt;br /&gt;
|-&lt;br /&gt;
| 30 || Stationary Gun&lt;br /&gt;
|-&lt;br /&gt;
| 50 || Grenade&lt;br /&gt;
|-&lt;br /&gt;
| 51 || Clustergrenade&lt;br /&gt;
|-&lt;br /&gt;
| 52 || Cluster&lt;br /&gt;
|-&lt;br /&gt;
| 53 || Thrownknife&lt;br /&gt;
|-&lt;br /&gt;
| 255 || Hands&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
[[Category:TActiveMapBullet]]&lt;/div&gt;</summary>
		<author><name>ExHunter</name></author>	</entry>

	<entry>
		<id>https://wiki.soldat.pl/index.php?title=TGame.StartVoteMap&amp;diff=1596</id>
		<title>TGame.StartVoteMap</title>
		<link rel="alternate" type="text/html" href="https://wiki.soldat.pl/index.php?title=TGame.StartVoteMap&amp;diff=1596"/>
				<updated>2014-11-24T12:36:47Z</updated>
		
		<summary type="html">&lt;p&gt;ExHunter: /* Description */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; '''''procedure StartVoteMap(Name: string)'''''&lt;br /&gt;
  Name: Name of the map to vote&lt;br /&gt;
==Description==&lt;br /&gt;
Starts a vote for target map.&amp;lt;br&amp;gt;&lt;br /&gt;
Note that this will NOT trigger TActivePlayer.OnVoteMapStart&lt;br /&gt;
&lt;br /&gt;
==Example==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
Game.StartVoteMap('ctf_Laos');&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:TGame]]&lt;/div&gt;</summary>
		<author><name>ExHunter</name></author>	</entry>

	<entry>
		<id>https://wiki.soldat.pl/index.php?title=TGame.StartVoteKick&amp;diff=1595</id>
		<title>TGame.StartVoteKick</title>
		<link rel="alternate" type="text/html" href="https://wiki.soldat.pl/index.php?title=TGame.StartVoteKick&amp;diff=1595"/>
				<updated>2014-11-24T12:36:05Z</updated>
		
		<summary type="html">&lt;p&gt;ExHunter: /* Description */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; '''''procedure StartVoteKick(ID: Byte; Reason: string)'''''&lt;br /&gt;
  ID: ID of a voted player&lt;br /&gt;
  Reason: votekick reason&lt;br /&gt;
==Description==&lt;br /&gt;
Starts a vote against target player ID. 'Reason' will be displayed as the vote's reason.&amp;lt;br&amp;gt;&lt;br /&gt;
Note that this will NOT trigger TActivePlayer.OnVoteKickStart!&lt;br /&gt;
&lt;br /&gt;
==Example==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
Game.StartVoteKick(1,'Spamming');&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:TGame]]&lt;/div&gt;</summary>
		<author><name>ExHunter</name></author>	</entry>

	<entry>
		<id>https://wiki.soldat.pl/index.php?title=TOnDamageEvent&amp;diff=1594</id>
		<title>TOnDamageEvent</title>
		<link rel="alternate" type="text/html" href="https://wiki.soldat.pl/index.php?title=TOnDamageEvent&amp;diff=1594"/>
				<updated>2014-10-26T22:39:45Z</updated>
		
		<summary type="html">&lt;p&gt;ExHunter: /* Declaration */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Description==&lt;br /&gt;
Type used by [[TActivePlayer.OnDamage]] as an event handler type.&lt;br /&gt;
&lt;br /&gt;
==Declaration==&lt;br /&gt;
&lt;br /&gt;
 function (Shooter, Victim: [[TActivePlayer]]; Damage: Integer; BulletId: Byte): Integer&lt;br /&gt;
  Shooter: player dealing damage&lt;br /&gt;
  Victim: player recieving damage&lt;br /&gt;
  Damage: amount of damage (negative values heal the target)&lt;br /&gt;
  BulletId: [[TActiveMapBullet]].ID object that dealt the damage (if it's not been a bullet, then this parameter will result in a 255, which is not a valid BulletId&lt;br /&gt;
&lt;br /&gt;
[[Category:Types]]&lt;/div&gt;</summary>
		<author><name>ExHunter</name></author>	</entry>

	<entry>
		<id>https://wiki.soldat.pl/index.php?title=TOnDamageEvent&amp;diff=1593</id>
		<title>TOnDamageEvent</title>
		<link rel="alternate" type="text/html" href="https://wiki.soldat.pl/index.php?title=TOnDamageEvent&amp;diff=1593"/>
				<updated>2014-10-26T22:39:27Z</updated>
		
		<summary type="html">&lt;p&gt;ExHunter: /* Declaration */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Description==&lt;br /&gt;
Type used by [[TActivePlayer.OnDamage]] as an event handler type.&lt;br /&gt;
&lt;br /&gt;
==Declaration==&lt;br /&gt;
&lt;br /&gt;
 function (Shooter, Victim: [[TActivePlayer]]; Damage: Integer; BulletId: Byte): Integer&lt;br /&gt;
  Shooter: player dealing damage&lt;br /&gt;
  Victim: player recieving damage&lt;br /&gt;
  Damage: amount of damage (negative values heal the target)&lt;br /&gt;
  BulletId: [[TActiveMapBullet.ID]] object that dealt the damage (if it's not been a bullet, then this parameter will result in a 255, which is not a valid BulletId&lt;br /&gt;
&lt;br /&gt;
[[Category:Types]]&lt;/div&gt;</summary>
		<author><name>ExHunter</name></author>	</entry>

	<entry>
		<id>https://wiki.soldat.pl/index.php?title=TOnDamageEvent&amp;diff=1592</id>
		<title>TOnDamageEvent</title>
		<link rel="alternate" type="text/html" href="https://wiki.soldat.pl/index.php?title=TOnDamageEvent&amp;diff=1592"/>
				<updated>2014-10-26T22:38:02Z</updated>
		
		<summary type="html">&lt;p&gt;ExHunter: /* Declaration */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Description==&lt;br /&gt;
Type used by [[TActivePlayer.OnDamage]] as an event handler type.&lt;br /&gt;
&lt;br /&gt;
==Declaration==&lt;br /&gt;
&lt;br /&gt;
 function (Shooter, Victim: [[TActivePlayer]]; Damage: Integer; BulletId: Byte): Integer&lt;br /&gt;
  Shooter: player dealing damage&lt;br /&gt;
  Victim: player recieving damage&lt;br /&gt;
  Damage: amount of damage (negative values heal the target)&lt;br /&gt;
  Bullet: [[TActiveMapBullet]] object that dealt the damage&lt;br /&gt;
&lt;br /&gt;
[[Category:Types]]&lt;/div&gt;</summary>
		<author><name>ExHunter</name></author>	</entry>

	<entry>
		<id>https://wiki.soldat.pl/index.php?title=TActivePlayer.OnDamage&amp;diff=1591</id>
		<title>TActivePlayer.OnDamage</title>
		<link rel="alternate" type="text/html" href="https://wiki.soldat.pl/index.php?title=TActivePlayer.OnDamage&amp;diff=1591"/>
				<updated>2014-10-26T22:37:35Z</updated>
		
		<summary type="html">&lt;p&gt;ExHunter: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; '''''property OnDamage'''''&lt;br /&gt;
  Access mode: RW&lt;br /&gt;
  Event handler type: [[TOnDamageEvent]]&lt;br /&gt;
  Event handler declaration: function ('''Shooter''', '''Victim''': TActivePlayer; '''Damage''': Integer; '''BulletId''': Byte): Integer&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
Event property called when a player is hurt, whether from a killing poly, bullet or command.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Example==&lt;br /&gt;
Example ignores all damage dealt, players become invincible.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
function OnDamageZero(Shooter, Victim: TActivePlayer; Damage: Integer; BulletId: Byte): Integer&lt;br /&gt;
begin&lt;br /&gt;
  Result := 0;&lt;br /&gt;
end;&lt;br /&gt;
&lt;br /&gt;
var &lt;br /&gt;
  i: Byte;&lt;br /&gt;
begin&lt;br /&gt;
  for i:=1 to 32 do&lt;br /&gt;
    Players[i].OnDamage := @OnDamageZero;&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:TActivePlayer]][[Category:Events]]&lt;/div&gt;</summary>
		<author><name>ExHunter</name></author>	</entry>

	<entry>
		<id>https://wiki.soldat.pl/index.php?title=TActivePlayer.OnKill&amp;diff=1590</id>
		<title>TActivePlayer.OnKill</title>
		<link rel="alternate" type="text/html" href="https://wiki.soldat.pl/index.php?title=TActivePlayer.OnKill&amp;diff=1590"/>
				<updated>2014-10-26T22:36:47Z</updated>
		
		<summary type="html">&lt;p&gt;ExHunter: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; '''''property OnKill'''''&lt;br /&gt;
  Access mode: RW&lt;br /&gt;
  Event handler type: [[TOnKillEvent]]&lt;br /&gt;
  Event handler declaration: procedure (Killer, Victim: [[TActivePlayer]]; BulletId: Byte);&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
{{test}}&lt;br /&gt;
Event property called when a player is being killed.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
==Example==&lt;br /&gt;
{{expand|example}}&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:TActivePlayer]][[Category:Events]]&lt;/div&gt;</summary>
		<author><name>ExHunter</name></author>	</entry>

	<entry>
		<id>https://wiki.soldat.pl/index.php?title=TOnKillEvent&amp;diff=1589</id>
		<title>TOnKillEvent</title>
		<link rel="alternate" type="text/html" href="https://wiki.soldat.pl/index.php?title=TOnKillEvent&amp;diff=1589"/>
				<updated>2014-10-26T22:36:28Z</updated>
		
		<summary type="html">&lt;p&gt;ExHunter: /* Declaration */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Description==&lt;br /&gt;
Type used by [[TActivePlayer.OnKill]] as an event handler type.&lt;br /&gt;
&lt;br /&gt;
==Declaration==&lt;br /&gt;
&lt;br /&gt;
 procedure (Killer, Victim: [[TActivePlayer]]; BulletId: Byte);&lt;br /&gt;
  Killer: player killing&lt;br /&gt;
  Victim: player being killed&lt;br /&gt;
  Bullet: [[TActiveMapBullet]] object that killed Victim&lt;br /&gt;
&lt;br /&gt;
[[Category:Types]]&lt;/div&gt;</summary>
		<author><name>ExHunter</name></author>	</entry>

	<entry>
		<id>https://wiki.soldat.pl/index.php?title=TMap.Bullets&amp;diff=1579</id>
		<title>TMap.Bullets</title>
		<link rel="alternate" type="text/html" href="https://wiki.soldat.pl/index.php?title=TMap.Bullets&amp;diff=1579"/>
				<updated>2014-10-06T21:48:46Z</updated>
		
		<summary type="html">&lt;p&gt;ExHunter: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; '''property Bullets[ID: Byte]: [[TActiveMapBullet]]'''&lt;br /&gt;
  Access mode: R&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
Array of [[TActiveMapBullet]], like M79 grenades or spas pellets.&amp;lt;br&amp;gt; &lt;br /&gt;
'''Note: it's an array[1..254], NOT [0..255]. Calling Bullets[0] or Bullets[255] will cause an error'''&lt;br /&gt;
&lt;br /&gt;
[[Category:TMap]]&lt;/div&gt;</summary>
		<author><name>ExHunter</name></author>	</entry>

	<entry>
		<id>https://wiki.soldat.pl/index.php?title=TWeapon.WType&amp;diff=1578</id>
		<title>TWeapon.WType</title>
		<link rel="alternate" type="text/html" href="https://wiki.soldat.pl/index.php?title=TWeapon.WType&amp;diff=1578"/>
				<updated>2014-10-06T21:45:13Z</updated>
		
		<summary type="html">&lt;p&gt;ExHunter: /* Description */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; '''''property WType: Byte'''''&lt;br /&gt;
  Access mode: R&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
Weapon ID. &lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|-&lt;br /&gt;
! ID&lt;br /&gt;
! Weapon&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Socom&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Deagles&lt;br /&gt;
|-&lt;br /&gt;
| 2 || HK MP5&lt;br /&gt;
|-&lt;br /&gt;
| 3 || AK 74&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Steyr&lt;br /&gt;
|-&lt;br /&gt;
| 5 || Spas&lt;br /&gt;
|-&lt;br /&gt;
| 6 || Ruger&lt;br /&gt;
|-&lt;br /&gt;
| 7 || M79&lt;br /&gt;
|-&lt;br /&gt;
| 8 || Barret&lt;br /&gt;
|-&lt;br /&gt;
| 9 || Minimi&lt;br /&gt;
|-&lt;br /&gt;
| 10 || Minigun&lt;br /&gt;
|-&lt;br /&gt;
| 11 || Knife&lt;br /&gt;
|-&lt;br /&gt;
| 12 || Chainsaw&lt;br /&gt;
|-&lt;br /&gt;
| 13 || LAW&lt;br /&gt;
|-&lt;br /&gt;
| 14 || Flamer&lt;br /&gt;
|-&lt;br /&gt;
| 15 || Bow&lt;br /&gt;
|-&lt;br /&gt;
| 16 || Flame Bow&lt;br /&gt;
|-&lt;br /&gt;
| 255 || Hands&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
[[Category:TWeapon]]&lt;/div&gt;</summary>
		<author><name>ExHunter</name></author>	</entry>

	<entry>
		<id>https://wiki.soldat.pl/index.php?title=TWeapon.WType&amp;diff=1577</id>
		<title>TWeapon.WType</title>
		<link rel="alternate" type="text/html" href="https://wiki.soldat.pl/index.php?title=TWeapon.WType&amp;diff=1577"/>
				<updated>2014-10-06T21:44:46Z</updated>
		
		<summary type="html">&lt;p&gt;ExHunter: /* Description */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; '''''property WType: Byte'''''&lt;br /&gt;
  Access mode: R&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
Weapon ID. &lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|-&lt;br /&gt;
! ID&lt;br /&gt;
! Weapon&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Socom&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Deagles&lt;br /&gt;
|-&lt;br /&gt;
| 2 || HK MP5&lt;br /&gt;
|-&lt;br /&gt;
| 3 || AK 74&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Steyr&lt;br /&gt;
|-&lt;br /&gt;
| 5 || Spas&lt;br /&gt;
|-&lt;br /&gt;
| 6 || Ruger&lt;br /&gt;
|-&lt;br /&gt;
| 7 || M79&lt;br /&gt;
|-&lt;br /&gt;
| 8 || Barret&lt;br /&gt;
|-&lt;br /&gt;
| 9 || Minimi&lt;br /&gt;
|-&lt;br /&gt;
| 10 || Minigun&lt;br /&gt;
|-&lt;br /&gt;
| 11 || Knife&lt;br /&gt;
|-&lt;br /&gt;
| 12 || Chainsaw&lt;br /&gt;
|-&lt;br /&gt;
| 13 || LAW&lt;br /&gt;
|-&lt;br /&gt;
| 14 || Flamer&lt;br /&gt;
|-&lt;br /&gt;
| 15 || Bow&lt;br /&gt;
|-&lt;br /&gt;
| 16 || Flame Bow&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
[[Category:TWeapon]]&lt;/div&gt;</summary>
		<author><name>ExHunter</name></author>	</entry>

	<entry>
		<id>https://wiki.soldat.pl/index.php?title=TMap.Bullets&amp;diff=1569</id>
		<title>TMap.Bullets</title>
		<link rel="alternate" type="text/html" href="https://wiki.soldat.pl/index.php?title=TMap.Bullets&amp;diff=1569"/>
				<updated>2014-10-04T20:48:48Z</updated>
		
		<summary type="html">&lt;p&gt;ExHunter: Created page with &amp;quot;==Description== Array of TActiveMapBullet, like M79 grenades or spas pellets.&amp;lt;br&amp;gt;  '''Note: it's an array[1..254], NOT [0..255]. Calling Bullets[0] or Bullets[255] will ca...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Description==&lt;br /&gt;
Array of [[TActiveMapBullet]], like M79 grenades or spas pellets.&amp;lt;br&amp;gt; &lt;br /&gt;
'''Note: it's an array[1..254], NOT [0..255]. Calling Bullets[0] or Bullets[255] will cause an error'''&lt;br /&gt;
&lt;br /&gt;
[[Category:TMap]]&lt;/div&gt;</summary>
		<author><name>ExHunter</name></author>	</entry>

	<entry>
		<id>https://wiki.soldat.pl/index.php?title=TActiveMapBullet&amp;diff=1568</id>
		<title>TActiveMapBullet</title>
		<link rel="alternate" type="text/html" href="https://wiki.soldat.pl/index.php?title=TActiveMapBullet&amp;diff=1568"/>
				<updated>2014-10-04T20:46:41Z</updated>
		
		<summary type="html">&lt;p&gt;ExHunter: /* Members */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Inheritance==&lt;br /&gt;
*[[TActiveMapBullet]]&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
Holds information about bullets currently used on the [[TMap|Map]]&lt;br /&gt;
&lt;br /&gt;
 '''This class is assigned to global variable &amp;quot;[[TMap.Bullets|Map.Bullets]]&amp;quot;'''&lt;br /&gt;
&lt;br /&gt;
 user constructable: '''NO'''&lt;br /&gt;
 user destructable: '''NO'''&lt;br /&gt;
&lt;br /&gt;
==Members==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|-&lt;br /&gt;
! Member declaration !! Access mode !! SS Version&lt;br /&gt;
|-&lt;br /&gt;
| function [[TActiveMapBullet.GetOwnerWeaponId|GetOwnerWeaponId]]: Integer&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |&lt;br /&gt;
| 2.7.8.b1&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| property [[TActiveMapBullet.ID|ID]]: Byte&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | R&lt;br /&gt;
| 2.7.8.b1&lt;br /&gt;
|-&lt;br /&gt;
| property [[TActiveMapBullet.Active|Active]]: Boolean&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | R&lt;br /&gt;
| 2.7.8.b1&lt;br /&gt;
|-&lt;br /&gt;
| property [[TActiveMapBullet.Style|Style]]: Byte&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | R&lt;br /&gt;
| 2.7.8.b1&lt;br /&gt;
|-&lt;br /&gt;
| property [[TActiveMapBullet.X|X]]: Single&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | R&lt;br /&gt;
| 2.7.8.b1&lt;br /&gt;
|-&lt;br /&gt;
| property [[TActiveMapBullet.Y|Y]]: Single&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | R&lt;br /&gt;
| 2.7.8.b1&lt;br /&gt;
|-&lt;br /&gt;
| property [[TActiveMapBullet.VelX|VelX]]: Single&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | R&lt;br /&gt;
| 2.7.8.b1&lt;br /&gt;
|-&lt;br /&gt;
| property [[TActiveMapBullet.VelY|VelY]]: Single&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | R&lt;br /&gt;
| 2.7.8.b1&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:Classes]][[Category:TMap]]&lt;/div&gt;</summary>
		<author><name>ExHunter</name></author>	</entry>

	<entry>
		<id>https://wiki.soldat.pl/index.php?title=Refreshx&amp;diff=1535</id>
		<title>Refreshx</title>
		<link rel="alternate" type="text/html" href="https://wiki.soldat.pl/index.php?title=Refreshx&amp;diff=1535"/>
				<updated>2014-09-29T22:51:10Z</updated>
		
		<summary type="html">&lt;p&gt;ExHunter: /* Implementations */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The '''REFRESHX''' is a [[Raw_commands|Raw command]] used in [[Soldat]] to give [[admin client|admin clients]] information about the [[server]]. It contains more information than [[Refresh|REFRESH]]. The 1992 (as of 2.7.0e) byte-long REFRESHX-packet is sent right after REFRESHX\r\n.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Attention: The structure can change when a new version of Soldat comes.'''&lt;br /&gt;
&lt;br /&gt;
==Structure==&lt;br /&gt;
&lt;br /&gt;
* '''Player''' (1888 Bytes)&lt;br /&gt;
** '''Names''' (32*25 Bytes; first Byte (unsigned char) indicates length of the nick)&lt;br /&gt;
** '''HWIDs''' (32*12 Bytes)&lt;br /&gt;
** '''Teams''' (32*1 Byte; 0=DM Team, 1..4=Alpha..Delta, 5=Spectator)&lt;br /&gt;
** '''Kills''' (32*2 Bytes; unsigned short)&lt;br /&gt;
** '''Caps''' (32*1 Byte; unsigned char)&lt;br /&gt;
** '''Deaths''' (32*2 Bytes; unsigned short)&lt;br /&gt;
** '''Pings''' (32*4 Bytes; signed long)&lt;br /&gt;
** '''IDs''' (32*1 Byte; unsigned char)&lt;br /&gt;
** '''IPs''' (32*4 Bytes; each byte can be decoded as unsigned char then put together in the given order to a 0.0.0.0 format; or unpack as unsigned long (big endian) and use long2ip())&lt;br /&gt;
** '''X Locations''' (32*4 Bytes; float)&lt;br /&gt;
** '''Y Locations''' (32*4 Bytes; float)&lt;br /&gt;
* '''Red Flag X Location''' (4 Bytes; float)&lt;br /&gt;
* '''Red Flag Y Location''' (4 Bytes; float)&lt;br /&gt;
* '''Blue Flag X Location''' (4 Bytes; float)&lt;br /&gt;
* '''Blue Flag Y Location''' (4 Bytes; float)&lt;br /&gt;
* '''Team Scores''' (4*2 Bytes; unsigned short)&lt;br /&gt;
* '''Map Name''' (17 Bytes; first Byte (unsigned char) indicates length)&lt;br /&gt;
* '''Time Limit''' (4 Bytes; unsigned long; in [[Ticks]])&lt;br /&gt;
* '''Time Left''' (4 Bytes; unsigned long; in [[Ticks]])&lt;br /&gt;
* '''Cap/Kill Limit''' (2 Bytes; unsigned short)&lt;br /&gt;
* '''Gamestyle''' (1 Byte; unsigned char; 0=DM, 1=PM, 2=TM, 3=CTF, 4=RM, 5=INF, 6=HTF)&lt;br /&gt;
* '''Max Players''' (1 Byte; unsigned char)&lt;br /&gt;
* '''Max Spectators''' (1 Byte; unsigned char)&lt;br /&gt;
* '''Game Passworded?''' (1 Byte; boolean)&lt;br /&gt;
* '''Next Map''' (17 Bytes; first Byte (unsigned char) indicates length)&lt;br /&gt;
&lt;br /&gt;
==Implementations==&lt;br /&gt;
&lt;br /&gt;
===PHP===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
&lt;br /&gt;
/*&lt;br /&gt;
*  SOLDAT REFRESH AND REFRESHX PARSER&lt;br /&gt;
*    By: ramirez (c) 2007&lt;br /&gt;
*   http://devs.soldat.pl/wiki/index.php?title=Refreshx&lt;br /&gt;
*&lt;br /&gt;
*  UPDATE: added 2.7.0+ RefreshX support, by SyavX (01-06-2010)&lt;br /&gt;
                                           updated (06-03-2011)&lt;br /&gt;
*&lt;br /&gt;
*  Usage:&lt;br /&gt;
*    $info = ParseRefresh($packet);&lt;br /&gt;
*&lt;br /&gt;
*  Example:&lt;br /&gt;
*&lt;br /&gt;
*    &amp;lt;?php&lt;br /&gt;
*    include('soldat.refresh.php');&lt;br /&gt;
*    $socket = fsockopen('your.server.com', 23073);&lt;br /&gt;
*&lt;br /&gt;
*    fputs($socket, &amp;quot;PASSWORD\n&amp;quot;);&lt;br /&gt;
*    fputs($socket, &amp;quot;REFRESH\n&amp;quot;);&lt;br /&gt;
*    fputs($socket, &amp;quot;REFRESHX\n&amp;quot;);&lt;br /&gt;
*&lt;br /&gt;
*    $version = null;&lt;br /&gt;
*    while ($data = trim(fgets($socket, 1024))) {&lt;br /&gt;
*        if (preg_match('/^Server Version: (.+)$/', $data, $match)) {&lt;br /&gt;
*            $version = $match[1];&lt;br /&gt;
*        }&lt;br /&gt;
*        else if ($data == 'REFRESH') {&lt;br /&gt;
*            $info = ParseRefresh(fread($socket, REFRESH_PACKET_SIZE), $version);&lt;br /&gt;
*            print_r($info);&lt;br /&gt;
*        }&lt;br /&gt;
*        else if ($data == 'REFRESHX') {&lt;br /&gt;
*            $info = ParseRefresh(fread($socket, RefreshXSize($version)), $version);&lt;br /&gt;
*            print_r($info);&lt;br /&gt;
*            break;&lt;br /&gt;
*        }&lt;br /&gt;
*    }&lt;br /&gt;
*&lt;br /&gt;
*    fclose($socket);&lt;br /&gt;
*    ?&amp;gt;&lt;br /&gt;
*/&lt;br /&gt;
&lt;br /&gt;
define('REFRESH_PACKET_SIZE',  1188);&lt;br /&gt;
&lt;br /&gt;
function RefreshXSize($version = '2.6.5')&lt;br /&gt;
{&lt;br /&gt;
    if ($version &amp;gt;= '2.7.0') {&lt;br /&gt;
        return 1992;&lt;br /&gt;
    }&lt;br /&gt;
    else if ($version &amp;gt;= '2.6.5') {&lt;br /&gt;
        return 1608;&lt;br /&gt;
    }&lt;br /&gt;
    else {&lt;br /&gt;
        return 1576;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function ParseRefresh(&amp;amp;$packet, $version = '2.6.5') {&lt;br /&gt;
    if (strlen($packet) == REFRESH_PACKET_SIZE) {&lt;br /&gt;
        $refreshx = false;&lt;br /&gt;
    }&lt;br /&gt;
    else if (strlen($packet) == RefreshXSize($version)) {&lt;br /&gt;
        $refreshx = true;&lt;br /&gt;
    }&lt;br /&gt;
    else {&lt;br /&gt;
        return false;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    $info = array(&lt;br /&gt;
        'gamemode'    =&amp;gt; 0,&lt;br /&gt;
        'players'     =&amp;gt; 0,&lt;br /&gt;
        'spectators'  =&amp;gt; 0,&lt;br /&gt;
        'map'         =&amp;gt; '',&lt;br /&gt;
        'timelimit'   =&amp;gt; 0,&lt;br /&gt;
        'currenttime' =&amp;gt; 0,&lt;br /&gt;
        'timeleft'    =&amp;gt; 0,&lt;br /&gt;
        'limit'       =&amp;gt; 0,&lt;br /&gt;
        'player'      =&amp;gt; array(),&lt;br /&gt;
        'spectator'   =&amp;gt; array(),&lt;br /&gt;
        'team'        =&amp;gt; array()&lt;br /&gt;
    );&lt;br /&gt;
&lt;br /&gt;
    if ($refreshx) {&lt;br /&gt;
        $info = array_merge($info, array(&lt;br /&gt;
            'maxplayers' =&amp;gt; 0,&lt;br /&gt;
            'maxspecs'   =&amp;gt; 0,&lt;br /&gt;
            'nextmap'    =&amp;gt; '',&lt;br /&gt;
            'passworded' =&amp;gt; false,&lt;br /&gt;
            'redflag'    =&amp;gt; array(),&lt;br /&gt;
            'blueflag'   =&amp;gt; array()&lt;br /&gt;
        ));&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    $players = array();&lt;br /&gt;
    for ($i = 0; $i &amp;lt; 32; $i++) {&lt;br /&gt;
        $players[$i] = array(&lt;br /&gt;
            'name'   =&amp;gt; '',&lt;br /&gt;
            'ip'     =&amp;gt; '',&lt;br /&gt;
            'id'     =&amp;gt; 0,&lt;br /&gt;
            'kills'  =&amp;gt; 0,&lt;br /&gt;
            'caps'   =&amp;gt; 0,&lt;br /&gt;
            'deaths' =&amp;gt; 0,&lt;br /&gt;
            'team'   =&amp;gt; 0,&lt;br /&gt;
            'ping'   =&amp;gt; 0&lt;br /&gt;
        );&lt;br /&gt;
&lt;br /&gt;
        if ($refreshx) {&lt;br /&gt;
            $players[$i] = array_merge($players[$i], array(&lt;br /&gt;
                'x' =&amp;gt; 0,&lt;br /&gt;
                'y' =&amp;gt; 0&lt;br /&gt;
            ));&lt;br /&gt;
            if ($version &amp;gt;= '2.7.0') {&lt;br /&gt;
                $players[$i] = array_merge($players[$i], array('hwid' =&amp;gt; ''));&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    if ($refreshx &amp;amp;&amp;amp; $version &amp;gt;= '2.7.0') {&lt;br /&gt;
        /* &lt;br /&gt;
        384 = (11 + 1 byte per hwid) * 32 players&lt;br /&gt;
        1184 = 800 + 384&lt;br /&gt;
        */&lt;br /&gt;
        $pos = 1184;&lt;br /&gt;
    }&lt;br /&gt;
     else {&lt;br /&gt;
        /*&lt;br /&gt;
        800 = (24 + 1 byte per name) * 32 players&lt;br /&gt;
        */&lt;br /&gt;
        $pos = 800;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    $teams                            = unpack('C*', substr($packet, $pos, 32));  $pos += 32;&lt;br /&gt;
    $kills                            = unpack('v*', substr($packet, $pos, 64));  $pos += 64;&lt;br /&gt;
    if ($version &amp;gt;= '2.6.5') {  $caps = unpack('C*', substr($packet, $pos, 32));  $pos += 32;  }&lt;br /&gt;
    $deaths                           = unpack('v*', substr($packet, $pos, 64));  $pos += 64;&lt;br /&gt;
    if (!$refreshx)          { $pings = unpack('C*', substr($packet, $pos, 32));  $pos += 32;  }&lt;br /&gt;
    else                     { $pings = unpack('l*', substr($packet, $pos, 128)); $pos += 128; }&lt;br /&gt;
    $ids                              = unpack('C*', substr($packet, $pos, 32));  $pos += 32;&lt;br /&gt;
    $ips                              = unpack('N*', substr($packet, $pos, 128)); $pos += 128;&lt;br /&gt;
    if ($refreshx)           { $locs  = unpack('f*', substr($packet, $pos, 256)); $pos += 256; }&lt;br /&gt;
 &lt;br /&gt;
    for ($i = 0; $i &amp;lt; 32; $i++) {&lt;br /&gt;
        $players[$i]['name']   = substr($packet, $i*25+1, ord($packet[$i*25]));&lt;br /&gt;
        $players[$i]['team']   = $teams[$i+1];&lt;br /&gt;
        $players[$i]['kills']  = $kills[$i+1];&lt;br /&gt;
        $players[$i]['caps']   = $caps[$i+1];&lt;br /&gt;
        $players[$i]['deaths'] = $deaths[$i+1];&lt;br /&gt;
        $players[$i]['ping']   = $pings[$i+1];&lt;br /&gt;
        $players[$i]['id']     = $ids[$i+1];&lt;br /&gt;
        $players[$i]['ip']     = long2ip($ips[$i+1]);&lt;br /&gt;
 &lt;br /&gt;
        if ($refreshx) {&lt;br /&gt;
            $players[$i]['x'] = $locs[$i+1];&lt;br /&gt;
            $players[$i]['y'] = $locs[$i+33];&lt;br /&gt;
            if ($version &amp;gt;= '2.7.0') {&lt;br /&gt;
                $players[$i]['hwid'] = substr($packet, $i*12+801, 11);&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    if ($refreshx) {&lt;br /&gt;
        $data = unpack('f*', substr($packet, $pos, 16)); $pos += 16;&lt;br /&gt;
        $info['redflag']  = array('x' =&amp;gt; $data[1], 'y' =&amp;gt; $data[2]);&lt;br /&gt;
        $info['blueflag'] = array('x' =&amp;gt; $data[3], 'y' =&amp;gt; $data[4]);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    $teams = unpack('v*', substr($packet, $pos, 8));            $pos += 8;&lt;br /&gt;
    $map   = unpack('Clen/A16name', substr($packet, $pos, 17)); $pos += 17;&lt;br /&gt;
    $time  = unpack('V*', substr($packet, $pos, 8));            $pos += 8;&lt;br /&gt;
    $limit = unpack('v', substr($packet, $pos, 2));                 $pos += 2;&lt;br /&gt;
&lt;br /&gt;
    $timelimit = $time[1];&lt;br /&gt;
    $currenttime = $time[2];&lt;br /&gt;
    $timeleft = $currenttime;&lt;br /&gt;
    $temp = (floor($timeleft / 60) % 60);&lt;br /&gt;
    $info['timeleft'] = floor($timeleft / 3600) . ':' . ($temp &amp;lt; 10 ? '0' : '') . $temp;&lt;br /&gt;
&lt;br /&gt;
    $info['team'] = $teams;&lt;br /&gt;
    $info['map'] = substr($map['name'], 0, $map['len']);&lt;br /&gt;
    $info['timelimit'] = $timelimit;&lt;br /&gt;
    $info['currenttime'] = $timelimit - $currenttime;&lt;br /&gt;
    $info['limit'] = $limit[1];&lt;br /&gt;
    $info['gamemode'] = ord($packet[$pos++]);&lt;br /&gt;
&lt;br /&gt;
    if ($refreshx) {&lt;br /&gt;
        $data = unpack('C*', substr($packet, $pos, 4)); $pos += 4;&lt;br /&gt;
        $info['maxplayers'] = $data[1];&lt;br /&gt;
        $info['maxspecs']   = $data[2];&lt;br /&gt;
        $info['passworded'] = ($data[3] != 0 ? true : false);&lt;br /&gt;
        $info['nextmap']    = substr($packet, $pos, $data[4]);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    if ($info['gamemode'] != 2) {&lt;br /&gt;
        if ($info['gamemode'] != 3 &amp;amp;&amp;amp; $info['gamemode'] != 5) {&lt;br /&gt;
            unset($info['team'][1]);&lt;br /&gt;
            unset($info['team'][2]);&lt;br /&gt;
        }&lt;br /&gt;
        unset($info['team'][3]);&lt;br /&gt;
        unset($info['team'][4]);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    foreach ($players as $player) {&lt;br /&gt;
        if ($player['team'] &amp;lt; 5) {&lt;br /&gt;
            $info['players']++;&lt;br /&gt;
            $info['player'][] = $player;&lt;br /&gt;
        }&lt;br /&gt;
        else if ($player['team'] == 5) {&lt;br /&gt;
            $info['spectators']++;&lt;br /&gt;
            $info['spectator'][] = $player;&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    return $info;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
    function checkServer($host, $port)&lt;br /&gt;
    {&lt;br /&gt;
     $host = gethostbyname ($host);&lt;br /&gt;
     $socket = @fsockopen($host, $port, $errno, $errstr, 0.3);&lt;br /&gt;
     if ($socket)&lt;br /&gt;
     {&lt;br /&gt;
        return TRUE;&lt;br /&gt;
        fclose($socket);&lt;br /&gt;
     }&lt;br /&gt;
     else&lt;br /&gt;
     {&lt;br /&gt;
        return FALSE;&lt;br /&gt;
        fclose($socket);&lt;br /&gt;
     }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    function connectServer($host, $port, $pw)&lt;br /&gt;
    {&lt;br /&gt;
        $host = gethostbyname ($host);&lt;br /&gt;
        $socket = @fsockopen($host, $port);        &lt;br /&gt;
        if ($socket) {&lt;br /&gt;
            $info = array();&lt;br /&gt;
            fputs($socket, $pw . &amp;quot;\n&amp;quot;);&lt;br /&gt;
            fputs($socket, &amp;quot;REFRESHX\n&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
            $version = null;&lt;br /&gt;
&lt;br /&gt;
            while ($data = trim(fgets($socket, 1024))) {&lt;br /&gt;
                if (preg_match('/^Server Version: (.+)$/', $data, $match)) {&lt;br /&gt;
                    $version = $match[1];&lt;br /&gt;
                }&lt;br /&gt;
                else if ($data == 'REFRESH') {&lt;br /&gt;
                    $info = ParseRefresh(fread($socket, REFRESH_PACKET_SIZE), $version);&lt;br /&gt;
                    return $info;&lt;br /&gt;
                }&lt;br /&gt;
                else if ($data == 'REFRESHX') {&lt;br /&gt;
                    $info = ParseRefresh(fread($socket, RefreshXSize($version)), $version);&lt;br /&gt;
                    return $info;&lt;br /&gt;
                    break;&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
        fclose($socket);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    function sendOnServer($host, $port, $pw, $com)&lt;br /&gt;
    {&lt;br /&gt;
        $host = gethostbyname($host);&lt;br /&gt;
        $socket = @fsockopen($host, $port);&lt;br /&gt;
&lt;br /&gt;
        if ($socket) {&lt;br /&gt;
            fputs($socket, $pw . &amp;quot;\n&amp;quot;);&lt;br /&gt;
            fputs($socket, &amp;quot;/&amp;quot; . $com . &amp;quot;\n&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
            return TRUE;&lt;br /&gt;
        }&lt;br /&gt;
        else {&lt;br /&gt;
            return FALSE;&lt;br /&gt;
        }&lt;br /&gt;
        fclose($socket);&lt;br /&gt;
    }&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===PHP Class===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
/**&lt;br /&gt;
 * Soldat Admin REFRESHX packet parser&lt;br /&gt;
 * &lt;br /&gt;
 * Parses the REFRESHXpacket-data from SoldatServers&lt;br /&gt;
 * SOLDATSERVER VERSION 2.6.5+ ONLY&lt;br /&gt;
 * &lt;br /&gt;
 * @author m!nus&lt;br /&gt;
 * &lt;br /&gt;
 * Call parse() with your REFRESHX data as parameter&lt;br /&gt;
 * &lt;br /&gt;
 * Offered Functions:&lt;br /&gt;
 * getBestPlayer&lt;br /&gt;
 * getBlueFlagX&lt;br /&gt;
 * getBlueFlagY&lt;br /&gt;
 * getFlags&lt;br /&gt;
 * getGameMode&lt;br /&gt;
 * getLimit&lt;br /&gt;
 * getMap&lt;br /&gt;
 * getMaxPlayers&lt;br /&gt;
 * getMaxSpectators&lt;br /&gt;
 * getNextMap&lt;br /&gt;
 * getPlayerCount&lt;br /&gt;
 * getPlayersFromTeam&lt;br /&gt;
 * getRedFlagX&lt;br /&gt;
 * getRedFlagY&lt;br /&gt;
 * getSpectatorCount&lt;br /&gt;
 * getTeams&lt;br /&gt;
 * getTimeLeft&lt;br /&gt;
 * getTimeLimit&lt;br /&gt;
 * getTimePassed&lt;br /&gt;
 * isTeamMode&lt;br /&gt;
*/&lt;br /&gt;
&lt;br /&gt;
class REFRESHX&lt;br /&gt;
{&lt;br /&gt;
	&lt;br /&gt;
	// array $aPlayers Contains Player Information&lt;br /&gt;
	protected $aPlayers = array();&lt;br /&gt;
	&lt;br /&gt;
	// array $aTeams Contains Team Information&lt;br /&gt;
	protected $aTeams = array();&lt;br /&gt;
	&lt;br /&gt;
	// array $aGame Contains General Game Information&lt;br /&gt;
	protected $aGame = array();&lt;br /&gt;
	&lt;br /&gt;
	// const integer PacketLength REFRESHX packet length, this var is useful if your read from the server&lt;br /&gt;
	const PacketLength = 1608;&lt;br /&gt;
	&lt;br /&gt;
	// Team Constants&lt;br /&gt;
	// {&lt;br /&gt;
	const TEAM_DM		=  1; //= 0x000001; // Non-Teammatch&lt;br /&gt;
	const TEAM_ALPHA	=  2; //= 0x000010; // Alpha Team&lt;br /&gt;
	const TEAM_BRAVO	=  4; //= 0x000100; // Bravo Team&lt;br /&gt;
	const TEAM_CHARLIE	=  8; //= 0x001000; // Charlie Team&lt;br /&gt;
	const TEAM_DELTA	= 16; //= 0x010000; // Delta Team&lt;br /&gt;
	const TEAM_SPECT	= 32; //= 0x100000; // Spectators&lt;br /&gt;
	const TEAM_ALL		= 31; //= 0x011111; // All Players&lt;br /&gt;
	const TEAM_ALLSPECT	= 63; //= 0x111111; // All Players and Spectators&lt;br /&gt;
	// }&lt;br /&gt;
	&lt;br /&gt;
	// Game Modes&lt;br /&gt;
	// {&lt;br /&gt;
	const MODE_ERR	= -1; // An Error Occoured&lt;br /&gt;
	const MODE_DM	=  0; // DeathMatch&lt;br /&gt;
	const MODE_PM	=  1; // PointMatch&lt;br /&gt;
	const MODE_TM	=  2; // TeamMatch&lt;br /&gt;
	const MODE_CTF	=  3; // Capture The Flag&lt;br /&gt;
	const MODE_RM	=  4; // RamboMatch&lt;br /&gt;
	const MODE_INF	=  5; // Infiltration&lt;br /&gt;
	const MODE_HTF	=  6; // Hold The Flag&lt;br /&gt;
	// }&lt;br /&gt;
	&lt;br /&gt;
	// GameMode Returnselectors&lt;br /&gt;
	// {&lt;br /&gt;
	const GAMEMODE_FORMAT_INT		= 1; // Return as INT (example: 3)&lt;br /&gt;
	const GAMEMODE_FORMAT_SHORTSTR	= 2; // Return as long STRING (example: CTF)&lt;br /&gt;
	const GAMEMODE_FORMAT_STR		= 3; // Return as STRING (example: Capture The Flag)&lt;br /&gt;
	// }&lt;br /&gt;
	&lt;br /&gt;
	// Time Return Mode&lt;br /&gt;
	// {&lt;br /&gt;
	const TIMEMODE_TIMELEFT			= 1; // Time left&lt;br /&gt;
	const TIMEMODE_TIMELIMIT		= 2; // Time limit&lt;br /&gt;
	const TIMEMODE_TIMEPASSED		= 3; // Time passed&lt;br /&gt;
	// }&lt;br /&gt;
	&lt;br /&gt;
	// BestPlayer Return Mode&lt;br /&gt;
	// {&lt;br /&gt;
	const BESTPLAYER_KILLS			= 1; // Return Player with most Kills&lt;br /&gt;
	const BESTPLAYER_RATIO			= 2; // with best K:D Ratio&lt;br /&gt;
	const BESTPLAYER_DEATHS			= 3; // with least Kills&lt;br /&gt;
	// }&lt;br /&gt;
	&lt;br /&gt;
	&lt;br /&gt;
	&lt;br /&gt;
	/**&lt;br /&gt;
	 * Initializes information arrays&lt;br /&gt;
	*/&lt;br /&gt;
	public function __construct()&lt;br /&gt;
	{&lt;br /&gt;
		&lt;br /&gt;
		&lt;br /&gt;
		// Construct Team Array&lt;br /&gt;
		for($i = 0; $i &amp;lt;= 5; $i++)&lt;br /&gt;
		{&lt;br /&gt;
			$this-&amp;gt;aTeams[$i] = array(&lt;br /&gt;
										'aPlayers'		=&amp;gt; array(),&lt;br /&gt;
										'iCaps'			=&amp;gt; 0,&lt;br /&gt;
										'iPlayerCount'	=&amp;gt; 0,&lt;br /&gt;
										'iKills'		=&amp;gt; 0,&lt;br /&gt;
										'iDeaths'		=&amp;gt; 0&lt;br /&gt;
									);&lt;br /&gt;
		}&lt;br /&gt;
		&lt;br /&gt;
		// Create Player Array&lt;br /&gt;
		for($i = 0; $i &amp;lt; 32; $i++)&lt;br /&gt;
		{&lt;br /&gt;
			$this-&amp;gt;aPlayers[$i] = array(&lt;br /&gt;
										'sName'			=&amp;gt; '',&lt;br /&gt;
										'iTeam'			=&amp;gt; 0,&lt;br /&gt;
										'iKills'		=&amp;gt; 0,&lt;br /&gt;
										'iCaps'			=&amp;gt; 0, // new since 2.6.5&lt;br /&gt;
										'iDeaths'		=&amp;gt; 0,&lt;br /&gt;
										'iRatio'		=&amp;gt; 0,&lt;br /&gt;
										'iPing'			=&amp;gt; 0,&lt;br /&gt;
										'iID'			=&amp;gt; 0,&lt;br /&gt;
										'sIP'			=&amp;gt; '0.0.0.0',&lt;br /&gt;
										'fLocX'			=&amp;gt; 0,&lt;br /&gt;
										'fLocY'			=&amp;gt; 0&lt;br /&gt;
									);&lt;br /&gt;
		}&lt;br /&gt;
		&lt;br /&gt;
		&lt;br /&gt;
		// Init Game Array&lt;br /&gt;
		$this-&amp;gt;aGame = array(&lt;br /&gt;
								'sMap' 				=&amp;gt; 'map_error',&lt;br /&gt;
								'iTimelimitTicks' 	=&amp;gt; -1,&lt;br /&gt;
								'iTimeleftTicks' 	=&amp;gt; -1,&lt;br /&gt;
								'iTimepassedTicks' 	=&amp;gt; -1,&lt;br /&gt;
								'fTimelimit' 		=&amp;gt; -1,&lt;br /&gt;
								'fTimeleft'			=&amp;gt; -1,&lt;br /&gt;
								'fTimepassed' 		=&amp;gt; -1,&lt;br /&gt;
								'iMode'				=&amp;gt; self::MODE_ERR,&lt;br /&gt;
								'sMode'				=&amp;gt; 'Unknown',&lt;br /&gt;
								'sModeShort'		=&amp;gt; '???',&lt;br /&gt;
								'bTeamMode'			=&amp;gt; false,&lt;br /&gt;
								'iPlayerCount'		=&amp;gt; 0,&lt;br /&gt;
								'iSpecatorCount'	=&amp;gt; 0,&lt;br /&gt;
								'fRedFlagX'			=&amp;gt; 0,&lt;br /&gt;
								'fRedFlagY'			=&amp;gt; 0,&lt;br /&gt;
								'fBlueFlagX'		=&amp;gt; 0,&lt;br /&gt;
								'fBlueFlagY'		=&amp;gt; 0,&lt;br /&gt;
								'iMaxPlayers'		=&amp;gt; -1,&lt;br /&gt;
								'iMaxSpectators'	=&amp;gt; -1,&lt;br /&gt;
								'bPassworded'		=&amp;gt; false,&lt;br /&gt;
								'sNextMap'			=&amp;gt; 'map_error'&lt;br /&gt;
							);&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	/**&lt;br /&gt;
	 * Parses the REFRESHX Data&lt;br /&gt;
	 * &lt;br /&gt;
	 * @param string $sData REFRESHX Data&lt;br /&gt;
	*/&lt;br /&gt;
	public function parse($sData)&lt;br /&gt;
	{&lt;br /&gt;
		&lt;br /&gt;
		// Set in-string Start Position&lt;br /&gt;
		$iStartPos = 0;&lt;br /&gt;
		&lt;br /&gt;
		&lt;br /&gt;
		&lt;br /&gt;
		// Name (25 Bytes)&lt;br /&gt;
		for($i = 0; $i &amp;lt; 32; $i++)&lt;br /&gt;
		{&lt;br /&gt;
			$this-&amp;gt;aPlayers[$i]['sName'] = substr($sData, $iStartPos + 1, ord($sData{$iStartPos})&amp;lt;25?ord($sData{$iStartPos}):24 );&lt;br /&gt;
			$iStartPos += 25;&lt;br /&gt;
		}&lt;br /&gt;
		&lt;br /&gt;
		// Team (1 Byte)&lt;br /&gt;
		for($i = 0; $i &amp;lt; 32; $i++)&lt;br /&gt;
		{&lt;br /&gt;
			switch(ord($sData{$iStartPos}))&lt;br /&gt;
			{&lt;br /&gt;
				case 0:&lt;br /&gt;
				$this-&amp;gt;aPlayers[$i]['iTeam'] = self::TEAM_DM;&lt;br /&gt;
				break;&lt;br /&gt;
				case 1:&lt;br /&gt;
				$this-&amp;gt;aPlayers[$i]['iTeam'] = self::TEAM_ALPHA;&lt;br /&gt;
				break;&lt;br /&gt;
				case 2:&lt;br /&gt;
				$this-&amp;gt;aPlayers[$i]['iTeam'] = self::TEAM_BRAVO;&lt;br /&gt;
				break;&lt;br /&gt;
				case 3:&lt;br /&gt;
				$this-&amp;gt;aPlayers[$i]['iTeam'] = self::TEAM_CHARLIE;&lt;br /&gt;
				break;&lt;br /&gt;
				case 4:&lt;br /&gt;
				$this-&amp;gt;aPlayers[$i]['iTeam'] = self::TEAM_DELTA;&lt;br /&gt;
				break;&lt;br /&gt;
				case 5:&lt;br /&gt;
				$this-&amp;gt;aPlayers[$i]['iTeam'] = self::TEAM_SPECT;&lt;br /&gt;
				break;&lt;br /&gt;
			}&lt;br /&gt;
			&lt;br /&gt;
			$iStartPos += 1;&lt;br /&gt;
		}&lt;br /&gt;
		&lt;br /&gt;
		// Kills (2 Bytes)&lt;br /&gt;
		for($i = 0; $i &amp;lt; 32; $i++)&lt;br /&gt;
		{&lt;br /&gt;
			list(,$this-&amp;gt;aPlayers[$i]['iKills']) = unpack('v', substr($sData, $iStartPos, 2) );&lt;br /&gt;
			$iStartPos += 2;&lt;br /&gt;
		}&lt;br /&gt;
		&lt;br /&gt;
		// Caps (1 Byte)&lt;br /&gt;
		for($i = 0; $i &amp;lt; 32; $i++)&lt;br /&gt;
		{&lt;br /&gt;
			$this-&amp;gt;aPlayers[$i]['iCaps'] = ord( $sData[$iStartPos] );&lt;br /&gt;
			$iStartPos++;&lt;br /&gt;
		}&lt;br /&gt;
		&lt;br /&gt;
		// Deaths (2 Bytes)&lt;br /&gt;
		for($i = 0; $i &amp;lt; 32; $i++)&lt;br /&gt;
		{&lt;br /&gt;
			list(,$this-&amp;gt;aPlayers[$i]['iDeaths']) = unpack('v', substr($sData, $iStartPos, 2) );&lt;br /&gt;
			$iStartPos += 2;&lt;br /&gt;
		}&lt;br /&gt;
		&lt;br /&gt;
		// calc K:D Ratio&lt;br /&gt;
		for($i = 0; $i &amp;lt; 32; $i++)&lt;br /&gt;
		{&lt;br /&gt;
			if($this-&amp;gt;aPlayers[$i]['iDeaths'] == 0)&lt;br /&gt;
			{&lt;br /&gt;
				$this-&amp;gt;aPlayers[$i]['fRatio'] = 0;&lt;br /&gt;
			}&lt;br /&gt;
			else&lt;br /&gt;
			{&lt;br /&gt;
				$this-&amp;gt;aPlayers[$i]['fRatio'] = $this-&amp;gt;aPlayers[$i]['iKills'] / $this-&amp;gt;aPlayers[$i]['iDeaths'];&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
		&lt;br /&gt;
		// Ping (4 Byte)&lt;br /&gt;
		for($i = 0; $i &amp;lt; 32; $i++)&lt;br /&gt;
		{&lt;br /&gt;
			list(,$this-&amp;gt;aPlayers[$i]['iPing']) = unpack('l', substr($sData, $iStartPos, 4) );&lt;br /&gt;
			$iStartPos += 4;&lt;br /&gt;
		}&lt;br /&gt;
		&lt;br /&gt;
		// ID (1 Byte)&lt;br /&gt;
		for($i = 0; $i &amp;lt; 32; $i++)&lt;br /&gt;
		{&lt;br /&gt;
			$sTmp = ord($sData{$iStartPos});&lt;br /&gt;
			$this-&amp;gt;aPlayers[$i]['iID'] = $sTmp;&lt;br /&gt;
			$iStartPos += 1;&lt;br /&gt;
		}&lt;br /&gt;
		&lt;br /&gt;
		// IP (4 Bytes)&lt;br /&gt;
		for($i = 0; $i &amp;lt; 32; $i++)&lt;br /&gt;
		{&lt;br /&gt;
			list(,$this-&amp;gt;aPlayers[$i]['sIP']) = unpack('N', substr($sData, $iStartPos, 4) );&lt;br /&gt;
			$this-&amp;gt;aPlayers[$i]['sIP'] = long2ip($this-&amp;gt;aPlayers[$i]['sIP']);&lt;br /&gt;
			$iStartPos += 4;&lt;br /&gt;
		}&lt;br /&gt;
		&lt;br /&gt;
		// Location: X (4 Bytes)&lt;br /&gt;
		for($i = 0; $i &amp;lt; 32; $i++)&lt;br /&gt;
		{&lt;br /&gt;
			list(,$this-&amp;gt;aPlayers[$i]['fLocX']) = unpack('f', substr($sData, $iStartPos, 4) );&lt;br /&gt;
			$iStartPos += 4;&lt;br /&gt;
		}&lt;br /&gt;
		&lt;br /&gt;
		// Location: Y (4 Bytes)&lt;br /&gt;
		for($i = 0; $i &amp;lt; 32; $i++)&lt;br /&gt;
		{&lt;br /&gt;
			list(,$this-&amp;gt;aPlayers[$i]['fLocY']) = unpack('f', substr($sData, $iStartPos, 4) );&lt;br /&gt;
			$iStartPos += 4;&lt;br /&gt;
		}&lt;br /&gt;
		&lt;br /&gt;
		&lt;br /&gt;
		for($i = 0; $i &amp;lt; 32; $i++)&lt;br /&gt;
		{&lt;br /&gt;
			if($this-&amp;gt;aPlayers[$i]['iTeam'] &amp;lt;= 5 &amp;amp;&amp;amp; $this-&amp;gt;aPlayers[$i]['iTeam'] &amp;gt;= 0)&lt;br /&gt;
			{&lt;br /&gt;
				if($this-&amp;gt;aPlayers[$i]['iID'] &amp;lt; 1 || $this-&amp;gt;aPlayers[$i]['iID'] &amp;gt; 32)&lt;br /&gt;
				{&lt;br /&gt;
					// Empty Slot =&amp;gt; Remove from Array&lt;br /&gt;
					unset($this-&amp;gt;aPlayers[$i]);&lt;br /&gt;
					continue;&lt;br /&gt;
				}&lt;br /&gt;
				// Add Reference to PlayerArray to Team Array&lt;br /&gt;
				$this-&amp;gt;aTeams[ $this-&amp;gt;aPlayers[$i]['iTeam'] ]['aPlayers'][$i] = &amp;amp;$this-&amp;gt;aPlayers[$i];&lt;br /&gt;
				&lt;br /&gt;
				// Increase Team's Playercount&lt;br /&gt;
				$this-&amp;gt;aTeams[ $this-&amp;gt;aPlayers[$i]['iTeam'] ]['iPlayerCount']++;&lt;br /&gt;
				&lt;br /&gt;
				// Increase Team's Point and Deathcount&lt;br /&gt;
				$this-&amp;gt;aTeams[ $this-&amp;gt;aPlayers[$i]['iTeam'] ]['iKills'] += $this-&amp;gt;aPlayers[$i]['iKills'];&lt;br /&gt;
				$this-&amp;gt;aTeams[ $this-&amp;gt;aPlayers[$i]['iTeam'] ]['iDeaths'] += $this-&amp;gt;aPlayers[$i]['iDeaths'];&lt;br /&gt;
				&lt;br /&gt;
				// Increase Total Player- and Spectatorcount&lt;br /&gt;
				if($this-&amp;gt;aPlayers[$i]['iTeam'] &amp;lt;= 4 &amp;amp;&amp;amp; $this-&amp;gt;aPlayers[$i]['iTeam'] &amp;gt;= 0)&lt;br /&gt;
				{&lt;br /&gt;
					$this-&amp;gt;aGame['iPlayerCount']++;&lt;br /&gt;
				}&lt;br /&gt;
				else&lt;br /&gt;
				{&lt;br /&gt;
					$this-&amp;gt;aGame['iSpectatorCount']++;&lt;br /&gt;
				}&lt;br /&gt;
			}&lt;br /&gt;
			else&lt;br /&gt;
			{&lt;br /&gt;
				// Empty Slot =&amp;gt; Remove from Array&lt;br /&gt;
				unset($this-&amp;gt;aPlayers[$i]);&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
		&lt;br /&gt;
		// Flag Positions (4x4 Bytes)&lt;br /&gt;
		list(,$this-&amp;gt;aGame['fRedFlagX'], $this-&amp;gt;aGame['fRedFlagY'],&lt;br /&gt;
			$this-&amp;gt;aGame['fBlueFlagX'], $this-&amp;gt;aGame['fBlueFlagY']) = unpack('f*', substr($sData, $iStartPos, 16) );&lt;br /&gt;
		$iStartPos += 16;&lt;br /&gt;
		&lt;br /&gt;
		// Parse Team Info&lt;br /&gt;
		for($i = 1; $i &amp;lt; 5; $i++)&lt;br /&gt;
		{&lt;br /&gt;
			// Team Caps (2 Bytes)&lt;br /&gt;
			list(,$this-&amp;gt;aTeams[$i]['iCaps']) = unpack('v', substr($sData, $iStartPos, 2) );&lt;br /&gt;
			$iStartPos += 2;&lt;br /&gt;
		}&lt;br /&gt;
		&lt;br /&gt;
		// Mapname (17 Bytes; 1 Byte length, max 16 Bytes Name)&lt;br /&gt;
		$this-&amp;gt;aGame['sMap'] = substr($sData, $iStartPos + 1, ord($sData{$iStartPos}) );&lt;br /&gt;
		$iStartPos += 17;&lt;br /&gt;
		&lt;br /&gt;
		// Timelimit (4 Bytes) - in ticks (1 sec = 60 ticks)&lt;br /&gt;
		list(,$this-&amp;gt;aGame['iTimelimitTicks']) = unpack('V', substr($sData, $iStartPos, 4) );&lt;br /&gt;
		$this-&amp;gt;aGame['fTimelimit'] = ($this-&amp;gt;aGame['iTimelimitTicks'] / 60); // Convert to Seconds&lt;br /&gt;
		$iStartPos += 4;&lt;br /&gt;
		&lt;br /&gt;
		// Timeleft (4 Bytes) - in ticks (1 sec = 60 ticks)&lt;br /&gt;
		list(,$this-&amp;gt;aGame['iTimeleftTicks']) = unpack('V', substr($sData, $iStartPos, 4) );&lt;br /&gt;
		$this-&amp;gt;aGame['fTimeleft'] = ($this-&amp;gt;aGame['iTimeleftTicks'] / 60); // Convert to Seconds&lt;br /&gt;
		$iStartPos += 4;&lt;br /&gt;
		&lt;br /&gt;
		// Timepassed - just calc&lt;br /&gt;
		$this-&amp;gt;aGame['fTimepassed'] = $this-&amp;gt;aGame['fTimelimit'] - $this-&amp;gt;aGame['fTimeleft'];&lt;br /&gt;
		$this-&amp;gt;aGame['iTimepassedTicks'] = $this-&amp;gt;aGame['iTimelimitTicks'] - $this-&amp;gt;aGame['iTimeleftTicks'];&lt;br /&gt;
		&lt;br /&gt;
		// Cap/Kill-Limit (2 Bytes)&lt;br /&gt;
		list(,$this-&amp;gt;aGame['iLimit']) = unpack('v', substr($sData, $iStartPos, 2) );&lt;br /&gt;
		$iStartPos += 2;&lt;br /&gt;
		&lt;br /&gt;
		// Gamemode (1 Byte)&lt;br /&gt;
		$this-&amp;gt;aGame['iMode'] = ord($sData{$iStartPos});&lt;br /&gt;
		$iStartPos++;&lt;br /&gt;
		// 0 DM, 1 PM, 2 TM, 3 CTF, 4 RM, 5 INF, 6 HTF&lt;br /&gt;
		&lt;br /&gt;
		// Gamemode&lt;br /&gt;
		switch($this-&amp;gt;aGame['iMode'])&lt;br /&gt;
		{&lt;br /&gt;
			case self::MODE_DM: // Deathmatch&lt;br /&gt;
			$this-&amp;gt;aGame['sMode'] = 'Deathmatch';&lt;br /&gt;
			$this-&amp;gt;aGame['sModeShort'] = 'DM';&lt;br /&gt;
			$this-&amp;gt;aGame['bTeamMode'] = false;&lt;br /&gt;
			break;&lt;br /&gt;
			&lt;br /&gt;
			case self::MODE_PM: // Pointmatch&lt;br /&gt;
			$this-&amp;gt;aGame['sMode'] = 'Pointmatch';&lt;br /&gt;
			$this-&amp;gt;aGame['sModeShort'] = 'PM';&lt;br /&gt;
			$this-&amp;gt;aGame['bTeamMode'] = false;&lt;br /&gt;
			break;&lt;br /&gt;
			&lt;br /&gt;
			case self::MODE_TM: // Teammatch&lt;br /&gt;
			$this-&amp;gt;aGame['sMode'] = 'Teammatch';&lt;br /&gt;
			$this-&amp;gt;aGame['sModeShort'] = 'TM';&lt;br /&gt;
			$this-&amp;gt;aGame['bTeamMode'] = true; // Gamemode is a Teammode&lt;br /&gt;
			break;&lt;br /&gt;
			&lt;br /&gt;
			case self::MODE_CTF: // Capture The Flag&lt;br /&gt;
			$this-&amp;gt;aGame['sMode'] = 'Capture The Flag';&lt;br /&gt;
			$this-&amp;gt;aGame['sModeShort'] = 'CTF';&lt;br /&gt;
			$this-&amp;gt;aGame['bTeamMode'] = true; // Gamemode is a Teammode&lt;br /&gt;
			break;&lt;br /&gt;
			&lt;br /&gt;
			case self::MODE_RM: // Rambomatch&lt;br /&gt;
			$this-&amp;gt;aGame['sMode'] = 'Rambomatch';&lt;br /&gt;
			$this-&amp;gt;aGame['sModeShort'] = 'RM';&lt;br /&gt;
			$this-&amp;gt;aGame['bTeamMode'] = false;&lt;br /&gt;
			break;&lt;br /&gt;
			&lt;br /&gt;
			case self::MODE_INF: // Infiltration&lt;br /&gt;
			$this-&amp;gt;aGame['sMode'] = 'Infiltration';&lt;br /&gt;
			$this-&amp;gt;aGame['sModeShort'] = 'INF';&lt;br /&gt;
			$this-&amp;gt;aGame['bTeamMode'] = true; // Gamemode is a Teammode&lt;br /&gt;
			break;&lt;br /&gt;
			&lt;br /&gt;
			case self::MODE_HTF: // Hold  The Flag&lt;br /&gt;
			$this-&amp;gt;aGame['sMode'] = 'Hold The Flag';&lt;br /&gt;
			$this-&amp;gt;aGame['sModeShort'] = 'HTF';&lt;br /&gt;
			$this-&amp;gt;aGame['bTeamMode'] = true; // Gamemode is a Teammode&lt;br /&gt;
			break;&lt;br /&gt;
			&lt;br /&gt;
			default:&lt;br /&gt;
			$this-&amp;gt;aGame['sMode'] = 'Unknown';&lt;br /&gt;
			$this-&amp;gt;aGame['sModeShort'] = '???';&lt;br /&gt;
			$this-&amp;gt;aGame['bTeamMode'] = false;&lt;br /&gt;
		}&lt;br /&gt;
		&lt;br /&gt;
		// Max Players (1 Byte)&lt;br /&gt;
		$this-&amp;gt;aGame['iMaxPlayers'] = ord($sData{$iStartPos});&lt;br /&gt;
		$iStartPos++;&lt;br /&gt;
		&lt;br /&gt;
		// Max Spectators (1 Byte)&lt;br /&gt;
		$this-&amp;gt;aGame['iMaxSpectators'] = ord($sData{$iStartPos});&lt;br /&gt;
		$iStartPos++;&lt;br /&gt;
		&lt;br /&gt;
		// Is Passworded? (1 Byte)&lt;br /&gt;
		$this-&amp;gt;aGame['bPassworded'] = ($sData{$iStartPos} != 1) ? false : true;&lt;br /&gt;
		$iStartPos++;&lt;br /&gt;
		&lt;br /&gt;
		// Next Map (17 Bytes)&lt;br /&gt;
		$this-&amp;gt;aGame['sNextMap'] = substr($sData, $iStartPos + 1, ord($sData{$iStartPos}) );&lt;br /&gt;
		$iStartPos += 17;&lt;br /&gt;
		&lt;br /&gt;
		&lt;br /&gt;
	} // public function parse($sData)&lt;br /&gt;
	&lt;br /&gt;
	&lt;br /&gt;
	/**&lt;br /&gt;
	 * Returns an array with all Players from the given Teams.&lt;br /&gt;
	 * &lt;br /&gt;
	 * Team constants can be ORed.&lt;br /&gt;
	 * &lt;br /&gt;
	 * @param integer $iFromTeam Team constant(s)&lt;br /&gt;
	 * @return &amp;amp;array Array of Players (reference)&lt;br /&gt;
	*/&lt;br /&gt;
	public function getPlayersFromTeam($iFromTeam = null)&lt;br /&gt;
	{&lt;br /&gt;
		if($iFromTeam == null)&lt;br /&gt;
		{&lt;br /&gt;
			$iFromTeam = self::TEAM_ALL;&lt;br /&gt;
		}&lt;br /&gt;
		$aReturn = array();&lt;br /&gt;
		&lt;br /&gt;
		foreach($this-&amp;gt;aPlayers as $iIndex =&amp;gt; $aPlayer)&lt;br /&gt;
		{&lt;br /&gt;
			if($iFromTeam &amp;amp; $aPlayer['iTeam']) // 0x110011 &amp;amp; 0x010000 != 0&lt;br /&gt;
			{&lt;br /&gt;
				$aReturn[$iIndex] = &amp;amp;$aPlayer;&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
		&lt;br /&gt;
		return $aReturn;&lt;br /&gt;
	} // public function getPlayers($aFromTeam = self::TEAM_ALL)&lt;br /&gt;
	&lt;br /&gt;
	/**&lt;br /&gt;
	 * Returns an array with Teams.&lt;br /&gt;
	 * &lt;br /&gt;
	 * Team constants can be ORed.&lt;br /&gt;
	 * &lt;br /&gt;
	 * @param integer $iFromTeam Team constant(s)&lt;br /&gt;
	 * @return &amp;amp;array Array of Teams (reference)&lt;br /&gt;
	*/&lt;br /&gt;
	public function getTeams($iFromTeam = null)&lt;br /&gt;
	{&lt;br /&gt;
		if($iFromTeam == null)&lt;br /&gt;
		{&lt;br /&gt;
			$iFromTeam = self::TEAM_ALL;&lt;br /&gt;
		}&lt;br /&gt;
		$aReturn = array();&lt;br /&gt;
		&lt;br /&gt;
		if($iFromTeam &amp;amp; self::TEAM_ALPHA)&lt;br /&gt;
		{&lt;br /&gt;
			$aReturn[self::TEAM_APLHA] = &amp;amp;$this-&amp;gt;aTeams[self::TEAM_APLHA];&lt;br /&gt;
		}&lt;br /&gt;
		if($iFromTeam &amp;amp; self::TEAM_BRAVO)&lt;br /&gt;
		{&lt;br /&gt;
			$aReturn[self::TEAM_BRAVO] = &amp;amp;$this-&amp;gt;aTeams[self::TEAM_BRAVO];&lt;br /&gt;
		}&lt;br /&gt;
		if($iFromTeam &amp;amp; self::TEAM_CHARLIE)&lt;br /&gt;
		{&lt;br /&gt;
			$aReturn[self::TEAM_CHARLIE] = &amp;amp;$this-&amp;gt;aTeams[self::TEAM_CHARLIE];&lt;br /&gt;
		}&lt;br /&gt;
		if($iFromTeam &amp;amp; self::TEAM_DELTA)&lt;br /&gt;
		{&lt;br /&gt;
			$aReturn[self::TEAM_DELTA] = &amp;amp;$this-&amp;gt;aTeams[self::TEAM_DELTA];&lt;br /&gt;
		}&lt;br /&gt;
		&lt;br /&gt;
		return $aReturn;&lt;br /&gt;
	} // public function getTeams($aFromTeam = self::TEAM_ALL)&lt;br /&gt;
	&lt;br /&gt;
	&lt;br /&gt;
	/**&lt;br /&gt;
	 * Returns the Gamemode&lt;br /&gt;
	 * &lt;br /&gt;
	 * @param integer $iType Possible values: REFRFESHX::GAMEMODE_FORMAT_INT, REFRFESHX::GAMEMODE_FORMAT_SHORTSTR, REFRFESHX::GAMEMODE_FORMAT_STR&lt;br /&gt;
	 * @return string/integer Game Mode&lt;br /&gt;
	*/&lt;br /&gt;
	public function getGameMode($iType = null)&lt;br /&gt;
	{&lt;br /&gt;
		if($iType == null)&lt;br /&gt;
		{&lt;br /&gt;
			$iType = self::GAMEMODE_FORMAT_INT;&lt;br /&gt;
		}&lt;br /&gt;
		&lt;br /&gt;
		if($iType == self::GAMEMODE_FORMAT_INT)&lt;br /&gt;
		{&lt;br /&gt;
			return $this-&amp;gt;aGame['iMode'];&lt;br /&gt;
		}&lt;br /&gt;
		if($iType == self::GAMEMODE_FORMAT_SHORTSTR)&lt;br /&gt;
		{&lt;br /&gt;
			return $this-&amp;gt;aGame['sModeShort'];&lt;br /&gt;
		}&lt;br /&gt;
		if($iType == self::GAMEMODE_FORMAT_STR)&lt;br /&gt;
		{&lt;br /&gt;
			return $this-&amp;gt;aGame['sMode'];&lt;br /&gt;
		}&lt;br /&gt;
	} // public function getGameMode($iType = null)&lt;br /&gt;
	&lt;br /&gt;
	&lt;br /&gt;
	/**&lt;br /&gt;
	 * Returns true if the Server is running a Teambased mode (TM, CTF, INF, HTF)&lt;br /&gt;
	 * &lt;br /&gt;
	 * @return integer Time left&lt;br /&gt;
	*/&lt;br /&gt;
	public function isTeamMode()&lt;br /&gt;
	{&lt;br /&gt;
		return $this-&amp;gt;aGame['bTeamMode'];&lt;br /&gt;
	} // public function isTeamMode()&lt;br /&gt;
	&lt;br /&gt;
	/**&lt;br /&gt;
	 * Returns time left on the Server&lt;br /&gt;
	 * &lt;br /&gt;
	 * @param bool $bAsTicks return as Ticks(integer) instead of Seconds(float)&lt;br /&gt;
	 * @return integer/float Time left&lt;br /&gt;
	*/&lt;br /&gt;
	public function getTimeLeft($bAsTicks = false)&lt;br /&gt;
	{&lt;br /&gt;
		return $bAsTicks?$this-&amp;gt;aGame['iTimeleftTicks']:$this-&amp;gt;aGame['fTimeleft'];&lt;br /&gt;
	} // public function getTimeLeft()&lt;br /&gt;
	&lt;br /&gt;
	/**&lt;br /&gt;
	 * Returns time passed on the Server&lt;br /&gt;
	 * &lt;br /&gt;
	 * @param bool $bAsTicks return as Ticks(integer) instead of Seconds(float)&lt;br /&gt;
	 * @return integer/float Time passed&lt;br /&gt;
	*/&lt;br /&gt;
	public function getTimePassed($bAsTicks = false)&lt;br /&gt;
	{&lt;br /&gt;
		return $bAsTicks?$this-&amp;gt;aGame['iTimepassedTicks']:$this-&amp;gt;aGame['fTimepassed'];&lt;br /&gt;
	} // public function getTimePassed()&lt;br /&gt;
	&lt;br /&gt;
	/**&lt;br /&gt;
	 * Returns time left on the Server&lt;br /&gt;
	 * &lt;br /&gt;
	 * @param bool $bAsTicks return as Ticks(integer) instead of Seconds(float)&lt;br /&gt;
	 * @return integer/float Time left&lt;br /&gt;
	*/&lt;br /&gt;
	public function getTimeLimit($bAsTicks = false)&lt;br /&gt;
	{&lt;br /&gt;
		return $bAsTicks?$this-&amp;gt;aGame['iTimelimitTicks']:$this-&amp;gt;aGame['fTimelimit'];&lt;br /&gt;
	} // public function getTimeLimit()&lt;br /&gt;
	&lt;br /&gt;
	/**&lt;br /&gt;
	 * Returns Cap/Kill Limit&lt;br /&gt;
	 * @return string Map Name&lt;br /&gt;
	*/&lt;br /&gt;
	public function getLimit()&lt;br /&gt;
	{&lt;br /&gt;
		return $this-&amp;gt;aGame['iLimit'];&lt;br /&gt;
	} // public function getLimit()&lt;br /&gt;
	&lt;br /&gt;
	/**&lt;br /&gt;
	 * Returns current Map on the Server&lt;br /&gt;
	 * @return string Map Name&lt;br /&gt;
	*/&lt;br /&gt;
	public function getMap()&lt;br /&gt;
	{&lt;br /&gt;
		return $this-&amp;gt;aGame['sMap'];&lt;br /&gt;
	} // public function getMap()&lt;br /&gt;
	&lt;br /&gt;
	/**&lt;br /&gt;
	 * Returns next-to-be-played Map&lt;br /&gt;
	 * @return string Next Map Name&lt;br /&gt;
	*/&lt;br /&gt;
	public function getNextMap()&lt;br /&gt;
	{&lt;br /&gt;
		return $this-&amp;gt;aGame['sNextMap'];&lt;br /&gt;
	} // public function getNextMap()&lt;br /&gt;
	&lt;br /&gt;
	/**&lt;br /&gt;
	 * Returns the best Player on the Server&lt;br /&gt;
	 * &lt;br /&gt;
	 * @param integer $iBestPlayer Possible values: REFRFESHX::BESTPLAYER_KILLS, REFRFESHX::BESTPLAYER_RATIO, REFRFESHX::BESTPLAYER_DEATHS&lt;br /&gt;
	 * @return array Playerarray&lt;br /&gt;
	*/&lt;br /&gt;
	public function getBestPlayer($iBestPlayer = null)&lt;br /&gt;
	{&lt;br /&gt;
		if($iBestPlayer == null)&lt;br /&gt;
		{&lt;br /&gt;
			$iBestPlayer = self::BESTPLAYER_KILLS;&lt;br /&gt;
		}&lt;br /&gt;
		&lt;br /&gt;
		$iBestTilNowKills = -1;&lt;br /&gt;
		$iBestTilNowRatio = -1;&lt;br /&gt;
		$iBestTilNowDeaths = 2147483647;&lt;br /&gt;
		&lt;br /&gt;
		foreach($this-&amp;gt;aPlayers as $iID =&amp;gt; $aPlayer)&lt;br /&gt;
		{&lt;br /&gt;
			if(self::TEAM_ALL &amp;amp; $aPlayer['iTeam']) // if not spectator&lt;br /&gt;
			{&lt;br /&gt;
				switch($iBestPlayer)&lt;br /&gt;
				{&lt;br /&gt;
					case self::BESTPLAYER_KILLS:&lt;br /&gt;
						if($aPlayer['iKills'] &amp;gt; $iBestTilNowKills)&lt;br /&gt;
						{&lt;br /&gt;
							$iBestTilNowID = $iID;&lt;br /&gt;
							$iBestTilNowKills = $aPlayer['iKills'];&lt;br /&gt;
						}&lt;br /&gt;
						if($aPlayer['iKills'] == $iBestTilNowKills &amp;amp;&amp;amp; $this-&amp;gt;aPlayers[$iBestTilNowID]['iDeaths'] &amp;gt; $aPlayer['iDeaths'])&lt;br /&gt;
						{&lt;br /&gt;
							$iBestTilNowID = $iID;&lt;br /&gt;
						}&lt;br /&gt;
					break;&lt;br /&gt;
				&lt;br /&gt;
					case self::BESTPLAYER_RATIO:&lt;br /&gt;
						if($aPlayer['fRatio'] &amp;gt; $iBestTilNowRatio)&lt;br /&gt;
						{&lt;br /&gt;
							$iBestTilNowID = $iID;&lt;br /&gt;
							$iBestTilNowRatio = $aPlayer['fRatio'];&lt;br /&gt;
						}&lt;br /&gt;
						if($aPlayer['fRatio'] == $iBestTilNowRatio &amp;amp;&amp;amp; $this-&amp;gt;aPlayers[$iBestTilNowID]['iKills'] &amp;lt; $aPlayer['iKills'])&lt;br /&gt;
						{&lt;br /&gt;
							$iBestTilNowID = $iID;&lt;br /&gt;
						}&lt;br /&gt;
					break;&lt;br /&gt;
				&lt;br /&gt;
					case self::BESTPLAYER_DEATHS:&lt;br /&gt;
						if($aPlayer['iDeaths'] &amp;lt; $iBestTilNowDeaths)&lt;br /&gt;
						{&lt;br /&gt;
							$iBestTilNowID = $iID;&lt;br /&gt;
							$iBestTilNowDeaths = $aPlayer['iDeaths'];&lt;br /&gt;
						}&lt;br /&gt;
						if($aPlayer['iDeaths'] == $iBestTilNowDeaths &amp;amp;&amp;amp; $this-&amp;gt;aPlayers[$iBestTilNowID]['iKills'] &amp;lt; $aPlayer['iKills'])&lt;br /&gt;
						{&lt;br /&gt;
							$iBestTilNowID = $iID;&lt;br /&gt;
						}&lt;br /&gt;
					break;&lt;br /&gt;
				}&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
		&lt;br /&gt;
		return $this-&amp;gt;aPlayers[$iBestTilNowID];&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	/**&lt;br /&gt;
	 * Returns Flag Positions&lt;br /&gt;
	 * &lt;br /&gt;
	 * @return array RedX,RedY,BlueX,BlueY array indices&lt;br /&gt;
	*/&lt;br /&gt;
	public function getFlags()&lt;br /&gt;
	{&lt;br /&gt;
		return array($this-&amp;gt;aGame['fRedFlagX'], $this-&amp;gt;aGame['fRedFlagY'],&lt;br /&gt;
					$this-&amp;gt;aGame['fBlueFlagX'], $this-&amp;gt;aGame['fBlueFlagY']);&lt;br /&gt;
	} // public function getFlags()&lt;br /&gt;
	&lt;br /&gt;
	/**&lt;br /&gt;
	 * Returns Red Flag X Position&lt;br /&gt;
	 * &lt;br /&gt;
	 * @return float RedX&lt;br /&gt;
	*/&lt;br /&gt;
	public function getRedFlagX()&lt;br /&gt;
	{&lt;br /&gt;
		return $this-&amp;gt;aGame['fRedFlagX'];&lt;br /&gt;
	} // public function getRedFlagX()&lt;br /&gt;
	&lt;br /&gt;
	/**&lt;br /&gt;
	 * Returns Red Flag Y Position&lt;br /&gt;
	 * &lt;br /&gt;
	 * @return float RedY&lt;br /&gt;
	*/&lt;br /&gt;
	public function getRedFlagY()&lt;br /&gt;
	{&lt;br /&gt;
		return $this-&amp;gt;aGame['fRedFlagY'];&lt;br /&gt;
	} // public function getRedFlagY()&lt;br /&gt;
	&lt;br /&gt;
	/**&lt;br /&gt;
	 * Returns Blue Flag X Position&lt;br /&gt;
	 * &lt;br /&gt;
	 * @return float BlueX&lt;br /&gt;
	*/&lt;br /&gt;
	public function getBlueFlagX()&lt;br /&gt;
	{&lt;br /&gt;
		return $this-&amp;gt;aGame['fBlueFlagX'];&lt;br /&gt;
	} // public function getBlueFlagX()&lt;br /&gt;
	&lt;br /&gt;
	/**&lt;br /&gt;
	 * Returns Blue Flag Y Position&lt;br /&gt;
	 * &lt;br /&gt;
	 * @return float BlueY&lt;br /&gt;
	*/&lt;br /&gt;
	public function getBlueFlagY()&lt;br /&gt;
	{&lt;br /&gt;
		return $this-&amp;gt;aGame['fBlueFlagY'];&lt;br /&gt;
	} // public function getBlueFlagY()&lt;br /&gt;
	&lt;br /&gt;
	/**&lt;br /&gt;
	 * Returns Number of maximal Players&lt;br /&gt;
	 * &lt;br /&gt;
	 * @return integer MaxPlayers&lt;br /&gt;
	*/&lt;br /&gt;
	public function getMaxPlayers()&lt;br /&gt;
	{&lt;br /&gt;
		return $this-&amp;gt;aGame['iMaxPlayers'];&lt;br /&gt;
	} // public function getMaxPlayers()&lt;br /&gt;
	&lt;br /&gt;
	/**&lt;br /&gt;
	 * Returns Number of maximal Spectators&lt;br /&gt;
	 * &lt;br /&gt;
	 * @return integer MaxSpectators&lt;br /&gt;
	*/&lt;br /&gt;
	public function getMaxSpectators()&lt;br /&gt;
	{&lt;br /&gt;
		return $this-&amp;gt;aGame['iMaxSpectators'];&lt;br /&gt;
	} // public function getMaxSpectators()&lt;br /&gt;
	&lt;br /&gt;
	/**&lt;br /&gt;
	 * Returns Number of current Players&lt;br /&gt;
	 * &lt;br /&gt;
	 * @return integer current Number of Players&lt;br /&gt;
	*/&lt;br /&gt;
	public function getPlayerCount()&lt;br /&gt;
	{&lt;br /&gt;
		return $this-&amp;gt;aGame['iPlayerCount'];&lt;br /&gt;
	} // public function getPlayerCount()&lt;br /&gt;
	&lt;br /&gt;
	/**&lt;br /&gt;
	 * Returns Number of maximal Spectators&lt;br /&gt;
	 * &lt;br /&gt;
	 * @return integer current Number of Spectators&lt;br /&gt;
	*/&lt;br /&gt;
	public function getSpectatorCount()&lt;br /&gt;
	{&lt;br /&gt;
		return $this-&amp;gt;aGame['iSpectatorCount'];&lt;br /&gt;
	} // public function getSpectatorCount()&lt;br /&gt;
	&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Ruby (Possibly not working)===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;ruby&amp;quot;&amp;gt;&lt;br /&gt;
socket = TCPsocket.open(server, port)&lt;br /&gt;
socket.puts(password)&lt;br /&gt;
 &lt;br /&gt;
while data=socket.gets.strip&lt;br /&gt;
  if data =~ /REFRESHX/&lt;br /&gt;
    refreshx = &amp;quot;&amp;quot;&lt;br /&gt;
    socket.read(1608, refreshx)&lt;br /&gt;
    info = refreshx.unpack(&amp;quot;CA24&amp;quot;*32 + &amp;quot;C32S32C32S32L32C32&amp;quot; + &amp;quot;C32&amp;quot;*4 + &amp;quot;e32e32eeeeS4CA16llSCCCCCA16&amp;quot;)&lt;br /&gt;
      names = Array.new(32, &amp;quot;&amp;quot;)&lt;br /&gt;
      teams = Array.new(32, 0)&lt;br /&gt;
      kills = Array.new(32, 0)&lt;br /&gt;
      flags = Array.new(32, 0) #&amp;lt;-- NEW&lt;br /&gt;
      deaths = Array.new(32, 0)&lt;br /&gt;
      pings = Array.new(32, 0) #&amp;lt;-- integer&lt;br /&gt;
      numbers = Array.new(32, 0)&lt;br /&gt;
      ips =Array.new(32, Array.new(4, 0))&lt;br /&gt;
      X = Array.new(32, 0) #&amp;lt;-- NEW&lt;br /&gt;
      Y = Array.new(32, 0) #&amp;lt;-- NEW&lt;br /&gt;
      RedFlagX = 0 #&amp;lt;-- NEW&lt;br /&gt;
      RedFlagY = 0 #&amp;lt;-- NEW&lt;br /&gt;
      BlueFlagX = 0 #&amp;lt;-- NEW&lt;br /&gt;
      BlueFlagY = 0 #&amp;lt;-- NEW&lt;br /&gt;
      teamscore = Array.new(4, 0)&lt;br /&gt;
      mapname = &amp;quot;&amp;quot;&lt;br /&gt;
      timelimit = 0&lt;br /&gt;
      currenttime = 0&lt;br /&gt;
      killlimit = 0&lt;br /&gt;
      gamestyle = 0&lt;br /&gt;
      MaxPlayers = 0 #&amp;lt;-- NEW&lt;br /&gt;
      MaxSpectators = 0 #&amp;lt;-- NEW&lt;br /&gt;
      Passworded = 0 #&amp;lt;-- NEW&lt;br /&gt;
      NextMap= &amp;quot;&amp;quot; #&amp;lt;-- NEW&lt;br /&gt;
      32.times do |i|&lt;br /&gt;
        names[i] = info[2*i+1].to_s[0, info[2*i]]&lt;br /&gt;
        teams[i] = info[i+64]&lt;br /&gt;
        kills[i] = info[i+96]&lt;br /&gt;
        flags[i] = info[i+128]&lt;br /&gt;
        deaths[i] = info[i+160]&lt;br /&gt;
        pings[i] = info[i+192]&lt;br /&gt;
        numbers[i] = info[i+224]&lt;br /&gt;
        4.times do |j|&lt;br /&gt;
          ips[i][j] = info[(i-1)*4+j+256]&lt;br /&gt;
        end&lt;br /&gt;
      end&lt;br /&gt;
      32.times do |i|&lt;br /&gt;
        X[i] = info[i+384] #&amp;lt;-- NEW&lt;br /&gt;
        Y[i] = info[i+416] #&amp;lt;-- NEW&lt;br /&gt;
      end&lt;br /&gt;
      RedFlagX = info[448] #&amp;lt;-- NEW&lt;br /&gt;
      RedFlagY = info[449] #&amp;lt;-- NEW&lt;br /&gt;
      BlueFlagX = info[450] #&amp;lt;-- NEW&lt;br /&gt;
      BlueFlagY = info[451] #&amp;lt;-- NEW&lt;br /&gt;
      4.times do |i|&lt;br /&gt;
        teamscore[i] = info[i+452]&lt;br /&gt;
      end&lt;br /&gt;
      mapname = info[457][0,info[456]]&lt;br /&gt;
      timelimit = info[458]&lt;br /&gt;
      currenttime = info[459]&lt;br /&gt;
      killlimit = info[460]&lt;br /&gt;
      gamestyle = info[461]&lt;br /&gt;
      MaxPlayers = info[462] #&amp;lt;-- NEW&lt;br /&gt;
      MaxSpectators = info[463] #&amp;lt;-- NEW&lt;br /&gt;
      Passworded = info[464] #&amp;lt;-- NEW&lt;br /&gt;
      NextMap= info[466][0,info[465]] #&amp;lt;-- NEW&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Haskell===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;haskell&amp;quot;&amp;gt;&lt;br /&gt;
module Main where&lt;br /&gt;
{-&lt;br /&gt;
 - As with almost every code ever written in Haskell, this can surely be cut down to&lt;br /&gt;
 - less than half of it's current size, but for demonstration purpose I'll leave it &lt;br /&gt;
 - as is :)&lt;br /&gt;
 - &lt;br /&gt;
 - The Data.Binary module is not part of the current GHC distribution (GHC 6.10.3).&lt;br /&gt;
 - However, it's in the HackageDB on Haskell.org:&lt;br /&gt;
 - http://hackage.haskell.org/package/binary-0.5.0.1&lt;br /&gt;
 -}&lt;br /&gt;
&lt;br /&gt;
import System.IO&lt;br /&gt;
import Control.Exception&lt;br /&gt;
import Control.Monad&lt;br /&gt;
import qualified Data.ByteString.Lazy.Char8 as B8&lt;br /&gt;
import Data.Binary.Get -- Sadly not part of the standart GHC distribution, see above&lt;br /&gt;
import Data.Word&lt;br /&gt;
import Data.List&lt;br /&gt;
import Control.Applicative&lt;br /&gt;
import Network&lt;br /&gt;
import Unsafe.Coerce&lt;br /&gt;
&lt;br /&gt;
-- Hardcoded login data&lt;br /&gt;
serverHost = &amp;quot;localhost&amp;quot;&lt;br /&gt;
serverPort = 23073&lt;br /&gt;
serverPass = &amp;quot;lol&amp;quot;&lt;br /&gt;
&lt;br /&gt;
-- A team&lt;br /&gt;
data Team = None | Alpha | Bravo | Charlie | Delta | Spectator&lt;br /&gt;
          deriving (Show, Read, Eq, Ord)&lt;br /&gt;
&lt;br /&gt;
-- Gamestyles&lt;br /&gt;
data GameStyle = Deathmatch | Pointmatch | Teammatch | CaptureTheFlag | Rambomatch  | Infiltration | HoldTheFlag&lt;br /&gt;
               deriving (Show, Read, Eq, Ord)&lt;br /&gt;
&lt;br /&gt;
-- A single player&lt;br /&gt;
data Player = Player { nick   :: String,&lt;br /&gt;
                       kills  :: Int,&lt;br /&gt;
                       caps   :: Int,&lt;br /&gt;
                       deaths :: Int,&lt;br /&gt;
                       team   :: Team,&lt;br /&gt;
                       userId :: Word8,&lt;br /&gt;
                       ping   :: Word32,&lt;br /&gt;
                       ip     :: [Word8],&lt;br /&gt;
                       coords :: (Float, Float) }&lt;br /&gt;
            deriving (Show, Read, Eq, Ord)&lt;br /&gt;
&lt;br /&gt;
-- Everything combined into functional awesomeness&lt;br /&gt;
data Server = Server { currentMap  :: String,&lt;br /&gt;
                       nextMap     :: String,&lt;br /&gt;
                       gameStyle   :: GameStyle,&lt;br /&gt;
                       players     :: [Player],&lt;br /&gt;
                       maxPlayers  :: Int,&lt;br /&gt;
                       maxSpecs    :: Int,&lt;br /&gt;
                       teamScores  :: [Int],&lt;br /&gt;
                       killLimit   :: Int,&lt;br /&gt;
                       timeLimit   :: Int,&lt;br /&gt;
                       currentTime :: Int,&lt;br /&gt;
                       redFlagXY   :: (Float, Float),&lt;br /&gt;
                       bluFlagXY   :: (Float, Float),&lt;br /&gt;
                       hasPassword :: Int }&lt;br /&gt;
            deriving (Show, Read, Eq, Ord)&lt;br /&gt;
            &lt;br /&gt;
main :: IO ()&lt;br /&gt;
main = withSocketsDo $ do -- withSocketsDo initializes Winsock for Windows but is completly harmless for Unix&lt;br /&gt;
   state &amp;lt;- connect serverHost serverPort serverPass -- Using the Maybe type, did we succeed in connecting?&lt;br /&gt;
   case state of&lt;br /&gt;
      Just handle -&amp;gt; refresh handle &amp;gt;&amp;gt; disconnect handle -- Yes, refresh and disconnect&lt;br /&gt;
      Nothing     -&amp;gt; putStrLn $ &amp;quot;Could not connect to the server. Please check\n&amp;quot; ++ -- Bawww!&lt;br /&gt;
                                &amp;quot;your connection details and the password.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
connect :: String -&amp;gt; Int -&amp;gt; String -&amp;gt; IO (Maybe Handle)&lt;br /&gt;
connect host port pass = do&lt;br /&gt;
   h &amp;lt;- try $ connectTo host (PortNumber $ fromIntegral port) :: IO (Either IOException Handle) -- try connecting&lt;br /&gt;
   case h of&lt;br /&gt;
      Left e       -&amp;gt; return Nothing -- Fail&lt;br /&gt;
      Right handle -&amp;gt; do&lt;br /&gt;
         hSetBuffering handle NoBuffering -- Disable buffering&lt;br /&gt;
         f &amp;lt;- hGetLine handle             -- Server greeting us?&lt;br /&gt;
         if f == &amp;quot;Soldat Admin Connection Established.\r&amp;quot; -- Yep.&lt;br /&gt;
            then do &lt;br /&gt;
               hPutStrLn handle pass -- Send the password&lt;br /&gt;
               result &amp;lt;- hGetLine handle -- check the result&lt;br /&gt;
               if result == &amp;quot;Welcome, you are in command of the server now.\r&amp;quot; &lt;br /&gt;
                  then do replicateM_ 2 (hGetLine handle) -- Yay, we'Re in. Get rid of those 2 lines telling us what to do&lt;br /&gt;
                          return $ Just handle -- return the handle into the IO Monad and stop evaluating&lt;br /&gt;
                  else return Nothing -- Fail again&lt;br /&gt;
            else return Nothing -- Triple Fail&lt;br /&gt;
&lt;br /&gt;
disconnect :: Handle -&amp;gt; IO ()&lt;br /&gt;
disconnect handle = hClose handle -- Cut the wire&lt;br /&gt;
&lt;br /&gt;
refresh :: Handle -&amp;gt; IO ()&lt;br /&gt;
refresh handle = do &lt;br /&gt;
   hPutStrLn handle &amp;quot;REFRESHX&amp;quot; -- REFRESH!&lt;br /&gt;
   result &amp;lt;- hGetLine handle  -- Refresh?&lt;br /&gt;
   &lt;br /&gt;
   if result == &amp;quot;REFRESHX\r&amp;quot;&lt;br /&gt;
      then do refreshData &amp;lt;- B8.hGet handle 1608 -- REFRESH! Get it!&lt;br /&gt;
              print $ runGet readServerInfo refreshData -- Parse it! Print it!&lt;br /&gt;
      else return () -- Fail :(&lt;br /&gt;
&lt;br /&gt;
readServerInfo :: Get Server&lt;br /&gt;
readServerInfo = do&lt;br /&gt;
   names       &amp;lt;- replicateM 32 $ parseOneString 24 -- list of names&lt;br /&gt;
   teams       &amp;lt;- replicateM 32 getWord8            -- list of teams&lt;br /&gt;
   kills       &amp;lt;- replicateM 32 getWord16le         -- list of kills&lt;br /&gt;
   caps        &amp;lt;- replicateM 32 getWord8&lt;br /&gt;
   deaths      &amp;lt;- replicateM 32 getWord16le         -- list of deaths...&lt;br /&gt;
   pings       &amp;lt;- replicateM 32 getWord32le            -- pings of lists&lt;br /&gt;
   ids         &amp;lt;- replicateM 32 getWord8            -- of ids list&lt;br /&gt;
   ips         &amp;lt;- replicateM 32 parseOneIP          -- IPS!&lt;br /&gt;
   xs          &amp;lt;- replicateM 32 getWord32le&lt;br /&gt;
   ys          &amp;lt;- replicateM 32 getWord32le&lt;br /&gt;
   redXY       &amp;lt;- replicateM 2 getWord32le&lt;br /&gt;
   bluXY       &amp;lt;- replicateM 2 getWord32le&lt;br /&gt;
   teamscores  &amp;lt;- replicateM 4 getWord16le          -- team scores..&lt;br /&gt;
   mapname     &amp;lt;- parseOneString 16                 -- Zeh map&lt;br /&gt;
   timelimit   &amp;lt;- getWord32le                       -- time limit&lt;br /&gt;
   currenttime &amp;lt;- getWord32le                       -- time again, just not limit&lt;br /&gt;
   killlimit   &amp;lt;- getWord16le                       -- kills limit&lt;br /&gt;
   gamestyle   &amp;lt;- getWord8                          -- gamestyle!&lt;br /&gt;
   maxP        &amp;lt;- getWord8&lt;br /&gt;
   maxSpec     &amp;lt;- getWord8&lt;br /&gt;
   pass        &amp;lt;- getWord8                          -- BUG? This is always 0x01 (True).&lt;br /&gt;
                                                    -- Might be server related, as...&lt;br /&gt;
   nextmap     &amp;lt;- parseOneString 16                 -- ...this next map here reads very well, uncorrupted.&lt;br /&gt;
&lt;br /&gt;
   -- Because the name is the only reliable source that can not be 0 or empty for a valid player,&lt;br /&gt;
   -- we're using it to count how many players we have&lt;br /&gt;
   let numPlayers = length $ filter (not . B8.null) names&lt;br /&gt;
   -- Turn it into a list am BAM!&lt;br /&gt;
   let players = take numPlayers $ getZipList $ zipPlayers &lt;br /&gt;
                    &amp;lt;$&amp;gt; ZipList names  -- Because the player informations&lt;br /&gt;
                    &amp;lt;*&amp;gt; ZipList teams  -- are split up all over the place&lt;br /&gt;
                    &amp;lt;*&amp;gt; ZipList kills  -- in about 10 different arrays,&lt;br /&gt;
                    &amp;lt;*&amp;gt; ZipList caps   -- we have to use ZipList.&lt;br /&gt;
                    &amp;lt;*&amp;gt; ZipList deaths -- zipWith7 worked well for REFRESH&lt;br /&gt;
                    &amp;lt;*&amp;gt; ZipList pings  -- But as for the case of REFRESHXH&lt;br /&gt;
                    &amp;lt;*&amp;gt; ZipList ids    -- we need more lists to zip!&lt;br /&gt;
                    &amp;lt;*&amp;gt; ZipList ips    -- This one actually scales much better&lt;br /&gt;
                    &amp;lt;*&amp;gt; ZipList xs     -- And looks kind of awesome, too!&lt;br /&gt;
                    &amp;lt;*&amp;gt; ZipList ys&lt;br /&gt;
   &lt;br /&gt;
   -- Return all that junk&lt;br /&gt;
   return Server { currentMap  = B8.unpack mapname,&lt;br /&gt;
                   nextMap     = B8.unpack nextmap,&lt;br /&gt;
                   gameStyle   = numToGamestyle gamestyle,&lt;br /&gt;
                   players     = players,&lt;br /&gt;
                   maxPlayers  = fromIntegral maxP,&lt;br /&gt;
                   maxSpecs    = fromIntegral maxSpec,&lt;br /&gt;
                   teamScores  = map fromIntegral teamscores,&lt;br /&gt;
                   killLimit   = fromIntegral killlimit,&lt;br /&gt;
                   timeLimit   = fromIntegral timelimit,&lt;br /&gt;
                   currentTime = fromIntegral currenttime,&lt;br /&gt;
                   redFlagXY   = (floatify $ redXY !! 0, floatify $ redXY !! 1),&lt;br /&gt;
                   bluFlagXY   = (floatify $ bluXY !! 0, floatify $ bluXY !! 1),&lt;br /&gt;
                   hasPassword = fromIntegral pass }&lt;br /&gt;
                   &lt;br /&gt;
   -- I don't feel like commenting more :(&lt;br /&gt;
   -- Straight forward if you know a bit of Haskell.&lt;br /&gt;
 where zipPlayers n t k c d p di pi x y = &lt;br /&gt;
          Player { nick    = B8.unpack n,&lt;br /&gt;
                   kills   = fromIntegral k,&lt;br /&gt;
                   caps    = fromIntegral c,&lt;br /&gt;
                   deaths  = fromIntegral d,&lt;br /&gt;
                   team    = numToTeam t,&lt;br /&gt;
                   userId  = di,&lt;br /&gt;
                   ping    = p,&lt;br /&gt;
                   ip      = pi,&lt;br /&gt;
                   coords  = (floatify x, floatify y) }&lt;br /&gt;
                   &lt;br /&gt;
       floatify n = unsafeCoerce n :: Float     &lt;br /&gt;
       &lt;br /&gt;
       parseOneString n = do &lt;br /&gt;
          len &amp;lt;- fmap fromIntegral getWord8&lt;br /&gt;
          str &amp;lt;- getLazyByteString n&lt;br /&gt;
          return $ B8.take len str&lt;br /&gt;
          &lt;br /&gt;
       parseOneIP = replicateM 4 getWord8&lt;br /&gt;
       &lt;br /&gt;
       numToGamestyle n = case n of&lt;br /&gt;
          0 -&amp;gt; Deathmatch&lt;br /&gt;
          1 -&amp;gt; Pointmatch&lt;br /&gt;
          2 -&amp;gt; Teammatch&lt;br /&gt;
          3 -&amp;gt; CaptureTheFlag&lt;br /&gt;
          4 -&amp;gt; Rambomatch&lt;br /&gt;
          5 -&amp;gt; Infiltration&lt;br /&gt;
          6 -&amp;gt; HoldTheFlag&lt;br /&gt;
          &lt;br /&gt;
       numToTeam n = case n of&lt;br /&gt;
          0 -&amp;gt; None&lt;br /&gt;
          1 -&amp;gt; Alpha&lt;br /&gt;
          2 -&amp;gt; Bravo&lt;br /&gt;
          3 -&amp;gt; Charlie&lt;br /&gt;
          4 -&amp;gt; Delta&lt;br /&gt;
          5 -&amp;gt; Spectator&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Pascal===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
type&lt;br /&gt;
  playerX = record&lt;br /&gt;
    namelen: byte;&lt;br /&gt;
    name: Array[1..24] of char;&lt;br /&gt;
      tagidlen: byte;&lt;br /&gt;
      tagid: Array[1..11] of char;&lt;br /&gt;
    team: byte;&lt;br /&gt;
    kills: word;&lt;br /&gt;
    caps: byte;&lt;br /&gt;
    deaths: word;&lt;br /&gt;
    ping: cardinal;&lt;br /&gt;
    id: byte;&lt;br /&gt;
    ip: Array[1..4] of byte;&lt;br /&gt;
    x: single;&lt;br /&gt;
    y: single;&lt;br /&gt;
end;&lt;br /&gt;
&lt;br /&gt;
type&lt;br /&gt;
  refreshX = record&lt;br /&gt;
    players: Array[0..31] of playerX;&lt;br /&gt;
    redflagx: single;&lt;br /&gt;
    redflagy: single;&lt;br /&gt;
    blueflagx: single;&lt;br /&gt;
    blueflagy: single;&lt;br /&gt;
    alphascore: word;&lt;br /&gt;
    bravoscore: word;&lt;br /&gt;
    charliescore: word;&lt;br /&gt;
    deltascore: word;&lt;br /&gt;
    currentmaplen: byte;&lt;br /&gt;
    currentmap: Array[1..16] of char;&lt;br /&gt;
    timelimit: longint;&lt;br /&gt;
    timeleft: longint;&lt;br /&gt;
    limit: byte;&lt;br /&gt;
    gamestyle: byte;&lt;br /&gt;
    maxplayers: byte;&lt;br /&gt;
    maxspectators: byte;&lt;br /&gt;
    password: byte;&lt;br /&gt;
    nextmaplen: byte;&lt;br /&gt;
    nextmap: Array[1..16] of char;&lt;br /&gt;
end;&lt;br /&gt;
&lt;br /&gt;
var&lt;br /&gt;
  packet: ^refreshX;&lt;br /&gt;
&lt;br /&gt;
procedure RefreshX(buffer: array of byte);&lt;br /&gt;
var&lt;br /&gt;
  i: byte;&lt;br /&gt;
begin&lt;br /&gt;
  GetMem(packet,sizeof(refreshX));&lt;br /&gt;
  for i := 0 to 31 do begin&lt;br /&gt;
    move(buffer[i*25],packet^.players[i].namelen, 1);&lt;br /&gt;
    move(buffer[i*25+1],packet^.players[i].name, 24);&lt;br /&gt;
    move(buffer[i+800],packet^.players[i].tagidlen, 1);&lt;br /&gt;
    move(buffer[i*12+801], packet^.players[i].tagid, 11);&lt;br /&gt;
    move(buffer[i+1184], packet^.players[i].team, 1);&lt;br /&gt;
    move(buffer[i*2+1216], packet^.players[i].kills, 2);&lt;br /&gt;
    move(buffer[i+1280], packet^.players[i].caps, 1);&lt;br /&gt;
    move(buffer[i*2+1312], packet^.players[i].deaths, 2);&lt;br /&gt;
    move(buffer[i*4+1376], packet^.players[i].ping, 4);&lt;br /&gt;
    move(buffer[i+1504], packet^.players[i].id, 1);&lt;br /&gt;
    move(buffer[i*4+1536], packet^.players[i].ip, 4);&lt;br /&gt;
    move(buffer[i*4+1664], packet^.players[i].x, 4);&lt;br /&gt;
    move(buffer[i*4+1792], packet^.players[i].y, 4);&lt;br /&gt;
  end;&lt;br /&gt;
  move(buffer[1920], packet^.redflagx, 4);&lt;br /&gt;
  move(buffer[1924], packet^.redflagy, 4);&lt;br /&gt;
  move(buffer[1928], packet^.blueflagx, 4);&lt;br /&gt;
  move(buffer[1932], packet^.blueflagy, 4);&lt;br /&gt;
  move(buffer[1936], packet^.alphascore, 2);&lt;br /&gt;
  move(buffer[1938], packet^.bravoscore, 2);&lt;br /&gt;
  move(buffer[1940], packet^.charliescore, 2);&lt;br /&gt;
  move(buffer[1942], packet^.deltascore, 2);&lt;br /&gt;
  move(buffer[1944], packet^.currentmaplen, 1);&lt;br /&gt;
  move(buffer[1945], packet^.currentmap, 16);&lt;br /&gt;
  move(buffer[1961], packet^.timelimit, 4);&lt;br /&gt;
  move(buffer[1965], packet^.timeleft, 4);&lt;br /&gt;
  move(buffer[1969], packet^.limit, 2);&lt;br /&gt;
  move(buffer[1971], packet^.gamestyle, 1);&lt;br /&gt;
  move(buffer[1972], packet^.maxplayers, 1);&lt;br /&gt;
  move(buffer[1973], packet^.maxspectators, 1);&lt;br /&gt;
  move(buffer[1974], packet^.password, 1);&lt;br /&gt;
  move(buffer[1975], packet^.nextmaplen, 1);&lt;br /&gt;
  move(buffer[1976], packet^.nextmap, 16);&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[Refresh|REFRESH]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Server]]&lt;/div&gt;</summary>
		<author><name>ExHunter</name></author>	</entry>

	<entry>
		<id>https://wiki.soldat.pl/index.php?title=TWeapon.WType&amp;diff=1531</id>
		<title>TWeapon.WType</title>
		<link rel="alternate" type="text/html" href="https://wiki.soldat.pl/index.php?title=TWeapon.WType&amp;diff=1531"/>
				<updated>2014-08-30T17:46:01Z</updated>
		
		<summary type="html">&lt;p&gt;ExHunter: /* Description */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; '''''property WType: Byte'''''&lt;br /&gt;
  Access mode: R&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
Weapon ID. &lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|-&lt;br /&gt;
! ID&lt;br /&gt;
! Weapon&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Socom&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Deagles&lt;br /&gt;
|-&lt;br /&gt;
| 2 || HK MP5&lt;br /&gt;
|-&lt;br /&gt;
| 3 || AK 74&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Steyr&lt;br /&gt;
|-&lt;br /&gt;
| 5 || Spas&lt;br /&gt;
|-&lt;br /&gt;
| 6 || Ruger&lt;br /&gt;
|-&lt;br /&gt;
| 7 || M79&lt;br /&gt;
|-&lt;br /&gt;
| 8 || Barret&lt;br /&gt;
|-&lt;br /&gt;
| 9 || Minimi&lt;br /&gt;
|-&lt;br /&gt;
| 10 || Minigun&lt;br /&gt;
|-&lt;br /&gt;
| 11 || Flamer&lt;br /&gt;
|-&lt;br /&gt;
| 12 || Bow&lt;br /&gt;
|-&lt;br /&gt;
| 13 || Flame Bow&lt;br /&gt;
|-&lt;br /&gt;
| 14 || Knife&lt;br /&gt;
|-&lt;br /&gt;
| 15 || Chainsaw&lt;br /&gt;
|-&lt;br /&gt;
| 16 || LAW&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
[[Category:TWeapon]]&lt;/div&gt;</summary>
		<author><name>ExHunter</name></author>	</entry>

	<entry>
		<id>https://wiki.soldat.pl/index.php?title=TWeapon.WType&amp;diff=1530</id>
		<title>TWeapon.WType</title>
		<link rel="alternate" type="text/html" href="https://wiki.soldat.pl/index.php?title=TWeapon.WType&amp;diff=1530"/>
				<updated>2014-08-30T17:45:01Z</updated>
		
		<summary type="html">&lt;p&gt;ExHunter: /* Description */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; '''''property WType: Byte'''''&lt;br /&gt;
  Access mode: R&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
Weapon ID. &lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|-&lt;br /&gt;
! ID&lt;br /&gt;
! Weapon&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Socom&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Deagles&lt;br /&gt;
|-&lt;br /&gt;
| 2 || HK MP5&lt;br /&gt;
|-&lt;br /&gt;
| 3 || AK 74&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Steyr&lt;br /&gt;
|-&lt;br /&gt;
| 5 || Spas&lt;br /&gt;
|-&lt;br /&gt;
| 6 || Ruger&lt;br /&gt;
|-&lt;br /&gt;
| 7 || M79&lt;br /&gt;
|-&lt;br /&gt;
| 8 || Barret&lt;br /&gt;
|-&lt;br /&gt;
| 9 || Minimi&lt;br /&gt;
|-&lt;br /&gt;
| 10 || Minigun&lt;br /&gt;
|-&lt;br /&gt;
| 11 || Flamer&lt;br /&gt;
|-&lt;br /&gt;
| 12 || Bow&lt;br /&gt;
|-&lt;br /&gt;
| 13 || Flame Bow&lt;br /&gt;
|-&lt;br /&gt;
| 14 || Knife&lt;br /&gt;
|-&lt;br /&gt;
| 15 || Chainsaw&lt;br /&gt;
|-&lt;br /&gt;
| 16 || LAW&lt;br /&gt;
|-&lt;br /&gt;
| 50 || Grenade&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
[[Category:TWeapon]]&lt;/div&gt;</summary>
		<author><name>ExHunter</name></author>	</entry>

	<entry>
		<id>https://wiki.soldat.pl/index.php?title=TMap.NextMap&amp;diff=1258</id>
		<title>TMap.NextMap</title>
		<link rel="alternate" type="text/html" href="https://wiki.soldat.pl/index.php?title=TMap.NextMap&amp;diff=1258"/>
				<updated>2014-01-03T19:38:38Z</updated>
		
		<summary type="html">&lt;p&gt;ExHunter: Created page with &amp;quot;==Description== Sets map to Nextmap.&amp;lt;br&amp;gt;  Category:TMap&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Description==&lt;br /&gt;
Sets map to Nextmap.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:TMap]]&lt;/div&gt;</summary>
		<author><name>ExHunter</name></author>	</entry>

	<entry>
		<id>https://wiki.soldat.pl/index.php?title=TMap&amp;diff=1257</id>
		<title>TMap</title>
		<link rel="alternate" type="text/html" href="https://wiki.soldat.pl/index.php?title=TMap&amp;diff=1257"/>
				<updated>2014-01-03T19:37:20Z</updated>
		
		<summary type="html">&lt;p&gt;ExHunter: /* Members */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Inheritance==&lt;br /&gt;
*[[TMap]]&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
Used to access information on player's field of vision, get a flag's pointer or creating new objects or spawnpoints on the map.&lt;br /&gt;
&lt;br /&gt;
 '''This class is assigned to global variable &amp;quot;[[Global_Variables.Map|Map]]&amp;quot;'''&lt;br /&gt;
&lt;br /&gt;
==Members==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|-&lt;br /&gt;
! Member declaration !! Access mode&lt;br /&gt;
|-&lt;br /&gt;
| function [[TMap.RayCast|RayCast]](X1,Y1,X2,Y2:Single; Player,Flag,Bullet,CheckCollider:Boolean; Team:Byte):Boolean&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| function [[TMap.RayCastVector|RayCastVector]](A,B:[[TVector]]; Player,Flag,Bullet,CheckCollider:Boolean; Team:Byte):Boolean&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| function [[TMap.AddObject|AddObject]](Obj:[[TNewMapObject]]):[[TActiveMapObject]]&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| function [[TMap.AddSpawnPoint|AddSpawnPoint]](Spawn:[[TNewSpawnPoint]]):[[TActiveSpawnPoint]]&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| procedure [[TMap.NextMap|NextMap]]&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| property [[TMap.Objects|Objects]][ID: Byte ]: [[TActiveMapObject]]&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | R&lt;br /&gt;
|-&lt;br /&gt;
| property [[TMap.Spawns|Spawns]][ID: Byte]: [[TActiveSpawnPoint]]&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | R&lt;br /&gt;
|-&lt;br /&gt;
| property [[TMap.RedFlag|RedFlag]]: [[TActiveFlag]]&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | R&lt;br /&gt;
|-&lt;br /&gt;
| property [[TMap.BlueFlag|BlueFlag]]: [[TActiveFlag]]&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | R&lt;br /&gt;
|-&lt;br /&gt;
| property [[TMap.YellowFlag|YellowFlag]]: [[TActiveFlag]]&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | R&lt;br /&gt;
|-&lt;br /&gt;
| property [[TMap.OnBeforeMapChange|OnBeforeMapChange]]: [[TOnBeforeMapChangeEvent]]&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | RW&lt;br /&gt;
|-&lt;br /&gt;
| property [[TMap.OnAfterMapChange|OnAfterMapChange]]: [[TOnAfterMapChangeEvent]]&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | RW&lt;br /&gt;
|}&lt;br /&gt;
[[Category: Classes]]&lt;/div&gt;</summary>
		<author><name>ExHunter</name></author>	</entry>

	</feed>