From 829ff8eca91b14bb6f028a6a0bcd17ee8ab79eeb Mon Sep 17 00:00:00 2001 From: L0ne_W0lf Date: Mon, 28 Jun 2010 16:54:21 +0000 Subject: [PATCH] * Updated specialeffect2 to accept player names. (follow up to r14353) * Bascilica now allows boss-flagged monsters to knock you back as per official. git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@14357 54d463be-8e91-2dee-dedb-b68131a5f0ec --- Changelog-Trunk.txt | 5 ++++- conf/battle/battle.conf | 2 +- doc/script_commands.txt | 9 +++++++-- src/map/script.c | 3 +++ src/map/skill.c | 4 ++-- 5 files changed, 17 insertions(+), 6 deletions(-) diff --git a/Changelog-Trunk.txt b/Changelog-Trunk.txt index 9b3b2cb9d9..b252ebf7a5 100644 --- a/Changelog-Trunk.txt +++ b/Changelog-Trunk.txt @@ -3,9 +3,12 @@ Date Added AS OF SVN REV. 5091, WE ARE NOW USING TRUNK. ALL UNTESTED BUGFIXES/FEATURES GO INTO TRUNK. IF YOU HAVE A WORKING AND TESTED BUGFIX PUT IT INTO STABLE AS WELL AS TRUNK. +2010/06/27 + * Rev. 14357 Updated specialeffect2 to accept player names. (follow up to r14353) [L0ne_W0lf] + * Bascilica now allows boss-flagged monsters to knock you back as per official. 2010/06/27 * Rev. 14356 Follow up to r13895, added a battle.conf setting to control if ranges should be checked with autocasts. [L0ne_W0lf] - 'autospell_check_range', by default is set to no, as this is official behavior. This does not affect autospellwhenhit. + 'autospell_check_range', by default is set to no, as this is official behavior. This also affects autospellwhenhit. * Sonic Blow autocast now stops players attacking when it triggers. It's possible there is more depth to this on official servers, and should 'stop' attacking on regular casts as well. It appears so far that this is the only skill that behaves this way. diff --git a/conf/battle/battle.conf b/conf/battle/battle.conf index 044acac170..1ee207ff24 100644 --- a/conf/battle/battle.conf +++ b/conf/battle/battle.conf @@ -169,5 +169,5 @@ arrow_decrement: 1 // Should the item script bonus 'Autospell' check for range/obstacles before casting? // Official behavior is "no", setting this to "yes" will make skills use their defined // range. For example, Sonic Blow requires a 2 cell distance before autocasting is allowed. -// This setting does not affect autospellwhenhit. +// This setting also affects autospellwhenhit. autospell_check_range: no diff --git a/doc/script_commands.txt b/doc/script_commands.txt index 12afe72214..cac34320fc 100644 --- a/doc/script_commands.txt +++ b/doc/script_commands.txt @@ -4561,7 +4561,7 @@ character. --------------------------------------- -*specialeffect {,}{,""}; +*specialeffect {,}{,""}; This command will display special effect with the given number, centered on the specified NPCs coordinates, if any. For a full list of special effect numbers @@ -4584,11 +4584,16 @@ will retain the default behavior of the command. --------------------------------------- -*specialeffect2 {,}; +*specialeffect2 {,}{,""}; This command behaves identically to the 'specialeffect', but the effect will be centered on the invoking character's sprite. + parameter will display on another Player than the +one currently attached to the script. Like with specialeffect, when specifying +a player, must be supplied, specifying AREA will retain the default +behavior of the command. + --------------------------------------- *statusup ; diff --git a/src/map/script.c b/src/map/script.c index 51d5f83765..3a08cfd909 100644 --- a/src/map/script.c +++ b/src/map/script.c @@ -11017,6 +11017,9 @@ BUILDIN_FUNC(specialeffect2) if(sd==NULL) return 0; + if( script_hasdata(st,4) ) + sd = map_nick2sd(script_getstr(st,4)); + clif_specialeffect(&sd->bl, type, target); return 0; diff --git a/src/map/skill.c b/src/map/skill.c index 3e63a9211e..6b045c43e6 100644 --- a/src/map/skill.c +++ b/src/map/skill.c @@ -1493,8 +1493,8 @@ int skill_blown(struct block_list* src, struct block_list* target, int count, in case BL_PC: { struct map_session_data *sd = BL_CAST(BL_PC, target); - if( sd->sc.data[SC_BASILICA] && sd->sc.data[SC_BASILICA]->val4 == sd->bl.id ) - return 0; // Basilica caster can't be knocked-back + if( sd->sc.data[SC_BASILICA] && sd->sc.data[SC_BASILICA]->val4 == sd->bl.id && !is_boss(src)) + return 0; // Basilica caster can't be knocked-back by normal monsters. if( src != target && sd->special_state.no_knockback ) return 0; }