diff options
-rw-r--r-- | Changelog-Trunk.txt | 3 | ||||
-rw-r--r-- | src/map/mob.c | 5 | ||||
-rw-r--r-- | src/map/pc.c | 4 | ||||
-rw-r--r-- | src/map/pet.c | 12 | ||||
-rw-r--r-- | src/map/skill.c | 2 |
5 files changed, 12 insertions, 14 deletions
diff --git a/Changelog-Trunk.txt b/Changelog-Trunk.txt index d9f56257c..eb21cb3ca 100644 --- a/Changelog-Trunk.txt +++ b/Changelog-Trunk.txt @@ -4,6 +4,9 @@ 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.
2006/08/24
+ * Reverted the previous change, changed the pet capture code to try to
+ capture a mob based on their view class rather than actual class.
+ [Skotlex]
* Fixed the md->class_ variable not being updated when a mob's class is
changed. [Skotlex]
* Added setting clear_skills_on_warp to specify when a character's
diff --git a/src/map/mob.c b/src/map/mob.c index d22d86f5f..55dc2a61f 100644 --- a/src/map/mob.c +++ b/src/map/mob.c @@ -1954,7 +1954,7 @@ int mob_dead(struct mob_data *md, struct block_list *src, int type) drop_rate += (int)(0.5+drop_rate*status_get_luk(src)*battle_config.drops_by_luk2/10000.); } if (sd && battle_config.pk_mode && - (int)(md->db->lv - sd->status.base_level) >= 20) + (int)(md->level - sd->status.base_level) >= 20) drop_rate = (int)(drop_rate*1.25); // pk_mode increase drops if 20 level difference [Valaris] // if (10000 < rand()%10000+drop_rate) //May be better if MAX_RAND is too low? @@ -2014,7 +2014,7 @@ int mob_dead(struct mob_data *md, struct block_list *src, int type) } if(sd->get_zeny_num && rand()%100 < sd->get_zeny_rate) //Gets get_zeny_num per level +/-10% [Skotlex] - pc_getzeny(sd,md->db->lv*sd->get_zeny_num*(90+rand()%21)/100); + pc_getzeny(sd,md->level*sd->get_zeny_num*(90+rand()%21)/100); } if(md->lootitem) { for(i=0;i<md->lootitem_count;i++) @@ -2275,7 +2275,6 @@ int mob_class_change (struct mob_data *md, int class_) hp_rate = md->status.hp*100/md->status.max_hp; md->db = mob_db(class_); - md->class_ = class_; if (battle_config.override_mob_names==1) memcpy(md->name,md->db->name,NAME_LENGTH-1); else diff --git a/src/map/pc.c b/src/map/pc.c index 8a0739ece..7761364e0 100644 --- a/src/map/pc.c +++ b/src/map/pc.c @@ -3234,9 +3234,9 @@ int pc_steal_coin(struct map_session_data *sd,struct block_list *target) return 0; skill = pc_checkskill(sd,RG_STEALCOIN)*10; - rate = skill + (sd->status.base_level - md->db->lv)*3 + sd->battle_status.dex*2 + sd->battle_status.luk*2; + rate = skill + (sd->status.base_level - md->level)*3 + sd->battle_status.dex*2 + sd->battle_status.luk*2; if(rand()%1000 < rate) { - pc_getzeny(sd,md->db->lv*10 + rand()%100); + pc_getzeny(sd,md->level*10 + rand()%100); md->state.steal_coin_flag = 1; return 1; } diff --git a/src/map/pet.c b/src/map/pet.c index 48427c4fc..b54f5cf6f 100644 --- a/src/map/pet.c +++ b/src/map/pet.c @@ -577,23 +577,19 @@ int pet_catch_process2(struct map_session_data *sd,int target_id) pc_delitem(sd,i,1,0);
}
- i = search_petDB_index(md->class_,PET_CLASS);
+ i = search_petDB_index(md->vd->class_,PET_CLASS);
//catch_target_class == 0 is used for universal lures. [Skotlex]
//for now universal lures do not include bosses.
if (sd->catch_target_class == 0 && !(md->status.mode&MD_BOSS))
- sd->catch_target_class = md->class_;
- if(i < 0 || sd->catch_target_class != md->class_) {
+ sd->catch_target_class = md->vd->class_;
+ if(i < 0 || sd->catch_target_class != md->vd->class_) {
clif_emotion(&md->bl, 7); //mob will do /ag if wrong lure is used on them.
clif_pet_rulet(sd,0);
sd->catch_target_class = -1;
return 1;
}
- //target_id‚É‚æ‚é“G¨—‘”»’è
-// if(battle_config.etc_log)
-// printf("mob_id = %d, mob_class = %d\n",md->bl.id,md->class_);
- //¬Œ÷‚Ìê‡
- pet_catch_rate = (pet_db[i].capture + (sd->status.base_level - md->db->lv)*30 + sd->battle_status.luk*20)*(200 - md->status.hp*100/md->status.max_hp)/100;
+ pet_catch_rate = (pet_db[i].capture + (sd->status.base_level - md->level)*30 + sd->battle_status.luk*20)*(200 - md->status.hp*100/md->status.max_hp)/100;
if(pet_catch_rate < 1) pet_catch_rate = 1;
if(battle_config.pet_catch_rate != 100)
pet_catch_rate = (pet_catch_rate*battle_config.pet_catch_rate)/100;
diff --git a/src/map/skill.c b/src/map/skill.c index 905e2c1fb..9a52c99dd 100644 --- a/src/map/skill.c +++ b/src/map/skill.c @@ -3929,7 +3929,7 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, in pc_delspiritball(dstsd,dstsd->spiritball,0); } else if (dstmd && !(tstatus->mode&MD_BOSS) && rand() % 100 < 20) { // check if target is a monster and not a Boss, for the 20% chance to absorb 2 SP per monster's level [Reddozen] - i = 2 * dstmd->db->lv; + i = 2 * dstmd->level; mob_target(dstmd,src,0); } if (i) { |