diff options
author | skotlex <skotlex@54d463be-8e91-2dee-dedb-b68131a5f0ec> | 2007-02-02 20:59:09 +0000 |
---|---|---|
committer | skotlex <skotlex@54d463be-8e91-2dee-dedb-b68131a5f0ec> | 2007-02-02 20:59:09 +0000 |
commit | 24bc674295e1dc2ebbfa4fae3f68a70311c98594 (patch) | |
tree | 54be2c93223bdea75c0bf5876968493a76fd0d44 /src/map | |
parent | d2f88f0450a23f8b9cd9579451059acb08f14f52 (diff) | |
download | hercules-24bc674295e1dc2ebbfa4fae3f68a70311c98594.tar.gz hercules-24bc674295e1dc2ebbfa4fae3f68a70311c98594.tar.bz2 hercules-24bc674295e1dc2ebbfa4fae3f68a70311c98594.tar.xz hercules-24bc674295e1dc2ebbfa4fae3f68a70311c98594.zip |
- 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
Diffstat (limited to 'src/map')
-rw-r--r-- | src/map/mob.c | 1 | ||||
-rw-r--r-- | src/map/pc.c | 20 |
2 files changed, 19 insertions, 2 deletions
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; |