From b0c94b71b90c7ed4d3199e0ad019073c3f75f800 Mon Sep 17 00:00:00 2001 From: skotlex Date: Tue, 4 Mar 2008 18:04:04 +0000 Subject: - Updated firepillar so it cannot be placed on top of others. - Updated the firepillar code so it behaves like the other traps. - Changed the default format for @me and @main to avoid crashes on the newer clients. - Fixed the char-sql server so it returns a valid 'not found' packet when attempting to load a non-existing homunculus. - Fixed jump to use 0,0 for random coordinates rather than -1,-1 - Added missing \n to error reporting in getmonsterinfo - Additional status changes now only get triggered if the attack did damage, not if they get absorbed. - Fixed a logical comparison in unit_free to properly remove pets/homuncs when their intimacy is reduced to 0. - Properly set the opt3 value for Moonlight, Changeundead and Soul Link - Fixed the "no equip" flag of cards not being properly applied when attemting to equip items. - Added a check to avoid invoking pet menu entries when the pet is incuvated. - Fixed the session_data de-association in chrif_auth_delete - Cleaned chrif_auth_ok so that the latest received char info is kept when previous char login data was already in there. - Corrected docs mentioning non-existing flag 'mf_nopvp' git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@12293 54d463be-8e91-2dee-dedb-b68131a5f0ec --- src/map/status.c | 32 ++++++++++++++++++++++---------- 1 file changed, 22 insertions(+), 10 deletions(-) (limited to 'src/map/status.c') diff --git a/src/map/status.c b/src/map/status.c index 595bccee1..eae8805e4 100644 --- a/src/map/status.c +++ b/src/map/status.c @@ -6026,11 +6026,11 @@ int status_change_start(struct block_list* bl,enum sc_type type,int rate,int val opt_flag = 0; break; //0x100 missing? -// TODO: -// case SC_MOONLIT: -// sc->opt3 |= 0x200; -// opt_flag = 0; -// break; + case SC_DANCING: + if ((val1&0xFFFF) == CG_MOONLIT) + sc->opt3 |= 0x200; + opt_flag = 0; + break; case SC_MARIONETTE: case SC_MARIONETTE2: sc->opt3 |= 0x400; @@ -6056,11 +6056,10 @@ int status_change_start(struct block_list* bl,enum sc_type type,int rate,int val sc->opt3 |= 0x8000; opt_flag = 0; break; -// TODO: -// case SC_BIOLABAURA: -// sc->opt3 |= 0x10000; -// opt_flag = 0; -// break; + case SC_CHANGEUNDEAD: + sc->opt3 |= 0x10000; + opt_flag = 0; + break; //OPTION case SC_HIDING: sc->option |= OPTION_HIDE; @@ -6613,6 +6612,11 @@ int status_change_end(struct block_list* bl, enum sc_type type, int tid) sc->opt3 &= ~0x80; opt_flag = 0; break; + case SC_DANCING: + if ((sce->val1&0xFFFF) == CG_MOONLIT) + sc->opt3 &= ~0x200; + opt_flag = 0; + break; case SC_MARIONETTE: case SC_MARIONETTE2: sc->opt3 &= ~0x400; @@ -6630,6 +6634,14 @@ int status_change_end(struct block_list* bl, enum sc_type type, int tid) sc->opt3 &= ~0x2000; opt_flag = 0; break; + case SC_SPIRIT: + sc->opt3 &= ~0x8000; + opt_flag = 0; + break; + case SC_CHANGEUNDEAD: + sc->opt3 &= ~0x10000; + opt_flag = 0; + break; default: opt_flag = 0; } -- cgit v1.2.3-70-g09d2