Переглянути джерело

some ninja/gs work

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@5561 54d463be-8e91-2dee-dedb-b68131a5f0ec
Vicious 19 роки тому
батько
коміт
6a9cccbf46
3 змінених файлів з 33 додано та 8 видалено
  1. 21 5
      src/map/battle.c
  2. 9 1
      src/map/skill.c
  3. 3 2
      src/map/status.c

+ 21 - 5
src/map/battle.c

@@ -1246,11 +1246,12 @@ static struct Damage battle_calc_weapon_attack(
 				break;
 
 			//Until they're at right position - gs_arrow- [Vicious]
+			case GS_RAPIDSHOWER:
+				wd.div_= 5;
 			case GS_BULLSEYE:
 			case GS_CRACKER:
 			case GS_TRACKING:
 			case GS_PIERCINGSHOT:
-			case GS_RAPIDSHOWER:
 			case GS_DUST:
 			case GS_SPREADATTACK:
 			case NJ_SYURIKEN:
@@ -1922,6 +1923,13 @@ static struct Damage battle_calc_weapon_attack(
 					if(sd && sd->weapontype1 == 0 && sd->weapontype2 == 0)
 						ATK_ADD(10*pc_checkskill(sd, TK_RUN));
 					break;
+				case GS_MAGICALBULLET:
+					int matk1=status_get_matk1(src),matk2=status_get_matk2(src);
+					if(matk1>matk2)
+						ATK_ADD(matk2+atn_rand()%(matk1-matk2+1));
+					else
+						ATK_ADD(matk2);
+					break;
 			}
 		}
 		//Here comes a second pass for skills that stack to the previously defined % damage. [Skotlex]
@@ -2677,16 +2685,24 @@ struct Damage battle_calc_magic_attack(
 						skillratio -= 10;
 						break;
 					case NJ_BAKUENRYU:
-						skillratio += 50 + 150*skill_lv;
+						//skillratio += 50 + 150*skill_lv;
+						// Possibly just add to matk?
+						MATK_ADD(150 + 150*skill_lv);
 						break;
 					case NJ_HYOUSYOURAKU:
-						skillratio += 50*skill_lv;
+						//skillratio += 50*skill_lv;
+						// Possibly just add to matk?
+						MATK_ADD(100 + 50*skill_lv);
 						break;
 					case NJ_RAIGEKISAI:
-						skillratio += 60 + 40*skill_lv;
+						//skillratio += 60 + 40*skill_lv;
+						// Possibly just add to matk?
+						MATK_ADD(200 + 40*skill_lv);
 						break;
 					case NJ_KAMAITACHI:
-						skillratio += 100*skill_lv;
+						//skillratio += 100*skill_lv;
+						// Possibly just add to matk?
+						MATK_ADD(100 + 100*skill_lv);
 						break;
 				}
 

+ 9 - 1
src/map/skill.c

@@ -8225,6 +8225,10 @@ int skill_check_condition(struct map_session_data *sd,int type)
 			return 0;
 		}
 		break;
+	//Bullets	13200~13202
+	//Nade	13203~13207
+	//Shuriken	13250~13254
+	//Kunai	13255~14359
 	case GS_TRACKING:
 	case GS_DISARM:
 	case GS_PIERCINGSHOT:
@@ -8251,6 +8255,11 @@ int skill_check_condition(struct map_session_data *sd,int type)
 	case NJ_KAMAITACHI:
 		//delitem_flag = 0; <- don't need?
 		break;
+	
+	case NJ_ISSEN:
+		if (sd->sc.data[SC_NEN].timer!=-1)
+			return 0;
+		break;
 
 	//Not implemented yet [Vicious]
 	case NJ_KASUMIKIRI:
@@ -8260,7 +8269,6 @@ int skill_check_condition(struct map_session_data *sd,int type)
 	case NJ_BUNSINJYUTSU:
 	
 	case NJ_NEN:
-	case NJ_ISSEN:
 		break;
 	}
 

+ 3 - 2
src/map/status.c

@@ -5021,12 +5021,13 @@ int status_change_end( struct block_list* bl , int type,int tid )
 			case SC_INCREASING:
 			case SC_GATLINGFEVER:
 			case SC_TATAMIGAESHI:
-			case SC_UTSUSEMI:
 			case SC_KAENSIN:
 			case SC_SUITON:
-			case SC_NEN:
 				calc_flag = 1;
 				break;
+			case SC_UTSUSEMI:
+			case SC_NEN:
+				break;
 			}