diff --git a/conf/map/battle/battle.conf b/conf/map/battle/battle.conf index d08e2b561db..f355c1b41b7 100644 --- a/conf/map/battle/battle.conf +++ b/conf/map/battle/battle.conf @@ -178,3 +178,7 @@ knockback_left: true // Should the target be able of dodging damage by snapping away to the edge of the screen? // Official behavior is false snap_dodge: false + +// Should Venom Dust give experience based on the amount of damage caused by its poison? +// Official behavior is false +venom_dust_exp: false diff --git a/src/map/battle.c b/src/map/battle.c index 1f01e0889a8..4cdfdd38800 100644 --- a/src/map/battle.c +++ b/src/map/battle.c @@ -7853,6 +7853,7 @@ static const struct config_data_old battle_data[] = { { "dynamic_npc_range", &battle_config.dynamic_npc_range, 0, 0, INT_MAX, }, { "features/goldpc/enable", &battle_config.feature_goldpc_enable, 0, 0, 1, }, { "features/goldpc/default_mode", &battle_config.feature_goldpc_default_mode, 1, 0, INT_MAX, }, + { "venom_dust_exp", &battle_config.venom_dust_exp, 0, 0, 1, }, }; static bool battle_set_value_sub(int index, int value) diff --git a/src/map/battle.h b/src/map/battle.h index a4260963df5..5f5aba80c60 100644 --- a/src/map/battle.h +++ b/src/map/battle.h @@ -648,6 +648,8 @@ struct Battle_Config { int feature_goldpc_enable; int feature_goldpc_default_mode; + + int venom_dust_exp; // Enable exp given by venom dust }; /* criteria for battle_config.idletime_criteria */ diff --git a/src/map/skill.c b/src/map/skill.c index 4d3bb0e176a..ed4854467a6 100644 --- a/src/map/skill.c +++ b/src/map/skill.c @@ -14157,8 +14157,8 @@ static int skill_unit_onplace_timer(struct skill_unit *src, struct block_list *b break; case UNT_VENOMDUST: - if(tsc && !tsc->data[type]) - status->change_start(ss, bl, type, 10000, sg->skill_lv, sg->group_id, 0, 0, skill->get_time2(sg->skill_id, sg->skill_lv), SCFLAG_NONE, skill_id); + if (tsc != NULL && tsc->data[type] == NULL) + status->change_start(ss, bl, type, 10000, sg->skill_lv, battle_config.venom_dust_exp != 0 ? sg->src_id : sg->group_id, 0, 0, skill->get_time2(sg->skill_id, sg->skill_lv), SCFLAG_NONE, skill_id); break; case UNT_MAGENTATRAP: