Tag
Tigereye's Allegiance Gizmo (TAG) is a replacement for AGMNet, providing logging services for Allegiance games. GameServer Administrators can run TAG on their systems next to their Allegiance Gameservers to collect ingame events and upload them to ASGS (provided their server has been "cleared" to post statistics).
TAG allows admins and authorised personal to send messages as HQ to current or all games on the server. It allows also to tag games, for further investigations of @Alleg.
How does TAG work
TAG hooks into the Allegiance server and records events like chat, kills, ejects, basekills, basecaptures and game settings. TAG stores this data into a XML file. After the game ends, TAG sends the recorded game data to the ASGS server, which handles the rank system.
TAG XML file
Below you find the XML schema of TAG XML files. [code]<?xml version="1.0" standalone="yes"?> <GameDataset>
<xs:schema id="GameDataset" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"> <xs:element name="GameDataset" msdata:IsDataSet="true"> <xs:complexType> <xs:choice maxOccurs="unbounded"> <xs:element name="Game"> <xs:complexType> <xs:sequence> <xs:element name="GameID" type="xs:int" /> <xs:element name="GameName" type="xs:string" /> <xs:element name="CoreFile" type="xs:string" /> <xs:element name="MapName" type="xs:string" /> <xs:element name="SquadGame" type="xs:boolean" /> <xs:element name="Conquest" type="xs:boolean" /> <xs:element name="DeathMatch" type="xs:boolean" /> <xs:element name="DeathmatchGoal" type="xs:int" minOccurs="0" /> <xs:element name="FriendlyFire" type="xs:boolean" /> <xs:element name="RevealMap" type="xs:boolean" minOccurs="0" /> <xs:element name="AllowDevelopments" type="xs:boolean" /> <xs:element name="AllowShipyards" type="xs:boolean" /> <xs:element name="AllowDefections" type="xs:boolean" /> <xs:element name="InvulnerableStations" type="xs:boolean" /> <xs:element name="StatsCount" type="xs:boolean" /> <xs:element name="MaxImbalance" type="xs:int" /> <xs:element name="StartingMoney" type="xs:float" /> <xs:element name="TotalMoney" type="xs:float" /> <xs:element name="Resources" type="xs:int" /> <xs:element name="StartTime" type="xs:dateTime" /> <xs:element name="EndTime" type="xs:dateTime" /> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="GameEvent"> <xs:complexType> <xs:sequence> <xs:element name="GameID" type="xs:int" /> <xs:element name="EventID" type="xs:int" /> <xs:element name="EventTime" type="xs:dateTime" /> <xs:element name="PerformerID" type="xs:int" /> <xs:element name="PerformerName" type="xs:string" /> <xs:element name="TargetID" type="xs:int" /> <xs:element name="TargetName" type="xs:string" /> <xs:element name="IndirectID" type="xs:int" /> <xs:element name="IndirectName" type="xs:string" /> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="ChatLog"> <xs:complexType> <xs:sequence> <xs:element name="GameID" type="xs:int" /> <xs:element name="ChatTime" type="xs:dateTime" /> <xs:element name="SpeakerName" type="xs:string" /> <xs:element name="TargetName" type="xs:string" /> <xs:element name="Text" type="xs:string" /> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="Team"> <xs:complexType> <xs:sequence> <xs:element name="TeamID" type="xs:int" /> <xs:element name="GameID" type="xs:int" /> <xs:element name="TeamNumber" type="xs:int" /> <xs:element name="TeamName" type="xs:string" /> <xs:element name="Commander" type="xs:string" /> <xs:element name="Faction" type="xs:string" /> <xs:element name="ResearchedStarbase" type="xs:boolean" /> <xs:element name="ResearchedSupremacy" type="xs:boolean" /> <xs:element name="ResearchedTactical" type="xs:boolean" /> <xs:element name="ResearchedExpansion" type="xs:boolean" /> <xs:element name="ResearchedShipyard" type="xs:boolean" /> <xs:element name="Won" type="xs:boolean" /> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="TeamMember"> <xs:complexType> <xs:sequence> <xs:element name="TeamID" type="xs:int" minOccurs="0" /> <xs:element name="Callsign" type="xs:string" minOccurs="0" /> <xs:element name="Duration" type="xs:int" minOccurs="0" /> <xs:element name="JoinTime" type="xs:dateTime" minOccurs="0" /> <xs:element name="LeaveTime" type="xs:dateTime" minOccurs="0" /> </xs:sequence> </xs:complexType> </xs:element> </xs:choice> </xs:complexType> <xs:unique name="GameIDKey" msdata:PrimaryKey="true"> <xs:selector xpath=".//Game" /> <xs:field xpath="GameID" /> </xs:unique> <xs:unique name="PK_TeamID" msdata:PrimaryKey="true"> <xs:selector xpath=".//Team" /> <xs:field xpath="TeamID" /> </xs:unique> <xs:keyref name="TeamTeamMember" refer="PK_TeamID" msdata:UpdateRule="None" msdata:DeleteRule="None"> <xs:selector xpath=".//TeamMember" /> <xs:field xpath="TeamID" /> </xs:keyref> <xs:keyref name="GameTeams" refer="GameIDKey" msdata:UpdateRule="None" msdata:DeleteRule="None"> <xs:selector xpath=".//Team" /> <xs:field xpath="GameID" /> </xs:keyref> <xs:keyref name="GameChatLog" refer="GameIDKey" msdata:UpdateRule="None" msdata:DeleteRule="None"> <xs:selector xpath=".//ChatLog" /> <xs:field xpath="GameID" /> </xs:keyref> <xs:keyref name="GameGameEvent" refer="GameIDKey" msdata:UpdateRule="None" msdata:DeleteRule="None"> <xs:selector xpath=".//GameEvent" /> <xs:field xpath="GameID" /> </xs:keyref> </xs:element> </xs:schema>
</GameDataset>[/code]
GameDataset
This part of the XML file tells you everything about the game settings.
GameID
The GameID will be requested by TAG from ASGS database server, before TAG sends the game data to the database server. If TAG is unable to reach the database server, it will save the game as Game unknown.
GameName
Basicly the name of the game session (server name).
CoreFile
Name (filename) of the used core].
SquadGame
Allegiance doesn't support this option (yet).
StatsCount
This is an relict, maybe used later. All games will count played on current game servers.
StartTime
Local server time, when the game started.
EndTime
Local server time, when the game ended.
automated TAG messages
If you don't notice such a message at the start/end of a game, TAG isn't running on the gameserver.
HQ (all): The game has started.
Message that the game has been started and TAG starts recording the game.
HQ (all): servername 's game has completed. Game#: 123456'
Game has been successfull posted to ASGS database server and will be counted on ranks page.
HQ (all): servername 's game has completed. Insert lots of HTML stuff here
TAG on gameserver is unable to send data to ASGS database server. Game will be stored as Unknown game. It will not effect ranks.
HQ (all): Game post failed. This server is not authorized to post game statistics.
Server is not authoriesed to post games to ASGS database server.