Actually, here is my exact script to charge money on the user level for buffs. I don't have a feature to automatically shout or anything (as I have the tag "buffs" under it's name). But this is how my script works:
Code:
sub EVENT_SAY{
$client->Message(7, " ");
my $NPCName = $npc->GetCleanName();
if($text=~/Hail/i) {
if ($ulevel <= 10) {
quest::selfcast(5415);
quest::selfcast(5312);
quest::selfcast(5405);
quest::selfcast(5409);
quest::selfcast(5521);
quest::selfcast(5365);
quest::selfcast(278);
quest::selfcast(939);
quest::selfcast(3391);
quest::selfcast(5390);
$client->Message(315, "$NPCName whispers to you, 'Since you are level 10 or lower you get free buffs, $name! Good luck to you.'");
}
if (($ulevel > 10) && ($ulevel < 25)) {
$client->Message(315, "$NPCName whispers to you, 'Hello $name, I will give you buffs for 100 platinum.'");
}
if (($ulevel >= 25) && ($ulevel < 80)) {
$client->Message(315, "$NPCName whispers to you, 'Hello $name, I will give you buffs for 500 platinum.'");
}
if ($ulevel >= 80) {
$client->Message(315, "$NPCName whispers to you, 'Hello $name, I will give you buffs for 1,000 platinum.'");
}
}
}
sub EVENT_ITEM {
$client->Message(7, " ");
my $NPCName = $npc->GetCleanName();
if ($platinum == 1000) {
if ($ulevel >= 80) {
quest::selfcast(5278);
quest::selfcast(5415);
quest::selfcast(5312);
quest::selfcast(5405);
quest::selfcast(5409);
quest::selfcast(5521);
quest::selfcast(5365);
quest::selfcast(278);
quest::selfcast(939);
quest::selfcast(3391);
quest::selfcast(5390);
$client->Message(315, "$NPCName whispers to you, 'Thank you $name!'");
} else {
$client->Message(315, "$NPCName whispers to you, 'Use the correct amount, $name!'");
quest::givecash($copper,$silver,$gold,$platinum);
}
}
if ($platinum == 500) {
if (($ulevel < 80)&&($ulevel >= 25)) {
quest::selfcast(5278);
quest::selfcast(5415);
quest::selfcast(5312);
quest::selfcast(5405);
quest::selfcast(5409);
quest::selfcast(5521);
quest::selfcast(5365);
quest::selfcast(278);
quest::selfcast(939);
quest::selfcast(3391);
quest::selfcast(5390);
$client->Message(315, "$NPCName whispers to you, 'Thank you $name!'");
} else {
$client->Message(315, "$NPCName whispers to you, 'Use the correct amount, $name!'");
quest::givecash($copper,$silver,$gold,$platinum);
}
}
if ($platinum == 100) {
if (($ulevel > 10) && ($ulevel < 25)) {
quest::selfcast(5415);
quest::selfcast(5312);
quest::selfcast(5405);
quest::selfcast(5409);
quest::selfcast(5521);
quest::selfcast(5365);
quest::selfcast(278);
quest::selfcast(939);
quest::selfcast(3391);
quest::selfcast(5390);
$client->Message(315, "$NPCName whispers to you, 'Thank you $name!'");
} else {
$client->Message(315, "$NPCName whispers to you, 'Use the correct amount, $name!'");
quest::givecash($copper,$silver,$gold,$platinum);
}
}
if (($platinum < 100) || ($platinum < 500) && ($platinum > 100) || ($platinum < 1000) && ($platinum > 100) && ($platinum > 500) || ($platinum > 1000)) {
$client->Message(315, "$NPCName whispers to you, 'Use the correct amount, $name!'");
quest::givecash($copper,$silver,$gold,$platinum);
}
}
It simply charges a fee based on the user level. It also buffs them upon correct payment.
Enjoy!