summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--db/sc_config.txt71
-rw-r--r--src/map/clif.c5
-rw-r--r--src/map/clif.h1
-rw-r--r--src/map/status.c44
-rw-r--r--src/map/status.h17
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;
/**