Преглед на файлове

- Moved the morph restrictions from skill_additional_effect to mob_class_change, so that SA_MONOCELL will not convert clones, emperium, or treasure boxes.

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@8724 54d463be-8e91-2dee-dedb-b68131a5f0ec
skotlex преди 18 години
родител
ревизия
6f501a8bb2
променени са 3 файла, в които са добавени 15 реда и са изтрити 4 реда
  1. 3 0
      Changelog-Trunk.txt
  2. 10 0
      src/map/mob.c
  3. 2 4
      src/map/skill.c

+ 3 - 0
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/09/12
+	* Moved the morph restrictions from skill_additional_effect to
+	  mob_class_change, so that SA_MONOCELL will not convert clones, emperium, or
+	  treasure boxes. [Skotlex]
 	* Fixed 'range' might be used uninitialized warning [Toms]
 	* Added Jaguar's sql script to convert all tables to MyISAM. It's located
 	  in sql-files/convert_engine.sql WARNING: Using MyISAM is much faster than

+ 10 - 0
src/map/mob.c

@@ -2275,6 +2275,16 @@ int mob_class_change (struct mob_data *md, int class_)
 	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)
+		return 0; //Treasure Boxes
+
+	if (mob_is_clone(md->class_))
+		return 0; //Clones
+
 	hp_rate = md->status.hp*100/md->status.max_hp;
 	md->db = mob_db(class_);
 	if (battle_config.override_mob_names==1)

+ 2 - 4
src/map/skill.c

@@ -1438,10 +1438,8 @@ int skill_additional_effect (struct block_list* src, struct block_list *bl, int
 
 	//Polymorph
 	if(sd && sd->classchange && attack_type&BF_WEAPON &&
-		dstmd && !(tstatus->mode&MD_BOSS) && !dstmd->guardian_data &&
-	  	(dstmd->class_ < 1324 || dstmd->class_ > 1363) && //Treasure boxes
-	  	!mob_is_clone(dstmd->class_) && 
-	  	(rand()%10000 < sd->classchange)) 
+		dstmd && !(tstatus->mode&MD_BOSS) &&
+		(rand()%10000 < sd->classchange)) 
 	{
 		struct mob_db *mob;
 		int class_;