Browse Source

* Fixed map server crashing upon level changes, thanks Akinari! (bugreport:7428)
* Fixed a couple minor issues with r17220 (incl. bugreport:7427).
* Added documentation and constants for costume slots where missing.
* Removed references to TXT save files in script_commands.txt.

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@17221 54d463be-8e91-2dee-dedb-b68131a5f0ec

euphyy 12 years ago
parent
commit
6eb7ce1f11
4 changed files with 19 additions and 20 deletions
  1. 4 0
      db/const.txt
  2. 9 14
      doc/script_commands.txt
  3. 1 1
      src/map/pc.h
  4. 5 5
      src/map/script.c

+ 4 - 0
db/const.txt

@@ -605,6 +605,10 @@ EQI_ACC_L	7
 EQI_ACC_R	8
 EQI_HEAD_MID	9
 EQI_HEAD_LOW	10
+EQI_COSTUME_HEAD_LOW	11
+EQI_COSTUME_HEAD_MID	12
+EQI_COSTUME_HEAD_TOP	13
+EQI_COSTUME_GARMENT	14
 
 LOOK_BASE	0
 LOOK_HAIR	1

+ 9 - 14
doc/script_commands.txt

@@ -428,16 +428,13 @@ temporary - They cease to exist when the server resets.
 
 Prefix: scope and extent
 nothing  - A permanent variable attached to the character, the default variable
-           type. They are stored with all the account data in "save\athena.txt"
-           in TXT versions and in the SQL versions in the `global_reg_value`
-           table using type 3.
+           type. They are stored in the `global_reg_value` table using type 3.
 "@"      - A temporary variable attached to the character.
            SVN versions before 2094 revision and RC5 version will also treat
            'l' as a temporary variable prefix, so beware of having variable
            names starting with 'l' if you want full backward compatibility.
 "$"      - A global permanent variable.
-           They are stored in "save\mapreg.txt" or database table `mapreg`,
-           depending on server type.
+           They are stored in database table `mapreg`.
 "$@"     - A global temporary variable.
            This is important for scripts which are called with no RID
            attached, that is, not triggered by a specific character object.
@@ -457,16 +454,13 @@ nothing  - A permanent variable attached to the character, the default variable
            These are used with the instancing system, and are unique to each 
            party's instance.
 "#"      - A permanent local account variable.
-           They are stored with all the account data in "save\accreg.txt" in
-           TXT versions and in the SQL versions in the 'global_reg_value'
-           table using type 2.
+           They are stored in the `global_reg_value` table using type 2.
 "##"     - A permanent global account variable stored by the login server.
-           They are stored in "save\account.txt" and in the SQL versions in the
-           'global_reg_value' table, using type 1. The only difference you will
-           note from normal # variables is when you have multiple char-servers
-           connected to the same login server. The # variables are unique to
-           each char-server, while the ## variables are shared by all these
-           char-servers.
+           They are stored in the `global_reg_value` table using type 1.
+           The only difference you will note from normal # variables is when
+           you have multiple char-servers connected to the same login server.
+           The # variables are unique to each char-server, while the ## variables
+           are shared by all these char-servers.
 
 Postfix: integer or string
 nothing - integer variable, can store positive and negative numbers, but only 
@@ -2468,6 +2462,7 @@ EQI_HEAD_LOW (10)         - Lower Headgear (beards, some masks)
 EQI_COSTUME_HEAD_LOW (11) - Lower Costume Headgear
 EQI_COSTUME_HEAD_MID (12) - Middle Costume Headgear
 EQI_COSTUME_HEAD_TOP (13) - Upper Costume Headgear
+EQI_COSTUME_GARMENT (14) - Costume Garment
 
 Notice that a few items occupy several equipment slots, and if the character is 
 wearing such an item, 'getequipid' will return it's ID number for either slot.

+ 1 - 1
src/map/pc.h

@@ -167,7 +167,7 @@ struct map_session_data {
 	struct registry save_reg;
 
 	struct item_data* inventory_data[MAX_INVENTORY]; // direct pointers to itemdb entries (faster than doing item_id lookups)
-	short equip_index[14];
+	short equip_index[15];
 	unsigned int weight,max_weight;
 	int cart_weight,cart_num,cart_weight_max;
 	int fd;

+ 5 - 5
src/map/script.c

@@ -7349,7 +7349,7 @@ BUILDIN_FUNC(strnpcinfo)
 static unsigned int equip[] = {EQP_HEAD_TOP,EQP_ARMOR,EQP_HAND_L,EQP_HAND_R,EQP_GARMENT,EQP_SHOES,EQP_ACC_L,EQP_ACC_R,EQP_HEAD_MID,EQP_HEAD_LOW,EQP_COSTUME_HEAD_LOW,EQP_COSTUME_HEAD_MID,EQP_COSTUME_HEAD_TOP,EQP_COSTUME_GARMENT};
 
 /*==========================================
- * GetEquipID(Pos);     Pos: 1-13
+ * GetEquipID(Pos);     Pos: 1-14
  *------------------------------------------*/
 BUILDIN_FUNC(getequipid)
 {
@@ -10181,7 +10181,7 @@ BUILDIN_FUNC(homunculus_mutate)
 BUILDIN_FUNC(morphembryo)
 {
 	struct item item_tmp;
-	int m_class, i;
+	int m_class, i=0;
 	TBL_PC *sd;
 	
 	sd = script_rid2sd(st);
@@ -10232,9 +10232,9 @@ BUILDIN_FUNC(homunculus_shuffle)
 /*==========================================
  * Check for homunculus state.
  * Return: -1 = No homunculus
- *          0 = Homunculus is vaporized (rest)
- *          1 = Homunculus is in morph state
- *          2 = Homunculus is active
+ *          0 = Homunculus is active
+ *          1 = Homunculus is vaporized (rest)
+ *          2 = Homunculus is in morph state
  *------------------------------------------*/
 BUILDIN_FUNC(checkhomcall)
 {