Initial checkin after git reorg
BIN
builds/1.0.zip
Normal file
BIN
builds/com_guildmaster_15.zip
Normal file
BIN
builds/mod_guild_10.zip
Normal file
BIN
builds/mod_guild_15.zip
Normal file
15
src/com_guildmaster/admin/admin.guildmaster.php
Normal 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();
|
||||||
|
?>
|
41
src/com_guildmaster/admin/controller.php
Normal 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);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
?>
|
598
src/com_guildmaster/admin/install.sql
Normal 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!');
|
||||||
|
|
55
src/com_guildmaster/admin/models/GuildMaster.php
Normal 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;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
?>
|
35
src/com_guildmaster/admin/tables/GuildMaster.php
Normal 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);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
?>
|
5
src/com_guildmaster/admin/uninstall.sql
Normal 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`;
|
41
src/com_guildmaster/admin/views/guildmaster/tmpl/default.php
Normal 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>
|
23
src/com_guildmaster/admin/views/guildmaster/view.html.php
Normal 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
|
||||||
|
}
|
||||||
|
?>
|
87
src/com_guildmaster/guild.guildmaster.class.php
Normal 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;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
?>
|
456
src/com_guildmaster/guildmaster.parser.php
Normal 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('/ /', ' ', $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;
|
||||||
|
}
|
||||||
|
?>
|
653
src/com_guildmaster/guildmaster.php
Normal 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> </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 ' ';
|
||||||
|
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.' ';
|
||||||
|
echo 'Level: '.$guild->level.' ';
|
||||||
|
echo 'Status: '.$guild->points.' ';
|
||||||
|
echo 'Server: '.$guild->server_name;
|
||||||
|
echo '</td></tr>';
|
||||||
|
echo '<tr><td colspan="'.$colspan.'" align="center">';
|
||||||
|
echo ' ';
|
||||||
|
echo '</td></tr>';
|
||||||
|
}
|
||||||
|
|
||||||
|
// Row Headers
|
||||||
|
echo '<tr class="sectiontableheader">';
|
||||||
|
echo '<th> </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 '> <a href="'.$config->index.'&order='.$key.'&orderd='.$_orderd.'">'.$col[1].'</a> </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"> '.$toon->Rank.' </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"> <a href="http://eq2players.station.sony.com/en/pplayer.vm?characterId='.$toon->toon_id.'" '.$target.'>'.$toon_name.'</a> </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"> '.$toon->Adv_Level.' </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"> '.$toon->Adv_Class.' </td>';
|
||||||
|
}
|
||||||
|
|
||||||
|
// Artisan
|
||||||
|
if (!$toon->Art_Class) {
|
||||||
|
$toon->Art_Class="Unskilled";
|
||||||
|
}
|
||||||
|
echo '<td align="right"> '.$toon->Art_Level.' </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"> '.$toon->Art_Class.' </td>';
|
||||||
|
}
|
||||||
|
|
||||||
|
// Secondary Tradeskill
|
||||||
|
echo '<td align="right"> '.$toon->Art2_Level.' </td>';
|
||||||
|
echo '<td align="left"> '.substr($toon->Art2_Class,0,4).' </td>';
|
||||||
|
|
||||||
|
// Status Points
|
||||||
|
echo '<td align="right"> '.$toon->Points.' </td>';
|
||||||
|
// echo '<td align="right"> '.sprintf("%.0f", $toon->Points_time).' </td>';
|
||||||
|
|
||||||
|
// Quests
|
||||||
|
echo '<td align="right"> '.$toon->Quests.' </td>';
|
||||||
|
// echo '<td align="right"> '.sprintf("%.0f", $toon->KvD).' </td>';
|
||||||
|
|
||||||
|
// Last online
|
||||||
|
// if ($user_id) {
|
||||||
|
// echo '<td align="right"> '.date("j.M", strtotime($toon->lastonline)).' </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> </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> </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> </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> </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;
|
||||||
|
}
|
||||||
|
?>
|
193
src/com_guildmaster/guildmaster.xml
Normal 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.
|
||||||
|
<br><br>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>
|
133
src/com_guildmaster/heritage.guildmaster.class.php
Normal 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;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
?>
|
BIN
src/com_guildmaster/images/adventurer/assassin.gif
Normal file
After Width: | Height: | Size: 1.9 KiB |
BIN
src/com_guildmaster/images/adventurer/berserker.gif
Normal file
After Width: | Height: | Size: 1.8 KiB |
BIN
src/com_guildmaster/images/adventurer/brigand.gif
Normal file
After Width: | Height: | Size: 1.9 KiB |
BIN
src/com_guildmaster/images/adventurer/bruiser.gif
Normal file
After Width: | Height: | Size: 1.9 KiB |
BIN
src/com_guildmaster/images/adventurer/coercer.gif
Normal file
After Width: | Height: | Size: 1.8 KiB |
BIN
src/com_guildmaster/images/adventurer/conjuror.gif
Normal file
After Width: | Height: | Size: 1.9 KiB |
BIN
src/com_guildmaster/images/adventurer/defiler.gif
Normal file
After Width: | Height: | Size: 1.9 KiB |
BIN
src/com_guildmaster/images/adventurer/dirge.gif
Normal file
After Width: | Height: | Size: 1.9 KiB |
BIN
src/com_guildmaster/images/adventurer/fury.gif
Normal file
After Width: | Height: | Size: 1.9 KiB |
BIN
src/com_guildmaster/images/adventurer/guardian.gif
Normal file
After Width: | Height: | Size: 1.9 KiB |
BIN
src/com_guildmaster/images/adventurer/illusionist.gif
Normal file
After Width: | Height: | Size: 1.9 KiB |
BIN
src/com_guildmaster/images/adventurer/inquisitor.gif
Normal file
After Width: | Height: | Size: 1.8 KiB |
BIN
src/com_guildmaster/images/adventurer/monk.gif
Normal file
After Width: | Height: | Size: 1.9 KiB |
BIN
src/com_guildmaster/images/adventurer/mystic.gif
Normal file
After Width: | Height: | Size: 1.9 KiB |
BIN
src/com_guildmaster/images/adventurer/necromancer.gif
Normal file
After Width: | Height: | Size: 1.8 KiB |
BIN
src/com_guildmaster/images/adventurer/paladin.gif
Normal file
After Width: | Height: | Size: 1.9 KiB |
BIN
src/com_guildmaster/images/adventurer/ranger.gif
Normal file
After Width: | Height: | Size: 1.9 KiB |
BIN
src/com_guildmaster/images/adventurer/shadowknight.gif
Normal file
After Width: | Height: | Size: 1.9 KiB |
BIN
src/com_guildmaster/images/adventurer/swashbuckler.gif
Normal file
After Width: | Height: | Size: 1.8 KiB |
BIN
src/com_guildmaster/images/adventurer/templar.gif
Normal file
After Width: | Height: | Size: 1.8 KiB |
BIN
src/com_guildmaster/images/adventurer/troubador.gif
Normal file
After Width: | Height: | Size: 1.8 KiB |
BIN
src/com_guildmaster/images/adventurer/warden.gif
Normal file
After Width: | Height: | Size: 1.9 KiB |
BIN
src/com_guildmaster/images/adventurer/warlock.gif
Normal file
After Width: | Height: | Size: 1.9 KiB |
BIN
src/com_guildmaster/images/adventurer/wizard.gif
Normal file
After Width: | Height: | Size: 1.8 KiB |
BIN
src/com_guildmaster/images/quests/BBC.jpg
Normal file
After Width: | Height: | Size: 836 B |
BIN
src/com_guildmaster/images/quests/BCG.jpg
Normal file
After Width: | Height: | Size: 765 B |
BIN
src/com_guildmaster/images/quests/CKT.jpg
Normal file
After Width: | Height: | Size: 817 B |
BIN
src/com_guildmaster/images/quests/CMS.jpg
Normal file
After Width: | Height: | Size: 583 B |
BIN
src/com_guildmaster/images/quests/CoF.jpg
Normal file
After Width: | Height: | Size: 567 B |
BIN
src/com_guildmaster/images/quests/DRT.jpg
Normal file
After Width: | Height: | Size: 588 B |
BIN
src/com_guildmaster/images/quests/DWB.jpg
Normal file
After Width: | Height: | Size: 833 B |
BIN
src/com_guildmaster/images/quests/EEB.jpg
Normal file
After Width: | Height: | Size: 921 B |
BIN
src/com_guildmaster/images/quests/FBE.jpg
Normal file
After Width: | Height: | Size: 835 B |
BIN
src/com_guildmaster/images/quests/FBSS.jpg
Normal file
After Width: | Height: | Size: 845 B |
BIN
src/com_guildmaster/images/quests/GB.jpg
Normal file
After Width: | Height: | Size: 762 B |
BIN
src/com_guildmaster/images/quests/GBS.jpg
Normal file
After Width: | Height: | Size: 782 B |
BIN
src/com_guildmaster/images/quests/GEB.jpg
Normal file
After Width: | Height: | Size: 823 B |
BIN
src/com_guildmaster/images/quests/GLS.jpg
Normal file
After Width: | Height: | Size: 788 B |
BIN
src/com_guildmaster/images/quests/GoTD.jpg
Normal file
After Width: | Height: | Size: 810 B |
BIN
src/com_guildmaster/images/quests/HC.jpg
Normal file
After Width: | Height: | Size: 807 B |
BIN
src/com_guildmaster/images/quests/LJB.jpg
Normal file
After Width: | Height: | Size: 798 B |
BIN
src/com_guildmaster/images/quests/MS.jpg
Normal file
After Width: | Height: | Size: 817 B |
BIN
src/com_guildmaster/images/quests/PGT.jpg
Normal file
After Width: | Height: | Size: 831 B |
BIN
src/com_guildmaster/images/quests/RC.jpg
Normal file
After Width: | Height: | Size: 538 B |
BIN
src/com_guildmaster/images/quests/RotO.jpg
Normal file
After Width: | Height: | Size: 612 B |
BIN
src/com_guildmaster/images/quests/SBD.jpg
Normal file
After Width: | Height: | Size: 781 B |
BIN
src/com_guildmaster/images/quests/SBH.jpg
Normal file
After Width: | Height: | Size: 783 B |
BIN
src/com_guildmaster/images/quests/SBS.jpg
Normal file
After Width: | Height: | Size: 819 B |
BIN
src/com_guildmaster/images/quests/SM.jpg
Normal file
After Width: | Height: | Size: 828 B |
BIN
src/com_guildmaster/images/quests/SSY.jpg
Normal file
After Width: | Height: | Size: 821 B |
BIN
src/com_guildmaster/images/quests/SoM.jpg
Normal file
After Width: | Height: | Size: 749 B |
BIN
src/com_guildmaster/images/quests/SoR.jpg
Normal file
After Width: | Height: | Size: 637 B |
BIN
src/com_guildmaster/images/quests/SotO.jpg
Normal file
After Width: | Height: | Size: 586 B |
BIN
src/com_guildmaster/images/quests/TB.jpg
Normal file
After Width: | Height: | Size: 752 B |
BIN
src/com_guildmaster/images/quests/TME.jpg
Normal file
After Width: | Height: | Size: 802 B |
BIN
src/com_guildmaster/images/quests/WS.jpg
Normal file
After Width: | Height: | Size: 655 B |
BIN
src/com_guildmaster/images/quests/finished.png
Normal file
After Width: | Height: | Size: 242 B |
BIN
src/com_guildmaster/images/quests/progress.png
Normal file
After Width: | Height: | Size: 256 B |
BIN
src/com_guildmaster/images/quests/started.png
Normal file
After Width: | Height: | Size: 231 B |
BIN
src/com_guildmaster/images/races/arasai.gif
Normal file
After Width: | Height: | Size: 1.7 KiB |
BIN
src/com_guildmaster/images/races/barbarian.gif
Normal file
After Width: | Height: | Size: 1.6 KiB |
BIN
src/com_guildmaster/images/races/darkelf.gif
Normal file
After Width: | Height: | Size: 1.6 KiB |
BIN
src/com_guildmaster/images/races/dwarf.gif
Normal file
After Width: | Height: | Size: 1.7 KiB |
BIN
src/com_guildmaster/images/races/erudite.gif
Normal file
After Width: | Height: | Size: 1.5 KiB |
BIN
src/com_guildmaster/images/races/fae.gif
Normal file
After Width: | Height: | Size: 1.7 KiB |
BIN
src/com_guildmaster/images/races/froglok.gif
Normal file
After Width: | Height: | Size: 1.7 KiB |
BIN
src/com_guildmaster/images/races/gnome.gif
Normal file
After Width: | Height: | Size: 1.6 KiB |
BIN
src/com_guildmaster/images/races/halfelf.gif
Normal file
After Width: | Height: | Size: 1.5 KiB |
BIN
src/com_guildmaster/images/races/halfling.gif
Normal file
After Width: | Height: | Size: 1.5 KiB |
BIN
src/com_guildmaster/images/races/highelf.gif
Normal file
After Width: | Height: | Size: 1.6 KiB |
BIN
src/com_guildmaster/images/races/human.gif
Normal file
After Width: | Height: | Size: 1.7 KiB |
BIN
src/com_guildmaster/images/races/iksar.gif
Normal file
After Width: | Height: | Size: 1.7 KiB |
BIN
src/com_guildmaster/images/races/kerra.gif
Normal file
After Width: | Height: | Size: 1.7 KiB |
BIN
src/com_guildmaster/images/races/ogre.gif
Normal file
After Width: | Height: | Size: 1.7 KiB |
BIN
src/com_guildmaster/images/races/ratonga.gif
Normal file
After Width: | Height: | Size: 1.6 KiB |
BIN
src/com_guildmaster/images/races/troll.gif
Normal file
After Width: | Height: | Size: 1.8 KiB |
BIN
src/com_guildmaster/images/races/woodelf.gif
Normal file
After Width: | Height: | Size: 1.6 KiB |
BIN
src/com_guildmaster/images/ranks/rank1.png
Normal file
After Width: | Height: | Size: 502 B |
BIN
src/com_guildmaster/images/ranks/rank2.png
Normal file
After Width: | Height: | Size: 489 B |
BIN
src/com_guildmaster/images/ranks/rank3.png
Normal file
After Width: | Height: | Size: 477 B |
BIN
src/com_guildmaster/images/ranks/rank4.png
Normal file
After Width: | Height: | Size: 359 B |
BIN
src/com_guildmaster/images/ranks/rank5.png
Normal file
After Width: | Height: | Size: 328 B |
BIN
src/com_guildmaster/images/ranks/rank6.png
Normal file
After Width: | Height: | Size: 417 B |