From 24bc674295e1dc2ebbfa4fae3f68a70311c98594 Mon Sep 17 00:00:00 2001 From: skotlex Date: Fri, 2 Feb 2007 20:59:09 +0000 Subject: - Resetting skills will now automatically remove peco, falcon, cart and homunculus (vaporize). - Fixed random mob picking choosing clones. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@9780 54d463be-8e91-2dee-dedb-b68131a5f0ec --- Changelog-Trunk.txt | 4 ++++ src/map/mob.c | 1 + src/map/pc.c | 20 ++++++++++++++++++-- 3 files changed, 23 insertions(+), 2 deletions(-) diff --git a/Changelog-Trunk.txt b/Changelog-Trunk.txt index e2c7133da..1e664d0d4 100644 --- a/Changelog-Trunk.txt +++ b/Changelog-Trunk.txt @@ -3,6 +3,10 @@ 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. +2007/02/02 + * Resetting skills will now automatically remove peco, falcon, cart and + homunculus (vaporize). + * Fixed random mob picking choosing clones. [Skotlex] 2007/02/01 * Restricted global messages to 255 characters (client shows only ~80 anyway, wanted to use 127 but frost joke's lines are longer than that ...) diff --git a/src/map/mob.c b/src/map/mob.c index f32acc85f..4abd1dd58 100644 --- a/src/map/mob.c +++ b/src/map/mob.c @@ -257,6 +257,7 @@ int mob_get_random_id(int type, int flag, int lv) { class_ = rand() % MAX_MOB_DB; mob = mob_db(class_); } while ((mob == mob_dummy || + mob_is_clone(class_) || (flag&1 && mob->summonper[type] <= rand() % 1000000) || (flag&2 && lv < mob->lv) || (flag&4 && mob->status.mode&MD_BOSS) || diff --git a/src/map/pc.c b/src/map/pc.c index 238a88b5a..3731dda29 100644 --- a/src/map/pc.c +++ b/src/map/pc.c @@ -4720,8 +4720,24 @@ int pc_resetskill(struct map_session_data* sd, int flag) int i, lv, inf2, skill_point=0; nullpo_retr(0, sd); - if (pc_checkskill(sd, SG_DEVIL) && !pc_nextjobexp(sd)) - clif_status_load(&sd->bl, SI_DEVIL, 0); //Remove perma blindness due to skill-reset. [Skotlex] + if(!(flag&2)) + { //Remove stuff lost when resetting skills. + if (pc_checkskill(sd, SG_DEVIL) && !pc_nextjobexp(sd)) + clif_status_load(&sd->bl, SI_DEVIL, 0); //Remove perma blindness due to skill-reset. [Skotlex] + i = sd->sc.option; + if (i&OPTION_RIDING && pc_checkskill(sd, KN_RIDING)) + i&=~OPTION_RIDING; + if(i&OPTION_CART && pc_checkskill(sd, MC_PUSHCART)) + i&=~OPTION_CART; + if(i&OPTION_FALCON && pc_checkskill(sd, HT_FALCON)) + i&=~OPTION_FALCON; + + if(i != sd->sc.option) + pc_setoption(sd, i); + + if(merc_is_hom_active(sd->hd) && pc_checkskill(sd, AM_CALLHOMUN)) + merc_hom_vaporize(sd, 0); + } for (i = 1; i < MAX_SKILL; i++) { lv= sd->status.skill[i].lv; -- cgit v1.2.3-60-g2f50