diff options
author | shennetsind <shennetsind@54d463be-8e91-2dee-dedb-b68131a5f0ec> | 2012-02-17 15:33:13 +0000 |
---|---|---|
committer | shennetsind <shennetsind@54d463be-8e91-2dee-dedb-b68131a5f0ec> | 2012-02-17 15:33:13 +0000 |
commit | 5cc9f30cbe8c57a97e58a5a3b5387622e4304873 (patch) | |
tree | fa7590892983540d46245781a83d9fb2a08ecaa4 /src/map/clif.c | |
parent | c021f63e10a7dca24119e436e2450e0bbb2266a3 (diff) | |
download | hercules-5cc9f30cbe8c57a97e58a5a3b5387622e4304873.tar.gz hercules-5cc9f30cbe8c57a97e58a5a3b5387622e4304873.tar.bz2 hercules-5cc9f30cbe8c57a97e58a5a3b5387622e4304873.tar.xz hercules-5cc9f30cbe8c57a97e58a5a3b5387622e4304873.zip |
Initial support for Shadow Chaser and a few adjustments here and there.
- credits to 3ceam for the base
- should you step by any bugs let us know, http://rathena.org/board/tracker
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@15589 54d463be-8e91-2dee-dedb-b68131a5f0ec
Diffstat (limited to 'src/map/clif.c')
-rw-r--r-- | src/map/clif.c | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/src/map/clif.c b/src/map/clif.c index 8203ab7f5..fd0f856e8 100644 --- a/src/map/clif.c +++ b/src/map/clif.c @@ -15722,6 +15722,38 @@ int clif_poison_list(struct map_session_data *sd, int skill_lv) { return 1; } +int clif_autoshadowspell_list(struct map_session_data *sd) { + int fd, i, c; + nullpo_ret(sd); + fd = sd->fd; + if( !fd ) return 0; + + if( sd->menuskill_id == SC_AUTOSHADOWSPELL ) + return 0; + + WFIFOHEAD(fd, 2 * 6 + 4); + WFIFOW(fd,0) = 0x442; + for( i = 0, c = 0; i < MAX_SKILL; i++ ) + if( sd->status.skill[i].flag == 13 && sd->status.skill[i].id > 0 && + sd->status.skill[i].id < GS_GLITTERING && skill_get_type(sd->status.skill[i].id) == BF_MAGIC ) + { // Can't auto cast both Extended class and 3rd class skills. + WFIFOW(fd,8+c*2) = sd->status.skill[i].id; + c++; + } + + if( c > 0 ) { + WFIFOW(fd,2) = 8 + c * 2; + WFIFOL(fd,4) = c; + WFIFOSET(fd,WFIFOW(fd,2)); + sd->menuskill_id = SC_AUTOSHADOWSPELL; + sd->menuskill_val = c; + } else { + status_change_end(&sd->bl,SC_STOP,-1); + clif_skill_fail(sd,SC_AUTOSHADOWSPELL,0x15,0); + } + + return 1; +} /** * Sends a new status without a tick (currently used by the new mounts) **/ |