From 9e9b198e6d0b810fa52f888b32653b5370fe65b3 Mon Sep 17 00:00:00 2001 From: skotlex Date: Fri, 8 Sep 2006 17:56:10 +0000 Subject: - Removed sg_miracle_skill_duration, replaced it with sg_miracle_skill_min_duration and sg_miracle_skill_max_duration, to specify a range for the duration of the skill. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@8679 54d463be-8e91-2dee-dedb-b68131a5f0ec --- src/map/battle.c | 17 +++++++++++++++-- src/map/battle.h | 3 ++- src/map/unit.c | 4 +++- 3 files changed, 20 insertions(+), 4 deletions(-) (limited to 'src/map') 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) && -- cgit v1.2.3-70-g09d2