<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.blackblade.eu/index.php?action=history&amp;feed=atom&amp;title=Extensions%2Fguildwars</id>
	<title>Extensions/guildwars - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.blackblade.eu/index.php?action=history&amp;feed=atom&amp;title=Extensions%2Fguildwars"/>
	<link rel="alternate" type="text/html" href="https://wiki.blackblade.eu/index.php?title=Extensions/guildwars&amp;action=history"/>
	<updated>2026-04-11T07:14:37Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.31.16</generator>
	<entry>
		<id>https://wiki.blackblade.eu/index.php?title=Extensions/guildwars&amp;diff=4265&amp;oldid=prev</id>
		<title>Vader: add extension page</title>
		<link rel="alternate" type="text/html" href="https://wiki.blackblade.eu/index.php?title=Extensions/guildwars&amp;diff=4265&amp;oldid=prev"/>
		<updated>2007-09-13T15:19:47Z</updated>

		<summary type="html">&lt;p&gt;add extension page&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Guildwars extensions:&lt;br /&gt;
&lt;br /&gt;
Implements tags: &amp;lt;nowiki&amp;gt;&amp;lt;character_statistics&amp;gt;, &amp;lt;guild_ladder&amp;gt;, &amp;lt;gwbbcode&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
See [[Talk:Main_Page|talk on mainpage discussion]] about the usage of those tags&lt;br /&gt;
&lt;br /&gt;
GWbbcode has been partially hacked into place by hardcoding the and replacing things in the returned html text (as seen from code)&lt;br /&gt;
&lt;br /&gt;
A minor adjustment also needs to be made to gwbbcode/overlib.js. The variables &amp;lt;pre&amp;gt;ol_offsetx=-160;&amp;lt;/pre&amp;gt; and &amp;lt;pre&amp;gt;ol_offsety=-15;&amp;lt;/pre&amp;gt; must be set to those values to make the overlay appear in the right position.&lt;br /&gt;
&lt;br /&gt;
The CSS (from ''overall.tpl'') was put into Mediawiki:Common.css page and the Javascript from (from ''overall.tpl'') was put into Mediawiki:Common.js page&lt;br /&gt;
&lt;br /&gt;
'''Use this code at your own discretion, no warranty implied or given'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
# To use, include this file from your LocalSettings.php&lt;br /&gt;
# Guildwars specific extensions&lt;br /&gt;
&lt;br /&gt;
$wgExtensionFunctions[] = &amp;quot;wfGuildwars&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
function wfGuildwars() {&lt;br /&gt;
        global $wgParser;&lt;br /&gt;
        $wgParser-&amp;gt;setHook( &amp;quot;guildwars_ladder&amp;quot;, &amp;quot;renderLadder&amp;quot; );&lt;br /&gt;
        $wgParser-&amp;gt;setHook( &amp;quot;character_statistics&amp;quot;, &amp;quot;CharStats&amp;quot; );&lt;br /&gt;
        $wgParser-&amp;gt;setHook( &amp;quot;gw_build&amp;quot;, &amp;quot;gwbbcode&amp;quot; );&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function renderLadder ( $guildtag , $argv, $parser )&lt;br /&gt;
{&lt;br /&gt;
        $c = file_get_contents(&amp;quot;http://www.glop.org/guildwars/ladder.php?format=txt&amp;amp;tag=$guildtag&amp;quot;,FALSE,NULL,0,1024);&lt;br /&gt;
        $p=explode(&amp;quot;\n&amp;quot;,$c);&lt;br /&gt;
&lt;br /&gt;
        $style=&amp;quot;&amp;quot;;&lt;br /&gt;
        if(isset($argv[&amp;quot;style&amp;quot;])) {&lt;br /&gt;
                $style=&amp;quot;style=\&amp;quot;&amp;quot;.$argv[&amp;quot;style&amp;quot;].&amp;quot;\&amp;quot;&amp;quot;;&lt;br /&gt;
        }&lt;br /&gt;
        if($p[0] == &amp;quot;Guild not found&amp;quot;) {&lt;br /&gt;
         $htmltxt = &amp;quot;No information for Guild with tag '$guildtag' found.&amp;lt;br&amp;gt;&amp;quot;;&lt;br /&gt;
        } else {&lt;br /&gt;
         $htmltxt = &amp;quot;&amp;lt;table $style class=\&amp;quot;diff\&amp;quot;&amp;gt;\n&amp;quot;;&lt;br /&gt;
         $htmltxt .= &amp;quot;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Rank&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;quot;.$p[0].&amp;quot;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;\n&amp;quot;;&lt;br /&gt;
         $htmltxt .= &amp;quot;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Guild&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;quot;.$p[1].&amp;quot;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;\n&amp;quot;;&lt;br /&gt;
         $htmltxt .= &amp;quot;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Tag&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;quot;.$p[2].&amp;quot;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;\n&amp;quot;;&lt;br /&gt;
         $htmltxt .= &amp;quot;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Points&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;quot;.$p[3].&amp;quot;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;\n&amp;quot;;&lt;br /&gt;
         $htmltxt .= &amp;quot;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Wins&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;quot;.$p[4].&amp;quot;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;\n&amp;quot;;&lt;br /&gt;
         $htmltxt .= &amp;quot;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Loses&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;quot;.$p[5].&amp;quot;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;\n&amp;quot;;&lt;br /&gt;
         $htmltxt .= &amp;quot;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Territory&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;quot;.$p[6].&amp;quot;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;\n&amp;quot;;&lt;br /&gt;
         $htmltxt .= &amp;quot;&amp;lt;/table&amp;gt;\n&amp;quot;;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        return $htmltxt;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function CharStats ( $calclist , $argv, $parser )&lt;br /&gt;
{&lt;br /&gt;
  $charlist=explode(&amp;quot;\n&amp;quot;,$calclist);&lt;br /&gt;
&lt;br /&gt;
  $style=&amp;quot;&amp;quot;;&lt;br /&gt;
  $vlevel_precision=0;&lt;br /&gt;
  if(isset($argv[&amp;quot;style&amp;quot;])) {&lt;br /&gt;
    $style=&amp;quot;style=\&amp;quot;&amp;quot;.$argv[&amp;quot;style&amp;quot;].&amp;quot;\&amp;quot;&amp;quot;;&lt;br /&gt;
  }&lt;br /&gt;
  if(isset($argv[&amp;quot;vlevelprec&amp;quot;])) {&lt;br /&gt;
    $vlevel_precision=intval($argv[&amp;quot;vlevelprec&amp;quot;]);&lt;br /&gt;
  }&lt;br /&gt;
  $htmltxt = &amp;quot;&amp;lt;table $style class=\&amp;quot;diff\&amp;quot; cellpadding=\&amp;quot;1\&amp;quot; cellspacing=\&amp;quot;5\&amp;quot;&amp;gt;\n&amp;quot;;&lt;br /&gt;
  $htmltxt .= &amp;quot;&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;Character&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;Hours played&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;Deaths&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;Deaths/h&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;XP&amp;lt;/th&amp;gt;&amp;quot;;&lt;br /&gt;
  $htmltxt .= &amp;quot;&amp;lt;th&amp;gt;XP/h&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;XP/deaths&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;Virtual level&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;% hours&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;% deaths&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;% xp&amp;lt;/th&amp;gt;&amp;lt;/tr&amp;gt;\n&amp;quot;;&lt;br /&gt;
  $xp_sum=$deaths_sum=$hours_sum=$char_count=0;&lt;br /&gt;
  foreach ($charlist as $i =&amp;gt; $v) {&lt;br /&gt;
    if(strlen($v)&amp;gt;0) {&lt;br /&gt;
      $char_count++;&lt;br /&gt;
      $p=explode(&amp;quot;,&amp;quot;,$v);&lt;br /&gt;
      if(is_numeric($p[1])) {&lt;br /&gt;
        $hours_sum += $p[1];&lt;br /&gt;
      }&lt;br /&gt;
      if(is_numeric($p[2])) {&lt;br /&gt;
        $deaths_sum += $p[2];&lt;br /&gt;
      }&lt;br /&gt;
      if(is_numeric($p[3])) {&lt;br /&gt;
        $xp_sum += $p[3];&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  foreach ($charlist as $i =&amp;gt; $v) {&lt;br /&gt;
    if(strlen($v)&amp;gt;0) {&lt;br /&gt;
      $p=explode(&amp;quot;,&amp;quot;,$v);&lt;br /&gt;
      $xp=0;&lt;br /&gt;
      $deaths=0;&lt;br /&gt;
      $hours=0;&lt;br /&gt;
      if(is_numeric($p[1])) {&lt;br /&gt;
        $hours=$p[1];&lt;br /&gt;
      }&lt;br /&gt;
      if(is_numeric($p[2])) {&lt;br /&gt;
        $deaths=$p[2];&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
     if(is_numeric($p[3])) {&lt;br /&gt;
        $xp=$p[3];&lt;br /&gt;
      }&lt;br /&gt;
      if($hours_sum&amp;gt;0 &amp;amp;&amp;amp; $deaths_sum&amp;gt;0 &amp;amp;&amp;amp; $xp_sum&amp;gt;0) {&lt;br /&gt;
        $htmltxt .=&amp;quot;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&amp;quot;;&lt;br /&gt;
        $htmltxt .= $p[0];&lt;br /&gt;
        $htmltxt .= &amp;quot;&amp;lt;/td&amp;gt;&amp;quot;;&lt;br /&gt;
        $htmltxt .= &amp;quot;&amp;lt;td align=right&amp;gt;&amp;quot;.number_format($hours).&amp;quot;&amp;lt;/td&amp;gt;&amp;lt;td align=right&amp;gt;&amp;quot;.number_format($deaths).&amp;quot;&amp;lt;/td&amp;gt;&amp;quot;;&lt;br /&gt;
        $htmltxt .= sprintf(&amp;quot;&amp;lt;td align=right&amp;gt;%.2f&amp;lt;/td&amp;gt;&amp;quot;,$deaths/$hours);&lt;br /&gt;
        $htmltxt .= &amp;quot;&amp;lt;td align=right&amp;gt;&amp;quot;.number_format($xp).&amp;quot;&amp;lt;/td&amp;gt;&amp;quot;;&lt;br /&gt;
        $htmltxt .= sprintf(&amp;quot;&amp;lt;td align=right&amp;gt;%s&amp;lt;/td&amp;gt;&amp;quot;,number_format($xp/$hours));&lt;br /&gt;
        if($deaths&amp;gt;0) {&lt;br /&gt;
          $htmltxt .= sprintf(&amp;quot;&amp;lt;td align=right&amp;gt;%s&amp;lt;/td&amp;gt;&amp;quot;,number_format($xp/$deaths));&lt;br /&gt;
        } else {&lt;br /&gt;
          $htmltxt .= &amp;quot;&amp;lt;td align=right&amp;gt;N/A&amp;lt;/td&amp;gt;&amp;quot;;&lt;br /&gt;
        }&lt;br /&gt;
        $htmltxt .= sprintf(&amp;quot;&amp;lt;td align=right&amp;gt;%.&amp;quot;.$vlevel_precision.&amp;quot;f&amp;lt;/td&amp;gt;&amp;quot;,($xp - 182600)/15000 + 23);&lt;br /&gt;
        $htmltxt .= sprintf(&amp;quot;&amp;lt;td align=right&amp;gt;%.0f&amp;lt;/td&amp;gt;&amp;quot;,$hours/$hours_sum*100);&lt;br /&gt;
        $htmltxt .= sprintf(&amp;quot;&amp;lt;td align=right&amp;gt;%.0f&amp;lt;/td&amp;gt;&amp;quot;,$deaths/$deaths_sum*100);&lt;br /&gt;
        $htmltxt .= sprintf(&amp;quot;&amp;lt;td align=right&amp;gt;%.0f&amp;lt;/td&amp;gt;&amp;quot;,$xp/$xp_sum*100);&lt;br /&gt;
      } else {&lt;br /&gt;
        $htmltxt .= &amp;quot;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;No valid input data found: its '&amp;amp;lt;text&amp;amp;gt;,&amp;amp;lt;hours played&amp;amp;gt;,&amp;amp;lt;deaths&amp;amp;gt;,&amp;amp;lt;xp&amp;amp;gt;'&amp;lt;/td&amp;gt;&amp;quot;;&lt;br /&gt;
      }&lt;br /&gt;
      $htmltxt .= &amp;quot;&amp;lt;/tr&amp;gt;\n&amp;quot;;&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  if($hours_sum&amp;gt;0 &amp;amp;&amp;amp; $deaths_sum&amp;gt;0 &amp;amp;&amp;amp; $xp_sum&amp;gt;0) {&lt;br /&gt;
    $htmltxt .= &amp;quot;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&amp;lt;b&amp;gt;Total&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=right&amp;gt;&amp;lt;b&amp;gt;&amp;quot;.number_format($hours_sum).&amp;quot;&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=right&amp;gt;&amp;lt;b&amp;gt;&amp;quot;.number_format($deaths_sum).&amp;quot;&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&amp;quot;;&lt;br /&gt;
    $htmltxt .= sprintf(&amp;quot;&amp;lt;td align=right&amp;gt;&amp;lt;b&amp;gt;%.2f&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&amp;quot;,$deaths_sum/$hours_sum);&lt;br /&gt;
    $htmltxt .= &amp;quot;&amp;lt;td align=right&amp;gt;&amp;lt;b&amp;gt;&amp;quot;.number_format($xp_sum).&amp;quot;&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&amp;quot;;&lt;br /&gt;
    $htmltxt .= sprintf(&amp;quot;&amp;lt;td align=right&amp;gt;&amp;lt;b&amp;gt;%s&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&amp;quot;,number_format($xp_sum/$hours_sum));&lt;br /&gt;
    $htmltxt .= sprintf(&amp;quot;&amp;lt;td align=right&amp;gt;&amp;lt;b&amp;gt;%s&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&amp;quot;,number_format($xp_sum/$deaths_sum));&lt;br /&gt;
    $htmltxt .= sprintf(&amp;quot;&amp;lt;td align=right&amp;gt;&amp;lt;b&amp;gt;%.&amp;quot;.$vlevel_precision.&amp;quot;f&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&amp;quot;,($xp_sum - 182600)/15000 + 23);&lt;br /&gt;
    $htmltxt .= &amp;quot;&amp;lt;/tr&amp;gt;\n&amp;quot;;&lt;br /&gt;
    $htmltxt .= &amp;quot;&amp;lt;/table&amp;gt;\n&amp;quot;;&lt;br /&gt;
    $htmltxt .= sprintf(&amp;quot;&amp;lt;p&amp;gt;%s Avg. Hours/Character, %s Avg. XP/Character, %s Avg. Deaths/Character&amp;lt;/p&amp;gt;&amp;quot;&lt;br /&gt;
                        ,number_format($hours_sum/$char_count),number_format($xp_sum/$char_count),number_format($deaths_sum/$char_count));&lt;br /&gt;
    $htmltxt .= &amp;quot;&amp;lt;small&amp;gt;'Virtual level' means the level your character would be if there was no level 20 cap&amp;lt;/small&amp;gt;\n&amp;quot;;&lt;br /&gt;
  } else {&lt;br /&gt;
    $htmltxt .= &amp;quot;&amp;lt;p&amp;gt;No valid input data found: its '&amp;amp;lt;text&amp;amp;gt;,&amp;amp;lt;hours played&amp;amp;gt;,&amp;amp;lt;deaths&amp;amp;gt;,&amp;amp;lt;xp&amp;amp;gt;'&amp;lt;/p&amp;gt;\n&amp;quot;;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  return $htmltxt;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function gwbbcode ( $build_code , $argv, $parser )&lt;br /&gt;
{&lt;br /&gt;
        $htmltext=&amp;quot;&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
        //$htmltext.=require(dirname(__FILE__) . '/../gwbbcode/header.php');&lt;br /&gt;
        $htmltext.=require(dirname(__FILE__) . '/../gwbbcode/body.php');&lt;br /&gt;
        require_once(dirname(__FILE__) . '/../gwbbcode/gwbbcode.php');&lt;br /&gt;
        $htmltext .= parse_gwbbcode($build_code);&lt;br /&gt;
        $htmltext = str_replace('src=&amp;quot;./gwbbcode/','src=&amp;quot;http://dotb-wiki.vader.dk/gwbbcode/',$htmltext);&lt;br /&gt;
&lt;br /&gt;
        return $htmltext;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Document it ?&lt;br /&gt;
 Why do you think they call it code ?&lt;/div&gt;</summary>
		<author><name>Vader</name></author>
		
	</entry>
</feed>