瀏覽代碼

- Limitations to WoE SE Treasures (no steal, drop rates, no class change).

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@13156 54d463be-8e91-2dee-dedb-b68131a5f0ec
zephyrus 16 年之前
父節點
當前提交
5aa3858e9a
共有 2 個文件被更改,包括 11 次插入10 次删除
  1. 6 6
      src/map/mob.c
  2. 5 4
      src/map/pc.c

+ 6 - 6
src/map/mob.c

@@ -2449,23 +2449,23 @@ int mob_class_change (struct mob_data *md, int class_)
 
 	nullpo_retr(0, md);
 
-	if (md->bl.prev == NULL)
+	if( md->bl.prev == NULL )
 		return 0;
 
 	//Disable class changing for some targets...
 	if (md->guardian_data)
 		return 0; //Guardians/Emperium
 
-	if (md->class_ >= 1324 && md->class_ <= 1363)
+	if( (md->class_ >= 1324 && md->class_ <= 1363) || (md->class_ >= 1938 && md->class_ <= 1946) )
 		return 0; //Treasure Boxes
 
-	if (md->special_state.ai > 1)
+	if( md->special_state.ai > 1 )
 		return 0; //Marine Spheres and Floras.
 
-	if (mob_is_clone(md->class_))
+	if( mob_is_clone(md->class_) )
 		return 0; //Clones
 
-	if (md->class_ == class_)
+	if( md->class_ == class_ )
 		return 0; //Nothing to change.
 
 	hp_rate = get_percentage(md->status.hp, md->status.max_hp);
@@ -3445,7 +3445,7 @@ static bool mob_parse_dbrow(char** str)
 		}
 		type = itemdb_type(db->dropitem[i].nameid);
 		rate = atoi(str[k+1]);
-		if (class_ >= 1324 && class_ <= 1363)
+		if( (class_ >= 1324 && class_ <= 1363) || (class_ >= 1938 && class_ <= 1946) )
 		{	//Treasure box drop rates [Skotlex]
 			rate_adjust = battle_config.item_rate_treasure;
 			ratemin = battle_config.item_drop_treasure_min;

+ 5 - 4
src/map/pc.c

@@ -3388,8 +3388,9 @@ int pc_steal_item(struct map_session_data *sd,struct block_list *bl, int lv)
 	sd_status= status_get_status_data(&sd->bl);
 	md_status= status_get_status_data(bl);
 
-	if(md->master_id || md_status->mode&MD_BOSS ||
-		(md->class_>=1324 && md->class_<1364) || // prevent stealing from treasure boxes [Valaris]
+	if( md->master_id || md_status->mode&MD_BOSS ||
+		(md->class_ >= 1324 && md->class_ < 1364) || // Treasure Boxes WoE
+		(md->class_ >= 1938 && md->class_ < 1946) || // Treasure Boxes WoE SE
 		map[bl->m].flag.nomobloot || // check noloot map flag [Lorky]
 		(battle_config.skill_steal_max_tries && //Reached limit of steal attempts. [Lupus]
 			md->state.steal_flag++ >= battle_config.skill_steal_max_tries)
@@ -3460,10 +3461,10 @@ int pc_steal_coin(struct map_session_data *sd,struct block_list *target)
 		return 0;
 
 	md = (TBL_MOB*)target;
-	if(md->state.steal_coin_flag || md->sc.data[SC_STONE] || md->sc.data[SC_FREEZE])
+	if( md->state.steal_coin_flag || md->sc.data[SC_STONE] || md->sc.data[SC_FREEZE] )
 		return 0;
 
-	if (md->class_>=1324 && md->class_<1364)
+	if( (md->class_ >= 1324 && md->class_ < 1364) || (md->class_ >= 1938 && md->class_ < 1946) )
 		return 0;
 
 	skill = pc_checkskill(sd,RG_STEALCOIN)*10;