summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--doc/script_commands.txt13
-rw-r--r--npc/Changelog.txt1
-rw-r--r--npc/sample/npc_test_duplicate.txt29
3 files changed, 37 insertions, 6 deletions
diff --git a/doc/script_commands.txt b/doc/script_commands.txt
index 9804ecbdc..f564ffc1a 100644
--- a/doc/script_commands.txt
+++ b/doc/script_commands.txt
@@ -84,6 +84,8 @@
//= Added 'gethominfo' description [Skotlex]
//= 3.06.20070910
//= Added info about the new behavior of 'getexp' [ultramage]
+//= 3.07.20070915
+//= Fixed 'duplicate' missing the target 'name' parameter! [ultramage]
//===== Description =======================================
//= A reference manual for the eAthena scripting language,
//= sorted out depending on their functionality.
@@ -337,13 +339,12 @@ where we use curly brackets, these do NOT signify an optional parameter.
** Define an NPC duplicate.
-<map name>,<x>,<y>,<facing>%TAB%duplicate(<NPC label>)%TAB%<sprite id>
-<map name>,<x>,<y>,<facing>%TAB%duplicate(<NPC label>)%TAB%<sprite id>,<triggerX>,<triggerY>
+<map name>,<x>,<y>,<facing>%TAB%duplicate(<label>)%TAB%<name>%TAB%<sprite id>
+<map name>,<x>,<y>,<facing>%TAB%duplicate(<label>)%TAB%<name>%TAB%<sprite id>,<triggerX>,<triggerY>
-This will duplicate an NPC referred to by the label. The duplicate runs the same
-code as the NPC it refers to, but may have different location, facing and sprite
-ID. Whether it may actually have it's own size of trigger area is unclear at the
-moment - if you need that, try it and tell us of the results.
+This will duplicate an NPC referred to by 'label'. The duplicate runs the same
+code as the source NPC, but has its own name, location, facing, sprite ID and
+trigger area (in other words, the duplicate does not 'inherit' any of these).
** Define a 'floating' NPC object.
diff --git a/npc/Changelog.txt b/npc/Changelog.txt
index a373bd625..477b9b9ab 100644
--- a/npc/Changelog.txt
+++ b/npc/Changelog.txt
@@ -1,6 +1,7 @@
Date Added
======
2007/09/15
+ * Added npc_test_duplicate.txt to /samples
* Corrected some npc/other/ bugs
- added missing arena.txt and fortune.txt to npc list
- commented out arena.txt and mail.txt since it's not at all done yet
diff --git a/npc/sample/npc_test_duplicate.txt b/npc/sample/npc_test_duplicate.txt
new file mode 100644
index 000000000..b9e6a4d4c
--- /dev/null
+++ b/npc/sample/npc_test_duplicate.txt
@@ -0,0 +1,29 @@
+//
+// This sample script tests:
+// * how npc-variables work with duplicated npcs
+// * how the trigger area is applied to duplicates
+//
+// Outcome (r11216 trunk):
+// * the variables are _shared_ between all duplicates
+// * 'OnInit' loads the middle poring last, for some reason
+// * duplicates always override the source npc's trigger area (even 0x0)
+//
+
+- script Test Script -1,1,1,{
+ mes "Hi.";
+ mes "My coords are "+ .map$ +", "+ .x +"/" +.y ;
+ close;
+
+OnInit:
+ getmapxy(.map$, .x, .y, 1);
+ end;
+
+OnTouch:
+ getmapxy(.map$, .x, .y, 1);
+ emotion e_scissors;
+ end;
+}
+
+prontera,150,175,4 duplicate(Test Script) Test1 909
+prontera,155,175,4 duplicate(Test Script) Test2 909,2,2
+prontera,160,175,4 duplicate(Test Script) Test3 909,3,3