diff options
-rw-r--r-- | Changelog-Trunk.txt | 2 | ||||
-rw-r--r-- | src/char/char.c | 5 | ||||
-rw-r--r-- | src/char_sql/char.c | 4 | ||||
-rw-r--r-- | src/map/skill.c | 15 |
4 files changed, 20 insertions, 6 deletions
diff --git a/Changelog-Trunk.txt b/Changelog-Trunk.txt index 2df173c44..7ebadd81d 100644 --- a/Changelog-Trunk.txt +++ b/Changelog-Trunk.txt @@ -4,6 +4,8 @@ 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. 2007/01/16 + * Fixed the next invoked skill after AbraCadabra not having requirements + even when it is a different skill than the one chosen by AbraCadabra. * Implemented Intravision as it should be. Thanks to HelloKitty2 for the captured packets. * Some cleaning on the mob_ai to enable mobs to run away from their current diff --git a/src/char/char.c b/src/char/char.c index a7a199f12..f14a320ba 100644 --- a/src/char/char.c +++ b/src/char/char.c @@ -1739,9 +1739,11 @@ int mmo_char_send006b(int fd, struct char_session_data *sd) { WFIFOB(fd,j+101) = (p->int_ > UCHAR_MAX) ? UCHAR_MAX : p->int_; WFIFOB(fd,j+102) = (p->dex > UCHAR_MAX) ? UCHAR_MAX : p->dex; WFIFOB(fd,j+103) = (p->luk > UCHAR_MAX) ? UCHAR_MAX : p->luk; - WFIFOW(fd,j+104) = p->char_num; #if PACKETVER > 7 + WFIFOW(fd,j+104) = p->char_num; WFIFOW(fd,j+106) = 1; //TODO: Handle this rename bit: 0 to enable renaming +#else + WFIFOB(fd,j+104) = p->char_num; #endif } @@ -4453,4 +4455,3 @@ int do_init(int argc, char **argv) { return 0; } #endif //TXT_SQL_CONVERT - diff --git a/src/char_sql/char.c b/src/char_sql/char.c index 2cf237317..5289694d8 100644 --- a/src/char_sql/char.c +++ b/src/char_sql/char.c @@ -1769,10 +1769,12 @@ int mmo_char_send006b(int fd, struct char_session_data *sd) { WFIFOB(fd,j+101) = (p->int_ > UCHAR_MAX) ? UCHAR_MAX : p->int_; WFIFOB(fd,j+102) = (p->dex > UCHAR_MAX) ? UCHAR_MAX : p->dex; WFIFOB(fd,j+103) = (p->luk > UCHAR_MAX) ? UCHAR_MAX : p->luk; - WFIFOW(fd,j+104) = p->char_num; #if PACKETVER > 7 //Updated packet structure with rename-button included. Credits to Sara-chan + WFIFOW(fd,j+104) = p->char_num; WFIFOW(fd,j+106) = 1; //TODO: Handle this rename bit: 0 to enable renaming +#else + WFIFOB(fd,j+104) = p->char_num; #endif } WFIFOSET(fd,WFIFOW(fd,2)); diff --git a/src/map/skill.c b/src/map/skill.c index ba4c51cc0..c31ec78cf 100644 --- a/src/map/skill.c +++ b/src/map/skill.c @@ -7866,9 +7866,18 @@ int skill_check_condition (struct map_session_data *sd, int skill, int lv, int t if (sd->state.abra_flag) { - sd->skillitem = sd->skillitemlv = 0; - if(type&1) sd->state.abra_flag = 0; - return 1; + if (sd->skillitem != skill) + { //Cancelled, using a different skill. + sd->skillitem = sd->skillitemlv = sd->state.abra_flag = 0; + } else { + //Abracadabra skill, skip requisites! + if(type&1) + { //Clear out the data. + sd->skillitem = sd->skillitemlv = 0; + sd->state.abra_flag = 0; + } + return 1; + } } if (sd->menuskill_id == AM_PHARMACY && |