diff --git a/common/eq_packet_structs.h b/common/eq_packet_structs.h index 7c663f18e..368cdf931 100644 --- a/common/eq_packet_structs.h +++ b/common/eq_packet_structs.h @@ -831,17 +831,18 @@ struct BindStruct { /*008*/ float y; /*012*/ float z; /*016*/ float heading; - /*020*/ + /*020*/ uint32 instance_id; + /*024*/ }; struct SuspendedMinion_Struct { - /*000*/ uint16 SpellID; - /*002*/ uint32 HP; - /*006*/ uint32 Mana; - /*010*/ SpellBuff_Struct Buffs[BUFF_COUNT]; - /*510*/ uint32 Items[_MaterialCount]; - /*546*/ char Name[64]; + /*000*/ uint16 SpellID; + /*002*/ uint32 HP; + /*006*/ uint32 Mana; + /*010*/ SpellBuff_Struct Buffs[BUFF_COUNT]; + /*510*/ uint32 Items[_MaterialCount]; + /*546*/ char Name[64]; /*610*/ }; @@ -2663,6 +2664,17 @@ struct Translocate_Struct { /*088*/ uint32 Complete; }; +struct PendingTranslocate_Struct +{ + uint32 zone_id; + uint16 instance_id; + float heading; + float x; + float y; + float z; + uint32 spell_id; +}; + struct Sacrifice_Struct { /*000*/ uint32 CasterID; /*004*/ uint32 TargetID; diff --git a/utils/scripts/db_update.pl b/utils/scripts/db_update.pl index 12e5aeab2..d592bebc3 100644 --- a/utils/scripts/db_update.pl +++ b/utils/scripts/db_update.pl @@ -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{ diff --git a/utils/sql/db_update_manifest.txt b/utils/sql/db_update_manifest.txt index 4f1de43df..721beb002 100644 --- a/utils/sql/db_update_manifest.txt +++ b/utils/sql/db_update_manifest.txt @@ -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| diff --git a/utils/sql/peq_aa_tables.sql b/utils/sql/peq_aa_tables.sql new file mode 100644 index 000000000..700106fa0 --- /dev/null +++ b/utils/sql/peq_aa_tables.sql @@ -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,18,0),(262,401,1,48,20,0),(263,402,1,49,2,0),(264,403,1,49,4,0),(265,404,1,49,6,0),(266,405,1,49,8,0),(267,406,1,49,10,0),(268,407,1,49,12,0),(269,408,1,49,14,0),(270,409,1,49,16,0),(271,410,1,49,18,0),(272,411,1,49,20,0),(273,418,1,262,5,0),(274,418,2,262,5,1),(275,418,3,262,5,2),(276,418,4,262,5,3),(277,418,5,262,5,4),(278,418,6,262,5,5),(279,418,7,262,5,6),(280,419,1,262,10,0),(281,419,2,262,10,1),(282,419,3,262,10,2),(283,419,4,262,10,3),(284,419,5,262,10,4),(285,419,6,262,10,5),(286,419,7,262,10,6),(287,420,1,262,15,0),(288,420,2,262,15,1),(289,420,3,262,15,2),(290,420,4,262,15,3),(291,420,5,262,15,4),(292,420,6,262,15,5),(293,420,7,262,15,6),(294,421,1,262,20,0),(295,421,2,262,20,1),(296,421,3,262,20,2),(297,421,4,262,20,3),(298,421,5,262,20,4),(299,421,6,262,20,5),(300,421,7,262,20,6),(301,422,1,262,25,0),(302,422,2,262,25,1),(303,422,3,262,25,2),(304,422,4,262,25,3),(305,422,5,262,25,4),(306,422,6,262,25,5),(307,422,7,262,25,6),(308,423,1,214,150,0),(309,424,1,214,300,0),(310,425,1,214,450,0),(311,426,1,262,10,4),(312,426,2,262,10,5),(313,427,1,262,20,4),(314,427,2,262,20,5),(315,428,1,262,30,4),(316,428,2,262,30,5),(317,429,1,262,40,4),(318,429,2,262,40,5),(319,430,1,262,50,4),(320,430,2,262,50,5),(2267,568,1,270,5,0),(2268,569,1,270,10,0),(2269,570,1,270,15,0),(324,622,1,227,1,29),(325,623,1,227,2,29),(326,624,1,227,3,29),(327,628,1,290,5,0),(328,629,1,290,15,0),(329,672,1,271,7,0),(330,673,1,271,14,0),(331,676,1,246,125,0),(332,677,1,246,150,0),(333,978,1,14,1,0),(334,1001,1,262,5,0),(335,1001,2,262,5,1),(336,1001,3,262,5,2),(337,1001,4,262,5,3),(338,1001,5,262,5,4),(339,1001,6,262,5,5),(340,1001,7,262,5,6),(341,1002,1,262,10,0),(342,1002,2,262,10,1),(343,1002,3,262,10,2),(344,1002,4,262,10,3),(345,1002,5,262,10,4),(346,1002,6,262,10,5),(347,1002,7,262,10,6),(348,1003,1,262,15,0),(349,1003,2,262,15,1),(350,1003,3,262,15,2),(351,1003,4,262,15,3),(352,1003,5,262,15,4),(353,1003,6,262,15,5),(354,1003,7,262,15,6),(355,1004,1,262,20,0),(356,1004,2,262,20,1),(357,1004,3,262,20,2),(358,1004,4,262,20,3),(359,1004,5,262,20,4),(360,1004,6,262,20,5),(361,1004,7,262,20,6),(362,1005,1,262,25,0),(363,1005,2,262,25,1),(364,1005,3,262,25,2),(365,1005,4,262,25,3),(366,1005,5,262,25,4),(367,1005,6,262,25,5),(368,1005,7,262,25,6),(369,1006,1,262,5,7),(370,1006,2,262,5,8),(371,1006,3,262,5,9),(372,1006,4,262,5,10),(373,1006,5,262,5,11),(374,1007,1,262,10,7),(375,1007,2,262,10,8),(376,1007,3,262,10,9),(377,1007,4,262,10,10),(378,1007,5,262,10,11),(379,1008,1,262,15,7),(380,1008,2,262,15,8),(381,1008,3,262,15,9),(382,1008,4,262,15,10),(383,1008,5,262,15,11),(384,1009,1,262,20,7),(385,1009,2,262,20,8),(386,1009,3,262,20,9),(387,1009,4,262,20,10),(388,1009,5,262,20,11),(389,1010,1,262,25,7),(390,1010,2,262,25,8),(391,1010,3,262,25,9),(392,1010,4,262,25,10),(393,1010,5,262,25,11),(394,1021,1,327,1,0),(395,1022,1,327,2,0),(396,1023,1,327,3,0),(397,1024,1,327,4,0),(398,1025,1,327,5,0),(399,1071,1,326,1,0),(2277,1129,1,267,1,0),(2276,288,1,267,1,15),(402,678,1,221,3,0),(403,679,1,221,6,0),(404,680,1,221,9,0),(405,681,1,221,12,0),(406,682,1,221,15,0),(407,807,1,292,5,0),(408,808,1,292,10,0),(409,809,1,292,15,0),(913,864,1,216,10,0),(921,865,1,216,20,0),(929,866,1,216,30,0),(413,907,1,69,100,0),(414,908,1,69,200,0),(415,909,1,69,300,0),(416,910,1,69,400,0),(417,911,1,69,500,0),(2289,580,9,254,0,0),(2288,580,8,254,0,0),(2287,580,7,254,0,0),(2286,580,6,254,0,0),(2285,580,5,254,0,0),(2284,580,4,254,0,0),(2283,580,3,267,1,5),(2282,580,2,267,1,8),(2281,580,1,267,1,4),(1541,1435,1,339,3,8105),(1542,1435,2,142,65,0),(1543,1435,3,311,0,0),(1544,1435,4,134,70,0),(1565,1436,1,339,6,8105),(1566,1436,2,142,65,0),(1567,1436,3,311,0,0),(1568,1436,4,134,70,0),(1589,1437,1,339,10,8105),(1590,1437,2,142,65,0),(1591,1437,3,311,0,0),(1592,1437,4,134,70,0),(1277,1486,1,339,1,8164),(1278,1486,2,138,1,0),(1279,1486,3,141,1,0),(1280,1486,4,142,60,0),(1281,1486,5,137,0,0),(1282,1486,6,311,0,0),(1293,1487,1,339,3,8165),(1294,1487,2,138,1,0),(1295,1487,3,141,1,0),(1296,1487,4,142,60,0),(1297,1487,5,137,0,0),(1298,1487,6,311,0,0),(1309,1488,1,339,5,8166),(1310,1488,2,138,1,0),(1311,1488,3,141,1,0),(1312,1488,4,142,60,0),(1313,1488,5,137,0,0),(1314,1488,6,311,0,0),(1325,1489,1,339,7,8167),(1326,1489,2,138,1,0),(1327,1489,3,141,1,0),(1328,1489,4,142,60,0),(1329,1489,5,137,0,0),(1330,1489,6,311,0,0),(1341,1490,1,339,9,8168),(1342,1490,2,138,1,0),(1343,1490,3,141,1,0),(1344,1490,4,142,60,0),(1345,1490,5,137,0,0),(1346,1490,6,311,0,0),(1749,625,1,294,3,100),(1750,626,1,294,6,100),(1751,627,1,294,9,100),(472,92,1,294,2,100),(473,93,1,294,4,100),(474,94,1,294,7,100),(475,267,1,294,3,100),(476,268,1,294,5,100),(477,269,1,294,7,100),(478,637,1,294,2,100),(479,638,1,294,4,100),(480,639,1,294,6,100),(481,640,1,294,2,100),(482,641,1,294,4,100),(483,642,1,294,6,100),(484,770,1,294,2,100),(485,771,1,294,4,100),(486,772,1,294,6,100),(487,1107,1,294,2,100),(488,1108,1,294,4,100),(489,1109,1,294,6,100),(490,924,1,294,2,100),(491,925,1,294,4,100),(1517,1210,1,294,0,107),(1518,1211,1,294,0,116),(1519,1212,1,294,0,125),(1965,77,1,125,2,2),(1966,77,2,137,0,0),(1973,78,1,125,5,5),(1974,78,2,137,0,0),(1981,79,1,125,10,10),(1982,79,2,137,0,0),(1989,434,1,125,13,13),(1997,435,1,125,16,16),(2005,436,1,125,19,19),(1990,434,2,137,0,0),(1998,435,2,137,0,0),(2006,436,2,137,0,0),(507,80,1,274,3,0),(2299,581,8,254,0,0),(2298,581,7,254,0,0),(510,81,1,274,6,0),(511,82,1,274,10,0),(2297,581,6,254,0,0),(513,437,1,274,2,0),(514,437,2,141,0,0),(515,438,1,274,4,0),(516,438,2,141,0,0),(517,439,1,274,6,0),(518,439,2,141,0,0),(833,113,1,169,15,-1),(834,114,1,169,30,-1),(835,115,1,169,45,-1),(836,443,1,169,50,-1),(837,444,1,169,100,-1),(838,445,1,169,153,-1),(1206,767,1,273,3,0),(1207,768,1,273,6,0),(1208,769,1,273,9,0),(1209,1099,1,273,3,0),(1210,1100,1,273,6,0),(1211,1101,1,273,9,0),(531,1011,1,262,8,7),(532,1011,2,262,8,8),(533,1011,3,262,8,9),(534,1011,4,262,8,10),(535,1011,5,262,8,11),(536,1012,1,262,16,7),(537,1012,2,262,16,8),(538,1012,3,262,16,9),(539,1012,4,262,16,10),(540,1012,5,262,16,11),(541,1013,1,262,24,7),(542,1013,2,262,24,8),(543,1013,3,262,24,9),(544,1013,4,262,24,10),(545,1013,5,262,24,11),(546,1014,1,262,32,7),(547,1014,2,262,32,8),(548,1014,3,262,32,9),(549,1014,4,262,32,10),(550,1014,5,262,32,11),(551,1015,1,262,40,7),(552,1015,2,262,40,8),(553,1015,3,262,40,9),(554,1015,4,262,40,10),(555,1015,5,262,40,11),(556,1016,1,262,50,7),(557,1016,2,262,50,8),(558,1016,3,262,50,9),(559,1016,4,262,50,10),(560,1016,5,262,50,11),(561,1361,1,262,10,0),(562,1361,2,262,10,1),(563,1361,3,262,10,2),(564,1361,4,262,10,3),(565,1361,5,262,10,4),(566,1361,6,262,10,5),(567,1361,7,262,10,6),(568,1362,1,69,250,0),(569,1362,2,97,250,0),(570,1362,3,190,250,0),(571,1363,1,327,1,0),(572,1364,1,273,3,0),(573,1364,2,274,3,0),(574,1364,3,294,3,100),(575,1364,4,319,3,0),(576,1364,5,169,3,0),(577,1365,1,180,3,0),(578,1366,1,262,10,0),(579,1366,2,262,10,1),(580,1366,3,262,10,2),(581,1366,4,262,10,3),(582,1366,5,262,10,4),(583,1366,6,262,10,5),(584,1366,7,262,10,6),(585,1367,1,69,250,0),(586,1367,2,97,250,0),(587,1367,3,190,250,0),(588,1368,1,327,1,0),(589,1369,1,273,3,0),(590,1369,2,274,3,0),(591,1369,3,294,3,100),(592,1369,4,319,3,0),(593,1369,5,169,3,0),(594,1370,1,180,3,0),(595,116,1,181,5,0),(596,117,1,181,15,0),(597,118,1,181,25,0),(598,195,1,181,100,0),(599,683,1,189,1,0),(600,684,1,189,2,0),(601,685,1,189,3,0),(602,674,1,0,1,0),(603,675,1,0,2,0),(604,1031,1,0,1,0),(605,1032,1,0,2,0),(606,1033,1,0,3,0),(607,1034,1,0,4,0),(608,1035,1,0,5,0),(609,1072,1,318,1,0),(610,1073,1,318,2,0),(611,1074,1,318,3,0),(612,1075,1,318,4,0),(613,1076,1,318,5,0),(1215,692,1,229,5,0),(1216,693,1,229,10,0),(1217,694,1,229,15,0),(2296,581,5,267,1,7),(2295,581,4,267,1,2),(2294,581,3,267,1,5),(2293,581,2,267,1,8),(2292,581,1,267,1,4),(2291,580,11,254,0,0),(2290,580,10,254,0,0),(2280,1130,2,267,1,24),(2279,1130,1,267,1,21),(2278,1129,2,267,1,24),(627,1026,1,328,50,0),(628,1027,1,328,100,0),(629,1028,1,328,150,0),(630,1029,1,328,200,0),(631,1030,1,328,250,0),(632,1587,1,344,50,0),(633,1588,1,344,55,0),(634,1589,1,344,60,0),(635,652,1,293,25,0),(636,653,1,293,50,0),(637,654,1,293,75,0),(638,1586,1,293,25,0),(639,74,1,269,10,0),(640,75,1,269,20,0),(641,76,1,269,30,0),(642,263,1,282,10,0),(643,264,1,282,25,0),(644,265,1,282,50,0),(645,537,1,282,60,0),(646,538,1,282,70,0),(647,1611,1,282,4,0),(648,1612,1,282,8,0),(649,1613,1,282,12,0),(650,1614,1,282,16,0),(651,1615,1,282,20,0),(652,5136,1,282,4,0),(653,5137,1,282,8,0),(654,5138,1,282,12,0),(655,5139,1,282,16,0),(656,5140,1,282,20,0),(2246,1621,1,177,5,0),(2247,1622,1,177,10,0),(2248,1623,1,177,15,0),(1819,599,1,266,2,0),(1820,600,1,266,4,0),(1821,601,1,266,8,0),(1822,1536,1,266,3,0),(1823,1537,1,266,6,0),(1824,1538,1,266,9,0),(666,602,1,266,2,0),(667,603,1,266,4,0),(668,604,1,266,8,0),(669,1388,2,13,1,0),(670,1627,1,271,5,0),(671,1628,1,271,10,0),(672,1629,1,271,15,0),(673,855,1,220,5,10),(674,856,1,220,15,10),(675,857,1,220,30,10),(676,820,1,220,10,26),(677,820,2,220,10,30),(678,820,3,220,10,38),(679,821,1,220,20,26),(680,821,2,220,20,30),(681,821,3,220,20,38),(682,822,1,220,30,26),(683,822,2,220,30,30),(684,822,3,220,30,38),(685,915,1,220,5,10),(686,915,2,220,5,30),(687,916,1,220,15,10),(688,916,2,220,15,30),(689,917,1,220,30,10),(690,917,2,220,30,30),(691,1287,1,320,1,0),(692,1288,2,320,3,0),(693,1289,3,320,5,0),(694,1134,1,220,32,74),(695,1135,1,220,64,74),(696,1136,1,220,96,74),(697,1158,1,220,128,74),(698,1159,1,220,192,74),(699,1160,1,220,224,74),(700,1161,1,220,256,74),(701,1162,1,220,288,74),(2225,846,1,258,5,0),(2226,847,1,258,10,0),(2227,848,1,258,15,0),(2228,1301,1,258,5,0),(2229,1302,1,258,10,0),(2230,1303,1,258,15,0),(708,287,1,253,1,0),(709,205,1,251,100,0),(2273,199,1,301,30,0),(2274,200,1,301,60,0),(2275,201,1,301,100,0),(713,1131,1,185,10,51),(714,1132,1,185,20,51),(715,1133,1,185,30,51),(716,806,1,249,1,0),(717,823,1,222,20,0),(718,824,1,222,25,0),(719,825,1,222,30,0),(720,826,1,222,35,0),(721,827,1,222,40,0),(722,631,1,292,15,0),(723,632,1,292,30,0),(724,633,1,292,45,0),(2237,564,1,177,3,0),(2238,565,1,177,6,0),(2239,566,1,177,9,0),(2493,591,1,303,600,0),(2241,562,1,177,6,0),(2242,563,1,177,9,0),(2243,1624,1,177,5,0),(2244,1625,1,177,10,0),(2245,1626,1,177,15,0),(734,551,1,225,3,0),(735,552,1,225,6,0),(736,553,1,225,9,0),(737,554,1,225,12,0),(738,555,1,225,15,0),(739,556,1,225,3,0),(740,557,1,225,6,0),(741,558,1,225,9,0),(742,559,1,225,12,0),(2491,590,1,303,400,0),(744,686,1,200,10,0),(745,687,1,200,20,0),(746,688,1,200,30,0),(747,689,1,200,40,0),(748,690,1,200,50,0),(749,273,1,288,100,21),(750,611,1,283,20,0),(751,612,1,283,40,0),(752,613,1,283,60,0),(753,614,1,283,80,0),(754,615,1,283,100,0),(2231,878,1,252,10,0),(2232,879,1,252,20,0),(2233,880,1,252,30,0),(2234,1539,1,252,5,0),(2235,1540,1,252,10,0),(2236,1541,1,252,15,0),(761,1041,1,330,25,0),(762,1041,2,330,25,1),(763,1041,3,330,25,2),(764,1041,4,330,25,3),(765,1041,5,330,25,28),(766,1041,6,330,25,36),(767,1042,1,330,30,0),(768,1042,2,330,30,1),(769,1042,3,330,30,2),(770,1042,4,330,30,3),(771,1042,5,330,30,28),(772,1042,6,330,30,36),(773,1043,1,330,35,0),(774,1043,2,330,35,1),(775,1043,3,330,35,2),(776,1043,4,330,35,3),(777,1043,5,330,35,28),(778,1043,6,330,35,36),(779,1044,1,330,25,0),(780,1044,2,330,25,1),(781,1044,3,330,25,2),(782,1044,4,330,25,3),(783,1044,5,330,25,28),(784,1044,6,330,25,36),(785,1045,1,330,30,0),(786,1045,2,330,30,1),(787,1045,3,330,30,2),(788,1045,4,330,30,3),(789,1045,5,330,30,28),(790,1045,6,330,30,36),(791,1046,1,330,35,0),(792,1046,2,330,35,1),(793,1046,3,330,35,2),(794,1046,4,330,35,3),(795,1046,5,330,35,28),(796,1046,6,330,35,36),(797,1047,1,330,25,0),(798,1047,2,330,25,1),(799,1047,3,330,25,2),(800,1047,4,330,25,3),(801,1047,5,330,25,28),(802,1047,6,330,25,36),(803,1048,1,330,30,0),(804,1048,2,330,30,1),(805,1048,3,330,30,2),(806,1048,4,330,30,3),(807,1048,5,330,30,28),(808,1048,6,330,30,36),(809,1049,1,330,35,0),(810,1049,2,330,35,1),(811,1049,3,330,35,2),(812,1049,4,330,35,3),(813,1049,5,330,35,28),(814,1049,6,330,35,36),(815,1050,1,330,15,0),(816,1050,2,330,15,1),(817,1050,3,330,15,2),(818,1050,4,330,15,3),(819,1050,5,330,15,28),(820,1050,6,330,15,36),(821,1051,1,330,20,0),(822,1051,2,330,20,1),(823,1051,3,330,20,2),(824,1051,4,330,20,3),(825,1051,5,330,20,28),(826,1051,6,330,20,36),(827,1052,1,330,25,0),(828,1052,2,330,25,1),(829,1052,3,330,25,2),(830,1052,4,330,25,3),(831,1052,5,330,25,28),(832,1052,6,330,25,36),(839,190,1,219,225,680),(840,191,1,219,235,725),(841,192,1,219,245,770),(842,1524,1,219,485,815),(843,1525,1,219,495,860),(844,1526,1,219,515,905),(845,790,1,218,1,0),(846,791,1,218,2,0),(847,792,1,218,3,0),(848,793,1,218,4,0),(849,794,1,218,5,0),(850,834,1,218,1,0),(851,835,1,218,2,0),(852,836,1,218,3,0),(853,837,1,218,4,0),(854,838,1,218,5,0),(855,724,1,218,1,0),(856,725,1,218,2,0),(857,726,1,218,3,0),(858,727,1,218,4,0),(859,728,1,218,5,0),(860,8201,1,218,1,0),(861,8202,1,218,2,0),(862,8203,1,218,3,0),(863,795,1,280,2,0),(864,796,1,280,4,0),(865,797,1,280,6,0),(866,798,1,280,8,0),(867,799,1,280,10,0),(868,839,1,280,2,0),(869,840,1,280,4,0),(870,841,1,280,6,0),(871,842,1,280,8,0),(872,843,1,280,10,0),(873,729,1,280,2,0),(874,730,1,280,4,0),(875,731,1,280,6,0),(876,732,1,280,8,0),(877,733,1,280,10,0),(878,803,1,213,2,0),(879,804,1,213,5,0),(880,805,1,213,10,0),(881,800,1,215,2,0),(882,801,1,215,5,0),(883,802,1,215,10,0),(2061,125,1,172,2,0),(2062,126,1,172,5,0),(2063,127,1,172,10,0),(2064,449,1,172,3,0),(2065,450,1,172,6,0),(2066,451,1,172,9,0),(2067,452,1,172,12,0),(2068,453,1,172,15,0),(2069,1061,1,172,1,0),(2070,1062,1,172,2,0),(2071,1063,1,172,3,0),(2072,1064,1,172,5,0),(2073,1065,1,172,7,0),(2074,1394,1,172,1,0),(2075,1395,1,172,2,0),(2076,1396,1,172,3,0),(2077,1397,1,172,5,0),(2078,1398,1,172,7,0),(2079,5519,1,172,1,0),(2080,5520,1,172,2,0),(2081,5521,1,172,3,0),(2082,5522,1,172,4,0),(2083,5523,1,172,5,0),(908,279,2,259,2,0),(909,279,3,172,2,0),(914,864,2,216,10,1),(915,864,3,216,10,2),(916,864,4,216,10,3),(917,864,5,216,10,10),(918,864,6,216,10,28),(919,864,7,216,10,30),(920,864,8,216,10,36),(922,865,2,216,20,1),(923,865,3,216,20,2),(924,865,4,216,20,3),(925,865,5,216,20,10),(926,865,6,216,20,28),(927,865,7,216,20,30),(928,865,8,216,20,36),(930,866,2,216,30,1),(931,866,3,216,30,2),(932,866,4,216,30,3),(933,866,5,216,30,10),(934,866,6,216,30,28),(935,866,7,216,30,30),(936,866,8,216,30,36),(937,1290,1,216,40,0),(938,1290,2,216,40,1),(939,1290,3,216,40,2),(940,1290,4,216,40,3),(941,1290,5,216,40,10),(942,1290,6,216,40,28),(943,1290,7,216,40,30),(944,1290,8,216,40,36),(945,1291,1,216,50,0),(946,1291,2,216,50,1),(947,1291,3,216,50,2),(948,1291,4,216,50,3),(949,1291,5,216,50,10),(950,1291,6,216,50,28),(951,1291,7,216,50,30),(952,1291,8,216,50,36),(953,1292,1,216,60,0),(954,1292,2,216,60,1),(955,1292,3,216,60,2),(956,1292,4,216,60,3),(957,1292,5,216,60,10),(958,1292,6,216,60,28),(959,1292,7,216,60,30),(960,1292,8,216,60,36),(961,1140,1,216,10,51),(963,1141,1,216,30,51),(2094,122,1,259,2,0),(2095,123,1,259,5,0),(2096,124,1,259,10,0),(2097,454,1,259,3,0),(2098,455,1,259,6,0),(2099,456,1,259,9,0),(2100,457,1,259,12,0),(2101,458,1,259,15,0),(2102,1066,1,259,1,0),(2103,1067,1,259,2,0),(2104,1068,1,259,3,0),(2105,1069,1,259,5,0),(2106,1070,1,259,7,0),(2107,1399,1,259,1,0),(2108,1400,1,259,2,0),(2109,1401,1,259,3,0),(2110,1402,1,259,5,0),(2111,1403,1,259,7,0),(2112,5524,1,259,1,0),(2113,5525,1,259,2,0),(2114,5526,1,259,3,0),(2115,5527,1,259,4,0),(2116,5528,1,259,5,0),(987,247,1,224,15,0),(988,248,1,224,35,0),(989,249,1,224,50,0),(990,504,1,224,60,0),(991,505,1,224,70,0),(992,506,1,224,80,0),(993,240,1,224,20,26),(994,240,2,173,1,0),(995,241,1,224,40,26),(996,241,2,173,2,0),(997,242,1,224,60,26),(998,242,2,173,3,0),(999,6287,1,224,20,30),(1000,6287,2,173,1,0),(1001,6288,1,224,40,30),(1002,6288,2,173,2,0),(1003,6289,1,224,60,30),(1004,6289,2,173,3,0),(1005,7106,1,224,20,30),(1006,7106,2,173,1,0),(1007,7107,1,224,40,30),(1008,7107,2,173,2,0),(1009,7108,1,224,60,30),(1010,7108,2,173,3,0),(1011,6269,1,224,20,30),(1012,6269,2,173,1,0),(1013,6270,1,224,40,30),(1014,6270,2,173,2,0),(1015,6271,1,224,60,30),(1016,6271,2,173,3,0),(1017,6266,1,224,20,10),(1018,6266,2,173,1,0),(1019,6267,1,224,40,10),(1020,6267,2,173,2,0),(1021,6268,1,224,60,10),(1022,6268,2,173,3,0),(1023,1143,1,224,20,74),(1024,1143,2,173,1,0),(1025,1144,1,224,40,74),(1026,1144,2,173,2,0),(1027,1145,1,224,60,74),(1028,1145,2,173,3,0),(1029,6275,1,224,20,8),(1030,6275,2,173,1,0),(1031,6276,1,224,40,8),(1032,6276,2,173,2,0),(1033,6277,1,224,60,8),(1034,6277,2,173,3,0),(2249,255,1,279,7,0),(2250,256,1,279,11,0),(2251,257,1,279,15,0),(2252,542,1,279,2,0),(2253,543,1,279,4,0),(2254,544,1,279,6,0),(2255,1163,1,279,2,0),(2256,1164,1,279,4,0),(2257,1165,1,279,6,0),(2258,4795,1,279,1,0),(2259,4796,1,279,2,0),(2260,4797,1,279,3,0),(2261,815,1,279,7,0),(2262,816,1,279,11,0),(2263,817,1,279,15,0),(2264,1616,1,279,7,0),(2265,1617,1,279,11,0),(2266,1618,1,279,15,0),(1053,198,1,276,32,0),(1054,741,1,232,2,4544),(1055,742,1,232,4,4545),(1056,743,1,232,6,4546),(1057,744,1,232,8,4547),(1058,745,1,232,10,4548),(1059,577,1,277,20,0),(1060,578,1,277,40,0),(1061,579,1,277,60,0),(1062,95,1,235,5,0),(1063,96,1,235,10,0),(1064,97,1,235,15,0),(1065,710,1,235,5,0),(1066,711,1,235,10,0),(1067,712,1,235,15,0),(1068,713,1,235,20,0),(1069,714,1,235,25,0),(2270,144,1,244,50,0),(2271,567,1,244,12,0),(2272,5061,1,244,11,0),(1073,734,1,237,1,0),(1076,225,1,272,1,0),(1083,101,1,265,20,0),(1084,102,1,265,35,0),(1085,103,1,265,52,0),(1086,446,1,265,54,0),(1087,447,1,265,56,0),(1088,448,1,265,58,0),(1089,735,1,265,54,0),(1090,736,1,265,56,0),(1091,737,1,265,58,0),(1092,7056,1,265,62,0),(1093,7057,1,265,64,0),(1094,7058,1,265,66,0),(1095,7059,1,265,67,0),(1096,7060,1,265,68,0),(1097,7061,1,265,69,0),(1100,7066,1,265,72,0),(1101,8263,1,262,5,0),(1102,8264,1,262,10,0),(1103,8265,1,262,15,0),(1104,8266,1,262,20,0),(1105,8267,1,262,25,0),(1106,8268,1,262,5,1),(1107,8269,1,262,10,1),(1108,8270,1,262,15,1),(1109,8271,1,262,20,1),(1110,8272,1,262,25,1),(1111,8273,1,262,5,2),(1112,8274,1,262,10,2),(1113,8275,1,262,15,2),(1114,8276,1,262,20,2),(1115,8277,1,262,25,2),(1116,8278,1,262,5,3),(1117,8279,1,262,10,3),(1118,8280,1,262,15,3),(1119,8281,1,262,20,3),(1120,8282,1,262,25,3),(1121,8283,1,262,5,4),(1122,8284,1,262,10,4),(1123,8285,1,262,15,4),(1124,8286,1,262,20,4),(1125,8287,1,262,25,4),(1126,8288,1,262,5,5),(1127,8289,1,262,10,5),(1128,8290,1,262,15,5),(1129,8291,1,262,20,5),(1130,8292,1,262,25,5),(1131,8293,1,262,5,6),(1132,8294,1,262,10,6),(1133,8295,1,262,15,6),(1134,8296,1,262,20,6),(1135,8297,1,262,25,6),(1136,4678,1,262,5,0),(1137,4679,1,262,10,0),(1138,4680,1,262,15,0),(1139,4681,1,262,20,0),(1140,4682,1,262,25,0),(1141,4678,2,262,5,1),(1142,4679,2,262,10,1),(1143,4680,2,262,15,1),(1144,4681,2,262,20,1),(1145,4682,2,262,25,1),(1146,4678,3,262,5,2),(1147,4679,3,262,10,2),(1148,4680,3,262,15,2),(1149,4681,3,262,20,2),(1150,4682,3,262,25,2),(1151,4678,4,262,5,3),(1152,4679,4,262,10,3),(1153,4680,4,262,15,3),(1154,4681,4,262,20,3),(1155,4682,4,262,25,3),(1156,4678,5,262,5,4),(1157,4679,5,262,10,4),(1158,4680,5,262,15,4),(1159,4681,5,262,20,4),(1160,4682,5,262,25,4),(1161,4678,6,262,5,5),(1162,4679,6,262,10,5),(1163,4680,6,262,15,5),(1164,4681,6,262,20,5),(1165,4682,6,262,25,5),(1166,4678,7,262,5,6),(1167,4679,7,262,10,6),(1168,4680,7,262,15,6),(1169,4681,7,262,20,6),(1170,4682,7,262,25,6),(1171,7547,1,262,5,0),(1172,7548,1,262,10,0),(1173,7549,1,262,15,0),(1174,7550,1,262,20,0),(1175,7551,1,262,25,0),(1176,7547,2,262,5,1),(1177,7548,2,262,10,1),(1178,7549,2,262,15,1),(1179,7550,2,262,20,1),(1180,7551,2,262,25,1),(1181,7547,3,262,5,2),(1182,7548,3,262,10,2),(1183,7549,3,262,15,2),(1184,7550,3,262,20,2),(1185,7551,3,262,25,2),(1186,7547,4,262,5,3),(1187,7548,4,262,10,3),(1188,7549,4,262,15,3),(1189,7550,4,262,20,3),(1190,7551,4,262,25,3),(1191,7537,5,262,5,4),(1192,7538,5,262,10,4),(1193,7539,5,262,15,4),(1194,7540,5,262,20,4),(1195,7541,5,262,25,4),(1196,7547,6,262,5,5),(1197,7548,6,262,10,5),(1198,7549,6,262,15,5),(1199,7550,6,262,20,5),(1200,7551,6,262,25,5),(1201,7547,7,262,5,6),(1202,7548,7,262,10,6),(1203,7549,7,262,15,6),(1204,7550,7,262,20,6),(1205,7551,7,262,25,6),(1212,12423,1,273,3,0),(1213,12424,1,273,6,0),(1214,12425,1,273,9,0),(1218,7647,1,229,5,0),(1219,7648,1,229,10,0),(1220,7649,1,229,15,0),(1221,7670,1,229,5,0),(1222,7671,1,229,10,0),(1223,7672,1,229,15,0),(1224,8224,1,339,10,16230),(1225,8224,2,138,1,0),(1226,8224,3,141,1,0),(1227,8224,4,142,60,0),(1228,8224,5,137,0,0),(1229,8224,6,311,0,0),(1230,8224,7,134,80,0),(1231,8224,8,139,-265,0),(1232,8224,9,139,-754,0),(1233,8224,10,139,-1332,0),(1234,8224,11,139,-1572,0),(1235,8224,12,139,-2749,0),(1236,8224,13,139,-4979,0),(1237,8224,14,139,-5418,0),(1238,8224,15,139,-5403,0),(1239,8225,1,339,10,16231),(1240,8225,2,138,1,0),(1241,8225,3,141,1,0),(1242,8225,4,142,65,0),(1243,8225,5,137,0,0),(1244,8225,6,311,0,0),(1245,8225,7,134,85,0),(1246,8225,8,139,-265,0),(1247,8225,9,139,-754,0),(1248,8225,10,139,-1332,0),(1249,8225,11,139,-1572,0),(1250,8225,12,139,-2749,0),(1251,8225,13,139,-4979,0),(1252,8225,14,139,-5418,0),(1253,8225,15,139,-5403,0),(1254,8226,1,339,10,16232),(1255,8226,2,138,1,0),(1256,8226,3,141,1,0),(1257,8226,4,142,70,0),(1258,8226,5,137,0,0),(1259,8226,6,311,0,0),(1260,8226,7,134,90,0),(1261,8226,8,139,-265,0),(1262,8226,9,139,-754,0),(1263,8226,10,139,-1332,0),(1264,8226,11,139,-1572,0),(1265,8226,12,139,-2749,0),(1266,8226,13,139,-4979,0),(1267,8226,14,139,-5418,0),(1268,8226,15,139,-5403,0),(1269,649,1,243,15,0),(1270,650,1,243,35,0),(1271,651,1,243,50,0),(1272,867,1,59,-3,0),(1273,868,1,59,-6,0),(1274,869,1,59,-9,0),(1275,870,1,59,-12,0),(1276,871,1,59,-15,0),(1283,1486,7,134,75,0),(1284,1486,8,139,-265,0),(1285,1486,9,139,-754,0),(1286,1486,10,139,-1332,0),(1287,1486,11,139,-1572,0),(1288,1486,12,139,-2749,0),(1289,1486,13,139,-4979,0),(1290,1486,14,139,-5418,0),(1291,1486,15,139,-5403,0),(1292,1486,16,348,10,0),(1299,1487,7,134,75,0),(1300,1487,8,139,-265,0),(1301,1487,9,139,-754,0),(1302,1487,10,139,-1332,0),(1303,1487,11,139,-1572,0),(1304,1487,12,139,-2749,0),(1305,1487,13,139,-4979,0),(1306,1487,14,139,-5418,0),(1307,1487,15,139,-5403,0),(1308,1487,16,348,10,0),(1315,1488,7,134,75,0),(1316,1488,8,139,-265,0),(1317,1488,9,139,-754,0),(1318,1488,10,139,-1332,0),(1319,1488,11,139,-1572,0),(1320,1488,12,139,-2749,0),(1321,1488,13,139,-4979,0),(1322,1488,14,139,-5418,0),(1323,1488,15,139,-5403,0),(1324,1488,16,348,10,0),(1331,1489,7,134,75,0),(1332,1489,8,139,-265,0),(1333,1489,9,139,-754,0),(1334,1489,10,139,-1332,0),(1335,1489,11,139,-1572,0),(1336,1489,12,139,-2749,0),(1337,1489,13,139,-4979,0),(1338,1489,14,139,-5418,0),(1339,1489,15,139,-5403,0),(1340,1489,16,348,10,0),(1347,1490,7,134,75,0),(1348,1490,8,139,-265,0),(1349,1490,9,139,-754,0),(1350,1490,10,139,-1332,0),(1351,1490,11,139,-1572,0),(1352,1490,12,139,-2749,0),(1353,1490,13,139,-4979,0),(1354,1490,14,139,-5418,0),(1355,1490,15,139,-5403,0),(1356,1490,16,348,10,0),(1357,5529,1,339,11,12680),(1358,5529,2,138,1,0),(1359,5529,3,141,1,0),(1360,5529,4,142,60,0),(1361,5529,5,137,0,0),(1362,5529,6,311,0,0),(1363,5529,7,134,75,0),(1364,5529,8,139,-265,0),(1365,5529,9,139,-754,0),(1366,5529,10,139,-1332,0),(1367,5529,11,139,-1572,0),(1368,5529,12,139,-2749,0),(1369,5529,13,139,-4979,0),(1370,5529,14,139,-5418,0),(1371,5529,15,139,-5403,0),(1372,5529,16,348,10,0),(1373,5530,1,339,13,12681),(1374,5530,2,138,1,0),(1375,5530,3,141,1,0),(1376,5530,4,142,60,0),(1377,5530,5,137,0,0),(1378,5530,6,311,0,0),(1379,5530,7,134,75,0),(1380,5530,8,139,-265,0),(1381,5530,9,139,-754,0),(1382,5530,10,139,-1332,0),(1383,5530,11,139,-1572,0),(1384,5530,12,139,-2749,0),(1385,5530,13,139,-4979,0),(1386,5530,14,139,-5418,0),(1387,5530,15,139,-5403,0),(1388,5530,16,348,10,0),(1389,5531,1,339,15,12682),(1390,5531,2,138,1,0),(1391,5531,3,141,1,0),(1392,5531,4,142,60,0),(1393,5531,5,137,0,0),(1394,5531,6,311,0,0),(1395,5531,7,134,75,0),(1396,5531,8,139,-265,0),(1397,5531,9,139,-754,0),(1398,5531,10,139,-1332,0),(1399,5531,11,139,-1572,0),(1400,5531,12,139,-2749,0),(1401,5531,13,139,-4979,0),(1402,5531,14,139,-5418,0),(1403,5531,15,139,-5403,0),(1404,5531,16,348,10,0),(2436,5532,16,348,10,0),(2435,5532,15,139,-5403,0),(2434,5532,14,139,-5418,0),(2433,5532,13,139,-4979,0),(2432,5532,12,139,-2749,0),(2431,5532,11,139,-1572,0),(2430,5532,10,139,-1332,0),(2429,5532,9,139,-754,0),(2428,5532,8,139,-265,0),(2427,5532,7,134,75,0),(2426,5532,6,311,0,0),(2425,5532,5,137,0,0),(2424,5532,4,142,60,0),(2423,5532,3,141,1,0),(2422,5532,2,138,1,0),(2421,5532,1,339,17,12683),(1421,5533,1,339,19,12684),(1422,5533,2,138,1,0),(1423,5533,3,141,1,0),(1424,5533,4,142,60,0),(1425,5533,5,137,0,0),(1426,5533,6,311,0,0),(1427,5533,7,134,75,0),(1428,5533,8,139,-265,0),(1429,5533,9,139,-754,0),(1430,5533,10,139,-1332,0),(1431,5533,11,139,-1572,0),(1432,5533,12,139,-2749,0),(1433,5533,13,139,-4979,0),(1434,5533,14,139,-5418,0),(1435,5533,15,139,-5403,0),(1436,5533,16,348,10,0),(1437,7554,1,339,21,16194),(1438,7554,2,138,1,0),(1439,7554,3,141,1,0),(1440,7554,4,142,60,0),(1441,7554,5,137,0,0),(1442,7554,6,311,0,0),(1443,7554,7,134,75,0),(1444,7554,8,139,-265,0),(1445,7554,9,139,-754,0),(1446,7554,10,139,-1332,0),(1447,7554,11,139,-1572,0),(1448,7554,12,139,-2749,0),(1449,7554,13,139,-4979,0),(1450,7554,14,139,-5418,0),(1451,7554,15,139,-5403,0),(1452,7554,16,348,10,0),(1453,7555,1,339,23,16195),(1454,7555,2,138,1,0),(1455,7555,3,141,1,0),(1456,7555,4,142,60,0),(1457,7555,5,137,0,0),(1458,7555,6,311,0,0),(1459,7555,7,134,75,0),(1460,7555,8,139,-265,0),(1461,7555,9,139,-754,0),(1462,7555,10,139,-1332,0),(1463,7555,11,139,-1572,0),(1464,7555,12,139,-2749,0),(1465,7555,13,139,-4979,0),(1466,7555,14,139,-5418,0),(1467,7555,15,139,-5403,0),(1468,7555,16,348,10,0),(1469,7556,1,339,25,16196),(1470,7556,2,138,1,0),(1471,7556,3,141,1,0),(1472,7556,4,142,60,0),(1473,7556,5,137,0,0),(1474,7556,6,311,0,0),(1475,7556,7,134,75,0),(1476,7556,8,139,-265,0),(1477,7556,9,139,-754,0),(1478,7556,10,139,-1332,0),(1479,7556,11,139,-1572,0),(1480,7556,12,139,-2749,0),(1481,7556,13,139,-4979,0),(1482,7556,14,139,-5418,0),(1483,7556,15,139,-5403,0),(1484,7556,16,348,10,0),(1485,7557,1,339,27,16417),(1486,7557,2,138,1,0),(1487,7557,3,141,1,0),(1488,7557,4,142,60,0),(1489,7557,5,137,0,0),(1490,7557,6,311,0,0),(1491,7557,7,134,75,0),(1492,7557,8,139,-265,0),(1493,7557,9,139,-754,0),(1494,7557,10,139,-1332,0),(1495,7557,11,139,-1572,0),(1496,7557,12,139,-2749,0),(1497,7557,13,139,-4979,0),(1498,7557,14,139,-5418,0),(1499,7557,15,139,-5403,0),(1500,7557,16,348,10,0),(1501,7558,1,339,29,16418),(1502,7558,2,138,1,0),(1503,7558,3,141,1,0),(1504,7558,4,142,60,0),(1505,7558,5,137,0,0),(1506,7558,6,311,0,0),(1507,7558,7,134,75,0),(1508,7558,8,139,-265,0),(1509,7558,9,139,-754,0),(1510,7558,10,139,-1332,0),(1511,7558,11,139,-1572,0),(1512,7558,12,139,-2749,0),(1513,7558,13,139,-4979,0),(1514,7558,14,139,-5418,0),(1515,7558,15,139,-5403,0),(1516,7558,16,348,10,0),(2486,4755,1,294,0,130),(2487,4756,1,294,0,135),(2488,4757,1,294,0,140),(1768,5557,1,341,10,0),(1769,5558,1,341,20,0),(1770,5559,1,341,30,0),(1526,7582,1,294,0,120),(1876,7583,1,114,-2,0),(1877,7584,1,114,-4,0),(2317,4779,1,274,2,0),(2318,4780,1,274,4,0),(2319,4781,1,274,6,0),(2320,5592,1,274,1,0),(2321,5593,1,274,2,0),(2322,5594,1,274,3,0),(2323,7590,1,274,1,0),(2324,7591,1,274,2,0),(2325,7592,1,274,3,0),(2326,12452,1,274,1,0),(2327,12453,1,274,2,0),(2328,12454,1,274,3,0),(1545,1435,5,348,10,0),(1546,1435,6,137,0,0),(1547,1435,7,339,3,8105),(1548,1435,8,142,65,0),(1549,1435,9,311,0,0),(1550,1435,10,134,70,0),(1551,1435,11,348,10,0),(1552,1435,12,137,100,0),(1553,1435,13,339,3,8105),(1554,1435,14,142,65,0),(1555,1435,15,311,0,0),(1556,1435,16,134,70,0),(1557,1435,17,348,10,0),(1558,1435,18,137,79,0),(1559,1435,19,339,3,8105),(1560,1435,20,142,65,0),(1561,1435,21,311,0,0),(1562,1435,22,134,70,0),(1563,1435,23,348,10,0),(1564,1435,24,137,149,0),(1569,1436,5,348,10,0),(1570,1436,6,137,0,0),(1571,1436,7,339,6,8105),(1572,1436,8,142,65,0),(1573,1436,9,311,0,0),(1574,1436,10,134,70,0),(1575,1436,11,348,10,0),(1576,1436,12,137,100,0),(1577,1436,13,339,6,8105),(1578,1436,14,142,65,0),(1579,1436,15,311,0,0),(1580,1436,16,134,70,0),(1581,1436,17,348,10,0),(1582,1436,18,137,79,0),(1583,1436,19,339,6,8105),(1584,1436,20,142,65,0),(1585,1436,21,311,0,0),(1586,1436,22,134,70,0),(1587,1436,23,348,10,0),(1588,1436,24,137,147,0),(1593,1437,5,348,10,0),(1594,1437,6,137,0,0),(1595,1437,7,339,10,8105),(1596,1437,8,142,65,0),(1597,1437,9,311,0,0),(1598,1437,10,134,70,0),(1599,1437,11,348,10,0),(1600,1437,12,137,100,0),(1601,1437,13,339,10,8105),(1602,1437,14,142,65,0),(1603,1437,15,311,0,0),(1604,1437,16,134,70,0),(1605,1437,17,348,10,0),(1606,1437,18,137,79,0),(1607,1437,19,339,10,8105),(1608,1437,20,142,65,0),(1609,1437,21,311,0,0),(1610,1437,22,134,70,0),(1611,1437,23,348,10,0),(1612,1437,24,137,147,0),(1613,4773,1,339,10,11404),(1614,4773,2,142,71,0),(1615,4773,3,311,0,0),(1616,4773,4,134,75,0),(1617,4773,5,348,10,0),(1618,4773,6,137,0,0),(1619,4773,7,339,10,11404),(1620,4773,8,142,71,0),(1621,4773,9,311,0,0),(1622,4773,10,134,75,0),(1623,4773,11,348,10,0),(1624,4773,12,137,100,0),(1625,4773,13,339,10,11404),(1626,4773,14,142,71,0),(1627,4773,15,311,0,0),(1628,4773,16,134,75,0),(1629,4773,17,348,10,0),(1630,4773,18,137,79,0),(1631,4773,19,339,10,11404),(1632,4773,20,142,71,0),(1633,4773,21,311,0,0),(1634,4773,22,134,75,0),(1635,4773,23,348,10,0),(1636,4773,24,137,149,0),(1637,6517,1,339,10,13199),(1638,6517,2,142,76,0),(1639,6517,3,311,0,0),(1640,6517,4,134,80,0),(1641,6517,5,348,10,0),(1642,6517,6,137,0,0),(1643,6517,7,339,10,13199),(1644,6517,8,142,76,0),(1645,6517,9,311,0,0),(1646,6517,10,134,80,0),(1647,6517,11,348,10,0),(1648,6517,12,137,100,0),(1649,6517,13,339,10,13199),(1650,6517,14,142,76,0),(1651,6517,15,311,0,0),(1652,6517,16,134,80,0),(1653,6517,17,348,10,0),(1654,6517,18,137,79,0),(1655,6517,19,339,10,13199),(1656,6517,20,142,76,0),(1657,6517,21,311,0,0),(1658,6517,22,134,80,0),(1659,6517,23,348,10,0),(1660,6517,24,137,149,0),(1661,7621,1,339,10,13830),(1662,7621,2,142,81,0),(1663,7621,3,311,0,0),(1664,7621,4,134,85,0),(1665,7621,5,348,10,0),(1666,7621,6,137,0,0),(1667,7621,7,339,10,13830),(1668,7621,8,142,81,0),(1669,7621,9,311,0,0),(1670,7621,10,134,85,0),(1671,7621,11,348,10,0),(1672,7621,12,137,100,0),(1673,7621,13,339,10,13830),(1674,7621,14,142,81,0),(1675,7621,15,311,0,0),(1676,7621,16,134,85,0),(1677,7621,17,348,10,0),(1678,7621,18,137,79,0),(1679,7621,19,339,10,13830),(1680,7621,20,142,81,0),(1681,7621,21,311,0,0),(1682,7621,22,134,85,0),(1683,7621,23,348,10,0),(1684,7621,24,137,149,0),(1806,8235,1,137,-40,0),(1812,8236,1,137,-40,0),(1687,8237,1,1,87,0),(1688,8238,1,1,116,0),(1689,8239,1,1,145,0),(1690,8305,1,1,174,0),(1691,8306,1,1,203,0),(1692,8307,1,1,232,0),(1693,8308,1,1,261,0),(1694,8309,1,1,290,0),(2517,120,1,278,500,32000),(2516,119,2,440,50,200),(2515,119,1,278,500,32000),(1701,440,1,278,550,50800),(1702,440,2,440,56,200),(1703,441,1,278,550,50800),(1704,441,2,440,58,200),(1705,442,1,278,550,50800),(1706,442,2,440,60,200),(1707,1053,1,278,600,65440),(1708,1053,2,440,61,200),(1709,1054,1,278,600,65440),(1710,1054,2,440,63,200),(1711,1055,1,278,600,65440),(1712,1055,2,440,65,200),(1713,4721,1,278,670,82600),(1714,4721,2,440,66,200),(1715,4722,1,278,670,82600),(1716,4722,2,440,68,200),(1717,4723,1,278,670,82600),(1718,4723,2,440,70,200),(1719,5554,1,278,750,102280),(1720,5554,2,440,71,200),(1721,5555,1,278,750,102280),(1722,5555,2,440,73,200),(1723,5556,1,278,750,102280),(1724,5556,2,440,75,200),(1725,7565,1,278,900,124480),(1726,7565,2,440,76,200),(1727,7566,1,278,900,124480),(1728,7566,2,440,78,200),(1729,7567,1,278,900,124480),(1730,7567,2,440,80,200),(1731,6023,1,278,900,132440),(1732,6023,2,440,82,200),(1733,6024,1,278,900,149200),(1734,6024,2,440,84,200),(1735,6025,1,278,900,149200),(1736,6025,2,440,86,200),(1737,4739,1,360,10,11023),(1738,4740,1,360,20,11023),(1739,4741,1,360,30,11023),(1740,5562,1,360,40,11023),(1741,5563,1,360,50,11023),(1742,5564,1,360,60,11023),(1743,7573,1,360,70,11023),(1744,7574,1,360,80,11023),(1745,7575,1,360,90,11023),(1746,8198,1,294,0,110),(1747,8199,1,294,0,120),(1748,8200,1,294,0,130),(1752,4733,1,294,11,100),(1753,4734,1,294,13,100),(1754,4735,1,294,15,100),(1755,7641,1,294,17,100),(1756,7642,1,294,19,100),(1757,7643,1,294,21,100),(1758,1592,1,341,10,0),(1759,1593,1,341,20,0),(1760,1594,1,341,30,0),(1761,1595,1,341,40,0),(1762,1596,1,341,50,0),(1763,4725,1,341,10,0),(1764,4726,1,341,20,0),(1765,4727,1,341,30,0),(1766,4728,1,341,40,0),(1767,4729,1,341,50,0),(1771,5560,1,341,40,0),(1772,5561,1,341,50,0),(1773,7568,1,341,10,0),(1774,7569,1,341,20,0),(1775,7570,1,341,30,0),(1776,7571,1,341,40,0),(1777,7572,1,341,50,0),(1778,12439,1,341,10,0),(1779,12440,1,341,20,0),(1780,12441,1,341,30,0),(1781,12442,1,341,40,0),(1782,12443,1,341,50,0),(2344,8232,1,128,5,5),(2350,8233,1,128,15,15),(2356,8234,1,128,25,25),(2362,8261,1,128,65,65),(1825,5534,1,266,1,0),(1827,5536,1,266,5,0),(1828,7659,1,266,1,0),(1829,7660,1,266,2,0),(1830,7661,1,266,3,0),(1831,1181,1,305,-20,0),(1832,1182,1,305,-40,0),(1833,1183,1,305,-60,0),(1834,1184,1,305,-80,0),(1835,1185,1,305,-100,0),(1836,1093,1,304,-20,0),(1837,1094,1,304,-40,0),(1838,1095,1,304,-60,0),(1839,1096,1,304,-80,0),(1840,1097,1,304,-100,0),(1841,8215,1,190,50,0),(1842,8216,1,190,100,0),(1843,8217,1,190,150,0),(1844,8218,1,190,200,0),(1845,8219,1,190,250,0),(1846,1036,1,189,4,0),(1847,1037,1,189,5,0),(1848,1039,1,189,6,0),(1849,5130,1,189,7,0),(1850,5131,1,189,8,0),(1851,5132,1,189,9,0),(1852,5133,1,189,10,0),(1853,5134,1,189,11,0),(1854,6080,1,189,12,0),(1855,6081,1,189,13,0),(1856,7604,1,189,14,0),(1857,7605,1,189,15,0),(1858,5516,1,320,1,0),(1859,5517,1,320,2,0),(1860,5518,1,320,3,0),(1861,12469,1,320,1,0),(1862,12470,1,320,2,0),(1863,12471,1,320,3,0),(1864,98,1,114,-4,0),(1865,99,1,114,-12,0),(1866,100,1,114,-20,0),(1867,738,1,114,-4,0),(1868,739,1,114,-12,0),(1869,740,1,114,-20,0),(1870,5317,1,114,-3,0),(1871,5318,1,114,-6,0),(1872,5319,1,114,-9,0),(1873,5628,1,114,-3,0),(1874,5629,1,114,-4,0),(1875,5630,1,114,-5,0),(1878,7585,1,114,-6,0),(1879,634,1,274,3,0),(1880,635,1,274,6,0),(1881,636,1,274,10,0),(1882,844,1,274,3,0),(1883,845,1,274,6,0),(1884,1319,1,274,2,0),(1885,1320,1,274,4,0),(1886,1321,1,274,6,0),(1887,210,1,302,50,50),(1888,210,2,385,99,0),(1889,211,1,302,100,100),(1890,211,2,385,99,0),(1891,212,1,302,200,200),(1892,212,2,385,99,0),(1918,164,5,127,10,10),(1919,164,6,137,82,0),(1920,164,7,127,2,2),(1921,164,8,137,152,0),(1922,164,9,143,3000,0),(1927,165,5,127,25,25),(1928,165,6,137,82,0),(1929,165,7,127,4,4),(1930,165,8,137,152,0),(1931,165,9,143,3000,0),(1936,166,5,127,50,50),(1937,166,6,137,82,0),(1938,166,7,127,6,6),(1939,166,8,137,152,0),(1940,166,9,143,3000,0),(1967,77,3,141,1,0),(1968,77,4,139,-6232,0),(1969,77,5,139,-6264,0),(1970,77,6,125,2,2),(1971,77,7,137,147,0),(1972,77,8,141,1,0),(1975,78,3,141,1,0),(1976,78,4,139,-6232,0),(1977,78,5,139,-6264,0),(1978,78,6,125,5,5),(1979,78,7,137,147,0),(1980,78,8,141,1,0),(1983,79,3,141,1,0),(1984,79,4,139,-6232,0),(1985,79,5,139,-6264,0),(1986,79,6,125,10,10),(1987,79,7,137,147,0),(1988,79,8,141,1,0),(1991,434,3,141,1,0),(1992,434,4,139,-6232,0),(1993,434,5,139,-6264,0),(1994,434,6,125,13,13),(1995,434,7,137,147,0),(1996,434,8,141,1,0),(1999,435,3,141,1,0),(2000,435,4,139,-6232,0),(2001,435,5,139,-6264,0),(2002,435,6,125,16,16),(2003,435,7,137,147,0),(2004,435,8,141,1,0),(2007,436,3,141,1,0),(2008,436,4,139,-6232,0),(2009,436,5,139,-6264,0),(2010,436,6,125,19,19),(2011,436,7,137,147,0),(2012,436,8,141,1,0),(2013,1083,1,125,22,13),(2014,1083,2,137,0,0),(2015,1083,3,141,1,0),(2016,1083,4,139,-6232,0),(2017,1083,5,139,-6264,0),(2018,1083,6,125,22,22),(2019,1083,7,137,147,0),(2020,1083,8,141,1,0),(2021,1084,1,125,25,16),(2022,1084,2,137,0,0),(2023,1084,3,141,1,0),(2024,1084,4,139,-6232,0),(2025,1084,5,139,-6264,0),(2026,1084,6,125,25,25),(2027,1084,7,137,147,0),(2028,1084,8,141,1,0),(2029,1085,1,125,28,19),(2030,1085,2,137,0,0),(2031,1085,3,141,1,0),(2032,1085,4,139,-6232,0),(2033,1085,5,139,-6264,0),(2034,1085,6,125,28,28),(2035,1085,7,137,147,0),(2036,1085,8,141,1,0),(2037,12449,1,125,31,31),(2038,12449,2,137,0,0),(2039,12449,3,141,1,0),(2040,12449,4,139,-6232,0),(2041,12449,5,139,-6264,0),(2042,12449,6,125,31,31),(2043,12449,7,137,147,0),(2044,12449,8,141,1,0),(2045,12450,1,125,34,34),(2046,12450,2,137,0,0),(2047,12450,3,141,1,0),(2048,12450,4,139,-6232,0),(2049,12450,5,139,-6264,0),(2050,12450,6,125,33,33),(2051,12450,7,137,147,0),(2052,12450,8,141,1,0),(2053,12451,1,125,37,37),(2054,12451,2,137,0,0),(2055,12451,3,141,1,0),(2056,12451,4,139,-6232,0),(2057,12451,5,139,-6264,0),(2058,12451,6,125,37,37),(2059,12451,7,137,147,0),(2060,12451,8,141,1,0),(2084,7501,1,172,1,0),(2085,7502,1,172,2,0),(2086,7503,1,172,3,0),(2087,7504,1,172,4,0),(2088,7505,1,172,5,0),(2089,12396,1,172,1,0),(2090,12397,1,172,2,0),(2091,12398,1,172,3,0),(2092,12399,1,172,4,0),(2093,12400,1,172,5,0),(2117,7506,1,259,1,0),(2118,7507,1,259,2,0),(2119,7508,1,259,3,0),(2120,7509,1,259,4,0),(2121,7510,1,259,5,0),(2122,12401,1,259,1,0),(2123,12402,1,259,2,0),(2124,12403,1,259,3,0),(2125,12404,1,259,4,0),(2126,12405,1,259,5,0),(2127,1389,1,328,50,0),(2128,1390,1,328,100,0),(2129,1391,1,328,150,0),(2130,1392,1,328,200,0),(2131,1393,1,328,250,0),(2132,4683,1,328,50,0),(2133,4684,1,328,100,0),(2134,4685,1,328,150,0),(2135,4686,1,328,200,0),(2136,4687,1,328,250,0),(2137,6523,1,328,50,0),(2138,6524,1,328,100,0),(2139,6525,1,328,150,0),(2140,6526,1,328,200,0),(2141,6527,1,328,250,0),(2142,7511,1,328,50,0),(2143,7512,1,328,100,0),(2144,7513,1,328,150,0),(2145,7514,1,328,200,0),(2146,7515,1,328,250,0),(2147,1056,1,317,1,0),(2148,1057,1,317,2,0),(2149,1058,1,317,3,0),(2150,1059,1,317,4,0),(2151,1060,1,317,5,0),(2157,6431,1,317,1,0),(2158,6432,1,317,2,0),(2159,6433,1,317,3,0),(2160,6434,1,317,4,0),(2161,6435,1,317,5,0),(2329,6119,1,69,500,0),(2343,7526,1,317,1,0),(2172,12406,1,69,500,0),(2173,12407,1,69,500,0),(2174,12408,1,69,500,0),(2175,12409,1,69,500,0),(2176,12410,1,69,500,0),(2177,7516,1,262,10,7),(2178,7516,2,262,10,8),(2179,7516,3,262,10,9),(2180,7516,4,262,10,10),(2181,7516,5,262,10,11),(2182,7517,1,262,20,7),(2183,7517,2,262,20,8),(2184,7517,3,262,20,9),(2185,7517,4,262,20,10),(2186,7517,5,262,20,11),(2187,7518,1,262,30,7),(2188,7518,2,262,30,8),(2189,7518,3,262,30,9),(2190,7518,4,262,30,10),(2191,7518,5,262,30,11),(2192,7519,1,262,40,7),(2193,7519,2,262,40,8),(2194,7519,3,262,40,9),(2195,7519,4,262,40,10),(2196,7519,5,262,40,11),(2197,7520,1,262,50,7),(2198,7520,2,262,50,8),(2199,7520,3,262,50,9),(2200,7520,4,262,50,10),(2201,7520,5,262,50,11),(2202,6521,1,327,1,0),(2203,6522,1,327,2,0),(2204,7539,1,327,1,0),(2205,7540,1,327,2,0),(2206,7541,1,327,3,0),(2207,7542,1,327,4,0),(2208,7543,1,327,5,0),(2209,5045,1,180,5,0),(2210,8228,1,378,5,22),(2211,8229,1,378,10,22),(2212,8230,1,378,15,22),(2213,7050,1,265,62,0),(2214,7051,1,265,64,0),(2215,7052,1,265,66,0),(2216,7053,1,265,67,0),(2217,7054,1,265,68,0),(2218,7055,1,265,69,0),(2219,7063,1,265,70,0),(2220,7064,1,265,71,0),(2221,7065,1,265,72,0),(2222,7622,1,265,74,0),(2223,7623,1,265,76,0),(2224,7624,1,265,79,0),(2300,581,9,254,0,0),(2301,581,10,254,0,0),(2302,581,11,254,0,0),(2303,582,1,267,1,4),(2304,582,2,267,1,8),(2305,582,3,267,1,5),(2306,582,4,267,1,2),(2307,582,5,267,1,7),(2308,582,6,267,1,6),(2309,582,7,267,1,9),(2310,582,8,267,1,12),(2311,582,9,267,1,11),(2312,582,10,267,1,28),(2313,582,11,267,1,1),(2314,1086,1,274,2,0),(2315,1087,1,274,4,0),(2316,1088,1,274,6,0),(2330,6120,1,69,500,0),(2331,6121,1,69,500,0),(2332,6122,1,69,500,0),(2333,6123,1,69,500,0),(2334,7527,1,69,500,0),(2335,7528,1,69,500,0),(2336,7529,1,69,500,0),(2337,7530,1,69,500,0),(2338,7531,1,69,500,0),(2339,7522,1,317,1,0),(2340,7523,1,317,1,0),(2341,7524,1,317,1,0),(2342,7525,1,317,1,0),(2345,8232,2,138,1,0),(2346,8232,3,140,1,0),(2347,8232,4,311,0,0),(2348,8232,5,411,66434,0),(2349,8232,6,137,-40,0),(2351,8233,2,138,1,0),(2352,8233,3,140,1,0),(2353,8233,4,311,0,0),(2354,8233,5,411,66434,0),(2355,8233,6,137,-40,0),(2357,8234,2,138,1,0),(2358,8234,3,140,1,0),(2359,8234,4,311,0,0),(2360,8234,5,411,66434,0),(2361,8234,6,137,-40,0),(2363,8261,2,138,1,0),(2364,8261,3,140,1,0),(2365,8261,4,311,0,0),(2366,8261,5,411,66434,0),(2367,8261,6,137,-40,0),(2368,1230,1,313,15,0),(2369,1231,1,313,20,0),(2370,1232,1,313,25,0),(2371,5000,1,313,50,0),(2372,5001,1,313,75,0),(2373,5002,1,313,100,0),(2374,997,1,331,5,0),(2375,998,1,331,15,0),(2376,999,1,331,25,0),(2377,226,1,272,2,0),(2378,227,1,272,3,0),(2379,275,1,260,2,50),(2380,276,1,260,4,50),(2381,277,1,260,6,50),(2382,701,1,260,8,50),(2383,213,1,260,2,23),(2384,213,2,260,2,24),(2385,213,3,260,2,25),(2386,213,4,260,2,26),(2387,214,1,260,4,23),(2388,214,2,260,4,24),(2389,214,3,260,4,25),(2390,214,4,260,4,26),(2391,215,1,260,6,23),(2392,215,2,260,6,24),(2393,215,3,260,6,25),(2394,215,4,260,6,26),(2395,700,1,260,2,23),(2396,700,2,260,2,24),(2397,700,3,260,2,25),(2398,700,4,260,2,26),(2399,695,1,247,10,53),(2400,696,1,247,20,53),(2401,697,1,247,30,53),(2402,698,1,247,40,53),(2403,699,1,247,50,53),(2404,762,1,247,10,53),(2405,764,1,247,30,53),(2406,763,1,247,20,53),(2407,765,1,247,40,53),(2408,766,1,247,50,53),(2409,412,1,263,1,0),(2410,413,1,263,2,0),(2411,414,1,263,3,0),(2412,415,1,263,4,0),(2413,416,1,263,5,0),(2414,417,1,263,6,0),(2415,68,1,233,110,0),(2416,69,1,233,125,0),(2417,70,1,233,150,0),(2418,5535,1,266,3,0),(228,367,1,46,12,0),(2419,858,1,220,50,10),(2420,859,1,220,75,10),(2437,606,1,285,20,0),(2438,607,1,285,40,0),(2439,608,1,285,60,0),(2440,609,1,285,80,0),(2441,610,1,285,100,0),(2442,895,1,59,-3,0),(2443,896,1,59,-6,0),(2444,897,1,59,-9,0),(2445,898,1,59,-12,0),(2446,899,1,59,-15,0),(2447,571,1,261,1,0),(2448,572,1,261,2,0),(2449,573,1,261,3,0),(2450,707,1,261,1,0),(2451,708,1,261,2,0),(2452,709,1,261,3,0),(2453,86,1,128,5,5),(2454,86,2,138,1,0),(2455,86,3,140,1,0),(2456,86,4,139,-2741,0),(2457,86,5,139,-16843,0),(2458,86,6,385,-16192,0),(2459,87,1,128,15,15),(2460,87,2,138,1,0),(2461,87,3,140,1,0),(2462,87,4,139,-2741,0),(2463,87,5,139,-16843,0),(2464,87,6,385,-16192,0),(2465,88,1,128,30,30),(2466,88,2,138,1,0),(2467,88,3,140,1,0),(2468,88,4,139,-2741,0),(2469,88,5,139,-16843,0),(2470,88,6,385,-16192,0),(2471,266,1,128,50,50),(2472,266,2,138,1,0),(2473,266,3,140,1,0),(2474,266,4,139,-2741,0),(2475,266,5,139,-16843,0),(2476,266,6,385,-16192,0),(2477,781,1,287,1,1),(2478,781,2,137,31,0),(2479,781,3,136,5,0),(2480,230,1,275,10,0),(2481,231,1,275,25,0),(2482,232,1,275,50,0),(2483,539,1,275,15,0),(2484,540,1,275,25,0),(2485,541,1,275,35,0),(2489,589,1,303,200,0),(2490,589,2,139,2766,0),(2492,590,2,139,2766,0),(2494,591,2,139,2766,0),(2495,893,1,303,800,0),(2496,893,2,139,2766,0),(2497,894,1,303,1000,0),(2498,894,2,139,2766,0),(2499,560,1,225,15,0),(2500,561,1,177,3,0),(2501,888,1,250,10,0),(2502,889,1,250,20,0),(2503,890,1,250,30,0),(2504,891,1,250,40,0),(2505,892,1,250,50,0),(2506,180,1,241,95,0),(2507,644,1,217,0,32000),(2508,644,2,346,46,0),(2509,1604,1,439,0,32000),(2510,1604,2,345,48,0),(2511,1605,1,439,0,32000),(2512,1605,2,345,51,0),(2513,1606,1,439,0,32000),(2514,1606,2,345,53,0),(2518,120,2,440,52,200),(2519,121,1,278,500,32000),(2520,121,2,440,54,200),(2521,158,1,238,1,0),(2522,818,1,279,17,0),(2523,819,1,279,19,0),(2524,691,1,248,100,0),(2525,4698,1,362,1,0),(2526,6545,1,362,1,0); + +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,'Shroud of the Faceless'),(402,61,1,'Bertoxxulous\' Gift'),(403,61,1,'Bertoxxulous\' Gift'),(404,62,1,'Bertoxxulous\' Gift'),(405,62,1,'Bertoxxulous\' Gift'),(406,63,1,'Bertoxxulous\' Gift'),(407,63,1,'Bertoxxulous\' Gift'),(408,64,1,'Bertoxxulous\' Gift'),(409,64,1,'Bertoxxulous\' Gift'),(410,65,1,'Bertoxxulous\' Gift'),(411,65,1,'Bertoxxulous\' Gift'),(418,61,2,'Planar Power'),(419,62,2,'Planar Power'),(420,63,2,'Planar Power'),(421,64,2,'Planar Power'),(422,65,2,'Planar Power'),(423,61,3,'Planar Durability'),(424,63,3,'Planar Durability'),(425,65,3,'Planar Durability'),(426,61,3,'Innate Enlightenment'),(427,62,3,'Innate Enlightenment'),(428,63,3,'Innate Enlightenment'),(429,64,3,'Innate Enlightenment'),(430,65,3,'Innate Enlightenment'),(434,62,2,'Advanced Healing Adept'),(435,63,4,'Advanced Healing Adept'),(436,64,6,'Advanced Healing Adept'),(437,62,2,'Advanced Healing Gift'),(438,63,4,'Advanced Healing Gift'),(439,64,6,'Advanced Healing Gift'),(440,62,2,'Coup de Grace'),(441,63,2,'Coup de Grace'),(442,64,2,'Coup de Grace'),(443,62,3,'Fury of the Ages'),(444,63,3,'Fury of the Ages'),(445,64,3,'Fury of the Ages'),(446,62,3,'Mastery of the Past'),(447,63,3,'Mastery of the Past'),(448,64,3,'Mastery of the Past'),(449,61,3,'Lightning Reflexes'),(7539,80,5,'Mystical Attuning III'),(1025,65,5,'Mystical Attuning'),(1024,65,5,'Mystical Attuning'),(1023,60,5,'Mystical Attuning'),(7540,85,5,'Mystical Attuning III'),(7541,85,5,'Mystical Attuning III'),(459,61,2,'Radiant Cure'),(460,63,4,'Radiant Cure'),(461,65,6,'Radiant Cure'),(462,63,2,'Hastened Divinity'),(463,64,2,'Hastened Divinity'),(464,65,2,'Hastened Divinity'),(468,63,2,'Hastened Purification of the Soul'),(469,64,2,'Hastened Purification of the Soul'),(470,65,2,'Hastened Purification of the Soul'),(471,63,2,'Hastened Gathering'),(472,64,2,'Hastened Gathering'),(473,65,2,'Hastened Gathering'),(474,63,2,'Hastened Rabidity'),(475,64,2,'Hastened Rabidity'),(476,65,2,'Hastened Rabidity'),(477,63,2,'Hastened Exodus'),(478,64,2,'Hastened Exodus'),(479,65,2,'Hastened Exodus'),(480,63,2,'Hastened Root'),(481,64,2,'Hastened Root'),(482,65,2,'Hastened Root'),(483,63,2,'Hastened Mending'),(484,64,2,'Hastened Mending'),(485,65,2,'Hastened Mending'),(486,63,2,'Hastened Banishment'),(487,64,4,'Hastened Banishment'),(488,65,6,'Hastened Banishment'),(489,63,2,'Hastened Instigation'),(490,64,2,'Hastened Instigation'),(491,65,2,'Hastened Instigation'),(492,63,2,'Furious Rampage'),(493,64,2,'Furious Rampage'),(494,65,2,'Furious Rampage'),(495,63,2,'Hastened Purification of the Body'),(496,64,2,'Hastened Purification of the Body'),(497,65,2,'Hastened Purification of the Body'),(498,63,2,'Hasty Exit'),(499,64,2,'Hasty Exit'),(500,65,2,'Hasty Exit'),(501,63,2,'Hastened Purification'),(502,64,2,'Hastened Purification'),(503,65,2,'Hastened Purification'),(504,62,3,'Flash of Steel'),(505,63,3,'Flash of Steel'),(506,64,3,'Flash of Steel'),(507,61,3,'Divine Arbitration'),(508,63,3,'Divine Arbitration'),(509,65,3,'Divine Arbitration'),(510,61,3,'Wrath of the Wild'),(511,63,3,'Wrath of the Wild'),(512,65,3,'Wrath of the Wild'),(513,61,3,'Virulent Paralysis'),(514,63,3,'Virulent Paralysis'),(515,65,3,'Virulent Paralysis'),(517,61,3,'Eldritch Rune'),(518,63,3,'Eldritch Rune'),(519,65,3,'Eldritch Rune'),(520,61,3,'Servant of Ro'),(521,63,3,'Servant of Ro'),(522,65,3,'Servant of Ro'),(523,61,3,'Wake the Dead'),(524,63,2,'Wake the Dead'),(525,65,1,'Wake the Dead'),(526,62,5,'Suspended Minion'),(527,64,3,'Suspended Minion'),(528,61,4,'Spirit Call'),(529,63,3,'Spirit Call'),(530,65,2,'Spirit Call'),(531,63,3,'Celestial Renewal'),(532,64,6,'Celestial Renewal'),(534,61,3,'Hand of Piety'),(535,63,3,'Hand of Piety'),(536,65,3,'Hand of Piety'),(537,63,3,'Mithaniel\'s Binding'),(538,64,3,'Mithaniel\'s Binding'),(539,63,2,'Mending of the Tranquil'),(540,64,4,'Mending of the Tranquil'),(541,65,6,'Mending of the Tranquil'),(542,63,2,'Raging Flurry'),(543,64,4,'Raging Flurry'),(544,65,6,'Raging Flurry'),(545,61,3,'Guardian of the Forest'),(546,63,3,'Guardian of the Forest'),(547,65,3,'Guradian of the Forest'),(548,61,4,'Spirit of the Wood'),(549,63,3,'Spirit of the Wood'),(550,65,2,'Spirit of the Wood'),(551,61,2,'Bestial Frenzy'),(552,62,2,'Bestial Frenzy'),(553,63,2,'Bestial Frenzy'),(554,64,2,'Bestial Frenzy'),(555,65,2,'Bestial Frenzy'),(556,61,2,'Harmonious Attack'),(557,62,2,'Harmonious Attack'),(558,63,2,'Harmonious Attack'),(559,64,2,'Harmonious Attack'),(560,65,2,'Harmonious Attack'),(561,61,2,'Knight\'s Advantage'),(562,63,4,'Knight\'s Advantage'),(563,65,6,'Knight\'s Advantage'),(564,61,3,'Ferocity'),(565,63,3,'Ferocity'),(566,65,3,'Ferocity'),(568,63,2,'Sionachie\'s Crescendo'),(569,64,2,'Sionachie\'s Crescendo'),(570,65,2,'Sionachie\'s Crescendo'),(571,63,2,'Ayonae\'s Tutelage'),(572,64,2,'Ayonae\'s Tutelage'),(573,65,2,'Ayonae\'s Tutelage'),(574,61,3,'Feigned Minion'),(575,63,3,'Feigned Minion'),(576,65,3,'Feigned Minion'),(577,61,2,'Unfailing Divinity'),(578,63,4,'Unfailing Divinity'),(579,65,6,'Unfailing Divinity'),(580,61,4,'Animation Empathy'),(581,63,3,'Animation Empathy'),(582,65,2,'Animation Empathy'),(583,63,2,'Rush to Judgment'),(584,64,2,'Rush to Judgment'),(585,65,2,'Rush to Judgment'),(586,61,2,'Living Shield'),(587,63,4,'Living Shield'),(588,65,6,'Living Shield'),(589,61,3,'Consumption of the Soul'),(590,63,3,'Consumption of the Soul'),(591,65,3,'Consumption of the Soul'),(596,61,2,'Touch of the Wicked'),(597,63,2,'Touch of the Wicked'),(598,65,2,'Touch of the Wicked'),(599,61,2,'Punishing Blade'),(600,63,4,'Punishing Blade'),(601,65,6,'Punishing Blade'),(602,61,3,'Speed of the Knight'),(603,63,3,'Speed of the Knight'),(604,65,3,'Speed of the Knight'),(606,61,1,'Nimble Evasion'),(607,62,1,'Nimble Evasion'),(608,63,1,'Nimble Evasion'),(609,64,1,'Nimble Evasion'),(610,65,1,'Nimble Evasion'),(616,63,5,'Host of the Elements'),(617,64,4,'Host of the Elements'),(618,65,3,'Host of the Elements'),(619,61,3,'Call of Xuzl'),(620,63,2,'Call of Xuzl'),(621,65,1,'Call of Xuzl'),(622,61,3,'Hastened Stealth'),(623,62,3,'Hastened Stealth'),(624,63,3,'Hastened Stealth'),(625,61,1,'Ingenuity'),(626,63,2,'Ingenuity'),(627,65,3,'Ingenuity'),(628,62,2,'Fleet of Foot'),(629,64,4,'Fleet of Foot'),(631,61,2,'Tactical Mastery'),(632,63,3,'Tactical Mastery'),(633,65,4,'Tactical Mastery'),(646,61,2,'Unholy Touch'),(647,63,4,'Unholy Touch'),(648,65,6,'Unholy Touch'),(652,61,2,'Stalwart Endurance'),(1022,55,5,'Mystical Attuning'),(1021,51,5,'Mystical Attuning'),(7542,85,5,'Mystical Attuning III'),(7543,85,5,'Mystical Attuning III'); + +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,0),(131,'Celestial Regeneration',5,1,13578,13579,13576,13577,3,2740,80,3,4,4320,4,0,59,0,3,4294967295,3,0,3,131,1,0,0,531,0),(132,'Bestow Divine Aura',6,1,13582,13583,13580,13581,3,2741,4294967295,0,5,8640,4,0,59,0,3,4294967295,3,0,1,132,1,0,0,0,0),(133,'Turn Undead',3,3,13586,13587,13584,13585,3,2776,4294967295,0,6,4320,4,0,59,3,3,4294967295,3,0,3,133,1,0,0,0,0),(136,'Purify Soul',5,1,13590,4294967295,13588,13589,3,2742,4294967295,0,7,4320,4,0,59,0,3,4294967295,3,0,1,136,1,0,0,0,0),(137,'Quick Evacuation',3,3,4294967295,4294967295,13592,13593,3,4294967295,4294967295,0,0,0,4160,0,59,3,3,4294967295,3,0,3,137,1,0,0,0,0),(140,'Exodus',6,1,13596,4294967295,13594,13595,3,2771,4294967295,0,3,4320,4160,0,59,0,3,4294967295,3,0,1,140,1,0,0,0,0),(141,'Quick Damage',3,3,4294967295,4294967295,13598,13599,3,4294967295,92,3,0,0,12352,0,59,3,3,4294967295,3,0,3,141,1,0,0,0,0),(144,'Enhanced Root',5,1,4294967295,4294967295,13600,13601,3,4294967295,4294967295,0,0,0,64,0,59,0,3,4294967295,3,0,1,144,1,0,0,0,0),(145,'Dire Charm',9,1,13604,13605,13602,13603,3,4294967295,4294967295,0,15,4320,18496,0,59,0,3,4294967295,3,0,1,145,1,0,0,0,0),(146,'Cannibalization',5,1,13608,13609,13606,13607,3,2749,89,3,2,180,1024,0,59,0,3,4294967295,3,0,1,146,1,0,0,0,0),(147,'Quick Buff',3,3,4294967295,4294967295,13610,13611,3,4294967295,4294967295,0,0,0,17408,0,59,3,3,4294967295,3,0,3,147,1,0,0,0,0),(150,'Alchemy Mastery',3,3,4294967295,4294967295,13612,13613,3,4294967295,4294967295,0,0,0,1024,0,59,3,3,4294967295,3,0,3,150,1,0,0,0,0),(153,'Rabid Bear',5,1,13616,13617,13614,13615,3,2750,4294967295,0,3,7200,1024,0,59,0,3,4294967295,3,0,1,153,1,0,0,0,0),(154,'Mana Burn',5,1,13620,13621,13618,13619,3,2751,89,3,7,7200,4096,0,59,0,3,4294967295,3,0,1,154,1,0,0,0,0),(155,'Improved Familiar',9,1,13624,13625,13622,13623,3,2758,0,0,8,420,4096,0,59,0,3,4294967295,3,0,2,155,1,0,0,533,0),(156,'Nexus Gate',6,1,13628,13629,13626,13627,3,2734,4294967295,0,2,4320,4096,0,59,0,3,4294967295,3,0,1,156,1,0,0,0,0),(158,'Permanent Illusion',3,1,4294967295,4294967295,13630,13631,3,4294967295,4294967295,0,0,0,16384,0,59,0,3,4294967295,3,0,1,158,1,0,0,0,0),(159,'Jewelcraft Mastery',3,3,4294967295,4294967295,13632,13633,3,4294967295,4294967295,0,0,0,16384,0,59,3,3,4294967295,3,0,3,159,1,0,0,0,0),(162,'Gather Mana',5,1,13636,13637,13634,13635,3,2753,89,3,3,8640,16384,0,59,0,3,4294967295,3,0,1,162,1,0,0,0,0),(163,'Mend Companion',5,1,13640,13641,13638,13639,3,2752,4294967295,0,2,2160,43008,0,59,0,3,4294967295,3,0,1,163,1,0,0,0,0),(164,'Quick Summoning',3,3,4294967295,4294967295,13642,13643,3,4294967295,4294967295,0,0,0,8192,0,59,3,3,4294967295,3,0,3,164,1,0,0,0,0),(167,'Frenzied Burnout',6,1,13646,13647,13644,13645,3,2754,4294967295,0,14,900,8192,0,59,0,3,4294967295,3,0,1,167,1,0,0,0,0),(168,'Elemental Form: Fire',3,3,13650,13651,13648,13649,3,2795,4294967295,0,4,900,8192,0,59,3,3,4294967295,3,0,3,168,1,0,0,0,0),(171,'Elemental Form: Water',3,3,13654,13655,13652,13653,3,2798,4294967295,0,4,900,8192,0,59,3,3,4294967295,3,0,3,171,1,0,0,0,0),(174,'Elemental Form: Earth',3,3,13658,13659,13656,13657,3,2792,4294967295,0,4,900,8192,0,59,3,3,4294967295,3,0,3,174,1,0,0,0,0),(177,'Elemental Form: Air',3,3,13662,13663,13660,13661,3,2789,4294967295,0,4,900,8192,0,59,3,3,4294967295,3,0,3,177,1,0,0,0,0),(180,'Improved Reclaim Energy',3,1,4294967295,4294967295,13664,13665,3,4294967295,4294967295,0,0,0,8192,0,59,0,3,4294967295,3,0,1,180,1,0,0,0,0),(181,'Turn Summoned',3,3,13668,13669,13666,13667,3,8133,4294967295,0,5,300,8192,0,59,3,3,4294967295,3,0,3,181,1,0,0,0,0),(182,'Elemental Pact',5,1,4294967295,4294967295,13670,13671,3,4294967295,4294967295,0,0,0,8192,0,59,0,3,4294967295,3,0,1,182,1,0,0,0,0),(183,'Lifeburn',9,1,13674,13675,13672,13673,3,2755,4294967295,0,4,8640,2048,0,59,0,3,4294967295,3,0,1,183,1,0,0,0,0),(184,'Dead Mesmerization',3,1,13678,13679,13676,13677,3,2756,4294967295,0,5,4320,2048,0,59,0,3,4294967295,3,0,1,184,1,0,0,0,0),(185,'Fearstorm',5,1,13682,13683,13680,13681,3,2757,4294967295,0,6,4320,2048,0,59,0,3,4294967295,3,0,1,185,1,0,0,0,0),(186,'Flesh to Bone',3,1,13686,13687,13684,13685,3,2772,4294967295,0,7,7,2048,0,59,0,3,4294967295,3,0,1,186,1,0,0,0,0),(187,'Call to Corpse',6,1,13690,13691,13688,13689,3,2764,4294967295,0,8,4320,2048,0,59,0,3,4294967295,3,0,1,187,1,0,0,0,0),(188,'Divine Stun',9,1,13694,13695,13692,13693,3,2190,4294967295,0,9,30,8,0,59,0,3,4294967295,3,0,1,188,1,0,0,0,0),(189,'Improved Lay on Hands',5,1,4294967295,4294967295,13696,13697,3,4294967295,4294967295,0,0,0,8,0,59,0,3,4294967295,3,0,1,189,1,0,0,0,0),(190,'Slay Undead',3,3,4294967295,4294967295,13698,13699,3,4294967295,113,3,0,0,8,0,59,3,3,4294967295,3,0,6,190,1,0,0,1524,0),(193,'Act of Valor',3,1,13702,13703,13700,13701,3,2775,4294967295,0,3,4320,8,0,59,0,3,4294967295,3,0,1,193,1,0,0,0,0),(194,'Holy Steed',5,1,13706,13707,13704,13705,3,2874,4294967295,0,0,1,8,0,59,0,3,4294967295,3,0,1,194,1,0,0,0,0),(195,'Fearless',6,1,4294967295,4294967295,13708,13709,3,4294967295,116,3,0,0,40,0,59,0,3,4294967295,3,0,1,195,1,0,0,0,0),(196,'2 Hand Bash',6,1,4294967295,4294967295,13710,13711,3,4294967295,4294967295,0,0,0,40,0,59,0,3,4294967295,3,0,1,196,1,0,0,0,0),(197,'Innate Camouflage',5,1,13714,13715,13712,13713,3,2765,4294967295,0,2,7,80,0,59,0,3,4294967295,3,0,1,197,1,0,0,0,0),(198,'Ambidexterity',9,1,4294967295,4294967295,13716,13717,3,4294967295,4294967295,0,0,0,33682,0,59,0,3,4294967295,3,0,1,198,1,0,0,0,0),(199,'Archery Mastery',3,3,4294967295,4294967295,13718,13719,3,4294967295,4294967295,0,0,0,16,0,59,3,3,4294967295,3,0,3,199,1,0,0,0,0),(205,'Endless Quiver',9,1,4294967295,4294967295,13722,13723,3,4294967295,4294967295,0,0,0,16,0,59,0,3,4294967295,3,0,1,205,1,0,0,0,0),(206,'Unholy Steed',5,1,13726,13727,13724,13725,3,2875,4294967295,0,0,1,32,0,59,0,3,4294967295,3,0,1,206,1,0,0,0,0),(207,'Improved Harm Touch',6,1,13730,13731,13728,13729,3,2821,4294967295,0,2,4320,32,0,59,0,3,4294967295,3,0,1,207,1,0,0,0,0),(208,'Leech Touch',6,1,13734,13735,13732,13733,3,2774,4294967295,0,2,4320,32,0,59,0,3,4294967295,3,0,1,208,1,0,0,0,0),(210,'Soul Abrasion',3,3,4294967295,4294967295,13740,13741,3,4294967295,4294967295,0,0,0,32,0,59,3,3,4294967295,3,0,3,210,1,0,0,0,0),(213,'Instrument Mastery',3,3,4294967295,4294967295,13742,13743,3,4294967295,4294967295,0,0,0,256,0,59,3,3,4294967295,3,0,4,213,1,0,0,700,0),(225,'Jam Fest',3,3,4294967295,4294967295,13750,13751,3,4294967295,4294967295,0,0,0,256,0,59,3,3,4294967295,3,0,3,225,1,0,0,0,0),(230,'Critical Mend',3,3,4294967295,4294967295,13757,13758,3,4294967295,74,3,0,0,128,0,59,3,3,4294967295,3,0,6,230,1,0,0,539,0),(233,'Purify Body',9,1,13761,13762,13759,13760,3,2742,4294967295,0,1,1800,128,0,59,0,3,4294967295,3,0,1,233,1,0,0,0,0),(237,'Rapid Feign',3,3,4294967295,4294967295,13765,13766,3,4294967295,4294967295,0,0,0,128,0,59,3,3,4294967295,3,0,3,237,1,0,0,0,0),(240,'Return Kick',3,3,4294967295,4294967295,13767,13768,3,4294967295,0,0,0,0,128,0,59,3,3,4294967295,3,0,3,240,1,0,0,0,0),(243,'Escape',9,1,13771,4294967295,13769,13770,3,5244,4294967295,0,1,4320,512,0,59,0,3,4294967295,3,0,1,243,1,0,0,0,0),(244,'Poison Mastery',3,3,4294967295,4294967295,13773,13774,3,4294967295,4294967295,0,0,0,512,0,59,3,3,6,3,0,3,244,1,0,0,0,0),(247,'Double Riposte',3,3,4294967295,4294967295,13775,13776,3,4294967295,4294967295,0,0,0,33466,1,59,3,3,4294967295,3,0,6,247,1,0,0,504,0),(254,'Purge Poison',9,1,13783,13784,13781,13782,3,5232,4294967295,0,12,4320,512,0,59,0,3,4294967295,3,0,1,254,1,0,0,0,0),(255,'Flurry',3,3,4294967295,4294967295,13785,13786,3,4294967295,113,3,0,0,2,1,59,3,3,4294967295,3,0,12,255,1,0,0,542,0),(258,'Rampage',5,1,13789,4294967295,13787,13788,3,5233,4294967295,0,1,600,2,1,59,0,3,4294967295,3,0,1,258,1,0,0,0,0),(259,'Area Taunt',5,1,13793,13794,13791,13792,3,0,4294967295,0,2,900,2,0,59,0,3,4294967295,3,0,1,259,1,0,0,0,0),(260,'Warcry',3,3,13797,4294967295,13795,13796,3,5229,116,3,3,2160,2,0,59,3,3,4294967295,3,0,3,260,1,0,0,0,0),(263,'Bandage Wound',3,3,4294967295,4294967295,13799,13800,3,4294967295,74,3,0,0,2,1,59,3,3,4294967295,3,0,6,74,1,0,3,0,0),(266,'Spell Casting Reinforcement Mastery',8,1,4294967295,4294967295,13801,13802,3,4294967295,86,3,0,0,17476,0,59,0,3,4294967295,3,0,1,266,1,0,0,0,0),(267,'Spell Casting Fury Mastery',3,3,4294967295,4294967295,13803,13804,3,4294967295,92,3,0,0,4096,0,59,3,3,4294967295,2,0,8,267,1,0,0,640,0),(270,'Extended Notes',3,3,4294967295,4294967295,13805,13806,3,4294967295,4294967295,0,0,0,256,0,59,3,3,4294967295,3,0,3,270,1,0,0,0,0),(273,'Dragon Punch',5,1,4294967295,4294967295,13807,13808,3,4294967295,4294967295,0,0,0,128,0,59,0,3,4294967295,3,0,1,273,1,0,0,0,0),(274,'Strong Root',5,1,13815,13816,13813,13814,3,2748,4294967295,0,4,4320,4096,0,59,0,3,4294967295,3,0,1,274,1,0,0,0,0),(275,'Singing Mastery',3,3,4294967295,4294967295,13817,13818,3,4294967295,4294967295,0,0,0,256,0,59,3,3,4294967295,3,0,4,275,1,0,0,701,0),(278,'Body and Mind Rejuvenation',5,1,4294967295,4294967295,13819,13820,3,4294967295,4294967295,0,0,0,33080,0,59,0,3,4294967295,3,0,1,278,1,0,0,0,0),(279,'Physical Enhancement',5,1,4294967295,4294967295,13821,13822,3,4294967295,4294967295,0,0,0,33722,1,59,0,3,4294967295,3,0,1,279,1,0,0,0,0),(280,'Adv. Trap Negotiation',3,3,4294967295,4294967295,13823,13824,3,4294967295,4294967295,0,0,0,768,0,59,3,3,4294967295,3,0,3,280,1,0,0,0,0),(283,'Acrobatics',3,3,4294967295,4294967295,13825,13826,3,4294967295,4294967295,0,0,0,896,0,59,3,3,4294967295,3,0,3,283,1,0,0,0,0),(286,'Scribble Notes',3,1,4294967295,4294967295,13827,13828,3,4294967295,4294967295,0,0,0,256,0,59,0,3,4294967295,3,0,1,286,1,0,0,0,0),(287,'Chaotic Stab',6,1,4294967295,4294967295,13829,13830,3,4294967295,4294967295,0,0,0,512,0,59,0,3,4294967295,3,0,1,287,1,0,0,0,0),(288,'Pet Discipline',6,1,4294967295,4294967295,13831,13832,3,4294967295,4294967295,0,0,0,44064,0,59,0,3,4294967295,2,0,3,288,1,0,0,1129,0),(289,'Hobble of Spirits',5,1,3300,3301,3298,3299,3,3290,4294967295,0,3,300,32768,0,59,0,3,4294967295,3,0,1,289,1,0,0,0,0),(290,'Frenzy of Spirit',4,1,3304,3305,3302,3303,3,3289,4294967295,0,4,720,32768,0,59,0,3,4294967295,3,0,2,290,1,0,0,0,0),(291,'Paragon of Spirit',6,1,3308,3309,3306,3307,3,3291,4294967295,0,5,900,32768,0,59,0,3,4294967295,3,0,1,291,1,0,0,0,0),(292,'Advanced Innate Strength',1,10,4294967295,4294967295,5546,5550,4,4294967295,2,5,0,0,65534,1,61,0,4,4294967295,1,0,15,2,1,0,5,0,0),(302,'Advanced Innate Stamina',1,10,4294967295,4294967295,5551,5552,4,4294967295,7,5,0,0,65534,1,61,0,4,4294967295,1,0,15,7,1,0,5,0,0),(312,'Advanced Innate Agility',1,10,4294967295,4294967295,5553,5554,4,4294967295,12,5,0,0,65534,1,61,0,4,4294967295,1,0,15,12,1,0,5,0,0),(322,'Advanced Innate Dexterity',1,10,4294967295,4294967295,5555,5556,4,4294967295,17,5,0,0,65534,1,61,0,4,4294967295,1,0,15,17,1,0,5,0,0),(332,'Advanced Innate Intelligence',1,10,4294967295,4294967295,5557,5558,4,4294967295,22,5,0,0,65534,1,61,0,4,4294967295,1,0,15,22,1,0,5,0,0),(342,'Advanced Innate Wisdom',1,10,4294967295,4294967295,5559,5560,4,4294967295,27,5,0,0,65534,1,61,0,4,4294967295,1,0,15,27,1,0,5,0,0),(352,'Advanced Innate Charisma',1,10,4294967295,4294967295,5564,5565,4,4294967295,32,5,0,0,65534,1,61,0,4,4294967295,1,0,15,32,1,0,5,0,0),(362,'Warding of Solusek',1,10,4294967295,4294967295,5568,5569,4,4294967295,37,5,0,0,65534,1,61,0,4,4294967295,1,0,15,37,1,0,5,0,0),(372,'Blessing of E\'ci',1,10,4294967295,4294967295,5570,5571,4,4294967295,42,5,0,0,65534,1,61,0,4,4294967295,1,0,15,42,1,0,5,0,0),(382,'Marr\'s Protection',1,10,4294967295,4294967295,5566,5567,4,4294967295,47,5,0,0,65534,1,61,0,4,4294967295,1,0,15,47,1,0,5,0,0),(392,'Shroud of The Faceless',1,10,4294967295,4294967295,5572,5573,4,4294967295,52,5,0,0,65534,1,61,0,4,4294967295,1,0,15,52,1,0,5,0,0),(402,'Bertoxxulous\' Gift',1,10,4294967295,4294967295,5574,5575,4,4294967295,57,5,0,0,65534,1,61,0,4,4294967295,1,0,15,57,1,0,5,0,0),(412,'New Tanaan Crafting Mastery',3,6,4294967295,4294967295,3286,3287,1,4294967295,0,0,0,0,65534,1,51,0,1,6,1,0,6,412,1,0,0,0,0),(418,'Planar Power',2,5,4294967295,4294967295,5547,5548,4,4294967295,0,0,0,0,65534,1,61,0,4,4294967295,1,0,20,418,1,0,0,1001,0),(423,'Planar Durability',3,3,4294967295,4294967295,5549,5560,4,4294967295,0,0,0,0,42,1,61,0,4,4294967295,1,0,3,423,1,0,0,0,0),(426,'Innate Enlightenment',3,5,4294967295,4294967295,5561,5562,4,4294967295,0,0,0,0,31812,0,61,0,4,4294967295,1,0,5,426,1,0,0,0,0),(434,'Advanced Healing Adept',2,3,4294967295,4294967295,5578,5579,5,4294967295,77,3,0,0,33884,0,62,2,4,4294967295,2,0,12,77,1,0,3,1083,0),(437,'Advanced Healing Gift',2,3,4294967295,4294967295,5580,5581,5,4294967295,80,3,0,0,33884,0,62,2,4,4294967295,2,0,21,80,1,0,3,1086,0),(440,'Coup de Grace',2,3,4294967295,4294967295,5618,5619,5,4294967295,119,3,0,0,33722,1,62,0,4,4294967295,2,0,21,119,1,0,3,1053,0),(443,'Fury of the Ages',3,3,4294967295,4294967295,5620,5621,5,4294967295,113,3,0,0,33722,1,62,0,4,4294967295,2,0,6,113,1,0,3,0,0),(446,'Mastery of the Past',3,3,4294967295,4294967295,446,446,5,4294967295,101,3,0,0,31008,0,62,0,4,4294967295,2,0,3,446,1,0,0,7050,0),(449,'Lightning Reflexes',3,5,4294967295,4294967295,5636,5637,5,4294967295,125,3,0,0,65534,1,61,0,4,4294967295,1,0,33,125,1,0,3,1061,1),(454,'Innate Defense',3,5,4294967295,4294967295,5638,5639,5,4294967295,122,3,0,0,65534,1,61,0,4,4294967295,1,0,33,122,1,0,3,1066,1),(459,'Radiant Cure',2,3,3310,4294967294,9283,9284,5,3297,0,0,8,180,1092,0,61,2,4,4294967295,3,0,3,459,1,0,0,0,0),(477,'Hastened Exodus',2,3,4294967295,4294967295,5594,5595,5,4294967295,140,1,0,0,4160,0,63,0,4,4294967295,3,0,3,477,1,0,0,0,0),(480,'Hastened Root',2,3,4294967295,4294967295,5596,5597,5,4294967295,274,1,0,0,4096,0,63,0,4,4294967295,3,0,3,480,1,0,0,0,0),(483,'Hastened Mending',2,3,4294967295,4294967295,5598,5599,5,4294967295,163,1,0,0,43008,0,63,0,4,4294967295,3,0,3,483,1,0,0,0,0),(462,'Hastened Divinity',2,3,4294967295,4294967295,5582,5583,5,4294967295,132,1,0,0,4,0,63,0,4,4294967295,3,0,3,462,1,0,0,0,0),(468,'Hastened Purification of the Soul',2,3,4294967295,4294967295,5588,5589,5,4294967295,136,1,0,0,4,0,63,0,4,4294967295,3,0,3,468,1,0,0,0,0),(471,'Hastened Gathering',2,3,4294967295,4294967295,5590,5591,5,4294967295,162,1,0,0,16384,0,63,0,4,4294967295,3,0,3,471,1,0,0,0,0),(474,'Hastened Rabidity',2,3,4294967295,4294967295,5592,5593,5,4294967295,153,1,0,0,1024,0,63,0,4,4294967295,3,0,3,474,1,0,0,0,0),(486,'Hastened Banishment',2,3,4294967295,4294967295,5600,5601,5,4294967295,182,1,0,0,8192,0,63,2,4,4294967295,3,0,3,486,1,0,0,0,0),(489,'Hastened Instigation',2,3,4294967295,4294967295,5608,5609,5,4294967295,259,1,0,0,2,0,63,0,4,4294967295,3,0,3,489,1,0,0,0,0),(492,'Furious Rampage',2,3,4294967295,4294967295,5610,5611,5,4294967295,258,1,0,0,2,1,63,0,4,4294967295,3,0,3,492,1,0,0,0,0),(495,'Hastened Purification of the Body',2,3,4294967295,4294967295,5612,5613,5,4294967295,233,1,0,0,128,0,63,0,4,4294967295,3,0,3,495,1,0,0,0,0),(498,'Hasty Exit',2,3,4294967295,4294967295,5614,5615,5,4294967295,243,1,0,0,512,0,63,0,4,4294967295,3,0,5,498,1,0,0,886,0),(501,'Hastened Purification',2,3,4294967295,4294967295,5616,5617,5,4294967295,254,1,0,0,512,0,63,0,4,4294967295,3,0,3,501,1,0,0,0,0),(504,'Flash of Steel',3,3,4294967295,4294967295,5622,5623,5,4294967295,249,3,0,0,33466,1,62,0,4,4294967295,3,0,6,247,1,0,3,0,0),(507,'Divine Arbitration',3,3,5696,5697,5532,5533,5,3252,0,0,9,180,4,0,61,0,4,4294967295,3,0,3,507,1,0,0,0,0),(510,'Wrath of the Wild',3,3,5698,5699,5534,5535,5,3255,0,0,4,240,64,0,61,0,4,4294967295,3,0,3,510,1,0,0,0,0),(513,'Virulent Paralysis',3,3,5700,5701,5536,5537,5,3274,0,0,4,120,1024,0,61,0,4,4294967295,3,0,3,513,1,0,0,0,0),(516,'Harvest of Druzzil',2,1,5702,5703,5538,5539,5,3338,0,0,5,480,4096,0,62,0,4,4294967295,3,0,1,516,1,0,0,0,0),(517,'Eldritch Rune',3,3,5706,5707,5542,5543,5,3258,0,0,4,600,16384,0,61,0,4,4294967295,3,0,3,517,1,0,0,0,0),(520,'Servant of Ro',3,3,5704,5705,5540,5541,5,3265,0,0,6,540,8192,0,61,0,4,4294967295,3,0,3,520,1,0,0,0,0),(523,'Wake the Dead',5,3,5708,5709,5544,5545,5,3268,0,0,9,540,2048,0,61,-1,4,4294967295,3,0,3,523,1,0,0,0,0),(526,'Suspended Minion',5,2,5710,5711,5626,5627,5,5844,0,0,0,1,60448,0,62,-2,4,4294967295,3,0,2,526,1,0,0,0,0),(528,'Spirit Call',4,3,5712,5713,5628,5629,5,3283,0,0,5,720,1024,0,61,-1,4,4294967295,3,0,3,528,1,0,0,0,0),(531,'Celestial Renewal',3,2,28226,28227,5630,5631,5,3250,131,1,4,900,4,0,63,3,4,4294967295,3,0,3,131,1,0,1,0,0),(533,'Allegiant Familiar',6,1,9244,4294967295,5632,5633,5,3264,155,1,8,420,4096,0,64,0,4,4294967295,3,0,2,155,1,0,1,0,0),(534,'Hand of Piety',3,3,5724,5725,5634,5635,5,3261,189,1,4,2160,8,0,61,0,4,4294967295,3,0,3,534,1,0,0,0,0),(537,'Mithaniel\'s Binding',3,2,4294967295,4294967295,5640,5641,5,4294967295,263,3,0,0,2,1,63,0,4,4294967295,3,0,2,537,1,0,0,0,0),(539,'Mending of the Tranquil',2,3,4294967295,4294967295,5642,5643,5,4294967295,230,3,0,0,128,0,63,2,4,4294967295,3,0,6,230,1,0,3,0,0),(542,'Raging Flurry',2,3,4294967295,4294967295,5644,5645,5,4294967295,255,3,0,0,2,1,63,2,4,4294967295,3,0,12,255,1,0,3,1163,0),(545,'Guardian of the Forest',3,3,5714,5715,5646,5647,5,3271,0,0,3,900,16,0,61,0,4,4294967295,3,0,3,545,1,0,0,0,0),(548,'Spirit of the Wood',4,3,5716,5717,5648,5649,5,3277,0,0,5,900,64,0,61,-1,4,4294967295,3,0,3,548,1,0,0,0,0),(551,'Bestial Frenzy',2,5,4294967295,4294967295,5650,5651,5,4294967295,0,0,0,0,32768,0,61,0,4,4294967295,3,0,5,551,1,0,0,0,0),(556,'Harmonious Attack',2,5,4294967295,4294967295,5652,5653,5,4294967295,0,0,0,0,256,0,61,0,4,4294967295,3,0,5,556,1,0,0,0,0),(561,'Knight\'s Advantage',2,3,4294967295,4294967295,5654,5655,5,4294967295,0,0,0,0,40,0,61,2,4,4294967295,3,0,6,561,1,0,0,1624,0),(564,'Ferocity',3,3,4294967295,4294967295,5656,5657,2,4294967295,0,0,0,0,658,1,61,2,4,4294967295,3,0,6,564,1,0,0,1621,0),(567,'Viscid Roots',5,1,4294967295,4294967295,5664,5665,5,4294967295,144,1,0,0,64,0,63,0,4,4294967295,3,0,2,567,1,0,0,5061,0),(568,'Sionachie\'s Crescendo',2,3,4294967295,4294967295,5666,5667,5,4294967295,270,3,0,0,256,0,63,0,4,4294967295,3,0,3,568,1,0,0,0,0),(571,'Ayonaes Tutelage',2,3,4294967295,4294967295,5668,5669,5,4294967295,0,0,0,0,256,0,63,0,4,4294967295,3,0,3,571,1,0,0,0,0),(574,'Feigned Minion',3,3,4294967295,4294967295,5674,5675,5,4294967295,288,1,0,0,2048,0,61,0,4,4294967295,3,0,3,574,1,0,0,0,0),(577,'Unfailing Divinity',2,3,4294967295,4294967295,5660,5661,5,4294967295,0,0,0,0,4,0,61,2,4,4294967295,3,0,3,577,1,0,0,0,0),(580,'Animation Empathy',4,3,4294967295,4294967295,5658,5659,5,4294967295,0,0,0,0,16384,0,61,-1,4,4294967295,3,0,3,580,1,0,0,0,0),(583,'Rush to Judgment',2,3,4294967295,4294967295,5672,5673,5,4294967295,188,1,0,0,8,0,63,0,4,4294967295,3,0,3,583,1,0,0,0,0),(586,'Living Shield',2,3,4294967295,4294967295,3275,3276,5,4294967295,279,1,0,0,2,0,61,2,4,4294967295,3,0,3,586,1,0,0,0,0),(589,'Consumption of the Soul',3,3,4294967295,4294967295,3283,3284,5,4294967295,208,1,0,0,32,0,61,0,4,4294967295,3,0,5,589,1,0,0,893,0),(592,'Boastful Bellow',6,1,5718,5719,5676,5677,5,3282,113,1,2,18,256,0,63,0,4,4294967295,3,0,1,592,1,0,0,0,0),(593,'Fervent Blessing',3,3,4294967295,4294967295,5680,5681,5,4294967295,0,0,0,0,8,0,61,0,4,4294967295,3,0,3,593,1,0,0,0,0),(596,'Touch of the Wicked',2,3,4294967295,4294967295,5682,5683,5,4294967295,0,0,0,0,32,0,61,2,4,4294967295,3,0,3,596,1,0,0,0,0),(599,'Punishing Blade',2,3,4294967295,4294967295,5684,5685,5,4294967295,0,0,0,0,146,1,61,2,4,4294967295,2,0,12,599,1,0,0,1536,0),(602,'Speed of the Knight',3,3,4294967295,4294967295,5686,5687,5,4294967295,0,0,0,0,40,0,61,0,4,4294967295,3,0,3,602,1,0,0,0,0),(605,'Shroud of Stealth',6,1,4294967295,4294967295,5688,5689,5,4294967295,0,0,0,0,512,0,63,0,4,4294967295,3,0,1,605,1,0,0,0,0),(606,'Nimble Evasion',1,5,4294967295,4294967295,5690,5691,5,4294967295,0,0,0,0,512,0,61,0,4,4294967295,3,0,5,606,1,0,0,0,0),(611,'Technique of Master Wu',2,5,4294967295,4294967295,5692,5693,5,4294967295,0,0,0,0,128,0,61,0,4,4294967295,3,0,5,611,1,0,0,0,0),(616,'Host of the Elements',5,3,5720,5721,5694,5695,5,3286,0,0,7,900,8192,0,63,-1,4,4294967295,3,0,3,616,1,0,0,0,0),(619,'Call of Xuzl',3,3,3290,3291,3288,3289,5,3292,0,0,6,900,4096,0,61,-1,4,4294967295,3,0,5,619,1,0,0,721,0),(622,'Hastened Stealth',3,3,4294967295,4294967295,3314,3315,5,4294967295,0,0,0,0,512,0,61,0,4,4294967295,3,0,3,622,1,0,0,0,0),(625,'Ingenuity',1,3,4294967295,4294967295,5523,5728,5,4294967295,0,0,0,0,642,1,61,1,4,4294967295,2,0,9,625,1,0,0,4733,0),(628,'Fleet of Foot',2,2,4294967295,4294967295,5584,5585,5,4294967295,0,0,0,0,256,0,62,2,4,4294967295,3,0,2,628,1,0,0,0,0),(630,'Fading Memories',6,1,5732,5733,5730,5731,5,5243,0,0,7,1,256,0,63,0,4,4294967295,3,0,1,630,1,0,0,0,0),(631,'Tactical Mastery',2,3,4294967295,4294967295,5734,5735,5,4294967295,0,0,0,0,2,1,61,1,4,4294967295,3,0,3,631,1,0,0,0,0),(634,'Theft of Life',1,3,4294967295,4294967295,5736,5737,5,4294967295,0,0,0,0,2080,0,61,1,4,4294967295,3,0,8,634,1,0,0,844,0),(637,'Fury of Magic',3,3,4294967295,4294967295,5738,5739,5,4294967295,92,3,0,0,27716,0,61,3,4,4294967295,2,0,6,637,1,0,0,770,0),(640,'Fury of Magic Mastery',2,3,4294967295,4294967295,5740,5741,5,4294967295,267,3,0,0,4096,0,61,2,4,4294967295,2,0,8,267,1,0,3,924,0),(643,'Project Illusion',4,1,5662,5663,5670,5742,5,5227,158,1,0,1,16384,0,62,0,4,4294967295,3,0,1,643,1,0,0,0,0),(644,'Headshot',4,1,4294967295,4294967295,5743,5744,5,4294967295,199,1,0,0,16,0,62,0,4,4294967295,3,0,1,644,1,0,0,0,0),(645,'Entrap',4,1,5749,4294967295,5747,5748,5,3614,0,0,4,5,16,0,64,0,4,4294967295,3,0,1,645,1,0,0,0,0),(646,'Unholy Touch',2,3,4294967295,4294967295,9000,9001,5,4294967295,207,1,0,0,32,0,61,2,4,4294967295,3,0,3,646,1,0,0,0,0),(649,'Total Domination',2,3,4294967295,4294967295,9002,9003,5,4294967295,0,0,0,0,16384,0,61,2,4,4294967295,3,0,3,649,1,0,0,0,0),(652,'Stalwart Endurance',2,3,4294967295,4294967295,5751,5752,5,4294967295,0,0,0,0,2,1,61,2,4,4294967295,3,0,3,652,1,0,0,0,2),(672,'Swift Journey',5,2,4294967295,4294967295,9151,9152,6,4294967295,62,3,0,0,65534,1,61,0,7,4294967295,1,0,5,62,1,0,3,0,0),(674,'Convalescence',3,2,4294967295,4294967295,9153,9154,6,4294967295,65,3,0,0,65534,1,61,0,7,4294967295,1,0,5,65,1,0,3,0,0),(676,'Lasting Breath',2,2,4294967295,4294967295,9155,9156,6,4294967295,71,3,0,0,65534,1,61,0,7,4294967295,1,0,6,71,1,0,3,978,0),(678,'Packrat',3,5,4294967295,4294967295,9325,9326,6,4294967295,0,0,0,0,65534,1,61,0,7,4294967295,1,0,5,678,1,0,0,0,0),(686,'Weapon Affinity',5,5,4294967295,4294967295,9159,9160,6,4294967295,0,0,0,0,33722,1,55,0,7,4294967295,2,0,5,686,1,0,0,0,0),(691,'Secondary Forte',15,1,4294967295,4294967295,9161,9162,6,4294967295,0,0,0,0,31812,0,55,0,7,4294967295,2,0,1,691,1,0,0,0,0),(692,'Persistent Casting',3,3,4294967295,4294967295,9187,9188,6,4294967295,0,0,0,0,64892,0,55,3,7,4294967295,2,0,9,692,1,0,0,7647,0),(718,'Bestial Alignment',3,3,9219,4294967295,9219,9220,6,4521,0,0,7,4320,32768,0,65,3,7,4294967295,2,0,3,718,1,0,0,0,0),(721,'Wrath of Xuzl',5,2,3290,3291,9199,9200,6,5110,619,3,6,900,4096,0,65,0,7,4294967295,2,0,5,619,1,0,3,0,0),(723,'Feral Swipe',9,1,9175,4294967295,9175,9176,6,4788,0,0,6,60,32768,0,65,0,7,4294967295,2,0,1,723,1,0,0,0,0),(724,'Warder\'s Fury',3,5,4294967295,4294967295,9177,9178,6,4294967295,0,0,0,0,32768,0,65,0,7,4294967295,3,0,5,724,1,0,0,0,0),(729,'Warder\'s Alacrity',3,5,4294967295,4294967295,9179,9180,6,4294967295,0,0,0,0,32768,0,65,0,7,4294967295,3,0,5,729,1,0,0,0,0),(734,'Pet Affinity',12,1,4294967295,4294967295,9285,9286,6,4294967295,0,0,0,0,60448,0,65,0,7,4294967295,2,0,1,734,1,0,0,0,0),(735,'Mastery of the Past',3,3,4294967295,4294967295,9163,9164,6,4294967295,0,0,0,0,33884,0,62,0,7,4294967295,2,0,15,735,1,0,0,7050,0),(767,'Critical Affliction',3,3,4294967295,4294967295,9191,9192,6,4294967295,0,0,0,0,36208,0,65,3,7,4294967295,2,0,9,767,1,0,0,1099,0),(806,'Sinister Strikes',15,1,4294967295,4294967295,9231,9232,6,4294967295,198,1,0,0,33682,0,65,0,7,4294967295,2,0,1,806,1,0,0,0,0),(921,'Ro\'s Flaming Familiar',15,1,9269,4294967295,9269,9270,6,4833,0,0,8,60,4096,0,65,0,7,4294967295,2,0,1,921,1,0,0,0,0),(922,'E\'ci\'s Icy Familiar',15,1,9227,4294967295,9227,9228,6,4834,0,0,8,60,4096,0,65,0,7,4294967295,2,0,1,922,1,0,0,0,0),(923,'Druzzil\'s Mystical Familiar',15,1,9279,4294967295,9279,9280,6,4835,0,0,8,60,4096,0,65,0,7,4294967295,2,0,1,923,1,0,0,0,0),(924,'Advanced Fury of Magic Mastery',5,2,4294967295,4294967295,9265,9266,6,4294967295,640,3,0,0,4096,0,65,0,7,4294967295,2,0,8,267,1,0,6,0,0),(926,'Ward of Destruction',3,5,9319,4294967295,9319,9320,6,4836,0,0,12,1800,4096,0,65,0,7,4294967295,2,0,5,926,1,0,0,0,0),(931,'Frenzied Devastation',5,3,9340,4294967295,9340,9341,6,5245,92,1,13,4320,4096,0,65,3,7,4294967295,2,0,3,931,1,0,0,0,0),(978,'Eternal Breath',5,1,4294967295,4294967295,30012,30013,7,4294967295,676,2,0,0,65534,1,68,0,8,4294967295,1,0,6,71,1,0,5,0,0),(979,'Blacksmithing Mastery',3,3,4294967295,4294967295,30016,30017,7,4294967295,0,0,0,0,65534,1,59,3,7,6,1,0,3,979,1,0,0,0,0),(982,'Baking Mastery',3,3,4294967295,4294967295,30028,30029,7,4294967295,0,0,0,0,65534,1,59,3,7,6,1,0,3,982,1,0,0,0,0),(985,'Brewing Mastery',3,3,4294967295,4294967295,30040,30041,7,4294967295,0,0,0,0,65534,1,59,3,7,6,1,0,3,985,1,0,0,0,0),(988,'Fletching Mastery',3,3,4294967295,4294967295,30052,30053,7,4294967295,0,0,0,0,65534,1,59,3,7,6,1,0,3,988,1,0,0,0,0),(991,'Pottery Mastery',3,3,4294967295,4294967295,30064,30065,7,4294967295,0,0,0,0,65534,1,59,3,7,6,1,0,3,991,1,0,0,0,0),(994,'Tailoring Mastery',3,3,4294967295,4294967295,30076,30077,7,4294967295,0,0,0,0,65534,1,59,3,7,6,1,0,3,994,1,0,0,0,0),(997,'Salvage',5,3,4294967295,4294967295,30088,30089,7,4294967295,0,0,0,0,65534,1,60,0,7,6,1,0,3,997,1,0,0,0,5),(1000,'Origin',7,1,30102,4294967295,30100,30101,7,5824,0,0,20,4320,65534,1,67,0,8,4294967295,1,0,1,1000,1,0,0,0,0),(1001,'Chaotic Potential',5,5,4294967295,4294967295,30104,30105,7,4294967295,418,5,0,0,65534,1,66,0,8,4294967295,1,0,20,418,1,0,5,4678,1),(1006,'Discordant Defiance',5,5,4294967295,4294967295,30124,30125,7,4294967295,0,0,0,0,65534,1,66,0,8,4294967295,1,0,10,1006,1,0,0,7516,0),(1021,'Mystical Attuning',5,5,4294967295,4294967295,30144,30145,7,4294967295,0,0,0,0,65534,1,51,0,8,4294967295,1,0,12,1021,1,0,0,6521,0),(1026,'Delay Death',3,5,4294967295,4294967295,30164,30165,7,4294967295,0,0,0,0,65534,1,66,0,8,4294967295,1,0,25,1026,1,0,0,1389,0),(1031,'Healthy Aura',3,5,4294967295,4294967295,30184,30185,7,4294967295,674,2,0,0,65534,1,66,0,8,4294967295,1,0,8,110,1,0,3,0,0),(1041,'Veteran\'s Wrath',3,3,4294967295,4294967295,30224,30225,7,4294967295,443,3,0,0,33192,0,67,3,8,4294967295,2,0,3,1041,1,0,0,0,0),(1053,'Deathblow',3,3,4294967295,4294967295,30272,30273,7,4294967295,440,3,0,0,33722,1,66,0,8,4294967295,2,0,21,119,1,0,6,4721,0),(1061,'Reflexive Mastery',5,5,4294967295,4294967295,30304,30305,7,4294967295,449,5,0,0,65534,1,66,0,8,4294967295,1,0,33,125,1,0,8,1394,1),(1066,'Defensive Instincts',5,5,4294967295,4294967295,30324,30325,7,4294967295,454,5,0,0,65534,1,66,0,8,4294967295,1,0,33,122,1,0,8,1399,1),(1071,'Mnemonic Retention',3,1,4294967295,4294967295,30344,30345,7,4294967295,0,0,0,0,64892,0,55,0,8,4294967295,2,0,1,1071,1,0,0,0,0),(1072,'Expansive Mind',5,5,4294967295,4294967295,30348,30349,7,4294967295,0,0,0,0,64892,0,66,0,8,4294967295,2,0,5,1072,1,0,0,0,0),(1083,'Healing Adept Mastery',3,3,4294967295,4294967295,30392,30393,7,4294967295,434,3,0,0,33884,0,66,3,8,4294967295,2,0,12,77,1,0,6,12449,0),(1086,'Healing Gift Mastery',3,3,4294967295,4294967295,30404,30405,7,4294967295,437,3,0,0,33884,0,66,3,8,4294967295,2,0,21,80,1,0,6,4779,0),(1089,'Arcane Tongues',3,3,4294967295,4294967295,30416,30417,7,4294967295,0,0,0,0,30720,0,66,3,8,4294967295,2,0,3,1089,1,0,0,0,0),(1093,'Slippery Attacks',3,5,4294967295,4294967295,30432,30433,7,4294967295,0,0,0,0,33682,0,66,0,8,4294967295,2,0,5,1093,1,0,0,0,0),(1099,'Improved Critical Affliction',3,3,4294967295,4294967295,30456,30457,7,4294967295,767,3,0,0,36192,0,67,3,8,4294967295,2,0,9,767,1,0,3,12423,0),(1107,'Fury of Magic',3,3,4294967295,4294967295,5738,5739,7,4294967295,92,3,0,0,33080,0,66,3,8,4294967295,2,0,3,1107,1,0,0,0,0),(1119,'Roar of Thunder',3,3,30538,30539,30536,30537,7,5841,0,0,8,900,32768,0,68,3,8,4294967295,2,0,3,1119,1,0,0,0,0),(1122,'Persistent Minion',7,1,4294967295,4294967295,30548,30549,7,4294967295,526,2,0,0,60448,0,67,0,8,4294967295,2,0,1,1122,1,0,0,0,0),(1123,'Perfection of Spirit',5,3,30554,30555,30552,30553,7,5854,291,1,5,900,32768,0,66,0,8,4294967295,2,0,3,1123,1,0,0,0,0),(1126,'Replenish Companion',3,3,30566,30567,30564,30565,7,5845,163,1,2,2160,43008,0,66,3,8,4294967295,2,0,3,1126,1,0,0,0,0),(1129,'Advanced Pet Discipline',5,2,4294967295,4294967295,30576,30577,7,4294967295,288,1,0,0,44064,0,67,2,8,4294967295,2,0,3,288,1,0,1,0,0),(1181,'Shielding Resistance',3,5,4294967295,4294967295,1181,1181,7,4294967295,0,0,0,0,33682,0,70,0,8,4294967295,2,0,5,1181,1,0,0,0,0),(1210,'Destructive Fury',3,3,4294967295,4294967295,30900,30901,7,4294967295,640,3,0,0,4096,0,66,3,8,4294967295,2,0,9,1210,1,0,0,4755,0),(1229,'Secondary Recall',7,1,30978,30979,30976,30977,7,6094,0,0,10,600,4160,0,66,0,8,4294967295,2,0,1,1229,1,0,0,0,0),(1334,'Mind Crash',3,3,31410,31411,31408,31409,7,5943,0,0,11,4320,4096,0,66,3,8,4294967295,2,0,3,1334,1,0,0,0,0),(1337,'Prolonged Destruction',5,3,31422,31423,31420,31421,7,5946,931,3,13,4320,4096,0,67,0,8,4294967295,2,0,3,1337,1,0,0,0,0),(1340,'Ro\'s Greater Familiar',12,1,31434,31435,31432,31433,7,5950,921,1,8,60,4096,0,69,0,8,4294967295,2,0,1,921,1,0,0,0,0),(1341,'E\'ci\'s Greater Familiar',12,1,31438,31439,31436,31437,7,5951,922,1,8,60,4096,0,69,0,8,4294967295,2,0,1,922,1,0,0,0,0),(1342,'Druzzil\'s Greater Familiar',12,1,31442,31443,31440,31441,7,5952,923,1,8,60,4096,0,69,0,8,4294967295,2,0,1,923,1,0,0,0,0),(1343,'Teleport Bind',9,1,31446,31447,31444,31445,7,5953,0,0,9,300,4096,0,69,0,8,4294967295,2,0,1,1343,1,0,0,0,0),(1344,'Devoted Familiar',12,1,31450,31451,31448,31449,7,5949,533,1,8,60,4096,0,70,0,8,4294967295,2,0,2,155,1,0,0,0,0),(807,'Strikethrough',3,3,4294967295,4294967295,807,807,6,4294967295,0,0,0,0,128,0,65,3,7,4294967295,2,0,3,807,1,0,0,0,0),(810,'Stonewall',5,5,2147483647,2147483647,2147483647,0,6,0,0,0,0,0,128,0,65,0,7,4294967295,2,0,5,810,1,0,0,0,0),(815,'Rapid Strikes',4,5,4294967295,4294967295,815,815,6,0,0,0,0,0,128,0,65,0,7,4294967295,3,0,5,815,1,0,0,0,0),(820,'Kick Mastery',3,3,4294967295,4294967295,820,820,6,4294967295,0,0,0,0,128,0,65,3,7,4294967295,3,0,3,820,1,0,0,0,0),(823,'Heightened Awareness',5,5,4294967295,4294967295,823,823,6,4294967295,0,0,0,0,128,0,65,0,7,4294967295,3,0,5,823,1,0,0,0,0),(828,'Destructive Force',3,3,2147483647,2147483647,2147483647,2147483647,6,5240,0,0,2,3600,128,0,65,3,7,4294967295,2,0,3,828,1,0,0,0,0),(770,'Fury of Magic Mastery',3,3,4294967295,4294967295,4294967295,4294967295,6,0,637,3,0,0,27716,0,65,3,7,4294967295,2,0,6,637,1,0,3,0,0),(831,'Swarm of Decay',3,3,2147483647,2147483647,2147483647,2147483647,6,0,0,0,10,1800,2048,0,65,3,7,4294967295,2,0,3,831,1,0,0,0,0),(834,'Deaths Fury',3,5,4294967295,4294967295,834,834,6,0,0,0,0,0,2080,0,65,0,7,4294967295,3,0,5,834,1,0,0,0,0),(839,'Quickening of Death',5,5,4294967295,4294967295,839,839,6,0,0,0,0,0,2048,0,65,0,7,4294967295,3,0,5,839,1,0,0,0,0),(864,'Precision of the Pathfinder',3,3,4294967295,4294967295,864,864,6,0,0,0,0,0,16,0,65,3,7,4294967295,3,0,6,864,1,0,0,0,0),(867,'Coat of Thistles',5,5,4294967295,4294967295,867,867,6,0,0,0,0,0,16,0,65,0,7,4294967295,2,0,5,867,1,0,0,0,0),(872,'Flaming Arrows',3,3,2147483647,2147483647,2147483647,2147483647,6,4802,0,0,5,180,16,0,65,3,7,4294967295,2,0,3,872,1,0,0,0,0),(875,'Frost Arrows',3,3,2147483647,2147483647,2147483647,2147483647,6,4805,0,0,5,180,16,0,65,3,7,4294967295,2,0,3,875,1,0,0,0,0),(915,'Strengthened Strike',3,3,4294967295,4294967295,915,915,6,4294967295,0,0,0,0,16,0,65,3,7,4294967295,3,0,3,915,1,0,0,0,0),(683,'Heightened Endurance',3,3,4294967295,4294967295,683,683,6,4294967295,0,0,0,0,642,1,61,3,7,4294967295,2,0,15,683,1,0,0,1036,0),(846,'Triple Backstab',3,3,4294967295,4294967295,846,846,6,4294967295,0,0,0,0,512,0,65,3,7,4294967295,3,0,6,846,1,0,0,1301,0),(878,'Seized Opportunity',3,3,4294967295,4294967295,878,878,6,4294967295,0,0,0,0,512,0,65,3,7,4294967295,3,0,6,878,1,0,0,1539,0),(881,'Trap Circumvention',3,5,2147483647,2147483647,2147483647,2147483647,6,0,0,0,0,0,512,0,65,0,7,4294967295,2,0,5,881,1,0,0,0,0),(886,'Improved Hasty Exit',5,2,2147483647,2147483647,2147483647,2147483647,6,0,498,3,0,0,512,0,65,0,7,4294967295,2,0,5,498,1,0,2,0,0),(888,'Virulent Venom',3,5,2147483647,2147483647,2147483647,2147483647,6,0,0,0,0,0,512,0,65,0,7,4294967295,2,0,5,888,1,0,0,0,0),(893,'Improved Consumption of the Soul',5,2,2147483647,2147483647,2147483647,2147483647,6,0,589,3,0,0,32,0,65,0,7,4294967295,2,0,5,589,1,0,3,0,0),(849,'Hastened Piety',3,3,2147483647,2147483647,2147483647,2147483647,6,0,534,3,0,0,8,0,65,3,7,4294967295,2,0,3,849,1,0,0,0,0),(852,'Immobilizing Bash',5,3,2147483647,2147483647,2147483647,2147483647,6,0,0,0,0,0,40,0,65,0,7,4294967295,2,0,3,852,1,0,0,0,0),(855,'Vicious Smash',5,5,4294967295,4294967295,855,855,6,4294967295,0,0,0,0,40,0,65,0,7,4294967295,3,0,5,855,1,0,0,0,0),(860,'Radiant Cure',3,3,2147483647,2147483647,2147483647,2147483647,6,3297,0,0,5,180,8,0,65,3,7,4294967295,2,0,3,860,1,0,0,0,0),(863,'Purification',12,1,2147483647,2147483647,2147483647,2147483647,6,5248,0,0,6,4320,8,0,65,0,7,4294967295,2,0,1,863,1,0,0,0,0),(738,'Spell Casting Subtlety',3,3,4294967295,4294967295,738,738,6,0,0,0,0,0,1092,0,65,3,7,4294967295,2,0,12,738,1,0,0,5317,0),(754,'Quickened Curing',3,3,2147483647,2147483647,2147483647,2147483647,6,0,459,3,0,0,1092,0,65,3,7,4294967295,2,0,3,754,1,0,0,0,0),(900,'Advanced Spirit Call',5,2,2147483647,2147483647,2147483647,2147483647,6,4826,528,3,5,720,1024,0,65,0,7,4294967295,2,0,2,900,1,0,0,0,0),(907,'Sturdiness',5,5,2147483647,2147483647,2147483647,2147483647,6,0,0,0,0,0,2,0,65,0,7,4294967295,2,0,5,907,1,0,0,0,0),(918,'Extended Shielding',3,3,2147483647,2147483647,2147483647,2147483647,6,0,0,0,0,0,2,0,65,3,7,4294967295,2,0,3,918,1,0,0,0,0),(741,'Touch of the Divine',5,5,4294967295,4294967295,741,741,6,0,0,0,0,0,4,0,65,0,7,4294967295,3,0,5,741,1,0,0,0,0),(746,'Divine Avatar',3,3,2147483647,2147483647,2147483647,2147483647,6,4549,0,0,10,2160,4,0,65,3,7,4294967295,2,0,3,746,1,0,0,0,0),(749,'Exquisite Benediction',5,5,2147483647,2147483647,2147483647,2147483647,6,4790,0,0,13,1800,4,0,65,0,7,4294967295,2,0,5,749,1,0,0,0,0),(757,'Natures Boon',5,5,2147483647,2147483647,2147483647,2147483647,6,4796,0,0,6,1800,64,0,65,0,7,4294967295,2,0,5,757,1,0,0,0,0),(762,'Advanced Tracking',4,5,2147483647,2147483647,2147483647,2147483647,6,0,0,0,0,0,64,0,65,0,7,4294967295,2,0,5,762,1,0,0,0,0),(844,'Advanced Theft of Life',5,2,4294967295,4294967295,31453,31454,6,4294967295,634,3,0,0,2080,0,65,0,7,4294967295,3,0,8,634,1,0,3,1319,0),(1140,'Dead Aim',3,3,4294967295,4294967295,1140,1140,5,4294967295,0,0,0,0,0,1,61,0,5,4294967295,3,0,3,1140,1,0,0,0,0),(1149,'Desperation',12,1,2147483647,2147483647,2147483647,2147483647,6,5853,0,0,5,1320,0,1,65,0,6,4294967295,2,0,1,1149,1,0,0,0,0),(1150,'Untamed Rage',3,3,1150,1150,1150,1150,6,5848,564,3,2,2160,0,1,65,3,7,4294967295,3,0,3,1150,1,0,0,0,0),(1155,'Echoing Cries',3,3,2147483647,2147483647,2147483647,2147483647,6,0,0,0,0,0,0,1,65,3,6,4294967295,2,0,3,1155,1,0,0,0,0),(773,'Doppelganger',3,3,2147483647,0,2147483647,2147483647,6,4552,643,1,5,1800,16384,0,65,3,7,4294967295,2,0,3,773,1,0,0,0,0),(776,'Enhanced Forgetfulness',3,5,2147483647,2147483647,2147483647,2147483647,6,0,0,0,0,0,16384,0,65,0,7,4294967295,2,0,5,776,1,0,0,0,0),(781,'Mesmerization Mastery',12,1,2147483647,2147483647,2147483647,2147483647,6,0,0,0,0,0,16384,0,65,0,7,4294967295,2,0,1,781,1,0,0,0,0),(782,'Quick Mass Group Buff',3,3,2147483647,2147483647,2147483647,2147483647,6,0,128,1,0,0,16384,0,65,3,7,4294967295,2,0,3,782,1,0,0,0,0),(785,'Shared Health',5,5,2147483647,2147483647,2147483647,2147483647,6,5235,0,0,8,900,8192,0,65,0,7,4294967295,2,0,5,785,1,0,0,0,0),(790,'Elemental Fury',3,5,4294967295,4294967295,790,790,6,0,0,0,0,0,8192,0,65,0,7,4294967295,3,0,5,790,1,0,0,0,0),(795,'Elemental Alacrity',5,5,4294967295,4294967295,795,795,6,0,0,0,0,0,8192,0,65,0,7,4294967295,3,0,5,795,1,0,0,0,0),(800,'Elemental Agility',3,3,4294967295,4294967295,800,800,6,0,0,0,0,0,8192,0,65,3,7,4294967295,3,0,3,800,1,0,0,0,0),(803,'Elemental Durability',3,3,4294967295,4294967295,803,803,6,0,0,0,0,0,8192,0,65,3,7,4294967295,3,0,3,803,1,0,0,0,0),(695,'Tune of Pursuance',4,5,2147483647,2147483647,2147483647,2147483647,6,0,0,0,0,0,256,0,65,0,7,4294967295,2,0,5,695,1,0,0,0,0),(700,'Improved Instrument Mastery',9,1,4294967295,4294967295,2147483647,2147483647,6,0,213,3,0,0,256,0,61,0,7,4294967295,3,0,4,213,1,0,3,0,0),(701,'Improved Singing Mastery',9,1,4294967295,4294967295,2147483647,2147483647,6,0,275,3,0,0,256,0,61,0,7,4294967295,3,0,4,275,1,0,3,0,0),(702,'Exultant Bellowing',3,5,2147483647,2147483647,2147483647,2147483647,6,4842,592,1,2,18,256,0,65,0,7,4294967295,2,0,5,702,1,0,0,0,0),(707,'Echo of Taelosia',5,3,2147483647,2147483647,2147483647,2147483647,6,0,571,3,0,0,256,0,65,0,7,4294967295,2,0,3,707,1,0,0,0,0),(710,'Internal Metronome',5,5,4294967295,4294967295,710,710,6,0,96,3,0,0,256,0,65,0,7,4294967295,2,0,5,710,1,0,0,0,0),(1319,'Soul Thief',5,3,4294967295,4294967295,31457,31458,7,4294967295,844,2,0,0,2080,0,68,0,8,4294967295,3,0,8,634,1,0,5,0,0),(209,'Death Peace',5,1,13738,13739,13736,13737,7,4294967295,0,0,12,5,2080,0,65,0,3,4294967295,2,0,1,209,1,0,0,0,0),(1134,'Blur of Axes',3,3,4294967295,4294967295,1134,1134,5,4294967295,0,0,0,0,0,1,61,1,4,4294967295,3,0,8,1134,1,0,0,1158,0),(1158,'Vicious Frenzy',4,5,4294967295,4294967295,1158,1158,7,4294967295,1134,3,0,0,0,1,67,0,8,4294967295,3,0,8,1134,1,0,3,0,0),(1373,'Chaotic Jester',0,1,1373,1373,1373,1373,8,6882,0,0,25,72000,65534,1,1,0,8,5,4,0,1,1373,1,0,0,0,0),(1371,'Lesson of the Devoted',0,1,1371,1371,1371,1371,8,6880,0,0,23,72000,65534,1,1,0,8,5,4,0,1,1371,1,0,0,0,0),(1372,'Infusion of the Faithful',0,1,1372,1372,1372,1372,8,6881,0,0,24,72000,65534,1,1,0,8,5,4,0,1,1372,1,0,0,0,0),(1374,'Expedient Recovery',0,1,1374,1374,1374,1374,8,6883,0,0,26,590400,65534,1,1,0,8,5,4,0,1,1374,1,0,0,0,0),(1376,'Staunch Recovery',0,1,1376,1376,1376,1376,8,6885,0,0,28,259200,65534,1,1,0,8,5,4,0,1,1376,1,0,0,0,0),(1375,'Steadfast Servant',0,1,1375,1375,1375,1375,8,6884,0,0,27,72000,65534,1,1,0,8,5,4,0,1,1375,1,0,0,0,0),(1377,'Intensity of the Resolute',0,1,1377,1377,1377,1377,8,6886,0,0,29,14400,65534,1,1,0,8,5,4,0,1,1377,1,0,0,0,0),(1287,'Shield Block',3,3,4294967295,4294967295,1287,1287,7,0,0,0,0,0,42,0,67,3,8,4294967295,2,3,9,1287,1,0,0,5516,0),(7800,'Harm Touch',0,17,7800,7800,7800,7800,3,13531,0,0,39,4320,32,0,1,1,0,9,3,0,17,7800,4,0,0,0,0),(7850,'Lay on Hands',0,17,7850,7850,7850,7850,3,13546,0,0,39,4320,8,0,1,1,0,9,3,0,17,7850,4,0,0,0,0),(1131,'Throwing Mastery',3,3,4294967295,4294967295,1131,1131,5,4294967295,0,0,0,0,0,1,61,3,3,4294967295,3,0,3,1131,1,0,0,0,0),(1146,'Tireless Sprint',3,3,2147483647,2147483647,2147483647,2147483647,5,0,0,0,0,0,0,1,61,3,5,4294967295,3,0,3,1146,1,0,0,0,0),(1137,'Hastened War Cry',3,3,2147483647,2147483647,2147483647,2147483647,5,0,0,0,0,0,0,1,61,3,5,4294967295,3,0,3,1137,1,0,0,0,0),(1435,'Gift of Mana',3,3,4294967295,4294967295,1435,1435,7,0,83,3,0,0,31812,0,66,3,10,4294967295,2,3,3,1435,1,0,0,0,0),(1486,'Abundant Healing',5,5,4294967295,4294967295,1486,1486,7,0,1086,3,0,0,1092,0,66,0,10,4294967295,2,0,15,1486,1,0,0,5529,0),(1478,'Pyromancy',3,3,1478,4294967295,1478,1478,7,8406,0,0,99,1,4096,0,66,0,10,4294967295,3,0,3,1478,2,0,0,0,0),(1378,'Curse of Blood',0,1,4294967295,4294967295,1378,1378,8,0,0,0,0,0,65534,1,0,0,5,2,4,0,1,1378,1,0,0,0,0),(1379,'Affliction of Blood',0,1,4294967295,4294967295,1379,1379,8,0,1378,1,0,0,65534,1,0,0,5,2,4,0,1,1379,1,0,0,0,0),(1380,'Torment of Blood',0,1,4294967295,4294967295,1380,1380,8,0,1379,1,0,0,65534,1,0,0,5,2,4,0,1,1380,1,0,0,0,0),(1381,'Temptation of Blood',0,1,4294967295,4294967295,1381,1381,8,0,1380,1,0,0,65534,1,0,0,5,2,4,0,1,1381,1,0,0,0,0),(1382,'Invitation of Blood',0,1,4294967295,4294967295,1382,1382,8,0,1381,1,0,0,65534,1,0,0,5,2,4,0,1,1382,1,0,0,0,0),(1011,'Trials of Mata Muram',0,6,4294967295,4294967295,1011,1011,7,0,0,0,0,0,65534,1,0,0,0,1,4,0,6,1011,1,0,0,0,0),(1361,'Gift of the Dark Reign',0,1,4294967295,4294967295,1361,1361,8,0,0,0,0,0,65534,1,0,0,0,2,4,0,1,1361,1,0,0,0,0),(1362,'Tenacity of the Dark Reign',0,1,4294967295,4294967295,1362,1362,8,0,1361,1,0,0,65534,1,0,0,0,2,4,0,1,1362,1,0,0,0,0),(1363,'Embrace of the Dark Reign',0,1,4294967295,4294967295,1363,1363,8,0,1362,1,0,0,65534,1,0,0,0,2,4,0,1,1363,1,0,0,0,0),(1364,'Power of the Dark Reign',0,1,4294967295,4294967295,1364,1364,8,0,1363,1,0,0,65534,1,0,0,0,2,4,0,1,1364,1,0,0,0,0),(1365,'Fervor of the Dark Reign',0,1,4294967295,4294967295,1365,1365,8,0,1364,1,0,0,65534,1,0,0,0,2,4,0,1,1365,1,0,0,0,0),(1366,'Gift of the Keepers',0,1,4294967295,4294967295,1366,1366,8,0,0,0,0,0,65534,1,0,0,0,2,4,0,1,1366,1,0,0,0,0),(1367,'Valor of the Keepers',0,1,4294967295,4294967295,1367,1367,8,0,1366,1,0,0,65534,1,0,0,0,2,4,0,1,1367,1,0,0,0,0),(1368,'Embrace of the Keepers',0,1,4294967295,4294967295,1368,1368,8,0,1367,1,0,0,65534,1,0,0,0,2,4,0,1,1368,1,0,0,0,0),(1369,'Power of the Keepers',0,1,4294967295,4294967295,1369,1369,8,0,1368,1,0,0,65534,1,0,0,0,2,4,0,1,1369,1,0,0,0,0),(1370,'Sanctity of the Keepers',0,1,4294967295,4294967295,1370,1370,8,0,1369,1,0,0,65534,1,0,0,0,2,4,0,1,1370,1,0,0,0,0),(5150,'Breath of Atathus',0,15,5150,5150,5150,5150,10,11112,0,0,80,300,65534,1,0,0,523,8,4,0,15,5150,4,0,0,0,0),(5165,'Breath of Draton\'ra',0,15,5165,5165,5165,5165,10,11127,0,0,80,300,65534,1,0,0,524,8,4,0,15,5165,4,0,0,0,0),(5180,'Breath of Osh\'vir',0,15,5180,5180,5180,5180,10,11142,0,0,80,300,65534,1,0,0,525,8,4,0,15,5180,4,0,0,0,0),(5195,'Breath of Venesh',0,15,5195,5195,5195,5195,10,11157,0,0,80,300,65534,1,0,0,526,8,4,0,15,5195,4,0,0,0,0),(5210,'Breath of Mysaphar',0,15,5210,5210,5210,5210,10,11172,0,0,80,300,65534,1,0,0,527,8,4,0,15,5210,4,0,0,0,0),(5225,'Breath of Keikolin',0,15,5225,5225,5225,5225,10,11187,0,0,80,300,65534,1,0,0,528,8,4,0,15,5225,4,0,0,0,0),(1647,'Harmonic Dissonance',0,1,1647,1647,1647,1647,10,8771,0,0,81,30,65534,1,0,0,0,2,4,0,1,1647,4,0,0,0,0),(4702,'Glyph of Dragon Scales',3,1,4702,4702,4702,4702,4,9475,0,0,98,600,65534,1,71,0,12,7,4,0,1,4702,4,0,0,0,0),(4703,'Glyph of Angry Thoughts',4,1,52004,52004,52004,52004,4,12752,0,0,97,600,65534,1,76,0,14,7,4,0,1,52004,4,0,0,0,0),(4704,'Glyph of Arcane Secrets',3,1,4704,4704,4704,4704,4,9477,0,0,96,600,65534,1,71,0,12,7,4,0,1,4704,4,0,0,0,0),(4705,'Glyph of Draconic Potential',3,1,4705,4705,4705,4705,4,9478,0,0,95,600,65534,1,71,0,12,7,4,0,1,4705,4,0,0,0,0),(4706,'Glyph of Destruction',3,1,4706,4706,4706,4706,4,9479,0,0,94,600,65534,1,71,0,12,7,4,0,1,4706,4,0,0,0,0),(4707,'Glyph of Courage',4,1,52000,52000,52000,52000,4,12748,0,0,93,600,65534,1,76,0,14,7,4,0,1,52000,4,0,0,0,0),(4708,'Glyph of Frantic Infusion',4,1,52003,52003,52003,52003,4,12751,0,0,92,600,65534,1,76,0,14,7,4,0,1,52003,4,0,0,0,0),(4709,'Glyph of Stored Life',4,1,52002,52002,52002,52002,4,12750,0,0,91,600,65534,1,76,0,14,7,4,0,1,52002,4,0,0,0,0),(4710,'Glyph of Recovery',4,1,52001,52001,52001,52001,4,12749,0,0,90,600,65534,1,76,0,14,7,4,0,1,52001,4,0,0,0,0),(4665,'Throne of Heroes',0,1,4665,4665,4665,4665,8,9177,0,0,30,4320,65534,1,1,0,8,4294967295,4,0,1,4665,4,0,0,0,0),(1597,'Call of Challenge',9,1,1597,1597,1597,1597,7,8271,0,0,6,10,2,0,70,0,10,4294967295,3,0,1,1597,1,0,0,0,0),(912,'Warlord\'s Tenacity',3,3,912,912,912,912,6,4925,0,0,4,3600,2,0,65,3,7,4294967295,3,0,6,912,1,0,0,0,0),(1583,'Hastened Defiance',5,1,4294967295,4294967295,1583,1583,7,4294967295,912,3,0,0,2,0,70,0,10,4294967295,3,0,1,1583,1,0,0,0,0),(1586,'Dauntless Perseverance',12,1,4294967295,4294967295,1586,1586,7,4294967295,222,3,0,0,2,0,70,0,10,4294967295,3,0,1,1586,1,0,0,0,0),(1611,'Field Dressing',3,5,4294967295,4294967295,1611,1611,7,4294967295,537,2,0,0,2,1,66,0,10,4294967295,3,0,5,1417,1,0,0,0,0),(5136,'Combat Medic',3,5,4294967295,4294967295,4688,4688,3,4294967295,1611,5,0,0,2,1,71,0,12,4294967295,3,0,5,4688,4,0,0,0,1),(1587,'Concentration',3,3,4294967295,4294967295,1587,1587,7,4294967295,0,0,0,0,642,1,66,0,10,4294967295,2,0,3,1587,1,0,0,0,0),(1621,'Relentless Assault',7,3,4294967295,4294967295,1621,1621,7,4294967295,564,3,0,0,658,1,70,0,10,4294967295,2,0,6,564,1,0,3,0,0),(1330,'Resolute Defiance',3,3,912,912,1330,1330,7,4925,912,3,4,3600,2,0,70,3,8,4294967295,3,0,6,912,1,0,0,0,0),(1536,'Wicked Blade',3,3,4294967295,4294967295,1536,1536,7,4294967295,599,3,0,0,146,1,70,0,10,4294967295,2,0,12,599,1,0,3,5534,0),(1388,'Innate See Invis',9,1,4294967295,4294967295,1388,1388,7,0,0,0,0,0,65534,1,70,0,10,4294967295,1,0,1,1388,1,0,0,0,0),(1627,'Selo\'s Enduring Cadence',3,3,4294967295,4294967295,1627,1627,7,4294967295,672,2,0,0,256,0,66,0,10,4294967295,3,0,3,1627,1,0,0,0,0),(1301,'Flurry of Knives',3,3,4294967295,4294967295,1301,1301,7,4294967295,846,3,0,0,512,0,66,3,8,4294967295,3,0,6,846,1,0,3,0,0),(1539,'Forced Opening',3,3,4294967295,4294967295,1539,1539,7,4294967295,878,3,0,0,512,0,70,0,10,4294967295,3,0,6,878,1,0,3,0,0),(1624,'Knight\'s Expertise',7,3,4294967295,4294967295,1624,1624,7,4294967295,561,3,0,0,40,0,70,0,10,4294967295,3,0,6,561,1,0,3,0,0),(1050,'Veteran\'s Wrath',3,3,4294967295,4294967295,1050,1050,7,4294967295,443,3,0,0,2,1,67,3,8,4294967295,2,0,3,1050,1,0,0,0,0),(1044,'Veteran\'s Wrath',3,3,4294967295,4294967295,1044,1044,7,4294967295,443,3,0,0,512,0,67,3,8,4294967295,2,0,3,1044,1,0,0,0,0),(1047,'Veteran\'s Wrath',3,3,4294967295,4294967295,1047,1047,7,4294967295,443,3,0,0,16,0,67,3,8,4294967295,2,0,3,1047,1,0,0,0,0),(1524,'Vanquish Undead',7,3,4294967295,4294967295,1524,1524,10,4294967295,190,3,0,0,8,0,70,0,10,4294967295,3,0,6,190,1,0,3,0,0),(8201,'Companion\'s Fury',7,3,4294967295,4294967295,8201,8201,6,4294967295,0,0,0,0,60448,0,81,0,15,4294967295,2,0,3,8201,5,0,0,0,2),(1327,'Ancestral Aid',5,3,1327,1327,1327,1327,7,5933,0,0,2,900,1024,0,67,0,8,4294967295,3,0,3,1327,1,0,0,0,0),(1323,'Spiritual Channeling',12,1,1323,1323,1323,1323,1,5932,146,1,0,2160,1024,0,70,0,8,4294967295,3,0,1,1323,1,0,0,0,0),(1394,'Precognition',5,5,4294967295,4294967295,1394,1394,7,4294967295,1061,5,0,0,65534,1,70,0,10,4294967295,1,0,33,125,1,0,13,5519,0),(5519,'Combat Agility V',6,5,4294967295,4294967295,125,125,7,4294967295,1394,5,0,0,65534,1,76,1,14,4294967295,1,0,33,125,4,0,18,7501,1),(1290,'Scout\'s Efficiency',3,3,4294967295,4294967295,5519,1290,7,4294967295,864,3,0,0,16,0,70,3,8,4294967295,3,0,6,864,1,0,3,0,0),(1399,'Thick Skin',5,5,4294967295,4294967295,1399,1399,7,4294967295,1066,5,0,0,65534,1,70,0,10,4294967295,1,0,33,122,1,0,13,5524,0),(5524,'Combat Stability V',6,5,4294967295,4294967295,122,122,7,4294967295,1399,5,0,0,65534,1,76,1,14,4294967295,1,0,33,122,4,0,18,7506,1),(6287,'Warlord\'s Return Kick',6,3,4294967295,4294967295,6566,6566,3,4294967295,0,0,0,0,2,0,73,0,14,4294967295,3,0,3,6566,4,0,0,0,0),(7106,'Beastlords Feral Kick',6,3,4294967295,4294967295,7106,7106,3,4294967295,0,0,0,0,32768,0,73,0,14,4294967295,3,0,3,7106,4,0,0,0,0),(6269,'Hunter\'s Return Kick',6,3,4294967295,4294967295,6558,6558,3,4294967295,0,0,0,0,16,0,73,0,14,4294967295,3,0,3,6558,4,0,0,0,0),(6266,'Knight\'s Return Strike',6,3,4294967295,4294967295,6557,6557,3,4294967295,0,0,0,0,40,0,73,0,14,4294967295,3,0,3,6557,4,0,0,0,0),(1166,'Frenzied Defense',3,3,4294967295,4294967295,1143,1143,6,4294967295,0,0,0,0,0,1,65,0,7,4294967295,3,0,3,1143,4,0,0,0,0),(6275,'Knave\'s Return Strike',6,3,4294967295,4294967295,6560,6560,3,4294967295,0,0,0,0,512,0,73,0,14,4294967295,3,0,3,6560,4,0,0,0,0),(1163,'Crazed Onslaught',5,3,4294967295,4294967295,116,116,7,4294967295,542,3,0,0,2,1,67,0,8,4294967295,3,0,12,255,1,0,6,4795,0),(4795,'Flurry IV',5,3,4294967295,4294967295,255,255,7,4294967295,1163,3,0,0,2,1,71,0,12,4294967295,3,0,12,255,4,0,9,0,2),(1616,'Lightning Strikes',5,3,4294967295,4294967295,13785,13786,7,4294967295,0,0,0,0,16,1,66,3,10,4294967295,3,0,3,1616,1,0,0,0,0),(5061,'Petrified Roots ',5,1,4294967295,4294967295,567,567,7,4294967295,567,1,0,0,64,0,71,0,14,4294967295,3,0,2,567,4,0,1,0,0),(8263,'Earthen Brawn',5,5,4294967295,4294967295,8263,8263,1,4294967295,7357,5,0,0,65534,1,81,0,16,4294967295,1,0,5,8263,6,0,0,0,0),(8268,'Earthen Stability',5,5,4294967295,4294967295,8268,8268,1,4294967295,7357,5,0,0,65534,1,81,0,16,4294967295,1,0,5,8268,6,0,0,0,0),(8273,'Earthen Alacrity',5,5,4294967295,4294967295,8273,8273,1,4294967295,7357,5,0,0,65534,1,81,0,16,4294967295,1,0,5,8273,6,0,0,0,0),(8278,'Earthen Artistry',5,5,4294967295,4294967295,8278,8278,1,4294967295,7357,5,0,0,65534,1,81,0,16,4294967295,1,0,5,8278,6,0,0,0,0),(8283,'Earthen Sagacity',5,5,4294967295,4294967295,8283,8283,1,4294967295,7357,5,0,0,65534,1,81,0,16,4294967295,1,0,5,8283,6,0,0,0,0),(8288,'Earthen Brilliance',5,5,4294967295,4294967295,8288,8288,1,4294967295,7357,5,0,0,65534,1,81,0,16,4294967295,1,0,5,8288,6,0,0,0,0),(8293,'Earthen Allure',5,5,4294967295,4294967295,8293,8293,1,4294967295,7357,5,0,0,65534,1,81,0,16,4294967295,1,0,5,8293,6,0,0,0,0),(4678,'Planar Power III',5,5,4294967295,4294967295,418,418,4,4294967295,1001,5,0,0,65534,1,71,0,12,4294967295,1,0,20,418,4,0,10,7547,1),(7547,'Planar Power IV',5,5,4294967295,4294967295,418,418,4,4294967295,4678,5,0,0,65534,1,81,0,15,4294967295,1,0,20,418,5,0,15,0,1),(12423,'Critical Affliction III',9,3,4294967295,4294967295,767,767,7,4294967295,1099,3,0,0,36192,0,81,3,16,4294967295,2,0,9,767,6,0,6,0,0),(7647,'Persistent Casting II',6,3,4294967295,4294967295,692,692,6,4294967295,692,3,0,0,64892,0,81,0,15,4294967295,2,0,9,692,5,0,3,7670,2),(7670,'Persistent Casting III',7,3,4294967295,4294967295,692,692,6,4294967295,7647,3,0,0,64892,0,85,2,16,4294967295,2,0,9,692,6,0,6,0,0),(8224,'Cascade of Life',5,3,4294967295,4294967295,8224,8224,7,4294967295,1486,5,0,0,1092,0,75,0,15,4294967295,2,0,3,8224,5,0,0,0,5),(5529,'Abundant Healing II',7,5,4294967295,4294967295,1486,1486,7,0,1486,5,0,0,1092,0,76,2,14,4294967295,2,0,15,1486,4,0,5,7554,1),(7554,'Abundant Healing III',7,5,4294967295,4294967295,1486,1486,7,0,5529,5,0,0,1092,0,81,2,15,4294967295,2,0,15,1486,5,0,10,0,1),(4755,'Destructive Fury II',6,3,4294967295,4294967295,1210,1210,7,4294967295,1210,3,0,0,4096,0,71,1,12,4294967295,2,0,9,1210,4,0,3,0,2),(5557,'Enhanced Aggression III',5,5,4294967295,4294967295,1592,8232,7,4294967295,4725,5,0,0,33722,1,76,0,14,4294967295,2,0,25,1592,4,0,10,7568,1),(7582,'Destructive Fury IV',8,3,4294967295,4294967295,1210,1210,7,4294967295,5557,3,0,0,27716,0,81,2,15,4294967295,2,0,9,1210,5,0,9,0,2),(4779,'Healing Gift IV',6,3,4294967295,4294967295,30404,30405,7,4294967295,1086,3,0,0,33884,0,71,1,12,4294967295,2,0,21,80,4,0,9,5592,2),(5592,'Healing Gift V',7,3,4294967295,4294967295,30404,30405,7,4294967295,4779,3,0,0,33884,0,76,2,14,4294967295,2,0,21,80,4,0,12,7590,2),(7590,'Healing Gift VI',7,3,4294967295,4294967295,30404,30405,7,4294967295,5592,3,0,0,33884,0,81,2,15,4294967295,2,0,21,80,5,0,15,12454,2),(12454,'Healing Gift VII',12,3,4294967295,4294967295,30404,30405,7,4294967295,7590,0,0,0,33884,0,85,2,16,4294967295,2,0,21,80,6,0,18,0,0),(4773,'Gift of Radiant Mana',9,1,4294967295,4294967295,4773,4773,7,0,1435,3,0,0,31812,0,71,0,12,4294967295,2,0,1,4773,4,0,0,0,0),(6517,'Gift of Exquisite Radiant Mana',9,1,4294967295,4294967295,4773,4773,7,0,4773,1,0,0,31812,0,76,0,14,4294967295,2,0,1,6517,4,0,0,0,0),(7621,'Gift of Amazing Exquisite Radiant Mana',9,1,4294967295,4294967295,4773,4773,7,0,6517,1,0,0,31812,0,81,0,15,4294967295,2,0,1,6517,5,0,0,0,0),(8235,'Armor of Wisdom',6,5,4294967295,4294967295,8235,8235,7,4294967295,0,0,0,0,2,0,81,0,15,4294967295,2,0,10,8235,5,0,0,8305,1),(8305,'Armor of Wisdom II',6,5,4294967295,4294967295,8235,8235,7,4294967295,0,0,0,0,2,0,85,0,16,4294967295,2,0,10,8235,6,0,5,0,0),(4721,'Finishing Blow IV',3,3,4294967295,4294967295,119,119,7,4294967295,1053,3,0,0,33722,1,71,0,12,4294967295,2,0,21,119,4,0,9,5554,2),(5554,'Finishing Blow V',7,3,4294967295,4294967295,119,119,7,4294967295,4721,3,0,0,33722,1,76,2,14,4294967295,2,0,21,119,4,0,12,7565,2),(7565,'Finishing Blow VI',7,3,4294967295,4294967295,119,119,7,4294967295,5554,3,0,0,33722,1,81,2,15,4294967295,2,0,21,119,4,0,15,6023,2),(6023,'Finishing Blow VII',12,3,4294967295,4294967295,119,119,7,4294967295,7565,3,0,0,33722,1,85,0,16,4294967295,2,0,21,119,6,0,18,0,0),(4739,'Killing Spree',3,3,4294967295,4294967295,4739,4739,7,4294967295,0,0,0,0,642,1,71,3,12,4294967295,2,0,9,4739,4,0,0,5562,2),(5562,'Killing Spree II',7,3,4294967295,4294967295,4739,4739,7,4294967295,4739,3,0,0,642,1,76,2,14,4294967295,2,0,9,4739,4,0,3,7573,2),(7573,'Killing Spree III',7,3,4294967295,4294967295,4739,4739,7,4294967295,5562,3,0,0,642,1,76,2,15,4294967295,2,0,9,4739,5,0,6,0,0),(8198,'Empowered Ingenuity',4,3,4294967295,4294967295,8198,8198,7,4294967295,625,3,0,0,642,1,65,0,15,4294967295,2,0,3,8198,5,0,0,0,0),(4733,'Ingenuity II',3,3,4294967295,4294967295,4733,4733,5,4294967295,625,3,0,0,642,1,71,0,12,4294967295,2,0,9,625,4,0,3,7641,2),(7641,'Ingenuity III',3,3,4294967295,4294967295,4733,4733,5,4294967295,4733,3,0,0,642,1,76,0,15,4294967295,2,0,9,625,5,0,6,0,0),(1592,'Enhanced Aggression',5,5,4294967295,4294967295,1592,1592,7,4294967295,0,0,0,0,33722,1,70,0,10,4294967295,2,0,25,1592,1,0,0,4725,0),(4725,'Enhanced Aggression II',5,5,4294967295,4294967295,1592,1592,7,4294967295,1592,5,0,0,33722,1,71,0,12,4294967295,2,0,25,1592,4,0,5,5557,1),(7568,'Enhanced Aggression IV',5,5,4294967295,4294967295,1592,1592,7,4294967295,5557,5,0,0,33722,1,81,0,15,4294967295,2,0,25,1592,5,0,15,12439,1),(12439,'Enhanced Aggression V',5,5,4294967295,4294967295,1592,1592,7,4294967295,7568,5,0,0,33722,1,85,0,16,4294967295,2,0,25,1592,6,0,20,0,0),(8232,'Extended Ingenuity',4,3,4294967295,4294967295,8232,8232,7,4294967295,0,0,0,0,642,1,65,0,15,4294967295,2,0,4,8232,5,0,0,8261,0),(8261,'Extended Ingenuity',4,1,4294967295,4294967295,8232,8232,7,4294967295,8232,5,0,0,642,1,80,0,16,4294967295,2,0,4,8232,6,0,3,0,0),(10367,'Ageless Enmity',12,1,10367,10367,10367,10367,7,21751,0,0,30,360,2,0,85,0,16,4294967295,2,0,1,10367,6,0,0,0,0),(5534,'Punishing Blade III',8,3,4294967295,4294967295,599,599,7,4294967295,1536,3,0,0,146,1,76,2,14,4294967295,2,0,12,599,4,0,6,7659,2),(7659,'Punishing Blade IV',8,3,4294967295,4294967295,599,599,7,4294967295,5534,3,0,0,146,1,81,2,15,4294967295,2,0,12,599,5,0,9,0,2),(8215,'Hard Endurance',5,5,4294967295,4294967295,8215,8215,7,4294967295,0,0,0,0,642,1,65,0,15,4294967295,2,0,5,8215,5,0,0,0,5),(1036,'Fitness',5,3,4294967295,4294967295,1036,1036,7,4294967295,683,3,0,0,642,1,66,0,8,4294967295,2,0,15,683,1,0,3,5130,0),(5130,'Heightened Endurance III',5,5,4294967295,4294967295,683,683,7,4294967295,1036,3,0,0,642,1,71,0,12,4294967295,2,0,15,683,1,0,6,6080,1),(6080,'Heightened Endurance IV',5,2,4294967295,4294967295,683,683,7,4294967295,5130,5,0,0,642,1,75,0,14,4294967295,2,0,15,683,4,0,11,7604,0),(7604,'Heightened Endurance IV',5,2,4294967295,4294967295,683,683,7,4294967295,6080,2,0,0,642,1,80,0,15,4294967295,2,0,15,683,5,0,13,0,0),(5516,'Shield Block II',8,3,4294967295,4294967295,1287,1287,7,0,1287,3,0,0,42,0,76,1,14,4294967295,2,0,9,1287,4,0,3,12469,2),(12469,'Shield Block III',7,3,4294967295,4294967295,1287,1287,7,0,5516,3,0,0,42,0,81,2,16,4294967295,2,0,9,1287,6,0,6,0,0),(5317,'Spell Casting Subtlety II',4,3,4294967295,4294967295,738,738,6,0,738,3,0,0,1092,0,71,0,12,4294967295,2,0,12,738,4,0,3,5628,2),(5628,'Spell Casting Subtlety III',7,3,4294967295,4294967295,738,738,6,0,5317,3,0,0,1092,0,76,2,14,4294967295,2,0,12,738,4,0,6,7583,2),(7583,'Spell Casting Subtlety IV',7,3,4294967295,4294967295,738,738,6,0,5628,3,0,0,1092,0,81,2,15,4294967295,2,0,12,738,5,0,9,0,2),(12449,'Healing Adept IV',10,3,4294967295,4294967295,77,77,7,4294967295,1083,3,0,0,33884,0,81,1,16,4294967295,2,0,12,77,6,0,9,0,0),(7501,'Combat Agility VI',7,5,4294967295,4294967295,125,125,7,4294967295,5519,5,0,0,65534,1,81,1,15,4294967295,1,0,33,125,5,0,23,12396,1),(12396,'Combat Agility VII',8,5,4294967295,4294967295,125,125,7,4294967295,7501,5,0,0,65534,1,85,1,16,4294967295,1,0,33,125,6,0,28,0,0),(7506,'Combat Stability VI',7,5,4294967295,4294967295,122,122,7,4294967295,5524,5,0,0,65534,1,81,1,15,4294967295,1,0,33,122,5,0,23,12401,1),(12401,'Combat Stability VII',8,5,4294967295,4294967295,122,122,7,4294967295,7506,5,0,0,65534,1,85,1,16,4294967295,1,0,33,122,6,0,28,0,0),(1389,'Delay Death II',3,5,4294967295,4294967295,1206,1206,1,4294967295,1026,5,0,0,65534,1,70,0,10,4294967295,1,0,25,1026,1,0,5,4683,0),(4683,'Delay Death III',3,5,4294967295,4294967295,1206,1206,1,4294967295,1389,5,0,0,65534,1,71,0,12,4294967295,1,0,25,1026,4,0,10,6523,1),(6523,'Delay Death IV',3,5,4294967295,4294967295,1206,1206,1,4294967295,4683,5,0,0,65534,1,76,0,14,4294967295,1,0,25,1026,4,0,15,7511,1),(7511,'Delay Death V',3,5,4294967295,4294967295,1206,1206,1,4294967295,6523,5,0,0,65534,1,81,0,15,4294967295,1,0,25,1026,5,0,20,0,1),(1056,'Energetic Attunement',3,5,4294967295,4294967295,1206,1206,1,4294967295,0,0,0,0,65534,1,71,0,12,4294967295,1,0,15,1056,4,0,0,6431,1),(6431,'Energetic Attunement II',3,5,4294967295,4294967295,1643,1643,1,4294967295,1056,5,0,0,65534,1,76,0,14,4294967295,1,0,15,1056,4,0,5,7522,1),(7522,'Energetic Attunement III',3,5,4294967295,4294967295,1643,1643,1,4294967295,6431,5,0,0,65534,1,81,0,15,4294967295,1,0,15,1056,5,0,10,0,1),(6119,'General Sturdiness',6,5,4294967295,4294967295,6119,6119,1,4294967295,0,0,0,0,65534,1,76,0,14,4294967295,1,0,15,6119,4,0,0,7527,1),(7527,'General Sturdiness II',6,5,4294967295,4294967295,6119,6119,1,4294967295,6119,5,0,0,65534,1,81,0,15,4294967295,1,0,15,6119,5,0,5,12406,1),(12406,'General Sturdiness III',6,5,4294967295,4294967295,6119,6119,1,4294967295,7526,5,0,0,65534,1,81,0,16,4294967295,1,0,15,6119,6,0,10,0,0),(7516,'Discordant Defiance II',5,5,4294967295,4294967295,1006,1006,1,4294967295,1006,5,0,0,65534,1,71,0,15,4294967295,1,0,10,1006,5,0,5,0,0),(6521,'Mystical Attuning II',5,2,4294967295,4294967295,1021,1021,1,4294967295,1021,5,0,0,65534,1,75,0,14,4294967295,1,0,12,1021,4,0,5,7539,5),(7539,'Mystical Attuning III',5,5,4294967295,4294967295,1021,1021,1,4294967295,6521,2,0,0,65534,1,80,0,16,4294967295,1,0,12,1021,6,0,7,0,0),(5045,'Mystical Shielding',9,1,4294967295,4294967295,1057,1057,1,4294967295,0,0,0,0,65534,1,85,0,16,4294967295,1,0,1,1057,6,0,0,0,0),(8228,'Mental Fortitude',5,3,4294967295,4294967295,8828,8828,1,4294967295,0,0,0,0,65534,1,75,0,15,4294967295,1,0,3,8228,5,0,0,0,5),(7050,'Mastery of the Past II',5,3,4294967295,4294967295,735,735,5,4294967295,0,0,0,0,33884,0,67,0,8,4294967295,2,0,15,735,1,0,3,7053,0),(7053,'Mastery of the Past III',7,3,4294967295,4294967295,735,735,5,4294967295,7050,3,0,0,33884,0,71,0,12,4294967295,2,0,15,735,4,0,6,7063,2),(7063,'Mastery of the Past IV',8,3,4294967295,4294967295,735,735,5,4294967295,7053,3,0,0,33884,0,76,0,14,4294967295,2,0,15,735,4,0,9,7622,2),(7622,'Mastery of the Past V',8,3,4294967295,4294967295,735,735,5,4294967295,7063,3,0,0,33884,0,81,0,15,4294967295,2,0,15,735,5,0,12,0,2),(895,'Intense Hatred',5,5,4294967295,4294967295,895,895,3,4294967295,0,0,0,0,32,0,65,0,7,4294967295,3,0,5,895,1,0,0,0,0),(1230,'Nature\'s Bounty',1,3,4294967295,4294967295,1230,1230,7,0,0,0,0,0,80,0,51,1,8,4294967295,3,0,6,1230,1,0,0,5000,2),(5000,'Survivalist',2,3,4294967295,4294967295,5000,5000,7,4294967295,1230,3,0,0,80,0,71,0,12,4294967295,3,0,6,1230,1,0,3,0,2),(1604,'Anatomy',5,3,4294967295,4294967295,1604,1604,1,4294967295,0,0,0,0,512,0,60,1,10,4294967295,3,0,3,1604,1,0,0,0,0),(1209,'Sanctuary',12,1,1209,4294967295,1209,1209,3,5912,0,0,14,4320,4,0,70,0,8,4294967295,3,0,1,1209,1,0,0,0,0),(4698,'Quick Draw',5,1,4294967295,4294967295,4698,4698,1,4294967295,0,0,0,0,65534,1,51,0,12,4294967295,1,0,2,4698,4,0,0,6545,0),(6545,'Quick Draw II',5,1,4294967295,4294967295,4698,4698,1,4294967295,4698,1,0,0,65534,1,56,0,14,4294967295,1,0,2,4698,5,0,1,0,0); + +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,1,0,0,0,0,0,0,0),(828,1,3600,5241,1,0,0,0,0,0,0,0),(828,2,3600,5242,1,0,0,0,0,0,0,0),(831,0,1800,4564,2,0,0,0,0,0,0,0),(831,1,1800,4565,2,0,0,0,0,0,0,0),(831,2,1800,4566,2,0,0,0,0,0,0,0),(872,0,180,4802,0,0,0,0,0,0,0,0),(872,1,180,4803,0,0,0,0,0,0,0,0),(872,2,180,4804,0,0,0,0,0,0,0,0),(875,0,180,4805,0,0,0,0,0,0,0,0),(875,1,180,4806,0,0,0,0,0,0,0,0),(875,2,180,4807,0,0,0,0,0,0,0,0),(860,0,180,3297,0,0,0,0,0,0,0,0),(860,1,180,3298,0,0,0,0,0,0,0,0),(860,2,180,3299,0,0,0,0,0,0,0,0),(863,0,4320,5248,0,0,0,0,0,0,0,0),(900,0,720,4826,2,0,0,0,0,0,0,0),(900,1,720,4827,2,0,0,0,0,0,0,0),(1478,2,1,8408,1,0,0,0,0,0,0,0),(1478,1,1,8407,1,0,0,0,0,0,0,0),(1478,0,1,8406,1,0,0,0,0,0,0,0),(746,0,2160,4549,1,0,0,0,0,0,0,0),(746,1,2160,4550,1,0,0,0,0,0,0,0),(746,2,2160,4551,1,0,0,0,0,0,0,0),(749,0,1800,4790,1,0,0,0,0,0,0,0),(749,1,1800,4791,1,0,0,0,0,0,0,0),(749,2,1800,4792,1,0,0,0,0,0,0,0),(749,3,1800,4793,1,0,0,0,0,0,0,0),(749,4,1800,4794,1,0,0,0,0,0,0,0),(757,0,1800,4796,1,0,0,0,0,0,0,0),(757,1,1800,4797,1,0,0,0,0,0,0,0),(757,2,1800,4798,1,0,0,0,0,0,0,0),(757,3,1800,4799,1,0,0,0,0,0,0,0),(757,4,1800,4800,1,0,0,0,0,0,0,0),(1149,0,1320,5853,1,0,0,0,0,0,0,0),(1150,0,2160,5848,1,0,0,0,0,0,0,0),(1150,1,2160,5849,1,0,0,0,0,0,0,0),(1150,2,2160,5850,1,0,0,0,0,0,0,0),(773,0,1800,4552,2,0,0,0,0,0,0,0),(773,1,1800,4553,2,0,0,0,0,0,0,0),(773,2,1800,4554,2,0,0,0,0,0,0,0),(785,0,900,5235,1,0,0,0,0,0,0,0),(785,1,900,5236,1,0,0,0,0,0,0,0),(785,2,900,5237,1,0,0,0,0,0,0,0),(785,3,900,5238,1,0,0,0,0,0,0,0),(785,4,900,5239,1,0,0,0,0,0,0,0),(702,0,18,4842,2,0,0,0,0,0,0,0),(702,1,18,4843,2,0,0,0,0,0,0,0),(702,2,18,4844,2,0,0,0,0,0,0,0),(702,3,18,4845,2,0,0,0,0,0,0,0),(702,4,18,4846,2,0,0,0,0,0,0,0),(209,0,5,5919,0,0,0,0,0,0,0,0),(1373,0,72000,6882,0,0,0,0,0,0,0,0),(1371,0,72000,6880,0,0,0,0,0,0,0,0),(1372,0,72000,6881,0,0,0,0,0,0,0,0),(1374,0,590400,6883,0,0,0,0,0,0,0,0),(1376,0,259200,6885,0,0,0,0,0,0,0,0),(1375,0,72000,6884,0,0,0,0,0,0,0,0),(1377,0,14400,6886,0,0,0,0,0,0,0,0),(7800,0,4320,13531,2,0,0,0,596,17,0,0),(7800,1,4320,13532,2,0,0,0,596,17,0,0),(7800,2,4320,13533,2,0,0,0,596,17,0,0),(7800,3,4320,13534,2,0,0,0,596,17,0,0),(7800,4,4320,13535,2,0,0,0,596,17,0,0),(7800,5,4320,13536,2,0,0,0,596,17,0,0),(7800,6,4320,13537,2,0,0,0,596,17,0,0),(7800,7,4320,13538,2,0,0,0,596,17,0,0),(7800,8,4320,13539,2,0,0,0,596,17,0,0),(7800,9,4320,13540,2,0,0,0,596,17,0,0),(7800,10,4320,13541,2,0,0,0,596,17,0,0),(7800,11,4320,13542,2,0,0,0,596,17,0,0),(7800,12,4320,13543,2,0,0,0,596,17,0,0),(7800,13,4320,13544,2,0,0,0,596,17,0,0),(7800,14,4320,13545,2,0,0,0,596,17,0,0),(7800,15,4320,13562,2,0,0,0,596,17,0,0),(7800,16,4320,13563,2,0,0,0,596,17,0,0),(7850,0,4320,13546,2,0,0,0,593,17,0,0),(7850,1,4320,13547,2,0,0,0,593,17,0,0),(7850,2,4320,13548,2,0,0,0,593,17,0,0),(7850,3,4320,13549,2,0,0,0,593,17,0,0),(7850,4,4320,13550,2,0,0,0,593,17,0,0),(7850,5,4320,13551,2,0,0,0,593,17,0,0),(7850,6,4320,13552,2,0,0,0,593,17,0,0),(7850,7,4320,13553,2,0,0,0,593,17,0,0),(7850,8,4320,13554,2,0,0,0,593,17,0,0),(7850,9,4320,13555,2,0,0,0,593,17,0,0),(7850,10,4320,13556,2,0,0,0,593,17,0,0),(7850,11,4320,13557,2,0,0,0,593,17,0,0),(7850,12,4320,13558,2,0,0,0,593,17,0,0),(7850,13,4320,13559,2,0,0,0,593,17,0,0),(7850,14,4320,13560,2,0,0,0,593,17,0,0),(7850,15,4320,13561,2,0,0,0,593,17,0,0),(7850,16,4320,16028,2,0,0,0,593,17,0,0),(5150,0,300,11112,1,0,0,0,0,0,0,0),(5150,1,300,11113,1,0,0,0,0,0,0,0),(5150,2,300,11114,1,0,0,0,0,0,0,0),(5150,3,300,11115,1,0,0,0,0,0,0,0),(5150,4,300,11116,1,0,0,0,0,0,0,0),(5150,5,300,11117,1,0,0,0,0,0,0,0),(5150,6,300,11118,1,0,0,0,0,0,0,0),(5150,7,300,11119,1,0,0,0,0,0,0,0),(5150,8,300,11120,1,0,0,0,0,0,0,0),(5150,9,300,11121,1,0,0,0,0,0,0,0),(5150,10,300,11122,1,0,0,0,0,0,0,0),(5150,11,300,11123,1,0,0,0,0,0,0,0),(5150,12,300,11124,1,0,0,0,0,0,0,0),(5150,13,300,11125,1,0,0,0,0,0,0,0),(5150,14,300,11126,1,0,0,0,0,0,0,0),(5165,0,300,11127,1,0,0,0,0,0,0,0),(5165,1,300,11128,1,0,0,0,0,0,0,0),(5165,2,300,11129,1,0,0,0,0,0,0,0),(5165,3,300,11130,1,0,0,0,0,0,0,0),(5165,4,300,11131,1,0,0,0,0,0,0,0),(5165,5,300,11132,1,0,0,0,0,0,0,0),(5165,6,300,11133,1,0,0,0,0,0,0,0),(5165,7,300,11134,1,0,0,0,0,0,0,0),(5165,8,300,11135,1,0,0,0,0,0,0,0),(5165,9,300,11136,1,0,0,0,0,0,0,0),(5165,10,300,11137,1,0,0,0,0,0,0,0),(5165,11,300,11138,1,0,0,0,0,0,0,0),(5165,12,300,11139,1,0,0,0,0,0,0,0),(5165,13,300,11140,1,0,0,0,0,0,0,0),(5165,14,300,11141,1,0,0,0,0,0,0,0),(5180,0,300,11142,1,0,0,0,0,0,0,0),(5180,1,300,11143,1,0,0,0,0,0,0,0),(5180,2,300,11144,1,0,0,0,0,0,0,0),(5180,3,300,11145,1,0,0,0,0,0,0,0),(5180,4,300,11146,1,0,0,0,0,0,0,0),(5180,5,300,11147,1,0,0,0,0,0,0,0),(5180,6,300,11148,1,0,0,0,0,0,0,0),(5180,7,300,11149,1,0,0,0,0,0,0,0),(5180,8,300,11150,1,0,0,0,0,0,0,0),(5180,9,300,11151,1,0,0,0,0,0,0,0),(5180,10,300,11152,1,0,0,0,0,0,0,0),(5180,11,300,11153,1,0,0,0,0,0,0,0),(5180,12,300,11154,1,0,0,0,0,0,0,0),(5180,13,300,11155,1,0,0,0,0,0,0,0),(5180,14,300,11156,1,0,0,0,0,0,0,0),(5195,0,300,11157,1,0,0,0,0,0,0,0),(5195,1,300,11158,1,0,0,0,0,0,0,0),(5195,2,300,11159,1,0,0,0,0,0,0,0),(5195,3,300,11160,1,0,0,0,0,0,0,0),(5195,4,300,11161,1,0,0,0,0,0,0,0),(5195,5,300,11162,1,0,0,0,0,0,0,0),(5195,6,300,11163,1,0,0,0,0,0,0,0),(5195,7,300,11164,1,0,0,0,0,0,0,0),(5195,8,300,11165,1,0,0,0,0,0,0,0),(5195,9,300,11166,1,0,0,0,0,0,0,0),(5195,10,300,11167,1,0,0,0,0,0,0,0),(5195,11,300,11168,1,0,0,0,0,0,0,0),(5195,12,300,11169,1,0,0,0,0,0,0,0),(5195,13,300,11170,1,0,0,0,0,0,0,0),(5195,14,300,11171,1,0,0,0,0,0,0,0),(5210,0,300,11172,1,0,0,0,0,0,0,0),(5210,1,300,11173,1,0,0,0,0,0,0,0),(5210,2,300,11174,1,0,0,0,0,0,0,0),(5210,3,300,11175,1,0,0,0,0,0,0,0),(5210,4,300,11176,1,0,0,0,0,0,0,0),(5210,5,300,11177,1,0,0,0,0,0,0,0),(5210,6,300,11178,1,0,0,0,0,0,0,0),(5210,7,300,11179,1,0,0,0,0,0,0,0),(5210,8,300,11180,1,0,0,0,0,0,0,0),(5210,9,300,11181,1,0,0,0,0,0,0,0),(5210,10,300,11182,1,0,0,0,0,0,0,0),(5210,11,300,11183,1,0,0,0,0,0,0,0),(5210,12,300,11184,1,0,0,0,0,0,0,0),(5210,13,300,11185,1,0,0,0,0,0,0,0),(5210,14,300,11186,1,0,0,0,0,0,0,0),(5225,0,300,11187,1,0,0,0,0,0,0,0),(5225,1,300,11188,1,0,0,0,0,0,0,0),(5225,2,300,11189,1,0,0,0,0,0,0,0),(5225,3,300,11190,1,0,0,0,0,0,0,0),(5225,4,300,11191,1,0,0,0,0,0,0,0),(5225,5,300,11192,1,0,0,0,0,0,0,0),(5225,6,300,11193,1,0,0,0,0,0,0,0),(5225,7,300,11194,1,0,0,0,0,0,0,0),(5225,8,300,11195,1,0,0,0,0,0,0,0),(5225,9,300,11196,1,0,0,0,0,0,0,0),(5225,10,300,11197,1,0,0,0,0,0,0,0),(5225,11,300,11198,1,0,0,0,0,0,0,0),(5225,12,300,11199,1,0,0,0,0,0,0,0),(5225,13,300,11200,1,0,0,0,0,0,0,0),(5225,14,300,11201,1,0,0,0,0,0,0,0),(1647,0,30,8771,1,0,0,0,0,0,0,0),(4702,0,600,9475,1,0,0,0,0,0,0,0),(4703,0,600,12752,1,0,0,0,0,0,0,0),(4704,0,600,9477,1,0,0,0,0,0,0,0),(4705,0,600,9478,1,0,0,0,0,0,0,0),(4706,0,600,9479,1,0,0,0,0,0,0,0),(4707,0,600,12748,1,0,0,0,0,0,0,0),(4708,0,600,12751,5,0,0,0,0,0,0,0),(4709,0,600,12750,1,0,0,0,0,0,0,0),(4710,0,600,12749,1,0,0,0,0,0,0,0),(723,0,60,4788,2,0,0,0,0,0,0,0),(4665,0,4320,9177,0,0,0,0,0,0,0,0),(1597,0,10,8271,2,0,0,0,0,0,0,0),(912,0,3600,4925,1,0,0,0,1583,10,0,0),(912,1,3600,4926,1,0,0,0,1583,10,0,0),(912,2,3600,4927,1,0,0,0,1583,10,0,0),(1330,1,3600,5936,1,0,0,0,1583,10,0,0),(1330,2,3600,5937,1,0,0,0,1583,10,0,0),(1330,3,3600,5938,1,0,0,0,1583,10,0,0),(1327,0,900,5933,2,0,0,0,0,0,0,0),(1327,1,900,5934,2,0,0,0,0,0,0,0),(1327,2,900,5935,2,0,0,0,0,0,0,0),(1323,0,2160,5932,1,0,0,0,0,0,0,0),(10367,1,360,21751,2,0,0,0,0,0,0,0),(1209,0,4320,5912,1,0,0,0,0,0,0,0); diff --git a/world/worlddb.cpp b/world/worlddb.cpp index 3c9e3f128..955c0b897 100644 --- a/world/worlddb.cpp +++ b/world/worlddb.cpp @@ -222,15 +222,37 @@ void WorldDatabase::GetCharSelectInfo(uint32 account_id, CharacterSelect_Struct* int WorldDatabase::MoveCharacterToBind(int CharID, uint8 bindnum) { /* if an invalid bind point is specified, use the primary bind */ - if (bindnum > 4){ bindnum = 0; } - int is_home = 0; - if (bindnum == 4){ is_home = 1; } - - std::string query = StringFormat("SELECT `zone_id` FROM `character_bind` WHERE `id` = %u AND `is_home` = %u LIMIT 1", CharID, is_home); - auto results = database.QueryDatabase(query); int i = 0; - for (auto row = results.begin(); row != results.end(); ++row) { - return atoi(row[0]); + if (bindnum > 4) + { + bindnum = 0; } + + std::string query = StringFormat("SELECT zone_id, instance_id, x, y, z FROM character_bind WHERE id = %u AND is_home = %u LIMIT 1", CharID, bindnum == 4 ? 1 : 0); + auto results = database.QueryDatabase(query); + if(!results.Success() || results.RowCount() == 0) { + return 0; + } + + int zone_id, instance_id; + double x, y, z, heading; + for (auto row = results.begin(); row != results.end(); ++row) { + zone_id = atoi(row[0]); + instance_id = atoi(row[1]); + x = atof(row[2]); + y = atof(row[3]); + z = atof(row[4]); + heading = atof(row[5]); + } + + query = StringFormat("UPDATE character_data SET zone_id = '%d', zone_instance = '%d', x = '%f', y = '%f', z = '%f', heading = '%f' WHERE id = %u", + zone_id, instance_id, x, y, z, heading, CharID); + + results = database.QueryDatabase(query); + if(!results.Success()) { + return 0; + } + + return zone_id; } bool WorldDatabase::GetStartZone(PlayerProfile_Struct* in_pp, CharCreate_Struct* in_cc) @@ -239,7 +261,7 @@ bool WorldDatabase::GetStartZone(PlayerProfile_Struct* in_pp, CharCreate_Struct* return false; in_pp->x = in_pp->y = in_pp->z = in_pp->heading = in_pp->zone_id = 0; - in_pp->binds[0].x = in_pp->binds[0].y = in_pp->binds[0].z = in_pp->binds[0].zoneId = 0; + in_pp->binds[0].x = in_pp->binds[0].y = in_pp->binds[0].z = in_pp->binds[0].zoneId = in_pp->binds[0].instance_id = 0; std::string query = StringFormat("SELECT x, y, z, heading, zone_id, bind_id " "FROM start_zones WHERE player_choice = % i " @@ -267,79 +289,79 @@ bool WorldDatabase::GetStartZone(PlayerProfile_Struct* in_pp, CharCreate_Struct* } case 1: { - in_pp->zone_id =2; // qeynos2 + in_pp->zone_id = 2; // qeynos2 in_pp->binds[0].zoneId = 2; // qeynos2 break; } case 2: { - in_pp->zone_id =29; // halas + in_pp->zone_id = 29; // halas in_pp->binds[0].zoneId = 30; // everfrost break; } case 3: { - in_pp->zone_id =19; // rivervale + in_pp->zone_id = 19; // rivervale in_pp->binds[0].zoneId = 20; // kithicor break; } case 4: { - in_pp->zone_id =9; // freportw + in_pp->zone_id = 9; // freportw in_pp->binds[0].zoneId = 9; // freportw break; } case 5: { - in_pp->zone_id =40; // neriaka + in_pp->zone_id = 40; // neriaka in_pp->binds[0].zoneId = 25; // nektulos break; } case 6: { - in_pp->zone_id =52; // gukta + in_pp->zone_id = 52; // gukta in_pp->binds[0].zoneId = 46; // innothule break; } case 7: { - in_pp->zone_id =49; // oggok + in_pp->zone_id = 49; // oggok in_pp->binds[0].zoneId = 47; // feerrott break; } case 8: { - in_pp->zone_id =60; // kaladima + in_pp->zone_id = 60; // kaladima in_pp->binds[0].zoneId = 68; // butcher break; } case 9: { - in_pp->zone_id =54; // gfaydark + in_pp->zone_id = 54; // gfaydark in_pp->binds[0].zoneId = 54; // gfaydark break; } case 10: { - in_pp->zone_id =61; // felwithea + in_pp->zone_id = 61; // felwithea in_pp->binds[0].zoneId = 54; // gfaydark break; } case 11: { - in_pp->zone_id =55; // akanon + in_pp->zone_id = 55; // akanon in_pp->binds[0].zoneId = 56; // steamfont break; } case 12: { - in_pp->zone_id =82; // cabwest + in_pp->zone_id = 82; // cabwest in_pp->binds[0].zoneId = 78; // fieldofbone break; } case 13: { - in_pp->zone_id =155; // sharvahl + in_pp->zone_id = 155; // sharvahl in_pp->binds[0].zoneId = 155; // sharvahl break; } @@ -378,7 +400,7 @@ bool WorldDatabase::GetStartZoneSoF(PlayerProfile_Struct* in_pp, CharCreate_Stru return false; in_pp->x = in_pp->y = in_pp->z = in_pp->heading = in_pp->zone_id = 0; - in_pp->binds[0].x = in_pp->binds[0].y = in_pp->binds[0].z = in_pp->binds[0].zoneId = 0; + in_pp->binds[0].x = in_pp->binds[0].y = in_pp->binds[0].z = in_pp->binds[0].zoneId = in_pp->binds[0].instance_id = 0; std::string query = StringFormat("SELECT x, y, z, heading, bind_id FROM start_zones WHERE zone_id = %i " "AND player_class = %i AND player_deity = %i AND player_race = %i", diff --git a/zone/attack.cpp b/zone/attack.cpp index 569466f68..da812e724 100644 --- a/zone/attack.cpp +++ b/zone/attack.cpp @@ -1695,7 +1695,7 @@ bool Client::Death(Mob* killerMob, int32 damage, uint16 spell, SkillUseTypes att dead_timer.Start(5000, true); m_pp.zone_id = m_pp.binds[0].zoneId; - m_pp.zoneInstance = 0; + m_pp.zoneInstance = m_pp.binds[0].instance_id; database.MoveCharacterToZone(this->CharacterID(), database.GetZoneName(m_pp.zone_id)); Save(); GoToDeath(); diff --git a/zone/client.cpp b/zone/client.cpp index ec4c8a63e..f09d24039 100644 --- a/zone/client.cpp +++ b/zone/client.cpp @@ -398,7 +398,7 @@ Client::~Client() { if(IsHoveringForRespawn()) { m_pp.zone_id = m_pp.binds[0].zoneId; - m_pp.zoneInstance = 0; + m_pp.zoneInstance = m_pp.binds[0].instance_id; x_pos = m_pp.binds[0].x; y_pos = m_pp.binds[0].y; z_pos = m_pp.binds[0].z; @@ -543,11 +543,11 @@ bool Client::Save(uint8 iCommitNow) { m_pp.endurance = cur_end; /* Save Character Currency */ - database.SaveCharacterCurrency(this->CharacterID(), &m_pp); + database.SaveCharacterCurrency(CharacterID(), &m_pp); - /* Save Current Bind Points : Sets Instance to 0 because it is currently not implemented */ - database.SaveCharacterBindPoint(this->CharacterID(), m_pp.binds[0].zoneId, 0, m_pp.binds[0].x, m_pp.binds[0].y, m_pp.binds[0].z, 0, 0); /* Regular bind */ - database.SaveCharacterBindPoint(this->CharacterID(), m_pp.binds[4].zoneId, 0, m_pp.binds[4].x, m_pp.binds[4].y, m_pp.binds[4].z, 0, 1); /* Home Bind */ + /* Save Current Bind Points */ + database.SaveCharacterBindPoint(CharacterID(), m_pp.binds[0].zoneId, m_pp.binds[0].instance_id, m_pp.binds[0].x, m_pp.binds[0].y, m_pp.binds[0].z, 0, 0); /* Regular bind */ + database.SaveCharacterBindPoint(CharacterID(), m_pp.binds[4].zoneId, m_pp.binds[4].instance_id, m_pp.binds[4].x, m_pp.binds[4].y, m_pp.binds[4].z, 0, 1); /* Home Bind */ /* Save Character Buffs */ database.SaveBuffs(this); @@ -3848,7 +3848,8 @@ void Client::Sacrifice(Client *caster) void Client::SendOPTranslocateConfirm(Mob *Caster, uint16 SpellID) { - if(!Caster || PendingTranslocate) return; + if(!Caster || PendingTranslocate) + return; const SPDat_Spell_Struct &Spell = spells[SpellID]; @@ -3856,26 +3857,29 @@ void Client::SendOPTranslocateConfirm(Mob *Caster, uint16 SpellID) { Translocate_Struct *ts = (Translocate_Struct*)outapp->pBuffer; strcpy(ts->Caster, Caster->GetName()); - ts->SpellID = SpellID; + PendingTranslocateData.spell_id = ts->SpellID = SpellID; if((SpellID == 1422) || (SpellID == 1334) || (SpellID == 3243)) { - ts->ZoneID = m_pp.binds[0].zoneId; - ts->x = m_pp.binds[0].x; - ts->y = m_pp.binds[0].y; - ts->z = m_pp.binds[0].z; + PendingTranslocateData.zone_id = ts->ZoneID = m_pp.binds[0].zoneId; + PendingTranslocateData.instance_id = m_pp.binds[0].instance_id; + PendingTranslocateData.x = ts->x = m_pp.binds[0].x; + PendingTranslocateData.y = ts->y = m_pp.binds[0].y; + PendingTranslocateData.z = ts->z = m_pp.binds[0].z; + PendingTranslocateData.heading = m_pp.binds[0].heading; } else { ts->ZoneID = database.GetZoneID(Spell.teleport_zone); + PendingTranslocateData.instance_id = 0; ts->y = Spell.base[0]; ts->x = Spell.base[1]; ts->z = Spell.base[2]; + PendingTranslocateData.heading = 0.0; } ts->unknown008 = 0; ts->Complete = 0; - PendingTranslocateData = *ts; - PendingTranslocate=true; + PendingTranslocate = true; TranslocateTime = time(nullptr); QueuePacket(outapp); @@ -4473,7 +4477,8 @@ void Client::SendRespawnBinds() BindStruct* b = &m_pp.binds[0]; RespawnOption opt; opt.name = "Bind Location"; - opt.zoneid = b->zoneId; + opt.zone_id = b->zoneId; + opt.instance_id = b->instance_id; opt.x = b->x; opt.y = b->y; opt.z = b->z; @@ -4483,7 +4488,8 @@ void Client::SendRespawnBinds() //Rez is always added at the end RespawnOption rez; rez.name = "Resurrect"; - rez.zoneid = zone->GetZoneID(); + rez.zone_id = zone->GetZoneID(); + rez.instance_id = zone->GetInstanceID(); rez.x = GetX(); rez.y = GetY(); rez.z = GetZ(); @@ -4518,7 +4524,7 @@ void Client::SendRespawnBinds() { opt = &(*itr); VARSTRUCT_ENCODE_TYPE(uint32, buffer, count++); //option num (from 0) - VARSTRUCT_ENCODE_TYPE(uint32, buffer, opt->zoneid); + VARSTRUCT_ENCODE_TYPE(uint32, buffer, opt->zone_id); VARSTRUCT_ENCODE_TYPE(float, buffer, opt->x); VARSTRUCT_ENCODE_TYPE(float, buffer, opt->y); VARSTRUCT_ENCODE_TYPE(float, buffer, opt->z); @@ -4891,6 +4897,10 @@ void Client::SetStartZone(uint32 zoneid, float x, float y, float z) return; m_pp.binds[4].zoneId = zoneid; + if(zone->GetInstanceID() != 0 && zone->IsInstancePersistent()) { + m_pp.binds[4].instance_id = zone->GetInstanceID(); + } + if (x == 0 && y == 0 && z ==0) database.GetSafePoints(m_pp.binds[4].zoneId, 0, &m_pp.binds[4].x, &m_pp.binds[4].y, &m_pp.binds[4].z); else { @@ -7946,7 +7956,7 @@ void Client::SendItemScale(ItemInst *inst) { } } -void Client::AddRespawnOption(std::string option_name, uint32 zoneid, float x, float y, float z, float heading, bool initial_selection, int8 position) +void Client::AddRespawnOption(std::string option_name, uint32 zoneid, uint16 instance_id, float x, float y, float z, float heading, bool initial_selection, int8 position) { //If respawn window is already open, any changes would create an inconsistency with the client if (IsHoveringForRespawn()) { return; } @@ -7957,7 +7967,8 @@ void Client::AddRespawnOption(std::string option_name, uint32 zoneid, float x, f //Create respawn option RespawnOption res_opt; res_opt.name = option_name; - res_opt.zoneid = zoneid; + res_opt.zone_id = zoneid; + res_opt.instance_id = instance_id; res_opt.x = x; res_opt.y = y; res_opt.z = z; diff --git a/zone/client.h b/zone/client.h index 025c0744c..4ffe6d57d 100644 --- a/zone/client.h +++ b/zone/client.h @@ -177,7 +177,8 @@ struct XTarget_Struct struct RespawnOption { std::string name; - uint32 zoneid; + uint32 zone_id; + uint16 instance_id; float x; float y; float z; @@ -376,6 +377,7 @@ public: inline const float GetBindZ(uint32 index = 0) const { return m_pp.binds[index].z; } inline const float GetBindHeading(uint32 index = 0) const { return m_pp.binds[index].heading; } inline uint32 GetBindZoneID(uint32 index = 0) const { return m_pp.binds[index].zoneId; } + inline uint32 GetBindInstanceID(uint32 index = 0) const { return m_pp.binds[index].instance_id; } int32 CalcMaxMana(); int32 CalcBaseMana(); const int32& SetMana(int32 amount); @@ -573,10 +575,11 @@ public: uint32 GetGroupEXP() { return(m_pp.group_leadership_exp); } uint32 GetTotalSecondsPlayed() { return(TotalSecondsPlayed); } virtual void SetLevel(uint8 set_level, bool command = false); + void GoToBind(uint8 bindnum = 0); void GoToSafeCoords(uint16 zone_id, uint16 instance_id); void Gate(); - void SetBindPoint(int to_zone = -1, float new_x = 0.0f, float new_y = 0.0f, float new_z = 0.0f); + void SetBindPoint(int to_zone = -1, int to_instance = 0, float new_x = 0.0f, float new_y = 0.0f, float new_z = 0.0f); void SetStartZone(uint32 zoneid, float x = 0.0f, float y =0.0f, float z = 0.0f); uint32 GetStartZone(void); void MovePC(const char* zonename, float x, float y, float z, float heading, uint8 ignorerestrictions = 0, ZoneMode zm = ZoneSolicited); @@ -613,6 +616,7 @@ public: inline uint32 GetWID() const { return WID; } inline void SetWID(uint32 iWID) { WID = iWID; } inline uint32 AccountID() const { return account_id; } + inline const char* AccountName()const { return account_name; } inline int16 Admin() const { return admin; } inline uint32 CharacterID() const { return character_id; } @@ -917,7 +921,7 @@ void SetConsumption(int32 in_hunger, int32 in_thirst); time_t TranslocateTime; bool PendingSacrifice; std::string SacrificeCaster; - struct Translocate_Struct PendingTranslocateData; + PendingTranslocate_Struct PendingTranslocateData; void SendOPTranslocateConfirm(Mob *Caster, uint16 SpellID); // Task System Methods @@ -1057,7 +1061,7 @@ void SetConsumption(int32 in_hunger, int32 in_thirst); void HandleRespawnFromHover(uint32 Option); bool IsHoveringForRespawn() { return RespawnFromHoverTimer.Enabled(); } std::list respawn_options; - void AddRespawnOption(std::string option_name, uint32 zoneid, float x, float y, float z, float h = 0, bool initial_selection = false, int8 position = -1); + void AddRespawnOption(std::string option_name, uint32 zoneid, uint16 instance_id, float x, float y, float z, float h = 0, bool initial_selection = false, int8 position = -1); bool RemoveRespawnOption(std::string option_name); bool RemoveRespawnOption(uint8 position); void ClearRespawnOptions() { respawn_options.clear(); } diff --git a/zone/client_packet.cpp b/zone/client_packet.cpp index 265d7d65d..76ec7b9f2 100644 --- a/zone/client_packet.cpp +++ b/zone/client_packet.cpp @@ -13731,7 +13731,8 @@ void Client::Handle_OP_Translocate(const EQApplicationPacket *app) } Translocate_Struct *its = (Translocate_Struct*)app->pBuffer; - if (!PendingTranslocate) return; + if (!PendingTranslocate) + return; if ((RuleI(Spells, TranslocateTimeLimit) > 0) && (time(nullptr) > (TranslocateTime + RuleI(Spells, TranslocateTimeLimit)))) { Message(13, "You did not accept the Translocate within the required time limit."); @@ -13741,7 +13742,7 @@ void Client::Handle_OP_Translocate(const EQApplicationPacket *app) if (its->Complete == 1) { - int SpellID = PendingTranslocateData.SpellID; + int SpellID = PendingTranslocateData.spell_id; int i = parse->EventSpell(EVENT_SPELL_EFFECT_TRANSLOCATE_COMPLETE, nullptr, this, SpellID, 0); if (i == 0) @@ -13751,20 +13752,19 @@ void Client::Handle_OP_Translocate(const EQApplicationPacket *app) // to the bind coords it has from the PlayerProfile, but with the X and Y reversed. I suspect they are // reversed in the pp, and since spells like Gate are handled serverside, this has not mattered before. if (((SpellID == 1422) || (SpellID == 1334) || (SpellID == 3243)) && - zone->GetZoneID() == PendingTranslocateData.ZoneID) + (zone->GetZoneID() == PendingTranslocateData.zone_id && + zone->GetInstanceID() == PendingTranslocateData.instance_id)) { PendingTranslocate = false; GoToBind(); return; } - EQApplicationPacket* outapp = new EQApplicationPacket(OP_Translocate, sizeof(Translocate_Struct)); - Translocate_Struct *ots = (Translocate_Struct*)outapp->pBuffer; - memcpy(ots, &PendingTranslocateData, sizeof(Translocate_Struct)); - - //Was sending the packet back to initiate client zone... - //but that could be abusable, so lets go through proper channels - MovePC(ots->ZoneID, 0, ots->x, ots->y, ots->z, GetHeading(), 0, ZoneSolicited); + ////Was sending the packet back to initiate client zone... + ////but that could be abusable, so lets go through proper channels + MovePC(PendingTranslocateData.zone_id, PendingTranslocateData.instance_id, + PendingTranslocateData.x, PendingTranslocateData.y, + PendingTranslocateData.z, PendingTranslocateData.heading, 0, ZoneSolicited); } } diff --git a/zone/client_process.cpp b/zone/client_process.cpp index e26dcd2e3..2f46a5688 100644 --- a/zone/client_process.cpp +++ b/zone/client_process.cpp @@ -147,11 +147,11 @@ bool Client::Process() { if(mana_timer.Check()) SendManaUpdatePacket(); - if(dead && dead_timer.Check()) - { - database.MoveCharacterToZone(GetName(),database.GetZoneName(m_pp.binds[0].zoneId)); + if(dead && dead_timer.Check()) { + database.MoveCharacterToZone(GetName(), database.GetZoneName(m_pp.binds[0].zoneId)); + m_pp.zone_id = m_pp.binds[0].zoneId; - m_pp.zoneInstance = 0; + m_pp.zoneInstance = m_pp.binds[0].instance_id; m_pp.x = m_pp.binds[0].x; m_pp.y = m_pp.binds[0].y; m_pp.z = m_pp.binds[0].z; @@ -2120,7 +2120,8 @@ void Client::HandleRespawnFromHover(uint32 Option) BindStruct* b = &m_pp.binds[0]; default_to_bind = new RespawnOption; default_to_bind->name = "Bind Location"; - default_to_bind->zoneid = b->zoneId; + default_to_bind->zone_id = b->zoneId; + default_to_bind->instance_id = b->instance_id; default_to_bind->x = b->x; default_to_bind->y = b->y; default_to_bind->z = b->z; @@ -2129,7 +2130,7 @@ void Client::HandleRespawnFromHover(uint32 Option) is_rez = false; } - if (chosen->zoneid == zone->GetZoneID()) //If they should respawn in the current zone... + if (chosen->zone_id == zone->GetZoneID() && chosen->instance_id == zone->GetInstanceID()) //If they should respawn in the current zone... { if (is_rez) { @@ -2185,6 +2186,7 @@ void Client::HandleRespawnFromHover(uint32 Option) ZonePlayerToBind_Struct* gmg = (ZonePlayerToBind_Struct*) outapp->pBuffer; gmg->bind_zone_id = zone->GetZoneID(); + gmg->bind_instance_id = chosen->instance_id; gmg->x = chosen->x; gmg->y = chosen->y; gmg->z = chosen->z; @@ -2230,13 +2232,13 @@ void Client::HandleRespawnFromHover(uint32 Option) if(r) r->MemberZoned(this); - m_pp.zone_id = chosen->zoneid; - m_pp.zoneInstance = 0; - database.MoveCharacterToZone(this->CharacterID(), database.GetZoneName(chosen->zoneid)); + m_pp.zone_id = chosen->zone_id; + m_pp.zoneInstance = chosen->instance_id; + database.MoveCharacterToZone(CharacterID(), database.GetZoneName(chosen->zone_id)); Save(); - MovePC(chosen->zoneid,chosen->x,chosen->y,chosen->z,chosen->heading,1); + MovePC(chosen->zone_id, chosen->instance_id, chosen->x, chosen->y, chosen->z, chosen->heading, 1); } safe_delete(default_to_bind); diff --git a/zone/command.cpp b/zone/command.cpp index 31c679288..ce3d67fd6 100644 --- a/zone/command.cpp +++ b/zone/command.cpp @@ -150,31 +150,19 @@ int command_init(void) { if ( command_add("resetaa","- Resets a Player's AA in their profile and refunds spent AA's to unspent, disconnects player.",200,command_resetaa) || - command_add("qtest","- QueryServ testing command.",255,command_qtest) || command_add("bind","- Sets your targets bind spot to their current location",200,command_bind) || - command_add("sendop","[opcode] - LE's Private test command, leave it alone",200,command_sendop) || - command_add("optest","- solar's private test command",255,command_optest) || command_add("setstat","- Sets the stats to a specific value.",255,command_setstat) || command_add("incstat","- Increases or Decreases a client's stats permanently.",200,command_incstat) || command_add("help","[search term] - List available commands and their description, specify partial command as argument to search",0,command_help) || command_add("version","- Display current version of EQEmu server",0,command_version) || command_add("setfaction","[faction number] - Sets targeted NPC's faction in the database",170,command_setfaction) || - command_add("serversidename","- Prints target's server side name",0,command_serversidename) || - command_add("testspawn","[memloc] [value] - spawns a NPC for you only, with the specified values set in the spawn struct",200,command_testspawn) || - command_add("testspawnkill","- Sends an OP_Death packet for spawn made with #testspawn",200,command_testspawnkill) || command_add("wc","[wear slot] [material] - Sends an OP_WearChange for your target",200,command_wc) || - command_add("numauths","- TODO: describe this command",200,command_numauths) || command_add("setanim","[animnum] - Set target's appearance to animnum",200,command_setanim) || command_add("connectworldserver","- Make zone attempt to connect to worldserver",200,command_connectworldserver) || command_add("connectworld",nullptr,0,command_connectworldserver) || command_add("serverinfo","- Get OS info about server host",200,command_serverinfo) || - command_add("crashtest","- Crash the zoneserver",200,command_crashtest) || command_add("getvariable","[varname] - Get the value of a variable from the database",200,command_getvariable) || command_add("chat","[channel num] [message] - Send a channel message to all zones",200,command_chat) || - command_add("showpetspell","[spellid/searchstring] - search pet summoning spells",200,command_showpetspell) || - #ifdef IPC - command_add("ipc","- Toggle an NPC's interactive flag",200,command_ipc) || - #endif command_add("npcloot","[show/money/add/remove] [itemid/all/money: pp gp sp cp] - Manipulate the loot an NPC is carrying",80,command_npcloot) || command_add("log","- Search character event log",80,command_log) || command_add("gm","- Turn player target's or your GM flag on or off",80,command_gm) || @@ -182,7 +170,6 @@ int command_init(void) { command_add("zone","[zonename] [x] [y] [z] - Go to specified zone (coords optional)",50,command_zone) || command_add("zoneinstance","[instanceid] [x] [y] [z] - Go to specified instance zone (coords optional)",50,command_zone_instance) || command_add("peqzone","[zonename] - Go to specified zone, if you have > 75% health",0,command_peqzone) || - command_add("tgczone",nullptr,0,command_peqzone) || command_add("showbuffs","- List buffs active on your target or you if no target",50,command_showbuffs) || command_add("movechar","[charname] [zonename] - Move charname to zonename",50,command_movechar) || command_add("viewpetition","[petition number] - View a petition",20,command_viewpetition) || @@ -192,14 +179,12 @@ int command_init(void) { command_add("date","[yyyy] [mm] [dd] [HH] [MM] - Set EQ time",90,command_date) || command_add("time","[HH] [MM] - Set EQ time",90,command_time) || command_add("timezone","[HH] [MM] - Set timezone. Minutes are optional",90,command_timezone) || - command_add("synctod","- Send a time of day update to every client in zone",90,command_synctod) || command_add("invulnerable","[on/off] - Turn player target's or your invulnerable flag on or off",80,command_invul) || command_add("invul",nullptr,0,command_invul) || command_add("hideme","[on/off] - Hide yourself from spawn lists.",80,command_hideme) || command_add("gmhideme",nullptr,0,command_hideme) || command_add("emote","['name'/'world'/'zone'] [type] [message] - Send an emote message",80,command_emote) || command_add("fov","- Check wether you're behind or in your target's field of view",80,command_fov) || - command_add("manastat","- Report your or your target's cur/max mana",80,command_manastat) || command_add("npcstats","- Show stats about target NPC",80,command_npcstats) || command_add("zclip","[min] [max] - modifies and resends zhdr packet",80,command_zclip) || command_add("npccast","[targetname/entityid] [spellid] - Causes NPC target to cast spellid on targetname/entityid",80,command_npccast) || @@ -210,7 +195,6 @@ int command_init(void) { command_add("permagender","[gendernum] - Change your or your player target's gender (zone to take effect)",80,command_permagender) || command_add("weather","[0/1/2/3] (Off/Rain/Snow/Manual) - Change the weather",80,command_weather) || command_add("zheader","[zonename] - Load zheader for zonename from the database",80,command_zheader) || - command_add("zhdr",nullptr,0,command_zheader) || command_add("zsky","[skytype] - Change zone sky type",80,command_zsky) || command_add("zcolor","[red] [green] [blue] - Change sky color",80,command_zcolor) || command_add("zuwcoords","[z coord] - Set underworld coord",80,command_zuwcoords) || @@ -218,7 +202,6 @@ int command_init(void) { command_add("zunderworld","[zcoord] - Sets the underworld using zcoord",80,command_zunderworld) || command_add("spon","- Sends OP_MemorizeSpell",80,command_spon) || command_add("spoff","- Sends OP_ManaChange",80,command_spoff) || - command_add("itemtest","- merth's test function",250,command_itemtest) || command_add("gassign","[id] - Assign targetted NPC to predefined wandering grid id",100,command_gassign) || command_add("ai","[factionid/spellslist/con/guard/roambox/stop/start] - Modify AI on NPC target",100,command_ai) || command_add("showspellslist","Shows spell list of targeted NPC",100,command_showspellslist) || @@ -254,7 +237,7 @@ int command_init(void) { command_add("spawn","[name] [race] [level] [material] [hp] [gender] [class] [priweapon] [secweapon] [merchantid] - Spawn an NPC",10,command_spawn) || command_add("texture","[texture] [helmtexture] - Change your or your target's appearance, use 255 to show equipment",10,command_texture) || command_add("npctypespawn","[npctypeid] [factionid] - Spawn an NPC from the db",10,command_npctypespawn) || - command_add("dbspawn",nullptr,0,command_npctypespawn) || + command_add("dbspawn",nullptr,10,command_npctypespawn) || command_add("heal","- Completely heal your target",10,command_heal) || command_add("appearance","[type] [value] - Send an appearance packet for you or your target",150,command_appearance) || command_add("nukeitem","[itemid] - Remove itemid from your player target's inventory",150,command_nukeitem) || @@ -262,14 +245,12 @@ int command_init(void) { command_add("interrogateinv","- use [help] argument for available options",0,command_interrogateinv) || command_add("findnpctype","[search criteria] - Search database NPC types",100,command_findnpctype) || command_add("findzone","[search criteria] - Search database zones",100,command_findzone) || - command_add("fz",nullptr,100, command_findzone) || command_add("viewnpctype","[npctype id] - Show info about an npctype",100,command_viewnpctype) || command_add("reloadstatic","- Reload Static Zone Data",150,command_reloadstatic) || command_add("reloadquest"," - Clear quest cache (any argument causes it to also stop all timers)",150,command_reloadqst) || command_add("reloadqst"," - Clear quest cache (any argument causes it to also stop all timers)",150,command_reloadqst) || command_add("reloadworld",nullptr,255,command_reloadworld) || command_add("reloadlevelmods",nullptr,255,command_reloadlevelmods) || - command_add("rq",nullptr,0,command_reloadqst) || command_add("reloadzonepoints","- Reload zone points from database",150,command_reloadzps) || command_add("reloadzps",nullptr,0,command_reloadzps) || command_add("zoneshutdown","[shortname] - Shut down a zone server",150,command_zoneshutdown) || @@ -334,7 +315,6 @@ int command_init(void) { command_add("manaburn","- Use AA Wizard class skill manaburn on target",10,command_manaburn) || command_add("doanim","[animnum] [type] - Send an EmoteAnim for you or your target",50,command_doanim) || command_add("randomfeatures","- Temporarily randomizes the Facial Features of your target",80,command_randomfeatures) || - command_add("rf",nullptr,80,command_randomfeatures) || command_add("face","- Change the face of your target",80,command_face) || command_add("helm","- Change the helm of your target",80,command_helm) || command_add("hair","- Change the hair style of your target",80,command_hair) || @@ -349,7 +329,6 @@ int command_init(void) { command_add("scribespell", "[spellid] - Scribe specified spell in your target's spell book.", 180, command_scribespell) || command_add("unscribespell", "[spellid] - Unscribe specified spell from your target's spell book.", 180, command_unscribespell) || command_add("interrupt","[message id] [color] - Interrupt your casting. Arguments are optional.",50,command_interrupt) || - command_add("d1","[type] [spell] [damage] - Send an OP_Action packet with the specified values",200,command_d1) || command_add("summonitem","[itemid] [charges] - Summon an item onto your cursor. Charges are optional.",200,command_summonitem) || command_add("si",nullptr,200,command_summonitem) || command_add("giveitem","[itemid] [charges] - Summon an item onto your target's cursor. Charges are optional.",200,command_giveitem) || @@ -709,77 +688,6 @@ void command_resetaa(Client* c,const Seperator *sep){ c->Message(0,"Usage: Target a client and use #resetaa to reset the AA data in their Profile."); } -void command_sendop(Client *c,const Seperator *sep){ - - int RezSpell = 0; - - if(sep->arg[1][0]) { - RezSpell = atoi(sep->arg[1]); - } - - EQApplicationPacket* outapp = new EQApplicationPacket(OP_RezzRequest, sizeof(Resurrect_Struct)); - Resurrect_Struct *rs = (Resurrect_Struct*)outapp->pBuffer; - - strcpy(rs->your_name, c->GetName()); - strcpy(rs->rezzer_name, "A Cleric01"); - rs->spellid = RezSpell; - DumpPacket(outapp); - c->QueuePacket(outapp); - safe_delete(outapp); - return; -} - -void command_optest(Client *c, const Seperator *sep) -{ - if(sep->IsNumber(1)) - { - switch(atoi(sep->arg[1])) - { - case 1: - { - EQApplicationPacket* outapp = new EQApplicationPacket(OP_AdventureFinish, sizeof(AdventureFinish_Struct)); - AdventureFinish_Struct *af = (AdventureFinish_Struct*)outapp->pBuffer; - af->win_lose = 1; - af->points = 125; - c->FastQueuePacket(&outapp); - break; - } - case 2: - { - EQApplicationPacket* outapp = new EQApplicationPacket(OP_AdventureData, sizeof(AdventureRequestResponse_Struct)); - AdventureRequestResponse_Struct *arr = (AdventureRequestResponse_Struct*)outapp->pBuffer; - if(sep->IsHexNumber(2)) - arr->unknown000 = hextoi(sep->arg[2]); - else - arr->unknown000 = 0xBFC40100; - arr->risk = 1; - arr->showcompass = 1; - strcpy(arr->text, "This is some text for an adventure packet!\0"); - arr->timeleft = 60*60; - //arr->timetoenter = 30*60; - if(sep->IsHexNumber(3)) - arr->unknown2080=hextoi(sep->arg[3]); - else - arr->unknown2080=0x0A; - arr->x = c->GetY(); - arr->y = c->GetX(); - arr->z = c->GetZ(); - c->FastQueuePacket(&outapp); - break; - } - case 3: - { - c->SendMarqueeMessage(15, 250, 0, 500, 5000, "Some msg"); - break; - } - default: - { - break; - } - } - } -} - void command_help(Client *c, const Seperator *sep) { int commands_shown=0; @@ -838,50 +746,6 @@ void command_serversidename(Client *c, const Seperator *sep) c->Message(0, "Error: no target"); } -void command_testspawnkill(Client *c, const Seperator *sep) -{ -/* EQApplicationPacket* outapp = new EQApplicationPacket(OP_Death, sizeof(Death_Struct)); - Death_Struct* d = (Death_Struct*)outapp->pBuffer; - d->corpseid = 1000; - // d->unknown011 = 0x05; - d->spawn_id = 1000; - d->killer_id = c->GetID(); - d->damage = 1; - d->spell_id = 0; - d->type = BASH; - d->bindzoneid = 0; - c->FastQueuePacket(&outapp);*/ -} - -void command_testspawn(Client *c, const Seperator *sep) -{ - if (sep->IsNumber(1)) { - EQApplicationPacket* outapp = new EQApplicationPacket(OP_NewSpawn, sizeof(NewSpawn_Struct)); - NewSpawn_Struct* ns = (NewSpawn_Struct*)outapp->pBuffer; - c->FillSpawnStruct(ns, c); - strcpy(ns->spawn.name, "Test"); - ns->spawn.spawnId = 1000; - ns->spawn.NPC = 1; - if (sep->IsHexNumber(2)) { - if (strlen(sep->arg[2]) >= 3) // 0x00, 1 byte - *(&((uint8*) &ns->spawn)[atoi(sep->arg[1])]) = hextoi(sep->arg[2]); - else if (strlen(sep->arg[2]) >= 5) // 0x0000, 2 bytes - *((uint16*) &(((uint8*) &ns->spawn)[atoi(sep->arg[1])])) = hextoi(sep->arg[2]); - else if (strlen(sep->arg[2]) >= 9) // 0x0000, 2 bytes - *((uint32*) &(((uint8*) &ns->spawn)[atoi(sep->arg[1])])) = hextoi(sep->arg[2]); - else - c->Message(0, "Error: unexpected hex string length"); - } - else { - strcpy((char*) (&((uint8*) &ns->spawn)[atoi(sep->arg[1])]), sep->argplus[2]); - } - EncryptSpawnPacket(outapp); - c->FastQueuePacket(&outapp); - } - else - c->Message(0, "Usage: #testspawn [memloc] [value] - spawns a NPC for you only, with the specified values set in the spawn struct"); -} - void command_wc(Client *c, const Seperator *sep) { if(sep->argnum < 2) @@ -927,12 +791,6 @@ void command_wc(Client *c, const Seperator *sep) } } -void command_numauths(Client *c, const Seperator *sep) -{ - c->Message(0, "NumAuths: %i", zone->CountAuth()); - c->Message(0, "Your WID: %i", c->GetWID()); -} - void command_setanim(Client *c, const Seperator *sep) { if (c->GetTarget() && sep->IsNumber(1)) { @@ -972,13 +830,6 @@ char buffer[255]; #endif } -void command_crashtest(Client *c, const Seperator *sep) -{ - c->Message(0,"Alright, now we get an GPF ;) "); - char* gpf=0; - memcpy(gpf, "Ready to crash", 30); -} - void command_getvariable(Client *c, const Seperator *sep) { char tmp[512]; @@ -997,71 +848,6 @@ void command_chat(Client *c, const Seperator *sep) c->Message(0, "Error: World server disconnected"); } -void command_showpetspell(Client *c, const Seperator *sep) -{ - if (sep->arg[1][0] == 0) - c->Message(0, "Usage: #ShowPetSpells [spellid | searchstring]"); - else if (SPDAT_RECORDS <= 0) - c->Message(0, "Spells not loaded"); - else if (Seperator::IsNumber(sep->argplus[1])) - { - int spellid = atoi(sep->argplus[1]); - if (spellid <= 0 || spellid >= SPDAT_RECORDS) - c->Message(0, "Error: Number out of range"); - else - c->Message(0, " %i: %s, %s", spellid, spells[spellid].teleport_zone, spells[spellid].name); - } - else - { - int count=0; - char sName[64]; - char sCriteria[65]; - strn0cpy(sCriteria, sep->argplus[1], 64); - strupr(sCriteria); - for (int i = 0; i < SPDAT_RECORDS; i++) - { - if (spells[i].name[0] != 0 && (spells[i].effectid[0] == SE_SummonPet || spells[i].effectid[0] == SE_NecPet)) - { - strcpy(sName, spells[i].teleport_zone); - strupr(sName); - char* pdest = strstr(sName, sCriteria); - if ((pdest != nullptr) && (count <=20)) - { - c->Message(0, " %i: %s, %s", i, spells[i].teleport_zone, spells[i].name); - count++; - } - else if (count > 20) - break; - } - } - if (count > 20) - c->Message(0, "20 spells found... max reached."); - else - c->Message(0, "%i spells found.", count); - } -} - -#ifdef IPC -void command_ipc(Client *c, const Seperator *sep) -{ - if (c->GetTarget() && c->GetTarget()->IsNPC()) - { - if (c->GetTarget()->CastToNPC()->IsInteractive()) - { - c->GetTarget()->CastToNPC()->interactive = false; - c->Message(0, "Disabling IPC"); - } - else - { - c->GetTarget()->CastToNPC()->interactive = true; - c->Message(0, "Enabling IPC"); - } - } - else - c->Message(0, "Error: You must target an NPC"); -} -#endif /* IPC */ - void command_npcloot(Client *c, const Seperator *sep) { if (c->GetTarget() == 0) @@ -1641,16 +1427,6 @@ void command_timezone(Client *c, const Seperator *sep) } } -void command_synctod(Client *c, const Seperator *sep) -{ - c->Message(13, "Updating Time/Date for all clients in zone..."); - EQApplicationPacket* outapp = new EQApplicationPacket(OP_TimeOfDay, sizeof(TimeOfDay_Struct)); - TimeOfDay_Struct* tod = (TimeOfDay_Struct*)outapp->pBuffer; - zone->zone_time.getEQTimeOfDay(time(0), tod); - entity_list.QueueClients(c, outapp); - safe_delete(outapp); -} - void command_invul(Client *c, const Seperator *sep) { bool state=atobool(sep->arg[1]); @@ -1714,15 +1490,6 @@ void command_fov(Client *c, const Seperator *sep) c->Message(0, "I Need a target!"); } -void command_manastat(Client *c, const Seperator *sep) -{ - Mob *target=c->GetTarget()?c->GetTarget():c; - - c->Message(0, "Mana for %s:", target->GetName()); - c->Message(0, " Current Mana: %d",target->GetMana()); - c->Message(0, " Max Mana: %d",target->GetMaxMana()); -} - void command_npcstats(Client *c, const Seperator *sep) { if (c->GetTarget() == 0) @@ -5915,19 +5682,6 @@ void command_interrupt(Client *c, const Seperator *sep) c->InterruptSpell(ci_message, ci_color); } -void command_d1(Client *c, const Seperator *sep) -{ - EQApplicationPacket app(OP_Action, sizeof(Action_Struct)); - Action_Struct* a = (Action_Struct*)app.pBuffer; - a->target = c->GetTarget()->GetID(); - a->source = c->GetID(); - a->type = atoi(sep->arg[1]); - a->spell = atoi(sep->arg[2]); - a->sequence = atoi(sep->arg[3]); - app.priority = 1; - entity_list.QueueCloseClients(c, &app); -} - void command_summonitem(Client *c, const Seperator *sep) { if (!sep->IsNumber(1)) @@ -10871,28 +10625,6 @@ void command_picklock(Client *c, const Seperator *sep) } } -void command_qtest(Client *c, const Seperator *sep) -{ - - - if(c && sep->arg[1][0]) - { - if(c->GetTarget()) - { - ServerPacket* pack = new ServerPacket(ServerOP_Speech, sizeof(Server_Speech_Struct)+strlen(sep->arg[1])+1); - Server_Speech_Struct* sem = (Server_Speech_Struct*) pack->pBuffer; - strcpy(sem->message, sep->arg[1]); - sem->minstatus = c->Admin(); - sem->type = 1; - strncpy(sem->to,c->GetTarget()->GetCleanName(), 64); - strncpy(sem->to,c->GetCleanName(), 64); - sem->guilddbid = c->GuildID(); - worldserver.SendPacket(pack); - safe_delete(pack); - } - } -} - void command_mysql(Client *c, const Seperator *sep) { if(!sep->arg[1][0] || !sep->arg[2][0]) { diff --git a/zone/entity.cpp b/zone/entity.cpp index eeebfa88d..ed5b99219 100644 --- a/zone/entity.cpp +++ b/zone/entity.cpp @@ -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); diff --git a/zone/lua_client.cpp b/zone/lua_client.cpp index 56abe5f09..22e38b21d 100644 --- a/zone/lua_client.cpp +++ b/zone/lua_client.cpp @@ -235,19 +235,24 @@ void Lua_Client::SetBindPoint(int to_zone) { self->SetBindPoint(to_zone); } -void Lua_Client::SetBindPoint(int to_zone, float new_x) { +void Lua_Client::SetBindPoint(int to_zone, int to_instance) { Lua_Safe_Call_Void(); - self->SetBindPoint(to_zone, new_x); + self->SetBindPoint(to_zone, to_instance); } -void Lua_Client::SetBindPoint(int to_zone, float new_x, float new_y) { +void Lua_Client::SetBindPoint(int to_zone, int to_instance, float new_x) { Lua_Safe_Call_Void(); - self->SetBindPoint(to_zone, new_x, new_y); + self->SetBindPoint(to_zone, to_instance, new_x); } -void Lua_Client::SetBindPoint(int to_zone, float new_x, float new_y, float new_z) { +void Lua_Client::SetBindPoint(int to_zone, int to_instance, float new_x, float new_y) { Lua_Safe_Call_Void(); - self->SetBindPoint(to_zone, new_x, new_y, new_z); + self->SetBindPoint(to_zone, to_instance, new_x, new_y); +} + +void Lua_Client::SetBindPoint(int to_zone, int to_instance, float new_x, float new_y, float new_z) { + Lua_Safe_Call_Void(); + self->SetBindPoint(to_zone, to_instance, new_x, new_y, new_z); } float Lua_Client::GetBindX() { @@ -1297,9 +1302,10 @@ luabind::scope lua_register_client() { .def("SetEXP", (void(Lua_Client::*)(uint32,uint32,bool))&Lua_Client::SetEXP) .def("SetBindPoint", (void(Lua_Client::*)(void))&Lua_Client::SetBindPoint) .def("SetBindPoint", (void(Lua_Client::*)(int))&Lua_Client::SetBindPoint) - .def("SetBindPoint", (void(Lua_Client::*)(int,float))&Lua_Client::SetBindPoint) - .def("SetBindPoint", (void(Lua_Client::*)(int,float,float))&Lua_Client::SetBindPoint) - .def("SetBindPoint", (void(Lua_Client::*)(int,float,float,float))&Lua_Client::SetBindPoint) + .def("SetBindPoint", (void(Lua_Client::*)(int,int))&Lua_Client::SetBindPoint) + .def("SetBindPoint", (void(Lua_Client::*)(int,int,float))&Lua_Client::SetBindPoint) + .def("SetBindPoint", (void(Lua_Client::*)(int,int,float,float))&Lua_Client::SetBindPoint) + .def("SetBindPoint", (void(Lua_Client::*)(int,int,float,float, float))&Lua_Client::SetBindPoint) .def("GetBindX", (float(Lua_Client::*)(void))&Lua_Client::GetBindX) .def("GetBindX", (float(Lua_Client::*)(int))&Lua_Client::GetBindX) .def("GetBindY", (float(Lua_Client::*)(void))&Lua_Client::GetBindY) diff --git a/zone/lua_client.h b/zone/lua_client.h index ef2af1181..e2b0a6614 100644 --- a/zone/lua_client.h +++ b/zone/lua_client.h @@ -73,9 +73,10 @@ public: void SetEXP(uint32 set_exp, uint32 set_aaxp, bool resexp); void SetBindPoint(); void SetBindPoint(int to_zone); - void SetBindPoint(int to_zone, float new_x); - void SetBindPoint(int to_zone, float new_x, float new_y); - void SetBindPoint(int to_zone, float new_x, float new_y, float new_z); + void SetBindPoint(int to_zone, int to_instance); + void SetBindPoint(int to_zone, int to_instance, float new_x); + void SetBindPoint(int to_zone, int to_instance, float new_x, float new_y); + void SetBindPoint(int to_zone, int to_instance, float new_x, float new_y, float new_z); float GetBindX(); float GetBindX(int index); float GetBindY(); diff --git a/zone/lua_general.cpp b/zone/lua_general.cpp index d58ea21bc..09b0dcf53 100644 --- a/zone/lua_general.cpp +++ b/zone/lua_general.cpp @@ -1249,6 +1249,152 @@ double lua_clock() { return static_cast(t) / 1000.0; } +#define LuaCreateNPCParse(name, c_type, default_value) do { \ + cur = table[#name]; \ + if(luabind::type(cur) != LUA_TNIL) { \ + try { \ + npc_type->name = luabind::object_cast(cur); \ + } \ + catch(luabind::cast_failed) { \ + npc_type->size = default_value; \ + } \ + } \ + else { \ + npc_type->size = default_value; \ + } \ +} while(0) + +#define LuaCreateNPCParseString(name, str_length, default_value) do { \ + cur = table[#name]; \ + if(luabind::type(cur) != LUA_TNIL) { \ + try { \ + std::string tmp = luabind::object_cast(cur); \ + strncpy(npc_type->name, tmp.c_str(), str_length); \ + } \ + catch(luabind::cast_failed) { \ + strncpy(npc_type->name, default_value, str_length); \ + } \ + } \ + else { \ + strncpy(npc_type->name, default_value, str_length); \ + } \ +} while(0) + +void lua_create_npc(luabind::adl::object table, float x, float y, float z, float heading) { + if(luabind::type(table) != LUA_TTABLE) { + return; + } + + NPCType* npc_type = new NPCType; + memset(npc_type, 0, sizeof(NPCType)); + + + luabind::adl::index_proxy cur = table["name"]; + LuaCreateNPCParseString(name, 64, "_"); + LuaCreateNPCParseString(lastname, 64, ""); + LuaCreateNPCParse(cur_hp, int32, 30); + LuaCreateNPCParse(max_hp, int32, 30); + LuaCreateNPCParse(size, float, 6.0f); + LuaCreateNPCParse(runspeed, float, 1.25f); + LuaCreateNPCParse(gender, uint8, 0); + LuaCreateNPCParse(race, uint16, 1); + LuaCreateNPCParse(class_, uint8, WARRIOR); + LuaCreateNPCParse(bodytype, uint8, 0); + LuaCreateNPCParse(deity, uint8, 0); + LuaCreateNPCParse(level, uint8, 1); + LuaCreateNPCParse(npc_id, uint32, 1); + LuaCreateNPCParse(texture, uint8, 0); + LuaCreateNPCParse(helmtexture, uint8, 0); + LuaCreateNPCParse(loottable_id, uint32, 0); + LuaCreateNPCParse(npc_spells_id, uint32, 0); + LuaCreateNPCParse(npc_spells_effects_id, uint32, 0); + LuaCreateNPCParse(npc_faction_id, int32, 0); + LuaCreateNPCParse(merchanttype, uint32, 0); + LuaCreateNPCParse(alt_currency_type, uint32, 0); + LuaCreateNPCParse(adventure_template, uint32, 0); + LuaCreateNPCParse(trap_template, uint32, 0); + LuaCreateNPCParse(light, uint8, 0); + LuaCreateNPCParse(AC, uint32, 0); + LuaCreateNPCParse(Mana, uint32, 0); + LuaCreateNPCParse(ATK, uint32, 0); + LuaCreateNPCParse(STR, uint32, 75); + LuaCreateNPCParse(STA, uint32, 75); + LuaCreateNPCParse(DEX, uint32, 75); + LuaCreateNPCParse(AGI, uint32, 75); + LuaCreateNPCParse(INT, uint32, 75); + LuaCreateNPCParse(WIS, uint32, 75); + LuaCreateNPCParse(CHA, uint32, 75); + LuaCreateNPCParse(MR, int32, 25); + LuaCreateNPCParse(FR, int32, 25); + LuaCreateNPCParse(CR, int32, 25); + LuaCreateNPCParse(PR, int32, 25); + LuaCreateNPCParse(DR, int32, 25); + LuaCreateNPCParse(Corrup, int32, 25); + LuaCreateNPCParse(PhR, int32, 0); + LuaCreateNPCParse(haircolor, uint8, 0); + LuaCreateNPCParse(beardcolor, uint8, 0); + LuaCreateNPCParse(eyecolor1, uint8, 0); + LuaCreateNPCParse(eyecolor2, uint8, 0); + LuaCreateNPCParse(hairstyle, uint8, 0); + LuaCreateNPCParse(luclinface, uint8, 0); + LuaCreateNPCParse(beard, uint8, 0); + LuaCreateNPCParse(drakkin_heritage, uint32, 0); + LuaCreateNPCParse(drakkin_tattoo, uint32, 0); + LuaCreateNPCParse(drakkin_details, uint32, 0); + LuaCreateNPCParse(armor_tint[0], uint32, 0); + LuaCreateNPCParse(armor_tint[1], uint32, 0); + LuaCreateNPCParse(armor_tint[2], uint32, 0); + LuaCreateNPCParse(armor_tint[3], uint32, 0); + LuaCreateNPCParse(armor_tint[4], uint32, 0); + LuaCreateNPCParse(armor_tint[5], uint32, 0); + LuaCreateNPCParse(armor_tint[6], uint32, 0); + LuaCreateNPCParse(armor_tint[7], uint32, 0); + LuaCreateNPCParse(armor_tint[8], uint32, 0); + LuaCreateNPCParse(min_dmg, uint32, 2); + LuaCreateNPCParse(max_dmg, uint32, 4); + LuaCreateNPCParse(attack_count, int16, 0); + LuaCreateNPCParseString(special_abilities, 512, ""); + LuaCreateNPCParse(d_meele_texture1, uint16, 0); + LuaCreateNPCParse(d_meele_texture2, uint16, 0); + LuaCreateNPCParseString(ammo_idfile, 32, ""); + LuaCreateNPCParse(prim_melee_type, uint8, 0); + LuaCreateNPCParse(sec_melee_type, uint8, 0); + LuaCreateNPCParse(ranged_type, uint8, 0); + LuaCreateNPCParse(hp_regen, int32, 1); + LuaCreateNPCParse(mana_regen, int32, 1); + LuaCreateNPCParse(aggroradius, int32, 0); + LuaCreateNPCParse(assistradius, int32, 0); + LuaCreateNPCParse(see_invis, uint8, 0); + LuaCreateNPCParse(see_invis_undead, bool, false); + LuaCreateNPCParse(see_hide, bool, false); + LuaCreateNPCParse(see_improved_hide, bool, false); + LuaCreateNPCParse(qglobal, bool, false); + LuaCreateNPCParse(npc_aggro, bool, false); + LuaCreateNPCParse(spawn_limit, uint8, false); + LuaCreateNPCParse(mount_color, uint8, false); + LuaCreateNPCParse(attack_speed, float, 0); + LuaCreateNPCParse(attack_delay, uint8, 30); + LuaCreateNPCParse(accuracy_rating, int, 0); + LuaCreateNPCParse(avoidance_rating, int, 0); + LuaCreateNPCParse(findable, bool, false); + LuaCreateNPCParse(trackable, bool, false); + LuaCreateNPCParse(slow_mitigation, int16, 0); + LuaCreateNPCParse(maxlevel, uint8, 0); + LuaCreateNPCParse(scalerate, uint32, 0); + LuaCreateNPCParse(private_corpse, bool, false); + LuaCreateNPCParse(unique_spawn_by_name, bool, false); + LuaCreateNPCParse(underwater, bool, false); + LuaCreateNPCParse(emoteid, uint32, 0); + LuaCreateNPCParse(spellscale, float, 0); + LuaCreateNPCParse(healscale, float, 0); + LuaCreateNPCParse(no_target_hotkey, bool, false); + LuaCreateNPCParse(raid_target, bool, false); + LuaCreateNPCParse(probability, uint8, 0); + + NPC* npc = new NPC(npc_type, nullptr, x, y, z, heading, FlyMode3); + npc->GiveNPCTypeData(npc_type); + entity_list.AddNPC(npc); +} luabind::scope lua_register_general() { return luabind::namespace_("eq") [ @@ -1435,7 +1581,8 @@ luabind::scope lua_register_general() { luabind::def("enable_recipe", &lua_enable_recipe), luabind::def("disable_recipe", &lua_disable_recipe), luabind::def("clear_npctype_cache", &lua_clear_npctype_cache), - luabind::def("clock", &lua_clock) + luabind::def("clock", &lua_clock), + luabind::def("create_npc", &lua_create_npc) ]; } diff --git a/zone/npc.cpp b/zone/npc.cpp index d1bdee979..25a349048 100644 --- a/zone/npc.cpp +++ b/zone/npc.cpp @@ -1924,6 +1924,7 @@ void NPC::ModifyNPCStat(const char *identifier, const char *newValue) else if(id == "PhR") { PhR = atoi(val.c_str()); return; } else if(id == "runspeed") { runspeed = (float)atof(val.c_str()); CalcBonuses(); return; } else if(id == "special_attacks") { NPCSpecialAttacks(val.c_str(), 0, 1); return; } + else if(id == "special_abilities") { ProcessSpecialAbilities(val.c_str()); return; } else if(id == "attack_speed") { attack_speed = (float)atof(val.c_str()); CalcBonuses(); return; } else if(id == "atk") { ATK = atoi(val.c_str()); return; } else if(id == "accuracy") { accuracy_rating = atoi(val.c_str()); return; } diff --git a/zone/perl_client.cpp b/zone/perl_client.cpp index aaaa5899f..2a0c055af 100644 --- a/zone/perl_client.cpp +++ b/zone/perl_client.cpp @@ -1023,11 +1023,12 @@ XS(XS_Client_SetBindPoint); /* prototype to pass -Wmissing-prototypes */ XS(XS_Client_SetBindPoint) { dXSARGS; - if (items < 1 || items > 5) - Perl_croak(aTHX_ "Usage: Client::SetBindPoint(THIS, to_zone= -1, new_x= 0.0f, new_y= 0.0f, new_z= 0.0f)"); + if (items < 1 || items > 6) + Perl_croak(aTHX_ "Usage: Client::SetBindPoint(THIS, to_zone= -1, to_instance = 0, new_x= 0.0f, new_y= 0.0f, new_z= 0.0f)"); { Client * THIS; int to_zone; + int to_instance; float new_x; float new_y; float new_z; @@ -1047,25 +1048,31 @@ XS(XS_Client_SetBindPoint) to_zone = (int)SvIV(ST(1)); } - if (items < 3) - new_x = 0.0f; + if(items < 3) + to_instance = 0; else { - new_x = (float)SvNV(ST(2)); + to_instance = (int)SvIV(ST(2)); } if (items < 4) - new_y = 0.0f; + new_x = 0.0f; else { - new_y = (float)SvNV(ST(3)); + new_x = (float)SvNV(ST(3)); } if (items < 5) - new_z = 0.0f; + new_y = 0.0f; else { - new_z = (float)SvNV(ST(4)); + new_y = (float)SvNV(ST(4)); } - THIS->SetBindPoint(to_zone, new_x, new_y, new_z); + if (items < 6) + new_z = 0.0f; + else { + new_z = (float)SvNV(ST(5)); + } + + THIS->SetBindPoint(to_zone, to_instance, new_x, new_y, new_z); } XSRETURN_EMPTY; } @@ -6155,7 +6162,7 @@ XS(boot_Client) newXSproto(strcpy(buf, "SetDeity"), XS_Client_SetDeity, file, "$$"); newXSproto(strcpy(buf, "AddEXP"), XS_Client_AddEXP, file, "$$;$$"); newXSproto(strcpy(buf, "SetEXP"), XS_Client_SetEXP, file, "$$$;$"); - newXSproto(strcpy(buf, "SetBindPoint"), XS_Client_SetBindPoint, file, "$;$$$$"); + newXSproto(strcpy(buf, "SetBindPoint"), XS_Client_SetBindPoint, file, "$;$$$$$"); newXSproto(strcpy(buf, "GetBindX"), XS_Client_GetBindX, file, "$$"); newXSproto(strcpy(buf, "GetBindY"), XS_Client_GetBindY, file, "$$"); newXSproto(strcpy(buf, "GetBindZ"), XS_Client_GetBindZ, file, "$$"); diff --git a/zone/perl_mob.cpp b/zone/perl_mob.cpp index af63066ff..c47b463d3 100644 --- a/zone/perl_mob.cpp +++ b/zone/perl_mob.cpp @@ -8187,6 +8187,158 @@ XS(XS_Mob_GetSpellStat) XSRETURN(1); } +XS(XS_Mob_GetSpecialAbility); /* prototype to pass -Wmissing-prototypes */ +XS(XS_Mob_GetSpecialAbility) +{ + dXSARGS; + if(items != 2) + Perl_croak(aTHX_ "Usage: Mob::GetSpecialAbility(THIS, special_ability)"); + { + int RETVAL; + Mob* THIS; + int ability = SvIV(ST(1)); + dXSTARG; + + if(sv_derived_from(ST(0), "Mob")) { + IV tmp = SvIV((SV*)SvRV(ST(0))); + THIS = INT2PTR(Mob *, tmp); + } + else + Perl_croak(aTHX_ "THIS is not of type Mob"); + if(THIS == nullptr) + Perl_croak(aTHX_ "THIS is nullptr, avoiding crash."); + + RETVAL = THIS->GetSpecialAbility(ability); + XSprePUSH; PUSHi((IV)RETVAL); + } + XSRETURN(1); +} + +XS(XS_Mob_GetSpecialAbilityParam); /* prototype to pass -Wmissing-prototypes */ +XS(XS_Mob_GetSpecialAbilityParam) +{ + dXSARGS; + if(items != 3) + Perl_croak(aTHX_ "Usage: Mob::GetSpecialAbilityParam(THIS, special_ability, param)"); + { + int RETVAL; + Mob* THIS; + int ability = SvIV(ST(1)); + int param = SvIV(ST(2)); + dXSTARG; + + if(sv_derived_from(ST(0), "Mob")) { + IV tmp = SvIV((SV*)SvRV(ST(0))); + THIS = INT2PTR(Mob *, tmp); + } + else + Perl_croak(aTHX_ "THIS is not of type Mob"); + if(THIS == nullptr) + Perl_croak(aTHX_ "THIS is nullptr, avoiding crash."); + + RETVAL = THIS->GetSpecialAbilityParam(ability, param); + XSprePUSH; PUSHi((IV)RETVAL); + } + XSRETURN(1); +} + +XS(XS_Mob_SetSpecialAbility); /* prototype to pass -Wmissing-prototypes */ +XS(XS_Mob_SetSpecialAbility) +{ + dXSARGS; + if(items != 3) + Perl_croak(aTHX_ "Usage: Mob::SetSpecialAbility(THIS, ability, value)"); + { + Mob* THIS; + int ability = SvIV(ST(1)); + int value = SvIV(ST(2)); + + if(sv_derived_from(ST(0), "Mob")) { + IV tmp = SvIV((SV*)SvRV(ST(0))); + THIS = INT2PTR(Mob *, tmp); + } + else + Perl_croak(aTHX_ "THIS is not of type Mob"); + if(THIS == nullptr) + Perl_croak(aTHX_ "THIS is nullptr, avoiding crash."); + + THIS->SetSpecialAbility(ability, value); + } + XSRETURN_EMPTY; +} + +XS(XS_Mob_SetSpecialAbilityParam); /* prototype to pass -Wmissing-prototypes */ +XS(XS_Mob_SetSpecialAbilityParam) +{ + dXSARGS; + if(items != 4) + Perl_croak(aTHX_ "Usage: Mob::SetSpecialAbilityParam(THIS, ability, param, value)"); + { + Mob* THIS; + int ability = SvIV(ST(1)); + int param = SvIV(ST(2)); + int value = SvIV(ST(3)); + + if(sv_derived_from(ST(0), "Mob")) { + IV tmp = SvIV((SV*)SvRV(ST(0))); + THIS = INT2PTR(Mob *, tmp); + } + else + Perl_croak(aTHX_ "THIS is not of type Mob"); + if(THIS == nullptr) + Perl_croak(aTHX_ "THIS is nullptr, avoiding crash."); + + THIS->SetSpecialAbilityParam(ability, param, value); + } + XSRETURN_EMPTY; +} + +XS(XS_Mob_ClearSpecialAbilities); /* prototype to pass -Wmissing-prototypes */ +XS(XS_Mob_ClearSpecialAbilities) +{ + dXSARGS; + if(items != 1) + Perl_croak(aTHX_ "Usage: Mob::ClearSpecialAbilities(THIS)"); + { + Mob* THIS; + + if(sv_derived_from(ST(0), "Mob")) { + IV tmp = SvIV((SV*)SvRV(ST(0))); + THIS = INT2PTR(Mob *, tmp); + } + else + Perl_croak(aTHX_ "THIS is not of type Mob"); + if(THIS == nullptr) + Perl_croak(aTHX_ "THIS is nullptr, avoiding crash."); + + THIS->ClearSpecialAbilities(); + } + XSRETURN_EMPTY; +} + +XS(XS_Mob_ProcessSpecialAbilities); /* prototype to pass -Wmissing-prototypes */ +XS(XS_Mob_ProcessSpecialAbilities) +{ + dXSARGS; + if(items != 2) + Perl_croak(aTHX_ "Usage: Mob::ProcessSpecialAbilities(THIS, str)"); + { + Mob* THIS; + const char *str = (const char*)SvPV_nolen(ST(1)); + + if(sv_derived_from(ST(0), "Mob")) { + IV tmp = SvIV((SV*)SvRV(ST(0))); + THIS = INT2PTR(Mob *, tmp); + } + else + Perl_croak(aTHX_ "THIS is not of type Mob"); + if(THIS == nullptr) + Perl_croak(aTHX_ "THIS is nullptr, avoiding crash."); + + THIS->ProcessSpecialAbilities(str); + } + XSRETURN_EMPTY; +} #ifdef __cplusplus extern "C" @@ -8485,11 +8637,16 @@ XS(boot_Mob) newXSproto(strcpy(buf, "DoArcheryAttackDmg"), XS_Mob_DoArcheryAttackDmg, file, "$$$$$$$"); newXSproto(strcpy(buf, "DoThrowingAttackDmg"), XS_Mob_DoThrowingAttackDmg, file, "$$$$$$$"); newXSproto(strcpy(buf, "SetDisableMelee"), XS_Mob_SetDisableMelee, file, "$$"); - newXSproto(strcpy(buf, "IsMeleeDisabled"), XS_Mob_IsMeleeDisabled, file, "$$"); + newXSproto(strcpy(buf, "IsMeleeDisabled"), XS_Mob_IsMeleeDisabled, file, "$"); newXSproto(strcpy(buf, "SetFlurryChance"), XS_Mob_SetFlurryChance, file, "$$"); newXSproto(strcpy(buf, "GetFlurryChance"), XS_Mob_GetFlurryChance, file, "$"); newXSproto(strcpy(buf, "GetSpellStat"), XS_Mob_GetSpellStat, file, "$$$$"); - + newXSproto(strcpy(buf, "GetSpecialAbility"), XS_Mob_GetSpecialAbility, file, "$$"); + newXSproto(strcpy(buf, "GetSpecialAbilityParam"), XS_Mob_GetSpecialAbilityParam, file, "$$$"); + newXSproto(strcpy(buf, "SetSpecialAbility"), XS_Mob_SetSpecialAbility, file, "$$$"); + newXSproto(strcpy(buf, "SetSpecialAbilityParam"), XS_Mob_SetSpecialAbilityParam, file, "$$$$"); + newXSproto(strcpy(buf, "ClearSpecialAbilities"), XS_Mob_ClearSpecialAbilities, file, "$"); + newXSproto(strcpy(buf, "ProcessSpecialAbilities"), XS_Mob_ProcessSpecialAbilities, file, "$$"); XSRETURN_YES; } diff --git a/zone/qglobals.cpp b/zone/qglobals.cpp index f63e13dd4..bc7bf680e 100644 --- a/zone/qglobals.cpp +++ b/zone/qglobals.cpp @@ -172,5 +172,5 @@ void QGlobalCache::LoadBy(const std::string &query) return; for (auto row = results.begin(); row != results.end(); ++row) - AddGlobal(0, QGlobal(std::string(row[0]), atoi(row[1]), atoi(row[2]), atoi(row[3]), row[4], row[5]? atoi(row[5]): 0xFFFFFFFF)); + AddGlobal(0, QGlobal(row[0], atoi(row[1]), atoi(row[2]), atoi(row[3]), row[4], row[5] ? atoi(row[5]) : 0xFFFFFFFF)); } diff --git a/zone/tradeskills.cpp b/zone/tradeskills.cpp index 0fd130f89..c7ac3339e 100644 --- a/zone/tradeskills.cpp +++ b/zone/tradeskills.cpp @@ -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()); diff --git a/zone/zone.cpp b/zone/zone.cpp index 7a4ad8bac..521684a0d 100644 --- a/zone/zone.cpp +++ b/zone/zone.cpp @@ -755,6 +755,7 @@ Zone::Zone(uint32 in_zoneid, uint32 in_instanceid, const char* in_short_name) zoneid = in_zoneid; instanceid = in_instanceid; instanceversion = database.GetInstanceVersion(instanceid); + pers_instance = false; zonemap = nullptr; watermap = nullptr; pathing = nullptr; @@ -824,11 +825,12 @@ Zone::Zone(uint32 in_zoneid, uint32 in_instanceid, const char* in_short_name) if(!is_perma) { if(rem < 150) //give some leeway to people who are zoning in 2.5 minutes to finish zoning in and get ported out - rem = 150; + rem = 150; Instance_Timer = new Timer(rem * 1000); } else { + pers_instance = true; Instance_Timer = nullptr; } } diff --git a/zone/zone.h b/zone/zone.h index 9ad692fa0..0fa390512 100644 --- a/zone/zone.h +++ b/zone/zone.h @@ -104,6 +104,7 @@ public: inline const uint32 GetZoneID() const { return zoneid; } inline const uint32 GetInstanceID() const { return instanceid; } inline const uint16 GetInstanceVersion() const { return instanceversion; } + inline const bool IsInstancePersistent() const { return pers_instance; } inline const uint8 GetZoneType() const { return zone_type; } inline Timer* GetInstanceTimer() { return Instance_Timer; } @@ -274,6 +275,7 @@ private: uint32 zoneid; uint32 instanceid; uint16 instanceversion; + bool pers_instance; char* short_name; char file_name[16]; char* long_name; diff --git a/zone/zonedb.cpp b/zone/zonedb.cpp index fa34e8d9e..bfbdb7424 100644 --- a/zone/zonedb.cpp +++ b/zone/zonedb.cpp @@ -1197,21 +1197,21 @@ bool ZoneDatabase::LoadCharacterBindPoint(uint32 character_id, PlayerProfile_Str i = 0; /* Is home bind */ if (atoi(row[6]) == 1){ - pp->binds[4].zoneId = atoi(row[i]); i++; - i++; /* Instance ID can go here eventually */ - pp->binds[4].x = atoi(row[i]); i++; - pp->binds[4].y = atoi(row[i]); i++; - pp->binds[4].z = atoi(row[i]); i++; - pp->binds[4].heading = atoi(row[i]); i++; + pp->binds[4].zoneId = atoi(row[i++]); + pp->binds[4].instance_id = atoi(row[i++]); + pp->binds[4].x = atoi(row[i++]); + pp->binds[4].y = atoi(row[i++]); + pp->binds[4].z = atoi(row[i++]); + pp->binds[4].heading = atoi(row[i++]); } /* Is regular bind point */ else{ - pp->binds[0].zoneId = atoi(row[i]); i++; - i++; /* Instance ID can go here eventually */ - pp->binds[0].x = atoi(row[i]); i++; - pp->binds[0].y = atoi(row[i]); i++; - pp->binds[0].z = atoi(row[i]); i++; - pp->binds[0].heading = atoi(row[i]); i++; + pp->binds[0].zoneId = atoi(row[i++]); + pp->binds[0].instance_id = atoi(row[i++]); + pp->binds[0].x = atoi(row[i++]); + pp->binds[0].y = atoi(row[i++]); + pp->binds[0].z = atoi(row[i++]); + pp->binds[0].heading = atoi(row[i++]); } } return true; @@ -1224,12 +1224,18 @@ bool ZoneDatabase::SaveCharacterLanguage(uint32 character_id, uint32 lang_id, ui } bool ZoneDatabase::SaveCharacterBindPoint(uint32 character_id, uint32 zone_id, uint32 instance_id, float x, float y, float z, float heading, uint8 is_home){ - if (zone_id <= 0){ return false; } + if (zone_id <= 0) { + return false; + } + /* Save Home Bind Point */ std::string query = StringFormat("REPLACE INTO `character_bind` (id, zone_id, instance_id, x, y, z, heading, is_home)" " VALUES (%u, %u, %u, %f, %f, %f, %f, %i)", character_id, zone_id, instance_id, x, y, z, heading, is_home); LogFile->write(EQEMuLog::Debug, "ZoneDatabase::SaveCharacterBindPoint for character ID: %i zone_id: %u instance_id: %u x: %f y: %f z: %f heading: %f ishome: %u", character_id, zone_id, instance_id, x, y, z, heading, is_home); - auto results = QueryDatabase(query); if (!results.RowsAffected()){ std::cout << "ERROR Bind Home Save: " << results.ErrorMessage() << "\n\n" << query << "\n" << std::endl; } + auto results = QueryDatabase(query); + if (!results.RowsAffected()) { + LogFile->write(EQEMuLog::Debug, "ERROR Bind Home Save: %s. %s", results.ErrorMessage().c_str(), query.c_str()); + } ThrowDBError(results.ErrorMessage(), "ZoneDatabase::SaveCharacterBindPoint", query); return true; } @@ -3234,7 +3240,6 @@ bool ZoneDatabase::SetCharacterFactionLevel(uint32 char_id, int32 faction_id, in bool ZoneDatabase::LoadFactionData() { - std::string query = "SELECT MAX(id) FROM faction_list"; auto results = QueryDatabase(query); if (!results.Success()) { @@ -3265,7 +3270,6 @@ bool ZoneDatabase::LoadFactionData() strn0cpy(faction_array[index]->name, row[1], 50); faction_array[index]->base = atoi(row[2]); - query = StringFormat("SELECT `mod`, `mod_name` FROM `faction_list_mod` WHERE faction_id = %u", index); auto modResults = QueryDatabase(query); if (!modResults.Success()) @@ -3273,8 +3277,9 @@ bool ZoneDatabase::LoadFactionData() for (auto modRow = modResults.begin(); modRow != modResults.end(); ++modRow) faction_array[index]->mods[modRow[1]] = atoi(modRow[0]); - } + + return true; } bool ZoneDatabase::GetFactionIdsForNPC(uint32 nfl_id, std::list *faction_list, int32* primary_faction) { diff --git a/zone/zoning.cpp b/zone/zoning.cpp index 42d07810a..6ac85cff6 100644 --- a/zone/zoning.cpp +++ b/zone/zoning.cpp @@ -71,9 +71,11 @@ void Client::Handle_OP_ZoneChange(const EQApplicationPacket *app) { break; case GateToBindPoint: target_zone_id = m_pp.binds[0].zoneId; + target_instance_id = m_pp.binds[0].instance_id; break; case ZoneToBindPoint: target_zone_id = m_pp.binds[0].zoneId; + target_instance_id = m_pp.binds[0].instance_id; break; case ZoneSolicited: //we told the client to zone somewhere, so we know where they are going. target_zone_id = zonesummon_id; @@ -717,20 +719,22 @@ void NPC::Gate() { Mob::Gate(); } -void Client::SetBindPoint(int to_zone, float new_x, float new_y, float new_z) { +void Client::SetBindPoint(int to_zone, int to_instance, float new_x, float new_y, float new_z) { if (to_zone == -1) { m_pp.binds[0].zoneId = zone->GetZoneID(); + m_pp.binds[0].instance_id = (zone->GetInstanceID() != 0 && zone->IsInstancePersistent()) ? zone->GetInstanceID() : 0; m_pp.binds[0].x = x_pos; m_pp.binds[0].y = y_pos; m_pp.binds[0].z = z_pos; } else { m_pp.binds[0].zoneId = to_zone; + m_pp.binds[0].instance_id = to_instance; m_pp.binds[0].x = new_x; m_pp.binds[0].y = new_y; m_pp.binds[0].z = new_z; } - database.SaveCharacterBindPoint(this->CharacterID(), m_pp.binds[0].zoneId, 0, m_pp.binds[0].x, m_pp.binds[0].y, m_pp.binds[0].z, 0, 0); + database.SaveCharacterBindPoint(this->CharacterID(), m_pp.binds[0].zoneId, m_pp.binds[0].instance_id, m_pp.binds[0].x, m_pp.binds[0].y, m_pp.binds[0].z, 0, 0); } void Client::GoToBind(uint8 bindnum) { @@ -741,13 +745,13 @@ void Client::GoToBind(uint8 bindnum) { // move the client, which will zone them if needed. // ignore restrictions on the zone request..? if(bindnum == 0) - MovePC(m_pp.binds[0].zoneId, 0.0f, 0.0f, 0.0f, 0.0f, 1, GateToBindPoint); + MovePC(m_pp.binds[0].zoneId, m_pp.binds[0].instance_id, 0.0f, 0.0f, 0.0f, 0.0f, 1, GateToBindPoint); else - MovePC(m_pp.binds[bindnum].zoneId, m_pp.binds[bindnum].x, m_pp.binds[bindnum].y, m_pp.binds[bindnum].z, m_pp.binds[bindnum].heading, 1); + MovePC(m_pp.binds[bindnum].zoneId, m_pp.binds[bindnum].instance_id, m_pp.binds[bindnum].x, m_pp.binds[bindnum].y, m_pp.binds[bindnum].z, m_pp.binds[bindnum].heading, 1); } void Client::GoToDeath() { - MovePC(m_pp.binds[0].zoneId, 0.0f, 0.0f, 0.0f, 0.0f, 1, ZoneToBindPoint); + MovePC(m_pp.binds[0].zoneId, m_pp.binds[0].instance_id, 0.0f, 0.0f, 0.0f, 0.0f, 1, ZoneToBindPoint); } void Client::SetZoneFlag(uint32 zone_id) {