Browse Source

Updated Weapon Repair, Aura Blade

git-svn-id: https://svn.code.sf.net/p/rathena/svn/athena@357 54d463be-8e91-2dee-dedb-b68131a5f0ec
celest 20 years ago
parent
commit
f3b7b7cb45
2 changed files with 34 additions and 7 deletions
  1. 12 6
      src/map/battle.c
  2. 22 1
      src/map/skill.c

+ 12 - 6
src/map/battle.c

@@ -2399,6 +2399,8 @@ static struct Damage battle_calc_mob_weapon_attack(
 			damage += damage*(2*sc_data[SC_TRUESIGHT].val1)/100;
 			if(sc_data[SC_BERSERK].timer!=-1)	// バーサーク
 				damage += damage*2;
+			if(sc_data && sc_data[SC_AURABLADE].timer!=-1)	//[DracoRPG]
+				damage += sc_data[SC_AURABLADE].val1 * 20;
 		}
 
 		if(skill_num>0){
@@ -2723,8 +2725,8 @@ static struct Damage battle_calc_mob_weapon_attack(
 	if(skill_num != 0 || s_ele != 0 || !battle_config.mob_attack_attr_none)
 	damage=battle_attr_fix(damage, s_ele, battle_get_element(target) );
 
-	if(sc_data && sc_data[SC_AURABLADE].timer!=-1)	/* オーラブレード 必中 */
-		damage += sc_data[SC_AURABLADE].val1 * 10;
+	//if(sc_data && sc_data[SC_AURABLADE].timer!=-1)	/* オーラブレード 必中 */
+	//	damage += sc_data[SC_AURABLADE].val1 * 10;
 	if(skill_num==PA_PRESSURE) /* プレッシャー 必中? */
 		damage = 500+300*skill_lv;
 
@@ -3096,6 +3098,10 @@ static struct Damage battle_calc_pc_weapon_attack(
 				damage += damage*2;
 				damage2 += damage2*2;
 			}
+			if(sc_data && sc_data[SC_AURABLADE].timer!=-1) {	//[DracoRPG]
+				damage += sc_data[SC_AURABLADE].val1 * 20;
+				damage2 += sc_data[SC_AURABLADE].val1 * 20;
+			}
 		}
 
 		if(skill_num>0){
@@ -3785,10 +3791,10 @@ static struct Damage battle_calc_pc_weapon_attack(
 	damage += sd->spiritball*3;
 	damage2 += sd->spiritball*3;
 
-	if(sc_data && sc_data[SC_AURABLADE].timer!=-1){	/* オーラブレード 必中 */
-		damage += sc_data[SC_AURABLADE].val1 * 10;
-		damage2 += sc_data[SC_AURABLADE].val1 * 10;
-	}
+	//if(sc_data && sc_data[SC_AURABLADE].timer!=-1){	/* オーラブレード 必中 */
+	//	damage += sc_data[SC_AURABLADE].val1 * 10;
+	//	damage2 += sc_data[SC_AURABLADE].val1 * 10;
+	//}
 	if(skill_num==PA_PRESSURE){ /* プレッシャー 必中? */
 		damage = 500+300*skill_lv;
 		damage2 = 500+300*skill_lv;

+ 22 - 1
src/map/skill.c

@@ -3708,9 +3708,30 @@ int skill_castend_nodamage_id( struct block_list *src, struct block_list *bl,int
 		break;
 
 	case BS_REPAIRWEAPON:			/* 武器修理 */
-		if(sd)
+		if(sd) {	//Temporary Weapon Repair code [DracoRPG]
 //動作しないのでとりあえずコメントアウト
 //			clif_item_repair_list(sd);
+			int i,r=0;
+			if (pc_search_inventory(sd, 999) <= 0 ) {
+				clif_skill_fail(sd,sd->skillid,0,0);
+				map_freeblock_unlock();
+				return 1;
+			}
+			for(i=0; i<MAX_INVENTORY; i++) {
+				if(sd->status.inventory[i].attribute == 1){
+					sd->status.inventory[i].attribute = 0;
+					pc_delitem(sd, pc_search_inventory(sd, 999), 1, 0);
+					clif_equiplist(sd);
+					clif_produceeffect(sd, 0, sd->status.inventory[i].nameid);
+					clif_misceffect(&sd->bl, 3);
+					clif_displaymessage(sd->fd,"Item has been repaired.");
+					r++;
+					break;
+				}
+			}
+			if(!r)
+				clif_skill_fail(sd,sd->skillid,0,0);
+		}
 		break;
 
 	case MC_VENDING:			/* 露店開設 */