diff options
-rw-r--r-- | db/sc_config.txt | 71 | ||||
-rw-r--r-- | src/map/clif.c | 5 | ||||
-rw-r--r-- | src/map/clif.h | 1 | ||||
-rw-r--r-- | src/map/status.c | 44 | ||||
-rw-r--r-- | src/map/status.h | 17 |
5 files changed, 54 insertions, 84 deletions
diff --git a/db/sc_config.txt b/db/sc_config.txt index ac65a6677..104f81102 100644 --- a/db/sc_config.txt +++ b/db/sc_config.txt @@ -11,6 +11,7 @@ // 32 - SC considered as debuff and be removed by Gospel and etc. // 64 - SC cannot be reset when MADO Gear is taken off. // 128 - SC cannot be reset by 'sc_end SC_ALL' and status change clear. +// 256 - SC can be visible for all players // Example: // SC_ENDURE, 21 //SC_ENDURE: cannot be removed by death and dispell and cosidered as buff. (16 + 4 + 1 = 21) @@ -249,16 +250,16 @@ SC_ABUNDANCE, 20 //SC_REUSE_REFRESH, 29 //SC_REUSE_STORMBLAST, 29 SC_EPICLESIS, 29 -SC_ORATIO, 20 +SC_ORATIO, 276 SC_LAUDAAGNUS, 20 SC_LAUDARAMUS, 20 SC_CLOAKINGEXCEED, 30 -SC_HALLUCINATIONWALK, 28 +SC_HALLUCINATIONWALK, 284 SC_HALLUCINATIONWALK_POSTDELAY, 31 SC_RENOVATIO, 20 SC_WEAPONBLOCKING, 28 //SC_WEAPONBLOCKING_POSTDELAY, 31 -SC_ROLLINGCUTTER, 30 +SC_ROLLINGCUTTER, 286 SC_EXPIATIO, 20 SC_POISONINGWEAPON, 28 SC_TOXIN, 20 @@ -269,7 +270,7 @@ SC_DEATHHURT, 20 SC_PYREXIA, 20 SC_OBLIVIONCURSE, 20 SC_LEECHESEND, 20 -SC_DUPLELIGHT, 20 +SC_DUPLELIGHT, 276 SC_FEARBREEZE, 28 SC_ELECTRICSHOCKER, 30 SC_MARSHOFABYSS, 20 @@ -277,14 +278,14 @@ SC_RECOGNIZEDSPELL, 20 //SC_WUGRIDER, 29 SC_WUGDASH, 30 SC_WUGBITE, 30 -SC_CAMOUFLAGE, 30 +SC_CAMOUFLAGE, 286 SC_ACCELERATION, 28 SC_HOVERING, 28 -SC_SUMMON1, 24 -SC_SUMMON2, 24 -SC_SUMMON3, 24 -SC_SUMMON4, 24 -SC_SUMMON5, 24 +SC_SUMMON1, 280 +SC_SUMMON2, 280 +SC_SUMMON3, 280 +SC_SUMMON4, 280 +SC_SUMMON5, 280 SC_MVPCARD_TAOGUNKA, 60 SC_MVPCARD_MISTRESS, 60 SC_MVPCARD_ORCHERO, 60 @@ -309,7 +310,7 @@ SC_INT_SCROLL, 61 SC_FORCEOFVANGUARD, 28 SC_BUCHEDENOEL, 60 SC__AUTOSHADOWSPELL, 16 -SC__SHADOWFORM, 30 +SC__SHADOWFORM, 286 SC_RAID, 28 SC_SHIELDSPELL_DEF, 16 SC_SHIELDSPELL_MDEF, 16 @@ -320,7 +321,7 @@ SC_ADORAMUS, 16 SC_PRESTIGE, 16 SC__INVISIBILITY, 30 SC__DEADLYINFECT, 20 -SC_BANDING, 28 +SC_BANDING, 284 SC_BANDING_DEFENCE, 28 SC_EARTHDRIVE, 20 SC_INSPIRATION, 28 @@ -332,8 +333,8 @@ SC__LAZINESS, 16 SC_LIGHTNINGWALK, 28 SC_ACARAJE, 24 SC__UNLUCKY, 16 -SC_CURSEDCIRCLE_ATKER, 28 -SC_CURSEDCIRCLE_TARGET, 28 +SC_CURSEDCIRCLE_ATKER, 284 +SC_CURSEDCIRCLE_TARGET, 284 SC__WEAKNESS, 16 SC_CRESCENTELBOW, 28 //SC_NOEQUIPACCESSARY, 30 @@ -347,7 +348,7 @@ SC_PROPERTYWALK, 18 SC_SPELLFIST, 16 SC_NETHERWORLD, 16 SC_SIREN, 16 -SC_DEEP_SLEEP, 34 +SC_DEEP_SLEEP, 290 SC_SIRCLEOFNATURE, 16 SC_GLOOMYDAY, 16 SC_GLOOMYDAY_SK, 16 @@ -365,8 +366,8 @@ SC_MELODYOFSINK, 28 SC_BEYOND_OF_WARCRY, 28 SC_UNLIMITED_HUMMING_VOICE, 28 SC_WARMER, 2 -SC_VENOMIMPRESS, 4 -SC_FROSTMISTY, 32 +SC_VENOMIMPRESS, 260 +SC_FROSTMISTY, 288 //SC_ASSUMPTIO2, 16 //SC_GN_TRAINING_SWORD, 31 //SC_GN_REMODELING_CART, 31 @@ -402,7 +403,7 @@ SC_LIGHT_OF_REGENE, 1 SC_MAGIC_CANDY, 92 //SC_ALL_RIDING_REUSE_LIMIT, 1 //SC_HANDICAPSTATE_DEEP_SLEEP, 80 -SC_MONSTER_TRANSFORM, 12 +SC_MONSTER_TRANSFORM, 268 SC_MTF_ASPD, 12 SC_MTF_RANGEATK, 12 SC_MTF_MATK, 12 @@ -471,23 +472,25 @@ SC_DONTFORGETME, 79 SC_FORTUNE, 79 SC_SERVICEFORYOU, 79 SC_INCHIT, 77 -SC_PUSH_CART, 205 +SC_PUSH_CART, 461 +SC_COLD, 256 +SC_BLOOD_SUCKER, 256 // Costumes -SC_MOONSTAR, 207 -SC_SUPER_STAR, 207 -SC_STRANGELIGHTS, 207 -SC_DECORATION_OF_MUSIC, 207 -SC_LJOSALFAR, 207 -SC_MERMAID_LONGING, 207 -SC_HAT_EFFECT, 207 -SC_FLOWERSMOKE, 207 -SC_FSTONE, 207 -SC_HAPPINESS_STAR, 207 -SC_MAPLE_FALLS, 207 -SC_TIME_ACCESSORY, 207 -SC_MAGICAL_FEATHER, 207 -SC_BLOSSOM_FLUTTERING, 207 +SC_MOONSTAR, 463 +SC_SUPER_STAR, 463 +SC_STRANGELIGHTS, 463 +SC_DECORATION_OF_MUSIC, 463 +SC_LJOSALFAR, 463 +SC_MERMAID_LONGING, 463 +SC_HAT_EFFECT, 463 +SC_FLOWERSMOKE, 463 +SC_FSTONE, 463 +SC_HAPPINESS_STAR, 463 +SC_MAPLE_FALLS, 463 +SC_TIME_ACCESSORY, 463 +SC_MAGICAL_FEATHER, 463 +SC_BLOSSOM_FLUTTERING, 463 // Cant Clear -SC_ALL_RIDING, 141 +SC_ALL_RIDING, 397 diff --git a/src/map/clif.c b/src/map/clif.c index 0f6e985fd..9619a7201 100644 --- a/src/map/clif.c +++ b/src/map/clif.c @@ -1455,7 +1455,7 @@ bool clif_spawn(struct block_list *bl) if (sd->bg_id != 0 && map->list[sd->bl.m].flag.battleground) clif->sendbgemblem_area(sd); for (i = 0; i < sd->sc_display_count; i++) { - clif->sc_load(&sd->bl, sd->bl.id,AREA,status->dbs->IconChangeTable[sd->sc_display[i]->type],sd->sc_display[i]->val1,sd->sc_display[i]->val2,sd->sc_display[i]->val3); + clif->sc_continue(&sd->bl, sd->bl.id,AREA,status->dbs->IconChangeTable[sd->sc_display[i]->type],sd->sc_display[i]->val1,sd->sc_display[i]->val2,sd->sc_display[i]->val3); } if (sd->charm_type != CHARM_TYPE_NONE && sd->charm_count > 0) clif->spiritcharm(sd); @@ -4186,7 +4186,7 @@ void clif_getareachar_pc(struct map_session_data* sd,struct map_session_data* ds clif->charm_single(sd->fd, dstsd); for( i = 0; i < dstsd->sc_display_count; i++ ) { - clif->sc_load(&sd->bl,dstsd->bl.id,SELF,status->dbs->IconChangeTable[dstsd->sc_display[i]->type],dstsd->sc_display[i]->val1,dstsd->sc_display[i]->val2,dstsd->sc_display[i]->val3); + clif->sc_continue(&sd->bl,dstsd->bl.id,SELF,status->dbs->IconChangeTable[dstsd->sc_display[i]->type],dstsd->sc_display[i]->val1,dstsd->sc_display[i]->val2,dstsd->sc_display[i]->val3); } if( (sd->status.party_id && dstsd->status.party_id == sd->status.party_id) || //Party-mate, or hpdisp setting. (sd->bg_id && sd->bg_id == dstsd->bg_id) || //BattleGround @@ -19319,6 +19319,7 @@ void clif_defaults(void) { clif->autoshadowspell_list = clif_autoshadowspell_list; clif->skill_itemlistwindow = clif_skill_itemlistwindow; clif->sc_load = clif_status_change2; + clif->sc_continue = clif_status_change2; clif->sc_end = clif_status_change_end; clif->initialstatus = clif_initialstatus; clif->cooldown_list = clif_skill_cooldown_list; diff --git a/src/map/clif.h b/src/map/clif.h index df8b8f59c..2e324d28c 100644 --- a/src/map/clif.h +++ b/src/map/clif.h @@ -791,6 +791,7 @@ struct clif_interface { int (*autoshadowspell_list) (struct map_session_data *sd); int (*skill_itemlistwindow) ( struct map_session_data *sd, uint16 skill_id, uint16 skill_lv ); void (*sc_load) (struct block_list *bl, int tid, enum send_target target, int type, int val1, int val2, int val3); + void (*sc_continue) (struct block_list *bl, int tid, enum send_target target, int type, int val1, int val2, int val3); void (*sc_end) (struct block_list *bl, int tid, enum send_target target, int type); void (*initialstatus) (struct map_session_data *sd); void (*cooldown_list) (int fd, struct skill_cd* cd); diff --git a/src/map/status.c b/src/map/status.c index 39915705d..73b5a5123 100644 --- a/src/map/status.c +++ b/src/map/status.c @@ -1170,46 +1170,6 @@ void initChangeTables(void) { status->dbs->ChangeFlagTable[SC_MAGICAL_FEATHER] |= SCB_NONE; status->dbs->ChangeFlagTable[SC_BLOSSOM_FLUTTERING] |= SCB_NONE; - /* status->dbs->DisplayType Table [Ind/Hercules] */ - status->dbs->DisplayType[SC_ALL_RIDING] = true; - status->dbs->DisplayType[SC_PUSH_CART] = true; - status->dbs->DisplayType[SC_SUMMON1] = true; - status->dbs->DisplayType[SC_SUMMON2] = true; - status->dbs->DisplayType[SC_SUMMON3] = true; - status->dbs->DisplayType[SC_SUMMON4] = true; - status->dbs->DisplayType[SC_SUMMON5] = true; - status->dbs->DisplayType[SC_CAMOUFLAGE] = true; - status->dbs->DisplayType[SC_DUPLELIGHT] = true; - status->dbs->DisplayType[SC_ORATIO] = true; - status->dbs->DisplayType[SC_FROSTMISTY] = true; - status->dbs->DisplayType[SC_VENOMIMPRESS] = true; - status->dbs->DisplayType[SC_HALLUCINATIONWALK] = true; - status->dbs->DisplayType[SC_ROLLINGCUTTER] = true; - status->dbs->DisplayType[SC_BANDING] = true; - status->dbs->DisplayType[SC_COLD] = true; - status->dbs->DisplayType[SC_DEEP_SLEEP] = true; - status->dbs->DisplayType[SC_CURSEDCIRCLE_ATKER] = true; - status->dbs->DisplayType[SC_CURSEDCIRCLE_TARGET] = true; - status->dbs->DisplayType[SC_BLOOD_SUCKER] = true; - status->dbs->DisplayType[SC__SHADOWFORM] = true; - status->dbs->DisplayType[SC_MONSTER_TRANSFORM] = true; - - // Costumes - status->dbs->DisplayType[SC_MOONSTAR] = true; - status->dbs->DisplayType[SC_SUPER_STAR] = true; - status->dbs->DisplayType[SC_STRANGELIGHTS] = true; - status->dbs->DisplayType[SC_DECORATION_OF_MUSIC] = true; - status->dbs->DisplayType[SC_LJOSALFAR] = true; - status->dbs->DisplayType[SC_MERMAID_LONGING] = true; - status->dbs->DisplayType[SC_HAT_EFFECT] = true; - status->dbs->DisplayType[SC_FLOWERSMOKE] = true; - status->dbs->DisplayType[SC_FSTONE] = true; - status->dbs->DisplayType[SC_HAPPINESS_STAR] = true; - status->dbs->DisplayType[SC_MAPLE_FALLS] = true; - status->dbs->DisplayType[SC_TIME_ACCESSORY] = true; - status->dbs->DisplayType[SC_MAGICAL_FEATHER] = true; - status->dbs->DisplayType[SC_BLOSSOM_FLUTTERING] = true; - if( !battle_config.display_hallucination ) //Disable Hallucination. status->dbs->IconChangeTable[SC_ILLUSION] = SI_BLANK; #undef add_sc @@ -13010,6 +12970,10 @@ bool status_readdb_scconfig(char* fields[], int columns, int current) { } status->dbs->sc_conf[val] = (int)strtol(fields[1], NULL, 0); + if (status->dbs->sc_conf[val] & SC_VISIBLE) + { + status->dbs->DisplayType[val] = true; + } return true; } diff --git a/src/map/status.h b/src/map/status.h index dbb507bd1..e4a326e88 100644 --- a/src/map/status.h +++ b/src/map/status.h @@ -74,14 +74,15 @@ enum refine_type { * @see db/sc_config.txt for more information **/ typedef enum sc_conf_type { - SC_NO_REM_DEATH = 0x01, - SC_NO_SAVE = 0x02, - SC_NO_DISPELL = 0x04, - SC_NO_CLEARANCE = 0x08, - SC_BUFF = 0x10, - SC_DEBUFF = 0x20, - SC_MADO_NO_RESET = 0x40, - SC_NO_CLEAR = 0x80, + SC_NO_REM_DEATH = 0x001, + SC_NO_SAVE = 0x002, + SC_NO_DISPELL = 0x004, + SC_NO_CLEARANCE = 0x008, + SC_BUFF = 0x010, + SC_DEBUFF = 0x020, + SC_MADO_NO_RESET = 0x040, + SC_NO_CLEAR = 0x080, + SC_VISIBLE = 0x100 } sc_conf_type; /** |