From 01f6ac5ca68d029aefd93481de076ca5eec33864 Mon Sep 17 00:00:00 2001 From: FlavioJS Date: Thu, 18 Oct 2007 14:21:46 +0000 Subject: * Clarified how npc names work in script_commands.txt. * Fixed a forgotten "return 0;" that stopped the parsing of the file after the first "script" of the file is parsed sucessfully (caused by r11502). * Applied the same parsing and restrictions of npc names to warps, duplicates and shops (other code expects unique names for them too). git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@11508 54d463be-8e91-2dee-dedb-b68131a5f0ec --- Changelog-Trunk.txt | 5 ++ doc/script_commands.txt | 47 ++++++++------- src/map/map.h | 4 +- src/map/npc.c | 156 ++++++++++++++++++++++++++++-------------------- 4 files changed, 124 insertions(+), 88 deletions(-) diff --git a/Changelog-Trunk.txt b/Changelog-Trunk.txt index af3d4af01..92b8e95d0 100644 --- a/Changelog-Trunk.txt +++ b/Changelog-Trunk.txt @@ -4,6 +4,11 @@ AS OF SVN REV. 5091, WE ARE NOW USING TRUNK. ALL UNTESTED BUGFIXES/FEATURES GO IF YOU HAVE A WORKING AND TESTED BUGFIX PUT IT INTO STABLE AS WELL AS TRUNK. 2007/10/18 + * Clarified how npc names work in script_commands.txt. + * Fixed a forgotten "return 0;" that stopped the parsing of the file + after the first "script" of the file is parsed sucessfully (caused by r11502). + * Applied the same parsing and restrictions of npc names to warps, duplicates + and shops (other code expects unique names for them too). [FlavioJS] * Applied the new checking function to clif code, this fixes various length mismatches caused by incomplete code in r11386 * Added clif_process_message(), an unified way to validate all four diff --git a/doc/script_commands.txt b/doc/script_commands.txt index c19ad9716..bf9343cfe 100644 --- a/doc/script_commands.txt +++ b/doc/script_commands.txt @@ -9,7 +9,7 @@ //= Maeki Rika - A section on general concepts and lots of //= other updates and additions. //===== Version =========================================== -//= 3.06.20070910 +//= 3.08.20071018 //========================================================= //= 1.0 - First release, filled will as much info as I could //= remember or figure out, most likely there are errors, @@ -86,6 +86,8 @@ //= Added info about the new behavior of 'getexp' [ultramage] //= 3.07.20070915 //= Fixed 'duplicate' missing the target 'name' parameter! [ultramage] +//= 3.08.20071018 +//= Clarified how npc names work. [FlavioJS] //===== Description ======================================= //= A reference manual for the eAthena scripting language, //= sorted out depending on their functionality. @@ -261,6 +263,25 @@ special ai mobs (which by default attack other monsters instead of players). You can add these, so using 10 will spawn small monsters that attack other mobs (if you specify both 2 and 4, the small version takes priority). +** Npc names + +/!\ WARNING: this applies to warps, npcs, duplicates and shops /!\ + +Npc names are kinda special and are formatted this way: + +{::} + +All npcs need to have a unique name that is used for identification purposes. +When you have to identify a npc by it's name, you should use . +If is not provided, use instead. + +The client has a special feature when displaying names: +if the display name contains a '#' character, it hides that part of the name. +ex: if your npc is named 'Hunter#hunter1', it will be displayed as 'Hunter' + + must be at most 24 characters in length. + must be at most 24 characters in length. + ** Define a warp point ,,,%TAB%warp%TAB%%TAB%,,,, @@ -300,8 +321,9 @@ Sprite id is the sprite number used to display this particular NPC. For a full list of sprite id numbers see http://kalen.s79.xrea.com/npc/npce.shtml You may also use a monster's ID number instead to display a monster sprite for this NPC. It is possible to use a job sprite as well, but you must first define it as a -monster sprite in 'mob_avail.txt', a full description on how to do this is for -another manual. A '-1' sprite id will make the NPC invisible (and unclickable). +monster sprite in 'mob_avail.txt', a full description on how to do this is not +in the scope of this manual. +A '-1' sprite id will make the NPC invisible (and unclickable). A '111' sprite id will make an NPC which does not have a sprite, but is still clickable, which is useful if you want to make a clickable object of the 3D terrain. @@ -313,25 +335,6 @@ direction across Y. Walking into that area will trigger the NPC. If no from the beginning of the script, otherwise, it will start from the 'OnTouch:' label. -NPC name is kinda special, because it's not only the name of NPC you will see on -screen. It's formatted this way: - -{#}{::