Log in

View Full Version : Sharing is Caring: Custom Spells


chrsschb
10-06-2015, 09:35 AM
Anyone made some unique/cool/fun/complex custom spells they wouldn't mind sharing? I know we have a custom quest forum and some of you guys are very talented so we appreciate the shares. Helps the newer guys learn to do some more complex stuff. So I have the same idea for spells. Any thing you guys are willing to share?

I have just really started digging into custom spells, just making some basic HoT, teleports, etc so definitely interested in some new ideas!

starblight
10-06-2015, 01:23 PM
I made some custom items like the Just Looking Stick that has the cleric epic clicky on it And a Vanguard Rope with a modified CoH spell that has a range of 30.

I know this is not exactly what you were looking for but it should just be one post to ignore :)

Maceblade
10-06-2015, 01:52 PM
I have a few custom spells but nothing super extensive. I manipulated a shaman spell that will strip beneficial, malo, slow, debuff and cripple , that cannot be resisted at the cost of 10k mana, which isn't hard to achieve on my server.
Also have quite a few illusion clickies that add procs and swarm pets and a few group celestial heals and targetable self buffs. Nothing worth bragging about.

N0ctrnl
10-06-2015, 02:14 PM
I made copies of a bunch of hitpoint buffs without the "instant hitpoints" effect (for bots), but that's about it. :P

NatedogEZ
10-06-2015, 02:47 PM
Custom spells using quests? :) Because I love doing that!

AoE rez spell I wrote awhile ago... (edited it a bit)
uses spell 994 to resurrect.. but whatever spell its attached to needs to be self only targettype to trigger the quest script..

spellid.pl (example 11.pl) in the global\spells folder

sub EVENT_SPELL_EFFECT_CLIENT {
my @corpselist = $entity_list->GetCorpseList();
foreach $CL (@corpselist) {
next unless $CL->IsPlayerCorpse();
next if $CL->IsRezzed();
next if $client->CalculateDistance($CL->GetX(), $CL->GetY(), $CL->GetZ()) > 100;
quest::castspell(994,$CL->GetID());
}
}

chrsschb
10-06-2015, 02:53 PM
Custom spells using quests? :) Because I love doing that!

AoE rez spell I wrote awhile ago... (edited it a bit)
uses spell 994 to resurrect.. but whatever spell its attached to needs to be self only targettype to trigger the quest script..

spellid.pl (example 11.pl) in the global\spells folder

sub EVENT_SPELL_EFFECT_CLIENT {
my @corpselist = $entity_list->GetCorpseList();
foreach $CL (@corpselist) {
next unless $CL->IsPlayerCorpse();
next if $CL->IsRezzed();
next if $client->CalculateDistance($CL->GetX(), $CL->GetY(), $CL->GetZ()) > 100;
quest::castspell(994,$CL->GetID());
}
}

That's pretty badass.

NatedogEZ
10-06-2015, 03:23 PM
Here is another one where a spell will cycle ranks to the max...

X boss casts a single target nuke.. every 30sec or so... and each time you get a stacking debuff.. where you take more damage.

This quest has test spell IDs but.. it works, the test spells are the GMHP buffs so you can test if it works :p

When this spell lands on the player the next spell in the @spells array will be cast on them.. stacking debuff.. or stacking buff.

This can be used for other ideas I am guessing as well.. I just used it for boss debuffs / player stacking self buffs :p


spellid.pl (example 11.pl in global\spells)

sub EVENT_SPELL_EFFECT_CLIENT {
my $caster_ent = $entity_list->GetMobID($caster_id); #who cast the spell
my $target_id = $client->GetID(); #Client who got cast on
my @spells = (6817, 6818, 6819, 6820, 6821, 6822, 6823, 6824); #Spells Can add more to array if you want

if ( grep { $client->FindBuff($_) } @spells ) {
for $x (0 .. $#spells) {
if( $client->FindBuff($spells[$x]) ) {
$client->BuffFadeBySpellID($spells[$x]); #Remove current buff / debuff (incase they STACK)
if($spells[$x] == $spells[$#spells]) {
$caster_ent->SpellFinished($spells[$x], $client, 0); #Last Rank
last;
} else {
$caster_ent->SpellFinished($spells[$x + 1], $client, 0); #Cycle Ranks
last;
}
}
}
} else {
$caster_ent->SpellFinished($spells[0], $client, 0); #Cast First Rank!
}
}

Maceblade
10-06-2015, 05:18 PM
Those are pretty sick Nate I like them!

Secrets
10-06-2015, 05:32 PM
Technically, this video is all done using spells... (and perl :))

oiV9dcQSGfw

Secrets
10-06-2015, 05:33 PM
uPIJd4LOEMY

Secrets
10-06-2015, 05:38 PM
RPJmPEFotbg

Kingly_Krab
10-06-2015, 05:42 PM
Here's a zone teleporter with search capability, requires a lot of plugins: sub EVENT_SAY {
if ($text=~/Hail/i) {
plugin::Whisper("Hello $name, would you like me to " . quest::saylink("teleport", 1) . " you somewhere?");
} elsif ($text=~/Teleport/i) {
plugin::Whisper("Just say any phrase like \"search a\" and I will see if I can teleport you to a similar zone.");
} elsif ($text=~/^Search/i) {
my $search = substr($text, 7);
plugin::ListTeleport($search);
} elsif ($text > 0) {
plugin::Teleport();
}
}

sub EVENT_POPUPRESPONSE {
plugin::Teleport($popupid);
}

Plugins: sub Message {
my $client = plugin::val('client');
my $message = shift;
$client->Message(315, $message);
}

sub ListTeleport {
my $text = shift;
my %zh = plugin::ZoneHash();
foreach my $key (sort {$a <=> $b} keys %zh) {
if ($zh{$key}[1] =~ /$text/i) {
plugin::Message("ID: $zh{$key}[0] Short Name: $zh{$key}[1] " . quest::saylink($zh{$key}[0], 1, "Teleport"));
} elsif ($zh{$key}[2] =~ /$text/i) {
plugin::Message("ID: $zh{$key}[0] Long Name: $zh{$key}[2] " . quest::saylink($zh{$key}[0], 1, "Teleport"));
}
}
}

sub Teleport {
my $popup = defined $_[0] ? $_[0] : 0;
if ($popup == 0) {
my $text = plugin::val('text');
my %zh = plugin::ZoneHash();
foreach my $key (sort {$a <=> $b} keys %zh) {
if ($zh{$key}[0] == $text || $zh{$key}[1] eq $text || $zh{$key}[2] eq $text) {
quest::popup("Confirmation Window", "Are you sure you want to teleport to the following zone?<br><font color ='#00FFFF'>$zh{$key}[2]</font>", $zh{$key}[0], 1);
}
}
} else {
quest::zone(plugin::Zone("SN", $popup));
}
}

sub Zone {
my %zh = plugin::ZoneHash();
my $t = shift;
my $z = shift;
foreach my $k (keys %zh) {
if ($z ~~ @{$zh{$k}}) {
if ($t eq "ID") {
return $zh{$k}[0];
} elsif ($t eq "SN") {
return $zh{$k}[1];
} elsif ($t eq "LN") {
return $zh{$k}[2];
}
}
}
}

sub ZoneHash {
my %zh = (1 => [1, "qeynos", "South Qeynos"],
2 => [2, "qeynos2", "North Qeynos"],
3 => [3, "qrg", "The Surefall Glade"],
4 => [4, "qeytoqrg", "The Qeynos Hills"],
5 => [5, "highpass", "Highpass Hold"],
6 => [6, "highkeep", "High Keep"],
7 => [8, "freportn", "North Freeport"],
8 => [9, "freportw", "West Freeport"],
9 => [10, "freporte", "East Freeport"],
10 => [11, "runnyeye", "The Liberated Citadel of Runnyeye"],
11 => [12, "qey2hh1", "The Western Plains of Karana"],
12 => [13, "northkarana", "The Northern Plains of Karana"],
13 => [14, "southkarana", "The Southern Plains of Karana"],
14 => [15, "eastkarana", "Eastern Plains of Karana"],
15 => [16, "beholder", "Gorge of King Xorbb"],
16 => [17, "blackburrow", "Blackburrow"],
17 => [18, "paw", "The Lair of the Splitpaw"],
18 => [19, "rivervale", "Rivervale"],
19 => [20, "kithicor", "Kithicor Forest"],
20 => [21, "commons", "West Commonlands"],
21 => [22, "ecommons", "East Commonlands"],
22 => [23, "erudnint", "The Erudin Palace"],
23 => [24, "erudnext", "Erudin"],
24 => [25, "nektulos", "The Nektulos Forest"],
25 => [25, "nektulos", "The Nektulos Forest"],
26 => [26, "cshome", "Sunset Home"],
27 => [27, "lavastorm", "The Lavastorm Mountains"],
28 => [28, "nektropos", "Nektropos"],
29 => [29, "halas", "Halas"],
30 => [30, "everfrost", "Everfrost Peaks"],
31 => [31, "soldunga", "Solusek's Eye"],
32 => [32, "soldungb", "Nagafen's Lair"],
33 => [33, "misty", "Misty Thicket"],
34 => [34, "nro", "Northern Desert of Ro"],
35 => [35, "sro", "Southern Desert of Ro"],
36 => [36, "befallen", "Befallen"],
37 => [37, "oasis", "Oasis of Marr"],
38 => [38, "tox", "Toxxulia Forest"],
39 => [39, "hole", "The Hole"],
40 => [40, "neriaka", "Neriak - Foreign Quarter"],
41 => [41, "neriakb", "Neriak - Commons"],
42 => [42, "neriakc", "Neriak - 3rd Gate"],
43 => [43, "neriakd", "Neriak Palace"],
44 => [44, "najena", "Najena"],
45 => [45, "qcat", "The Qeynos Aqueduct System"],
46 => [46, "innothule", "Innothule Swamp"],
47 => [47, "feerrott", "The Feerrott"],
48 => [48, "cazicthule", "Accursed Temple of Cazic Thule"],
49 => [49, "oggok", "Oggok"],
50 => [50, "rathemtn", "The Rathe Mountains"],
51 => [51, "lakerathe", "Lake Rathetear"],
52 => [52, "grobb", "Grobb"],
53 => [53, "aviak", "Aviak Village"],
54 => [54, "gfaydark", "The Greater Faydark"],
55 => [55, "akanon", "Ak'Anon"],
56 => [56, "steamfont", "Steamfont Mountains"],
57 => [57, "lfaydark", "The Lesser Faydark"],
58 => [58, "crushbone", "Crushbone"],
59 => [59, "mistmoore", "The Castle of Mistmoore"],
60 => [60, "kaladima", "South Kaladim"],
61 => [61, "felwithea", "Northern Felwithe"],
62 => [62, "felwitheb", "Southern Felwithe"],
63 => [63, "unrest", "The Estate of Unrest"],
64 => [64, "kedge", "Kedge Keep"],
65 => [65, "guktop", "The City of Guk"],
66 => [66, "gukbottom", "The Ruins of Old Guk"],
67 => [67, "kaladimb", "North Kaladim"],
68 => [68, "butcher", "Butcherblock Mountains"],
69 => [69, "oot", "Ocean of Tears"],
70 => [70, "cauldron", "Dagnor's Cauldron"],
71 => [71, "airplane", "The Plane of Sky"],
72 => [72, "fearplane", "The Plane of Fear"],
73 => [73, "permafrost", "The Permafrost Caverns"],
74 => [74, "kerraridge", "Kerra Isle"],
75 => [75, "paineel", "Paineel"],
76 => [76, "hateplane", "Plane of Hate"],
77 => [77, "arena", "The Arena"],
78 => [78, "fieldofbone", "The Field of Bone"],
79 => [79, "warslikswood", "The Warsliks Woods"],
80 => [80, "soltemple", "The Temple of Solusek Ro"],
81 => [81, "droga", "The Temple of Droga"],
82 => [82, "cabwest", "Cabilis West"],
83 => [83, "swampofnohope", "The Swamp of No Hope"],
84 => [84, "firiona", "Firiona Vie"],
85 => [85, "lakeofillomen", "Lake of Ill Omen"],
86 => [86, "dreadlands", "The Dreadlands"],
87 => [87, "burningwood", "The Burning Wood"],
88 => [88, "kaesora", "Kaesora"],
89 => [89, "sebilis", "The Ruins of Sebilis"],
90 => [90, "citymist", "The City of Mist"],
91 => [91, "skyfire", "The Skyfire Mountains"],
92 => [92, "frontiermtns", "Frontier Mountains"],
93 => [93, "overthere", "The Overthere"],
94 => [94, "emeraldjungle", "The Emerald Jungle"],
95 => [95, "trakanon", "Trakanon's Teeth"],
96 => [96, "timorous", "Timorous Deep"],
97 => [97, "kurn", "Kurn's Tower"],
98 => [98, "erudsxing", "Erud's Crossing"],
99 => [100, "stonebrunt", "The Stonebrunt Mountains"],
100 => [101, "warrens", "The Warrens"],
101 => [102, "karnor", "Karnor's Castle"],
102 => [103, "chardok", "Chardok"],
103 => [104, "dalnir", "The Crypt of Dalnir"],
104 => [105, "charasis", "The Howling Stones"],
105 => [106, "cabeast", "Cabilis East"],
106 => [107, "nurga", "The Mines of Nurga"],
107 => [108, "veeshan", "Veeshan's Peak"],
108 => [109, "veksar", "Veksar"],
109 => [110, "iceclad", "The Iceclad Ocean"],
110 => [111, "frozenshadow", "The Tower of Frozen Shadow"],
111 => [112, "velketor", "Velketor's Labyrinth"],
112 => [113, "kael", "Kael Drakkel"],
113 => [114, "skyshrine", "Skyshrine"],
114 => [115, "thurgadina", "The City of Thurgadin"],
115 => [116, "eastwastes", "Eastern Wastes"],
116 => [117, "cobaltscar", "Cobaltscar"],
117 => [118, "greatdivide", "The Great Divide"],
118 => [119, "wakening", "The Wakening Land"],
119 => [120, "westwastes", "The Western Wastes"],
120 => [121, "crystal", "The Crystal Caverns"],
121 => [123, "necropolis", "Dragon Necropolis"],
122 => [124, "templeveeshan", "The Temple of Veeshan"],
123 => [125, "sirens", "Siren's Grotto"],
124 => [126, "mischiefplane", "The Plane of Mischief"],
125 => [127, "growthplane", "The Plane of Growth"],
126 => [128, "sleeper", "The Sleeper's Tomb"],
127 => [129, "thurgadinb", "Icewell Keep"],
128 => [130, "erudsxing2", "Marauders Mire"],
129 => [150, "shadowhaven", "Shadow Haven"],
130 => [151, "bazaar", "The Bazaar"],
131 => [151, "bazaar", "The Bazaar"],
132 => [152, "nexus", "Nexus"],
133 => [153, "echo", "The Echo Caverns"],
134 => [154, "acrylia", "The Acrylia Caverns"],
135 => [155, "sharvahl", "The City of Shar Vahl"],
136 => [156, "paludal", "The Paludal Caverns"],
137 => [157, "fungusgrove", "The Fungus Grove"],
138 => [158, "vexthal", "Vex Thal"],
139 => [159, "sseru", "Sanctus Seru"],
140 => [160, "katta", "Katta Castellum"],
141 => [161, "netherbian", "Netherbian Lair"],
142 => [162, "ssratemple", "Ssraeshza Temple"],
143 => [163, "griegsend", "Grieg's End"],
144 => [164, "thedeep", "The Deep"],
145 => [165, "shadeweaver", "Shadeweaver's Thicket"],
146 => [166, "hollowshade", "Hollowshade Moor"],
147 => [167, "grimling", "Grimling Forest"],
148 => [168, "mseru", "Marus Seru"],
149 => [169, "letalis", "Mons Letalis"],
150 => [170, "twilight", "The Twilight Sea"],
151 => [171, "thegrey", "The Grey"],
152 => [172, "tenebrous", "The Tenebrous Mountains"],
153 => [173, "maiden", "The Maiden's Eye"],
154 => [174, "dawnshroud", "The Dawnshroud Peaks"],
155 => [175, "scarlet", "The Scarlet Desert"],
156 => [176, "umbral", "The Umbral Plains"],
157 => [179, "akheva", "The Akheva Ruins"],
158 => [180, "arena2", "The Arena Two"],
159 => [181, "jaggedpine", "The Jaggedpine Forest"],
160 => [182, "nedaria", "Nedaria's Landing"],
161 => [183, "tutorial", "EverQuest Tutorial"],
162 => [184, "load", "Loading Zone"],
163 => [185, "load2", "New Loading Zone"],
164 => [186, "hateplaneb", "The Plane of Hate"],
165 => [187, "shadowrest", "Shadowrest"],
166 => [188, "tutoriala", "The Mines of Gloomingdeep"],
167 => [189, "tutorialb", "The Mines of Gloomingdeep"],
168 => [190, "clz", "Loading"],
169 => [200, "codecay", "The Crypt of Decay"],
170 => [201, "pojustice", "The Plane of Justice"],
171 => [202, "poknowledge", "The Plane of Knowledge"],
172 => [203, "potranquility", "The Plane of Tranquility"],
173 => [204, "ponightmare", "The Plane of Nightmares"],
174 => [205, "podisease", "The Plane of Disease"],
175 => [206, "poinnovation", "The Plane of Innovation"],
176 => [207, "potorment", "Torment, the Plane of Pain"],
177 => [208, "povalor", "The Plane of Valor"],
178 => [209, "bothunder", "Bastion of Thunder"],
179 => [210, "postorms", "The Plane of Storms"],
180 => [211, "hohonora", "The Halls of Honor"],
181 => [212, "solrotower", "The Tower of Solusek Ro"],
182 => [213, "powar", "Plane of War"],
183 => [214, "potactics", "Drunder, the Fortress of Zek"],
184 => [215, "poair", "The Plane of Air"],
185 => [216, "powater", "The Plane of Water"],
186 => [217, "pofire", "The Plane of Fire"],
187 => [218, "poeartha", "The Plane of Earth"],
188 => [219, "potimea", "The Plane of Time"],
189 => [220, "hohonorb", "The Temple of Marr"],
190 => [221, "nightmareb", "The Lair of Terris Thule"],
191 => [222, "poearthb", "The Plane of Earth"],
192 => [223, "potimeb", "The Plane of Time"],
193 => [224, "gunthak", "The Gulf of Gunthak"],
194 => [225, "dulak", "Dulak's Harbor"],
195 => [226, "torgiran", "The Torgiran Mines"],
196 => [227, "nadox", "The Crypt of Nadox"],
197 => [228, "hatesfury", "Hate's Fury"],
198 => [229, "guka", "Deepest Guk: Cauldron of Lost Souls"],
199 => [230, "ruja", "The Rujarkian Hills: Bloodied Quarries"],
200 => [231, "taka", "Takish-Hiz: Sunken Library"],
201 => [232, "mira", "Miragul's Menagerie: Silent Gallery"],
202 => [233, "mmca", "Mistmoore's Catacombs: Forlorn Caverns"],
203 => [234, "gukb", "The Drowning Crypt"],
204 => [235, "rujb", "The Rujarkian Hills: Halls of War"],
205 => [236, "takb", "Takish-Hiz: Shifting Tower"],
206 => [237, "mirb", "Miragul's Menagerie: Frozen Nightmare"],
207 => [238, "mmcb", "Mistmoore's Catacombs: Dreary Grotto"],
208 => [239, "gukc", "Deepest Guk: Ancient Aqueducts"],
209 => [240, "rujc", "The Rujarkian Hills: Wind Bridges"],
210 => [241, "takc", "Takish-Hiz: Fading Temple"],
211 => [242, "mirc", "The Spider Den"],
212 => [243, "mmcc", "Mistmoore's Catacombs: Struggles within the Progeny"],
213 => [244, "gukd", "The Mushroom Grove"],
214 => [245, "rujd", "The Rujarkian Hills: Prison Break"],
215 => [246, "takd", "Takish-Hiz: Royal Observatory"],
216 => [247, "mird", "Miragul's Menagerie: Hushed Banquet"],
217 => [248, "mmcd", "Mistmoore's Catacombs: Chambers of Eternal Affliction"],
218 => [249, "guke", "Deepest Guk: The Curse Reborn"],
219 => [250, "ruje", "The Rujarkian Hills: Drudge Hollows"],
220 => [251, "take", "Takish-Hiz: River of Recollection"],
221 => [252, "mire", "The Frosted Halls"],
222 => [253, "mmce", "Mistmoore's Catacombs: Sepulcher of the Damned"],
223 => [254, "gukf", "Deepest Guk: Chapel of the Witnesses"],
224 => [255, "rujf", "The Rujarkian Hills: Fortified Lair of the Taskmasters"],
225 => [256, "takf", "Takish-Hiz: Sandfall Corridors"],
226 => [257, "mirf", "The Forgotten Wastes"],
227 => [258, "mmcf", "Mistmoore's Catacombs: Scion Lair of Fury"],
228 => [259, "gukg", "The Root Garden"],
229 => [260, "rujg", "The Rujarkian Hills: Hidden Vale of Deceit"],
230 => [261, "takg", "Takish-Hiz: Balancing Chamber"],
231 => [262, "mirg", "Miragul's Menagerie: Heart of the Menagerie"],
232 => [263, "mmcg", "Mistmoore's Catacombs: Cesspits of Putrescence"],
233 => [264, "gukh", "Deepest Guk: Accursed Sanctuary"],
234 => [265, "rujh", "The Rujarkian Hills: Blazing Forge "],
235 => [266, "takh", "Takish-Hiz: Sweeping Tides"],
236 => [267, "mirh", "The Morbid Laboratory"],
237 => [268, "mmch", "Mistmoore's Catacombs: Aisles of Blood"],
238 => [269, "ruji", "The Rujarkian Hills: Arena of Chance"],
239 => [270, "taki", "Takish-Hiz: Antiquated Palace"],
240 => [271, "miri", "The Theater of Imprisoned Horror"],
241 => [272, "mmci", "Mistmoore's Catacombs: Halls of Sanguinary Rites"],
242 => [273, "rujj", "The Rujarkian Hills: Barracks of War"],
243 => [274, "takj", "Takish-Hiz: Prismatic Corridors"],
244 => [275, "mirj", "Miragul's Menagerie: Grand Library"],
245 => [276, "mmcj", "Mistmoore's Catacombs: Infernal Sanctuary"],
246 => [277, "chardokb", "Chardok: The Halls of Betrayal"],
247 => [278, "soldungc", "The Caverns of Exile"],
248 => [279, "abysmal", "The Abysmal Sea"],
249 => [280, "natimbi", "Natimbi, the Broken Shores"],
250 => [281, "qinimi", "Qinimi, Court of Nihilia"],
251 => [282, "riwwi", "Riwwi, Coliseum of Games"],
252 => [283, "barindu", "Barindu, Hanging Gardens"],
253 => [284, "ferubi", "Ferubi, Forgotten Temple of Taelosia"],
254 => [285, "snpool", "Sewers of Nihilia, Pool of Sludg"],
255 => [286, "snlair", "Sewers of Nihilia, Lair of Trapp"],
256 => [287, "snplant", "Sewers of Nihilia, Purifying Pla"],
257 => [288, "sncrematory", "Sewers of Nihilia, Emanating Cre"],
258 => [289, "tipt", "Tipt, Treacherous Crags"],
259 => [290, "vxed", "Vxed, the Crumbling Caverns"],
260 => [291, "yxtta", "Yxtta, Pulpit of Exiles "],
261 => [292, "uqua", "Uqua, the Ocean God Chantry"],
262 => [293, "kodtaz", "Kod'Taz, Broken Trial Grounds"],
263 => [294, "ikkinz", "Ikkinz, Chambers of Transcendence"],
264 => [295, "qvic", "Qvic, Prayer Grounds of Calling"],
265 => [296, "inktuta", "Inktu'Ta, the Unmasked Chapel"],
266 => [297, "txevu", "Txevu, Lair of the Elite"],
267 => [298, "tacvi", "Tacvi, The Broken Temple"],
268 => [299, "qvicb", "Qvic, the Hidden Vault"],
269 => [300, "wallofslaughter", "Wall of Slaughter"],
270 => [301, "bloodfields", "The Bloodfields"],
271 => [302, "draniksscar", "Dranik's Scar"],
272 => [303, "causeway", "Nobles' Causeway"],
273 => [304, "chambersa", "Muramite Proving Grounds"],
274 => [305, "chambersb", "Muramite Proving Grounds"],
275 => [306, "chambersc", "Muramite Proving Grounds"],
276 => [307, "chambersd", "Muramite Proving Grounds"],
277 => [308, "chamberse", "Muramite Proving Grounds"],
278 => [309, "chambersf", "Muramite Proving Grounds"],
279 => [316, "provinggrounds", "Muramite Provinggrounds"],
280 => [317, "anguish", "Anguish, the Fallen Palace"],
281 => [318, "dranikhollowsa", "Dranik's Hollows"],
282 => [319, "dranikhollowsb", "Dranik's Hollows"],
283 => [320, "dranikhollowsc", "Dranik's Hollows"],
284 => [328, "dranikcatacombsa", "Catacombs of Dranik"],
285 => [329, "dranikcatacombsb", "Catacombs of Dranik"],
286 => [330, "dranikcatacombsc", "Catacombs of Dranik"],
287 => [331, "draniksewersa", "Sewers of Dranik"],
288 => [332, "draniksewersb", "Sewers of Dranik"],
289 => [333, "draniksewersc", "Sewers of Dranik"],
290 => [334, "riftseekers", "Riftseekers' Sanctum"],
291 => [335, "harbingers", "Harbinger's Spire"],
292 => [336, "dranik", "The Ruined City of Dranik"],
293 => [337, "broodlands", "The Broodlands"],
294 => [338, "stillmoona", "Stillmoon Temple"],
295 => [339, "stillmoonb", "The Ascent"],
296 => [340, "thundercrest", "Thundercrest Isles"],
297 => [341, "delvea", "Lavaspinner's Lair"],
298 => [342, "delveb", "Tirranun's Delve"],
299 => [343, "thenest", "The Nest"],
300 => [344, "guildlobby", "Guild Lobby"],
301 => [345, "guildhall", "Guild Hall"],
302 => [346, "barter", "The Barter Hall"],
303 => [347, "illsalin", "Ruins of Illsalin"],
304 => [348, "illsalina", "Illsalin Marketplace"],
305 => [349, "illsalinb", "Temple of Korlach"],
306 => [350, "illsalinc", "The Nargil Pits"],
307 => [351, "dreadspire", "Dreadspire Keep"],
308 => [354, "drachnidhive", "The Hive"],
309 => [355, "drachnidhivea", "The Hatchery"],
310 => [356, "drachnidhiveb", "The Cocoons"],
311 => [357, "drachnidhivec", "Queen Sendaii`s Lair"],
312 => [358, "westkorlach", "Stoneroot Falls"],
313 => [359, "westkorlacha", "Prince's Manor"],
314 => [360, "westkorlachb", "Caverns of the Lost"],
315 => [361, "westkorlachc", "Lair of the Korlach"],
316 => [362, "eastkorlach", "The Undershore"],
317 => [363, "eastkorlacha", "Snarlstone Dens"],
318 => [364, "shadowspine", "Shadow Spine"],
319 => [365, "corathus", "Corathus Creep"],
320 => [366, "corathusa", "Sporali Caverns"],
321 => [367, "corathusb", "The Corathus Mines"],
322 => [368, "nektulosa", "Shadowed Grove"],
323 => [369, "arcstone", "Arcstone, Isle of Spirits"],
324 => [370, "relic", "Relic, the Artifact City"],
325 => [371, "skylance", "Skylance"],
326 => [372, "devastation", "The Devastation"],
327 => [373, "devastationa", "The Seething Wall"],
328 => [374, "rage", "Sverag, Stronghold of Rage"],
329 => [375, "ragea", "Razorthorn, Tower of Sullon Zek"],
330 => [376, "takishruins", "Ruins of Takish-Hiz"],
331 => [377, "takishruinsa", "The Root of Ro"],
332 => [378, "elddar", "The Elddar Forest"],
333 => [379, "elddara", "Tunare's Shrine"],
334 => [380, "theater", "Theater of Blood"],
335 => [381, "theatera", "Deathknell, Tower of Dissonance"],
336 => [382, "freeporteast", "East Freeport"],
337 => [383, "freeportwest", "West Freeport"],
338 => [384, "freeportsewers", "Freeport Sewers"],
339 => [385, "freeportacademy", "Academy of Arcane Sciences"],
340 => [386, "freeporttemple", "Temple of Marr"],
341 => [387, "freeportmilitia", "Freeport Militia House: My Precious"],
342 => [388, "freeportarena", "Arena"],
343 => [389, "freeportcityhall", "City Hall"],
344 => [390, "freeporttheater", "Theater of the Tranquil"],
345 => [391, "freeporthall", "Hall of Truth: Bounty"],
346 => [392, "northro", "North Desert of Ro"],
347 => [393, "southro", "South Desert of Ro"],
348 => [394, "crescent", "Crescent Reach"],
349 => [395, "moors", "Blightfire Moors"],
350 => [396, "stonehive", "Stone Hive"],
351 => [397, "mesa", "Goru`kar Mesa"],
352 => [398, "roost", "Blackfeather Roost"],
353 => [399, "steppes", "The Steppes"],
354 => [400, "icefall", "Icefall Glacier"],
355 => [401, "valdeholm", "Valdeholm"],
356 => [402, "frostcrypt", "Frostcrypt, Throne of the Shade King"],
357 => [403, "sunderock", "Sunderock Springs"],
358 => [404, "vergalid", "Vergalid Mines"],
359 => [405, "direwind", "Direwind Cliffs"],
360 => [406, "ashengate", "Ashengate, Reliquary of the Scale"],
361 => [407, "highpasshold", "Highpass Hold"],
362 => [408, "commonlands", "The Commonlands"],
363 => [409, "oceanoftears", "The Ocean of Tears"],
364 => [410, "kithforest", "Kithicor Forest"],
365 => [411, "befallenb", "Befallen"],
366 => [412, "highpasskeep", "HighKeep"],
367 => [413, "innothuleb", "The Innothule Swamp"],
368 => [414, "toxxulia", "Toxxulia Forest"],
369 => [415, "mistythicket", "The Misty Thicket"],
370 => [416, "kattacastrum", "Katta Castrum"],
371 => [417, "thalassius", "Thalassius, the Coral Keep"],
372 => [418, "atiiki", "Jewel of Atiiki"],
373 => [419, "zhisza", "Zhisza, the Shissar Sanctuary"],
374 => [420, "silyssar", "Silyssar, New Chelsith"],
375 => [421, "solteris", "Solteris, the Throne of Ro"],
376 => [422, "barren", "Barren Coast"],
377 => [423, "buriedsea", "The Buried Sea"],
378 => [424, "jardelshook", "Jardel's Hook"],
379 => [425, "monkeyrock", "Monkey Rock"],
380 => [426, "suncrest", "Suncrest Isle"],
381 => [427, "deadbone", "Deadbone Reef"],
382 => [428, "blacksail", "Blacksail Folly"],
383 => [429, "maidensgrave", "Maiden's Grave"],
384 => [430, "redfeather", "Redfeather Isle"],
385 => [431, "shipmvp", "The Open Sea"],
386 => [432, "shipmvu", "The Open Sea"],
387 => [433, "shippvu", "The Open Sea"],
388 => [434, "shipuvu", "The Open Sea"],
389 => [435, "shipmvm", "The Open Sea"],
390 => [436, "mechanotus", "Fortress Mechanotus"],
391 => [437, "mansion", "Meldrath's Majestic Mansion"],
392 => [438, "steamfactory", "The Steam Factory"],
393 => [439, "shipworkshop", "S.H.I.P. Workshop"],
394 => [440, "gyrospireb", "Gyrospire Beza"],
395 => [441, "gyrospirez", "Gyrospire Zeka"],
396 => [442, "dragonscale", "Dragonscale Hills"],
397 => [443, "lopingplains", "Loping Plains"],
398 => [444, "hillsofshade", "Hills of Shade"],
399 => [445, "bloodmoon", "Bloodmoon Keep"],
400 => [446, "crystallos", "Crystallos, Lair of the Awakened"],
401 => [447, "guardian", "The Mechamatic Guardian"],
402 => [448, "steamfontmts", "The Steamfont Mountains"],
403 => [449, "cryptofshade", "Crypt of Shade"],
404 => [451, "dragonscaleb", "Deepscar's Den"],
405 => [452, "oldfieldofbone", "Field of Scale"],
406 => [453, "oldkaesoraa", "Kaesora Library"],
407 => [454, "oldkaesorab", "Kaesora Hatchery"],
408 => [455, "oldkurn", "Kurn's Tower"],
409 => [456, "oldkithicor", "Bloody Kithicor"],
410 => [457, "oldcommons", "Old Commonlands"],
411 => [458, "oldhighpass", "Highpass Hold"],
412 => [459, "thevoida", "The Void"],
413 => [460, "thevoidb", "The Void"],
414 => [461, "thevoidc", "The Void"],
415 => [462, "thevoidd", "The Void"],
416 => [463, "thevoide", "The Void"],
417 => [464, "thevoidf", "The Void"],
418 => [465, "thevoidg", "The Void"],
419 => [466, "oceangreenhills", "Oceangreen Hills"],
420 => [467, "oceangreenvillage", "Oceangreen Village"],
421 => [468, "oldblackburrow", "BlackBurrow"],
422 => [469, "bertoxtemple", "Temple of Bertoxxulous"],
423 => [470, "discord", "Korafax, Home of the Riders"],
424 => [471, "discordtower", "Citadel of the Worldslayer"],
425 => [472, "oldbloodfield", "Old Bloodfields"],
426 => [473, "precipiceofwar", "The Precipice of War"],
427 => [474, "olddranik", "City of Dranik"],
428 => [475, "toskirakk", "Toskirakk"],
429 => [476, "korascian", "Korascian Warrens"],
430 => [477, "rathechamber", "Rathe Council Chamber"],
431 => [480, "brellsrest", "Brell's Rest"],
432 => [481, "fungalforest", "Fungal Forest"],
433 => [482, "underquarry", "The Underquarry"],
434 => [483, "coolingchamber", "The Cooling Chamber"],
435 => [484, "shiningcity", "Kernagir, the Shining City"],
436 => [485, "arthicrex", "Arthicrex"],
437 => [486, "foundation", "The Foundation"],
438 => [487, "lichencreep", "Lichen Creep"],
439 => [488, "pellucid", "Pellucid Grotto"],
440 => [489, "stonesnake", "Volska's Husk"],
441 => [490, "brellstemple", "Brell's Temple"],
442 => [491, "convorteum", "The Convorteum"],
443 => [492, "brellsarena", "Brell's Arena"],
444 => [493, "weddingchapel", "Wedding Chapel"],
445 => [494, "weddingchapeldark", "Wedding Chapel"],
446 => [495, "dragoncrypt", "Lair of the Risen"],
447 => [700, "feerrott2", "The Feerrott"],
448 => [701, "thulehouse1", "House of Thule"],
449 => [702, "thulehouse2", "House of Thule, Upper Floors"],
450 => [703, "housegarden", "The Grounds"],
451 => [704, "thulelibrary", "The Library"],
452 => [705, "well", "The Well"],
453 => [706, "fallen", "Erudin Burning"],
454 => [707, "morellcastle", "Morell's Castle"],
455 => [708, "somnium", "Sanctum Somnium"],
456 => [709, "alkabormare", "Al'Kabor's Nightmare"],
457 => [710, "miragulmare", "Miragul's Nightmare"],
458 => [711, "thuledream", "Fear Itself"],
459 => [712, "neighborhood", "Sunrise Hills"],
460 => [724, "argath", "Argath, Bastion of Illdaera"],
461 => [725, "arelis", "Valley of Lunanyn"],
462 => [726, "sarithcity", "Sarith, City of Tides"],
463 => [727, "rubak", "Rubak Oseka, Temple of the Sea"],
464 => [728, "beastdomain", "Beasts' Domain"],
465 => [729, "resplendent", "The Resplendent Temple"],
466 => [730, "pillarsalra", "Pillars of Alra"],
467 => [731, "windsong", "Windsong Sanctuary"],
468 => [732, "cityofbronze", "Erillion, City of Bronze"],
469 => [733, "sepulcher", "Sepulcher of Order"],
470 => [734, "eastsepulcher", "Sepulcher East"],
471 => [735, "westsepulcher", "Sepulcher West"],
472 => [752, "shardslanding", "Shard's Landing"],
473 => [753, "xorbb", "Valley of King Xorbb"],
474 => [754, "kaelshard", "Kael Drakkel: The King's Madness"],
475 => [755, "eastwastesshard", "East Wastes: Zeixshi-Kar's Awakening"],
476 => [756, "crystalshard", "The Crystal Caverns: Fragment of Fear"],
477 => [757, "breedinggrounds", "The Breeding Grounds"],
478 => [758, "eviltree", "Evantil, the Vile Oak"],
479 => [759, "grelleth", "Grelleth's Palace, the Chateau of Filth"],
480 => [760, "chapterhouse", "Chapterhouse of the Fallen"],
481 => [996, "arttest", "Art Testing Domain"],
482 => [998, "fhalls", "The Forgotten Halls"],
483 => [999, "apprentice", "Designer Apprentice"]);
return %zh;
}

return 1;

Kingly_Krab
10-06-2015, 06:18 PM
Expansion of plugin::check_hasitem to have array capability (checks for at least one of the items in the array) as well as the ability to check if someone has a certain item or any item in an array of items equipped: sub check_hasitem {
my $client = shift;
my $itemid = shift;
my @slots = (0..30, 251..340, 2000..2023, 2030..2270, 2500..2501, 2531..2550, 9999);
foreach $slot (@slots) {
if ($client->GetItemIDAt($slot) == $itemid) {
return 1;
}

for ($i = 0; $i < 5; $i++) {
if ($client->GetAugmentIDAt($slot, $i) == $itemid) {
return 1;
}
}
}
return 0;
}

sub check_hasitem_array {
my $client = shift;
my @items = @_;
my @slots = (0..30, 251..340, 2000..2023, 2030..2270, 2500..2501, 2531..2550, 9999);
foreach $slot (@slots) {
if ($client->GetItemIDAt($slot) ~~ @items) {
return 1;
}

for ($i = 0; $i < 5; $i++) {
if ($client->GetAugmentIDAt($slot, $i) ~~ @items) {
return 1;
}
}
}
return 0;
}

sub check_hasequipped {
my $client = shift;
my $item = shift;
my @slots = (0..21, 9999);
foreach my $slot (@slots) {
if ($client->GetItemIDAt($slot) == $item) {
return 1;
}

for ($i = 0; $i < 5; $i++) {
if ($client->GetAugmentIDAt($slot, $i) == $item) {
return 1;
}
}
}
}

sub check_hasequipped_array {
my $client = shift;
my @items = @_;
my @slots = (0..21, 9999);
foreach my $slot (@slots) {
if ($client->GetItemIDAt($slot) ~~ @items) {
return 1;
}

for ($i = 0; $i < 5; $i++) {
if ($client->GetAugmentIDAt($slot, $i) ~~ @items) {
return 1;
}
}
}
}

return 1;

chrsschb
10-08-2015, 01:22 PM
So I had an idea, maybe one of you wizards can tell me if it's possible.

Basically I want to have a buff applied to a player when they equip an item and I want the buff to fade if they take the weapon off.

Shendare
10-08-2015, 01:46 PM
Like... a worn effect? :P

Noport
10-08-2015, 01:53 PM
here is how it would be done putting on an item autocasting location last spell slot example: /autocast slotnumber spellid when taken off item /remove slotnumber spellid
example: Pillage Enchantment buff remover

chrsschb
10-08-2015, 02:33 PM
Like... a worn effect? :P

In hindsight that was a dumb question and/or poorly worded. What are the limitations of a worn effect?

I'm thinking of adding a specific buff to classes that would only get applied when specific items are equipped. The buff would be different per class and/or none at all.

So if Warrior equipped Demon Sword 001 he'd get 2000 HP, but if Ranger equipped Demon Sword 001 he'd get nothing.

To take it a step even further, I'd like the buffs to be percentage-based. So +10% more strength or +20% HP.

Kingly_Krab
10-08-2015, 03:41 PM
There's two subroutines for such a thing chrsschb, EVENT_EQUIP_ITEM and EVENT_UNEQUIP_ITEM.

Cassieze
10-09-2015, 08:19 PM
Poison Cloud that follows you around and damages things - pretty much just a carbon copy of steadfast servant but switch the spells to something that damages
2 spells, 1 npc, 1 pet, 1 script

1)
Spell1:Pet spawner I used ID 21063 Adjust as necessary
Spell Effect 1: 152 base value 1 max value is time in seconds it will follow

I was considering putting this on some kind of timer that spawns them every couple seconds. Was having issues with it tho - pretty sure it was with the timer being attached to the spell itself. Although you could probably just use a regen type spell or something that already has ticks built in and just spawn a new one every tick.

2)
Spell2:Any Pbaoe DMG spell Like earthquake.

I made a new one with ID 21064. If you wanted to get fancy you could give it a viral dot or a Pbaoe effect that triggered a viral dot.

This gets called out in the script in order to cast.

If you wanted it to cast multiple spells just look up the steadfast servant and mimic how it picks what spell to use

3)
The basic gist of the mob is you cant hit it, it doesnt do melee attacks it just kinda walks around or follows you (even tho mine go and attack things) and since its a poison cloud it can obviously see through invis

Name it Poison_Cloud or something along those lines

My npcId for it is 999232. Mae sure you adjust as necessary

NPC: Bodytype: 11, Race: 127,Wep1: 11519 Wep2: 11519 Mindmg: 1 Maxdmg: 2 Attack Count: -1 NPC AGGRO: 1. See Hide: 1 See Improved Invis: 1 See undead: 1 Trackable: 0

At this point I'm realizing you could probably make it be a personal rain cloud by just changing the weapons out. I didnt like the dervish (race 431) for the poison cloud but it could work for other things

4)
Script to be placed in quests/global. Give it the name of your npcid so mine was 999232.pl this gets used again when you make the pet in the next step
#
# Poison Cloud 1-- Redid Steadfast Servant

$HPThreshold = 50; # HP Threshold at which HoT will be cast.
$Frequency = 3; # Frequency in seconds with which the EVENT_TIMER is executed.
$Range = 300; # How close a player must be for a chance to be buffed.

sub EVENT_SPAWN {
quest::settimer("RandomAction", $Frequency);
}

sub EVENT_TIMER {

# First we find our owner and see if is in range and in need of any buffs.
#
$OwnerID = $npc->GetFollowID();

if($OwnerID <= 0)
{
return;
}
$Owner = $entity_list->GetClientByID($OwnerID);

if($Owner)
{
$x = $Owner->GetX();
$y = $Owner->GetY();
$z = $Owner->GetZ();

$Distance = $npc->CalculateDistance($x, $y, $z);

if($Distance < $Range) {
$npc->CastSpell(21064, $ClientID);

}
}
}

5)
Make the pet in the pets table

Type: PoisonCloud1 petpower: -1 npcID: 999232 Temp: 1 petcontrol: 0 petnaming: 0 monsterflag: 0 (Or MAYBE YOU CAN MAKE NPCS USE IT?? ehh dodge the poison clouds event type thing - not sure if thats what this is for I keep getting ideas) Equipmentset: -1

Cassieze
10-09-2015, 08:28 PM
@Secrets

What have I missed that you can do ground targeted abilities in emu now? Did we move to the next game version or what. Because that opens up the biggest array of spell possibilities as far as targeting and placing things such as traps and could make the game slightly more fast paced if you desired.

(I just want to drop meteor showers on an area without having to click a mob to do so)