squad.xml

From Bohemia Interactive Community
Revision as of 14:03, 6 February 2013 by TomNedry (talk | contribs) (added links to tools)
Jump to navigation Jump to search

arma 1.00.gif arma2 1.00.gif Remark to ArmA 2: Squad logo support is confirmed.

About

Example of a logo, provided by "squad.xml"

To support the multiplayer community in their effort to play as teams, like many ArmA clans and squads are trying to, it's possible to create a common information file - the "squad.xml" -, which is stored on a personal webspace or on an FTP server and loaded by the ArmA game server, if a member of this team is playing on it.

Beside detailed informations about the single player and its team which can be gained by pressing "P" ingame, the feature supports also a common logo, which will be displayed on vehicles, if such team has boarded it.

Preliminaries

If you feel unfamiliar with the XML file format itself and/or have questions about basic XML markup, you are advised to consult literature, documentation [1] or tutorials [2] as fundamental questions about the XML technology itself will not be covered here. There are multiple resources on in the World Wide Web that can help you learning XML.

How to create a "squad.xml"

The file consist of three main parts:


1. Head: defines the doctype. Just leave it!

<?xml version="1.0"?> <!DOCTYPE squad SYSTEM "squad.dtd"> <?xml-stylesheet href="squad.xsl" type="text/xsl"?>


2. Squad properties

<squad nick="ESN"> <name>Example Squad Name</name> <email>email@example.com</email> <web>www.example.com</web> <picture>logo.paa</picture> <title>Use this e.g. for your squads name or your squads URL</title>

nick The clan-tag, is displayed together with players nickname. Attention: Don't use reserved XML tags -> Link
name Squad name
email Your contact email
picture Your logo (optional), it has to in the same folder as the "squad.xml" file
title Squad name, displayed on vehicles manned by squad members

Important note:

  • Do not use any characters beside A-Z, a-z, 0-9 and space in the nick-attribute inside the squad-element of your squad.xml. This may lead to strange behaviour e.g. the information from your member-block is displayed but the information from the squad-block is not. So, if your Tag is like "=[SFS]=", put the value like "SFS" into the nick-attribute of the squad-element.


3. Member list

<member id="123456" nick="=[ESN]=John"> <name>John Doe</name> <email>john.doe@example.com</email> <icq>N/A</icq> <remark>Mostly harmless</remark> </member> </squad>

id your Player-UID, always the same and irrespective of your selected character
nick your nick, the same as used with your selected character
name your "real" name...
email your personal email
icq your personal icq number
remark as the name says it...

Important note:

  • The value in the nick-attribute of the member-element must represent the exact name of your players profile name. If your profile is named "=[ESN]=John" then the the correct XML looks like the above code block.

Remarks:

  • You can leave any field blank, but it's recommended to fill it with a "N/A" instead.
  • Extend the members list by adding another XML-"Member" block

How to get your Player-UID

ArmA

Start ArmA and select the player edit-menu
In the bottom-right corner you will find your 6-digit UID

ArmA 2

ArmA2 player profile (click to zoom)

How to create a logo for the use with "squad.xml"

To create a logo for the use with "squad.xml" you'll need:

  • a bitmap manipulating software (aka "Paintprogram") which is able to handle bitmaps in TGA or JPG format.
  • Download Texview or the PAA-Plugin for the use with Photoshop


For a logo without transparency you can use an ordinary JPG without further treatment. To get transparency you'll have to convert a TGA to PAA format. Its always recommended to use PAA and to avoid alpha blending.

Create the TGA

In this tutorial we'll use GIMP - a open source tool - to create our sample-logo.

Important note: All logos must a have resolution of 2^x / 2^y (e.g. 16 / 16, 32 / 32, 64 / 64, 256 /256)

Step1: Create a new file
Step2: Select the appropriate size of image and set background color to transparency
Step3: Draw your logo and save as TGA, uncheck RLE compression checkbox...
Step4: after selecting TGA this window appears...

As this description only covers 'the Gimp', here is an old tutorial made for Flashpoint, using Photoshop 6 and explaining how to get an alphachannel working within the TGA-Picture (Note: If you're using Photoshop 7, you'll need to download patch from adobe, since it does not save alphachannel in targa files). You can stick with 'Texview I' as long as those new tools need time to get published. The whole thing is working the same way like it did in Flashpoint, till now. The linked tutorial was part of newsreports by ofp.info.

Convert TGA to PAA

Your logo should be something like this
  1. Start TexView
  2. Open your "logo.tga"
  3. Save it as "logo.paa" (replace *.tga with *.paa in the "save as"-dialog)

Remark: Your are absolutely free to name your logo as you like. The filename "logo.tga" etc. is just an example!

How to publish it

To use the "squad.xml" you'll have to upload the following files to a webspace:

  • squad.xml (mandatory)
  • squad.dtd (mandatory)
  • squad.xsl (optional), needed to show the "squad.xml" in a webbrowser, but isn't needed by the ArmA gameserver
  • logo.paa (optional)

All files will have to be in the same directory!

NOTE: .PAA files don't seem to work on IIS; Apache has been tested and seems successful.

IIS 6.0 issue: http://support.microsoft.com/kb/326965

How to use it as a team-member

  • You have to have your own member-block in the "squad.xml" file
  • Additionally you have to put the URL of the "squad.xml" of your team into the "Clanpage" field in the player edit-menu. As reference see the picture "ArmA UID 2" in section How to get your Player-UID.

Here are a few examples of proper URL:s for the "Clanpage" field:

http://www.example.net/squad.xml
http://www.example.org/path/to/your/squad.xml

Files

Download

Source code

squad.xml

<?xml version="1.0"?>
<!DOCTYPE squad SYSTEM "squad.dtd">
<?xml-stylesheet href="squad.xsl?" type="text/xsl"?>
<squad nick="">
	<name></name>
	<email></email>
	<web></web>
	<picture></picture>
	<title></title>
	<member id="" nick="">
		<name></name>
		<email></email>
		<icq></icq>
		<remark></remark>
	</member>
</squad>

squad.dtd

<!ELEMENT squad (name, email, web?, picture?, title?, member+)>
<!ATTLIST squad nick CDATA #REQUIRED>
<!ELEMENT member (name, email, icq?, remark?)>
<!ATTLIST member id CDATA #REQUIRED nick CDATA #REQUIRED>
<!ELEMENT name (#PCDATA)>
<!ELEMENT email (#PCDATA)>
<!ELEMENT icq (#PCDATA)>
<!ELEMENT web (#PCDATA)>
<!ELEMENT picture (#PCDATA)>
<!ELEMENT title (#PCDATA)>
<!ELEMENT remark (#PCDATA)>

squad.xsl

<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet
	version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="text()">
	<xsl:value-of select="."/>
</xsl:template>
<xsl:template match="*">
	<xsl:apply-templates/>
</xsl:template>
<xsl:template match="/">
	<HTML>
	<HEAD>
		<TITLE><xsl:value-of select="/squad/name"/></TITLE>
		<LINK REL="stylesheet" TYPE="text/css" HREF="squad.css"></LINK>
	</HEAD>
        <!--
	XSL template for "squad.xml", used in "Armed Assault" (Ref: "http://www.armedassault.com")
        and "Armed Assault 2" (Ref: "http://www.arma2.com")
	See also the Arma-Wiki page: "http://community.bistudio.com/wiki/squad.xml"
	Created by TomNedry, 26.Jan07
        Reviewed by TomNedry, 15.Jul09
	Lisence: Creative Common (http://creativecommons.org/licenses/by-nc-sa/2.5/deed.de)
	To have a squad logo in the HTML output, just put a "sqd_logo.png" in the same folder...
	-->
	<BODY>
	<!--Main TABLE -->
	<TABLE class="main">
	<TR>
	  <TD class="left_row" valign="top">
	<!-- Squad Info Table -->
		<TABLE class="sqd_info">
			<TR height="30">
				<TD class="one">
					<DIV class="sqd_name">
						<xsl:value-of select="/squad/name"/>
					</DIV>
				</TD>
			</TR>
			<TR height="30">
				<TD class="two">
					<DIV class="sqd_title">
						<xsl:value-of select="/squad/title"/>
					</DIV>
				</TD>
			</TR>
			<TR height="100%">
				<TD width="100%" height="100%" valign="top">
					<DIV class="sqd_logo">
					<img src="sqd_logo.png" alt="Picture: Squad Logo"/>
					</DIV>
				</TD>
			</TR>
			<TR height="10">
				<TD class="sqd_website">
					Web site: 
					<A>
					   <xsl:attribute name="href">
					   http://<xsl:value-of select="/squad/web"/>
					   </xsl:attribute>
					   <xsl:value-of select="/squad/web"/>
					</A>
				</TD>
			</TR>
			<TR>
				<TD class="sqd_email">	
				 	e-mail:
					<A>
					  <xsl:attribute name="href">
					  mailto:<xsl:value-of select="/squad/email"/>
					  </xsl:attribute>
					  <xsl:value-of select="/squad/email"/>
					</A>	
				</TD>
			</TR>
		</TABLE>
	<!-- Squad Info Table -->
		</TD>
		<TD class="right_row" valign="top">			
	<!-- Member-Info Table -->
						<TABLE class="member_info">
							<Tr>
								<Th>Members</Th>
								<Th>e-mail</Th>
								<Th>ICQ</Th>
							</Tr>
							<xsl:for-each select="/squad/member">
							<TR>
								<xsl:attribute name="class">
								  <xsl:choose>
								     <xsl:when test="position() mod 2 = 0">one</xsl:when>
								     <xsl:otherwise>two</xsl:otherwise>
								  </xsl:choose>
								</xsl:attribute>
								<TD class="member_name" rowspan="2">
								  <xsl:value-of select="name"/>
								</TD>
								<TD class="member_email">
								  <A>
								    <xsl:attribute name="href">
								      mailto:<xsl:value-of select="email"/>
								    </xsl:attribute>
								    <xsl:value-of select="email"/>
								  </A>
								</TD>
								<TD class="member_icq">
								  <xsl:value-of select="icq"/>
								</TD>
							</TR>
							<TR>
							<xsl:attribute name="class">
							  <xsl:choose>
							     <xsl:when test="position() mod 2 = 0">one</xsl:when>
							     <xsl:otherwise>two</xsl:otherwise>
							  </xsl:choose>
							</xsl:attribute>
								<TD  class="member_remark" colspan="2" valign="top">
								  <xsl:value-of select="remark"/>
								</TD>
							</TR>
							</xsl:for-each>
						</TABLE>
	<!-- Member Info Table -->					
	<!--Main TABLE -->
	</TD>
	</TR>
	</TABLE>
	<p style="font-family:verdana;font-size:7pt;color:darkgrey;text-align:center;padding:10px;">
	"squad.xsl" by <a href="http://www.csar-clan.net">TomNedry</a>, last change: 15.Jul09
	</p>
	</BODY>
	</HTML>
</xsl:template>
</xsl:stylesheet>

squad.css

/*
  CSS template for "squad.xml", used in "Armed Assault" (Ref: "http://www.armedassault.com")
  and "Armed Assault 2" (Ref: "http://www.arma2.com")
  See also the Arma-Wiki page: "http://community.bistudio.com/wiki/squad.xml"
  Created by TomNedry, 26.Jan07
  Reviewed by TomNedry, 15.Jul09
  Lisence: Creative Common (http://creativecommons.org/licenses/by-nc-sa/2.5/deed.de)
*/

body
{
	font-family:Arial;
	background-color:#eaece5;
	margin:0px;
}

a:link 
{ 
	text-decoration:none; 
	color:#800000; 
}
a:visited 
{
	text-decoration:none; 
	color:#800000; 
}
a:hover 
{ 
	text-decoration:none; 
	color:#ffffff;
}
a:active 
{ 
	text-decoration:none; 
}
a:focus { 
	text-decoration:none; 
}

th
{
	background-color:#aeb399;
	font-family:Arial; 
	font-size:10pt;
	font-weight:bold;
	padding:4px;
}

tr.one
{
	background-color:#dde4c3;
	width:100%;
	padding:4px;
}
tr.two
{
	background-color:#d2d9b8;
	width:100%;
	padding:4px;
}
td.one
{
	background-color:#aeb399;
	width:100%;
}
td.two
{
	background-color:#e2e9c7;
	width:100%;
}
.main
{
	text-align:center;
	width:100%;
	border:0px solid #333333;
}
div.sqd_name
{
	text-align:center;
	font-family:Arial;
	font-size:12pt;
	font-weight:bold;
}
div.sqd_title
{
	text-align:center;
	font-family:Arial;
	font-size:10pt;
}
div.sqd_logo
{
	text-align:center;
	font-size:8pt;
	padding:5px;
}
.sqd_info
{
	border:1px dotted darkgrey;
	width:100%;
	padding:0px;
	border-spacing:0px;
}
.sqd_website
{
	font-family:Arial; 
	font-size:10pt;
	text-align:center;
	background-color:#aeb399;
	width:100%;
	padding:4px;
	border-spacing:0px;
}
.sqd_email
{
	font-family:Arial; 
	font-size:10pt;
	text-align:center;
	background-color:#aeb399;
	width:100%;
	padding:4px;
	border-spacing:0px;
}
.left-row
{
	vertical-align:top;
	height:100%;
}
.right-row
{
	vertical-align:top;
	height:100%;
}
.member_info
{
	border:1px dotted darkgrey;
	width:100%;
	padding:0px;
	border-spacing:0px;
}
.member_name
{
	font-family:Arial;
	color:black;
	font-size:10pt;
	padding:4px;
}
.member_email
{
	font-family:Arial;
	color:black;
	font-size:8pt;
	padding:4px;
}
.member_icq
{
	font-family:Arial;
	color:black;
	font-size:8pt;
	padding:4px;
}
.member_remark
{
	font-family:Arial;
	color:black;
	font-size:8pt;
	text-align:center;
}

References

Tools


ArmA XML hosting

Contributors

=[SFS]=def+1-TPF- of So Fuckin' Skilled!