Initial checkin after git reorg

This commit is contained in:
Stefan Reimer 2011-05-12 00:09:43 -07:00
commit d790ce5cdb
243 changed files with 13322 additions and 0 deletions

BIN
builds/1.0.zip Normal file

Binary file not shown.

Binary file not shown.

BIN
builds/mod_guild_10.zip Normal file

Binary file not shown.

BIN
builds/mod_guild_15.zip Normal file

Binary file not shown.

View File

@ -0,0 +1,15 @@
<?php
// no direct access
defined('_JEXEC') or die('Restricted access');
require_once(JPATH_COMPONENT.DS.'controller.php');
//if (!JRequest::getVar('view') && !JRequest::getVar('task') && !JRequest::getVar('controller')) {
// JRequest::setVar('view', 'config');
//}
$controller = new GuildmasterController();
$controller->execute(JRequest::getVar('task'));
$controller->redirect();
?>

View File

@ -0,0 +1,41 @@
<?php
// no direct access
defined('_JEXEC') or die('Restricted access');
jimport('joomla.application.component.controller');
/**
* GuildMaster Controller
*/
class GuildmasterController extends JController {
function GuildmasterController() {
parent :: __construct();
}
function display($tmpl= null) {
parent :: display($tmpl);
}
function save($tmpl= null) {
$data = JRequest :: get('params');
$model = $this->getModel('GuildMaster');
if ($model->store($data)) {
$message = JText::_('CONFIG SAVED SUCCESSFULLY');
} else {
$message = $model->getError();
}
$this->setRedirect(JRoute::_('index.php?option=com_guildmaster', false), $message);
}
/**
* Cancels editing and checks in the record
*/
function cancel($tmpl= null) {
$msg= JText :: _('EDIT CANCELED');
$this->setRedirect(JRoute :: _('index.php?option=com_guildmaster', false), $msg);
}
}
?>

View File

@ -0,0 +1,598 @@
DROP TABLE IF EXISTS `#__guild_master_conf`;
DROP TABLE IF EXISTS `#__guild_master_heri_quests`;
DROP TABLE IF EXISTS `#__guild_master_heri_steps`;
DROP TABLE IF EXISTS `#__guild_master_toons`;
DROP TABLE IF EXISTS `#__guild_master_guild`;
CREATE TABLE `#__guild_master_toons` (
`Name` VARCHAR( 255 ) NOT NULL ,
`Last_name` VARCHAR( 255 ),
`PrefixTitle` VARCHAR( 255 ),
`Rank` VARCHAR( 20 ) NOT NULL default 'Initiate',
`Race` VARCHAR( 255 ),
`Rank_Value` INT NOT NULL ,
`Adv_Level` INT NOT NULL ,
`Art_Level` INT NOT NULL ,
`Art2_Level` INT NOT NULL ,
`Adv_Class` ENUM( 'Assassin', 'Bard', 'Berserker', 'Brawler', 'Brigand', 'Bruiser', 'Cleric', 'Coercer', 'Conjuror', 'Crusader', 'Defiler', 'Dirge', 'Druid', 'Enchanter', 'Fighter', 'Fury', 'Guardian', 'Illusionist', 'Inquisitor', 'Mage', 'Monk', 'Mystic', 'Necromancer', 'Paladin', 'Predator', 'Priest', 'Ranger', 'Rogue', 'Scout', 'Shadow Knight', 'Shaman', 'Sorceror ', 'Summoner', 'Swashbuckler', 'Templar', 'Troubador ', 'Warden', 'Warlock ', 'Warrior', 'Wizard ' ) NOT NULL ,
`Art_Class` ENUM( 'Alchemist', 'Armorer', 'Artisan', 'Carpenter', 'Craftsman', 'Jeweler', 'Outfitter', 'Provisioner', 'Sage', 'Scholar', 'Tailor', 'Weaponsmith', 'Woodworker' ) NOT NULL ,
`Art2_Class` ENUM( 'Transmuter', 'Tinkerer' ) ,
`Joined` DATETIME NOT NULL ,
`Points` INT NOT NULL ,
`Points_time` FLOAT,
`toon_id` INT NOT NULL ,
`Quests` INT NOT NULL ,
`KvD` FLOAT NOT NULL ,
`lastonline` DATETIME,
`highestmeleehit` INT,
`highestmagichit` INT,
`memberNumber` INT,
`Last_Updated` TIMESTAMP ,
PRIMARY KEY ( `toon_id` ));
CREATE TABLE `#__guild_master_conf` (
`id` INT NOT NULL AUTO_INCREMENT,
`guild_name` VARCHAR( 255 ) NOT NULL ,
`guild_id` INT NOT NULL ,
`guild_rank_1` VARCHAR( 255 ) ,
`guild_rank_2` VARCHAR( 255 ) ,
`guild_rank_3` VARCHAR( 255 ) ,
`guild_rank_4` VARCHAR( 255 ) ,
`guild_rank_5` VARCHAR( 255 ) ,
`guild_rank_6` VARCHAR( 255 ) ,
`guild_rank_7` VARCHAR( 255 ) ,
`guild_rank_8` VARCHAR( 255 ) ,
`show_updated` BOOL NOT NULL ,
`guild_info` BOOL NOT NULL ,
`popup` BOOL NOT NULL ,
`use_images` BOOL NOT NULL ,
`show_lastnames` BOOL NOT NULL ,
`show_prefixtitles` BOOL NOT NULL ,
`roster_url` VARCHAR( 255 ),
`roster_url_xml` VARCHAR( 255 ),
`guild_url` VARCHAR( 255 ),
`toon_url` VARCHAR( 255 ),
`cache_time` INT NOT NULL ,
`hide_time` INT NOT NULL ,
PRIMARY KEY ( `id` ));
CREATE TABLE `#__guild_master_guild` (
`guild_id` INT NOT NULL ,
`guild_name` VARCHAR( 255 ),
`server_name` VARCHAR( 255 ),
`server_id` INT,
`created` DATETIME NOT NULL ,
`avg_level` INT NOT NULL ,
`avg_quests` INT NOT NULL ,
`members` INT NOT NULL ,
`unique_members` INT NOT NULL ,
`most_recent_item` VARCHAR( 255 ),
`level` TINYINT NOT NULL ,
`points` INT NOT NULL ,
`item_disc_world` INT NOT NULL ,
`item_disc_server` INT NOT NULL ,
`rares` INT NOT NULL ,
`pvp_kills` INT NOT NULL ,
`npc_kills` INT NOT NULL ,
`arena_kills` INT NOT NULL ,
`avg_pvp_kills` INT NOT NULL ,
`avg_npc_kills` INT NOT NULL ,
`avg_arena_kills` INT NOT NULL ,
`items_crafted` INT NOT NULL ,
`deaths` INT,
`deaths_per_member` FLOAT ,
`kvd` FLOAT NOT NULL ,
`kvd_rank` INT NOT NULL ,
`most_disc_server` VARCHAR( 255 ),
`most_disc_world` VARCHAR( 255 ),
`most_killed_npcs` VARCHAR( 255 ),
`best_kvd` VARCHAR( 255 ),
`most_quests` VARCHAR( 255 ),
`most_points` VARCHAR( 255 ),
`last_lvlup` VARCHAR( 255 ),
`last_die` VARCHAR( 255 ),
`fighters` INT ,
`priests` INT ,
`mages` INT ,
`scouts` INT ,
`Last_Updated` TIMESTAMP ,
PRIMARY KEY ( `guild_id` ));
CREATE TABLE IF NOT EXISTS `#__guild_master_user` (
`toon_id` INT NOT NULL,
`user_id` INT NOT NULL,
PRIMARY KEY ( `toon_id` ));
CREATE TABLE `#__guild_master_heri_quests` (
`heri_id` INT NOT NULL,
`name_short` VARCHAR( 255 ) NOT NULL,
`name` VARCHAR( 255 ),
`url` VARCHAR( 255 ),
`reward` VARCHAR( 255 ),
`reward_url` VARCHAR( 255 ),
`level` INT,
`need_starter` BOOL,
PRIMARY KEY ( `heri_id` ));
CREATE TABLE `#__guild_master_heri_steps` (
`step_id` INT NOT NULL,
`heri_id` INT NOT NULL,
`name` VARCHAR( 255 ),
PRIMARY KEY ( `step_id` ));
CREATE TABLE IF NOT EXISTS `#__guild_master_heri_map` (
`step_id` INT NOT NULL,
`toon_id` INT NOT NULL,
PRIMARY KEY ( `step_id` , `toon_id` ));
INSERT INTO `#__guild_master_conf` (guild_name, guild_id, guild_rank_1, guild_rank_2, guild_rank_3, guild_rank_4, guild_rank_5, guild_rank_6, guild_rank_7, guild_rank_8, show_updated, popup, use_images, show_lastnames, roster_url, roster_url_xml, guild_url, cache_time,guild_info) values ('Atrocitas', 1699210, 'Gruender', 'Botschafter', 'Sekraeter', 'Berater', 'Veteran', 'Mitglied', 'Anwaerter', 'Frischling', 1, 1, 1, 1,'http://eq2players.station.sony.com/en/guild_profile.vm','http://eq2players.station.sony.com/guilds/guild_roster_xml.vm','http://eq2players.station.sony.com/guilds/guild_profile.vm',86400,0);
INSERT INTO #__guild_master_heri_quests (`heri_id`, `name_short`, `name`, `url`, `reward`, `reward_url`, `level`, `need_starter`) VALUES
(1, 'GLS', 'The Return of the Light', 'http://eq2.allakhazam.com/db/quest.html?eq2quest=433', 'Greater Lightstone', 'http://eq2.allakhazam.com/db/item.html?eq2item=2672', 20, 0),
(2, 'LJB', 'The Journey is Half the Fun', 'http://eq2.allakhazam.com/db/quest.html?eq2quest=480', 'Legendary Journeyman''s Boots', 'http://eq2.allakhazam.com/db/item.html?eq2item=2977', 50, 0),
(3, 'DWB', 'These Boots Were Made for Walking', 'http://eq2.allakhazam.com/db/quest.html?eq2quest=696', 'Dwarven Work Boots', 'http://eq2.allakhazam.com/db/item.html?eq2item=2730', 25, 0),
(4, 'SBH', 'Dragoon K''Naae of the Thexians', 'http://eq2.allakhazam.com/db/quest.html?eq2quest=799', 'Shiny Brass Halberd', 'http://eq2.allakhazam.com/db/item.html?eq2item=3013', 24, 0),
(5, 'PGT', 'An Axe from the Past', 'http://eq2.allakhazam.com/db/quest.html?eq2quest=884', 'Polished Granite Tomhawk', 'http://eq2.allakhazam.com/db/item.html?eq2item=3425', 30, 0),
(6, 'FBE', 'Hadden''s Earring', 'http://eq2.allakhazam.com/db/quest.html?eq2quest=689', 'Fishbone Earring', 'http://eq2.allakhazam.com/db/item.html?eq2item=3141', 25, 0),
(7, 'GBS', 'A Strange Black Rock', 'http://eq2.allakhazam.com/db/quest.html?eq2quest=872', 'Glowing Black Stone', 'http://eq2.allakhazam.com/db/item.html?eq2item=3468', 25, 0),
(8, 'MS', 'Stilletto''s Orders Intercepted', 'http://eq2.allakhazam.com/db/quest.html?eq2quest=957', 'Manastone', 'http://eq2.allakhazam.com/db/item.html?eq2item=3473', 28, 0),
(9, 'GB', 'Restoring Ghoulbane', 'http://eq2.allakhazam.com/db/quest.html?eq2quest=1046', 'Ghoulbane', 'http://eq2.allakhazam.com/db/item.html?eq2item=3010', 30, 0),
(10, 'SBS', 'Training is a Shield', 'http://eq2.allakhazam.com/db/quest.html?eq2quest=705', 'Shiny Brass Shield', 'http://eq2.allakhazam.com/db/item.html?eq2item=8567', 40, 0),
(11, 'GoTD', 'A Missing Mask', 'http://eq2.allakhazam.com/db/quest.html?eq2quest=1042', 'Guise of the Deceiver', 'http://eq2.allakhazam.com/db/item.html?eq2item=8536', 35, 0),
(12, 'EEB', 'Foomby''s Stolen Goods', 'http://eq2.allakhazam.com/db/quest.html?eq2quest=870', 'Bag of Sewn Evil Eye', 'http://eq2.allakhazam.com/db/item.html?eq2item=3404', 32, 0),
(13, 'SSY', 'Rescue of the Greenhoods', 'http://eq2.allakhazam.com/db/quest.html?eq2quest=953', 'Short Sword of the Ykesha', 'http://eq2.allakhazam.com/db/item.html?eq2item=3472', 32, 0),
(14, 'SoM', 'The Stein of Moggok - It Can Be Rebuilt', 'http://eq2.allakhazam.com/db/quest.html?eq2quest=858', 'Stein of Moggok', 'http://eq2.allakhazam.com/db/item.html?eq2item=3458', 35, 0),
(15, 'SBD', 'The Reaching Blade of the Assassin', 'http://eq2.allakhazam.com/db/quest.html?eq2quest=767', 'Serrated Bone Dirk', 'http://eq2.allakhazam.com/db/item.html?eq2item=3106', 35, 0),
(16, 'CKT', 'The Lost Legend of Lavastorm', 'http://eq2.allakhazam.com/db/quest.html?eq2quest=1124', 'Crown of King Tranix', 'http://eq2.allakhazam.com/db/item.html?eq2item=9121', 45, 0),
(17, 'SM', 'Screaming Mace', 'http://eq2.allakhazam.com/db/quest.html?eq2quest=1268', 'Screaming Mace', 'http://eq2.allakhazam.com/db/item.html?eq2item=8884', 50, 0),
(18, 'GEB', 'Saving Soles', 'http://eq2.allakhazam.com/db/quest.html?eq2quest=1129', 'Golden Efreeti Boots', 'http://eq2.allakhazam.com/db/item.html?eq2item=8963', 40, 0),
(19, 'BBC', 'The Bone Bladed Claymore', 'http://eq2.allakhazam.com/db/quest.html?eq2quest=1107', 'Bone Bladed Claymore', 'http://eq2.allakhazam.com/db/item.html?eq2item=10345', 40, 0),
(20, 'TME', 'An Eye for Power', 'http://eq2.allakhazam.com/db/quest.html?eq2quest=890', 'Tobrin''s Mystical Eyepatch', 'http://eq2.allakhazam.com/db/item.html?eq2item=3519', 45, 0),
(21, 'FBSS', 'The Teachings of Yoru', 'http://eq2.allakhazam.com/db/quest.html?eq2quest=864', 'Flowing Black Silk Sash', 'http://eq2.allakhazam.com/db/item.html?eq2item=3206', 45, 0),
(22, 'HC', 'By Hook of By...', 'http://eq2.allakhazam.com/db/quest.html?eq2quest=834', 'Heirophant''s Crook', 'http://eq2.allakhazam.com/db/item.html?eq2item=3140', 40, 0),
(23, 'SoR', 'An Ancient Desert Power', 'http://eq2.allakhazam.com/db/quest.html?eq2quest=2301', 'Scepter of Rahotep', 'http://eq2.allakhazam.com/db/item.html?eq2item=13165', 50, 0),
(24, 'BCG', 'Draco Mortuus Vos Liberatio', 'http://eq2.allakhazam.com/db/quest.html?eq2quest=2747', 'Bone-Clasped Girdle', 'http://eq2.allakhazam.com/db/item.html?eq2item=18846', 60, 0),
(25, 'TB', 'The Wonderous Inventions Crazed Gnome', 'http://eq2.allakhazam.com/db/quest.html?eq2quest=2729', 'Bag of the Tinkerers', 'http://eq2.allakhazam.com/db/item.html?eq2item=18488', 65, 0),
(26, 'WS', 'A Thorn of Old', 'http://eq2.allakhazam.com/db/quest.html?eq2quest=2731', 'WurmSlayer', 'http://eq2.allakhazam.com/db/item.html?eq2item=19048', 60, 0),
(27, 'DRT', 'In Honor and Service', 'http://eq2.allakhazam.com/db/quest.html?eq2quest=3142', 'Dwarven Ringmail Tunic', 'http://eq2.allakhazam.com/db/item.html?eq2item=22882', 15, 0),
(28, 'RotO', 'War and Wardrobe', 'http://eq2.allakhazam.com/db/quest.html?eq2quest=3129', 'Robe of the Oracle', 'http://eq2.allakhazam.com/db/item.html?eq2item=22867', 35, 0),
(29, 'SotO', 'The Staff of the Observers', 'http://eq2.allakhazam.com/db/quest.html?eq2quest=3121', 'Staff of the Observers', 'http://eq2.allakhazam.com/db/item.html?eq2item=22883', 50, 0),
(30, 'RC', 'Casualties of the War of the Fay', 'http://eq2.allakhazam.com/db/quest.html?eq2quest=3118', 'Rain Caller', 'http://eq2.allakhazam.com/db/item.html?eq2item=22896', 60, 0),
(31, 'CMS', 'The Symbol in the Flesh', 'http://eq2.allakhazam.com/db/quest.html?eq2quest=3458', 'Crested Mistmoore Shield', 'http://eq2.allakhazam.com/db/item.html?eq2item=27028', 70, 0),
(32, 'CoF', 'Cloak of Flames (Series)', 'http://eq2.allakhazam.com/db/quest.html?eq2quest=3352', 'Cloak of Flames', 'http://eq2.allakhazam.com/db/item.html?eq2item=27014', 65, 0);
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('1','1','Talk to Cannix');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('2','1','Touch Forgotten');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('3','1','Touch Mourned');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('4','1','Kill Rama\'nai');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('5','1','Kill Gaer');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('6','1','Kill Ogof');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('7','1','Ogof/Gaer');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('8','1','High Priest');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('9','1','BSV-General Drull');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('10','1','BSV SubQuest');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('11','1','Kill Cannix');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('12','1','Quest Turn-In');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('13','1','COMPLETED!');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('14','2','Antonica');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('15','2','Commonlands');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('16','2','Thundering Steppes');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('17','2','Nek Forest');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('18','2','Zek');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('19','2','Enchanted Lands');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('20','2','Feerrott');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('21','2','Quest Turn-In');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('22','2','COMPLETED!');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('23','3','100 Wood/100 Ore');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('24','3','Miners/Excavaters');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('25','3','Caveroot');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('26','3','Bloodtalon');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('27','3','Caveroot/Bloodtalon');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('28','3','Caveroot/Miners');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('29','3','Bloodtalon/Miners');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('30','3','BB Beer Run');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('31','3','Kill Grandfather');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('32','3','Antelope/Firerock Giant');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('33','3','Antelop');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('34','3','Firerock Giant');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('35','3','Minty Turn-in');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('36','3','Waiting on Minty');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('37','3','Quest Turn-In');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('38','3','COMPLETED!');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('39','4','60 Owlbear Meats');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('40','4','60 Undead Skin');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('41','4','Pond Run');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('42','4','Captain T\'Sanne');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('43','4','Kill Assassins');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('44','4','Quest Turn-In');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('45','4','COMPLETED!');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('46','5','Lost Tarby');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('47','5','Mining Granite');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('48','5','Forge Axe');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('49','5','100 Skellies');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('50','5','Skindancers');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('51','5','Octogorgon');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('52','5','CoD Access');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('53','5','Quest Turn-In');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('54','5','COMPLETED!');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('55','6','Get Journal');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('56','6','Nek Power Source');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('57','6','CL Power Source');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('58','6','NEK/CL Power Source');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('59','6','TS Power Source');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('60','6','TS/NEK Power Source');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('61','6','TS/CL Power Source');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('62','6','Kill Everling');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('63','6','Castle Subquest');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('64','6','Hrath V\'Tol');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('65','6','Captain Krieger');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('66','6','Quest Turn-In');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('67','6','COMPLETED!');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('68','7','TS Power Source');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('69','7','NEK Power Source');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('70','7','Both Power Sources');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('71','7','Brown Research Tome');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('72','7','Black Research Tome');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('73','7','Black/Brown Tomes');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('74','7','Need Palladium Torque');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('75','7','Tome of Life');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('76','7','Tome of Death');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('77','7','Tome of Life/Death');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('78','7','Kill Varsoon');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('79','7','CoI Access Quest');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('80','7','Kill Al\'Quylar');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('81','7','Quest Turn-In');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('82','7','COMPLETED!');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('83','8','Examine Orders');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('84','8','CoD Access Quest');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('85','8','Octogorgon');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('86','8','Examine Hand');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('87','8','Captain Ulssissaris');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('88','8','Examine RoV Book');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('89','8','Weavemaster Esh\'Rax');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('90','8','Create Shroud of Manastone');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('91','8','CoI Access Quest');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('92','8','Kill Varsoon');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('93','8','COMPLETED!');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('94','9','Dusty Blue Stone Quest');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('95','9','ToV Access');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('96','9','Retrieve Weakened');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('97','9','Torig');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('98','9','Spectre of Ire');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('99','9','The Creator');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('100','9','Torig/Ire');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('101','9','Torig/Creator');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('102','9','Torig/Creator/Ire');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('103','9','Creator/Ire');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('104','9','Cauldron Access Quest');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('105','9','Kill Everling');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('106','9','Castle Access Quest');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('107','9','COMPLETED!');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('108','10','Trial 1');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('109','10','Trial 2');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('110','10','Trial 3');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('111','10','Trial 4');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('112','10','Trial 5');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('113','10','Trial 6');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('114','10','Turn-in Grozmag');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('115','10','Kill Fyst');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('116','10','COMPLETED!');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('117','11','Basement Billy');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('118','11','Gameroom Billy');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('119','11','Chapel Billy');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('120','11','Gameroom/Chapel Billy');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('121','11','Library Book');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('122','11','Courtyard Billy');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('123','11','Froglok Assassin');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('124','11','Library Scroll');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('125','11','Nyth Dolls');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('126','11','Fiendish Blood');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('127','11','Swine Lord');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('128','11','Nyth/Fiendish/Swine');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('129','11','Nyth/Fiendish');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('130','11','Nyth/Swine');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('131','11','Fiendish/Swine');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('132','11','Kill Everling');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('133','11','COMPLETED!');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('134','12','Darkflight Faeries');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('135','12','Foomby Turn-in');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('136','12','Chomper');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('137','12','Bellendis Tempestcall');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('138','12','Lamias');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('139','12','Baz\'Tarog');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('140','12','COMPLETED!');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('141','13','Operation Greenhood Quest');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('142','13','Inspect Mine');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('143','13','Sullon Centurians');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('144','13','Tallon Raiders');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('145','13','Vallon Grunts');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('146','13','Sullon/Tallon/Vallon');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('147','13','Sullon/Tallon');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('148','13','Sullon/Vallon');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('149','13','Tallon/Vallon');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('150','13','Sentry Goorlux');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('151','13','Infiltrator Stryjin');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('152','13','Rescue Green Hood Women');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('153','13','Kill Fyst');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('154','13','COMPLETED!');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('155','14','Flerb');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('156','14','Fug');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('157','14','Hurd');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('158','14','Prud');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('159','14','Flerb/Fug/Hurd/Prud');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('160','14','Flerb/Fug/Hurd');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('161','14','Flerb/fug');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('162','14','Fug/Hurd/Prud');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('163','14','Fug/Hurd');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('164','14','Hurd/Prud');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('165','14','Fug/Prud');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('166','14','Fug/Hurd/Prud');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('167','14','Fug/Hurd');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('168','14','Bartender Clurg');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('169','14','RumDum Turn-In');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('170','14','Craft the Stein');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('171','14','COMPLETED!');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('172','15','Leelav Yekl Turn-In');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('173','15','Kreglebop Yekl');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('174','15','Lodo Bightn');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('175','15','COB Assassins');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('176','15','Windstalker Village Note');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('177','15','TS Verishu');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('178','15','Ethruia Aidora');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('179','15','Logo Bigthn');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('180','15','COMPLETED!');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('181','16','Tablet Shards');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('182','16','Banners');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('183','16','Words of Pure Magic Subquest');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('184','16','Examine Banners');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('185','16','Poem Pieces/Stanzas');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('186','16','Bunglegreeder');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('187','16','Rare Rocks');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('188','16','Tomekeeper Sunto');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('189','16','Dead Knight Bones');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('190','16','Censor of Souls');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('191','16','Speaker');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('192','16','The Castigator');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('193','16','Lord Crana');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('194','16','Onyxlam');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('195','16','Speaker/Castigator/Crana/Onyxlam');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('196','16','Speaker/Castigator/Crana');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('197','16','Speaker/Castigator');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('198','16','Castigator/Crana/Onyxlam');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('199','16','Castigator/Crana');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('200','16','Crana/Onyxlam');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('201','16','Castigator/Onyxlam');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('202','16','Turn-In');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('203','16','COMPLETED!');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('204','17','Lizardmen');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('205','17','Kaxor/Hukulan/Tzugaax/Xilarga');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('206','17','Kaxor/Hukulan/Tzugaax');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('207','17','Kaxor/Hukulan');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('208','17','Kaxor');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('209','17','Hukulan/Tzugaax/Xilarga');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('210','17','Hukulan/Tzugaax');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('211','17','Hukulan');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('212','17','Tzugaax/Xilarga');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('213','17','Tzugaax');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('214','17','Tzugaax/Kaxor');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('215','17','Basin of Ba\'Kur');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('216','17','Thulian Terrorfiends');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('217','17','Keeper');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('218','17','COMPLETED!');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('219','18','Crawlers/Drakes');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('220','18','Crawlers');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('221','18','Drakes');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('222','18','Find smelly bait');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('223','18','The Big Squiggly');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('224','18','Tazgar the Efreeti');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('225','18','Fire Giants');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('226','18','Disable the Spires');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('227','18','The Magolemus');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('228','18','Reactivate Spires');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('229','18','Efreeti Lord Djarn');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('230','18','Tazgar Turn-In');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('231','18','COMPLETED!');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('232','19','Opalla');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('233','19','Redak');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('234','19','Re-forge Hilt');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('235','19','Slay 1000 Beings');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('236','19','Gynok Moltar');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('237','19','Berik\'s Revenge Subquest');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('238','19','COMPLETED!');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('239','20','Acquire Shards');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('240','20','Bloodrage/Webclaw/Iceburn');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('241','20','Bloodrage/Webclaw');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('242','20','Bloodrage');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('243','20','Webclaw/Iceburn');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('244','20','Bloodrage/Iceburn');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('245','20','Miragul\'s Meagerie');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('246','20','Shade of Tobrin');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('247','20','Examine Chest');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('248','20','Webclaw');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('249','20','Iceburn');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('250','20','COMPLETED!');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('251','21','Harvest Wood');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('252','21','Basil Grilled Deer');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('253','21','Beer Run');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('254','21','Highwaymen');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('255','21','Cythan');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('256','21','Cythan Ring Event');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('257','21','Sartar/Oodan/Borbin/Raster');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('258','21','Sartar/Oodan/Borbin');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('259','21','Sartar/Oodan');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('260','21','Sartar the Unrivaled');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('261','21','Oodan/Borbin/Raster');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('262','21','Oodan/Borbin');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('263','21','Oodan/Raster');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('264','21','Oodan the Tranquil');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('265','21','Borbin/Raster');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('266','21','Sartar/Borbin');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('267','21','Borbin the Prevailer');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('268','21','Brother Raster');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('269','21','Rastar/Sartar');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('270','21','Kill Cythan');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('271','21','Sartar/Borbin/Rastar');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('272','21','COMPLETED!');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('273','22','100 Nightbloods');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('274','22','Mysterious Drafling Subquest');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('275','22','JumJum Juice');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('276','22','Queens Chamber');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('277','22','Asajj An\'Duuth');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('278','22','Deliver Vegetables');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('279','22','Kill Rukir');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('280','22','COMPLETED!');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('281','23','Desert Expert');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('282','23','Harshaa');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('283','23','Prophet of the Desert');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('284','23','Planetologist');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('285','23','Dry Wind Island Pirates');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('286','23','Home City Library Run');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('287','23','Rahotep Raid');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('288','23','COMPLETED!');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('289','24','Speak to Sinephobis');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('290','24','Learn Thulian');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('291','24','Strengthened/draconic/bones');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('292','24','Sheet/Lumber/Geode/Leather');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('293','24','Sheet/Lumber/Geode');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('294','24','Sheet/Lumber');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('295','24','Sheet/Geode');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('296','24','Sheet/Leather');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('297','24','Geode/Lumber');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('298','24','Geode/Lumber/Leather');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('299','24','Geode/Leather');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('300','24','Lumber/Leather');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('301','24','Blue-Silver/Sheet');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('302','24','Perfect/Osseus/Lumber');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('303','24','Perfectly Cut/Purple Geode');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('304','24','Strip of/Supple/Leather');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('305','24','Forge Combine');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('306','24','DoEllin');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('307','24','Sinephobis Turn-In');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('308','24','Spirit of DoEllin');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('309','24','COMPLETED!');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('310','25','Rescue Gnome');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('311','25','Learn Gnomish');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('312','25','Piles of Goo');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('313','25','Gimdimble Fizzwoddle Turn-In');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('314','25','Core ground samples');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('315','25','Soil Samples');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('316','25','Dizzwangle');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('317','25','Carapaces/Padding');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('318','25','Vornerus drone');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('319','25','Fetidthorn briar');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('320','25','Retrieve/gnomes/tools');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('321','25','Young dragon');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('322','25','COMPLETED!');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('323','26','Kill Azdalin');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('324','26','Kill Glyton');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('325','26','Kill Lord Xyfl');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('326','26','Fuzzmin Turn-In');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('327','26','Old Weaponsmith');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('328','26','Rare oak-shaft');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('329','26','Metal bar');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('330','26','Harla Dar');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('331','26','Lord Vyemm');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('332','26','Sothis');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('333','26','Harla/Vyemm/Sothis');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('334','26','Harla/Vyemm');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('335','26','Harla/Sothis');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('336','26','Vyemm/Sothis');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('337','26','COMPLETED!');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('338','27','War Memorial');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('339','27','Dwarven/War/Artifacts');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('340','27','Captain Irontoe');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('341','27','Echo Echo Canyon');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('342','27','Orc Hill');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('343','27','Three Crushbone/Orc Spies');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('344','27','Tuning Discs');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('345','27','Gong');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('346','27','3 Spys');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('347','27','Shrool Dust');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('348','27','20 Fayflies');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('349','27','Brook Patch/Toadstools');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('350','27','Mushroom King');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('351','27','Sprinkle Dust');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('352','27','Kill WarSmiths');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('353','27','sullon/vallon/derris/tallon');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('354','27','sullon/vallon/derris');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('355','27','sullon/vallon');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('356','27','sullon/derris');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('357','27','sullon/gullon');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('358','27','sullon');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('359','27','vallon/derris/tallon/gullon');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('360','27','vallon/derris/tallon');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('361','27','vallon/derris');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('362','27','vallon/tallon');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('363','27','vallon/gullon');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('364','27','vallon');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('365','27','derris/tallon/gullon');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('366','27','derris/tallon');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('367','27','derris/gullon');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('368','27','derris');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('369','27','tallon/gullon');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('370','27','gullon');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('371','27','Kill Expedition Leaders');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('372','27','Expedition Leader');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('373','27','Expedition Chef');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('374','27','Expedition Weaponsmith');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('375','27','Expedition Planner');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('376','27','Leader/Chef/Weaponsmith');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('377','27','Leader/Weaponsmith');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('378','27','Leader/Planner');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('379','27','Leader/weaponsmith/Planner');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('380','27','Chef/Weaponsmith/Planner');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('381','27','Chef/Planner');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('382','27','Chef/Weaponsmith');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('383','27','Planner/Weaponsmith');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('384','27','Planner/Chef');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('385','27','Dwarven ringmail plans');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('386','27','Captain R.K. Irontoe');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('387','27','COMPLETED!');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('388','28','Brooch');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('389','28','Glavarius Marud');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('390','28','fippy darkpaw');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('391','28','Empty Crate Note');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('392','28','Tessas Contingency plan');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('393','28','Tessas Hidden Notes');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('394','28','aquagoblins');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('395','28','cleric hate helms');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('396','28','Oracle NMare');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('397','28','COMPLETED!');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('398','29','Vhizz Frugrin');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('399','29','Lord Rulgax');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('400','29','mana infused crystals');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('401','29','oxidized mineral water');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('402','29','mana infused stone');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('403','29','Grikbar outcast');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('404','29','Learn Serilian');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('405','29','Pechpooka');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('406','29','Pechmooka');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('407','29','Pechyooka');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('408','29','Pechpooka/Pechmooka/Pechyooka');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('409','29','Pechpooka/Pechmooka');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('410','29','Pechpooka/Pechyooka');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('411','29','Pechmooka/Pechyooka');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('412','29','King Grikbar');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('413','29','COMPLETED!');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('414','30','Master Bowyer Mossberge');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('415','30','wounded werewolf');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('416','30','Captain Trueshot');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('417','30','dwarven wire');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('418','30','mirco servos');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('419','30','Moonlight Wood');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('420','30','Gold Fairy Dust');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('421','30','King Klak Anon');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('422','30','Sir Gearheart');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('423','30','Master Bowyer Mossberge');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('424','30','Fethinal');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('425','30','Dragoon V Riv');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('426','30','Dragoon K Get');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('427','30','Dragoon Cpt. K Venx');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('428','30','kill Captian Trueshot');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('429','30','Huntmaster Viswin');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('430','30','COMPLETED!');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('431','31','Glyph Tatooed Flesh');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('432','31','Tavish Dracinov');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('433','31','Amares D Venhz');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('434','31','20 Chunks/Raw Meat');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('435','31','20 Congealed/Blood Drops');
INSERT INTO #__guild_master_heri_steps (step_id,heri_id,name) VALUES ('436','31','COMPLETED!');

View File

@ -0,0 +1,55 @@
<?php
//no direct access
defined('_JEXEC') or die();
jimport('joomla.application.component.model');
class GuildMasterModelGuildMaster extends JModel {
var $_data;
/**
* Creates a query string for retrieval of data from the database.
* @access private
* @return string the query string for the database operation
*/
function _buildQuery() {
$query= 'SELECT * FROM #__guild_master_conf WHERE id=1';
return $query;
} //end _buildQuery
/**
* Returns an array of forum items from the database.
* @return array an array of forum objects
*/
function load() {
//only perform the operation if we not already done so
if (empty ($this->_data)) {
$query= $this->_buildQuery();
$this->_data= $this->_getList($query);
}
return $this->_data;
} //end load
function store($data) {
$row = $this->getTable('GuildMaster');
$row->id=1;
if (!$row->bind($data)) {
$this->setError($row->getError());
return false;
}
// var_dump(get_object_vars($row));
if (!$row->store()) {
$this->setError($row->getError());
return false;
}
return true;
}
}
?>

View File

@ -0,0 +1,35 @@
<?php
defined( '_JEXEC' ) or die( 'Restricted access' );
jimport('joomla.database.table');
class TableGuildMaster extends JTable {
var $id = null;
var $guild_name = null;
var $guild_id = null;
var $guild_rank_1 = null;
var $guild_rank_2 = null;
var $guild_rank_3 = null;
var $guild_rank_4 = null;
var $guild_rank_5 = null;
var $guild_rank_6 = null;
var $guild_rank_7 = null;
var $guild_rank_8 = null;
var $show_updated = null;
var $popup = null;
var $use_images= null;
var $show_lastnames = null;
var $show_prefixtitles = null;
var $roster_url = null;
var $roster_url_xml = null;
var $guild_url = null;
var $toon_url = null;
var $cache_time = null;
var $hide_time = null;
var $guild_info = null;
function __construct(&$db) {
parent::__construct('#__guild_master_conf', 'id', $db);
}
}
?>

View File

@ -0,0 +1,5 @@
DROP TABLE IF EXISTS `#__guild_master_conf`;
DROP TABLE IF EXISTS `#__guild_master_heri_quests`;
DROP TABLE IF EXISTS `#__guild_master_heri_steps`;
DROP TABLE IF EXISTS `#__guild_master_toons`;
DROP TABLE IF EXISTS `#__guild_master_guild`;

View File

@ -0,0 +1,41 @@
<?php defined( '_JEXEC' ) or die( 'Restricted access' ); ?>
<form action="index.php" method="post" name="adminForm">
<div id="editcell">
<table class="adminheading">
<tr>
<th>
Guildmaster Settings
</th>
</tr>
</table>
<div>
In order to set a direct link to the heritage tracking page, create <b>Link - URL</b> and enter <b>index.php?option=com_guildmaster&action=heritage</b> as link.
</div>
<fieldset class="adminform">
<legend><?php echo JText::_( 'Parameters' ); ?></legend>
<table class="admintable">
<tr>
<td>
<?php
$conf_row= $this->items[0];
// Conf options
if ($conf_row) {
foreach ($conf_row as $k => $v) {
$txt[]= "$k=$v";
}
}
// get params definitions
$params= new JParameter($txt, JPATH_ADMINISTRATOR .'/components/com_guildmaster/guildmaster.xml');
echo $params->render();
?>
</td>
</tr>
</table>
</fieldset>
</div>
<input type="hidden" name="option" value="com_guildmaster" />
<input type="hidden" name="task" value="" />
</form>

View File

@ -0,0 +1,23 @@
<?php
//no direct access
defined( '_JEXEC' ) or die( 'Restricted Access' );
jimport( 'joomla.application.component.view' );
class guildmasterViewguildmaster extends JView
{
function display( $tmpl = null )
{
//set up the tool bar
JToolBarHelper::title(JText::_( 'Guildmaster' ));
JToolBarHelper::save();
JToolBarHelper::cancel();
$items = $this->get('Data');
$this->assignRef('items', $items);
parent::display($tmpl);
} //end display
}
?>

View File

@ -0,0 +1,87 @@
<?php
defined('_JEXEC') or die('Restricted access');
// jimport('joomla.database.table');
class Guild extends JTable {
// var $id = NULL;
var $guild_id = NULL;
var $guild_name = "";
var $server_name = "";
var $server_id = NULL;
var $created = NULL;
var $avg_level = NULL;
var $avg_quests = NULL;
var $members = NULL;
var $unique_members = NULL;
var $most_recent_item = "";
var $level = NULL;
var $points = NULL;
var $item_disc_world = NULL;
var $item_disc_server = NULL;
var $rares = NULL;
var $pvp_kills = NULL;
var $npc_kills = NULL;
var $arena_kills = NULL;
var $avg_pvp_kills = NULL;
var $avg_npc_kills = NULL;
var $avg_arena_kills = NULL;
var $items_crafted = NULL;
var $deaths = NULL;
var $deaths_per_member = NULL;
var $kvd = NULL;
var $most_points = "";
// var $kvd_rank = NULL;
// var $most_disc_server = "";
// var $most_disc_world = "";
// var $most_killed_npcs = "";
// var $best_kvd = "";
// var $most_quests = "";
// var $last_lvlup = "";
// var $last_die = "";
// var $fighters = NULL;
// var $priests = NULL;
// var $mages = NULL;
// var $scouts = NULL;
var $Last_Updated = NULL;
function __construct(& $db) {
parent :: __construct('#__guild_master_guild', 'guild_id', $db);
}
function exists($id = NULL) {
if (!$id) {
$k = $this->_tbl_key;
$id = $this->$k;
if (!$id) {
return false;
}
}
$sql = "SELECT $this->_tbl_key FROM $this->_tbl WHERE $this->_tbl_key=$id";
$this->_db->setQuery($sql);
$this->_db->query();
return $this->_db->getAffectedRows();
}
function store($updateNulls = false) {
$this->Last_Updated = NULL;
$k = $this->_tbl_key;
if ($this->exists()) {
$ret = $this->_db->updateObject($this->_tbl, $this, $this->_tbl_key, $updateNulls);
} else {
$ret = $this->_db->insertObject($this->_tbl, $this, $this->_tbl_key);
}
if (!$ret) {
$this->_error = strtolower(get_class($this)) . "::store failed <br />" . $this->_db->getErrorMsg();
return false;
} else {
return true;
}
}
}
?>

View File

@ -0,0 +1,456 @@
<?php
defined('_JEXEC') or die('Restricted access');
// file://c:\temp\guild_roster.xml
// file://c:\temp\guild_roster_new.xml
// file://c:\temp\guild_roster.html
require_once ('guild.guildmaster.class.php');
require_once ('toon.guildmaster.class.php');
// Function: update_all()
// Contacts SOE, parsed all available data and updates DB
function update_all(& $error, $config, $database, $force_update= null) {
$guild= new GuildMasterGuild($database);
$guild->load($config->guild_id);
if (strtotime($guild->Last_Updated) > (time() - $config->cache_time) AND ($force_update == null) AND $guild->Last_Updated) {
return;
}
$parsed_guild= parse_guild($error, $config);
if (is_array($parsed_guild)) {
$guild->bind($parsed_guild);
}
// First get all toons from the new XML feed,
if ($config->roster_url_xml) {
$parsed_roster= parse_roster2_xml($error, $config);
}
// secondly try to get the old XML data to extract quests completed and the last name
if ($config->roster_url) {
$parsed_roster_old= parse_roster_xml($error, $config);
}
if (is_array($parsed_roster)) {
// save toons
$lookup_rank= array ();
for ($i= 1; $i < 9; $i++) {
$lookup_rank[$config-> {
'guild_rank_' . $i }
]= $i;
}
$max_points= 0;
$toons= $parsed_guild[toons];
# Now do some calculations
foreach ($parsed_roster as & $line) {
$line[Rank_Value]= $lookup_rank[$line[Rank]];
// Add values from guild roster to each toon from XML
// foreach ($toons as $k => $v) { echo $k." - ".$v; }
// if ($toons[$line[Name]]) {
// $line[toon_id]= $toons[$line[Name]][toon_id];
// $line[Race]= $toons[$line[Name]][Race];
// $line[lastonline]= $toons[$line[Name]][lastonline];
// }
// Now that we got the toon_id, add quests and lastname from old xml roster
if ($parsed_roster_old[$line[toon_id]]) {
$line[Quests]= $parsed_roster_old[$line[toon_id]][Quests];
$line[Last_name]= $parsed_roster_old[$line[toon_id]][Last_name];
$line[Points]= $parsed_roster_old[$line[toon_id]][Points];
}
// These comes up to Status point earned per day in the guild
$time_alive= time() - strtotime($line[Joined]);
if ($time_alive) {
$line[Points_time]= ($line[Points] * 86400) / $time_alive;
}
// Get best guild contributor
if ($line[Points] > $max_points) {
$max_points= $line[Points];
$guild->most_points= $line[Name];
}
}
}
// Store guild
if (!$guild->store()) {
$error[]= "Could not store guild information.";
}
// Store toons
foreach ($parsed_roster as $tmp_toon) {
$toon= new GuildMasterToon($database);
// Check for player already exists in table
$toon->bind($tmp_toon);
if (!$toon->toon_id || !$toon->store()) {
$error[]= "Could not store toon " . $toon->name . " (ID:" . $toon->toon_id . ")!";
}
}
return;
}
// *************** XML PARSER ***************
// Roster Parser old
function parse_roster_xml(& $error, & $config) {
// Fetch and parse the xml_roster, placing the result in $parsed_data_array
$url= $config->roster_url;
if (preg_match("/^http/", $url)) {
$url .= "?guildId=" . $config->guild_id;
}
$parsed_data= array ();
if ($raw_data= file_get_contents($url)) {
// Create the parser.
$doc= new DOMDocument();
if (!$doc->loadXML($raw_data)) {
$error[]= "Could not create XML parser. Check your PHP installation for XML support.";
return;
}
$doc->preserveWhiteSpace= false;
// echo $doc->saveXML();
$xpath= new DOMXPath($doc);
// $server = $xpath->query("/guild/server");
$members= $xpath->query("/guild/roster/member");
foreach ($members as $member) {
$temp_toon= array ();
foreach ($member->childNodes as $attribute) {
$data= trim($attribute->nodeValue);
if ($data) {
// echo trim($attribute->nodeName) . "=" . $data . "<br/>";
switch (trim($attribute->nodeName)) {
case 'link' :
$id= explode('=', $data);
$temp_toon['toon_id']= intval($id[1]);
break;
case 'name' :
$temp_toon['Name']= $data;
break;
case 'lastname' :
$temp_toon['Last_name']= $data;
break;
case 'rank' :
$temp_toon['Rank']= $data;
break;
case 'characterclass' :
foreach ($attribute->childNodes as $class_detail) {
switch (trim($class_detail->nodeName)) {
case 'name' :
$temp_toon['Adv_Class']= trim($class_detail->nodeValue);
break;
case 'level' :
$temp_toon['Adv_Level']= trim($class_detail->nodeValue);
break;
}
}
break;
case 'artisanclass' :
foreach ($attribute->childNodes as $class_detail) {
switch (trim($class_detail->nodeName)) {
case 'name' :
$temp_toon['Art_Class']= trim($class_detail->nodeValue);
break;
case 'level' :
$temp_toon['Art_Level']= trim($class_detail->nodeValue);
break;
}
}
break;
case 'joindate' :
$temp_toon['Joined']= date('Y-m-d H:i:s', strtotime($data));
break;
case 'questscompleted' :
$temp_toon['Quests']= preg_replace('/,/', '', $data);
break;
case 'killvsdeathratio' :
$temp_toon['KvD']= $data;
break;
case 'guildstatus' :
$temp_toon['Points']= preg_replace('/,/', '', $data);
break;
case 'lastonline' :
$temp_toon['lastonline']= date('Y-m-d H:i:s', strtotime($data));
break;
case 'highestmeleehit' :
$temp_toon['highestmeleehit']= $data;
break;
case 'highestmagichit' :
$temp_toon['highestmagichit']= $data;
break;
}
}
}
if ($temp_toon['toon_id']) {
$parsed_data[$temp_toon['toon_id']]= $temp_toon;
}
}
// Destory parser.
} else { // Unable to read the URL as presented
$error[]= "Unable to read XML data. Try refreshing this page or visiting directly.<br> <a href=\"$url\">$url</a>";
return;
}
return $parsed_data;
}
// Roster Parser new
function parse_roster2_xml(& $error, & $config) {
// Fetch and parse the xml_roster, placing the result in $parsed_data_array
$url= $config->roster_url_xml;
if (preg_match("/^http/", $url)) {
$url .= "?guildId=" . $config->guild_id;
}
$parsed_data= array ();
if ($raw_data= file_get_contents($url)) {
// SOE outputs XML with HTML Encoding within a <pre> block, so we have to get rid of it and
// transform the HTML encoded XML back to native XML before feeding the parser
// $raw_data = preg_replace('/<\/?[code|pre][^>]*>/i', '', $raw_data);
// requires PHP5
$raw_data= trim(htmlspecialchars_decode($raw_data));
// Create the parser.
$doc= new DOMDocument();
if (!$doc->loadXML($raw_data)) {
$error[]= "Could not create XML parser. Check your PHP installation for XML support.";
return;
}
$doc->preserveWhiteSpace= false;
// echo $doc->saveXML();
$xpath= new DOMXPath($doc);
$members= $xpath->query("/guild/members/member");
foreach ($members as $member) {
$temp_toon= array ();
foreach ($member->childNodes as $attribute) {
$data= trim($attribute->nodeValue);
if ($data) {
// echo trim($attribute->nodeName) . "=" . $data . "<br/>";
switch (trim($attribute->nodeName)) {
case 'id' :
$temp_toon['toon_id']= $data;
break;
case 'name' :
$temp_toon['Name']= $data;
break;
// case 'prefixTitle' :
// $temp_toon['PrefixTitle']= $data;
// break;
case 'guildRank' :
$temp_toon['Rank']= $data;
break;
case 'class' :
$temp_toon['Adv_Class']= trim(preg_replace('/\(.*\)/', '', $data));
break;
case 'level' :
$temp_toon['Adv_Level']= $data;
break;
case 'artisanClass' :
$temp_toon['Art_Class']= trim(preg_replace('/\(.*\)/', '', $data));
break;
case 'artisanLevel' :
$temp_toon['Art_Level']= $data;
break;
case 'secondaryTradeskillClass' :
if ($data == "none") {
$data= "";
}
$temp_toon['Art2_Class']= $data;
break;
case 'secondaryTradeskillLevel' :
if ($data == "N/A") {
$data= null;
}
$temp_toon['Art2_Level']= $data;
break;
// case 'dateJoined' :
// $temp_toon['Joined']= date('Y-m-d H:i:s', strtotime($data));
// break;
// case 'guildStatus' :
// $temp_toon['Points']= preg_replace('/,/', '', $data);
// break;
// case 'lastonline' :
// $temp_toon['lastonline']= date('Y-m-d H:i:s', strtotime($data));
// break;
// case 'memberNumber' :
// $temp_toon['memberNumber']= $data;
// break;
}
}
}
if ($temp_toon['toon_id']) {
$parsed_data[$temp_toon['toon_id']]= $temp_toon;
}
elseif ($temp_toon['memberNumber']) {
// $temp_toon['toon_id'] = $temp_toon['memberNumber'];
$parsed_data[$temp_toon['memberNumber']]= $temp_toon;
}
}
// Destory parser.
} else { // Unable to read the URL as presented
$error[]= "Unable to read XML data. Try refreshing this page or visiting directly.<br> <a href=\"$url\">$url</a>";
return;
}
return $parsed_data;
}
// Guild Parser
function parse_guild(& $error, & $config) {
// Fetch and parse the guild homepage, placing the result in $parsed_guild_array
$url= $config->guild_url;
if (preg_match("/^http/", $url)) {
$url .= "?guildId=" . $config->guild_id;
}
if ($raw_data= file_get_contents($url)) {
// Verify that the guild name is found on the webpage
if (!($guild_name_loc= strpos($raw_data, $config->guild_name))) {
$error[]= "Unable to find guild name " . $config->guild_name . " on the Sony website.<br> Please check <a href=\"$url\">$url</a>";
return;
}
// Collect all table rows containing guild information
$data= array ();
$parsed_data= array ();
$parsed_data['guild_id']= $config->guild_id;
$matches= array ();
$toons= array ();
// Server_id not any more :(
/*
if (preg_match('/<span(?:(?:\s+[^>]*)*)>Server:<\/span>\s*<a\s+.*?serverId=(\d+)[^>]*>(.*?)<\/a>/', $raw_data, $matches)) {
$parsed_data['server_id'] = $matches[1];
echo $matches[1];
}
*/
// First get toon names, toon_id and last_played
// preg_match_all('/characterId=(\d+)[^>]*>(.*?)<\/a>.*?<img alt="(.*?)"[^>]*race_icons[^>]*>.*?<nobr>(\w+ \d{1,2}, \d{4})<\/nobr>/s', $raw_data, $matches, PREG_SET_ORDER);
// foreach ($matches as $match) {
// // echo "Toon ID:" . $match[1] . " - Name: " . $match[2] . " - Race: ".$match[3]." - Last played: " . $match[4] . "\n";
// $toons[$match[2]]= array (
// "toon_id" => $match[1],
// "Race" => $match[3],
// "lastonline" => date('Y-m-d H:i:s', strtotime($match[4]))
// );
// }
// Get the rest
// Leaderboard
// Strip HTML out of the returned string.
$raw_data= strip_tags($raw_data);
$raw_data= preg_replace('/&nbsp;/', ' ', $raw_data);
$raw_data= preg_replace('/\s+/', ' ', $raw_data);
$cols= array (
'Unique Members' => 'unique_members',
'Average Member Level' => 'avg_level',
'Guild Summary' => 'guild_name',
'Server' => 'server_name',
'Date Formed' => 'created',
'Members' => 'members',
'Guild Level' => 'level',
'Guild Status' => 'points',
'Items Discovered - Global' => 'item_disc_world',
'Items Discovered - Server' => 'item_disc_server',
'Average Quests Completed' => 'avg_quests',
'Total Rares Harvested' => 'rares',
'Total PvP Kills' => 'pvp_kills',
'Total NPC Kills' => 'npc_kills',
'Total Arena Kills' => 'arena_kills',
'Average PvP Kills' => 'avg_pvp_kills',
'Average NPC Kills' => 'avg_npc_kills',
'Average Arena Kills' => 'avg_arena_kills',
'Total Items Crafted' => 'items_crafted',
'Total Deaths' => 'deaths',
'Deaths Per Member' => 'deaths_per_member',
'Kills vs. Deaths Ratio' => 'kvd',
// 'Latest Item Discovered' => 'most_recent_item',
// 'Kills vs Deaths Ratio Rank' => 'kvd_rank',
// 'Most Item Discoveries' => 'most_disc_server',
// 'Most Item Discoveries (Game-Wide)' => 'most_disc_world',
// 'Most NPC Kills' => 'most_killed_npcs',
// 'Best Kills vs Deaths Ratio' => 'best_kvd',
// 'Most Quests Completed' => 'most_quests',
// 'Highest Guild Status Contributor' => 'most_points',
// 'Most Recent Member to Level' => 'last_lvlup',
// 'Most Recent Member to Die' => 'last_die',
// 'Fighters' => 'fighters',
// 'Priests' => 'priests',
// 'Mages' => 'mages',
// 'Scouts' => 'scouts',
);
// echo $raw_data . "\n\n\n";
foreach ($cols as $k => $v) {
switch ($v) {
case "most_recent_item" :
$expr= '/' . preg_quote($k) . '\s+(.*?)\sAverage\sQuests/';
break;
case "created" :
$expr= '/' . preg_quote($k) . '\s+(\w+ \d{1,2}, \d{4})/';
break;
case "points" :
case "deaths" :
case "npc_kills" :
case "avg_npc_kills" :
case "pvp_kills" :
case "avg_pvp_kills" :
case "items_crafted" :
case "rares" :
$expr= '/' . preg_quote($k) . '\s+([\d,]+)/';
break;
case "deaths_per_member" :
case "kvd" :
$expr= '/' . preg_quote($k) . '\s+([\d\.]+)/';
break;
default :
$expr= '/' . preg_quote($k) . '\s+([\w\/]+)/';
break;
}
if (preg_match($expr, $raw_data, $matches)) {
if ($matches[1] == "N/A") {
$matches[1]= null;
}
$parsed_data[$v]= $matches[1];
// echo $v . " = " . $matches[1] . "\n";
}
}
$parsed_data['created']= date('Y-m-d H:i:s', strtotime($parsed_data['created']));
foreach ($parsed_data as $k => $v) {
$parsed_data[$k]= preg_replace('/,/', '', $v);
// echo "\n" . $k . " = " . $parsed_data[$k];
}
// $parsed_data[toons]= $toons;
} else { // Unable to read the URL as presented
$error[]= "Unable to contact the guild page. Try Refreshing this page or visiting directly.<br><a href=\"$url\">$url</a>";
return;
}
return $parsed_data;
}
?>

View File

@ -0,0 +1,653 @@
<?php
/***************************************************************************************/
// Guild Master: Fetches, parses, stores, and displays guild roster information
// from the eq2players.com site
//
// Copyright 2006 by Stefan Reimer
//
// License:
// This program is free software; you can redistribute it and/or modify it under
// the terms of the GNU General Public License as published by the Free Software
// Foundation; either version 2 of the License, or (at your option) any later
// version.
//
// This program is distributed in the hope that it will be useful, but WITHOUT ANY
// WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
// PARTICULAR PURPOSE. See the GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License along with
// this program; if not, write to the Free Software Foundation, Inc., 59 Temple
// Place, Suite 330, Boston, MA 02111-1307 USA
//
/***************************************************************************************/
defined('_JEXEC') or die('Restricted access');
require_once (JPATH_COMPONENT.DS.'guildmaster.parser.php');
require_once (JPATH_COMPONENT.DS.'guild.guildmaster.class.php');
require_once (JPATH_COMPONENT.DS.'toon.guildmaster.class.php');
require_once (JPATH_COMPONENT.DS.'heritage.guildmaster.class.php');
require_once (JPATH_BASE.'/administrator/components/com_guildmaster/guildmaster.class.php');
$doc = &JFactory::getDocument();
$controller = new GuildmasterController();
$controller->execute(JRequest::getVar('task'));
$controller->redirect();
global $mainframe;
$database = & JFactory :: getDBO();
$user = & JFactory::getUser();
$session =& JFactory::getSession();
// $database->set(_debug,1);
$config = new GuildMasterConf($database);
$config->load(1);
$error = array ();
if (!$config->guild_id) {
$error[] = "Guild ID not set.<br/>Please check configuration.";
error_message($error);
return;
}
$force_update = JRequest :: getVar('force_update');
$disable_hiding = JRequest :: getVar('disable_hiding');
$task = JRequest :: getVar('task');
$todo = JRequest :: getVar('todo');
$_Itemid = (int) JRequest :: getVar('Itemid');
$config->index = 'index.php?option=com_guildmaster&Itemid='.$_Itemid;
$config->images_path = 'media/com_guildmaster/';
update_all($error, $config, $database, $force_update);
// temporary error handling
if (count($error)) {
error_message($error);
return;
}
switch ($task) {
case "claim" :
claim_toon($database, $config, $user, $session);
break;
case "release" :
release_toon($database, $config, $user, $session);
break;
case "heritage" :
display_heritage($database, $config, $user, $session, $disable_hiding);
break;
case "edit_heri" :
edit_heritage($database, $config, $user, $session);
break;
case "save_heri" :
if (strtolower($todo) == "save") {
save_heritage($database, $config, $user, $session);
} else {
$mainframe->redirect($config->index.'&task=heritage', "");
}
break;
case "compare_heri" :
compare_heritage($database, $config, $user, $session);
break;
default :
display_roster($database, $config, $user, $session, $disable_hiding);
}
return;
// ******************************** save heritage quests *****************************
function compare_heritage(& $database, & $config, $user, $session) {
$heri_id = (int) JRequest :: getVar('heri_id');
$quest = new GuildMasterHeritage($database);
$quest->load($heri_id);
if (!$quest->name) {
$error[] = "Quests not found !";
error_message($error);
return;
}
echo '<table class="contentpane">';
echo '<tr>';
echo '<tr><th colspan="2" align="center">'.$quest->name_short.' - '.$quest->name.'</th>';
echo '</tr>';
// Row Headers
echo '<tr class="sectiontableheader">';
echo '<th>Step</th>';
echo '<th>Toons</th>';
echo '</tr>';
$steps = $quest->get_all_steps();
$toggle = 1; // Display Rows of data
foreach ($steps as $step) {
echo '<tr class="sectiontableentry$toggle">';
if ($toggle == 1) {
$toggle = 2;
} else {
$toggle = 1;
}
echo '<td>'.$step->name.'</td>';
$toons = GuildMasterHeritage :: get_toons_for_step($database, $step->step_id);
if (!$toons) {
$toons = array ();
}
echo '<td>'.implode(',', $toons).'</td></tr>';
}
echo '</tr>';
echo '<tr><td colspan="2">';
echo '<a href="'.$config->index.'&task="heritage">Back</a>';
echo '</td></tr>';
echo '</table>';
return;
}
// ******************************** save heritage quests *****************************
function save_heritage(& $database, & $config, $user, $session) {
global $mainframe;
$user_id = $user->get('id');
$toon_id = (int) JRequest :: getVar('toon_id');
$toon = new GuildMasterToon($database);
$toon->load($toon_id);
if (check_toon($toon, $user, 1)) {
return;
}
$quests = GuildMasterHeritage :: get_all($database);
// Check to see if the data was returned
if (is_null($quests)) {
$error[] = "No quests found to display.";
error_message($error);
return;
}
foreach ($quests as $quest) {
// search new value
foreach ($_POST as $key => $var) {
// echo $key."=".$var."<br/>";
if (preg_match("/^quest_".$quest->heri_id."$/", $key)) {
echo 'Quest '.$quest->heri_id.' set to '.$var;
$quest->update_step_for_toon($toon_id, (int) $var);
}
}
}
$mainframe->redirect($config->index.'&task=heritage', 'Heritage quests for '.$toon->Name.' updated !');
return;
}
// ******************************** edit heritage quests *****************************
function edit_heritage(& $database, & $config, $user, $session) {
$user_id = $user->get('id');
$toon_id = (int) JRequest :: getVar('toon_id');
$qoffset = JRequest :: getVar('qoffset', null);
if (!is_null($qoffset)) {
$session->set('qoffset', $qoffset);
}
$qoffset = $session->get('qoffset', 0);
$qlimit = (int) JRequest :: getVar('qlimit', 16);
$toon = new GuildMasterToon($database);
$toon->load($toon_id);
if (check_toon($toon, $user, 1)) {
return;
}
$quests = GuildMasterHeritage :: get_all($database, $qoffset, $qlimit);
$nr_quests = GuildMasterHeritage :: get_nr_quests($database);
// Check to see if the data was returned
if (is_null($quests)) {
$error[] = "No quests found to display.";
error_message($error);
return;
}
echo '<form enctype="multipart/form-data" task="'.$config->index.'" method="post" name="edit_heri">';
echo '<table class="contentpane">';
echo '<tr>';
echo '<tr><th colspan="3" align="center">Heritage Quests for '.$toon->Name.'</th>';
echo '</tr>';
echo '<tr class="sectiontableheader">';
echo '<th>&nbsp;</th>';
echo '<th>Quest</th>';
echo '<th>Current Step</th>';
echo '</tr>';
$toggle = 1; // Display Rows of data
foreach ($quests as $quest) {
echo '<tr class="sectiontableentry$toggle">';
if ($toggle == 1) {
$toggle = 2;
} else {
$toggle = 1;
}
echo '<td><a href="'.$quest->reward_url.'"><image src="'.$config->images_path.'quests/'.$quest->name_short.'.jpg"/></a></td>';
echo '<td><a href="'.$quest->url.'">'.$quest->name_short.'</a> - '.$quest->name.' ('.$quest->level.')</td>';
$all_steps = $quest->get_all_steps();
$step = $quest->step_for_toon($toon->toon_id);
echo '<td>';
echo '<select name="quest_'.$quest->heri_id.'" class="inputbox" style="width:18em">>';
echo '<option value="0"> </option>';
foreach ($all_steps as $pos_step) {
echo '<option value="'.$pos_step->step_id.'"';
if ($pos_step->step_id == $step[0]) {
echo ' selected="selected"';
}
echo '>'.$pos_step->name.'</option>';
}
echo '</select>';
echo '</td>';
echo '</tr>';
}
echo '<tr><td colspan="3" align="center">';
echo '<input class="button" type="submit" name="todo" value="Cancel" />';
echo '&nbsp;&nbsp;&nbsp;';
echo '<input class="button" type="submit" name="todo" value="Save" />';
echo '<input type="hidden" name="toon_id" value="'.$toon_id.'" />';
echo '<input type="hidden" name="task" value="save_heri" />';
echo '</td></tr>';
echo '</table>';
echo '</form>';
show_pager($qoffset, $qlimit, $nr_quests, $config->index.'&task=edit_heri&toon_id='.$toon_id);
return;
}
// ******************************** Release toon *****************************
function release_toon(& $database, & $config, $user, $session) {
global $mainframe;
$user_id = $user->get('id');
$toon_id = (int) JRequest :: getVar('toon_id');
$toon = new GuildMasterToon($database);
$toon->load($toon_id);
if (check_toon($toon, $user, 1)) {
return;
}
$toon->release();
$mainframe->redirect($config->index, $toon->Name." is free again !");
return;
}
// ******************************** Claim toon *****************************
function claim_toon(& $database, & $config, $user, $session) {
global $mainframe;
$user_id = $user->get('id');
$toon_id = (int) JRequest :: getVar('toon_id');
$toon = new GuildMasterToon($database);
$toon->load($toon_id);
if (check_toon($toon, $user, 0)) {
return;
}
$toon->claim($user_id);
$mainframe->redirect($config->index, $toon->Name." is now yours !");
}
// ******************************** Display Code *****************************
function display_roster(& $database, & $config, $user, $session, $disable_hiding=null) {
$order = JRequest :: getVar('order', 'S');
$orderd = (int) JRequest :: getVar('orderd', 0);
$toffset = (int) JRequest :: getVar('toffset', 0);
$tlimit = (int) JRequest :: getVar('tlimit', 50);
$user_id = $user->get('id');
($disable_hiding)? $hide_time=0: $hide_time = $config->hide_time;
// $roster_columns = array ('N' => array ('name', 'Name', 'left'), 'R' => array ('rank_value', 'Rank', 'left'), 'AC' => array ('Adv_Class', 'Adventure', 'left'), 'AL' => array ('Adv_Level', 'Lvl', 'left'), 'CC' => array ('Art_Class', 'Artisan', 'left'), 'CL' => array ('Art_Level', 'Lvl', 'left'), 'S' => array ('Points', 'Status', 'right'), 'ST' => array ('Points_time', 'Stat/d', 'right'), 'Q' => array ('Quests', 'Quests', 'right'), 'K' => array ('KvD', 'KvD', 'right'), 'LON' => array ('lastonline', 'Last on', 'right'));
// Remove Last Online for the public :)
// if ($user_id) {
// $roster_columns = array ('R' => array ('rank_value', 'Rank', 'left'), 'N' => array ('name', 'Name', 'left'), 'RA' => array ('Race', 'Race', 'left'), 'AL' => array ('Adv_Level', 'Lvl', 'right'), 'AC' => array ('Adv_Class', 'Adventure', 'left'), 'CL' => array ('Art_Level', 'Lvl', 'right'), 'CC' => array ('Art_Class', 'Artisan', 'left'), 'S' => array ('Points', 'Status', 'right'), 'ST' => array ('Points_time', 'Stat/d', 'right'), 'Q' => array ('Quests', 'Quests', 'right'), 'LON' => array ('lastonline', 'Last on', 'right'));
// } else {
// $roster_columns = array ('R' => array ('rank_value', 'Rank', 'left'), 'N' => array ('name', 'Name', 'left'), 'RA' => array ('Race', 'Race', 'left'), 'AL' => array ('Adv_Level', 'Lvl', 'right'), 'AC' => array ('Adv_Class', 'Adventure', 'left'), 'CL' => array ('Art_Level', 'Lvl', 'right'), 'CC' => array ('Art_Class', 'Artisan', 'left'), 'S' => array ('Points', 'Status', 'right'), 'ST' => array ('Points_time', 'Stat/d', 'right'), 'Q' => array ('Quests', 'Quests', 'right'));
// }
$roster_columns = array ('R' => array ('rank_value', 'Rank', 'left'), 'N' => array ('name', 'Name', 'left'), 'AL' => array ('Adv_Level', 'Lvl', 'right'), 'AC' => array ('Adv_Class', 'Adventure', 'left'), 'CL' => array ('Art_Level', 'Lvl', 'right'), 'CC' => array ('Art_Class', 'Artisan', 'left'), 'CL2' => array ('Art2_Level', 'Lvl', 'right'), 'CC2' => array ('Art2_Class', 'Artisan', 'left'), 'S' => array ('Points', 'Status', 'right'), 'Q' => array ('Quests', 'Quests', 'right'));
$db_order = $roster_columns[$order][0];
if (!$db_order) {
$db_order = 'Points';
}
// reload guild from DB
$guild = new GuildMasterGuild($database);
$guild->load($config->guild_id);
$toons = GuildMasterToon :: get_all($database, $db_order, $orderd, $toffset, $tlimit, $hide_time);
// Check to see if the data was returned
if (is_null($toons)) {
$error[] = "No data found to display.";
error_message($error);
return;
}
// Default colspan for the top row
$colspan = count($roster_columns) + 1;
echo '<table class="contentpane">';
if ($config->guild_info) {
echo '<tr class="contentheading"><th colspan="'.$colspan.'" align="center">';
echo $guild->guild_name;
echo '</th></tr>';
echo '<tr><td colspan="'.$colspan.'" align="center">';
echo 'Members: '.$guild->members.'&nbsp;&nbsp;&nbsp;';
echo 'Level: '.$guild->level.'&nbsp;&nbsp;&nbsp;';
echo 'Status: '.$guild->points.'&nbsp;&nbsp;&nbsp;';
echo 'Server: '.$guild->server_name;
echo '</td></tr>';
echo '<tr><td colspan="'.$colspan.'" align="center">';
echo '&nbsp;';
echo '</td></tr>';
}
// Row Headers
echo '<tr class="sectiontableheader">';
echo '<th>&nbsp;</th>';
foreach ($roster_columns as $key => $col) {
echo '<th align="'.$col[2].'" nowrap';
if ($order == $key) { // If same col clicked second time flip order
if ($orderd) {
$_orderd = 0;
} else {
$_orderd = 1;
}
echo ' class="highlight"';
} else {
$_orderd = 0;
}
echo '>&nbsp;<a href="'.$config->index.'&order='.$key.'&orderd='.$_orderd.'">'.$col[1].'</a>&nbsp;</th>';
}
echo '</tr>';
if ($config->popup) {
$target = ' target="_blank"';
} else {
$target = "";
}
$toggle = 1; // Display Rows of data
foreach ($toons as $toon) {
echo '<tr class="sectiontableentry'.$toggle.'">';
if ($toggle == 1) {
$toggle = 2;
} else {
$toggle = 1;
}
// task cell if logged in
echo '<td align="center">';
if ($user_id) {
// toon is free
$toon->user_id = $toon->get_user_id();
if (is_null($toon->user_id)) {
//claim toon
echo '<a href="'.$config->index.'&task=claim&toon_id='.$toon->toon_id.'">C</a>';
}
elseif ($toon->user_id == $user_id || $user->get('usertype') == "Super Administrator") {
//release toon
echo '<a href="'.$config->index.'&task=release&toon_id='.$toon->toon_id.'">R</a>';
}
}
echo '</td>';
// Rank
if ($config->use_images) {
echo '<td align="left"><image src="'.$config->images_path.'ranks/rank'.$toon->Rank_Value.'.png" alt="'.$toon->Rank.'" title="'.$toon->Rank.'"/></td>';
} else {
echo '<td align="left">&nbsp;'.$toon->Rank.'&nbsp;</td>';
}
// Name
$toon_name=$toon->Name;
if ($config->show_lastnames) {
$toon_name .= ' '.$toon->Last_name;
}
if ($config->show_prefixtitles) {
$toon_name = $toon->PrefixTitle.' '.$toon_name;
}
echo '<td align="left">&nbsp;<a href="http://eq2players.station.sony.com/en/pplayer.vm?characterId='.$toon->toon_id.'" '.$target.'>'.$toon_name.'</a>&nbsp;</td>';
// Race
// if ($config->use_images) {
// echo '<td align="left"><image src="'.$config->images_path.'races/'.strtolower(preg_replace('/\s+/','',$toon->Race)).'.gif" alt="'.$toon->Race.'" title="'.$toon->Race.'"/></td>';
// } else {
// echo '<td align="left">'.$toon->Race.'</td>';
// }
// Adventurer
echo '<td align="right">&nbsp;'.$toon->Adv_Level.'&nbsp;</td>';
if ($config->use_images) {
echo '<td align="left"><image src="'.$config->images_path.'adventurer/'.strtolower(preg_replace('/\s+/','',$toon->Adv_Class)).'.gif" alt="'.$toon->Adv_Class.'" title="'.$toon->Adv_Class.'"/></td>';
} else {
echo '<td align="left">&nbsp;'.$toon->Adv_Class.'&nbsp;</td>';
}
// Artisan
if (!$toon->Art_Class) {
$toon->Art_Class="Unskilled";
}
echo '<td align="right">&nbsp;'.$toon->Art_Level.'&nbsp;</td>';
if ($config->use_images) {
echo '<td align="left"><image src="'.$config->images_path.'tradeskill/'.strtolower(preg_replace('/\s+/','',$toon->Art_Class)).'.gif" alt="'.$toon->Art_Class.'" title="'.$toon->Art_Class.'"/></td>';
} else {
echo '<td align="left">&nbsp;'.$toon->Art_Class.'&nbsp;</td>';
}
// Secondary Tradeskill
echo '<td align="right">&nbsp;'.$toon->Art2_Level.'&nbsp;</td>';
echo '<td align="left">&nbsp;'.substr($toon->Art2_Class,0,4).'&nbsp;</td>';
// Status Points
echo '<td align="right">&nbsp;'.$toon->Points.'&nbsp;</td>';
// echo '<td align="right">&nbsp;'.sprintf("%.0f", $toon->Points_time).'&nbsp;</td>';
// Quests
echo '<td align="right">&nbsp;'.$toon->Quests.'&nbsp;</td>';
// echo '<td align="right">&nbsp;'.sprintf("%.0f", $toon->KvD).'&nbsp;</td>';
// Last online
// if ($user_id) {
// echo '<td align="right">&nbsp;'.date("j.M", strtotime($toon->lastonline)).'&nbsp;</td>';
// }
echo '</tr>';
}
if ($config->show_updated) {
echo '<tr class="small"><td colspan="'.$colspan.'" align="center">';
echo 'Last Updated: '.$guild->Last_Updated;
echo '</td></tr>';
}
echo '</table>';
return;
}
// ******************************** Display Code *****************************
function display_heritage(& $database, & $config, $user, $session, $disable_hiding=null) {
$user_id = $user->get('id');
$qoffset = JRequest :: getVar('qoffset', null);
if (!is_null($qoffset)) {
$session->set('qoffset', $qoffset);
}
$qoffset = $session->get('qoffset', 0);
$qlimit = (int) JRequest :: getVar('qlimit', 16);
$toffset = (int) JRequest :: getVar('toffset', 0);
$tlimit = (int) JRequest :: getVar('tlimit', 50);
($disable_hiding)? $hide_time=0: $hide_time = $config->hide_time;
$quests = GuildMasterHeritage :: get_all($database, $qoffset, $qlimit);
$nr_quests = GuildMasterHeritage :: get_nr_quests($database);
// Check to see if the data was returned
if (is_null($quests)) {
$error[] = "No quests found to display.";
error_message($error);
return;
}
echo '<table class="contentpane">';
// Row Headers
echo '<tr class="sectiontableheader">';
echo '<th>&nbsp;</th>';
echo '<th>Reward</th>';
foreach ($quests as $quest) {
echo '<th align="center"><a href="'.$quest->reward_url.'"><image src="'.$config->images_path.'quests/'.$quest->name_short.'.jpg"/></a></th>';
}
echo '</tr>';
echo '<tr class="sectiontableheader">';
echo '<th>&nbsp;</th>';
echo '<th>Quest<br/>Level</th>';
foreach ($quests as $quest) {
echo '<th align="center"><a href="'.$quest->url.'">'.$quest->name_short.'</a><br/>'.$quest->level.'</th>';
}
echo '</tr>';
echo '<tr class="sectiontableheader">';
echo '<th>Player</th>';
echo '<th>Compare</th>';
foreach ($quests as $quest) {
echo '<th align="center"><a href="'.$config->index.'&task=compare_heri&heri_id='.$quest->heri_id.'">[<b>?</b>]</a></th>';
}
echo '</tr>';
$toggle = 1; // Display Rows of data
$toons = GuildMasterToon :: get_all($database, 'Points', 0, $toffset, $tlimit, $hide_time);
// Check to see if the data was returned
if (!is_null($toons)) {
foreach ($toons as $toon) {
echo '<tr class="sectiontableentry'.$toggle.'">';
if ($toggle == 1) {
$toggle = 2;
} else {
$toggle = 1;
}
echo '<td>'.$toon->Name.'</td>';
// If logged in, get toon<->user mapping
if ($user_id) {
$toon->user_id = $toon->get_user_id();
}
if (is_null($toon->user_id) || $toon->user_id != $user_id) {
echo '<td>&nbsp;</td>';
} else {
// edit button
echo '<td><a href="'.$config->index.'&task=edit_heri&toon_id='.$toon->toon_id.'">Edit</a></td>';
}
foreach ($quests as $quest) {
$step = $quest->step_for_toon($toon->toon_id);
if (!$step) {
echo '<td>&nbsp;</td>';
} else {
if ($step[1] == "COMPLETED!") {
$image = "finished.png";
} else {
$image = "progress.png";
}
echo '<td align="center"><image src="'.$config->images_path.'quests/'.$image.'"/></td>';
}
}
echo '</tr>';
}
}
echo '</table>';
show_pager($qoffset, $qlimit, $nr_quests, $config->index.'&task=heritage');
return;
}
function show_pager($qoffset, $qlimit, $nr_quests, $next_url) {
echo '<table width="100%"><tr>';
echo '<td width="50%" align="left">';
if ($qoffset) {
$new_qoffset = $qoffset - $qlimit;
if ($new_qoffset < 0) {
$new_qoffset = 0;
}
echo '<a href="'.$next_url.'&qoffset='.$new_qoffset.'">Previous</a>';
}
echo '</td>';
echo '<td width="50%" align="right">';
if ($nr_quests > $qoffset + $qlimit) {
$new_qoffset = $qoffset + $qlimit;
echo '<a href="'.$next_url.'&qoffset='.$new_qoffset.'">Next</a>';
}
echo '</td>';
echo '</tr></table>';
}
// Function: error_message($message)
// What it does: Displays an error message
// Variables:
// $message - Error Message to display
function error_message($message) {
echo '<div class="error">Guild Master Error<p/>';
echo implode('<br/>', $message).'<p/>';
echo 'If problem persists, check for latest updates on <a href="http://www.startux.de">www.startux.de</a>';
echo '</div>';
return;
}
function check_toon(& $toon, & $user, $must_own = 1) {
$user_id = $user->get('id');
if (is_null($user_id)) {
$error[] = "Please log in to manage a toon!";
error_message($error);
return true;
}
if (!$toon->Name) {
$error[] = "Toon ( ".$toon->toon_id." ) not found !";
error_message($error);
return true;
}
if ($must_own) {
if (($toon->get_user_id() != $user_id) && ($user->get('usertype') != "Super Administrator")) {
$error[] = $toon->Name." is not owned by you!";
error_message($error);
return true;
}
} else {
if (!is_null($toon->get_user_id())) {
$error[] = $toon->Name." is owned by ".$user->get('name')." !<br/> Toon must be released first.";
error_message($error);
return;
}
}
return null;
}
?>

View File

@ -0,0 +1,193 @@
<?xml version="1.0"?>
<!DOCTYPE install SYSTEM "http://dev.joomla.org/xml/1.5/component-install.dtd">
<install type="component" version="1.5.0">
<name>Guild Master</name>
<author>Stefan Reimer</author>
<creationDate>May 2008</creationDate>
<copyright>(C) 2007 Stefan Reimer IT Services</copyright>
<license>http://www.gnu.org/copyleft/gpl.html GNU/GPL</license>
<authorEmail>it@stefanreimer.de</authorEmail>
<authorUrl>www.startux.de</authorUrl>
<version>1.8</version>
<description>Joomla Component to display various infos of a Everquest 2 guild.
&lt;br&gt;&lt;br&gt;Display Guild roster and includes a Heritage Quest tracker
</description>
<params>
<param name="guild_name" type="text" default="Atrocitas" label="Name of your EQ2 guild"></param>
<param name="guild_id" type="text" default="1699210" label="ID of your EQ2 guild"></param>
<param name="guild_rank_1" type="text" default="Guild Leader" label="Highest guild rank"></param>
<param name="guild_rank_2" type="text" default="Senior Officer" label="Guild Rank"></param>
<param name="guild_rank_3" type="text" default="Officer" label="Guild Rank"></param>
<param name="guild_rank_4" type="text" default="Senior Member" label="Guild Rank"></param>
<param name="guild_rank_5" type="text" default="Member" label="Guild Rank"></param>
<param name="guild_rank_6" type="text" default="Junior Member" label="Guild Rank"></param>
<param name="guild_rank_7" type="text" default="Initiate" label="Guild Rank"></param>
<param name="guild_rank_8" type="text" default="Recruit" label="Lowest guild rank"></param>
<param name="cache_time" type="text" size="10" default="86400" label="Time in seconds after roster is updated ( default 86400s = 24h )" />
<param name="hide_time" type="text" size="10" default="365" label="Numbers of days a toon has to be off to be hidden ( 0 to disable hiding )" />
<param name="guild_info" type="radio" default="0" descr="Show guild summary on top of roster">
<option value="1">Yes</option>
<option value="0">No</option>
</param>
<param name="show_updated" type="radio" default="1" descr="Show time of last update from SOE">
<option value="1">Yes</option>
<option value="0">No</option>
</param>
<param name="popup" type="radio" default="1" descr="Open character links in a new window">
<option value="1">Yes</option>
<option value="0">No</option>
</param>
<param name="use_images" type="radio" default="1" descr="Use images for rank and classes, text otherwise">
<option value="1">Yes</option>
<option value="0">No</option>
</param>
<param name="show_lastnames" type="radio" default="1" descr="Show last names after toon name">
<option value="1">Yes</option>
<option value="0">No</option>
</param>
<param name="show_prefixtitles" type="radio" default="1" descr="Show titles in front of toon name">
<option value="1">Yes</option>
<option value="0">No</option>
</param>
<param name="roster_url" type="text" size="50" default="http://eq2players.station.sony.com/en/guild_roster_xml.vm" label="URL at for getting the old XML guild roster from SOE" />
<param name="roster_url_xml" type="text" size="50" default="http://eq2players.station.sony.com/guilds/guild_roster_xml.vm" label="URL at for getting new XML guild roster from SOE" />
<param name="guild_url" type="text" size="50" default="http://eq2players.station.sony.com/en/guilds/guild_profile.vm" label="URL at for getting guild site from SOE" />
<param name="toon_url" type="text" size="50" default="http://eq2players.station.sony.com/characters/character_profile.vm" label="URL to get toon infos from SOE" />
</params>
<files>
<filename>guildmaster.php</filename>
<filename>guildmaster.parser.php</filename>
<filename>toon.guildmaster.class.php</filename>
<filename>heritage.guildmaster.class.php</filename>
<filename>guild.guildmaster.class.php</filename>
</files>
<media folder="images" destination="com_guildmaster">
<filename>races/arasai.gif</filename>
<filename>races/barbarian.gif</filename>
<filename>races/darkelf.gif</filename>
<filename>races/dwarf.gif</filename>
<filename>races/erudite.gif</filename>
<filename>races/fae.gif</filename>
<filename>races/froglok.gif</filename>
<filename>races/gnome.gif</filename>
<filename>races/halfelf.gif</filename>
<filename>races/halfling.gif</filename>
<filename>races/highelf.gif</filename>
<filename>races/human.gif</filename>
<filename>races/iksar.gif</filename>
<filename>races/kerra.gif</filename>
<filename>races/ogre.gif</filename>
<filename>races/ratonga.gif</filename>
<filename>races/troll.gif</filename>
<filename>races/woodelf.gif</filename>
<filename>adventurer/assassin.gif</filename>
<filename>adventurer/berserker.gif</filename>
<filename>adventurer/brigand.gif</filename>
<filename>adventurer/bruiser.gif</filename>
<filename>adventurer/coercer.gif</filename>
<filename>adventurer/conjuror.gif</filename>
<filename>adventurer/defiler.gif</filename>
<filename>adventurer/dirge.gif</filename>
<filename>adventurer/fury.gif</filename>
<filename>adventurer/guardian.gif</filename>
<filename>adventurer/illusionist.gif</filename>
<filename>adventurer/inquisitor.gif</filename>
<filename>adventurer/monk.gif</filename>
<filename>adventurer/mystic.gif</filename>
<filename>adventurer/necromancer.gif</filename>
<filename>adventurer/paladin.gif</filename>
<filename>adventurer/ranger.gif</filename>
<filename>adventurer/shadowknight.gif</filename>
<filename>adventurer/swashbuckler.gif</filename>
<filename>adventurer/templar.gif</filename>
<filename>adventurer/troubador.gif</filename>
<filename>adventurer/warden.gif</filename>
<filename>adventurer/warlock.gif</filename>
<filename>adventurer/wizard.gif</filename>
<filename>tradeskill/alchemist.gif</filename>
<filename>tradeskill/armorer.gif</filename>
<filename>tradeskill/artisan.gif</filename>
<filename>tradeskill/carpenter.gif</filename>
<filename>tradeskill/craftsman.gif</filename>
<filename>tradeskill/jeweler.gif</filename>
<filename>tradeskill/outfitter.gif</filename>
<filename>tradeskill/provisioner.gif</filename>
<filename>tradeskill/sage.gif</filename>
<filename>tradeskill/scholar.gif</filename>
<filename>tradeskill/tailor.gif</filename>
<filename>tradeskill/unskilled.gif</filename>
<filename>tradeskill/weaponsmith.gif</filename>
<filename>tradeskill/woodworker.gif</filename>
<filename>ranks/rank1.png</filename>
<filename>ranks/rank2.png</filename>
<filename>ranks/rank3.png</filename>
<filename>ranks/rank4.png</filename>
<filename>ranks/rank5.png</filename>
<filename>ranks/rank6.png</filename>
<filename>ranks/rank7.png</filename>
<filename>ranks/rank8.png</filename>
<filename>quests/started.png</filename>
<filename>quests/finished.png</filename>
<filename>quests/progress.png</filename>
<filename>quests/BBC.jpg</filename>
<filename>quests/CKT.jpg</filename>
<filename>quests/DWB.jpg</filename>
<filename>quests/EEB.jpg</filename>
<filename>quests/FBE.jpg</filename>
<filename>quests/FBSS.jpg</filename>
<filename>quests/GB.jpg</filename>
<filename>quests/GBS.jpg</filename>
<filename>quests/GEB.jpg</filename>
<filename>quests/GLS.jpg</filename>
<filename>quests/GoTD.jpg</filename>
<filename>quests/HC.jpg</filename>
<filename>quests/LJB.jpg</filename>
<filename>quests/MS.jpg</filename>
<filename>quests/PGT.jpg</filename>
<filename>quests/SBD.jpg</filename>
<filename>quests/SBH.jpg</filename>
<filename>quests/SBS.jpg</filename>
<filename>quests/SM.jpg</filename>
<filename>quests/SoM.jpg</filename>
<filename>quests/SoR.jpg</filename>
<filename>quests/SSY.jpg</filename>
<filename>quests/TME.jpg</filename>
<filename>quests/TB.jpg</filename>
<filename>quests/WS.jpg</filename>
<filename>quests/BCG.jpg</filename>
<filename>quests/CMS.jpg</filename>
<filename>quests/CoF.jpg</filename>
<filename>quests/DRT.jpg</filename>
<filename>quests/RC.jpg</filename>
<filename>quests/RotO.jpg</filename>
<filename>quests/SotO.jpg</filename>
</media>
<install>
<sql>
<file driver="mysql" charset="utf8">install.sql</file>
</sql>
</install>
<uninstall>
<sql>
<file driver="mysql" charset="utf8">uninstall.sql</file>
</sql>
</uninstall>
<administration>
<menu view="config">Guild Master</menu>
<files folder="admin">
<filename>admin.guildmaster.php</filename>
<filename>controller.php</filename>
<filename>install.sql</filename>
<filename>uninstall.sql</filename>
<filename>views/config/view.html.php</filename>
<filename>views/config/tmpl/default.php</filename>
<filename>tables/config.php</filename>
<filename>models/config.php</filename>
</files>
<files>
<filename>guildmaster.xml</filename>
</files>
</administration>
</install>

View File

@ -0,0 +1,133 @@
<?php
defined('_JEXEC') or die('Restricted access');
jimport('joomla.database.table');
class GuildMasterHeritage extends JTable {
// var $id = null;
var $name_short = "";
var $name = "";
var $url = "";
var $reward = "";
var $reward_url = "";
var $level = NULL;
var $need_starter = null;
function __construct(& $db) {
parent :: __construct('#__guild_master_heri_quests', 'heri_id', $db);
}
// Class method: get_all()
// What it does: Reads the contents of the database into an array, which it returns
function get_all(& $db, $offset = 0, $limit = 0) {
$quests = array ();
if (! $limit) {
$limit=255;
}
if (! $offset) {
$offset=0;
}
$offset_sql .= " LIMIT ".$limit;
$offset_sql .= " OFFSET ".$offset;
// Fetch all of the data from the database
$query = "SELECT heri_id FROM #__guild_master_heri_quests ORDER BY `level` ASC, `heri_id` ASC".$offset_sql.";";
//echo $query;
$db->setQuery($query);
$all = $db->loadResultArray();
if (! count($all)) {
return null;
}
// Create quest objects
foreach ($all as $heri_id) {
$quest = new GuildMasterHeritage($db);
$quest->load((int) $heri_id);
$quests[] = $quest;
}
return $quests;
}
function get_nr_quests(& $db) {
$query = "SELECT heri_id FROM #__guild_master_heri_quests;";
$db->setQuery($query);
$db->query();
return $db->getAffectedRows();
}
function update_step_for_toon($toon_id, $new_step_id) {
$heri_id = $this->heri_id;
$sql = "DELETE FROM #__guild_master_heri_map WHERE step_id IN (SELECT step_id FROM #__guild_master_heri_steps WHERE heri_id=".$heri_id.") AND toon_id=".$toon_id.";";
$this->_db->setQuery($sql);
$this->_db->query();
if ($new_step_id == 0) {
return;
} else {
$sql = "INSERT INTO #__guild_master_heri_map (step_id, toon_id) VALUES (".$new_step_id.",".$toon_id.");";
// echo $sql;
$this->_db->setQuery($sql);
$this->_db->query();
}
return;
}
function get_toons_for_step(& $db, $step_id) {
$sql = "SELECT #__guild_master_toons.Name FROM #__guild_master_toons, #__guild_master_heri_map WHERE #__guild_master_heri_map.step_id=".$step_id." AND #__guild_master_heri_map.toon_id=#__guild_master_toons.toon_id;";
// echo $sql;
$db->setQuery($sql);
$db->query();
return $db->loadResultArray();
}
function step_for_toon($toon_id) {
$sql = "SELECT #__guild_master_heri_steps.step_id ,#__guild_master_heri_steps.name FROM #__guild_master_heri_steps, #__guild_master_heri_map WHERE #__guild_master_heri_map.step_id=#__guild_master_heri_steps.step_id AND #__guild_master_heri_map.toon_id=".$toon_id." AND #__guild_master_heri_steps.heri_id=".$this->heri_id.";";
// echo $sql;
$this->_db->setQuery($sql);
$this->_db->query();
return $this->_db->loadRow();
}
function get_all_steps() {
$sql = "SELECT step_id, name FROM #__guild_master_heri_steps WHERE #__guild_master_heri_steps.heri_id=".$this->heri_id." ORDER BY `step_id` ASC;";
// echo $sql;
$this->_db->setQuery($sql);
$this->_db->query();
return $this->_db->loadObjectList();
}
function exists($id = NULL) {
if (!$id) {
$k = $this->_tbl_key;
$id = $this-> $k;
if (!$id) {
return false;
}
}
$sql = "SELECT $this->_tbl_key FROM $this->_tbl WHERE $this->_tbl_key=$id";
$this->_db->setQuery($sql);
$this->_db->query();
return $this->_db->getAffectedRows();
}
function store($updateNulls = false) {
$this->Last_Updated = null;
$k = $this->_tbl_key;
global $migrate;
if ($this->exists() && !$migrate) {
$ret = $this->_db->updateObject($this->_tbl, $this, $this->_tbl_key, $updateNulls);
} else {
$ret = $this->_db->insertObject($this->_tbl, $this, $this->_tbl_key);
}
if (!$ret) {
$this->_error = strtolower(get_class($this))."::store failed <br />".$this->_db->getErrorMsg();
return false;
} else {
return true;
}
}
}
?>

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 836 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 765 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 817 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 583 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 567 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 588 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 833 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 921 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 835 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 845 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 762 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 782 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 823 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 788 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 810 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 807 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 798 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 817 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 831 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 538 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 612 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 781 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 783 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 819 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 828 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 821 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 749 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 637 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 586 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 752 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 802 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 655 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 242 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 256 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 231 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 502 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 489 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 477 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 359 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 328 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 417 B

Some files were not shown because too many files have changed in this diff Show More