Plugins
Extensive Plugin Explanation Pages:
  • DiaWind - This plugin is an extensive plugin for quest::popup (Popup window uses) - Akkadius
  • Doors Manipulation - This plugin is revolves around letting developers manipulate objects/doors in realtime to custom fit their story/servers vision. - Akkadius
  • Diablo Loot - Akkadius
File
Plugin & Description
anim.pl
plugin::DoAnim("salute");
Description: Will take in an easy to remember name or string and take care of the conversion to ID in the scripting process.
anim.pl
plugin::SetAnim("animation") see below for SetAnim options (stand/sit/duck/dead/kneel)
Description: Will take in an easy to remember name or string and take care of the conversion to ID in the scripting process
check_hastitem.pl
plugin::check_hasitem($client, itemid)
Checks for items in just about every place for a player
  • #Checks to see if player has item
  • #Check main inventory and cursor
  • #Check main inventory's and cursor's containers
  • #Check bank slots
  • #Check bank's containers
  • #Check shared bank
  • #Check shared bank's containers
  • #Check corpses
check_handin.pl
  • plugin::check_handin
  • plugin::return_items
guildmasters.pl
  • plugin::try_tome_handins
    • looks through the items haded in for discipline tomes, processing them as we find them.
group_utility.pl
  • @members = plugin::GetGroupMembers($client)
  • plugin::MoveGroup(zoneid, x, y, z, h)
  • plugin::MoveGroupInstance(zoneid, instanceid, x, y, z, h)
  • plugin::CastOnGroup(SpellID, MaxDist=0, Client=$client);
  • plugin::MessageGroup(color, message)
illusion_tools.pl
  • plugin::RandomFeatures(Mob);
  • plugin::CloneAppearance(MobA, MobB, CloneName=false);
Instances.pl
plugin::SendToInstance("solo/guild/group/public", "Zone Short Name", Version, X, Y, Z, "Identifier", duration in seconds");
Description
Used to simplify the instancing process.
Also keeps track of the Zone ID via qglobals, so whatever NPC you use this on must have qglobals enabled!
spawn_utils.pl
  • my $LoSDistance = plugin::GetMaxLoSDistFromHeading(Heading, [DistIncrements, MaxDist, Mob]);
  • plugin::FaceBestHeading([MinLoSDist]);
  • my $ShortestHeading = plugin::HeadingToShortestLoS([MaxDistToCheck=8]);
  • my $NPCMoved = plugin::MoveAwayFromWall([MinLoSDist=5]);
  • plugin::MoveToFirstBestZ();
  • plugin::SpawnZone(X, Y, Z, Distance, Variance, Columns, Rows);
  • my $ReverseHeading = plugin::GetReverseHeading([$mob]);
  • my $Degrees = plugin::ConvertHeadingToDegrees(Heading);
This is used for populating zones from scratch
spawn_utils.pl
  • plugin::moelib_spawn_block(npctypeid, fromx, tox, fromy, toy, space, zposition=20, heading=0, grid=0)
    • Spawns NPC's in a block
  • plugin::moelib_spawn_block_center(npctypeid, centerx, centery, range, amount, zposition=20, heading=0, grid=0)
    • Spawns NPC's in a block around specified 'center' coordinate
  • plugin::moelib_spawn_circle(npctypeid, centerx, centery, radius, amount, zposition=20, heading=0, grid=0)
    • Spawns NPC's in a circle
random_messages.pl
  • plugin::RandomSay(chance(1-100), "message1","message2", etc..);
  • plugin::RandomSay(chance(1-100), "message1","message2", etc..);
  • plugin::RandomEmote(chance(1-100), "message1","message2", etc..);
  • plugin::RandomGroupEmote(chance(1-100), "message1","message2", etc..);
  • plugin::RandomCloseEmote(chance(1-100), "message1","message2", etc..);
text_formatting.pl
  • plugin::commify(12302302); Would output value 12,302,302
random_range
  • plugin::RandomRange(minvalue, maxvalue);
mob_utils.pl
  • plugin::MobHealPercentage(Percent [1-100]);
  • plugin::MobDamagePercentage(Percent [1-100]);
  • plugin::MobHealPoints(Number);
  • plugin::MobDamagePoints(Number);
  • plugin::SpawnInPlace(NPCID To Spawn In Place, [1 = Don't depop what spawns in place]);
  • plugin::SpawnInPlaceByEnt{(NPCID To Spawn In Place, [1 = Don't depop what spawns in place]);
  • plugin::SpawnChest{(NPCID To Spawn In Place, [1 = Don't depop what spawns in place]);
    • This will spawn a chest within proximity with specified NPC ID
npc_tools.pl
  • plugin::CountNPCTYPE($NPC_TYPE_ID);
    • Description: Will return the number of NPC's in the zone from NPC ID
  • plugin::SetProx(X/Y Axis Range, Z Axis Range, [1 = Skeleton Reference proximity for debugging]);
    • Description: This will set the proximity of an NPC, with simply two arguments, 30 (x-y axis) and 30 (z axis)
    • Note, if you set the 3rd arguement of SetProx to 1, it will spawn skeletons that represent how truly big your proximity is
utility.pl
plugin::AddLoot(amount, chance, @itemarray)
utility.pl
plugin::SEV(entity, variable_name, variable_value)
This is a shorthand way of setting an entity variable.
NOTE: Entity variables are EXTREMELY powerful! Know how to use them!
utility.pl
plugin::REV(entity, variable_name);
This is a shorthand way of reading an entity variable, it will return a value.
NOTE: Entity variables are EXTREMELY powerful! Know how to use them!
utility.pl
plugin::CheckDist(entity, distance);
A simple way to return the distance between the NPC initiating this plugin and the player, useful for all kinds of situations. Will return true if within distance, false if not.If you are not familiar with entites, they can be a client, npc, object, door etc.You have to utilize entity_list calls to get an entity object
utility.pl
plugin::CheckDistBetween2Ents(entity1, entity2, distance);
A simple way to return the distance between two select entities, useful for all kinds of situations. Will return true if within distance, false if not. If you are not familiar with entites, they can be a client, npc, object, door etc.You have to utilize entity_list calls to get an entity object
client_messages.pl
plugin::Autovtell("voicemessage");
Options:
  • greet
  • battle
  • disagree
  • follow
  • greet
  • heal
  • help
  • laugh
  • part
  • retreat
  • stop
  • thanks
client_messages.pl
plugin::Whisper("Message");
Whispers a message to the player
client_messages.pl
plugin::ClientSay("Message", "Message2", "Message3");
If Multiple arguments are supplied, it will return a random message from the list. If any of the arguments is a number, it will parse that number as the color to use for the TextColor of the message
client_messages.pl
plugin::MM("Message")
Will display a Marquee message on the screen
DiaWind.pl
plugin::DiaWind("Window text");
Plugin for making use of popup windows
See DiaWind
Doors_Manip.pl
This is a hooked mod, to see how to install and use. See Doors Manipulation
MP3.pl
plugin::U_MP3
This plugin utilizes a database full of the EverQuest sound files and their lengths to utilize sound looping and other features.
This is an extension of $client->PlayMP3 which can play both mp3/wav as well as the old EverQuest .xmi file format (MIDI)
PlayMP3 packet will ignore the clients music and sound level sliders so this can be annoying if you use it, however this restores the ability to use music in EverQuest because this plugin will only play one sound file per IP, which allows music to be played without walking over each clients sound files.
All of the sound file lengths are queried from the custom table listed below. All Wav/MP3 files are in this database, no XMI's. If you want to use XMI's you will have to use them on your own accord.
Options:
repeat_on_end - Will repeat the sound file after the song plays
delay_repeat - How long the sound timer will wait before repeating
interrupt - This will interrupt another sound that is playing
Required Database Table:
DOWNLOAD
constants.pl
Task_Utils.pl
  • plugin::AssignTask(UpdateType=[solo, group, raid], TaskID, [NPCID = 0] ($npc>GetID());
  • plugin::FailTask(UpdateType=[solo, group, raid], TaskID);
  • plugin::UpdateTaskActivity(UpdateType [solo, group, raid], TaskID, ActivityID, Count);
formation_tools.pl
  • plugin::FollowFormLeader([LeaderMob, OnGrid = 0, MoveToX = 0, MoveToY = 0, NoSpeedBuffs = false]);
  • plugin::MoveInFormation(NPCID, [$npc = 0, OnGrid = 0, MoveToX = 0, MoveToY = 0, NoSpeedBuffs = false]);
  • plugin::MoveToFormation(NPCID, LeaderMob, Distance, Columns, Rows, [LeadDist, MaxZDiff]);
  • plugin::RandomFormRoam(MaxVariance, MaxZVariance, LoSMobSize);
  • plugin::SpawnInFormation(NPCID, LeaderMob, Distance, Columns, Rows, [LeadDist, MaxZDiff]);
  • plugin::SpawnInFormationXY(NPCID, X, Y, Z, Distance, Columns, Rows, Heading, MaxZDiff);
  • plugin::SpawnMixedFormation(LeaderMob, Distance, Columns, Rows, LeadDist=Distance, MaxZDiff=15, NPCID, NPCID...);
  • plugin::FollowInFormation(NPCID, Mob, [MaxZDiff]);
  • plugin::SquadAttackTarget(SquadNPCID, TargetID);
  • plugin::SquadAttackSquad(Squad1NPCID, Squad2NPCID);
  • plugin::GetReverseHeading($mob)
weapon_tools.pl
  • plugin::RandomWeapons(MinModelNum, MaxModelNum, MyChance, MinShieldNum, MaxShieldNum, NoDualWield?, IgnoreClass? );
  • plugin::SetWeapons(PrimaryModel, SecondaryModel, EnableRemoving? );
Last modified 2yr ago
Copy link