Sfoglia il codice sorgente

- Moved setting a mob's level from mob_spawn to status_calc_mob, resetting their level on death has also been removed (as it is handled now on spawn)
- Fixed a bug in status_revive
- Updated Holy Cross, Investigate and Finger Offensive to be usable by all weapons.


git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@6938 54d463be-8e91-2dee-dedb-b68131a5f0ec

skotlex 19 anni fa
parent
commit
cb8cc2d8a7
4 ha cambiato i file con 14 aggiunte e 8 eliminazioni
  1. 2 0
      db/Changelog.txt
  2. 3 3
      db/skill_require_db.txt
  3. 0 4
      src/map/mob.c
  4. 9 1
      src/map/status.c

+ 2 - 0
db/Changelog.txt

@@ -27,6 +27,8 @@
 
 =========================
 06/02
+	* Updated Holy Cross, Investigate and Finger Offensive to be usable by all
+	  weapons. [Skotlex]
 	* Gave several MVPs their MVP skill versions [Playtester]
 	* Made Grandcross usable with all weapons. Thanks to Khersai for digging it
 	  up. [Skotlex]

+ 3 - 3
db/skill_require_db.txt

@@ -176,7 +176,7 @@
 250,0,0,10,0,0,0,99,0,0,shield,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//CR_SHIELDCHARGE#シ?ルドチャ?ジ#
 251,0,0,12,0,0,0,99,0,0,shield,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//CR_SHIELDBOOMERANG#シ?ルドブ?メラン#
 252,0,0,35:40:45:50:55:60:65:70:75:80,0,0,0,99,0,0,shield,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//CR_REFLECTSHIELD#リフレクトシ?ルド#
-253,0,0,11:12:13:14:15:16:17:18:19:20,0,0,0,0:1:2:3:4:5:6:7:8:9:10:12:13:14:15:16:17:18:19:20:21:22,0,0,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//CR_HOLYCROSS#ホ?リ?クロス#
+253,0,0,11:12:13:14:15:16:17:18:19:20,0,0,0,99,0,0,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//CR_HOLYCROSS#ホ?リ?クロス#
 254,0,0,37:44:51:58:65:72:79:86:93:100,20,0,0,99,0,0,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//CR_GRANDCROSS#グランドクロス#
 255,0,0,25,0,0,0,99,0,0,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//CR_DEVOTION#ディボ?ション#
 256,0,0,30,0,0,0,99,0,0,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//CR_PROVIDENCE#プロヴィデンス#
@@ -188,8 +188,8 @@
 
 264,0,0,14,0,0,0,99,0,0,move_enable,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//MO_BODYRELOCATION#?影#
 
-266,0,0,10:14:17:19:20,0,0,0,0:1:2:3:4:5:6:7:8:9:10:12:13:14:15:16:17:18:19:20:21:22,0,0,none,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//MO_INVESTIGATE#?勁#
-267,0,0,10,0,0,0,0:1:2:3:4:5:6:7:8:9:10:12:13:14:15:16:17:18:19:20:21:22,0,0,none,1:2:3:4:5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//MO_FINGEROFFENSIVE#指?#
+266,0,0,10:14:17:19:20,0,0,0,99,0,0,none,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//MO_INVESTIGATE#?勁#
+267,0,0,10,0,0,0,99,0,0,none,1:2:3:4:5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//MO_FINGEROFFENSIVE#指?#
 268,0,0,1,0,50,0,99,0,0,none,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//MO_STEELBODY#金剛#
 269,0,0,10,0,0,0,0:1:2:3:4:5:6:7:8:9:10:12:13:14:15:16:17:18:19:20:21:22,0,0,none,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//MO_BLADESTOP#白刃取り#
 270,0,0,15,0,0,0,99,0,0,none,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//MO_EXPLOSIONSPIRITS#爆裂波動#

+ 0 - 4
src/map/mob.c

@@ -665,9 +665,6 @@ int mob_spawn (struct mob_data *md)
 	md->target_id = 0;
 	md->move_fail_count = 0;
 
-	if (!md->level) // [Valaris]
-		md->level=md->db->lv;
-
 //	md->master_id = 0;
 	md->master_dist = 0;
 
@@ -2124,7 +2121,6 @@ int mob_dead(struct mob_data *md, struct block_list *src, int type)
 		if(mvp_sd->state.event_kill_mob)
 			npc_script_event(mvp_sd, NPCE_KILLNPC); // PCKillNPC [Lance]
 	}
-	if(md->level) md->level=0;
 
 	if(md->deletetimer!=-1) {
 		delete_timer(md->deletetimer,mob_timer_delete);

+ 9 - 1
src/map/status.c

@@ -760,7 +760,7 @@ int status_revive(struct block_list *bl, unsigned char per_hp, unsigned char per
 		return 0; //Invalid target.
 	
 	hp = status->max_hp * per_hp/100;
-	sp = status->max_sp * per_hp/100;
+	sp = status->max_sp * per_sp/100;
 
 	if(hp > status->max_hp - status->hp)
 		hp = status->max_hp - status->hp;
@@ -1015,6 +1015,14 @@ int status_calc_mob(struct mob_data* md, int first)
 	struct block_list *mbl = NULL;
 	int flag=0;
 
+	if(first)
+	{	//Set basic level on respawn.
+		if (md->spawn)
+		  	md->level = md->spawn->level;
+		else
+			md->level = md->db->lv; // [Valaris]
+	}
+
 	//Check if we need custom base-status
 	if (battle_config.mobs_level_up && md->level != md->db->lv)
 		flag|=1;