- Updated the status change field "option" to an int rather than short. This fixes the option values for xmas/sightblaster not getting set, which could explain why some people crash when equipping weapons while in xmas suit.

- Also did the same to opt3 since the new packet version uses LONG to store the opt3 values.
- Made the clif weapon view function use the EQI constants instead of ints.


git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@9337 54d463be-8e91-2dee-dedb-b68131a5f0ec
This commit is contained in:
skotlex 2006-11-27 21:32:32 +00:00
parent 83748da27b
commit 4fe7389fb0
4 changed files with 14 additions and 8 deletions

View File

@ -4,6 +4,10 @@ AS OF SVN REV. 5091, WE ARE NOW USING TRUNK. ALL UNTESTED BUGFIXES/FEATURES GO
IF YOU HAVE A WORKING AND TESTED BUGFIX PUT IT INTO STABLE AS WELL AS TRUNK. IF YOU HAVE A WORKING AND TESTED BUGFIX PUT IT INTO STABLE AS WELL AS TRUNK.
2006/11/27 2006/11/27
* Updated the status change field "option" to an int rather than short.
This fixes the option values for xmas/sightblaster not getting set, which
could explain why some people crash when equipping weapons while in xmas
suit. [Skotlex]
* Fixed the Homunculus hungry timer not starting on login. [Skotlex] * Fixed the Homunculus hungry timer not starting on login. [Skotlex]
* Added logging for standard GM commands (/mm /b /kick etc) [KarLaeda] * Added logging for standard GM commands (/mm /b /kick etc) [KarLaeda]
* Some cleanups on the trade_additem function. When specifying a qty of 0, * Some cleanups on the trade_additem function. When specifying a qty of 0,

View File

@ -219,7 +219,7 @@ struct mmo_charstatus {
short class_; short class_;
unsigned short status_point,skill_point; unsigned short status_point,skill_point;
int hp,max_hp,sp,max_sp; int hp,max_hp,sp,max_sp;
unsigned short option; unsigned int option;
short manner; short manner;
unsigned char karma; unsigned char karma;
short hair,hair_color,clothes_color; short hair,hair_color,clothes_color;

View File

@ -871,9 +871,10 @@ void clif_get_weapon_view(TBL_PC* sd, unsigned short *rhand, unsigned short *lha
*rhand = sd->status.weapon; *rhand = sd->status.weapon;
*lhand = sd->status.shield; *lhand = sd->status.shield;
#else #else
if (sd->equip_index[9] >= 0 && sd->inventory_data[sd->equip_index[9]]) if (sd->equip_index[EQI_HAND_R] >= 0 &&
sd->inventory_data[sd->equip_index[EQI_HAND_R]])
{ {
id = sd->inventory_data[sd->equip_index[9]]; id = sd->inventory_data[sd->equip_index[EQI_HAND_R]];
if (id->view_id > 0) if (id->view_id > 0)
*rhand = id->view_id; *rhand = id->view_id;
else else
@ -881,10 +882,11 @@ void clif_get_weapon_view(TBL_PC* sd, unsigned short *rhand, unsigned short *lha
} else } else
*rhand = 0; *rhand = 0;
if (sd->equip_index[8] >= 0 && sd->equip_index[8] != sd->equip_index[9] if (sd->equip_index[EQI_HAND_L] >= 0 &&
&& sd->inventory_data[sd->equip_index[8]]) sd->equip_index[EQI_HAND_L] != sd->equip_index[EQI_HAND_R] &&
sd->inventory_data[sd->equip_index[EQI_HAND_L]])
{ {
id = sd->inventory_data[sd->equip_index[8]]; id = sd->inventory_data[sd->equip_index[EQI_HAND_L]];
if (id->view_id > 0) if (id->view_id > 0)
*lhand = id->view_id; *lhand = id->view_id;
else else

View File

@ -419,8 +419,8 @@ struct status_change_entry {
struct status_change { struct status_change {
struct status_change_entry data[MAX_STATUSCHANGE]; struct status_change_entry data[MAX_STATUSCHANGE];
short count; short count;
short opt1,opt2,opt3; unsigned short opt1,opt2;
unsigned short option; unsigned int opt3, option; //Note that older packet versions use short here.
}; };
struct vending { struct vending {