diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/map/battle.c | 17 | ||||
-rw-r--r-- | src/map/battle.h | 3 | ||||
-rw-r--r-- | src/map/unit.c | 4 |
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) && |