Skip to content
This repository has been archived by the owner on Jan 2, 2022. It is now read-only.

Latest commit

 

History

History

plugins

Plugins

Extensive Plugin Explanation Pages:

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.

See Animations Reference List

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<b></b>

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? );