diff options
-rw-r--r-- | Changelog-Trunk.txt | 4 | ||||
-rw-r--r-- | conf-tmpl/Changelog.txt | 5 | ||||
-rw-r--r-- | conf-tmpl/battle/skill.conf | 16 | ||||
-rw-r--r-- | src/map/script.c | 10 | ||||
-rw-r--r-- | src/map/skill.c | 26 | ||||
-rw-r--r-- | src/map/status.c | 15 |
6 files changed, 44 insertions, 32 deletions
diff --git a/Changelog-Trunk.txt b/Changelog-Trunk.txt index 1d3a68d73..e467f7129 100644 --- a/Changelog-Trunk.txt +++ b/Changelog-Trunk.txt @@ -4,6 +4,10 @@ AS OF SVN REV. 5091, WE ARE NOW USING TRUNK. ALL UNTESTED BUGFIXES/FEATURES GO IF YOU HAVE A WORKING AND TESTED BUGFIX PUT IT INTO STABLE AS WELL AS TRUNK.
2006/08/14
+ * Increased Run's walk speed bonus to 25->50% [Skotlex]
+ * Modified emergency_call setting to allow for more specific configuration
+ (woe/non-woe, gvg-grounds/non-gvg-grounds, disable from nowarpto maps), see
+ skill.conf for details. [Skotlex]
* Fixed script engine allowing scripts to set a player's zeny to negative
values. [Skotlex]
* Fixed setting hide_woe_damage making even "miss" attacks seem to connect.
diff --git a/conf-tmpl/Changelog.txt b/conf-tmpl/Changelog.txt index 5d25468cb..541b729f1 100644 --- a/conf-tmpl/Changelog.txt +++ b/conf-tmpl/Changelog.txt @@ -1,4 +1,9 @@ Date Added
+
+2006/08/14
+ * Modified emergency_call setting to allow for more specific configuration
+ (woe/non-woe, gvg-grounds/non-gvg-grounds, disable from nowarpto maps), see
+ skill.conf for details. [Skotlex]
2006/08/10
* Removed setting mob_ghostring_fix [Skotlex]
* Changed setting attack_attr_none to affect all neutral-element attacks.
diff --git a/conf-tmpl/battle/skill.conf b/conf-tmpl/battle/skill.conf index 565afc7fc..a5b2d4108 100644 --- a/conf-tmpl/battle/skill.conf +++ b/conf-tmpl/battle/skill.conf @@ -220,12 +220,16 @@ berserk_cancels_buffs: no max_heal: 9999
max_heal_lv: 11
-// Emergency Recall Guild Skill setting.
-// 0: Skill is disabled, can't be used anywhere.
-// 1: Skill fails when used on "nowarpto" maps
-// (note that by default all GVG maps are nowarpto)
-// 2: Skill is usable everywhere.
-emergency_call: 2
+// Emergency Recall Guild Skill setting (add as appropiate).
+// Note that for the skill to be usable at all,
+// you need at least one of 1/2 and 4/8
+// 1: Skill is usable outside of woe.
+// 2: Skill is usable during woe.
+// 4: Skill is usable outside of GvG grounds
+// 8: Skill is usable on GvG grounds
+//16: Disable skill from "nowarpto" maps
+// (note that by default all Castles have the nowarpto flag)
+emergency_call: 15
// Max Possible Level of Monster skills
// Note: If your MVPs are too tough, reduce it to 10.
diff --git a/src/map/script.c b/src/map/script.c index 377785fe4..542c82546 100644 --- a/src/map/script.c +++ b/src/map/script.c @@ -162,7 +162,7 @@ enum { }; enum { - MF_NOMEMO, + MF_NOMEMO, //0 MF_NOTELEPORT, MF_NOSAVE, MF_NOBRANCH, @@ -172,7 +172,7 @@ enum { MF_PVP_NOPARTY, MF_PVP_NOGUILD, MF_GVG, - MF_GVG_NOPARTY, + MF_GVG_NOPARTY, //10 MF_NOTRADE, MF_NOSKILL, MF_NOWARP, @@ -182,7 +182,7 @@ enum { MF_FOG, MF_SAKURA, MF_LEAVES, - MF_RAIN, + MF_RAIN, //20 MF_INDOORS, MF_NOGO, MF_CLOUDS, @@ -192,7 +192,7 @@ enum { MF_GVG_DUNGEON, MF_NIGHTENABLED, MF_NOBASEEXP, - MF_NOJOBEXP, + MF_NOJOBEXP, //30 MF_NOMOBLOOT, MF_NOMVPLOOT, MF_NORETURN, @@ -202,7 +202,7 @@ enum { MF_NOCOMMAND, MF_NODROP, MF_JEXP, - MF_BEXP, + MF_BEXP, //40 MF_NOVENDING, MF_LOADEVENT, MF_NOCHAT diff --git a/src/map/skill.c b/src/map/skill.c index 8367663ba..cd9e3af8d 100644 --- a/src/map/skill.c +++ b/src/map/skill.c @@ -925,9 +925,11 @@ int skillnotok (int skillid, struct map_session_data *sd) } break; case GD_EMERGENCYCALL: - if (!battle_config.emergency_call || - (map[sd->bl.m].flag.nowarpto && battle_config.emergency_call&1)) - { + if ( + !(battle_config.emergency_call&(agit_flag?2:1)) || + !(battle_config.emergency_call&(map_flag_gvg(sd->bl.m)?8:4)) || + (battle_config.emergency_call&16 && map[sd->bl.m].flag.nowarpto) + ) { clif_skill_fail(sd,skillid,0,0); return 1; } @@ -6898,7 +6900,7 @@ int skill_unit_onplace (struct skill_unit *src, struct block_list *bl, unsigned case UNT_HERMODE: //Needed to check when a dancer/bard leaves their ensemble area. if (sg->src_id==bl->id && - !(sc && sc->data[SC_SPIRIT].timer == -1 && sc->data[SC_SPIRIT].val2 != SL_BARDDANCER)) + !(sc && sc->data[SC_SPIRIT].timer != -1 && sc->data[SC_SPIRIT].val2 == SL_BARDDANCER)) return skillid; if (sc && sc->data[type].timer==-1) sc_start4(bl,type,100,sg->skill_lv,sg->val1,sg->val2,0,sg->limit); @@ -8286,22 +8288,16 @@ int skill_check_condition (struct map_session_data *sd, int skill, int lv, int t case GD_BATTLEORDER: case GD_REGENERATION: case GD_RESTORE: + //Emergency Recall is handled on skill_notok + if (skill != GD_EMERGENCYCALL && !agit_flag) { + clif_skill_fail(sd,skill,0,0); + return 0; + } case GD_EMERGENCYCALL: if (!sd->status.guild_id || !sd->state.gmaster_flag) return 0; if (lv <= 0) return 0; - - if (skill == GD_EMERGENCYCALL) { - if (!map_flag_gvg(sd->bl.m)) - { //if not allowed to warp to the map (castles are always allowed) - clif_skill_fail(sd,skill,0,0); - return 0; - } - } else if (!agit_flag) { - clif_skill_fail(sd,skill,0,0); - return 0; - } break; case GS_GLITTERING: diff --git a/src/map/status.c b/src/map/status.c index 83f4aa4aa..fa7de060e 100644 --- a/src/map/status.c +++ b/src/map/status.c @@ -308,7 +308,7 @@ void initChangeTables(void) { add_sc(PF_FOGWALL, SC_FOGWALL); set_sc(PF_SPIDERWEB, SC_SPIDERWEB, SI_BLANK, SCB_FLEE); add_sc(WE_BABY, SC_BABY); - set_sc(TK_RUN, SC_RUN, SI_RUN, SCB_SPEED); + set_sc(TK_RUN, SC_RUN, SI_RUN, SCB_SPEED|SCB_DSPD); set_sc(TK_RUN, SC_SPURT, SI_SPURT, SCB_STR); set_sc(TK_READYSTORM, SC_READYSTORM, SI_READYSTORM, SCB_NONE); set_sc(TK_READYDOWN, SC_READYDOWN, SI_READYDOWN, SCB_NONE); @@ -3420,12 +3420,12 @@ static unsigned short status_calc_speed(struct block_list *bl, struct status_cha //% increases (they don't stack, with the exception of Speedup1? @.@) if(sc->data[SC_SPEEDUP1].timer!=-1) speed -= speed * 50/100; - if(sc->data[SC_SPEEDUP0].timer!=-1) + if(sc->data[SC_RUN].timer!=-1) + speed -= speed * 50/100; + else if(sc->data[SC_SPEEDUP0].timer!=-1) speed -= speed * 25/100; else if(sc->data[SC_INCREASEAGI].timer!=-1) speed -= speed * 25/100; - else if(sc->data[SC_RUN].timer!=-1) - speed -= speed * 25/100; else if(sc->data[SC_FUSION].timer != -1) speed -= speed * 25/100; else if(sc->data[SC_CARTBOOST].timer!=-1) @@ -3584,8 +3584,11 @@ static unsigned short status_calc_dmotion(struct block_list *bl, struct status_c if(!sc || !sc->count || map_flag_gvg(bl->m)) return cap_value(dmotion,0,USHRT_MAX); - if (sc->data[SC_ENDURE].timer!=-1 || - sc->data[SC_CONCENTRATION].timer!=-1) + if (sc->data[SC_ENDURE].timer!=-1) + return 0; + if (sc->data[SC_CONCENTRATION].timer!=-1) + return 0; + if(sc->data[SC_RUN].timer!=-1) return 0; return cap_value(dmotion,0,USHRT_MAX); |