Merge git://github.com/EQEmu/Server into Development

This commit is contained in:
KayenEQ committed 2014-11-20 05:05:29 -05:00
commit 96a0cc37e0
12 files changed
+253 -63

No files matched your search

+3
View File
@@ -1,5 +1,8 @@
EQEMu Changelog (Started on Sept 24, 2003 15:50)
-------------------------------------------------------
== 11/19/2014 ==
Trevius: Mercenaries now Dismiss, Suspend, Unsuspend, and Die correctly.
== 11/18/2014 ==
Trevius: Mercenaries can now zone once again.
+2 -2
View File
@@ -514,8 +514,8 @@ OP_LFGAppearance=0x0000
OP_LFGResponse=0x0000
# Raid Opcodes
OP_RaidInvite=0x1bd1
OP_RaidUpdate=0x548e
OP_RaidInvite=0x5fb2
OP_RaidUpdate=0x1bd1
OP_RaidJoin=0x0000
# Button-push commands
+26 -10
View File
@@ -43,7 +43,8 @@ if($OS eq "Windows"){
@mysql = split(';', $has_mysql_path);
foreach my $v (@mysql){
if($v=~/MySQL|MariaDB/i){
$path = $v . "/mysql";
$v =~s/\n//g;
$path = trim($v) . "/mysql";
last;
}
}
@@ -106,8 +107,6 @@ if($bin_db_ver == $local_db_ver && $ARGV[0] eq "ran_from_world"){
exit;
}
if(!$bin_db_ver){ $bin_db_ver = 9100; }
print "Retrieving latest database manifest...\n";
GetRemoteFile("https://raw.githubusercontent.com/EQEmu/Server/master/utils/sql/db_update_manifest.txt", "db_update/db_update_manifest.txt");
# GetRemoteFile("https://dl.dropboxusercontent.com/u/50023467/dl/db_update_manifest.txt", "db_update/db_update_manifest.txt");
@@ -129,6 +128,7 @@ sub ShowMenuPrompt {
1 => \&database_dump,
2 => \&database_dump_compress,
3 => \&Run_Database_Check,
4 => \&AA_Fetch,
0 => \&Exit,
);
@@ -163,10 +163,10 @@ sub ShowMenuPrompt {
sub MenuOptions {
if(@total_updates){
$option[3] = "Run pending updates... (" . scalar (@total_updates) . ")";
$option[3] = "Run pending REQUIRED updates... (" . scalar (@total_updates) . ")";
}
else{
$option[3] = "Check for pending Database updates
$option[3] = "Check for pending REQUIRED Database updates
Stages updates for automatic upgrade...";
}
@@ -177,6 +177,7 @@ Database Management Menu (Please Select):
2) Backup Database Compressed - (Saves to Backups folder)
Ideal to perform before performing updates
3) $option[3]
4) AAs - Get Latest AA's from PEQ (This deletes AA's already in the database)
0) Exit
EO_MENU
@@ -269,6 +270,15 @@ sub trim {
return $string;
}
#::: Fetch Latest PEQ AA's
sub AA_Fetch{
print "Pulling down PEQ AA Tables...\n";
GetRemoteFile("https://raw.githubusercontent.com/EQEmu/Server/master/utils/sql/peq_aa_tables.sql", "db_update/peq_aa_tables.sql");
print "\n\nInstalling AA Tables...\n";
print GetMySQLResultFromFile("db_update/peq_aa_tables.sql");
print "\nDone...\n\n";
}
#::: Responsible for Database Upgrade Routines
sub Run_Database_Check{
#::: Run 2 - Running pending updates...
@@ -313,14 +323,14 @@ sub Run_Database_Check{
push(@total_updates, $i);
}
else{
print "DB up to date with: " . $i . " '" . $file_name . "' \n";
print "DB up to date with: " . $i . " - '" . $file_name . "' \n";
}
print_match_debug();
print_break();
}
if($match_type eq "missing"){
if(GetMySQLResult($query_check)=~/$match_text/i){
print "DB up to date with: " . $i . " '" . $file_name . "' \n";
print "DB up to date with: " . $i . " - '" . $file_name . "' \n";
next;
}
else{
@@ -338,7 +348,7 @@ sub Run_Database_Check{
push(@total_updates, $i);
}
else{
print "DB up to date with: " . $i . " '" . $file_name . "' \n";
print "DB up to date with: " . $i . " - '" . $file_name . "' \n";
}
print_match_debug();
print_break();
@@ -350,13 +360,19 @@ sub Run_Database_Check{
push(@total_updates, $i);
}
else{
print "DB up to date with: " . $i . " '" . $file_name . "' \n";
print "DB up to date with: " . $i . " - '" . $file_name . "' \n";
}
print_match_debug();
print_break();
}
}
print "\n\n";
print "\n";
if(scalar (@total_updates) == 0){
print "No updates need to be run...\n";
print "Setting Database to Binary Version (" . $bin_db_ver . ") if not already...\n\n";
GetMySQLResult("UPDATE db_version SET version = $bin_db_ver");
}
}
sub FetchMissingUpdate{
+10 -10
View File
@@ -261,7 +261,7 @@
9001|2013_02_25_Impr_HT_LT.sql|SHOW TABLES LIKE 'merc_inventory'|empty|
9002|2013_03_1_Merc_Rules_and_Equipment.sql|SHOW TABLES LIKE 'merc_inventory'|empty|
# 9003|2013_03_23_Escape_FadingMemories.sql
9004|2013_04_04_NaturesBounty.sql|SELECT * FROM `aa_effects` WHERE `aaid` = '1230' AND `slot` = '1' AND `effectid` = '313' AND `base1` = '15' AND `base2` = '0'|empty|
# 9004|2013_04_04_NaturesBounty.sql|SELECT * FROM `aa_effects` WHERE `aaid` = '1230' AND `slot` = '1' AND `effectid` = '313' AND `base1` = '15' AND `base2` = '0'|empty|
9005|2013_04_08_Salvage.sql|SHOW COLUMNS FROM `tradeskill_recipe_entries` LIKE 'salvagecount'|empty|
9006|2013_05_05_Account_Flags.sql|SHOW TABLES LIKE 'account_flags'|empty|
9007|2013_05_05_Item_Tick.sql|SHOW TABLES LIKE 'item_tick'|empty|
@@ -270,31 +270,31 @@
# 9010|2013_10_12_Merc_vwMercNpcTypes.sql
9011|2013_10_31_Recipe_disabling.sql|SHOW COLUMNS FROM `tradeskill_recipe` LIKE 'enabled'|empty|
9012|2013_11_07_BaseData.sql|SHOW TABLES LIKE 'base_data'|empty|
9013|2013_11_13_Instrument_Singing_Mastery.sql|SELECT * FROM `aa_effects` WHERE `aaid` = '213' AND `slot` = '1' AND `effectid` = '260' AND `base1` = '2' AND `base2` = '23'|empty|
# 9013|2013_11_13_Instrument_Singing_Mastery.sql|SELECT * FROM `aa_effects` WHERE `aaid` = '213' AND `slot` = '1' AND `effectid` = '260' AND `base1` = '2' AND `base2` = '23'|empty|
9014|2013_11_18_AssistRadius.sql|SHOW COLUMNS FROM `npc_types` LIKE 'assistradius'|empty|
9015|2013_12_26_MerchantList_Class_Required.sql|SHOW COLUMNS FROM `merchantlist` LIKE 'classes_required'|empty|
9016|2014_01_04_SongModCapAAs.sql|SELECT * FROM `aa_effects` WHERE `aaid` = '571' AND `slot` = '1' AND `effectid` = '261'|empty|
# 9016|2014_01_04_SongModCapAAs.sql|SELECT * FROM `aa_effects` WHERE `aaid` = '571' AND `slot` = '1' AND `effectid` = '261'|empty|
9017|2014_01_08_SpellsNewAdditions.sql|SHOW COLUMNS FROM `spells_new` LIKE 'persistdeath'|empty|
9018|2014_01_09_PreservePetSize.sql|SHOW COLUMNS FROM `character_pet_info` LIKE 'size'|empty|
9019|2014_01_20_MezMastery.sql|SELECT * FROM `aa_effects` WHERE `aaid` = '781' AND `slot` = '1' AND `effectid` = '287'|empty|
# 9019|2014_01_20_MezMastery.sql|SELECT * FROM `aa_effects` WHERE `aaid` = '781' AND `slot` = '1' AND `effectid` = '287'|empty|
9020|2014_01_20_Not_Extendable.sql|SHOW COLUMNS FROM `spells_new` LIKE 'not_extendable'|empty|
9021|2014_01_20_SpellCastingReinforcement.sql|SELECT * FROM `aa_effects` WHERE `aaid` = '86' AND `slot` = '1' AND `effectid` = '128'|empty|
# 9021|2014_01_20_SpellCastingReinforcement.sql|SELECT * FROM `aa_effects` WHERE `aaid` = '86' AND `slot` = '1' AND `effectid` = '128'|empty|
9022|2014_01_20_Weather.sql|SHOW COLUMNS FROM `zone` LIKE 'rain_chance1'|empty|
9023|2014_01_27_CritcalMendAA.sql|SELECT * FROM `aa_effects` WHERE `aaid` = '230' AND `slot` = '1' AND `effectid` = '275'|empty
9024|2014_02_02_SpellCriticalsAA.sql|SELECT * FROM `aa_effects` WHERE `aaid` = '4755' AND `slot` = '1' AND `effectid` = '294'|empty
# 9023|2014_01_27_CritcalMendAA.sql|SELECT * FROM `aa_effects` WHERE `aaid` = '230' AND `slot` = '1' AND `effectid` = '275'|empty
# 9024|2014_02_02_SpellCriticalsAA.sql|SELECT * FROM `aa_effects` WHERE `aaid` = '4755' AND `slot` = '1' AND `effectid` = '294'|empty
9025|2014_02_13_Rename_instance_lockout_tables.sql|SHOW TABLES LIKE 'instance_list'|empty|
9026|2014_02_13_spells_new_update.sql|SHOW COLUMNS FROM `spells_new` LIKE 'ConeStartAngle'|empty|
9027|2014_02_20_buff_update.sql|SHOW COLUMNS FROM `character_buffs` LIKE 'caston_y'|empty|
9028|2014_02_26_roambox_update.sql|SHOW COLUMNS FROM `spawngroup` LIKE 'mindelay'|empty|
9029|2014_02_26_virulentvenomAA.sql|SELECT * FROM `aa_effects` WHERE `aaid` = '888' AND `slot` = '1' AND `effectid` = '250'|empty|
# 9029|2014_02_26_virulentvenomAA.sql|SELECT * FROM `aa_effects` WHERE `aaid` = '888' AND `slot` = '1' AND `effectid` = '250'|empty|
9030|2014_04_04_PhysicalResist.sql|SHOW COLUMNS FROM `npc_types` LIKE 'PhR'|empty|
9031|2014_04_10_No_Target_With_Hotkey.sql|SHOW COLUMNS FROM `npc_types` LIKE 'no_target_hotkey'|empty|
9032|2014_04_12_SlowMitigation.sql|SHOW COLUMNS FROM `npc_types` LIKE 'slow_mitigation'|contains|float
9034|2014_04_25_spawn_events.sql|SHOW COLUMNS FROM `spawn_events` LIKE 'strict'|empty|
9035|2014_04_27_AISpellEffects.sql|SHOW COLUMNS FROM `npc_types` LIKE 'npc_spells_effects_id'|empty|
9036|2014_05_04_SlowMitigationFix.sql|SHOW COLUMNS FROM `npc_types` LIKE 'slow_mitigation'|contains|float
9038|2014_06_25_AA_Updates.sql|SELECT * FROM `altadv_vars` WHERE `skill_id` = '1604'|empty
9039|2014_07_04_AA_Updates.sql|SELECT * FROM `aa_effects` WHERE `aaid` = '158' AND `slot` = '1' AND `effectid` = '238'|empty
# 9038|2014_06_25_AA_Updates.sql|SELECT * FROM `altadv_vars` WHERE `skill_id` = '1604'|empty
# 9039|2014_07_04_AA_Updates.sql|SELECT * FROM `aa_effects` WHERE `aaid` = '158' AND `slot` = '1' AND `effectid` = '238'|empty
9040|2014_07_10_npc_spells.sql|SHOW COLUMNS FROM `npc_spells` LIKE 'engaged_no_sp_recast_min'|empty|
9041|2014_08_02_spells_new.sql|SHOW COLUMNS FROM `spells_new` LIKE 'viral_range'|empty|
9042|2014_08_12_NPC_raid_targets.sql|SHOW COLUMNS FROM `npc_types` LIKE 'raid_target'|empty|
+75
View File
@@ -0,0 +1,75 @@
DROP TABLE IF EXISTS `aa_effects`;
CREATE TABLE `aa_effects` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`aaid` mediumint(8) unsigned NOT NULL DEFAULT '0',
`slot` tinyint(3) unsigned NOT NULL DEFAULT '0',
`effectid` mediumint(8) unsigned NOT NULL DEFAULT '0',
`base1` mediumint(8) NOT NULL DEFAULT '0',
`base2` mediumint(8) NOT NULL DEFAULT '0',
PRIMARY KEY (`id`),
UNIQUE KEY `NewIndex` (`aaid`,`slot`)
) ENGINE=MyISAM AUTO_INCREMENT=2527 DEFAULT CHARSET=latin1;
INSERT INTO `aa_effects` VALUES (1,2,1,4,2,0),(2,3,1,4,4,0),(3,4,1,4,6,0),(4,5,1,4,8,0),(5,6,1,4,10,0),(6,7,1,7,2,0),(7,8,1,7,4,0),(8,9,1,7,6,0),(9,10,1,7,8,0),(10,11,1,7,10,0),(11,12,1,6,2,0),(12,13,1,6,4,0),(13,14,1,6,6,0),(14,15,1,6,8,0),(15,16,1,6,10,0),(16,17,1,5,2,0),(17,18,1,5,4,0),(18,19,1,5,6,0),(19,20,1,5,8,0),(20,21,1,5,10,0),(21,22,1,8,2,0),(22,23,1,8,4,0),(23,24,1,8,6,0),(24,25,1,8,8,0),(25,26,1,8,10,0),(26,27,1,9,2,0),(27,28,1,9,4,0),(28,29,1,9,6,0),(29,30,1,9,8,0),(30,31,1,9,10,0),(31,32,1,10,2,0),(32,33,1,10,4,0),(33,34,1,10,6,0),(34,35,1,10,8,0),(35,36,1,10,10,0),(36,37,1,46,2,0),(37,38,1,46,4,0),(38,39,1,46,6,0),(39,40,1,46,8,0),(40,41,1,46,10,0),(41,42,1,47,2,0),(42,43,1,47,4,0),(43,44,1,47,6,0),(44,45,1,47,8,0),(45,46,1,47,10,0),(46,47,1,50,2,0),(47,48,1,50,4,0),(48,49,1,50,6,0),(49,50,1,50,8,0),(50,51,1,50,10,0),(51,52,1,48,2,0),(52,53,1,48,4,0),(53,54,1,48,6,0),(54,55,1,48,8,0),(55,56,1,48,10,0),(56,57,1,49,2,0),(57,58,1,49,4,0),(58,59,1,49,6,0),(59,60,1,49,8,0),(60,61,1,49,10,0),(61,62,1,271,8,0),(62,63,1,271,14,0),(63,64,1,271,21,0),(64,65,1,0,1,0),(65,66,1,0,2,0),(66,67,1,0,3,0),(67,71,1,246,110,0),(68,72,1,246,125,0),(69,73,1,246,150,0),(70,89,1,15,1,0),(71,90,1,15,2,0),(72,91,1,15,3,0),(1953,104,1,127,10,10),(1954,104,2,138,1,0),(1955,104,3,140,1,0),(1956,104,4,143,3000,0),(1957,105,1,127,25,25),(1958,105,2,138,1,0),(1959,105,3,140,1,0),(1960,105,4,143,3000,0),(1961,106,1,127,50,50),(1962,106,2,138,1,0),(1963,106,3,140,1,0),(1964,106,4,143,3000,0),(910,107,1,214,200,0),(911,108,1,214,500,0),(912,109,1,214,1000,0),(88,110,1,0,1,0),(89,111,1,0,2,0),(90,112,1,0,3,0),(1908,137,1,127,10,10),(1909,137,2,137,88,0),(1910,138,1,127,25,25),(1911,138,2,137,88,0),(1912,139,1,127,50,50),(1913,139,2,137,88,0),(1893,141,1,127,2,2),(1894,141,2,137,0,0),(1895,141,3,138,0,0),(1896,141,4,141,1,0),(1897,141,5,143,3000,0),(1898,142,1,127,5,5),(1899,142,2,137,0,0),(1900,142,3,138,0,0),(1901,142,4,141,1,0),(1902,142,5,143,3000,0),(1903,143,1,127,10,10),(1904,143,2,137,0,0),(1905,143,3,138,0,0),(1906,143,4,141,1,0),(1907,143,5,143,3000,0),(1941,147,1,127,10,10),(1942,147,2,138,1,0),(1943,147,3,140,1,0),(1944,147,4,143,3000,0),(1945,148,1,127,25,25),(1946,148,2,138,1,0),(1947,148,3,140,1,0),(1948,148,4,143,3000,0),(1949,149,1,127,50,50),(1950,149,2,138,1,0),(1951,149,3,140,1,0),(1952,149,4,143,3000,0),(1914,164,1,127,10,10),(1915,164,2,137,32,0),(1916,164,3,127,10,10),(1917,164,4,137,33,0),(1923,165,1,127,25,25),(1924,165,2,137,32,0),(1925,165,3,127,25,25),(1926,165,4,137,33,0),(1932,166,1,127,50,50),(1933,166,2,137,32,0),(1934,166,3,127,50,50),(1935,166,4,137,33,0),(137,196,1,226,1,0),(138,237,1,227,1,25),(139,238,1,227,3,25),(140,239,1,227,5,25),(1077,270,1,270,10,0),(1078,271,1,270,15,0),(1079,272,1,270,25,0),(144,278,1,0,1,0),(145,278,2,15,1,0),(907,279,1,214,200,0),(147,280,1,227,1,62),(148,280,2,227,1,17),(149,281,1,227,3,62),(150,281,2,227,3,17),(151,282,1,227,5,62),(152,282,2,227,5,17),(153,292,1,4,2,0),(154,293,1,4,4,0),(155,294,1,4,6,0),(156,295,1,4,8,0),(157,296,1,4,10,0),(158,297,1,4,12,0),(159,298,1,4,14,0),(160,299,1,4,16,0),(161,300,1,4,18,0),(162,301,1,4,20,0),(163,302,1,7,2,0),(164,303,1,7,4,0),(165,304,1,7,6,0),(166,305,1,7,8,0),(167,306,1,7,10,0),(168,307,1,7,12,0),(169,308,1,7,14,0),(170,309,1,7,16,0),(171,310,1,7,18,0),(172,311,1,7,20,0),(173,312,1,6,2,0),(174,313,1,6,4,0),(175,314,1,6,6,0),(176,315,1,6,8,0),(177,316,1,6,10,0),(178,317,1,6,12,0),(179,318,1,6,14,0),(180,319,1,6,16,0),(181,320,1,6,18,0),(182,321,1,6,20,0),(183,322,1,5,2,0),(184,323,1,5,4,0),(185,324,1,5,6,0),(186,325,1,5,8,0),(187,326,1,5,10,0),(188,327,1,5,12,0),(189,328,1,5,14,0),(190,329,1,5,16,0),(191,330,1,5,18,0),(192,331,1,5,20,0),(193,332,1,8,2,0),(194,333,1,8,4,0),(195,334,1,8,6,0),(196,335,1,8,8,0),(197,336,1,8,10,0),(198,337,1,8,12,0),(199,338,1,8,14,0),(200,339,1,8,16,0),(201,340,1,8,18,0),(202,341,1,8,20,0),(203,342,1,9,2,0),(204,343,1,9,4,0),(205,344,1,9,6,0),(206,345,1,9,8,0),(207,346,1,9,10,0),(208,347,1,9,12,0),(209,348,1,9,14,0),(210,349,1,9,16,0),(211,350,1,9,18,0),(212,351,1,9,20,0),(213,352,1,10,2,0),(214,353,1,10,4,0),(215,354,1,10,6,0),(216,355,1,10,8,0),(217,356,1,10,10,0),(218,357,1,10,12,0),(219,358,1,10,14,0),(220,359,1,10,16,0),(221,360,1,10,18,0),(222,361,1,10,20,0),(223,362,1,46,2,0),(224,363,1,46,4,0),(225,364,1,46,6,0),(226,365,1,46,8,0),(227,366,1,46,10,0),(229,368,1,46,14,0),(230,369,1,46,16,0),(231,370,1,46,18,0),(232,371,1,46,20,0),(233,372,1,47,2,0),(234,373,1,47,4,0),(235,374,1,47,6,0),(236,375,1,47,8,0),(237,376,1,47,10,0),(238,377,1,47,12,0),(239,378,1,47,14,0),(240,379,1,47,16,0),(241,380,1,47,18,0),(242,381,1,47,20,0),(243,382,1,50,2,0),(244,383,1,50,4,0),(245,384,1,50,6,0),(246,385,1,50,8,0),(247,386,1,50,10,0),(248,387,1,50,12,0),(249,388,1,50,14,0),(250,389,1,50,16,0),(251,390,1,50,18,0),(252,391,1,50,20,0),(253,392,1,48,2,0),(254,393,1,48,4,0),(255,394,1,48,6,0),(256,395,1,48,8,0),(257,396,1,48,10,0),(258,397,1,48,12,0),(259,398,1,48,14,0),(260,399,1,48,16,0),(261,400,1,48,Line truncated
DROP TABLE IF EXISTS `aa_required_level_cost`;
CREATE TABLE `aa_required_level_cost` (
`skill_id` int(10) unsigned NOT NULL,
`level` int(10) unsigned NOT NULL,
`cost` int(10) unsigned NOT NULL DEFAULT '0',
`description` varchar(64) DEFAULT NULL COMMENT 'For reference only',
PRIMARY KEY (`skill_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
INSERT INTO `aa_required_level_cost` VALUES (7800,1,0,'Harm Touch'),(7801,6,0,'Harm Touch'),(7802,11,0,'Harm Touch'),(7803,16,0,'Harm Touch'),(7804,21,0,'Harm Touch'),(7805,26,0,'Harm Touch'),(7806,31,0,'Harm Touch'),(7807,36,0,'Harm Touch'),(7808,41,0,'Harm Touch'),(7809,46,0,'Harm Touch'),(7810,51,3,'Harm Touch'),(7811,56,4,'Harm Touch'),(7812,61,5,'Harm Touch'),(7813,66,6,'Harm Touch'),(7814,71,7,'Harm Touch'),(7815,76,8,'Harm Touch'),(7816,81,8,'Harm Touch'),(7817,83,9,'Harm Touch'),(7850,5,0,'Lay on Hands'),(7851,11,0,'Lay on Hands'),(7852,16,0,'Lay on Hands'),(7853,21,0,'Lay on Hands'),(7854,26,0,'Lay on Hands'),(7855,31,0,'Lay on Hands'),(7856,36,0,'Lay on Hands'),(7857,41,0,'Lay on Hands'),(7858,46,0,'Lay on Hands'),(7859,51,0,'Lay on Hands'),(7860,56,3,'Lay on Hands'),(7861,61,4,'Lay on Hands'),(7862,66,5,'Lay on Hands'),(7863,71,6,'Lay on Hands'),(7864,76,7,'Lay on Hands'),(7865,81,8,'Lay on Hands'),(7866,85,9,'Lay on Hands'),(593,61,2,'Fervent Blessing'),(594,63,4,'Fervent Blessing'),(595,65,6,'Fervent Blessing'),(292,61,1,'Advanced Innate Strength'),(293,61,1,'Advanced Innate Strength'),(294,62,1,'Advanced Innate Strength'),(295,62,1,'Advanced Innate Strength'),(296,63,1,'Advanced Innate Strength'),(297,63,1,'Advanced Innate Strength'),(298,64,1,'Advanced Innate Strength'),(299,64,1,'Advanced Innate Strength'),(300,65,1,'Advanced Innate Strength'),(301,65,1,'Advanced Innate Strength'),(302,61,1,'Advanced Innate Stamina'),(303,61,1,'Advanced Innate Stamina'),(304,62,1,'Advanced Innate Stamina'),(305,62,1,'Advanced Innate Stamina'),(306,63,1,'Advanced Innate Stamina'),(307,63,1,'Advanced Innate Stamina'),(308,64,1,'Advanced Innate Stamina'),(309,64,1,'Advanced Innate Stamina'),(310,65,1,'Advanced Innate Stamina'),(311,65,1,'Advanced Innate Stamina'),(312,61,1,'Advanced Innate Agility'),(313,61,1,'Advanced Innate Agility'),(314,62,1,'Advanced Innate Agility'),(315,62,1,'Advanced Innate Agility'),(316,63,1,'Advanced Innate Agility'),(317,63,1,'Advanced Innate Agility'),(318,64,1,'Advanced Innate Agility'),(319,64,1,'Advanced Innate Agility'),(320,65,1,'Advanced Innate Agility'),(321,65,1,'Advanced Innate Agility'),(322,61,1,'Advanced Innate Dexterity'),(323,61,1,'Advanced Innate Dexterity'),(324,62,1,'Advanced Innate Dexterity'),(325,62,1,'Advanced Innate Dexterity'),(326,63,1,'Advanced Innate Dexterity'),(327,63,1,'Advanced Innate Dexterity'),(328,64,1,'Advanced Innate Dexterity'),(329,64,1,'Advanced Innate Dexterity'),(330,65,1,'Advanced Innate Dexterity'),(331,65,1,'Advanced Innate Dexterity'),(332,61,1,'Advanced Innate Intelligence'),(333,61,1,'Advanced Innate Intelligence'),(334,62,1,'Advanced Innate Intelligence'),(335,62,1,'Advanced Innate Intelligence'),(336,63,1,'Advanced Innate Intelligence'),(337,63,1,'Advanced Innate Intelligence'),(338,64,1,'Advanced Innate Intelligence'),(339,64,1,'Advanced Innate Intelligence'),(340,65,1,'Advanced Innate Intelligence'),(341,65,1,'Advanced Innate Intelligence'),(342,61,1,'Advanced Innate Wisdom'),(343,61,1,'Advanced Innate Wisdom'),(344,62,1,'Advanced Innate Wisdom'),(345,62,1,'Advanced Innate Wisdom'),(346,63,1,'Advanced Innate Wisdom'),(347,63,1,'Advanced Innate Wisdom'),(348,64,1,'Advanced Innate Wisdom'),(349,64,1,'Advanced Innate Wisdom'),(350,65,1,'Advanced Innate Wisdom'),(351,65,1,'Advanced Innate Wisdom'),(352,61,1,'Advanced Innate Charisma'),(353,61,1,'Advanced Innate Charisma'),(354,62,1,'Advanced Innate Charisma'),(355,62,1,'Advanced Innate Charisma'),(356,63,1,'Advanced Innate Charisma'),(357,63,1,'Advanced Innate Charisma'),(358,64,1,'Advanced Innate Charisma'),(359,64,1,'Advanced Innate Charisma'),(360,65,1,'Advanced Innate Charisma'),(361,65,1,'Advanced Innate Charisma'),(362,61,1,'Warding of Solusek'),(363,61,1,'Warding of Solusek'),(364,62,1,'Warding of Solusek'),(365,62,1,'Warding of Solusek'),(366,63,1,'Warding of Solusek'),(367,63,1,'Warding of Solusek'),(368,64,1,'Warding of Solusek'),(369,64,1,'Warding of Solusek'),(370,65,1,'Warding of Solusek'),(371,65,1,'Warding of Solusek'),(372,61,1,'Blessing of E\'ci'),(373,61,1,'Blessing of E\'ci'),(374,62,1,'Blessing of E\'ci'),(375,62,1,'Blessing of E\'ci'),(376,63,1,'Blessing of E\'ci'),(377,63,1,'Blessing of E\'ci'),(378,64,1,'Blessing of E\'ci'),(379,64,1,'Blessing of E\'ci'),(380,65,1,'Blessing of E\'ci'),(381,65,1,'Blessing of E\'ci'),(382,61,1,'Marr\'s Protection'),(383,61,1,'Marr\'s Protection'),(384,62,1,'Marr\'s Protection'),(385,62,1,'Marr\'s Protection'),(386,63,1,'Marr\'s Protection'),(387,63,1,'Marr\'s Protection'),(388,64,1,'Marr\'s Protection'),(389,64,1,'Marr\'s Protection'),(390,65,1,'Marr\'s Protection'),(391,65,1,'Marr\'s Protection'),(392,61,1,'Shroud of the Faceless'),(393,61,1,'Shroud of the Faceless'),(394,62,1,'Shroud of the Faceless'),(395,62,1,'Shroud of the Faceless'),(396,63,1,'Shroud of the Faceless'),(397,63,1,'Shroud of the Faceless'),(398,64,1,'Shroud of the Faceless'),(399,64,1,'Shroud of the Faceless'),(400,65,1,'Shroud of the Faceless'),(401,65,1,'ShroLine truncated
DROP TABLE IF EXISTS `altadv_vars`;
CREATE TABLE `altadv_vars` (
`skill_id` int(11) NOT NULL DEFAULT '0',
`name` varchar(128) DEFAULT NULL,
`cost` int(11) DEFAULT NULL,
`max_level` int(11) DEFAULT NULL,
`hotkey_sid` int(10) unsigned NOT NULL DEFAULT '0',
`hotkey_sid2` int(10) unsigned NOT NULL DEFAULT '0',
`title_sid` int(10) unsigned NOT NULL DEFAULT '0',
`desc_sid` int(10) unsigned NOT NULL DEFAULT '0',
`type` tinyint(3) unsigned NOT NULL DEFAULT '1',
`spellid` int(10) unsigned NOT NULL DEFAULT '0',
`prereq_skill` int(10) unsigned NOT NULL DEFAULT '0',
`prereq_minpoints` int(10) unsigned NOT NULL DEFAULT '0',
`spell_type` int(10) unsigned NOT NULL DEFAULT '0',
`spell_refresh` int(10) unsigned NOT NULL DEFAULT '0',
`classes` int(10) unsigned NOT NULL DEFAULT '65534',
`berserker` int(10) unsigned NOT NULL DEFAULT '0',
`class_type` int(10) unsigned NOT NULL DEFAULT '0',
`cost_inc` tinyint(4) NOT NULL DEFAULT '0',
`aa_expansion` smallint(3) unsigned NOT NULL DEFAULT '3',
`special_category` int(10) unsigned NOT NULL DEFAULT '4294967295',
`sof_type` tinyint(3) unsigned NOT NULL DEFAULT '1',
`sof_cost_inc` tinyint(3) NOT NULL DEFAULT '0',
`sof_max_level` tinyint(3) unsigned NOT NULL DEFAULT '1',
`sof_next_skill` int(10) unsigned NOT NULL DEFAULT '0',
`clientver` tinyint(3) unsigned NOT NULL DEFAULT '1',
`account_time_required` int(10) unsigned NOT NULL DEFAULT '0',
`sof_current_level` tinyint(3) unsigned NOT NULL DEFAULT '0',
`sof_next_id` int(10) unsigned NOT NULL DEFAULT '0',
`level_inc` tinyint(3) unsigned NOT NULL DEFAULT '0',
PRIMARY KEY (`skill_id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
INSERT INTO `altadv_vars` VALUES (2,'Innate Strength',1,5,4294967295,4294967295,13500,13501,1,4294967295,0,0,0,0,65534,1,51,0,3,4294967295,1,0,15,2,1,0,0,292,0),(7,'Innate Stamina',1,5,4294967295,4294967295,13502,13503,1,4294967295,0,0,0,0,65534,1,51,0,3,4294967295,1,0,15,7,1,0,0,302,0),(12,'Innate Agility',1,5,4294967295,4294967295,13504,13505,1,4294967295,0,0,0,0,65534,1,51,0,3,4294967295,1,0,15,12,1,0,0,312,0),(17,'Innate Dexterity',1,5,4294967295,4294967295,13506,13507,1,4294967295,0,0,0,0,65534,1,51,0,3,4294967295,1,0,15,17,1,0,0,322,0),(22,'Innate Intelligence',1,5,4294967295,4294967295,13508,13509,1,4294967295,0,0,0,0,65534,1,51,0,3,4294967295,1,0,15,22,1,0,0,332,0),(27,'Innate Wisdom',1,5,4294967295,4294967295,13510,13511,1,4294967295,0,0,0,0,65534,1,51,0,3,4294967295,1,0,15,27,1,0,0,342,0),(32,'Innate Charisma',1,5,4294967295,4294967295,13512,13513,1,4294967295,0,0,0,0,65534,1,51,0,3,4294967295,1,0,15,32,1,0,0,352,0),(37,'Innate Fire Protection',1,5,4294967295,4294967295,13514,13515,1,4294967295,0,0,0,0,65534,1,51,0,3,4294967295,1,0,15,37,1,0,0,362,0),(42,'Innate Cold Protection',1,5,4294967295,4294967295,13516,13517,1,4294967295,0,0,0,0,65534,1,51,0,3,4294967295,1,0,15,42,1,0,0,372,0),(47,'Innate Magic Protection',1,5,4294967295,4294967295,13518,13519,1,4294967295,0,0,0,0,65534,1,51,0,3,4294967295,1,0,15,47,1,0,0,382,0),(52,'Innate Poison Protection',1,5,4294967295,4294967295,13520,13521,1,4294967295,0,0,0,0,65534,1,51,0,3,4294967295,1,0,15,52,1,0,0,392,0),(57,'Innate Disease Protection',1,5,4294967295,4294967295,13522,13523,1,4294967295,0,0,0,0,65534,1,51,0,3,4294967295,1,0,15,57,1,0,0,402,0),(62,'Innate Run Speed',1,3,4294967295,4294967295,13524,13525,1,4294967295,0,0,0,0,65534,1,51,0,3,4294967295,1,0,5,62,1,0,0,672,0),(65,'Innate Regeneration',1,3,4294967295,4294967295,13526,13527,1,4294967295,0,0,0,0,65534,1,51,0,3,4294967295,1,0,5,65,1,0,0,674,0),(68,'Innate Metabolism',1,3,4294967295,4294967295,13528,13529,1,4294967295,0,0,0,0,65534,1,51,0,3,4294967295,1,0,3,68,1,0,0,0,0),(71,'Innate Lung Capacity',1,3,4294967295,4294967295,13530,13531,1,4294967295,0,0,0,0,65534,1,51,0,3,4294967295,1,0,6,71,1,0,0,676,0),(74,'First Aid',1,3,4294967295,4294967295,13532,13533,1,4294967295,0,0,0,0,65534,1,51,0,3,4294967295,1,0,6,74,1,0,0,263,0),(77,'Healing Adept',2,3,4294967295,4294967295,13534,13535,2,4294967295,4294967295,0,0,0,33884,0,55,2,3,4294967295,2,0,12,77,1,0,0,434,0),(80,'Healing Gift',2,3,4294967295,4294967295,13536,13537,2,4294967295,4294967295,0,0,0,33884,0,55,2,3,4294967295,2,0,21,80,1,0,0,437,0),(83,'Spell Casting Mastery',2,3,4294967295,4294967295,13538,13539,2,4294967295,4294967295,0,0,0,31812,0,55,2,3,4294967295,2,0,3,83,1,0,0,0,0),(86,'Spell Casting Reinforcement',2,3,4294967295,4294967295,13540,13541,2,4294967295,4294967295,0,0,0,50268,0,55,2,3,4294967295,2,0,3,86,1,0,0,0,0),(89,'Mental Clarity',2,3,4294967295,4294967295,13542,13543,2,4294967295,4294967295,0,0,0,64892,0,55,2,3,4294967295,2,0,3,89,1,0,0,0,0),(92,'Spell Casting Fury',2,3,4294967295,4294967295,13544,13545,2,4294967295,0,0,0,0,64892,0,55,2,3,4294967295,2,0,3,92,1,0,0,0,0),(95,'Channeling Focus',2,3,4294967295,4294967295,13546,13547,2,4294967295,4294967295,0,0,0,64892,0,55,2,3,4294967295,2,0,3,95,1,0,0,0,0),(98,'Spell Casting Subtlety',2,3,4294967295,4294967295,13548,13549,2,0,0,0,0,0,30976,0,55,2,3,4294967295,2,0,3,98,1,0,0,0,0),(101,'Spell Casting Expertise',2,3,4294967295,4294967295,13550,13551,2,4294967295,4294967295,0,0,0,31008,0,55,2,3,4294967295,2,0,3,101,1,0,0,0,0),(104,'Spell Casting Deftness',2,3,4294967295,4294967295,13552,13553,2,4294967295,4294967295,0,0,0,14368,0,55,2,3,4294967295,2,0,3,104,1,0,0,0,0),(107,'Natural Durability',2,3,4294967295,4294967295,13554,13555,2,4294967295,4294967295,0,0,0,65534,1,55,2,3,4294967295,1,0,3,107,1,0,0,0,0),(110,'Natural Healing',2,3,4294967295,4294967295,13556,13557,2,4294967295,4294967295,0,0,0,33722,1,55,2,3,4294967295,2,0,8,110,1,0,0,1031,0),(113,'Combat Fury',2,3,4294967295,4294967295,13558,13559,2,4294967295,4294967295,0,0,0,33722,1,55,2,3,4294967295,2,0,6,113,1,0,0,443,0),(116,'Fear Resistance',2,3,4294967295,4294967295,13560,13561,2,4294967295,4294967295,0,0,0,33722,1,55,2,3,4294967295,2,0,3,116,1,0,0,0,0),(119,'Finishing Blow',2,3,4294967295,4294967295,13562,13563,2,4294967295,0,0,0,0,33722,1,55,2,3,4294967295,2,0,21,119,1,0,0,440,0),(122,'Combat Stability',2,3,4294967295,4294967295,13564,13565,2,4294967295,4294967295,0,0,0,65534,1,55,2,3,4294967295,1,0,33,122,1,0,0,454,0),(125,'Combat Agility',2,3,4294967295,4294967295,13566,13567,2,4294967295,4294967295,0,0,0,65534,1,55,2,3,4294967295,1,0,33,125,1,0,0,449,0),(128,'Mass Group Buff',9,1,13811,13812,13809,13810,3,5228,4294967295,0,1,4320,60508,0,59,0,3,4294967295,3,0,1,128,1,0,0,0,0),(129,'Divine Resurrection',5,1,13570,13571,13568,13569,3,2738,80,3,2,259200,4,0,59,0,3,4294967295,3,0,1,129,1,0,0,0,0),(130,'Innate Invis to Undead',3,1,13574,13575,13572,13573,3,235,4294967295,0,3,7,2052,0,59,0,3,4294967295,3,0,1,130,1,0,1,0,0Line truncated
DROP TABLE IF EXISTS `aa_actions`;
CREATE TABLE `aa_actions` (
`aaid` mediumint(8) unsigned NOT NULL DEFAULT '0',
`rank` tinyint(3) unsigned NOT NULL DEFAULT '0',
`reuse_time` mediumint(8) unsigned NOT NULL DEFAULT '0',
`spell_id` mediumint(8) unsigned NOT NULL DEFAULT '0',
`target` tinyint(3) unsigned NOT NULL DEFAULT '0',
`nonspell_action` tinyint(3) unsigned NOT NULL DEFAULT '0',
`nonspell_mana` mediumint(8) unsigned NOT NULL DEFAULT '0',
`nonspell_duration` mediumint(8) unsigned NOT NULL DEFAULT '0',
`redux_aa` mediumint(8) unsigned NOT NULL DEFAULT '0',
`redux_rate` tinyint(4) NOT NULL DEFAULT '0',
`redux_aa2` mediumint(8) unsigned NOT NULL DEFAULT '0',
`redux_rate2` tinyint(4) NOT NULL DEFAULT '0',
PRIMARY KEY (`aaid`,`rank`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
INSERT INTO `aa_actions` VALUES (128,0,4320,5228,1,0,0,100000,782,10,0,0),(129,0,259200,2738,2,0,0,0,0,0,0,0),(130,0,7,2739,1,0,0,0,0,0,0,0),(131,0,4320,2740,2,0,0,0,0,0,0,0),(132,0,8640,2741,2,0,0,0,462,10,0,0),(133,0,4320,2776,1,0,0,0,0,0,0,0),(133,1,4320,2777,1,0,0,0,0,0,0,0),(133,2,4320,2778,1,0,0,0,0,0,0,0),(136,0,4320,2742,2,0,0,0,468,10,0,0),(140,0,4320,2771,1,0,0,0,477,10,0,0),(145,0,4320,0,2,8,0,0,0,0,0,0),(146,0,180,2749,1,0,0,0,0,0,0,0),(153,0,7200,2750,1,0,0,0,474,10,0,0),(154,0,7200,2751,2,0,0,0,0,0,0,0),(155,0,420,2758,1,0,0,0,0,0,0,0),(156,0,4320,2734,1,0,0,0,0,0,0,0),(162,0,8640,2753,1,0,0,0,471,10,0,0),(163,0,2160,2752,5,0,0,0,483,10,0,0),(167,0,900,2754,5,0,0,0,0,0,0,0),(168,0,900,2795,1,0,0,0,0,0,0,0),(168,1,900,2796,1,0,0,0,0,0,0,0),(168,2,900,2797,1,0,0,0,0,0,0,0),(171,0,900,2798,1,0,0,0,0,0,0,0),(171,1,900,2799,1,0,0,0,0,0,0,0),(171,2,900,2800,1,0,0,0,0,0,0,0),(174,0,900,2792,1,0,0,0,0,0,0,0),(174,1,900,2793,1,0,0,0,0,0,0,0),(174,2,900,2794,1,0,0,0,0,0,0,0),(177,0,900,2789,1,0,0,0,0,0,0,0),(177,1,900,2790,1,0,0,0,0,0,0,0),(177,2,900,2791,1,0,0,0,0,0,0,0),(181,0,300,8133,2,0,0,0,486,10,0,0),(181,1,300,8134,2,0,0,0,486,10,0,0),(181,2,300,8135,2,0,0,0,486,10,0,0),(183,0,8640,2755,2,0,0,0,0,0,0,0),(184,0,4320,2756,2,0,0,0,0,0,0,0),(185,0,4320,2757,1,0,0,0,0,0,0,0),(186,0,7,2772,1,0,0,0,0,0,0,0),(187,0,4320,2764,2,0,0,0,0,0,0,0),(188,0,30,2190,2,0,0,0,583,24,0,0),(193,0,4320,0,2,10,0,0,0,0,0,0),(194,0,1,2874,1,0,0,0,0,0,0,0),(197,0,7,2765,1,0,0,0,0,0,0,0),(206,0,1,2875,1,0,0,0,0,0,0,0),(207,0,4320,2774,2,0,0,0,596,17,0,0),(208,0,4320,2766,2,0,0,0,596,17,0,0),(233,0,1800,2742,1,0,0,0,495,10,0,0),(243,0,4320,5244,1,0,0,0,498,10,886,10),(254,0,4320,5232,1,0,0,0,501,10,0,0),(258,0,600,5233,1,0,0,0,492,10,0,0),(259,0,900,0,1,1,0,0,489,10,0,0),(260,0,2160,5229,1,0,0,0,0,0,0,0),(260,1,2160,5230,1,0,0,0,0,0,0,0),(260,2,2160,5231,1,0,0,0,0,0,0,0),(274,0,4320,2748,2,0,0,0,480,10,0,0),(289,0,300,3290,5,0,0,0,0,0,0,0),(290,0,720,3289,1,0,0,0,0,0,0,0),(291,0,900,3291,3,0,0,0,0,0,0,0),(459,0,180,3297,1,0,0,0,754,10,0,0),(459,1,180,3298,1,0,0,0,754,10,0,0),(459,2,180,3299,1,0,0,0,754,10,0,0),(507,0,180,3252,1,0,0,0,0,0,0,0),(507,1,180,3253,1,0,0,0,0,0,0,0),(507,2,180,3254,1,0,0,0,0,0,0,0),(510,0,240,3255,2,0,0,0,0,0,0,0),(510,1,240,3256,2,0,0,0,0,0,0,0),(510,2,240,3257,2,0,0,0,0,0,0,0),(513,0,120,3274,2,0,0,0,0,0,0,0),(513,1,120,3275,2,0,0,0,0,0,0,0),(513,2,120,3276,2,0,0,0,0,0,0,0),(516,0,480,3338,1,0,0,0,0,0,0,0),(517,0,600,3258,1,0,0,0,0,0,0,0),(517,1,600,3259,1,0,0,0,0,0,0,0),(517,2,600,3260,1,0,0,0,0,0,0,0),(520,0,540,3265,2,0,0,0,0,0,0,0),(520,1,540,3266,2,0,0,0,0,0,0,0),(520,2,540,3267,2,0,0,0,0,0,0,0),(523,0,540,3268,2,0,0,0,0,0,0,0),(523,1,540,3269,2,0,0,0,0,0,0,0),(523,2,540,3270,2,0,0,0,0,0,0,0),(526,0,1,5844,1,0,0,0,0,0,0,0),(526,1,1,3248,1,0,0,0,0,0,0,0),(526,2,1,3249,1,0,0,0,0,0,0,0),(528,0,720,3283,2,0,0,0,0,0,0,0),(528,1,720,3284,2,0,0,0,0,0,0,0),(528,2,720,3285,2,0,0,0,0,0,0,0),(531,0,900,3250,2,0,0,0,0,0,0,0),(531,1,900,3251,2,0,0,0,0,0,0,0),(533,0,420,3264,1,0,0,0,0,0,0,0),(534,0,2160,3261,1,0,0,0,849,10,0,0),(534,1,2160,3262,1,0,0,0,849,10,0,0),(534,2,2160,3263,1,0,0,0,849,10,0,0),(545,0,900,3271,1,0,0,0,0,0,0,0),(545,1,900,3272,1,0,0,0,0,0,0,0),(545,2,900,3273,1,0,0,0,0,0,0,0),(548,0,900,3277,1,0,0,0,0,0,0,0),(548,1,900,3278,1,0,0,0,0,0,0,0),(548,2,900,3279,1,0,0,0,0,0,0,0),(592,0,18,3282,2,0,0,0,0,0,0,0),(616,0,900,3286,2,0,0,0,0,0,0,0),(616,1,900,3287,2,0,0,0,0,0,0,0),(616,2,900,3288,2,0,0,0,0,0,0,0),(619,0,900,3292,2,0,0,0,0,0,0,0),(619,1,900,3293,2,0,0,0,0,0,0,0),(619,2,900,3294,2,0,0,0,0,0,0,0),(630,0,1,5243,1,16,900,0,0,0,0,0),(643,0,0,5227,1,0,0,0,0,0,0,0),(645,0,5,3614,2,0,0,0,0,0,0,0),(718,0,120,4521,1,0,0,0,0,0,0,0),(718,1,120,4522,1,0,0,0,0,0,0,0),(718,2,120,4523,1,0,0,0,0,0,0,0),(721,0,900,5110,2,0,0,0,0,0,0,0),(721,1,900,5111,2,0,0,0,0,0,0,0),(921,0,60,4833,1,0,0,0,0,0,0,0),(922,0,60,4834,1,0,0,0,0,0,0,0),(923,0,60,4835,1,0,0,0,0,0,0,0),(926,0,1800,4836,2,0,0,0,0,0,0,0),(926,1,1800,4837,2,0,0,0,0,0,0,0),(926,2,1800,4848,2,0,0,0,0,0,0,0),(926,3,1800,4839,2,0,0,0,0,0,0,0),(926,4,1800,4840,2,0,0,0,0,0,0,0),(931,0,4320,5245,1,0,0,0,0,0,0,0),(931,1,4320,5246,1,0,0,0,0,0,0,0),(931,2,4320,5247,1,0,0,0,0,0,0,0),(1000,0,4320,5824,1,0,0,0,0,0,0,0),(1119,0,900,5841,2,0,0,0,0,0,0,0),(1119,1,900,5842,2,0,0,0,0,0,0,0),(1119,2,900,5843,2,0,0,0,0,0,0,0),(1123,0,900,5854,1,0,0,0,0,0,0,0),(1123,1,900,5855,1,0,0,0,0,0,0,0),(1123,2,900,5856,1,0,0,0,0,0,0,0),(1126,0,2160,5845,5,0,0,0,483,10,0,0),(1126,1,2160,5846,5,0,0,0,483,10,0,0),(1126,2,2160,5847,5,0,0,0,483,10,0,0),(1229,0,4160,6094,1,0,0,0,0,0,0,0),(1334,0,4320,5943,2,0,0,0,0,0,0,0),(1334,1,4320,5944,2,0,0,0,0,0,0,0),(1334,2,4320,5945,2,0,0,0,0,0,0,0),(1337,0,4320,5946,1,0,0,0,0,0,0,0),(1337,1,4320,5947,1,0,0,0,0,0,0,0),(1337,2,4320,5948,1,0,0,0,0,0,0,0),(1340,0,60,5950,1,0,0,0,0,0,0,0),(1341,0,60,5951,1,0,0,0,0,0,0,0),(1342,0,60,5952,1,0,0,0,0,0,0,0),(1343,0,300,5953,3,0,0,0,0,0,0,0),(1344,0,60,5949,1,0,0,0,0,0,0,0),(828,0,3600,5240,1Line truncated
+9
View File
@@ -7315,6 +7315,8 @@ void Client::SendMercPersonalInfo()
stancecount += zone->merc_stance_list[GetMercInfo().MercTemplateID].size();
if(stancecount > MAX_MERC_STANCES || mercCount > MAX_MERC || mercTypeCount > MAX_MERC_GRADES)
{
if (MERC_DEBUG > 0)
Message(7, "Mercenary Debug: SendMercPersonalInfo Cancelled: (%i) (%i) (%i)", stancecount, mercCount, mercTypeCount);
SendMercMerchantResponsePacket(0);
return;
}
@@ -7408,6 +7410,13 @@ void Client::SendMercPersonalInfo()
return;
}
}
if (MERC_DEBUG > 0)
Message(7, "Mercenary Debug: SendMercPersonalInfo Send Successful");
}
else
{
if (MERC_DEBUG > 0)
Message(7, "Mercenary Debug: SendMercPersonalInfo Send Failed Due to no MercData for %i", GetMercInfo().MercTemplateID);
}
SendMercMerchantResponsePacket(0);
}
+3 -1
View File
@@ -1098,12 +1098,13 @@ void SetConsumption(int32 in_hunger, int32 in_thirst);
void RemoveGroupXTargets();
void RemoveAutoXTargets();
void ShowXTargets(Client *c);
void InitializeMercInfo();
bool CheckCanSpawnMerc(uint32 template_id);
bool CheckCanHireMerc(Mob* merchant, uint32 template_id);
bool CheckCanRetainMerc(uint32 upkeep);
bool CheckCanUnsuspendMerc();
bool CheckCanDismissMerc();
bool DismissMerc(uint32 MercID);
inline uint32 GetMercID() const { return mercid; }
inline uint8 GetMercSlot() const { return mercSlot; }
void SetMercID( uint32 newmercid) { mercid = newmercid; }
@@ -1130,6 +1131,7 @@ void SetConsumption(int32 in_hunger, int32 in_thirst);
void UpdateMercLevel();
void CheckMercSuspendTimer();
Timer* GetMercTimer() { return &merc_timer; };
const char* GetRacePlural(Client* client);
const char* GetClassPlural(Client* client);
void SendWebLink(const char* website);
+12 -6
View File
@@ -9557,6 +9557,17 @@ void Client::Handle_OP_MercenaryDataRequest(const EQApplicationPacket *app)
if (merchant_id == 0) {
//send info about your current merc(s)
if (GetMercInfo().mercid)
{
if (MERC_DEBUG > 0)
Message(7, "Mercenary Debug: SendMercPersonalInfo Request");
SendMercPersonalInfo();
}
else
{
if (MERC_DEBUG > 0)
Message(7, "Mercenary Debug: SendMercPersonalInfo Not Sent - MercID (%i)", GetMercInfo().mercid);
}
}
if (!RuleB(Mercs, AllowMercs)) {
@@ -9699,12 +9710,7 @@ void Client::Handle_OP_MercenaryDismiss(const EQApplicationPacket *app)
Message(7, "Mercenary Debug: Dismiss Request ( %i ) Received.", Command);
// Handle the dismiss here...
Merc* merc = GetMerc();
if (merc) {
if (CheckCanDismissMerc()) {
merc->Dismiss();
}
}
DismissMerc(GetMercInfo().mercid); // GetMercID()
}
+2 -1
View File
@@ -2960,7 +2960,8 @@ bool EntityList::MakeTrackPacket(Client *client)
Group *g = client->GetGroup();
for (auto it = mob_list.cbegin(); it != mob_list.cend(); ++it) {
if (!it->second || it->second == client || !it->second->IsTrackable())
if (!it->second || it->second == client || !it->second->IsTrackable() ||
it->second->IsInvisible(client))
continue;
MobDistance = it->second->DistNoZ(*client);
+109 -30
View File
@@ -5098,6 +5098,9 @@ bool Merc::Spawn(Client *owner) {
entity_list.AddMerc(this, true, true);
SendPosition();
if (MERC_DEBUG > 0)
owner->Message(7, "Mercenary Debug: Spawn.");
//UpdateMercAppearance();
@@ -5244,6 +5247,8 @@ void Client::SendMercResponsePackets(uint32 ResponseType)
SendMercMerchantResponsePacket(3);
break;
}
if (MERC_DEBUG > 0)
Message(7, "Mercenary Debug: SendMercResponsePackets %i.", ResponseType);
}
void Client::UpdateMercTimer()
@@ -5283,6 +5288,9 @@ void Client::UpdateMercTimer()
{
SendMercResponsePackets(16);
}
if (MERC_DEBUG > 0)
Message(7, "Mercenary Debug: UpdateMercTimer Complete.");
// Normal upkeep charge message
//Message(7, "You have been charged a mercenary upkeep cost of %i plat, and %i gold and your mercenary upkeep cost timer has been reset to 15 minutes.", upkeep_plat, upkeep_gold, (int)(RuleI(Mercs, UpkeepIntervalMS) / 1000 / 60));
@@ -5334,6 +5342,9 @@ bool Client::CheckCanHireMerc(Mob* merchant, uint32 template_id) {
return false;
}
}
if (MERC_DEBUG > 0)
Message(7, "Mercenary Debug: CheckCanHireMerc True.");
return true;
}
@@ -5398,6 +5409,9 @@ bool Client::CheckCanSpawnMerc(uint32 template_id) {
SendMercResponsePackets(9);
return false;
}
if (MERC_DEBUG > 0)
Message(7, "Mercenary Debug: CheckCanSpawnMerc True.");
return true;
}
@@ -5418,17 +5432,9 @@ bool Client::CheckCanUnsuspendMerc() {
Message(0, "You must wait %i seconds before unsuspending your mercenary.", GetPTimers().GetRemainingTime(pTimerMercSuspend));
return false;
}
return true;
}
bool Client::CheckCanDismissMerc() {
if(!GetMercID())
{
Message(7, "You have no mercenary to dismiss.");
return false;
}
if (MERC_DEBUG > 0)
Message(7, "Mercenary Debug: CheckCanUnsuspendMerc True.");
return true;
}
@@ -5441,19 +5447,24 @@ void Client::CheckMercSuspendTimer() {
{
GetMercInfo().SuspendedTime = 0;
SendMercResponsePackets(0);
SendMercSuspendResponsePacket(GetMercInfo().SuspendedTime);
if (MERC_DEBUG > 0)
Message(7, "Mercenary Debug: CheckMercSuspendTimer Ready.");
}
}
}
void Client::SuspendMercCommand() {
bool ExistsMerc = GetMercInfo().MercTemplateID != 0;
if(ExistsMerc == true)
if(GetMercInfo().MercTemplateID != 0)
{
if(GetMercInfo().IsSuspended)
{
if(!CheckCanUnsuspendMerc())
{
if (MERC_DEBUG > 0)
Message(7, "Mercenary Debug: SuspendMercCommand Unable to Unsuspend.");
return;
}
@@ -5462,11 +5473,15 @@ void Client::SuspendMercCommand() {
if(merc)
{
SpawnMerc(merc, true);
if (MERC_DEBUG > 0)
Message(7, "Mercenary Debug: SuspendMercCommand Successful Unsuspend.");
}
else
{
//merc failed to spawn
SendMercResponsePackets(3);
if (MERC_DEBUG > 0)
Message(7, "Mercenary Debug: SuspendMercCommand Failed to Spawn Merc.");
}
}
else
@@ -5476,6 +5491,8 @@ void Client::SuspendMercCommand() {
if(CurrentMerc && GetMercID())
{
CurrentMerc->Suspend();
if (MERC_DEBUG > 0)
Message(7, "Mercenary Debug: SuspendMercCommand Successful Suspend.");
}
}
}
@@ -5510,16 +5527,27 @@ void Client::SpawnMercOnZone() {
{
SpawnMerc(merc, false);
}
if (MERC_DEBUG > 0)
Message(7, "Mercenary Debug: SpawnMercOnZone Normal Merc.");
}
else
{
int32 TimeDiff = GetMercInfo().SuspendedTime + RuleI(Mercs, SuspendIntervalS) - time(nullptr);
if (TimeDiff > 0)
{
if (!GetPTimers().Enabled(pTimerMercSuspend))
{
// Start the timer to send the packet that refreshes the Unsuspend Button
GetPTimers().Start(pTimerMercSuspend, TimeDiff);
}
}
// Send Mercenary Status/Timer packet
SendMercTimer(GetMerc());
SendMercPersonalInfo();
//SendMercPersonalInfo();
CheckMercSuspendTimer();
SendMercSuspendResponsePacket(GetMercInfo().SuspendedTime);
if (MERC_DEBUG > 0)
Message(7, "Mercenary Debug: SpawnMercOnZone Suspended Merc.");
}
}
}
@@ -5528,21 +5556,28 @@ void Client::SendMercTimer(Merc* merc) {
if (GetMercInfo().mercid == 0)
{
//return;
return;
}
if (!merc)
{
SendMercTimerPacket(NO_MERC_ID, MERC_STATE_SUSPENDED, GetMercInfo().SuspendedTime, GetMercInfo().MercTimerRemaining, RuleI(Mercs, SuspendIntervalMS));
if (MERC_DEBUG > 0)
Message(7, "Mercenary Debug: SendMercTimer No Merc.");
}
else if (merc->IsSuspended())
{
SendMercTimerPacket(NO_MERC_ID, MERC_STATE_SUSPENDED, GetMercInfo().SuspendedTime, GetMercInfo().MercTimerRemaining, RuleI(Mercs, SuspendIntervalMS));
if (MERC_DEBUG > 0)
Message(7, "Mercenary Debug: SendMercTimer Suspended Merc.");
}
else
{
SendMercTimerPacket(merc->GetID(), MERC_STATE_NORMAL, NOT_SUSPENDED_TIME, GetMercInfo().MercTimerRemaining, RuleI(Mercs, SuspendIntervalMS));
if (MERC_DEBUG > 0)
Message(7, "Mercenary Debug: SendMercTimer Normal Merc.");
}
}
void Client::SpawnMerc(Merc* merc, bool setMaxStats) {
@@ -5559,7 +5594,10 @@ void Client::SpawnMerc(Merc* merc, bool setMaxStats) {
merc->SetStance(GetMercInfo().Stance);
GetMercInfo().SuspendedTime = 0;
SendMercTimer(merc);
//SendMercTimer(merc);
if (MERC_DEBUG > 0)
Message(7, "Mercenary Debug: SpawnMerc Success.");
return;
@@ -5589,6 +5627,9 @@ bool Merc::Suspend() {
// Start the timer to send the packet that refreshes the Unsuspend Button
mercOwner->GetPTimers().Start(pTimerMercSuspend, RuleI(Mercs, SuspendIntervalS));
if (MERC_DEBUG > 0)
mercOwner->Message(7, "Mercenary Debug: Suspend Complete.");
return true;
}
@@ -5622,7 +5663,7 @@ bool Merc::Unsuspend(bool setMaxStats) {
if(!mercOwner->GetPTimers().Expired(&database, pTimerMercSuspend, false))
mercOwner->GetPTimers().Clear(&database, pTimerMercSuspend);
mercOwner->SendMercPersonalInfo();
//mercOwner->SendMercPersonalInfo();
Group* g = entity_list.GetGroupByClient(mercOwner);
//nobody from our group is here... start a new group
@@ -5694,30 +5735,41 @@ bool Merc::Unsuspend(bool setMaxStats) {
if(cost > 0 && !mercOwner->HasMoney(cost))
{
mercOwner->SendMercResponsePackets(1);
Suspend();
return false;
}
}
Save();
}
}
return true;
}
bool Merc::Dismiss() {
bool Client::DismissMerc(uint32 MercID) {
Client* mercOwner = GetMercOwner();
database.DeleteMerc(GetMercID());
if(mercOwner)
bool Dismissed = true;
if (!database.DeleteMerc(MercID))
{
mercOwner->SendClearMercInfo();
mercOwner->SetMerc(0);
if (MERC_DEBUG > 0)
Message(7, "Mercenary Debug: Dismiss Failed for MercID %i", MercID);
Dismissed = false;
}
else
{
if (MERC_DEBUG > 0)
Message(7, "Mercenary Debug: Dismiss Successful.");
}
Depop();
if (GetMerc())
{
GetMerc()->Depop();
}
return true;
SendClearMercInfo();
SetMerc(nullptr);
return Dismissed;
}
void Merc::Zone() {
@@ -5842,6 +5894,8 @@ Merc* Client::GetMerc() {
if(GetMercID() == 0)
{
if (MERC_DEBUG > 0)
//Message(7, "Mercenary Debug: GetMerc 0.");
return (nullptr);
}
@@ -5849,14 +5903,21 @@ Merc* Client::GetMerc() {
if(tmp == nullptr)
{
SetMercID(0);
if (MERC_DEBUG > 0)
Message(7, "Mercenary Debug: GetMerc No Merc.");
return (nullptr);
}
if(tmp->GetOwnerID() != GetID())
{
SetMercID(0);
if (MERC_DEBUG > 0)
Message(7, "Mercenary Debug: GetMerc Owner Mismatch.");
return (nullptr);
}
if (MERC_DEBUG > 0)
//Message(7, "Mercenary Debug: GetMerc Success.");
return (tmp);
}
@@ -5872,6 +5933,8 @@ uint8 Client::GetNumMercs() {
numMercs++;
}
}
if (MERC_DEBUG > 0)
Message(7, "Mercenary Debug: GetNumMercs %i.", numMercs);
return numMercs;
}
@@ -5912,6 +5975,8 @@ void Client::SetMerc(Merc* newmerc) {
GetMercInfo().Gender = 0;
GetMercInfo().State = 0;
memset(GetMercInfo().merc_name, 0, 64);
if (MERC_DEBUG > 0)
Message(7, "Mercenary Debug: SetMerc No Merc.");
}
else
{
@@ -5928,6 +5993,8 @@ void Client::SetMerc(Merc* newmerc) {
GetMercInfo().Gender = newmerc->GetGender();
//GetMercInfo().State = newmerc->GetStance();
snprintf(GetMercInfo().merc_name, 64, "%s", newmerc->GetName());
if (MERC_DEBUG > 0)
Message(7, "Mercenary Debug: SetMerc New Merc.");
}
}
@@ -5947,6 +6014,8 @@ void Client::SendMercMerchantResponsePacket(int32 response_type) {
MercenaryMerchantResponse_Struct* mmr = (MercenaryMerchantResponse_Struct*)outapp->pBuffer;
mmr->ResponseType = response_type; // send specified response type
FastQueuePacket(&outapp);
if (MERC_DEBUG > 0)
Message(7, "Mercenary Debug: Sent SendMercMerchantResponsePacket %i.", response_type);
}
}
@@ -5955,6 +6024,8 @@ void Client::SendMercenaryUnknownPacket(uint8 type) {
EQApplicationPacket *outapp = new EQApplicationPacket(OP_MercenaryUnknown1, 1);
outapp->WriteUInt8(type);
FastQueuePacket(&outapp);
if (MERC_DEBUG > 0)
Message(7, "Mercenary Debug: Sent SendMercenaryUnknownPacket %i.", type);
}
@@ -5963,6 +6034,8 @@ void Client::SendMercenaryUnsuspendPacket(uint8 type) {
EQApplicationPacket *outapp = new EQApplicationPacket(OP_MercenaryUnsuspendResponse, 1);
outapp->WriteUInt8(type);
FastQueuePacket(&outapp);
if (MERC_DEBUG > 0)
Message(7, "Mercenary Debug: Sent SendMercenaryUnsuspendPacket %i.", type);
}
@@ -5972,6 +6045,8 @@ void Client::SendMercSuspendResponsePacket(uint32 suspended_time) {
SuspendMercenaryResponse_Struct* smr = (SuspendMercenaryResponse_Struct*)outapp->pBuffer;
smr->SuspendTime = suspended_time; // Seen 0 (not suspended) or c9 c2 64 4f (suspended on Sat Mar 17 11:58:49 2012) - Unix Timestamp
FastQueuePacket(&outapp);
if (MERC_DEBUG > 0)
Message(7, "Mercenary Debug: Sent SendMercSuspendResponsePacket %i.", suspended_time);
}
@@ -5986,6 +6061,8 @@ void Client::SendMercTimerPacket(int32 entity_id, int32 merc_state, int32 suspen
mss->UpdateInterval = update_interval; // Seen 900000 - 15 minutes in ms
mss->MercUnk01 = unk01; // Seen 180000 - 3 minutes in ms - Used for the unsuspend button refresh timer
FastQueuePacket(&outapp);
if (MERC_DEBUG > 0)
Message(7, "Mercenary Debug: Sent SendMercTimerPacket %i, %i, %i, %i, %i.", entity_id, merc_state, suspended_time, update_interval, unk01);
}
@@ -5996,6 +6073,8 @@ void Client::SendMercAssignPacket(uint32 entityID, uint32 unk01, uint32 unk02) {
mas->MercUnk01 = unk01;
mas->MercUnk02 = unk02;
FastQueuePacket(&outapp);
if (MERC_DEBUG > 0)
Message(7, "Mercenary Debug: Sent SendMercAssignPacket %i, %i, %i.", entityID, unk01, unk02);
}
void NPC::LoadMercTypes() {
+1 -2
View File
@@ -4,8 +4,8 @@
#include "zonedb.h"
#include "npc.h"
#define MAXMERCS 1
#define MERC_DEBUG 0
#define MAXMERCS 1
#define TANK 1
#define HEALER 2
#define MELEEDPS 9
@@ -136,7 +136,6 @@ public:
void AddItem(uint8 slot, uint32 item_id);
static const char *GetRandomName();
bool Spawn(Client *owner);
bool Dismiss();
bool Suspend();
bool Unsuspend(bool setMaxStats);
void Zone();
+1 -1
View File
@@ -1226,7 +1226,7 @@ bool ZoneDatabase::GetTradeRecipe(const ItemInst* container, uint8 c_type, uint3
"WHERE tre.recipe_id IN (%s) "
"GROUP BY tre.recipe_id HAVING sum(tre.componentcount) = %u "
"AND sum(tre.item_id * tre.componentcount) = %u", buf2.c_str(), count, sum);
auto results = QueryDatabase(query);
results = QueryDatabase(query);
if (!results.Success()) {
LogFile->write(EQEMuLog::Error, "Error in GetTradeRecipe, re-query: %s", query.c_str());
LogFile->write(EQEMuLog::Error, "Error in GetTradeRecipe, error: %s", results.ErrorMessage().c_str());