diff --git a/doc/item_db.txt b/doc/item_db.txt
index 01c9cc0..c3e3df8 100644
--- a/doc/item_db.txt
+++ b/doc/item_db.txt
@@ -86,10 +86,6 @@ Upper: Equippable upper-types. Uses the following bitmasks:
Gender: Gender restriction. 0 is female, 1 is male, 2 for both.
Loc: Equipment's placement. Values are:
- 2^13 8192 = Costume Garment/Robe
- 2^12 4096 = Costume Low Headgear
- 2^11 2048 = Costume Mid Headgear
- 2^10 1024 = Costume Top Headgear
2^8 256 = Upper Headgear
2^9 512 = Middle Headgear
2^0 001 = Lower Headgear
@@ -100,6 +96,10 @@ Loc: Equipment's placement. Values are:
2^6 064 = Footgear
2^3 008 = Accessory 1
2^7 128 = Accessory 2
+ 2^10 1024 = Costume Top Headgear
+ 2^11 2048 = Costume Mid Headgear
+ 2^12 4096 = Costume Low Headgear
+ 2^13 8192 = Costume Garment/Robe
wLV: Weapon level.
diff --git a/doc/permissions.txt b/doc/permissions.txt
index be51a18..7cca363 100644
--- a/doc/permissions.txt
+++ b/doc/permissions.txt
@@ -31,4 +31,4 @@ show_bossmobs : Ability to see boss mobs with @showmobs.
disable_pvm : Ability to disable Player vs. Monster.
disable_pvp : Ability to disable Player vs. Player.
disable_commands_when_dead : Ability to disable @command usage when dead.
-hchsys_admin : Hercules Chat System Admin (can modify channels settings regardless of ownership and join password-protected channels without password)
\ No newline at end of file
+hchsys_admin : Hercules Chat System Admin (Ability to modify channel settings regardless of ownership and join password-protected channels without a password)
\ No newline at end of file
diff --git a/doc/script_commands.txt b/doc/script_commands.txt
index 269e027..dfea0bd 100644
--- a/doc/script_commands.txt
+++ b/doc/script_commands.txt
@@ -1064,9 +1064,9 @@ This is one of the ways to end a speech from an NPC. Once the button is clicked,
the NPC script execution will end, and the message box will disappear.
mes "[Woman]";
- mes "I am finished talking to you, click the close button";
+ mes "I am finished talking to you, click the close button.";
close;
- mes "This command will not run at all, cause the script has ended.";
+ mes "This command will not run at all, since the script has ended.";
---------------------------------------
@@ -1080,7 +1080,7 @@ the message box will have closed, the script execution will not stop, and comman
make it stop in some other manner.
mes "[Woman]";
- mes "I will warp you now";
+ mes "I will warp you now.";
close2;
warp "place",50,50;
end;
@@ -1366,7 +1366,7 @@ picked.
And like 'menu', the selected option is consistent with grouped options
and empty options.
-prompt works almost the same as select, except that when a character clicks
+'prompt' works almost the same as select, except that when a character clicks
the Cancel button, this function will return 255 instead.
---------------------------------------
@@ -2713,9 +2713,8 @@ While this function was meant for item scripts, it will work outside them:
*getrefine()
-This function will return the number of pluses the weapon currently equipped on
-the invoking character has been refined for.
-While this function was meant for item scripts, it will work outside them:
+This function will return the refine count of the equipment from which the
+function is called. This function is intended for use in item scripts.
if (getrefine()==10) mes "Wow. That's a murder weapon.";
@@ -3128,7 +3127,7 @@ Example 2:
*getskilllist;
-This command sets a bunch of arrays with a complete list of skills the
+This command sets a bunch of arrays with a complete list of skills the
invoking character has. Here's what you get:
@skilllist_id[] - skill ids.
@@ -3160,19 +3159,6 @@ currently has active. Valid types are:
---------------------------------------
-*gethominfo(<type>)
-
-This function works as a direct counterpart of 'getpetinfo':
- 0 - Homunculus unique ID
- 1 - Homunculus Class
- 2 - Name
- 3 - Friendly level (intimacy score). 100000 is full loyalty.
- 4 - Hungry level. 100 is completely full.
- 5 - Rename flag. 0 means this homunculus has not been named yet.
- 6 - Homunculus level
-
----------------------------------------
-
*petstat(<flag>)
Returns current pet status, all are integers except name.
@@ -5119,6 +5105,9 @@ previously, they will now at 0+the level given.
Flag 3 is the same as flag 0 in that it saves to the database. However, these skills
are ignored when any action is taken that adjusts the skill tree (reset/job change).
+
+Flag 4 is the same as flag 1 in that it saves to the database. However, these skills
+are ignored when any action is taken that adjusts the skill tree (reset/job change).
---------------------------------------
*nude;
@@ -5440,16 +5429,37 @@ the homunculus must have above 91000 intimacy with its owner.
*hommutate {<ID>};
-This command will try to evolve the current player's homunculus into the
-new Homunculus S. If it doesn't work, the /swt emotion is shown.
+This command will try to mutate the invoking player's Homunculus into
+a Homunculus S. The Strange Embryo (ID 6415) is deleted upon success.
-To mutate a homunculus, the invoking player must have an evolved
-homunculus and it must be at least level 99.
+The command will fail if the invoking player does not have an evolved
+Homunculus at level 99 or above, if it is not in the embryo state
+(from the 'morphembryo' command), or if the invoking player does not
+possess a Strange Embryo. The /swt emotion is shown upon failure.
-If the optional parameter <ID> is set, the invoking player's homunculus will
-change into the given homunculus ID. Otherwise, a random Homunculus S
-will be chosen.
+If the optional parameter <ID> is set, the invoking player's Homunculus
+will change into the specified Homunculus ID. Otherwise, a random Homunculus S
+will be chosen. See 'db/homunculus_db.txt' for a full list of IDs.
+Returns 1 upon success and 0 for all failures.
+
+---------------------------------------
+
+*gethominfo(<type>)
+
+This function will return Homunculus information for the Homunculus of the
+invoking character, regardless of its vaporize state. It returns zero or
+"null" if the player does not own a Homunculus.
+
+Valid types are:
+ 0 - Homunculus unique ID
+ 1 - Homunculus Class
+ 2 - Name
+ 3 - Friendly level (intimacy score). 100000 is full loyalty.
+ 4 - Hungry level. 100 is completely full.
+ 5 - Rename flag. 0 means this homunculus has not been named yet.
+ 6 - Homunculus level
+
---------------------------------------
*unitwalk <GID>,<x>,<y>;
@@ -6316,11 +6326,12 @@ an NPC move randomly around the map.
@speed GM command, 200 is the slowest possible speed while 0 is the fastest
possible (instant motion). 100 is the default character walking speed.
'npcwalkto' will start the NPC sprite moving towards the specified coordinates
-on the same map as it is currently on.
+on the same map as it is currently on. The script proceeds immediately after the
+NPC begins moving.
'npcstop' will stop the motion.
While in transit, the NPC will be clickable, but invoking it will cause it to
-stop motion, which will make it's coordinates different from what the client
+stop moving, which will make it's coordinates different from what the client
computed based on the speed and motion coordinates. The effect is rather
unnerving.
diff --git a/npc/jobs/novice/novice.txt b/npc/jobs/novice/novice.txt
deleted file mode 100644
index 4613ebe..0000000
--- a/npc/jobs/novice/novice.txt
+++ /dev/null
@@ -1,76 +0,0 @@
-//===== Hercules Script =======================================
-//= New Novice Training Grounds
-//===== By: ==================================================
-//= Streusel
-//===== Current Version: =====================================
-//= 1.0
-//===== Compatible With: =====================================
-//= Hercules
-//===== Description: =========================================
-//= New Novice Training Grounds
-//= [Hand Scripted (No Programs or AEGIS Scripts)]
-//===== Additional Comments: =================================
-//= 1.0 First version. [Streusel]
-//= Credits to whoever made Sprakki.
-//============================================================
-
-// Sprakki (Stard of Novice Training Ground, Outside Castle)
-//============================================================
-- script ::Captain_Carew -1,{
- if(job_novice_q < 1) {
- mes "[Captain Carew]";
- mes "Hello there! Welcome to the World of Ragnarok Online. My name is Captain Carew and I'm in charge of giving you basic gameplay tips.";
- mes "Click on the [Next] button or press [Enter] to continue.";
- next;
- mes "[Captain Carew]";
- mes "First you need to learn the very basics of controlling your character.";
- mes "All the basic ^4A4AFFmoves, selection of items, and attacks^000000 use the ^4A4AFFleft click of the mouse^000000.";
- next;
- cutin "tutorial01",3;
- mes "-! Info !-";
- mes "Click on the ground to move the character.";
- mes "Attacking monsters and conversations with the people of this world can be done by simply clicking on them.";
- next;
- cutin "",255;
- mes "[Captain Carew]";
- mes "First off, try moving around.";
- mes "Do you see that wooden bridge to the right?";
- next;
- setquest 7117;
- set job_novice_q,1;
- mes "[Captain Carew]";
- mes "Walk over that bridge and there's a castle used as the Training Center.";
- mes "I will be waiting for you inside of that Castle. Please come to the castle by yourself.";
- next;
- cutin "tutorial02",3;
- mes "-! Info !-";
- mes "You've received a quest from Sprakki.";
- mes "You can check the contents of the quest in the Quest Info Window.";
- next;
- mes "[Captain Carew]";
- mes "I will wait inside the Training Center across the bridge.";
- next;
- mes "-! Info !-";
- mes "You can open the Quest Info Window by pressing the ^4A4AFFALT + U^000000 keys at the same time.";
- next;
- cutin "",255;
- mes "[Captain Carew]";
- mes "Have you checked the Quest Info Window?";
- mes "I'll be waiting in the castle across the bridge.";
- close;
- }
- mes "[Carew]";
- mes "I'm not sure what's happening, I'm very shy.";
- mes "Meet me in Izlude again.";
- mes "";
- next;
- mes "[Carew]";
- mes "I'm now heading to the local harbor of Izlude.";
- mes "Now, sleep unti we arrive.";
- close;
-}
-
-//Official view id 639
-iz_int01,91,81,4 script ::Rumin 99,{
-close;
-}
\ No newline at end of file
diff --git a/npc/pre-re/jobs/novice/novice.txt b/npc/pre-re/jobs/novice/novice.txt
index c887954..95cff61 100644
--- a/npc/pre-re/jobs/novice/novice.txt
+++ b/npc/pre-re/jobs/novice/novice.txt
@@ -1,11 +1,9 @@
-//===== rAthena Script =======================================
+//===== Hercules Script ======================================
//= Ep 10+ Novice Training Grounds
//===== By: ==================================================
//= Dr.Evil & MasterOfMuppets
//===== Current Version: =====================================
//= 2.4
-//===== Compatible With: =====================================
-//= rAthena SVN 3422+(Requires jA Script System)
//===== Description: =========================================
//= [Official Conversion]
//= Novice Training Grounds
diff --git a/npc/re/jobs/novice/novice.txt b/npc/re/jobs/novice/novice.txt
index 8d29ce2..2b6e7b8 100644
--- a/npc/re/jobs/novice/novice.txt
+++ b/npc/re/jobs/novice/novice.txt
@@ -1,4 +1,4 @@
-//===== Hercules Script =======================================
+//===== Hercules Script ======================================
//= New Novice Training Grounds
//===== By: ==================================================
//= Streusel
@@ -11,7 +11,67 @@
//= [Hand Scripted (No Programs or AEGIS Scripts)]
//===== Additional Comments: =================================
//= 1.0 First version. [Streusel]
+//= Credits to whoever made Sprakki.
//============================================================
+// Sprakki (Start of Novice Training Ground, Outside Castle)
+//============================================================
+- script ::Captain_Carew -1,{
+ if(job_novice_q < 1) {
+ mes "[Captain Carew]";
+ mes "Hello there! Welcome to the World of Ragnarok Online. My name is Captain Carew and I'm in charge of giving you basic gameplay tips.";
+ mes "Click on the [Next] button or press [Enter] to continue.";
+ next;
+ mes "[Captain Carew]";
+ mes "First you need to learn the very basics of controlling your character.";
+ mes "All the basic ^4A4AFFmoves, selection of items, and attacks^000000 use the ^4A4AFFleft click of the mouse^000000.";
+ next;
+ cutin "tutorial01",3;
+ mes "-! Info !-";
+ mes "Click on the ground to move the character.";
+ mes "Attacking monsters and conversations with the people of this world can be done by simply clicking on them.";
+ next;
+ cutin "",255;
+ mes "[Captain Carew]";
+ mes "First off, try moving around.";
+ mes "Do you see that wooden bridge to the right?";
+ next;
+ setquest 7117;
+ set job_novice_q,1;
+ mes "[Captain Carew]";
+ mes "Walk over that bridge and there's a castle used as the Training Center.";
+ mes "I will be waiting for you inside of that Castle. Please come to the castle by yourself.";
+ next;
+ cutin "tutorial02",3;
+ mes "-! Info !-";
+ mes "You've received a quest from Sprakki.";
+ mes "You can check the contents of the quest in the Quest Info Window.";
+ next;
+ mes "[Captain Carew]";
+ mes "I will wait inside the Training Center across the bridge.";
+ next;
+ mes "-! Info !-";
+ mes "You can open the Quest Info Window by pressing the ^4A4AFFALT + U^000000 keys at the same time.";
+ next;
+ cutin "",255;
+ mes "[Captain Carew]";
+ mes "Have you checked the Quest Info Window?";
+ mes "I'll be waiting in the castle across the bridge.";
+ close;
+ }
+ mes "[Carew]";
+ mes "I'm not sure what's happening, I'm very shy.";
+ mes "Meet me in Izlude again.";
+ mes "";
+ next;
+ mes "[Carew]";
+ mes "I'm now heading to the local harbor of Izlude.";
+ mes "Now, sleep unti we arrive.";
+ close;
+}
+
+//Official view id 639
+iz_int01,91,81,4 script ::Rumin 99,{
+close;
+}
-iz_int01,100,91,4 duplicate(Captain_Carew) Captain Carew#iz_int 873
-iz_int01,91,81,4 duplicate(Rumin) Rumin#iz_int01 99
\ No newline at end of file
+iz_int01,100,91,4 duplicate(Captain_Carew) Captain Carew#iz_int 873
\ No newline at end of file
diff --git a/npc/scripts_jobs.conf b/npc/scripts_jobs.conf
index 966f9fb..6119170 100644
--- a/npc/scripts_jobs.conf
+++ b/npc/scripts_jobs.conf
@@ -43,7 +43,6 @@ npc: npc/jobs/2-2a/Stalker.txt
npc: npc/jobs/2-2e/SoulLinker.txt
// - Novice
npc: npc/jobs/novice/supernovice.txt
-npc: npc/jobs/novice/novice.txt
// - Transcended Quest (2-x -> High Novice)
npc: npc/jobs/valkyrie.txt