These are my Buff Bots that I created using AnalogX's Illusionist_Nomaad.pl as a reference.
However, neither of them work and I don't know why.
Code:
#Illusionist_Nomaad.pl
sub EVENT_SAY
{
if(($text=~/hail/i))
{
$npc->SetApperance(0);
quest::emote("sighs at $name");
quest::say("Once upon a time, I was a very powerful Enchanter. However, during one of my Druken rampages I slaughtered the guards in High Keep. They started to hate me so much that they would [kill] me on sight.");
}
elsif(($text=~/kill/i))
{
$npc->SetApperance(0);
quest::emote("shakes his fists in anger");
quest::say("Then one of those damn nobles got me from behind. She killed me.... ME!!! I wanted to [hurt] myself!");
}
elsif(($text=~/hurt/i))
{
$npc->SetApperance(0);
quest::say("I went to bed that night. Sadly, in my durken mess, I forgot that I bound my soul right there in High Keep. The guards slaughtered me over and over till I woke up and I was level 17. Now instead of KEI, all I have for you are these [crap buffs]");
}
elsif(($text=~/crap buffs/i)&&($ulevel>=11))
{
$npc->SetApperance(0);
quest::say("Yes, for someone of your level, I can cast [intellectual superiority] for 1 platnium.");
quest::emote("begins to cry over the loss of income");
}
elsif(($text=~/crap buffs/i)&&($ulevel<=10))
$npc->SetApperance(0);
quest::say("Yes, fucking crap buffs. I can cast this [intellectual advancement] buff on you for 1 platnium.");
quest::emote("begins to cry over the loss of income");
}
elsif(($text=~/intellectual superiority/i))
{
$npc->SetApperance(0);
quest::say("Intellectual Superiority: Increases your Effective Casting by 6, and lasts for 27 minutes. Open trade and hand me 1 platnium for the buff.");
}
elsif(($text=~/intellectual advancement/i))
{
$npc->SetApperance(0);
quest::say("Intellectual Advancement: Increases your Effective Casting by 3, and lasts for 27 minutes. There is an upgraded version once you come back here at level 11. Open trade and hand me 1 platnium for the buff.");
}
}
sub EVENT_ITEM
{
if (($platnium>=1)&&($ulevel<=10))
{
$npc->SetApperance(0);
quest::selfcast(2561);
quest::say("Thanks for the donation, check with Illusionist Mindbender for some mind buffs or Vicar Qadar for health buffs.");
}
elsif(($platnium>=1)&&($ulevel>=11))
{
$npc->SetApperance(0);
quest:selfcast(2562);
quest::say("Thanks for the donation, check with Illusionist Mindbender for some mind buffs or Vicar Qadar for health buffs.");
}
else
{
quest::say("Thanks for the donation, but it sucked ...");
}
}
and of course:
Code:
sub EVENT_SAY
{
if(($text=~/hail/i))
{
$npc->SetApperance(0);
quest::emote("waves at $name");
quest::say("Welcome, welcome, I am the mighty Illusionist Mindbender and I'll happily bend your [mind] for a price");
}
elsif(($text=~/bend/i)&&($ulevel>= 1)&&($ulevel<= 14))
$npc->SetApperance(0);
quest::say("Well my friend, your [will] is only proficient for [breeze], it will cost you 1 platnium.");
}
elsif(($text=~/bend/i)&&($ulevel>= 15)&&($ulevel<= 29))
$npc->SetApperance(0);
quest::say("A lot of puney rats want my mind buffs, sadly their [will] is not as advanced, sadly you fall in this line and can only optain [clarity] from me, this spell will cost you 5 platnium.");
}
elsif(($text=~/bend/i)&&($ulevel>= 30)&&($ulevel<= 45))
$npc->SetApperance(0);
quest::say("Ha, I'd call you a Mid-be, in other words your [will] is strong enough to handle my [clarity 2] spell but still sucks. It's 10 platnium if you want it.");
}
elsif(($text=~/bend/i)&&($ulevel>= 46)&&($ulevel<= 50))
$npc->SetApperance(0);
quest::say("Nice, you can now forget Illusionist Orange here to my right, your [will] is quite powerful enough for [KEI]. However, it will cost you 30 platnium.");
}
elsif(($text=~/bend/i)&&($ulevel>= 51)&&($ulevel<= 55))
$npc->SetApperance(0);
quest::say("You have come to the right place friend, your [will] is capable of [tranquility]. It's better then [KEI], but does not last as long. [KEI] is still 30 platnium if you want it. [tranquility] is 35 platnium.");
}
elsif(($text=~/bend/i)&&($ulevel>= 56)&&($ulevel<= 59))
$npc->SetApperance(0);
quest::say("Wow, your [will] is quite strong, I can sense it pulse with energy. I can offer you [VOQ] which is much better then [KEI], but does not last as long. [KEI] is still 30 platnium if you want it. [VOQ] is 40 platnium.");
}
elsif(($text=~/bend/i)&&($ulevel>= 60))
$npc->SetApperance(0);
quest::emote("looks quite happy");
quest::say("FINALLY, Someone that I can respect! Your [will] is as powerful as mine. If you want [KEI] it's still 30 platnium as always. But why not take advantage of [clairvoyance]. It's much powerful then [KEI] but doesn't last as long. I can cast it on you for just 50 platnium.");
}
elsif(($text=~/will/i))
$npc->SetApperance(0);
quest::say("I can offer [breeze] starting at level 1, [clarity] at level 15, [clarity 2] at level 30, [KEI] at level 46, [tranquility] at level 51, [VOQ] at level 56, and finally and definitely something that will keep you up at night, [clairvoyance] at level 60.");
}
elsif(($text=~/breeze/i))
$npc->SetApperance(0);
quest::say("Breeze: 4 to 6 mana per tick, and lasts 27 minutes. This spell will cost you 1 platnium.");
}
elsif(($text=~/clarity/i))
$npc->SetApperance(0);
quest::say("Clarity: 7 to 9 mana per tick, and lasts 27 minutes. You need a will of at least level 15 to handle it. This spell will cost you 5 platnium.");
}
elsif(($text=~/clarity 2/i))
$npc->SetApperance(0);
quest::say("Clarity 2: 9 to 11 mana per tick, and lasts 35 minutes. You will need a will of at least level 30 to handle it. This spell will cost you 10 platnium.");
}
elsif(($text=~/KEI/i))
$npc->SetApperance(0);
quest::say("Koadic's Endless Intelligence: Increases mana pool by 250, 14 mana per tick, +25 WIS, +25 INT, and lasts 2 hours and 30 minutes. You will need a will of at least level 46 to handle this spell. It will cost you 30 platnium.");
}
elsif(($text=~/tranquility/i))
$npc->SetApperance(0);
quest::say("Tanquility: Increases mana pool by 260, 16 mana per tick, +26INT, +26WIS, and lasts 1 hour and 20 minutes. You will need a will of at least level 51. This spell will cost you 35 platnium.");
}
elsif(($text=~/VOQ/i))
$npc->SetApperance(0);
quest::say("Voice of Quellious: Increases mana pool by 275, 18 mana per tick, +28WIS, +28INT, and lasts 1 hour and 20 minutes. You will need a will of at least 56. This spell will cost you 40 platnium.");
}
elsif(($text=~/clairvoyance/i))
$npc->SetApperance(0);
quest::say("Clairvoyance: Increases mana pool by 400, 20 mana per tick, +32WIS, +32INT, and lasts 1 hour and 20 minutes. You will need a will of at least 60. This spell will cost you 50 platnium.");
}
}
sub EVENT_SPAWN
{
$x = $npc->GetX();
$y = $npc->GetY();
quest::set_proximity($x - 90, $x + 90, $y - 90, $y + 90);
}
sub EVENT_ENTER
{
$npc->SetApperance(1);
my $random_result = int(rand(100));
if ($random_result<=75)
{
quest::shout("Casting Mind Buffs for donations on the rock behind the main bank!");
}
else
{
#Do Nothing
}
}
sub EVENT_ITEM
{
if (($platnium>=1)&&($platnium<=4)&&($ulevel<=45))
{
$npc->SetApperance(0);
quest::selfcast(697);
quest::say("Thanks for the donation, check with Vicar Qadar for health buffs.");
}
elseif (($platnium>=5)&&($platnium<=9)&&($ulevel<=45)&&($ulevel>=15))
{
$npc->SetApperance(0);
quest::selfcast(174);
quest::say("Thanks for the donation, check with Vicar Qadar for health buffs.");
}
elseif (($platnium>=10)&&($platnium<=29)&&($ulevel<=45)&&($ulevel>=30))
{
$npc->SetApperance(0);
quest::selfcast(1693);
quest::say("Thanks for the donation, check with Vicar Qadar for health buffs.");
}
elseif (($platnium>=30)&&($platnium<=34)&&($ulevel>=46))
{
$npc->SetApperance(0);
quest::selfcast(2570);
quest::say("Thanks for the donation, check with Vicar Qadar for health buffs.");
}
elseif (($platnium>=35)&&($platnium<=39)&&($ulevel>=51))
{
$npc->SetApperance(0);
quest::selfcast(3350);
quest::say("Thanks for the donation, check with Vicar Qadar for health buffs.");
}
elseif (($platnium>=40)&&($platnium<=49)&&($ulevel>=56))
{
$npc->SetApperance(0);
quest::selfcast(3360);
quest::say("Thanks for the donation, check with Vicar Qadar for health buffs.");
}
elseif (($platnium>=50)&&($ulevel>=60))
{
$npc->SetApperance(0);
quest::selfcast(5522);
quest::say("Thanks for the donation, check with Vicar Qadar for health buffs.");
}
My questions are:
Why do my buff bots not work?
Is there a column in the npc_type table (or any other) that if set to a specific value will prevent scripts from running?
Thanks