summaryrefslogtreecommitdiff
path: root/src/map
diff options
context:
space:
mode:
Diffstat (limited to 'src/map')
-rw-r--r--src/map/battle.c17
-rw-r--r--src/map/battle.h3
-rw-r--r--src/map/unit.c4
3 files changed, 20 insertions, 4 deletions
diff --git a/src/map/battle.c b/src/map/battle.c
index ec5cbad57..2f254bc30 100644
--- a/src/map/battle.c
+++ b/src/map/battle.c
@@ -3806,7 +3806,8 @@ static const struct battle_data_int {
{ "night_duration", &battle_config.night_duration }, // added by [Yor]
{ "max_heal", &battle_config.max_heal },
{ "mob_remove_delay", &battle_config.mob_remove_delay },
- { "sg_miracle_skill_duration", &battle_config.sg_miracle_skill_duration },
+ { "sg_miracle_skill_min_duration", &battle_config.sg_miracle_skill_duration_min },
+ { "sg_miracle_skill_max_duration", &battle_config.sg_miracle_skill_duration_max },
{ "hvan_explosion_intimate", &battle_config.hvan_explosion_intimate }, //[orn]
};
@@ -4195,7 +4196,8 @@ void battle_set_defaults() {
battle_config.mob_max_sc_def = 5000;
battle_config.sg_miracle_skill_ratio=1;
battle_config.sg_angel_skill_ratio=1;
- battle_config.sg_miracle_skill_duration=600000;
+ battle_config.sg_miracle_skill_duration_min=3000000;
+ battle_config.sg_miracle_skill_duration_max=9000000;
battle_config.autospell_stacking = 0;
battle_config.override_mob_names = 0;
battle_config.min_chat_delay = 0;
@@ -4371,6 +4373,17 @@ void battle_validate_conf() {
if (battle_config.sg_miracle_skill_ratio > 10000)
battle_config.sg_miracle_skill_ratio = 10000;
+
+ if (battle_config.sg_miracle_skill_duration_min < 1000)
+ battle_config.sg_miracle_skill_duration_min = 1000;
+
+ //Store duration variation in the max setting
+ battle_config.sg_miracle_skill_duration_max -=
+ battle_config.sg_miracle_skill_duration_min;
+
+ if (battle_config.sg_miracle_skill_duration_max < 2000)
+ battle_config.sg_miracle_skill_duration_max = 2000;
+
if (battle_config.skill_steal_max_tries > UCHAR_MAX)
battle_config.skill_steal_max_tries = UCHAR_MAX;
diff --git a/src/map/battle.h b/src/map/battle.h
index 56ee63cce..2d851176a 100644
--- a/src/map/battle.h
+++ b/src/map/battle.h
@@ -434,7 +434,8 @@ extern struct Battle_Config {
unsigned short sg_angel_skill_ratio;
unsigned short sg_miracle_skill_ratio;
- int sg_miracle_skill_duration;
+ int sg_miracle_skill_duration_min;
+ int sg_miracle_skill_duration_max;
unsigned short autospell_stacking; //Enables autospell cards to stack. [Skotlex]
unsigned short override_mob_names; //Enables overriding spawn mob names with the mob_db names. [Skotlex]
unsigned short min_chat_delay; //Minimum time between client messages. [Skotlex]
diff --git a/src/map/unit.c b/src/map/unit.c
index 2db6108aa..cfa7be2da 100644
--- a/src/map/unit.c
+++ b/src/map/unit.c
@@ -190,7 +190,9 @@ static int unit_walktoxy_timer(int tid,unsigned int tick,int id,int data)
rand()%10000 < battle_config.sg_miracle_skill_ratio
) { //SG_MIRACLE [Komurka]
clif_displaymessage(sd->fd,"[Miracle of the Sun, Moon and Stars]");
- sc_start(&sd->bl,SC_MIRACLE,100,1,battle_config.sg_miracle_skill_duration);
+ sc_start(&sd->bl,SC_MIRACLE,100,1,
+ battle_config.sg_miracle_skill_duration_min+
+ rand()%battle_config.sg_miracle_skill_duration_max);
}
} else if (md) {
if(battle_config.mob_warp&1 && map_getcell(bl->m,x,y,CELL_CHKNPC) &&