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_ACC_R	8
 EQI_HEAD_MID	9
 EQI_HEAD_MID	9
 EQI_HEAD_LOW	10
 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_BASE	0
 LOOK_HAIR	1
 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
 Prefix: scope and extent
 nothing  - A permanent variable attached to the character, the default variable
 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.
 "@"      - A temporary variable attached to the character.
            SVN versions before 2094 revision and RC5 version will also treat
            SVN versions before 2094 revision and RC5 version will also treat
            'l' as a temporary variable prefix, so beware of having variable
            'l' as a temporary variable prefix, so beware of having variable
            names starting with 'l' if you want full backward compatibility.
            names starting with 'l' if you want full backward compatibility.
 "$"      - A global permanent variable.
 "$"      - 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.
 "$@"     - A global temporary variable.
            This is important for scripts which are called with no RID
            This is important for scripts which are called with no RID
            attached, that is, not triggered by a specific character object.
            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 
            These are used with the instancing system, and are unique to each 
            party's instance.
            party's instance.
 "#"      - A permanent local account variable.
 "#"      - 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.
 "##"     - 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
 Postfix: integer or string
 nothing - integer variable, can store positive and negative numbers, but only 
 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_LOW (11) - Lower Costume Headgear
 EQI_COSTUME_HEAD_MID (12) - Middle Costume Headgear
 EQI_COSTUME_HEAD_MID (12) - Middle Costume Headgear
 EQI_COSTUME_HEAD_TOP (13) - Upper 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 
 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.
 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 registry save_reg;
 
 
 	struct item_data* inventory_data[MAX_INVENTORY]; // direct pointers to itemdb entries (faster than doing item_id lookups)
 	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;
 	unsigned int weight,max_weight;
 	int cart_weight,cart_num,cart_weight_max;
 	int cart_weight,cart_num,cart_weight_max;
 	int fd;
 	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};
 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)
 BUILDIN_FUNC(getequipid)
 {
 {
@@ -10181,7 +10181,7 @@ BUILDIN_FUNC(homunculus_mutate)
 BUILDIN_FUNC(morphembryo)
 BUILDIN_FUNC(morphembryo)
 {
 {
 	struct item item_tmp;
 	struct item item_tmp;
-	int m_class, i;
+	int m_class, i=0;
 	TBL_PC *sd;
 	TBL_PC *sd;
 	
 	
 	sd = script_rid2sd(st);
 	sd = script_rid2sd(st);
@@ -10232,9 +10232,9 @@ BUILDIN_FUNC(homunculus_shuffle)
 /*==========================================
 /*==========================================
  * Check for homunculus state.
  * Check for homunculus state.
  * Return: -1 = No homunculus
  * 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)
 BUILDIN_FUNC(checkhomcall)
 {
 {