Derision
05-03-2009, 10:59 AM
You need Rev457 for this to work correctly:
SQL
INSERT INTO `altadv_vars` (`skill_id`, `name`, `cost`, `max_level`, `hotkey_sid`, `hotkey_sid2`, `title_sid`, `desc_sid`, `type`, `spellid`, `prereq_skill`, `prereq_minpoints`, `spell_type`, `spell_refresh`, `classes`, `berserker`, `class_type`, `cost_inc`) VALUES
(1373, 'Chaotic Jester', 0, 1, 1373, 1373, 1373, 1373, 4, 6882, 0, 0, 25, 72000, 65534, 1, 1, 0);
INSERT INTO `aa_actions` (`aaid`, `rank`, `reuse_time`, `spell_id`, `target`, `nonspell_action`, `nonspell_mana`, `nonspell_duration`, `redux_aa`, `redux_rate`) VALUES
(1373, 0, 72000, 6882, 0, 0, 0, 0, 0, 0);
INSERT INTO `npc_types` (`id`, `name`, `lastname`, `level`, `race`, `class`, `bodytype`, `hp`, `gender`, `texture`, `helmtexture`, `size`, `hp_regen_rate`, `mana_regen_rate`, `loottable_id`, `merchant_id`, `npc_spells_id`, `npc_faction_id`, `mindmg`, `maxdmg`, `npcspecialattks`, `aggroradius`, `face`, `luclin_hairstyle`, `luclin_haircolor`, `luclin_eyecolor`, `luclin_eyecolor2`, `luclin_beardcolor`, `luclin_beard`, `d_meele_texture1`, `d_meele_texture2`, `runspeed`, `MR`, `CR`, `DR`, `FR`, `PR`, `see_invis`, `see_invis_undead`, `qglobal`, `AC`, `npc_aggro`, `spawn_limit`, `attack_speed`, `findable`, `STR`, `STA`, `DEX`, `AGI`, `_INT`, `WIS`, `CHA`, `see_hide`, `see_improved_hide`, `trackable`, `isbot`, `exclude`, `ATK`, `Accuracy`) VALUES
(671, 'a_jester_of_bristlebane', NULL, 1, 153, 9, 1, 100, 2, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 'H', 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 75, 75, 75, 80, 75, 75, 0, 0, 1, 0, 1, 0, 0);
INSERT INTO `pets` (`type`, `npcID`, `temp`) VALUES
('PetVeteranRewardJester', 671, 1);
Note that I used the next free NPCType and Pet IDs from my copy of the PEQ DB, which I haven't updated in a while, so you may have to amend those.
With that SQL the AA appears under the PoP Adv. tab in Titanium and Special in SoF. It is a zero cost AA that anyone should be able to train, 22 hours re-use timer.
quests/templates/a_jester_of_bristlebane.pl
# quests/templates/a_jester_of_bristlebane.pl
#
# Quest file for Chaotic Jester Veteran AA
#
# The GetRandomClient code posted by Kayen on EQEmu forums.
#
sub GetRandomClient {
my $ListCheck = 0;
my $LastClient = 0;
for ($ListCheck = 0; $ListCheck < 2000; $ListCheck++) {
$ClientSearch = $entity_list->GetClientByID($ListCheck);
if ($ClientSearch) {
my $DistanceCheck = $ClientSearch->CalculateDistance($x, $y, $z);
if ($DistanceCheck <= 100) {
my $ChooseClient = quest::ChooseRandom(1,2);
if ($ChooseClient == 2) {
return $ClientSearch->GetID();
}
else {
$LastClient = $ClientSearch;
}
}
}
}
return $npc->GetFollowID();
}
sub EVENT_SPAWN {
quest::settimer(RandomAction, 30);
quest::settimer(Depop, 900);
}
sub EVENT_TIMER {
if($timer eq "Depop") {
quest::depop();
}
my $action = quest::ChooseRandom(1,2,3,4,5,6,7,8,9,10,11,12,13, 14);
if($action == 1) {
$ClientID = GetRandomClient();
if($ClientID > 0) {
$c = $entity_list->GetClientByID($ClientID);
if($c) {
quest::say("How about a little wine to quench your thirst?");
$c->SummonItem(quest::ChooseRandom(64046, 64047), 10);
}
}
}
elsif($action == 2) {
quest::say("I used to work nights as an entertainer for Fennin Ro. . .then he fired me.");
}
elsif($action == 3) {
quest::say("My puns seem to get worse the older I get. I guess I'm groaning up.");
}
elsif($action == 4) {
$ClientID = GetRandomClient();
if($ClientID > 0) {
quest::say("You need to be more down to earth.");
$npc->CastSpell(345, $ClientID);
}
}
elsif($action == 5) {
quest::say("You have the life expectancy of a blind elf in Kelethin.");
}
elsif($action == 6) {
quest::say("What do you call an angry Berserker? Anything they want you to!");
}
elsif($action == 7) {
quest::say("What did one ranger say to the other ranger at the local pub? Bind here often?");
}
elsif($action == 8) {
$ClientID = GetRandomClient();
if($ClientID > 0) {
quest::say("How's the weather up there?");
$npc->CastSpell(2522, $ClientID);
}
}
elsif($action == 9) {
$c = GetRandomClient();
if($c > 0) {
quest::say("You look exhausted.");
$npc->CastSpell(6897, $c, 10, 0);
}
}
elsif($action == 10) {
$ClientID = GetRandomClient();
if($ClientID > 0) {
$c = $entity_list->GetClientByID($ClientID);
if($c) {
quest::say("Try a bite of my tasty bread. I make it myself.");
$c->SummonItem(quest::ChooseRandom(64044, 64045), 10);
}
}
}
elsif($action == 11) {
quest::say("This place really needs to lighten up.");
$npc->CastSpell(30, 0, 10, 0);
}
elsif($action == 12) {
quest::say("I've always heard that change must come from within but this is ridiculous.");
$ClientID = GetRandomClient();
if($ClientID > 0) {
$c = $entity_list->GetClientByID($ClientID);
if($c) {
$c->BuffFadeByEffect(58);
$IllusionSpell = quest::ChooseRandom(586, 590, 591, 587, 1731, 3063, 595, 583, 594, 589, 582, 243, 593);
$c->CastSpell($IllusionSpell, $ClientID, 10, 0);
}
}
}
elsif($action == 13) {
quest::say("I think monks use that 'weight thing' as an excuse to make me carry their bags.");
}
elsif($action == 14) {
quest::say("Next time you visit the Plane of Mischief, say hello to the merry mushroom men for me. Fun guys, all of them.");
}
else {
}
}
Derision
06-13-2009, 02:28 PM
For those not using the PEQ database, here is the SQL to add:
Lesson of the devoted (requires Rev657).
Infusion of the faithful (Rev657 recommended).
Expedient recovery (requires Rev659).
INSERT INTO `altadv_vars` (`skill_id`, `name`, `cost`, `max_level`, `hotkey_sid`, `hotkey_sid2`, `title_sid`, `desc_sid`, `type`, `spellid`, `prereq_skill`, `prereq_minpoints`, `spell_type`, `spell_refresh`, `classes`, `berserker`, `class_type`, `cost_inc`) VALUES (1371, 'Lesson of the Devoted', 0, 1, 1371, 1371, 1371, 1371, 8, 6880, 0, 0, 23, 72000, 65534, 1, 1, 0);
INSERT INTO `altadv_vars` (`skill_id`, `name`, `cost`, `max_level`, `hotkey_sid`, `hotkey_sid2`, `title_sid`, `desc_sid`, `type`, `spellid`, `prereq_skill`, `prereq_minpoints`, `spell_type`, `spell_refresh`, `classes`, `berserker`, `class_type`, `cost_inc`) VALUES (1372, 'Infusion of the Faithful', 0, 1, 1372, 1372, 1372, 1372, 8, 6881, 0, 0, 24, 72000, 65534, 1, 1, 0);
INSERT INTO `altadv_vars` (`skill_id`, `name`, `cost`, `max_level`, `hotkey_sid`, `hotkey_sid2`, `title_sid`, `desc_sid`, `type`, `spellid`, `prereq_skill`, `prereq_minpoints`, `spell_type`, `spell_refresh`, `classes`, `berserker`, `class_type`, `cost_inc`) VALUES (1374, 'Expedient Recovery', 0, 1, 1374, 1374, 1374, 1374, 8, 6883, 0, 0, 26, 590400, 65534, 1, 1, 0);
INSERT INTO `aa_actions` (`aaid`, `rank`, `reuse_time`, `spell_id`, `target`, `nonspell_action`, `nonspell_mana`, `nonspell_duration`, `redux_aa`, `redux_rate`, `redux_aa2`, `redux_rate2`) VALUES (1371, 0, 72000, 6880, 0, 0, 0, 0, 0, 0, 0, 0);
INSERT INTO `aa_actions` (`aaid`, `rank`, `reuse_time`, `spell_id`, `target`, `nonspell_action`, `nonspell_mana`, `nonspell_duration`, `redux_aa`, `redux_rate`, `redux_aa2`, `redux_rate2`) VALUES (1372, 0, 72000, 6881, 0, 0, 0, 0, 0, 0, 0, 0);
INSERT INTO `aa_actions` (`aaid`, `rank`, `reuse_time`, `spell_id`, `target`, `nonspell_action`, `nonspell_mana`, `nonspell_duration`, `redux_aa`, `redux_rate`, `redux_aa2`, `redux_rate2`) VALUES (1374, 0, 590400, 6883, 0, 0, 0, 0, 0, 0, 0, 0);
vBulletin® v3.8.11, Copyright ©2000-2025, vBulletin Solutions Inc.