#!/usr/bin/perl ## $Id: eqspell,v 1.5 2003/12/09 09:05:43 baldio Exp $ ## eqspell --- display EverQuest spell list ## by Baldio Holyfield , Level 70 Cleric on Veeshan ## usage: eqspell [-b | -l] name_or_ID ## example1: eqspell aego (list mode) ## example2: eqspell 2883 (detail mode) ## example3: eqspell -b 2883 (query mode: www.buchionline.jp) ## example4: eqspell -l 2883 (query mode: lucy.allakhazam.com) require 5.003; use strict; use FileHandle; use CGI; use Getopt::Std; use vars qw($opt_b $opt_l); my (@data, @field, $pattern, $cgi_mode, $cnt, $color, $detail_mode); my %skill = ( "4" => "Abjuration", "5" => "Alteration", "12" => "Brass", "14" => "Conjuration", "18" => "Divination", "24" => "Evocation", "41" => "Singing", "49" => "Stringed", "52" => "Innate", "54" => "Wind", "70" => "Percussion"); my %resist = ( "0" => "None", "1" => "Magic", "2" => "Fire", "3" => "Cold", "4" => "Poison", "5" => "Disease"); my %target = ( "0" => "Rag`Zhezum Special", "1" => "Line of Sight", "2" => "Bill?", "3" => "Group v1", "4" => "PB AE", "5" => "All", "6" => "Self", "8" => "Targeted AE", "9" => "Animal", "10" => "Undead", "11" => "Summoned", "13" => "Lifetap", "14" => "Pet", "15" => "Corpse", "16" => "Plant", "17" => "Uber Giants", "18" => "Uber Dragons", "20" => "Targeted AE, Tap", "24" => "AE Undead", "25" => "AE Summoned", "40" => "AE PC", "41" => "Group v2"); my %vendor = ( "0" => "No", "1" => "Yes"); my %func = ( "0" => "Detrimental", "1" => "Beneficial", "2" => "Beneficial, Group Only"); my %attr = ( "0" => "Hit Points", "1" => "Armor Class", "2" => "Attack", "3" => "Movement", "4" => "Strength", "5" => "Dexterity", "6" => "Agility", "7" => "Stamina", "8" => "Intelligence", "9" => "Wisdom", "10" => "Charisma", "11" => "Attack Speed", "12" => "Invisibility", "13" => "See Invisible", "14" => "Water Breathing", "15" => "Mana", "18" => "Lower Aggression", "19" => "Faction", "20" => "Blinds", "21" => "Stuns", "22" => "Charm", "23" => "Fear", "24" => "Stamina Loss", "25" => "Bind Affinity", "26" => "Gate Home", "27" => "Cancel Magic", "28" => "Invisible to Undead", "29" => "Invisible to Animals", "30" => "Frenzy Radius", "31" => "Mesmerize", "32" => "Summon Item", "33" => "Summon Pet", "35" => "Disease", "36" => "Poison", "40" => "Divine Aura", "41" => "Destroy Target", "42" => "Shadow Step", "44" => "Lycanthropy", "46" => "Fire Resist", "47" => "Cold Resist", "49" => "Disease Resist", "50" => "Magic Resist", "52" => "Sense Undead", "53" => "Sense Summoned", "54" => "Sense Animals", "55" => "Absorb Damage", "56" => "True North", "57" => "Levitate", "58" => "Illusion", "59" => "Damage Shield", "61" => "Identify Item", "63" => "Wipe Hate List", "64" => "Spin Target", "65" => "Infravision", "66" => "Ultravision", "67" => "Eye of Zomm", "68" => "Reclaim Mana", "69" => "Max Hit Points", "71" => "Summon Skeleton", "73" => "Bind Sight", "74" => "Feign Death", "75" => "Voice Graft", "76" => "Sentinel", "77" => "Locate Corpse", "78" => "Absorb Magic Damage", "79" => "Current Hit Points", "81" => "Resurrection", "82" => "Summon Player", "83" => "Teleport", "84" => "Toss Up", "85" => "Add Proc", "86" => "Reaction Radius", "87" => "Magnification", "88" => "Evacuate", "89" => "Player Size", "90" => "Cloak", "91" => "Summon Corpse", "92" => "Hate", "93" => "Stop Rain", "94" => "Negate if Combat", "95" => "Sacrifice", "96" => "Silence", "97" => "Max Mana", "98" => "Mana Drain", "99" => "Root", "100" => "Heal over Time", "101" => "Complete Heal", "102" => "Fearless", "103" => "Summon Pet to you", "104" => "Translocate", "105" => "Anchor", "106" => "BST Pet Summon", "107" => "BST Pet Rank", "108" => "Familiar", "109" => "Summon Item v2", "110" => "Improve Archery", "111" => "Resist All", "112" => "Effective Casting Level", "113" => "Horse Summon", "114" => "Agro Multiplier", "115" => "Food/Water", "116" => "Curse", "117" => "Addon Magic Attribute", "118" => "Singing Skill", "119" => "Over Cap Haste", "120" => "Reduce Healing Effectiveness (%)", "121" => "Reverse Damage Shield", "124" => "Spell Damage (%)", "125" => "Increase Healing (%)", "127" => "Spell Haste (%)", "128" => "Spell Duration (%)", "129" => "Spell Range (%)", "130" => "Unknown #130", "131" => "Reagent Conservation (%)", "132" => "Decrease Mana Cost", "134" => "Limit: Max Level", "135" => "Limit: Resist (Fire Allowed)", "136" => "Target Restriction", "137" => "Effect Restriction", "138" => "Spell Type", "139" => "Spell Restriction", "140" => "Min Duration (tick)", "141" => "Limit: Instant Spells Only", "142" => "Unknown #142", "143" => "Min Casting Time (/1000)", "147" => "Hit Points (75% Max)", "148" => "Stacking1 v2", "149" => "Stacking2 v2", "150" => "Death Save", "151" => "Unknown #151", "152" => "Unknown #152", "153" => "Balance Party Health", "154" => "Unknown #154"); my %inout = ( "-1" => "Any", "1" => "Outdoor", "2" => "Indoor"); my %zone = ( "0" => "Any", "8" => "Plane of Sky", "12" => "Plane of Hate, Plane of Sky", "13" => "Kedge Keep, Plane of Hate, Plane of Sky", "14" => "Plane of Hate, Plane of Sky, Unknown Zone", "16" => "Veeshan's Peak", "24" => "Plane of Sky, Veeshan's Peak"); my %time = ( "0" => "Any", "2" => "Night"); my %dot = ( "0" => "Yes", "1" => "No"); ## dispatch query if options defined getopt('bl'); exec "w3m http://www.buchionline.jp/eq/spell/spell.php?ID=$opt_b" if ($opt_b); exec "w3m http://lucy.allakhazam.com/spell.html?id=$opt_l" if ($opt_l); ## display spells_us.txt file format ## while () { print; } exit 0; ## You probably need to modify HTML format sample (see bottom) --- this is a very simple case! $cgi_mode = 1 if ($ENV{'GATEWAY_INTERFACE'}); ## default variables $pattern = join("\|", @ARGV); $cnt = 0; $color = "FFFFCC"; STDOUT->format_lines_per_page("25"); $detail_mode = 1 if ($pattern =~ /^[\d]+$/); if ($cgi_mode) { my $cgi = new CGI; my $query = $cgi->param('query'); $pattern = $query; } ## open file and read data open (INFILE, "; ## close file close (INFILE); ## print spell name and overview if ($detail_mode) { STDOUT->format_top_name("DETAIL_TOP"); STDOUT->format_name("DETAIL"); STDOUT->format_lines_per_page("50"); } if ($cgi_mode) { STDOUT->autoflush(1); STDOUT->format_top_name("HTML_TOP"); STDOUT->format_name("HTML"); STDOUT->format_lines_per_page("65535"); print "Content-Type: text/html; charset=iso-8859-1\r\n\r\n"; } foreach (@data) { @field = split(/\^/); if ($pattern) { if ($field[0] eq $pattern || $field[1] =~ /$pattern/io) { write; $cnt++; } } else { if ($field[0]) { write; $cnt++; } } $color = "FFFFCC" if ($cnt % 2 == 0); $color = "FFFFFF" if ($cnt % 2 == 1); } ## print footer if ($cnt == 0) { print "No matches found: $pattern\n"; exit; } STDOUT->format_name("STDOUT_FOOT"); STDOUT->format_name("HTML_FOOT") if ($cgi_mode); STDOUT->format_name("DETAIL_FOOT") if ($detail_mode); write; ## format definition format STDOUT_TOP = ID Name Range AE Range CastTime Duration Mana Resist Adjust Skill Target Vendor ---- ------------------------------ ----- -------- -------- -------- ---- ------- ------ ----------- ------------------ ------ . format STDOUT = @>>> @<<<<<<<<<<<<<<<<<<<<<<<<<<<<< @>>>> @>>>>>>> @>>>>>>> @>>>>>>> @>>> @>>>>>> @>>>>> @<<<<<<<<<< @<<<<<<<<<<<<<<<<< @<<<<< $field[0], $field[1], $field[9], $field[10], $field[13], $field[17], $field[19], $resist{$field[85]}, $field[146], $skill{$field[100]}, $target{$field[98]}, $vendor{$field[148]} . format STDOUT_FOOT = ---- ------------------------------ ----- -------- -------- -------- ---- ------- ------ ----------- ------------------ ------ . format HTML_TOP = EverQuest Spell Data

EVERQUEST SPELL DATA, SEPTEMBER 19, 2002


. format HTML = $color $field[0], $field[0] $field[0], $field[1] $field[9] $field[10] $field[13] $field[17] $field[19] $field[0], $resist{$field[85]} $field[146] $skill{$field[100]} $target{$field[98]} $vendor{$field[148]} . format HTML_FOOT =
ID Name Range AE Range Cast Time Duration Mana Resist Resist Adjust Skill Target Vendor
@>>> @<<<<<<<<<<<<<<<<<<<<<<<<<<<<< @>>>>
@>>>>
@>>>>
@>>>>
@>>>>
@<<<<<< @>>>>
@<<<<<<<<<< @<<<<<<<<<<<<<<<<< @<<

. format DETAIL_TOP = . format DETAIL = ID Name Mana Skill Fizzle Vendor Function ---- ------------------------------ ---- ----------- ------ ------ ---------------------- @>>> @<<<<<<<<<<<<<<<<<<<<<<<<<<<<< @>>> @<<<<<<<<<< @>>> % @<<<<< @<<<<<<<<<<<<<<<<<<<<< $field[0], $field[1], $field[19], $skill{$field[100]}, $field[99], $vendor{$field[148]}, $func{$field[83]} Cast Time Fizzle Time Recast Time Duration AE Duration Auto Cast --------- ----------- ----------- -------- ----------- --------- @>>>> sec @>>>>>> sec @>>>>>> sec @>>> min @>>>>>> min @>>>>>>>> $field[13]/1000, $field[14]/1000, $field[15]/1000, $field[17]/10, $field[18]/10, $field[149] Resist Adjust Target Range AE Range Push Back Push Up DoT Stack ------- ------ ------------------ ----- -------- --------- ------- --------- @<<<<<< @>>>>> @<<<<<<<<<<<<<<<<< @>>>> @>>>>>>> @>>>>>>>> @>>>>>> @<<<<<<<< $resist{$field[85]}, $field[146], $target{$field[98]}, $field[9], $field[10], $field[11], $field[12], $dot{$field[147]} In/Out Zone Time ------- ----------------------------------------- ----- @<<<<<< @<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< @<<<< $inout{$field[101]}, $zone{$field[102]}, $time{$field[103]} Gem Icon Buff Icon New Icon Casting Animation Target Animation Particle -------- --------- -------- ----------------- ---------------- -------- @>>>>>>> @>>>>>>>> @>>>>>>> @>>>>>>>>>>>>>>>> @>>>>>>>>>>>>>>> @>>>>>>> $field[56], $field[57], $field[143], $field[119], $field[120], $field[122] User Extra Spell Type Light Type Activated Travel Type ---------- ----- ---------- ---------- --------- ------------ @<<<<<<<<< @<<<< @<<<<<<<<< @<<<<<<<<< @<<<<<<<< @<<<<<<<<<<< $field[2], $field[3], $field[16], $field[82], $field[84], $field[121] WAR CLR PAL RNG SHD DRU MNK BRD ROG SHM NEC WIZ MAG ENC BST --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- @>> @>> @>> @>> @>> @>> @>> @>> @>> @>> @>> @>> @>> @>> @>> $field[104], $field[105], $field[106], $field[107], $field[108], $field[109], $field[110], $field[111], $field[112], $field[113], $field[114], $field[115], $field[116], $field[117], $field[118] # #Bertoxxulous Brell Cazic Erollisi Bristlebane Innoruuk Karana Mithaniel Prexus Quellious Zek Rodcet Ro Tribunal Tunare #------------ ----- ----- -------- ----------- -------- ------ --------- ------ --------- --- ------ -- -------- ------ #@>>>>>>>>>>> @>>>> @>>>> @>>>>>>> @>>>>>>>>>> @>>>>>>> @>>>>> @>>>>>>>> @>>>>> @>>>>>>>> @>> @>>>>> @> @>>>>>>> @>>>>> #$field[125], $field[126], $field[127], $field[128], $field[129], $field[130], $field[131], $field[132], $field[133], $field[134], $field[135], $field[136], $field[137], $field[138], $field[139] No Attribute Base Max Formula -- -------------------------------- -------- -------- ------- 1 @<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< @>>>>>>> @>>>>>>> @>>>>>> $attr{$field[86]}, $field[20], $field[44], $field[70] 2 @<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< @>>>>>>> @>>>>>>> @>>>>>> $attr{$field[87]}, $field[21], $field[45], $field[71] 3 @<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< @>>>>>>> @>>>>>>> @>>>>>> $attr{$field[88]}, $field[22], $field[46], $field[72] 4 @<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< @>>>>>>> @>>>>>>> @>>>>>> $attr{$field[89]}, $field[23], $field[47], $field[73] 5 @<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< @>>>>>>> @>>>>>>> @>>>>>> $attr{$field[90]}, $field[24], $field[48], $field[74] 6 @<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< @>>>>>>> @>>>>>>> @>>>>>> $attr{$field[91]}, $field[25], $field[49], $field[75] 7 @<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< @>>>>>>> @>>>>>>> @>>>>>> $attr{$field[92]}, $field[26], $field[50], $field[76] 8 @<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< @>>>>>>> @>>>>>>> @>>>>>> $attr{$field[93]}, $field[27], $field[51], $field[77] 9 @<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< @>>>>>>> @>>>>>>> @>>>>>> $attr{$field[94]}, $field[28], $field[52], $field[78] 10 @<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< @>>>>>>> @>>>>>>> @>>>>>> $attr{$field[95]}, $field[29], $field[53], $field[79] 11 @<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< @>>>>>>> @>>>>>>> @>>>>>> $attr{$field[96]}, $field[30], $field[54], $field[80] 12 @<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< @>>>>>>> @>>>>>>> @>>>>>> $attr{$field[97]}, $field[31], $field[55], $field[81] . format DETAIL_FOOT = . __END__ spells_us.txt: Field # Description ------- -------------------------------------- 0 ID 1 Name 2 User 3 Extra 4 Cast Message: Cast by you 5 Cast by other 6 Cast on you 7 Cast on other 8 Wears off 9 Range 10 AE Range 11 Push Back 12 Push Up 13 Cast Time 14 Fizzle Time 15 Recast Time 16 Spell Type 17 Duration 18 AE Duration 19 Mana 20 Spell Information (Base): Slot 1 21 Slot 2 22 Slot 3 23 Slot 4 24 Slot 5 25 Slot 6 26 Slot 7 27 Slot 8 28 Slot 9 29 Slot 10 30 Slot 11 31 Slot 12 32 Spell Information (Unknown): Slot 1 33 Slot 2 34 Slot 3 35 Slot 4 36 Slot 5 37 Slot 6 38 Slot 7 39 Slot 8 40 Slot 9 41 Slot 10 42 Slot 11 43 Slot 12 44 Spell Information (Max): Slot 1 45 Slot 2 46 Slot 3 47 Slot 4 48 Slot 5 49 Slot 6 50 Slot 7 51 Slot 8 52 Slot 9 53 Slot 10 54 Slot 11 55 Slot 12 56 Buff Icon Graphics 57 Spell Gem Graphics 58 Component: Reagent 1 59 Reagent 2 60 Reagent 3 61 Reagent 4 62 # of component needed: Reagent 1 63 Reagent 2 64 Reagent 3 65 Reagent 4 66 Focus Item: Reagent 1 67 Reagent 2 68 Reagent 3 69 Reagent 4 70 Spell Information (Formula): Slot 1 71 Slot 2 72 Slot 3 73 Slot 4 74 Slot 5 75 Slot 6 76 Slot 7 77 Slot 8 78 Slot 9 79 Slot 10 80 Slot 11 81 Slot 12 82 Light Type 83 Function 84 Activated 85 Resist 86 Spell Information (Attribute): Slot 1 87 Slot 2 88 Slot 3 89 Slot 4 90 Slot 5 91 Slot 6 92 Slot 7 93 Slot 8 94 Slot 9 95 Slot 10 96 Slot 11 97 Slot 12 98 Target 99 Fizzle Adjust 100 Skill 101 Limit: Indoor/Outdoor 102 Zone 103 Time (Day/Night) 104 Warrior 105 Cleric 106 Paladin 107 Ranger 108 Shadow Knight 109 Druid 110 Monk 111 Bard 112 Rogue 113 Shaman 114 Necromancer 115 Wizard 116 Magician 117 Enchanter 118 Beast Lord 119 Casting Animation 120 Target Animation 121 Travel Type 122 Particle 123 124 125 Deity: Bertoxxulous 126 Brell Serilis 127 Cazic-Thule 128 Erollisi Marr 129 Bristlebane 130 Innoruuk 131 Karana 132 Mithaniel Marr 133 Prexus 134 Quellious 135 Rallos Zek 136 Rodcet Nife 137 Solusek Ro 138 Tribunal 139 Tunare 140 141 142 143 NewUI Graphics 144 Spell Animation 145 146 Resist Adjust 147 DoT Stacking 148 Vendor 149 Autocast 150 151 152 153 154 155 156 157 158 159 160