NPC Buff station - Group error
I found this buff script here on the forums. I edited a small portion to remove the higher levels that were added. It works great when your out of a group, but will not work when your in a group. Any help is appreciated.
@SpellName10 = ("Center", "Spirit of Bear", "Feet like Cat", "Dextrous Aura", "Strengthen", "Quickness", "Breeze", "Spirit of Wolf", "Shield of Brambles", "Complete Heal"); @SpellName20 = ("Daring", "Turtle Skin", "Spirit of Cat", "Protection of Rock", "Spirit Strength", "Alacrity", "Clarity", "Spirit of Wolf", "Shield of Spikes", "Complete Heal"); @SpellName30 = ("Bravery", "Spirit of Ox", "Spirit of Cat", "Rising Dexterity", "Raging Strength", "Augmentation", "Clarity II", "Spirit of the Shrew", "Shield of Thorns", "Complete Heal"); @SpellName40 = ("Valor", "Health", "Nimble", "Deftness", "Furious Strength", "Celerity", "Boon of the Clear Mind", "Pack Spirit", "Legacy of Spike", "Complete Heal"); @SpellName50 = ("Blessing of Temperance", "Stamina", "Agility", "Dexterity", "Strength", "Swift like the Wind", "Gift of Pure Thought", "Spirit of Eagle", "Shield of Blades", "Complete Heal"); @SpellName60 = ("Aegolism", "Talisman of the Brute", "Talisman of the Cat", "Mortal Deftness", "Talisman of the Rhino", "Augment", "Koadic's Endless Intellect", "Spirit of Eagle", "Legacy of Thorn", "Complete Heal"); @SpellName65 = ("Virtue", "Focus of the Seventh", "Sylvan Infusion", "Protection of the Nine", "Visions of Grandeur", "Tranquility", "Circle of Seasons", "Spirit of Eagle", "Shield of Bracken", "Complete Heal"); @SpellName70 = ("Hand of Virtue", "Talisman of Wunshi", "Chlorotrope", "Steeloak Skin", "Vallon's Quickening", "Clairvoyance", "Protection of Seasons", "Flight of Eagles", "Nettle Shield", "Complete Heal"); @spellID10 = ("219", "279", "269", "266", "40", "39", "697", "278", "46", "129", "13"); @spellID20 = ("89", "283", "148", "2512", "147", "170", "174", "278", "46", "432", "13"); @spellID30 = ("244", "149", "148", "349", "151", "10", "1693", "4054", "356", "13"); @spellID40 = ("312", "161", "160", "152", "153", "171", "1694", "169", "1727", "13"); @spellID50 = ("4053", "158", "154", "157", "159", "172", "1695", "2517", "1560", "13"); @spellID60 = ("1447", "1580", "1579", "1596", "1581", "1729", "2570", "2517", "1561", "13"); @spellID65 = ("3467", "3397", "4883", "3234", "1710", "3350", "2519", "2517", "3448", "13"); @spellID70 = ("3479", "5415", "5355", "5352", "3178", "5513", "3444", "3185", "5358", "13"); sub EVENT_SAY { my $Buff = quest::saylink("buffs", 1); my $heal = quest::saylink("heal", 1); my $cure = quest::saylink("cure", 1); my $speed = quest::saylink("speed", 1); my $KEI = quest::saylink("KEI", 1); my $NPCName = $npc->GetCleanName(); my $total = 11; my $n = 0; my $Group = $client->GetGroup(); if($text=~/Hail/i) { $client->Message(315, "$NPCName whispers to you, 'Hello, $name. Do you need $Buff? If you're in a Group you will get Group Buffs, if you're alone you will get Solo Buffs. Or maybe you need a $cure, $speed, $KEI, or a $heal?'"); } if($text=~/Heal/i) { quest::selfcast(13); $client->Message(315, "$NPCName whispers to you, 'You have been healed! Enjoy!'"); } if($text=~/Cure/i) { quest::selfcast(11274); $client->Message(315, "$NPCName whispers to you, 'You have been cured! Enjoy!'"); } if($text=~/Speed/i) { quest::selfcast(1212); $client->Message(315, "$NPCName whispers to you, 'Enjoy!'"); } if($text=~/KEI/i) { quest::selfcast(2570); $client->Message(315, "$NPCName whispers to you,' Enjoy!"); } if($text=~/Buffs/i) { if($Group) { if($ulevel<=10) { $Group->CastGroupSpell($npc, $_) for @spellID10; } if($ulevel>=11 && $ulevel<=20) { $Group->CastGroupSpell($npc, $_) for @spellID20; } if($ulevel>=21 && $ulevel<=30) { $Group->CastGroupSpell($npc, $_) for @spellID30; } if($ulevel>=31 && $ulevel<=40) { $Group->CastGroupSpell($npc, $_) for @spellID40; } if($ulevel>=41 && $ulevel<=50) { $Group->CastGroupSpell($npc, $_) for @spellID50; } if($ulevel>=51 && $ulevel<=60) { $Group->CastGroupSpell($npc, $_) for @spellID60; } if($ulevel>=61 && $ulevel<=65) { $Group->CastGroupSpell($npc, $_) for @spellID70; } if($ulevel>=66 && $ulevel<=85) { $Group->CastGroupSpell($npc, $_) for @spellID80; } } else { if ($ulevel <= 10) { quest::selfcast(219); quest::selfcast(279); quest::selfcast(269); quest::selfcast(266); quest::selfcast(40); quest::selfcast(39); quest::selfcast(697); quest::selfcast(278); quest::selfcast(46); quest::selfcast(129); $client->Message(315, "$NPCName whispers to you, 'Enjoy!'"); } if (($ulevel > 10) && ($ulevel < 25)) { quest::selfcast(89); quest::selfcast(283); quest::selfcast(148); quest::selfcast(2512); quest::selfcast(147); quest::selfcast(170); quest::selfcast(174); quest::selfcast(278); quest::selfcast(46); quest::selfcast(432); $client->Message(315, "$NPCName whispers to you, 'Enjoy!'"); } if (($ulevel >= 25) && ($ulevel < 51)) { quest::selfcast(312); quest::selfcast(161); quest::selfcast(160); quest::selfcast(152); quest::selfcast(153); quest::selfcast(171); quest::selfcast(1694); quest::selfcast(169); quest::selfcast(1727); quest::selfcast(13); quest::selfcast(1560); $client->Message(315, "$NPCName whispers to you, 'Enjoy!'"); } if ($ulevel >= 51) { quest::selfcast(4053); quest::selfcast(158); quest::selfcast(154); quest::selfcast(157); quest::selfcast(159); quest::selfcast(1742); quest::selfcast(1695); quest::selfcast(2517); quest::selfcast(1560); quest::selfcast(13); quest::selfcast(1561); $client->Message(315, "$NPCName whispers to you, 'Enjoy!'"); } } } } } |
Two things:
One, use if(defined($Group)) - it's safer. Two, the reason the CastGroupSpell function fails to work is because the function needs all spells in the list to have an 'aoe range' specified in the spell. https://github.com/EQEmu/Server/blob...roups.cpp#L855 You will have to loop through the group members to buff everyone in the group, that function will not work as you intend it to. |
I removed
my $Group = $client->GetGroup(); and it will buff me in a group or out of a group. |
Here's my buff NPC.
NPC: Code:
sub EVENT_SAY { Code:
sub BuffsHash { |
Quote:
I don't care much for selfcast, so I use these for low end buffer and if NPC is high enough level, it gives full duration buffs, even if player is level 1 (This spell id is temp and group temp) $npc->CastSpell(3692, $GetPlayerID ); $Group->CastGroupSpell($npc, 4053); |
Quote:
|
All times are GMT -4. The time now is 03:13 PM. |
Powered by vBulletin®, Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.