mirror of
https://github.com/EQEmu/Server.git
synced 2026-07-02 00:47:16 +00:00
Update Perl API
+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\]\]
|
|
||||||
Reference in New Issue
Block a user