浏览代码

Bug fixes

git-svn-id: https://svn.code.sf.net/p/rathena/svn/branches/stable@444 54d463be-8e91-2dee-dedb-b68131a5f0ec
amber 20 年之前
父节点
当前提交
260c334ec0
共有 4 个文件被更改,包括 17 次插入1 次删除
  1. 2 0
      Changelog.txt
  2. 6 1
      src/map/battle.c
  3. 5 0
      src/map/mob.c
  4. 4 0
      src/map/skill.c

+ 2 - 0
Changelog.txt

@@ -1,5 +1,7 @@
 Date	Added
 12/3
+	* hacked the frozen mob issue [MouseJstr]
+	* Fixed a battle_range crash [MouseJstr]
         * Updated Stone Curse, Soul Drain, Auto Berserk [celest]
         * Added a fix for MVP exp being multiplied twice by Gengar
 

+ 6 - 1
src/map/battle.c

@@ -4394,8 +4394,13 @@ struct Damage  battle_calc_misc_attack(
 		}
 		break;
 	case SN_FALCONASSAULT:			/* ファルコンアサルト */
+#ifdef TWILIGHT
+ 		skill = pc_checkskill(sd,HT_BLITZBEAT);
+                damage=(100+50*skill_lv+(dex/10+int_/2+skill*3+40)*2) * 2;
+#else
 		skill = pc_checkskill(sd,HT_STEELCROW); // Celest 
 		damage=((150+50*skill_lv)*(dex/10+int_/2+skill*3+40)*2)/100;
+#endif
 		break;
 	}
 
@@ -4958,7 +4963,7 @@ int battle_check_range(struct block_list *src,struct block_list *bl,int range)
 	if( range>0 && range < arange )	{// 遠すぎる
 // be lenient if the skill was cast before we have moved to the correct position [Celest]
 		if (src->type != BL_PC ||
-			(src->type == BL_PC && ((struct map_session_data *)bl)->walktimer != -1 &&
+			(bl->type == BL_PC && ((struct map_session_data *)bl)->walktimer != -1 &&
 			!((arange-=battle_config.skill_range_leniency)<=range)))
 			return 0;
 	}

+ 5 - 0
src/map/mob.c

@@ -765,6 +765,11 @@ static int mob_timer(int tid,unsigned int tick,int id,int data)
 		break;
 	}
 	map_freeblock_unlock();
+	if (md->timer == -1) {
+		mob_changestate(md,MS_WALK,0);
+		if (md->timer == -1) 
+			printf("mob_timer : mob %x STILL has no timer\n", md);
+	}
 	return 0;
 }
 

+ 4 - 0
src/map/skill.c

@@ -8891,7 +8891,11 @@ int skill_status_change_timer(int tid, unsigned int tick, int id, int data)
 	case SC_ENDURE:	/* ƒCƒ“ƒfƒ…ƒA */
 	case SC_AUTOBERSERK: // Celest
 		if(sd && sd->special_state.infinite_endure) {
+#ifdef TWILIGHT
+			sc_data[type].timer=add_timer( 1000*600+tick,skill_status_change_timer, bl->id, data );
+#else
 			sc_data[type].timer=add_timer( 1000*60+tick,skill_status_change_timer, bl->id, data );
+#endif
 			//sc_data[type].val2=1;
 			return 0;
 		}