diff options
author | malufett <malufett.eat.my.binaries@gmail.com> | 2013-06-17 21:27:58 +0800 |
---|---|---|
committer | malufett <malufett.eat.my.binaries@gmail.com> | 2013-06-17 21:27:58 +0800 |
commit | 6f4b110965db43f49507e9492d29c0745d145760 (patch) | |
tree | 89ec484a22e9f5de2c83c1a0016db92367c12690 | |
parent | bfa7971e86fd7dc42b5668fb5ba1469e8a62c22f (diff) | |
download | hercules-6f4b110965db43f49507e9492d29c0745d145760.tar.gz hercules-6f4b110965db43f49507e9492d29c0745d145760.tar.bz2 hercules-6f4b110965db43f49507e9492d29c0745d145760.tar.xz hercules-6f4b110965db43f49507e9492d29c0745d145760.zip |
Fixed Bug#7247
-while vending you can now change equipments.
Updated sc_config.txt notes.
Signed-off-by: malufett <malufett.eat.my.binaries@gmail.com>
-rw-r--r-- | db/sc_config.txt | 16 | ||||
-rw-r--r-- | src/map/clif.c | 4 | ||||
-rw-r--r-- | src/map/pc.h | 2 |
3 files changed, 12 insertions, 10 deletions
diff --git a/db/sc_config.txt b/db/sc_config.txt index b0d0e5ba4..06de0bdf6 100644 --- a/db/sc_config.txt +++ b/db/sc_config.txt @@ -3,13 +3,15 @@ // Structure of Database: // SC_NAME, flag // -// flag 0x1 - SC cannot be removed by death. -// 0x2 - SC cannot be saved. -// 0x4 - SC cannot be reset by dispell. -// 0x8 - SC cannot be reset by clearance. -// 0x10 - SC considered as buff and be removed by Hermode and etc. -// 0x20 - SC considered as debuff and be removed by Gospel and etc. -// 0x40 - SC cannot be reset when MADO Gear is taken off. +// flag 1 - SC cannot be removed by death. +// 2 - SC cannot be saved. +// 4 - SC cannot be reset by dispell. +// 8 - SC cannot be reset by clearance. +// 16 - SC considered as buff and be removed by Hermode and etc. +// 32 - SC considered as debuff and be removed by Gospel and etc. +// 64 - SC cannot be reset when MADO Gear is taken off. +//Example: +//SC_ENDURE, 21 //SC_ENDURE: cannot be removed by death and dispell and cosidered as buff. (16 + 4 + 1 = 21) SC_PROVOKE, 32 SC_ENDURE, 21 diff --git a/src/map/clif.c b/src/map/clif.c index 9fae03ef0..73d4b6666 100644 --- a/src/map/clif.c +++ b/src/map/clif.c @@ -10573,7 +10573,7 @@ void clif_parse_DropItem(int fd, struct map_session_data *sd) if (pc_isdead(sd)) break; - if ( pc_cant_act2(sd) ) + if ( pc_cant_act2(sd) || sd->state.vending ) break; if (sd->sc.count && ( @@ -10795,7 +10795,7 @@ void clif_parse_NpcClicked(int fd,struct map_session_data *sd) #endif return; } - if ( pc_cant_act2(sd) || !(bl = iMap->id2bl(RFIFOL(fd,2))) ) + if ( pc_cant_act2(sd) || !(bl = iMap->id2bl(RFIFOL(fd,2))) || sd->state.vending ) return; switch (bl->type) { diff --git a/src/map/pc.h b/src/map/pc.h index 5c585af1c..43d5d40c7 100644 --- a/src/map/pc.h +++ b/src/map/pc.h @@ -603,7 +603,7 @@ enum equip_pos { #define pc_cant_act(sd) ( (sd)->npc_id || (sd)->state.vending || (sd)->state.buyingstore || (sd)->chatID || ((sd)->sc.opt1 && (sd)->sc.opt1 != OPT1_BURNING) || (sd)->state.trading || (sd)->state.storage_flag || (sd)->state.prevend ) /* equals pc_cant_act except it doesn't check for chat rooms */ -#define pc_cant_act2(sd) ( (sd)->npc_id || (sd)->state.vending || (sd)->state.buyingstore || ((sd)->sc.opt1 && (sd)->sc.opt1 != OPT1_BURNING) || (sd)->state.trading || (sd)->state.storage_flag || (sd)->state.prevend ) +#define pc_cant_act2(sd) ( (sd)->npc_id || (sd)->state.buyingstore || ((sd)->sc.opt1 && (sd)->sc.opt1 != OPT1_BURNING) || (sd)->state.trading || (sd)->state.storage_flag || (sd)->state.prevend ) #define pc_setdir(sd,b,h) ( (sd)->ud.dir = (b) ,(sd)->head_dir = (h) ) #define pc_setchatid(sd,n) ( (sd)->chatID = n ) |