Update Perl API

Akkadius
2018-07-01 02:54:44 -05:00
parent 856b675454
commit e75769c08a
+26 -36
@@ -1,34 +1,36 @@
> A complete list of Perl scripting resources... # Beginners Guide To Perl
##### **Perl Guides** * Are you new to Perl? Perl isn't just a EQEmu scripting language, it's been around for eons and used in many systems
* Here is a reference to basic Perl [http://www.tizag.com/beginnerT/](Beginners Guide to Perl)
* \[\[Entity Lists - How to Use Them\]\] - By Akkadius # Real Use Examples
* \[\[The Power of Entity Variables\]\] - By Akkadius
* \[\[How To Use Quest Globals\]\] - By Kingly Krab
##### **Saving/Naming Quests** * Modifying NPC Stats (Example coming)
* Get Item Stats (Example coming)
* Get Spell Stats (Example coming)
* Quests go in the directory 'quests' (not Quests). # How Perl Quests Are Loaded
* Save your quests as a .pl This can be done by going into Notepad --> Save As --> All File Types --> "npcid.pl"
* If the quest applies to any mob in the zone with the same name (99% of all cases), Quests should be saved in $EQEmuDir$/quests/zonesn/NPC_NAME.pl (replacing ` with -)
* If the quest applies to a specific NPC type in the zone, and there are several npc types with the same name in that zone, quests should be saved in $EQEmuDir$/quests/zonesn/NPCID.pl
* Server-wide default quest in: $EQEmuDir$/quests/default.pl - Be careful when editing this that you don't delete something that your server uses. Such as the plugin returnitems so npcs dont eat items.
* For player quests (player.pl) see: Player Quest Examples
* For item quests see: ItemQuests
* For tasks see: TaskSystemOverview
##### **Comments** ### NPC
* Anything after an # is a comment, and is ignored by the parser. This is useful for leaving notes if you have more than one person working on a quest. In order of operations, an npc's script will be dictated by the first script that it finds below
* Example of a comment:
```perl * quests/zoneshortname/id.pl
sub EVENT_SAY { * quests/zoneshortname/npc_name.pl
if ($text=~/Hail/i) { #Checks if the text is like Hail, case-insensitive. * quests/global/npcid.pl
plugin::Whisper("Hail!"); * quests/global/npc_name.pl
} * quests/zoneshortname/default.pl
} * quests/global/default.pl
```
### Player
In order of operations, a player's script will be dictated by the first script that it finds below
* quests/zoneshortname/player_v[instance_version].pl
* quests/zoneshortname/player.pl
* quests/global/player.pl
# Global Scripts
# Perl Sub Events # Perl Sub Events
@@ -475,8 +477,6 @@ sub EVENT_AGGRO_SAY {
# Client # Client
### Example
```perl ```perl
$client->AccountID() $client->AccountID()
$client->AccountName() $client->AccountName()
@@ -1343,13 +1343,3 @@ $door->SetX(XPos)
$door->SetY(YPos) $door->SetY(YPos)
$door->SetZ(ZPos) $door->SetZ(ZPos)
``` ```
### Use Reference
#### Additional References
Modifying NPC Stats: \[\[Modify NPC Stat\]\]
Get Item Stats: \[\[Item Stat Identifiers\]\]
Get Spell Stats: \[\[GetSpellStat\]\]