PDA

View Full Version : Add-On Releases - vbRosterMaster


pedigree
06-08-2007, 10:00 PM
A mod that displays your Everqeust II guild roster.

This is a port of the Stand Alone version by Eric Sauvageau (and therefore isnt all my code) There was PHP template code in there and Ive changed a lot of it into vBulletin templates but some still exists. It was faster to leave it in php but I might change it a later version.

Changes
Plugin / Hook : 3
Templates : 12

If you use it, PLEASE click Installed. This is my first ever released mod. If you find a bug or have a suggestion, please post it, I want to make people use it and like it.

10 Nov 2007 - Updated a page to fix the missing navbar, school boy error, sorry, just extract the files in rostermaster_navbar_fix.zip, overwritting the existing one

Troubleshooting

If you follow all the instructions and your roster wont update.
- Turn off CURL support in the admin settings. Its enabled by default and it seems that a lot of PHP hosts dont support it. Will be fixed in the next version of the code

pedigree
06-09-2007, 08:52 AM
First post, reserved for future use, give me a couple of minutes to get it uploaded

rjmjr69
06-09-2007, 09:38 AM
Interesting. Looks neat. Never did get into those games. You should have the usernames marked up they look too plane with everythng else being flashy. Keep up the good work

turnipofdoom
06-09-2007, 12:23 PM
Pedigree, post your info here (http://forums.station.sony.com/eq2/posts/list.m?&topic_id=346728) on the EQ2 Rostermaster board so they can see your work.

Thanks for working on this!

pedigree
06-09-2007, 01:25 PM
Interesting. Looks neat. Never did get into those games. You should have the usernames marked up they look too plane with everythng else being flashy. Keep up the good work

Usernames marked up? A bit better looking, maybe in bold perhaps? Is that what you mean. Ill add that to the new version though, good idea, thanks :)

turnipofdoom
06-09-2007, 02:57 PM
Usernames marked up? A bit better looking, maybe in bold perhaps? Is that what you mean. Ill add that to the new version though, good idea, thanks :)

Coming as an actual player of the game , I would disagree with using markup on the usernames. I might just hide them from all but admins. Typically you will find that people who play these games use their forum name and game name as the same..

Linking forum userid to the character(s) is brilliant though. You now have a game data->forum data link and allows for all kinds of neat tricks on the postbit I am thrilled with this mod, kudos
pedigree

Installed here btw http://www.eq2trinitas.com/forum/rostermaster.php?

edit;

what table do you store userid -> character ids in ?

pedigree
06-09-2007, 03:34 PM
table_prefix . "_roster_master"

thanks, I tried :)
the problem with postbits that I found on the last autoimport roster code I wrote is that no one fulls them in properly, sounds familiar?? :) If you claim a toon, there is a JOINable way to get a forum account/game ID linked

turnipofdoom
06-09-2007, 08:13 PM
This is definitely a great port, my members are already loving it. Thanks again.

rjmjr69
06-10-2007, 01:48 AM
Usernames marked up? A bit better looking, maybe in bold perhaps? Is that what you mean. Ill add that to the new version though, good idea, thanks :)


Yes exactly what I was getting at. Keep up the good work.

Abhean
06-12-2007, 01:01 PM
I love the roster! However I am running a guild that s going to be for Warhammer Online and as they do not have a automatic download for their characters is there any way you can set t up that I or the members on the forums can enter their own information?

Also it would be nice if there were a few more fields such as race.

I guess what I am looking for is a more generic version as there would be alot more guilds picking this up to use it.

pedigree
06-17-2007, 10:39 AM
Firstly, thanks :)

Secondly, its all built around importing data so a "generic" version would be better done in HTML or as a template without all the import code :(

Race, well, Im sure that cant be too hard to add :)

Sarcoth
06-18-2007, 05:24 PM
I love the roster! However I am running a guild that s going to be for Warhammer Online and as they do not have a automatic download for their characters is there any way you can set t up that I or the members on the forums can enter their own information?

Also it would be nice if there were a few more fields such as race.

I guess what I am looking for is a more generic version as there would be alot more guilds picking this up to use it.

Abhean, check out Customizable Roster (Member List) (https://vborg.vbsupport.ru/showthread.php?t=141311). That should work for you.

Touch?

redtailboa
06-20-2007, 07:00 PM
ran into these errors todayDatabase error in vBulletin 3.6.7:

Invalid SQL:
UPDATE clawusergroup SET

### UPDATE QUERY GENERATED BY fetch_query_sql() ###
`title` = 'Administrators',
`description` = '',
`usertitle` = 'Administrator',
`opentag` = '',
`closetag` = '',
`passwordexpires` = '180',
`passwordhistory` = '360',
`forumpermissions` = '1048575',
`genericpermissions` = '1040187327',
`attachlimit` = '0',
`pmquota` = '300',
`pmpermissions` = '7',
`pmsendmax` = '5',
`calendarpermissions` = '63',
`wolpermissions` = '31',
`adminpermissions` = '3',
`genericoptions` = '63',
`profilepicmaxwidth` = '200',
`profilepicmaxheight` = '200',
`profilepicmaxsize` = '655350',
`avatarmaxwidth` = '200',
`avatarmaxheight` = '150',
`avatarmaxsize` = '307200',
`signaturepermissions` = '237567',
`sigpicmaxwidth` = '500',
`sigpicmaxheight` = '150',
`sigpicmaxsize` = '60000',
`sigmaxrawchars` = '0',
`sigmaxchars` = '0',
`sigmaxlines` = '0',
`sigmaxsizebbcode` = '7',
`sigmaximages` = '0',
`photoplogpermissions` = '32767',
`photoplogmaxfilesize` = '512000',
`photoplogmaxfilelimit` = '100',
`infernopermissions` = '0',
`showrosteraccesspermissions` = '0',
`showrosterviewpermissions` = '0',
`rostermastermanagepermissions` = '1',
`rostermasterviewpermissions` = '1',
`rostermasterclaimpermissions` = '1',
`rostermasterviewlogpermissions` = '1'
WHERE usergroupid=6;

MySQL Error : Unknown column 'infernopermissions' in 'field list'
Error Number : 1054
Date : Wednesday, June 20th 2007 @ 07:54:46 PM
Script : http://xxxx.org/forums/admincp/usergroup.php?do=update
Referrer : http://xxxx.org/forums/admincp/usergroup.php?do=edit&usergroupid=6
IP Address :
Username :
Classname : vb_database

pedigree
06-22-2007, 11:13 AM
Hmm, I found one bug in the code, only obvious when you have cookies disabled but I havent seen this one.

infernopermissions isnt a row that vbRostermaster adds, its RPG inferno and it seems to be a known issue

https://vborg.vbsupport.ru/showthread.php?t=103792&page=5

redtailboa
06-24-2007, 11:42 AM
ok cleared out all the inferno stuff.

I reinstalled and ran the task now when i go to \forums\rostermaster.php

i get this error.. its as if it didnt pull anything from the sony website
No roster data has been found in the database

pedigree
06-24-2007, 09:49 PM
I suggest you read the documentation when you install something next time. Thats not an error, its a notification that you dont have any data imported. You need to run a scheduled task to import the database

4 - Run the Scheduled Task once to populate the database with your guilds information. The task will run once per hour afterwards.
(AdminCP -> Scheduled Task Manager -> RosterMasterUpdate -> Run Now)

pedigree
06-26-2007, 02:08 PM
Ive got a new version of the code that Im going to work on that displays by group, either rank, class or crafting goon.

SuprSurfr
07-01-2007, 07:29 AM
I am not sure what I did wrong...
I am using PHP Version 5.2.3 and mysql 5.0.41

When I try and run the scheduled task to populate the database I get the following error:


RosterMasterUpdater

db)) { exit; } //require_once(DIR . '/includes/rostermaster/logging.php'); function error_message($message, $sql="") { //todo vbulletin log error echo "
" ."
Roster Master Error

" ."Error:
" ."$message

"; // Show's over. exit; } // FUNCTION: rm_prune_log() // Delete log entries older than specified number of days. // Arguments: $days - Maximum age (in days) to keep // Returns: None. function rm_prune_log($days) { global $vbulletin; $cutoff = (time() - ($days * 60 * 60 * 24)); $query = "DELETE FROM " . TABLE_PREFIX . "roster_master_log " ."WHERE date < $cutoff"; if(!($result = $vbulletin->db->query($query))) { error_message('rostermaster_unable_to_prune_databa se',$query); } } function add_to_log($type, $message, $level=1) { global $vbulletin; if ($level <= $vbulletin->options['rostermaster_logging_verbosity']) { $query = "INSERT INTO " . TABLE_PREFIX . "roster_master_log " ."(date, type, message, level) " ."VALUES (" .time().",'$type','".addSlashes($message)."', $level)"; } } // *********************************XML Parser ***************************************** function startElement($parser, $name, $attr) { global $member, $currentElement, $row; if ($name == 'member') { $member = TRUE; $row = array(); } // name and level are sub-elements of characterclass/artisanclass. // If we were handling something involving char/artisanclass, we modify the element // name to discern wether we're working on the name or the level sub-elements. $matches = array(); if ($member && preg_match('/^(characterclass|artisanclass)/', $currentElement, $matches)) { $currentElement = $matches[1].'<'.$name; } else { $currentElement = $name; } } function characterData($parser, $data) { global $member, $currentElement, $row; if ($member) { $data = trim($data); switch ($currentElement) { case 'link': $field = 'Char_id'; break; case 'name': $field = 'Name'; break; case 'lastname': $field = 'Lastname'; break; case 'rank': $field = 'Rank'; break; case 'characterclass~\\1~<",$row[$field]); } } } } function endElement($parser, $name) { global $member, $currentElement, $row, $rm_roster_data, $vbulletin; switch ($name) { // We were working on sub-elements of either of these case 'characterclass': case 'artisanclass': $currentElement = ''; break; // We just finished processing a member. case 'member': // We have everything expected to form a full member - processing it if (count($row) == 14) { // Convert date to timestamp. if ($row['Joined']) { $row['Joined'] = strtotime($row['Joined']); } // Clean up numbers, so they can be easily sorted. // We can reformat at display time if needed. $row['Quests'] = str_replace(',', '', $row['Quests']); // $row['KVD'] = floatval($row['KVD']); $row['Points'] = str_replace(',', '', $row['Points']); // $row['highestmeleehit'] = intval($row['highestmeleehit']); // $row['highestmagichit'] = intval($row['highestmagichit']); $row['rank_value'] = (!empty($rmconfig['lookup_rank'][$row['Rank']])) ? $rmconfig['lookup_rank'][$row['Rank']] : 99; // Create a rank_value based on the lookup // Store element data in global array. $rm_roster_data[$row['Name']] = $row; // Reset for next member element. $member = FALSE; } else { $GLOBALS['badlines']++; } break; } } // Function: fetch_URL() // Retrieve the requested webpage and returns it // Arguments: $url_fetch = the url of the desired webpage // // Return: The content of the retrieved URL, or NULL if an error occured. function fetch_URL($url_fetch) { global $vbulletin; if ($vbulletin->options['rostermaster_curluse']) { $cUrl = curl_init(); curl_setopt($cUrl, CURLOPT_URL, $url_fetch); curl_setopt($cUrl, CURLOPT_RETURNTRANSFER, 1); curl_setopt($cUrl, CURLOPT_TIMEOUT, '30'); if (($vbulletin->options['rostermaster_curlip']) && ($vbulletin->options['rostermaster_curlport'])) { curl_setopt($cUrl, CURLOPT_PROXY, "{$vbulletin->options['rostermaster_curlip']}:{$vbulletin->options['rostermaster_curlport']}"); } $pageContent = curl_exec($cUrl); // If there was an error, close the handle and report error message. if (curl_errno($cUrl)) { // Build error message before closing handle and exiting to the error display function. $errormsg = "(CURL) Error ".curl_errno($cUrl).": ".curl_error($cUrl)."

\n" ."Cannot retrieve data from the EQ2Players website!"; curl_close($cUrl); add_to_log("Error",$errormsg,1); return NULL; } curl_close($cUrl); } else { if (!($pageContent = file_get_contents($url_fetch))) { add_to_log("Error","Cannot retrieve data from the EQ2Players website!",1); } } return $pageContent; } // Function: parse_guild_HTML() // Retrieves and parses the HTML guild summary page from the EQ2players.com site. // Arguments: &$log = pointer to the log array (used by the flatfile log) // $url = URL of the Guild Summary page on EQ2Players.com // Returns: TRUE on success. function parse_guild_HTML(&$log, $url) { global $vbulletin, $mod_dirname,$rm_roster_data,$rm_summary_data; // Fetch and parse the guild summary page. $i = 0; $rlimit = 1; do { if ($raw_data = fetch_URL($url)) { // Got the data, bail out of the loop. break; } $stime = pow(3, $i++); if ($i < $rlimit) { // Sleep for 3^n seconds... sleep($stime); } } while ($i < $rlimit); if (empty($raw_data)) { // Unable to read the URL as presented add_to_log("Error","Unable to access EQ2Players for HTML parsing!",1); return FALSE; } // Verify that the configured guild name is found on the webpage. if (strpos($raw_data, $vbulletin->options['rostermaster_guild_name']) === FALSE) { error_message(''.sprintf('(XML) '._ERR_GRGNSC, $vbulletin->options['rostermaster_guild_name'])."



I couldnt post the entire output, if you need more let me know.
any suggestions?

pedigree
07-01-2007, 09:08 AM
Whats the guild ID and guild name? Ill get a box installed with those mysql/php versions and try an import. If ti all goes well my end, Ill add some more debug code to the updater and see just whats going on? What path do you have the forum installed into? / or /forums?

SuprSurfr
07-01-2007, 04:07 PM
Whats the guild ID and guild name? Ill get a box installed with those mysql/php versions and try an import. If ti all goes well my end, Ill add some more debug code to the updater and see just whats going on? What path do you have the forum installed into? / or /forums?

I found my biggest problem in my php.ini

; Allow the <? tag. Otherwise, only <?php and <script> tags are recognized.
; NOTE: Using short tags should be avoided when developing applications or
; libraries that are meant for redistribution, or deployment on PHP
; servers which are not under your control, because short tags may not
; be supported on the target server. For portable, redistributable code,
; be sure not to use short tags.
short_open_tag = Off
I turned it on.

But i am still having an issue, i get the following error:

Database error in vBulletin 3.6.7:

Invalid SQL:
SELECT rmu.username username, rmu.char_type char_type, rm.* FROM roster_master rm LEFT JOIN roster_master_users rmu ON rm.Name LIKE rmu.char_name WHERE 1;;

MySQL Error : Table 'koc.roster_master' doesn't exist
Error Number : 1146
Date : Sunday, July 1st 2007 @ 12:21:12 PM
Script : http://www.knightsofthecataclysm.com/admincp/cronadmin.php?do=runcron&cronid=19
Referrer : http://www.knightsofthecataclysm.com/admincp/index.php
IP Address : 71.205.116.184
Username : Lupe
Classname : vB_Database

SuprSurfr
07-01-2007, 04:14 PM
Well sorry for the confusion...

It appears that after I changed the PHP.ini to allow short tags, I uninstalled the product reinstalled and the tables were then created in the DB. Problem solved.

Thanks!

pedigree
07-02-2007, 07:51 AM
Good, I was scratching my head for a minute there until I woke up this morning and though "oh, short tags". What Ill do in the next version is replace all the short tags with <?php long tags.

Did you click installed??? :)

Ev!L ErN!E
07-21-2007, 12:24 AM
how can I change the color of the cell padding? I would like it darker

pedigree
07-21-2007, 10:27 AM
Can you post a screenshot of the area as an example? The cell padding is all taken from your skin style but it can be editted in the PHP file or template. PM me your URL and I can have a look

Ev!L ErN!E
07-22-2007, 07:12 PM
Can you post a screenshot of the area as an example? The cell padding is all taken from your skin style but it can be editted in the PHP file or template. PM me your URL and I can have a look
I'll post a pic....

http://img517.imageshack.us/img517/2483/image2bt8.jpg
I want to change the white bars, to something darker to match my style.

also I noticed the roster page wasn't updating, so I ran it under scheduled tasks and got this error:

Fatal error: Call to undefined function: sql_query() in forums/includes/cron/rostermaster_import.php on line 760

pedigree
07-23-2007, 05:17 PM
Yeah, I found that one. Edit the PHP file and, on line 760, change sql_query to just query. Ive uploaded the fix for that just now

Ill dig around in the mod tonight for you.

pedigree
07-23-2007, 06:40 PM
Two ways of doing it, both in the same template

Edit template RosterMaster / rostermaster

search for


<table class="tborder" style="border-collapse:collapse" cellpadding="$stylevar[cellpadding]" cellspacing="0" border="1" width="100%" align="center">


#1 Remove borders

Change the
border="1"
to
border="0"

#2 - Edit the style for the table

Change


style="border-collapse:collapse"



style="border-collapse:collapse; border-color: black;"

Ev!L ErN!E
07-23-2007, 11:28 PM
Yeah, I found that one. Edit the PHP file and, on line 760, change sql_query to just query. Ive uploaded the fix for that just now

Ill dig around in the mod tonight for you.
that worked perfect, thank you.... I'll work on those edits later tonight and report back. Thank you for your help.

EDIT***

Ok I just tried to change the border color, and its not working... I tried "black" and "#000000" but it still stays white =\

Jargs
07-25-2007, 11:59 AM
uhh no files uploaded?

pedigree
07-25-2007, 02:27 PM
its in the zip file in the first post of the thread. Its the includes/cron file.

pedigree
07-27-2007, 07:48 PM
I HATE IE, its the most god awful non-compliant crap out there but some people still use it (I dont care, I dont code for it) .

If your borders are some colour you didnt expect, its because of IE.

Edit rostermaster.php

Find line 524(ish) and replace it with this


if($vbulletin->options['rostermaster_char_mapping']) {
$columns_array['username'] = "<td style=\"border-color:black;\">{$line['username']}</td>";
$columns_array['type'] = "<td style=\"border-color:black;\">{$line['char_type']}</td>";
}

$columns_array['name'] = "<td style=\"border-color:black;text-align: center\"><a href=\"http://eq2players.station.sony.com/en/characters/character_profile.vm?characterId={$line['Char_id']}\"$target>{$line['Name']}$tmplastname</a></td>";
$columns_array['rank'] = "<td style=\"border-color:black;border-right: none; width: " . $vbulletin->options['rostermaster_rankwidth'] . "px \">" . $imagerank . "</td><td style=\"border-color:black;border-left: none; text-align: left\">{$line['Rank']}</td>";
$columns_array['advclass'] = "<td style=\"border-color:black;border-right: none; width: " . $vbulletin->options['rostermaster_advwidth']. "px \">" . $classimagename . "</td><td style=\"border-color:black;border-left: none; text-align: center\">{$line['Adv_Class']}$classlevelsep({$line['Adv_Level']})</td>";
$columns_array['tradeclass'] = "<td style=\"border-color:black;border-right: none; width: " . $vbulletin->options['rostermaster_artisanwidth']. "px \">" . $artisanimagename . "</td><td style=\"border-color:black;border-left: none; text-align: center\">{$line['Art_Class']}$classlevelsep({$line['Art_Level']})</td>";
$columns_array['status'] = "<td style=\"border-color:black;\" align=\"right\">$formattedstatus</td>";
$columns_array['quests'] = "<td style=\"border-color:black;\" align=\"right\">$formattedquests</td>";
$columns_array['joined'] = "<td style=\"border-color:black;text-align: center\">".vbdate($vbulletin->options['dateformat'], $line['Joined'], 1)."</td>";



replacing black in the style with whatever colour you want, either if its a default web colour, by using black, white, lightgrey, orange etc or by using a hexcode #338899 etc.

If you must have IE, maybe just use the borders="0" fix, its easier and looks much better

pedigree
07-27-2007, 07:51 PM
uhh no files uploaded?

Oh, hmmm, weird, I attached it but Ive uploaded it again now.

BlackxRam
08-03-2007, 03:00 PM
Since this is using vbulletin, is it possible to allow other users to create a roster page for themselves? Instead of just one standalone?

pedigree
08-13-2007, 01:56 PM
Not with this, if they want to create their own roster (no idea what they would have in it), then youll need to use something else.

Vindicare
09-18-2007, 11:31 PM
Great mod, but for some reason it totally ignores my $navbar (which is by default on top of pretty much every vB template and also on top of the rostermaster templates).

So the roster page is kinda cut off the rest of the forum...

pedigree
09-19-2007, 12:01 PM
Hmm, Ill look at the template code and see why its doing that.

Vindicare
09-19-2007, 01:16 PM
Not sure if that helps, but I might add that after a fresh install with unpopulated DBs (as long as it says "No roster data has been found in the database") the $navbar works just fine.

But as soon as I run the cronjob to pull the data, the $navbar just disappears...
(The actual roster script works perfectly fine, though.)


[edit] Clicked on the link to the Trinitas board (http://www.eq2trinitas.com/forum/rostermaster.php?) in this thread, and seems like they got the same issue - missing vB navbar on top.

Alliya
11-10-2007, 08:22 AM
I suggest you read the documentation when you install something next time. Thats not an error, its a notification that you dont have any data imported. You need to run a scheduled task to import the database

4 - Run the Scheduled Task once to populate the database with your guilds information. The task will run once per hour afterwards.
(AdminCP -> Scheduled Task Manager -> RosterMasterUpdate -> Run Now)

Hey, I have the same problem, but I did all this and it still says empty.

Any ideas?

Great work btw :

Alli

pedigree
11-10-2007, 03:15 PM
Have you put a correct guild id in the admin section?

Ive just finished my current project but Ill get on this one over the weekend.

Whats the guild ID youre using? Ill use that for testing the code

Alliya
11-10-2007, 06:05 PM
http://eq2players.station.sony.com/guilds/guild_profile.vm?guildId=2025303

Took this guild id and the name hmm

Gimme a shout when youre online :)

pedigree
11-10-2007, 06:42 PM
Fixed the navbar issue, there is a zip file in the main post with an updated file in it, overwrite the existing one.

pedigree
11-10-2007, 06:54 PM
Heh, youve got Oakster in your guild, he was , as I was in Ascendance until that b***h Mirishka destroyed it. Ill plug your guild details into it over the weekend. Did you turn on logged to debug? What does that say?

Alliya
11-10-2007, 07:15 PM
lol yar I am in guild with Oak, are u online atm? send me a tell :p

pedigree
11-10-2007, 07:16 PM
I just put your ID and your name into the first two fields, ran an import and it worked... PM me your guild forum link and Ill have a look.

pedigree
11-10-2007, 07:43 PM
Fixed it after looking at your forum.

if you have problems where the data wont import, turn turning CURL support off.

Brax
12-04-2007, 05:46 AM
Installed.

Lets say I have several guilds in my forum (not at the moment, but could happen in the future), is there a way for this add-on to manage several guilds??

pedigree
12-04-2007, 08:35 AM
Not at the moment but I dont see any reason why I couldnt make some database changes so that it could.

The only problem with that would be that all the roster settings would apply to all the different guilds rosters. I was thinking about this before as we used to run an alt-guild that I wouldve liked to have there as well.

I was going to make some more changes to bring it a bit more in line with the standalone version (currently at 3.01) in supporting more UTF-8 and guilds with accents in their names and a "display by class".

Would you be willing to test development code if I start on it?

barnes5150
02-08-2008, 02:38 PM
Pedigree

I LOVE this mod! Thank You for creating this- I just got it installed and it looks great.

you can check it out :

Ironrangers.net (http://www.ironrangers.net)

Click on the EQ2 Roster link in the Nav Bar

Very Nice- Thank You!

pedigree
02-10-2008, 02:15 PM
I really must update it to handle level 80 since RoK went live. Ive given the game a break due to baby #2 but its on my list of things to do

Thanks for the feedback, makes the hours and hours of working on it worthwhile :)

Mother_Dee
04-02-2008, 08:34 PM
I've hacked together a vBa module that shows the guild statistics, it's not much, just a few edits, but here you go in case you're interested:

TheInsaneManiac
06-09-2008, 06:28 AM
Does vbRosterMaster work on 3.7?

pedigree
06-09-2008, 09:11 AM
It should work in 3.7, it doesnt do anything fancy at all.

... although youll need to edit your menu template to link to rostermaster.php

TheInsaneManiac
06-11-2008, 08:05 PM
It should work in 3.7, it doesnt do anything fancy at all.

... although youll need to edit your menu template to link to rostermaster.php
Thanks man!

maddawg138
09-20-2008, 04:15 AM
anyway to make it so stats and roster are on the same page?

like Saints of Norrath (http://www.saintsofnorrath.net/roster.php) have it on their phpbb site?

Warion
09-30-2008, 09:46 PM
Looking for a version of this mod that would be open to other mmo's.

pedigree
10-01-2008, 03:08 PM
warion - Im not sure there is one and I dont have the time to write it.

Maddwag - editting some templates and merging some code should do the trick but see above.

Ev!L ErN!E
11-05-2008, 10:48 AM
Is there a way to make the VB version look like this one here:

http://thehalasianempire.com/index.php?name=Roster_Master

with heritage tracker, access tracker etc.