* 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
This commit is contained in:
euphyy 2013-03-29 05:20:53 +00:00
parent 5edd3e023a
commit 6eb7ce1f11
4 changed files with 19 additions and 20 deletions

View File

@ -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

View File

@ -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" type. They are stored in the `global_reg_value` table using type 3.
in TXT versions and in the SQL versions 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`, They are stored in database table `mapreg`.
depending on server type.
"$@" - 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 They are stored in the `global_reg_value` table using type 2.
TXT versions and in the SQL versions 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 They are stored in the `global_reg_value` table using type 1.
'global_reg_value' table, using type 1. The only difference you will The only difference you will note from normal # variables is when
note from normal # variables is when you have multiple char-servers you have multiple char-servers connected to the same login server.
connected to the same login server. The # variables are unique to The # variables are unique to each char-server, while the ## variables
each char-server, while the ## variables are shared by all these are shared by all these char-servers.
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.

View File

@ -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;

View File

@ -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) * 0 = Homunculus is active
* 1 = Homunculus is in morph state * 1 = Homunculus is vaporized (rest)
* 2 = Homunculus is active * 2 = Homunculus is in morph state
*------------------------------------------*/ *------------------------------------------*/
BUILDIN_FUNC(checkhomcall) BUILDIN_FUNC(checkhomcall)
{ {