mirror of
https://github.com/EQEmu/Server.git
synced 2026-09-09 23:46:36 +00:00
Updated Buff your Players (markdown)
+673
@@ -160,3 +160,676 @@ sub EVENT_LEVEL_UP {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
# Player Buffer (PERL)
|
||||||
|
|
||||||
|
* File Name (example): Canary_Morris.pl
|
||||||
|
* Description: This script will provide buffs and cures to the player and/or the player's pet, or the player's group and their pets, and will bind the player to the area. The NPC will charge the player for the good buffs.
|
||||||
|
|
||||||
|
_Credit to Maze who created the original version of this script, which has been adapted for use on this wiki._
|
||||||
|
|
||||||
|
```perl
|
||||||
|
#:: Create a scalar vaiable to store the maximum level of buffs
|
||||||
|
$maxlevelbuffs = 70;
|
||||||
|
#:: Create a hash to define spells cast at each 10 levels, and their cost
|
||||||
|
#:: Keys are by each 10 levels, with differentiation for spells ranked as generic vs. advanced
|
||||||
|
#:: Values are each spell, by id, and the cost in platinum for each rank
|
||||||
|
%buffshash = (
|
||||||
|
#:: Hash for Warriors
|
||||||
|
1 =>
|
||||||
|
{
|
||||||
|
level10generic => [276,278,219,368,146,148,279,129],
|
||||||
|
level10costgeneric => 0,
|
||||||
|
level10costadvanced => [3692,2505,423,356,172,64,145,1693,15,60,61,46,2524],
|
||||||
|
level10costadvanced => 100,
|
||||||
|
level20generic => [276,278,219,368,146,148,279,129],
|
||||||
|
level20costgeneric => 0,
|
||||||
|
level20advanced => [3692,2505,423,356,172,64,145,1693,15,60,61,46,2524],
|
||||||
|
level20costadvanced => 100,
|
||||||
|
level30generic => [276,278,219,368,146,148,279,129],
|
||||||
|
level30costgeneric => 0,
|
||||||
|
level30advanced => [3692,2505,423,356,172,64,145,1693,15,60,61,46,2524],
|
||||||
|
level30costadvanced => 100,
|
||||||
|
level40generic => [276,278,219,368,146,148,279,129],
|
||||||
|
level40costgeneric => 0,
|
||||||
|
level40advanced => [3692,2505,423,356,172,64,145,1693,15,60,61,46,2524],
|
||||||
|
level40costadvanced => 100,
|
||||||
|
level50generic => [276,278,219,368,146,148,279,129],
|
||||||
|
level50costgeneric => 0,
|
||||||
|
level50advanced => [3692,2505,423,356,172,64,145,1693,15,60,61,46,2524],
|
||||||
|
level50costadvanced => 100,
|
||||||
|
level60generic => [276,278,219,368,146,148,279,129],
|
||||||
|
level60costgeneric => 0,
|
||||||
|
level60advanced => [3692,2505,423,356,172,64,145,1693,15,60,61,46,2524],
|
||||||
|
level60costadvanced => 100,
|
||||||
|
level70generic => [276,278,219,368,146,148,279,129],
|
||||||
|
level70costgeneric => 0,
|
||||||
|
level70advanced => [3692,2505,423,356,172,64,145,1693,15,60,61,46,2524],
|
||||||
|
level70costadvanced => 100,
|
||||||
|
},
|
||||||
|
#:: Hash for Clerics
|
||||||
|
2 =>
|
||||||
|
{
|
||||||
|
level10generic => [276,278,219,368,146,148,279,129],
|
||||||
|
level10costgeneric => 0,
|
||||||
|
level10advanced => [3692,2505,423,356,172,64,145,1693,15,60,61,46,2524],
|
||||||
|
level10costadvanced => 100,
|
||||||
|
level20generic => [276,278,219,368,146,148,279,129],
|
||||||
|
level20costgeneric => 0,
|
||||||
|
level20advanced => [3692,2505,423,356,172,64,145,1693,15,60,61,46,2524],
|
||||||
|
level20costadvanced => 100,
|
||||||
|
level30generic => [276,278,219,368,146,148,279,129],
|
||||||
|
level30costgeneric => 0,
|
||||||
|
level30advanced => [3692,2505,423,356,172,64,145,1693,15,60,61,46,2524],
|
||||||
|
level30costadvanced => 100,
|
||||||
|
level40generic => [276,278,219,368,146,148,279,129],
|
||||||
|
level40costgeneric => 0,
|
||||||
|
level40advanced => [3692,2505,423,356,172,64,145,1693,15,60,61,46,2524],
|
||||||
|
level40costadvanced => 100,
|
||||||
|
level50generic => [276,278,219,368,146,148,279,129],
|
||||||
|
level50costgeneric => 0,
|
||||||
|
level50advanced => [3692,2505,423,356,172,64,145,1693,15,60,61,46,2524],
|
||||||
|
level50costadvanced => 100,
|
||||||
|
level60generic => [276,278,219,368,146,148,279,129],
|
||||||
|
level60costgeneric => 0,
|
||||||
|
level60advanced => [3692,2505,423,356,172,64,145,1693,15,60,61,46,2524],
|
||||||
|
level60costadvanced => 100,
|
||||||
|
level70generic => [276,278,219,368,146,148,279,129],
|
||||||
|
level70costgeneric => 0,
|
||||||
|
level70advanced => [3692,2505,423,356,172,64,145,1693,15,60,61,46,2524],
|
||||||
|
level70costadvanced => 100,
|
||||||
|
},
|
||||||
|
#:: Hash for Paladins
|
||||||
|
3 =>
|
||||||
|
{
|
||||||
|
level10generic => [276,278,219,368,146,148,279,129],
|
||||||
|
level10costgeneric => 0,
|
||||||
|
level10advanced => [3692,2505,423,356,172,64,145,1693,15,60,61,46,2524],
|
||||||
|
level10costadvanced => 100,
|
||||||
|
level20generic => [276,278,219,368,146,148,279,129],
|
||||||
|
level20costgeneric => 0,
|
||||||
|
level20advanced => [3692,2505,423,356,172,64,145,1693,15,60,61,46,2524],
|
||||||
|
level20costadvanced => 100,
|
||||||
|
level30generic => [276,278,219,368,146,148,279,129],
|
||||||
|
level30costgeneric => 0,
|
||||||
|
level30advanced => [3692,2505,423,356,172,64,145,1693,15,60,61,46,2524],
|
||||||
|
level30costadvanced => 100,
|
||||||
|
level40generic => [276,278,219,368,146,148,279,129],
|
||||||
|
level40costgeneric => 0,
|
||||||
|
level40advanced => [3692,2505,423,356,172,64,145,1693,15,60,61,46,2524],
|
||||||
|
level40costadvanced => 100,
|
||||||
|
level50generic => [276,278,219,368,146,148,279,129],
|
||||||
|
level50costgeneric => 0,
|
||||||
|
level50advanced => [3692,2505,423,356,172,64,145,1693,15,60,61,46,2524],
|
||||||
|
level50costadvanced => 100,
|
||||||
|
level60generic => [276,278,219,368,146,148,279,129],
|
||||||
|
level60costgeneric => 0,
|
||||||
|
level60advanced => [3692,2505,423,356,172,64,145,1693,15,60,61,46,2524],
|
||||||
|
level60costadvanced => 100,
|
||||||
|
level70generic => [276,278,219,368,146,148,279,129],
|
||||||
|
level70costgeneric => 0,
|
||||||
|
level70advanced => [3692,2505,423,356,172,64,145,1693,15,60,61,46,2524],
|
||||||
|
level70costadvanced => 100,
|
||||||
|
},
|
||||||
|
#:: Hash for Ranger
|
||||||
|
4 =>
|
||||||
|
{
|
||||||
|
level10generic => [276,278,219,368,146,148,279,129],
|
||||||
|
level10costgeneric => 0,
|
||||||
|
level10advanced => [3692,2505,423,356,172,64,145,1693,15,60,61,46,2524],
|
||||||
|
level10costadvanced => 100,
|
||||||
|
level20generic => [276,278,219,368,146,148,279,129],
|
||||||
|
level20costgeneric => 0,
|
||||||
|
level20advanced => [3692,2505,423,356,172,64,145,1693,15,60,61,46,2524],
|
||||||
|
level20costadvanced => 100,
|
||||||
|
level30generic => [276,278,219,368,146,148,279,129],
|
||||||
|
level30costgeneric => 0,
|
||||||
|
level30advanced => [3692,2505,423,356,172,64,145,1693,15,60,61,46,2524],
|
||||||
|
level30costadvanced => 100,
|
||||||
|
level40generic => [276,278,219,368,146,148,279,129],
|
||||||
|
level40costgeneric => 0,
|
||||||
|
level40advanced => [3692,2505,423,356,172,64,145,1693,15,60,61,46,2524],
|
||||||
|
level40costadvanced => 100,
|
||||||
|
level50generic => [276,278,219,368,146,148,279,129],
|
||||||
|
level50costgeneric => 0,
|
||||||
|
level50advanced => [3692,2505,423,356,172,64,145,1693,15,60,61,46,2524],
|
||||||
|
level50costadvanced => 100,
|
||||||
|
level60generic => [276,278,219,368,146,148,279,129],
|
||||||
|
level60costgeneric => 0,
|
||||||
|
level60advanced => [3692,2505,423,356,172,64,145,1693,15,60,61,46,2524],
|
||||||
|
level60costadvanced => 100,
|
||||||
|
level70generic => [276,278,219,368,146,148,279,129],
|
||||||
|
level70costgeneric => 0,
|
||||||
|
level70advanced => [3692,2505,423,356,172,64,145,1693,15,60,61,46,2524],
|
||||||
|
level70costadvanced => 100,
|
||||||
|
},
|
||||||
|
#:: Hash for Shadow Knight
|
||||||
|
5 =>
|
||||||
|
{
|
||||||
|
level10generic => [276,278,219,368,146,148,279,129],
|
||||||
|
level10costgeneric => 0,
|
||||||
|
level10advanced => [3692,2505,423,356,172,64,145,1693,15,60,61,46,2524],
|
||||||
|
level10costadvanced => 100,
|
||||||
|
level20generic => [276,278,219,368,146,148,279,129],
|
||||||
|
level20costgeneric => 0,
|
||||||
|
level20advanced => [3692,2505,423,356,172,64,145,1693,15,60,61,46,2524],
|
||||||
|
level20costadvanced => 100,
|
||||||
|
level30generic => [276,278,219,368,146,148,279,129],
|
||||||
|
level30costgeneric => 0,
|
||||||
|
level30advanced => [3692,2505,423,356,172,64,145,1693,15,60,61,46,2524],
|
||||||
|
level30costadvanced => 100,
|
||||||
|
level40generic => [276,278,219,368,146,148,279,129],
|
||||||
|
level40costgeneric => 0,
|
||||||
|
level40advanced => [3692,2505,423,356,172,64,145,1693,15,60,61,46,2524],
|
||||||
|
level40costadvanced => 100,
|
||||||
|
level50generic => [276,278,219,368,146,148,279,129],
|
||||||
|
level50costgeneric => 0,
|
||||||
|
level50advanced => [3692,2505,423,356,172,64,145,1693,15,60,61,46,2524],
|
||||||
|
level50costadvanced => 100,
|
||||||
|
level60generic => [276,278,219,368,146,148,279,129],
|
||||||
|
level60costgeneric => 0,
|
||||||
|
level60advanced => [3692,2505,423,356,172,64,145,1693,15,60,61,46,2524],
|
||||||
|
level60costadvanced => 100,
|
||||||
|
level70generic => [276,278,219,368,146,148,279,129],
|
||||||
|
level70costgeneric => 0,
|
||||||
|
level70advanced => [3692,2505,423,356,172,64,145,1693,15,60,61,46,2524],
|
||||||
|
level70costadvanced => 100,
|
||||||
|
},
|
||||||
|
#:: Hash for Druid
|
||||||
|
6 =>
|
||||||
|
{
|
||||||
|
level10generic => [276,278,219,368,146,148,279,129],
|
||||||
|
level10costgeneric => 0,
|
||||||
|
level10advanced => [3692,2505,423,356,172,64,145,1693,15,60,61,46,2524],
|
||||||
|
level10costadvanced => 100,
|
||||||
|
level20generic => [276,278,219,368,146,148,279,129],
|
||||||
|
level20costgeneric => 0,
|
||||||
|
level20advanced => [3692,2505,423,356,172,64,145,1693,15,60,61,46,2524],
|
||||||
|
level20costadvanced => 100,
|
||||||
|
level30generic => [276,278,219,368,146,148,279,129],
|
||||||
|
level30costgeneric => 0,
|
||||||
|
level30advanced => [3692,2505,423,356,172,64,145,1693,15,60,61,46,2524],
|
||||||
|
level30costadvanced => 100,
|
||||||
|
level40generic => [276,278,219,368,146,148,279,129],
|
||||||
|
level40costgeneric => 0,
|
||||||
|
level40advanced => [3692,2505,423,356,172,64,145,1693,15,60,61,46,2524],
|
||||||
|
level40costadvanced => 100,
|
||||||
|
level50generic => [276,278,219,368,146,148,279,129],
|
||||||
|
level50costgeneric => 0,
|
||||||
|
level50advanced => [3692,2505,423,356,172,64,145,1693,15,60,61,46,2524],
|
||||||
|
level50costadvanced => 100,
|
||||||
|
level60generic => [276,278,219,368,146,148,279,129],
|
||||||
|
level60costgeneric => 0,
|
||||||
|
level60advanced => [3692,2505,423,356,172,64,145,1693,15,60,61,46,2524],
|
||||||
|
level60costadvanced => 100,
|
||||||
|
level70generic => [276,278,219,368,146,148,279,129],
|
||||||
|
level70costgeneric => 0,
|
||||||
|
level70advanced => [3692,2505,423,356,172,64,145,1693,15,60,61,46,2524],
|
||||||
|
level70costadvanced => 100,
|
||||||
|
},
|
||||||
|
#:: Hash for Monk
|
||||||
|
7 =>
|
||||||
|
{
|
||||||
|
level10generic => [276,278,219,368,146,148,279,129],
|
||||||
|
level10costgeneric => 0,
|
||||||
|
level10advanced => [3692,2505,423,356,172,64,145,1693,15,60,61,46,2524],
|
||||||
|
level10costadvanced => 100,
|
||||||
|
level20generic => [276,278,219,368,146,148,279,129],
|
||||||
|
level20costgeneric => 0,
|
||||||
|
level20advanced => [3692,2505,423,356,172,64,145,1693,15,60,61,46,2524],
|
||||||
|
level20costadvanced => 100,
|
||||||
|
level30generic => [276,278,219,368,146,148,279,129],
|
||||||
|
level30costgeneric => 0,
|
||||||
|
level30advanced => [3692,2505,423,356,172,64,145,1693,15,60,61,46,2524],
|
||||||
|
level30costadvanced => 100,
|
||||||
|
level40generic => [276,278,219,368,146,148,279,129],
|
||||||
|
level40costgeneric => 0,
|
||||||
|
level40advanced => [3692,2505,423,356,172,64,145,1693,15,60,61,46,2524],
|
||||||
|
level40costadvanced => 100,
|
||||||
|
level50generic => [276,278,219,368,146,148,279,129],
|
||||||
|
level50costgeneric => 0,
|
||||||
|
level50advanced => [3692,2505,423,356,172,64,145,1693,15,60,61,46,2524],
|
||||||
|
level50costadvanced => 100,
|
||||||
|
level60generic => [276,278,219,368,146,148,279,129],
|
||||||
|
level60costgeneric => 0,
|
||||||
|
level60advanced => [3692,2505,423,356,172,64,145,1693,15,60,61,46,2524],
|
||||||
|
level60costadvanced => 100,
|
||||||
|
level70generic => [276,278,219,368,146,148,279,129],
|
||||||
|
level70costgeneric => 0,
|
||||||
|
level70advanced => [3692,2505,423,356,172,64,145,1693,15,60,61,46,2524],
|
||||||
|
level70costadvanced => 100,
|
||||||
|
},
|
||||||
|
#:: Hash for Bard
|
||||||
|
8 =>
|
||||||
|
{
|
||||||
|
level10generic => [276,278,219,368,146,148,279,129],
|
||||||
|
level10costgeneric => 0,
|
||||||
|
level10advanced => [3692,2505,423,356,172,64,145,1693,15,60,61,46,2524],
|
||||||
|
level10costadvanced => 100,
|
||||||
|
level20generic => [276,278,219,368,146,148,279,129],
|
||||||
|
level20costgeneric => 0,
|
||||||
|
level20advanced => [3692,2505,423,356,172,64,145,1693,15,60,61,46,2524],
|
||||||
|
level20costadvanced => 100,
|
||||||
|
level30generic => [276,278,219,368,146,148,279,129],
|
||||||
|
level30costgeneric => 0,
|
||||||
|
level30advanced => [3692,2505,423,356,172,64,145,1693,15,60,61,46,2524],
|
||||||
|
level30costadvanced => 100,
|
||||||
|
level40generic => [276,278,219,368,146,148,279,129],
|
||||||
|
level40costgeneric => 0,
|
||||||
|
level40advanced => [3692,2505,423,356,172,64,145,1693,15,60,61,46,2524],
|
||||||
|
level40costadvanced => 100,
|
||||||
|
level50generic => [276,278,219,368,146,148,279,129],
|
||||||
|
level50costgeneric => 0,
|
||||||
|
level50advanced => [3692,2505,423,356,172,64,145,1693,15,60,61,46,2524],
|
||||||
|
level50costadvanced => 100,
|
||||||
|
level60generic => [276,278,219,368,146,148,279,129],
|
||||||
|
level60costgeneric => 0,
|
||||||
|
level60advanced => [3692,2505,423,356,172,64,145,1693,15,60,61,46,2524],
|
||||||
|
level60costadvanced => 100,
|
||||||
|
level70generic => [276,278,219,368,146,148,279,129],
|
||||||
|
level70costgeneric => 0,
|
||||||
|
level70advanced => [3692,2505,423,356,172,64,145,1693,15,60,61,46,2524],
|
||||||
|
level70costadvanced => 100,
|
||||||
|
},
|
||||||
|
#:: Hash for Rogue
|
||||||
|
9 =>
|
||||||
|
{
|
||||||
|
level10generic => [276,278,219,368,146,148,279,129],
|
||||||
|
level10costgeneric => 0,
|
||||||
|
level10advanced => [3692,2505,423,356,172,64,145,1693,15,60,61,46,2524],
|
||||||
|
level10costadvanced => 100,
|
||||||
|
level20generic => [276,278,219,368,146,148,279,129],
|
||||||
|
level20costgeneric => 0,
|
||||||
|
level20advanced => [3692,2505,423,356,172,64,145,1693,15,60,61,46,2524],
|
||||||
|
level20costadvanced => 100,
|
||||||
|
level30generic => [276,278,219,368,146,148,279,129],
|
||||||
|
level30costgeneric => 0,
|
||||||
|
level30advanced => [3692,2505,423,356,172,64,145,1693,15,60,61,46,2524],
|
||||||
|
level30costadvanced => 100,
|
||||||
|
level40generic => [276,278,219,368,146,148,279,129],
|
||||||
|
level40costgeneric => 0,
|
||||||
|
level40advanced => [3692,2505,423,356,172,64,145,1693,15,60,61,46,2524],
|
||||||
|
level40costadvanced => 100,
|
||||||
|
level50generic => [276,278,219,368,146,148,279,129],
|
||||||
|
level50costgeneric => 0,
|
||||||
|
level50advanced => [3692,2505,423,356,172,64,145,1693,15,60,61,46,2524],
|
||||||
|
level50costadvanced => 100,
|
||||||
|
level60generic => [276,278,219,368,146,148,279,129],
|
||||||
|
level60costgeneric => 0,
|
||||||
|
level60advanced => [3692,2505,423,356,172,64,145,1693,15,60,61,46,2524],
|
||||||
|
level60costadvanced => 100,
|
||||||
|
level70generic => [276,278,219,368,146,148,279,129],
|
||||||
|
level70costgeneric => 0,
|
||||||
|
level70advanced => [3692,2505,423,356,172,64,145,1693,15,60,61,46,2524],
|
||||||
|
level70costadvanced => 100,
|
||||||
|
},
|
||||||
|
#:: Hash for Shaman
|
||||||
|
10 =>
|
||||||
|
{
|
||||||
|
level10generic => [276,278,219,368,146,148,279,129],
|
||||||
|
level10costgeneric => 0,
|
||||||
|
level10advanced => [3692,2505,423,356,172,64,145,1693,15,60,61,46,2524],
|
||||||
|
level10costadvanced => 100,
|
||||||
|
level20generic => [276,278,219,368,146,148,279,129],
|
||||||
|
level20costgeneric => 0,
|
||||||
|
level20advanced => [3692,2505,423,356,172,64,145,1693,15,60,61,46,2524],
|
||||||
|
level20costadvanced => 100,
|
||||||
|
level30generic => [276,278,219,368,146,148,279,129],
|
||||||
|
level30costgeneric => 0,
|
||||||
|
level30advanced => [3692,2505,423,356,172,64,145,1693,15,60,61,46,2524],
|
||||||
|
level30costadvanced => 100,
|
||||||
|
level40generic => [276,278,219,368,146,148,279,129],
|
||||||
|
level40costgeneric => 0,
|
||||||
|
level40advanced => [3692,2505,423,356,172,64,145,1693,15,60,61,46,2524],
|
||||||
|
level40costadvanced => 100,
|
||||||
|
level50generic => [276,278,219,368,146,148,279,129],
|
||||||
|
level50costgeneric => 0,
|
||||||
|
level50advanced => [3692,2505,423,356,172,64,145,1693,15,60,61,46,2524],
|
||||||
|
level50costadvanced => 100,
|
||||||
|
level60generic => [276,278,219,368,146,148,279,129],
|
||||||
|
level60costgeneric => 0,
|
||||||
|
level60advanced => [3692,2505,423,356,172,64,145,1693,15,60,61,46,2524],
|
||||||
|
level60costadvanced => 100,
|
||||||
|
level70generic => [276,278,219,368,146,148,279,129],
|
||||||
|
level70costgeneric => 0,
|
||||||
|
level70advanced => [3692,2505,423,356,172,64,145,1693,15,60,61,46,2524],
|
||||||
|
level70costadvanced => 100,
|
||||||
|
},
|
||||||
|
#:: Hash for Necromancer
|
||||||
|
11 =>
|
||||||
|
{
|
||||||
|
level10generic => [276,278,219,368,146,148,279,129],
|
||||||
|
level10costgeneric => 0,
|
||||||
|
level10advanced => [3692,2505,423,356,172,64,145,1693,15,60,61,46,2524],
|
||||||
|
level10costadvanced => 100,
|
||||||
|
level20generic => [276,278,219,368,146,148,279,129],
|
||||||
|
level20costgeneric => 0,
|
||||||
|
level20advanced => [3692,2505,423,356,172,64,145,1693,15,60,61,46,2524],
|
||||||
|
level20costadvanced => 100,
|
||||||
|
level30generic => [276,278,219,368,146,148,279,129],
|
||||||
|
level30costgeneric => 0,
|
||||||
|
level30advanced => [3692,2505,423,356,172,64,145,1693,15,60,61,46,2524],
|
||||||
|
level30costadvanced => 100,
|
||||||
|
level40generic => [276,278,219,368,146,148,279,129],
|
||||||
|
level40costgeneric => 0,
|
||||||
|
level40advanced => [3692,2505,423,356,172,64,145,1693,15,60,61,46,2524],
|
||||||
|
level40costadvanced => 100,
|
||||||
|
level50generic => [276,278,219,368,146,148,279,129],
|
||||||
|
level50costgeneric => 0,
|
||||||
|
level50advanced => [3692,2505,423,356,172,64,145,1693,15,60,61,46,2524],
|
||||||
|
level50costadvanced => 100,
|
||||||
|
level60generic => [276,278,219,368,146,148,279,129],
|
||||||
|
level60costgeneric => 0,
|
||||||
|
level60advanced => [3692,2505,423,356,172,64,145,1693,15,60,61,46,2524],
|
||||||
|
level60costadvanced => 100,
|
||||||
|
level70generic => [276,278,219,368,146,148,279,129],
|
||||||
|
level70costgeneric => 0,
|
||||||
|
level70advanced => [3692,2505,423,356,172,64,145,1693,15,60,61,46,2524],
|
||||||
|
level70costadvanced => 100,
|
||||||
|
},
|
||||||
|
#:: Hash for Wizard
|
||||||
|
12 =>
|
||||||
|
{
|
||||||
|
level10generic => [276,278,219,368,146,148,279,129],
|
||||||
|
level10costgeneric => 0,
|
||||||
|
level10advanced => [3692,2505,423,356,172,64,145,1693,15,60,61,46,2524],
|
||||||
|
level10costadvanced => 100,
|
||||||
|
level20generic => [276,278,219,368,146,148,279,129],
|
||||||
|
level20costgeneric => 0,
|
||||||
|
level20advanced => [3692,2505,423,356,172,64,145,1693,15,60,61,46,2524],
|
||||||
|
level20costadvanced => 100,
|
||||||
|
level30generic => [276,278,219,368,146,148,279,129],
|
||||||
|
level30costgeneric => 0,
|
||||||
|
level30advanced => [3692,2505,423,356,172,64,145,1693,15,60,61,46,2524],
|
||||||
|
level30costadvanced => 100,
|
||||||
|
level40generic => [276,278,219,368,146,148,279,129],
|
||||||
|
level40costgeneric => 0,
|
||||||
|
level40advanced => [3692,2505,423,356,172,64,145,1693,15,60,61,46,2524],
|
||||||
|
level40costadvanced => 100,
|
||||||
|
level50generic => [276,278,219,368,146,148,279,129],
|
||||||
|
level50costgeneric => 0,
|
||||||
|
level50advanced => [3692,2505,423,356,172,64,145,1693,15,60,61,46,2524],
|
||||||
|
level50costadvanced => 100,
|
||||||
|
level60generic => [276,278,219,368,146,148,279,129],
|
||||||
|
level60costgeneric => 0,
|
||||||
|
level60advanced => [3692,2505,423,356,172,64,145,1693,15,60,61,46,2524],
|
||||||
|
level60costadvanced => 100,
|
||||||
|
level70generic => [276,278,219,368,146,148,279,129],
|
||||||
|
level70costgeneric => 0,
|
||||||
|
level70advanced => [3692,2505,423,356,172,64,145,1693,15,60,61,46,2524],
|
||||||
|
level70costadvanced => 100,
|
||||||
|
},
|
||||||
|
#:: Hash for Magician
|
||||||
|
13 =>
|
||||||
|
{
|
||||||
|
level10generic => [276,278,219,368,146,148,279,129],
|
||||||
|
level10costgeneric => 0,
|
||||||
|
level10advanced => [3692,2505,423,356,172,64,145,1693,15,60,61,46,2524],
|
||||||
|
level10costadvanced => 100,
|
||||||
|
level20generic => [276,278,219,368,146,148,279,129],
|
||||||
|
level20costgeneric => 0,
|
||||||
|
level20advanced => [3692,2505,423,356,172,64,145,1693,15,60,61,46,2524],
|
||||||
|
level20costadvanced => 100,
|
||||||
|
level30generic => [276,278,219,368,146,148,279,129],
|
||||||
|
level30costgeneric => 0,
|
||||||
|
level30advanced => [3692,2505,423,356,172,64,145,1693,15,60,61,46,2524],
|
||||||
|
level30costadvanced => 100,
|
||||||
|
level40generic => [276,278,219,368,146,148,279,129],
|
||||||
|
level40costgeneric => 0,
|
||||||
|
level40advanced => [3692,2505,423,356,172,64,145,1693,15,60,61,46,2524],
|
||||||
|
level40costadvanced => 100,
|
||||||
|
level50generic => [276,278,219,368,146,148,279,129],
|
||||||
|
level50costgeneric => 0,
|
||||||
|
level50advanced => [3692,2505,423,356,172,64,145,1693,15,60,61,46,2524],
|
||||||
|
level50costadvanced => 100,
|
||||||
|
level60generic => [276,278,219,368,146,148,279,129],
|
||||||
|
level60costgeneric => 0,
|
||||||
|
level60advanced => [3692,2505,423,356,172,64,145,1693,15,60,61,46,2524],
|
||||||
|
level60costadvanced => 100,
|
||||||
|
level70generic => [276,278,219,368,146,148,279,129],
|
||||||
|
level70costgeneric => 0,
|
||||||
|
level70advanced => [3692,2505,423,356,172,64,145,1693,15,60,61,46,2524],
|
||||||
|
level70costadvanced => 100,
|
||||||
|
},
|
||||||
|
#:: Hash for Enchanter
|
||||||
|
14 =>
|
||||||
|
{
|
||||||
|
level10generic => [276,278,219,368,146,148,279,129],
|
||||||
|
level10costgeneric => 0,
|
||||||
|
level10advanced => [3692,2505,423,356,172,64,145,1693,15,60,61,46,2524],
|
||||||
|
level10costadvanced => 100,
|
||||||
|
level20generic => [276,278,219,368,146,148,279,129],
|
||||||
|
level20costgeneric => 0,
|
||||||
|
level20advanced => [3692,2505,423,356,172,64,145,1693,15,60,61,46,2524],
|
||||||
|
level20costadvanced => 100,
|
||||||
|
level30generic => [276,278,219,368,146,148,279,129],
|
||||||
|
level30costgeneric => 0,
|
||||||
|
level30advanced => [3692,2505,423,356,172,64,145,1693,15,60,61,46,2524],
|
||||||
|
level30costadvanced => 100,
|
||||||
|
level40generic => [276,278,219,368,146,148,279,129],
|
||||||
|
level40costgeneric => 0,
|
||||||
|
level40advanced => [3692,2505,423,356,172,64,145,1693,15,60,61,46,2524],
|
||||||
|
level40costadvanced => 100,
|
||||||
|
level50generic => [276,278,219,368,146,148,279,129],
|
||||||
|
level50costgeneric => 0,
|
||||||
|
level50advanced => [3692,2505,423,356,172,64,145,1693,15,60,61,46,2524],
|
||||||
|
level50costadvanced => 100,
|
||||||
|
level60generic => [276,278,219,368,146,148,279,129],
|
||||||
|
level60costgeneric => 0,
|
||||||
|
level60advanced => [3692,2505,423,356,172,64,145,1693,15,60,61,46,2524],
|
||||||
|
level60costadvanced => 100,
|
||||||
|
level70generic => [276,278,219,368,146,148,279,129],
|
||||||
|
level70costgeneric => 0,
|
||||||
|
level70advanced => [3692,2505,423,356,172,64,145,1693,15,60,61,46,2524],
|
||||||
|
level70costadvanced => 100,
|
||||||
|
},
|
||||||
|
#:: Hash for Beastlord
|
||||||
|
15 =>
|
||||||
|
{
|
||||||
|
level10generic => [276,278,219,368,146,148,279,129],
|
||||||
|
level10costgeneric => 0,
|
||||||
|
level10advanced => [3692,2505,423,356,172,64,145,1693,15,60,61,46,2524],
|
||||||
|
level10costadvanced => 100,
|
||||||
|
level20generic => [276,278,219,368,146,148,279,129],
|
||||||
|
level20costgeneric => 0,
|
||||||
|
level20advanced => [3692,2505,423,356,172,64,145,1693,15,60,61,46,2524],
|
||||||
|
level20costadvanced => 100,
|
||||||
|
level30generic => [276,278,219,368,146,148,279,129],
|
||||||
|
level30costgeneric => 0,
|
||||||
|
level30advanced => [3692,2505,423,356,172,64,145,1693,15,60,61,46,2524],
|
||||||
|
level30costadvanced => 100,
|
||||||
|
level40generic => [276,278,219,368,146,148,279,129],
|
||||||
|
level40costgeneric => 0,
|
||||||
|
level40advanced => [3692,2505,423,356,172,64,145,1693,15,60,61,46,2524],
|
||||||
|
level40costadvanced => 100,
|
||||||
|
level50generic => [276,278,219,368,146,148,279,129],
|
||||||
|
level50costgeneric => 0,
|
||||||
|
level50advanced => [3692,2505,423,356,172,64,145,1693,15,60,61,46,2524],
|
||||||
|
level50costadvanced => 100,
|
||||||
|
level60generic => [276,278,219,368,146,148,279,129],
|
||||||
|
level60costgeneric => 0,
|
||||||
|
level60advanced => [3692,2505,423,356,172,64,145,1693,15,60,61,46,2524],
|
||||||
|
level60costadvanced => 100,
|
||||||
|
level70generic => [276,278,219,368,146,148,279,129],
|
||||||
|
level70costgeneric => 0,
|
||||||
|
level70advanced => [3692,2505,423,356,172,64,145,1693,15,60,61,46,2524],
|
||||||
|
level70costadvanced => 100,
|
||||||
|
},
|
||||||
|
#:: Hash for Berserker
|
||||||
|
16 =>
|
||||||
|
{
|
||||||
|
level10generic => [276,278,219,368,146,148,279,129],
|
||||||
|
level10costgeneric => 0,
|
||||||
|
level10advanced => [3692,2505,423,356,172,64,145,1693,15,60,61,46,2524],
|
||||||
|
level10costadvanced => 100,
|
||||||
|
level20generic => [276,278,219,368,146,148,279,129],
|
||||||
|
level20costgeneric => 0,
|
||||||
|
level20advanced => [3692,2505,423,356,172,64,145,1693,15,60,61,46,2524],
|
||||||
|
level20costadvanced => 100,
|
||||||
|
level30generic => [276,278,219,368,146,148,279,129],
|
||||||
|
level30costgeneric => 0,
|
||||||
|
level30advanced => [3692,2505,423,356,172,64,145,1693,15,60,61,46,2524],
|
||||||
|
level30costadvanced => 100,
|
||||||
|
level40generic => [276,278,219,368,146,148,279,129],
|
||||||
|
level40costgeneric => 0,
|
||||||
|
level40advanced => [3692,2505,423,356,172,64,145,1693,15,60,61,46,2524],
|
||||||
|
level40costadvanced => 100,
|
||||||
|
level50generic => [276,278,219,368,146,148,279,129],
|
||||||
|
level50costgeneric => 0,
|
||||||
|
level50advanced => [3692,2505,423,356,172,64,145,1693,15,60,61,46,2524],
|
||||||
|
level50costadvanced => 100,
|
||||||
|
level60generic => [276,278,219,368,146,148,279,129],
|
||||||
|
level60costgeneric => 0,
|
||||||
|
level60advanced => [3692,2505,423,356,172,64,145,1693,15,60,61,46,2524],
|
||||||
|
level60costadvanced => 100,
|
||||||
|
level70generic => [276,278,219,368,146,148,279,129],
|
||||||
|
level70costgeneric => 0,
|
||||||
|
level70advanced => [3692,2505,423,356,172,64,145,1693,15,60,61,46,2524],
|
||||||
|
level70costadvanced => 100,
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
sub EVENT_SAY {
|
||||||
|
#:: Create a scalar variable to store the cost of group buffs
|
||||||
|
my $groupbuffmaxcost = 0;
|
||||||
|
#:: Match text for "hail", case insensitive
|
||||||
|
if ($text =~/Hail/i) {
|
||||||
|
quest::say("Greetings $name. I have been sent to aid you on your journey! Would you like some [".quest::saylink("lesser buffs",1)."] for ".$buffshash{$client->GetClass()}->{"level".round_up($ulevel)."costgeneric"}."pp, or some [".quest::saylink("greater blessings",1)."] for ".$buffshash{$client->GetClass()}->{"level".round_up($ulevel)."costadvanced"}."pp?");
|
||||||
|
#:: Check to see if the player is grouped
|
||||||
|
if ($client->IsGrouped()) {
|
||||||
|
#:: Create a scalar variable to store the group
|
||||||
|
$buffgroup = $entity_list->GetGroupByClient($client);
|
||||||
|
#:: Create a loop to count how many members are in the group
|
||||||
|
for ($count = 0; $count < $buffgroup->GroupCount(); $count++) {
|
||||||
|
#:: Create a scalar variable to store the group member count
|
||||||
|
my $groupmember = $buffgroup->GetMember($count);
|
||||||
|
#:: Make sure that each group member is in zone before charging for them
|
||||||
|
if ($groupmember->GetZoneID() == $zoneid) {
|
||||||
|
#:: Create a scalar variable to store the cost of the buffs
|
||||||
|
$groupbuffmaxcost += ($buffshash{$groupmember->GetClass()}->{"level".round_up($groupmember->GetLevel())."costadvanced"});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
quest::say("Since you are grouped, you can also get the best [".quest::saylink("group blessings",1)."] for ".$groupbuffmaxcost."pp");
|
||||||
|
}
|
||||||
|
quest::say("To [".quest::saylink ("cure", 1)."] you and/or your pet is free.");
|
||||||
|
quest::say("Or I can [".quest::saylink ("bind", 1)."] you to this location at no cost.");
|
||||||
|
}
|
||||||
|
#:: Match text for "lesser buffs", case insensitive
|
||||||
|
elsif ($text=~/lesser buffs/i) {
|
||||||
|
#:: Make sure the player has enough plat for the buffs
|
||||||
|
if ($client->GetCarriedMoney() >= (($buffshash{$client->GetClass()}->{"level".round_up($ulevel)."costgeneric"}) * 1000)) {
|
||||||
|
#:: Create an array of the buffs to be cast on the player
|
||||||
|
my @buffstocast = @{$buffshash{$client->GetClass()}->{"level".round_up($ulevel)."generic"}};
|
||||||
|
#:: Create a loop to cast each buff in the hash for the pet (if it exists) and then the player
|
||||||
|
foreach my $buff (@buffstocast) {
|
||||||
|
#:: Check to see if the player has a pet
|
||||||
|
if ($client->GetPetID()) {
|
||||||
|
#:: Create a scalar variable to store the pet by ID
|
||||||
|
my $pcpet = $entity_list->GetMobByID($client->GetPetID());
|
||||||
|
#:: Buff the pet
|
||||||
|
$client->SpellFinished ($buff, $pcpet);
|
||||||
|
}
|
||||||
|
#:: Buff the player
|
||||||
|
quest::selfcast ($buff);
|
||||||
|
}
|
||||||
|
#:: Take payment for the buffs
|
||||||
|
$client->TakeMoneyFromPP((($buffshash{$client->GetClass()}->{"level".round_up($ulevel)."costgeneric"}) * 1000), 1) unless ($buffshash{$client->GetClass()}->{"level".round_up($ulevel)."costgeneric"}) == 0;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
#:: Match if the player does not have enough plat
|
||||||
|
quest::say("I charge ".($buffshash{$client->GetClass()}->{"level".round_up($ulevel)."costgeneric"})."pp for lesser buffs, you don't appear to have enough on you.");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#:: Match text for "greater blessings", case insensitive
|
||||||
|
elsif ($text =~/greater blessings/i) {
|
||||||
|
#:: Make sure the player has enough plat for the buffs
|
||||||
|
if ($client->GetCarriedMoney() >= (($buffshash{$client->GetClass()}->{"level".round_up($ulevel)."costadvanced"}) * 1000)) {
|
||||||
|
#:: Create an array of the buffs to be cast on the player
|
||||||
|
my @buffstocast = @{$buffshash{$client->GetClass()}->{"level".round_up($ulevel)."advanced"}};
|
||||||
|
#:: Create a loop to cast each buff in the hash for the pet (if it exists) and then the player
|
||||||
|
foreach my $buff (@buffstocast) {
|
||||||
|
#:: Check to see if the player has a pet
|
||||||
|
if ($client->GetPetID()) {
|
||||||
|
#:: Create a scalar variable to store the pet by ID
|
||||||
|
my $pcpet = $entity_list->GetMobByID($client->GetPetID());
|
||||||
|
#:: Buff the pet
|
||||||
|
$client->SpellFinished ($buff, $pcpet);
|
||||||
|
}
|
||||||
|
#:: Buff the player
|
||||||
|
quest::selfcast ($buff);
|
||||||
|
}
|
||||||
|
#:: Take payment for the buffs
|
||||||
|
$client->TakeMoneyFromPP((($buffshash{$client->GetClass()}->{"level".round_up($ulevel)."costadvanced"}) * 1000), 1) unless ($buffshash{$client->GetClass()}->{"level".round_up($ulevel)."costadvanced"}) == 0;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
#:: Match if the player does not have enough plat
|
||||||
|
quest::say("I charge ".($buffshash{$client->GetClass()}->{"level".round_up($ulevel)."costadvanced"})."pp for greater blessings, you don't appear to have enough on you.");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#:: Match text for "group blessings", case insensitive, and if the player is grouped
|
||||||
|
elsif ($text =~ /group blessings/i && $client->IsGrouped()) {
|
||||||
|
#:: Make sure the player has enough plat for the buffs
|
||||||
|
if ($client->GetCarriedMoney() >= (($buffshash{$client->GetClass()}->{"level".$maxlevelbuffs."costadvanced"}) * 1000 * $buffgroup->GroupCount())) {
|
||||||
|
#:: Create a loop to count the group members
|
||||||
|
for ($count = 0; $count < $buffgroup->GroupCount(); $count++) {
|
||||||
|
#:: Create a scalar variable to store the group member count
|
||||||
|
my $groupmember = $buffgroup->GetMember($count);
|
||||||
|
#:: Make sure that each group member is in zone before charging for them
|
||||||
|
if ($groupmember->GetZoneID() == $zoneid) {
|
||||||
|
#:: Take payment for the buffs
|
||||||
|
$client->TakeMoneyFromPP((($buffshash{$groupmember->GetClass()}->{"level".round_up($groupmember->GetLevel())."costadvanced"}) * 1000), 1) unless ($buffshash{$groupmember->GetClass()}->{"level".round_up($groupmember->GetLevel())."costadvanced"}) == 0;
|
||||||
|
#:: Create an array of the buffs to be cast on each player
|
||||||
|
my @buffstocast = @{$buffshash{$groupmember->GetClass()}->{"level".round_up($groupmember->GetLevel())."advanced"}};
|
||||||
|
#:: Create a loop to cast each buff in the hash for each group member pet (if any exist) and then each group member
|
||||||
|
foreach my $buff (@buffstocast) {
|
||||||
|
#:: Check to see if the player has a pet
|
||||||
|
if ($groupmember->GetPetID()) {
|
||||||
|
#:: Create a scalar variable to store the pet by ID
|
||||||
|
my $groupmemberpet = $entity_list->GetMobByID($groupmember->GetPetID());
|
||||||
|
#:: Buff the pet
|
||||||
|
$groupmember->SpellFinished ($buff, $groupmemberpet);
|
||||||
|
}
|
||||||
|
#:: Buff the group members
|
||||||
|
$groupmember->SpellFinished ($buff, $groupmember);
|
||||||
|
}
|
||||||
|
#:: Create an on-screen message for each group member so they know who to thank for the buffs
|
||||||
|
$groupmember->SendMarqueeMessage(15, 510, 1, 1, 3000, "You've been buffed compliments of ".$client->GetCleanName()."!");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
#:: Match if the player does not have enough plat
|
||||||
|
quest::say("I charge a maximum of ".(($buffshash{$client->GetClass()}->{"level".$maxlevelbuffs."costadvanced"}) * $buffgroup->GroupCount())."pp to cast buffs on your entire group. You don't appear to have enough!");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#:: Match text for "cure", case insensitive
|
||||||
|
elsif ($text=~/cure/i) {
|
||||||
|
#:: Check to see if the player has a pet
|
||||||
|
if ($client->GetPetID()) {
|
||||||
|
#:: Create a scalar variable to store the pet by ID
|
||||||
|
my $pppet = $entity_list->GetMobByID($client->GetPetID());
|
||||||
|
#:: Cure the pet
|
||||||
|
$client->SpellFinished (6594, $pppet);
|
||||||
|
}
|
||||||
|
#:: Cure the player
|
||||||
|
$client->SpellFinished(6594);
|
||||||
|
}
|
||||||
|
#:: Match text for "bind", case insensitive
|
||||||
|
elsif ($text=~/bind/i) {
|
||||||
|
#:: Bind the player
|
||||||
|
quest::selfcast(35);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#:: This is a sub-routine to round up to the nearest 10 levels
|
||||||
|
sub round_up {
|
||||||
|
my $n = shift;
|
||||||
|
my $scale = 10**int(log($n)/log(10));
|
||||||
|
$n = 9 if $scale == 1;
|
||||||
|
if ($n > $scale) {
|
||||||
|
$n = int($n/$scale+1)*$scale;
|
||||||
|
}
|
||||||
|
$n;
|
||||||
|
}
|
||||||
|
```
|
||||||
Reference in New Issue
Block a user