Ver Fonte

some skill check condition

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@5514 54d463be-8e91-2dee-dedb-b68131a5f0ec
Vicious há 19 anos atrás
pai
commit
10f9078ab9
2 ficheiros alterados com 95 adições e 23 exclusões
  1. 16 20
      db/skill_require_db.txt
  2. 79 3
      src/map/skill.c

+ 16 - 20
db/skill_require_db.txt

@@ -1,7 +1,7 @@
 // Skill Requirements Database
 //
 // Structure of Database:
-// SkillID,HPCost,?MaxHP?,SPCost,MaxHPRateCost,MaxSPRateCost,ZenyCost,RequiredWeapons,RequiredState,SpiritSphereCost,RequiredItemID1,RequiredItemAmount1,...,RequiredItemID10,RequiredItemAmount10
+// SkillID,HPCost,?MaxHP?,SPCost,MaxHPRateCost,MaxSPRateCost,ZenyCost,RequiredWeapons,RequiredState,SpiritSphereCost,RequiredItemID1,RequiredItemAmount1,RequiredItemID2,RequiredItemAmount2,RequiredItemID3,RequiredItemAmount3,RequiredItemID4,RequiredItemAmount4,RequiredItemID5,RequiredItemAmount5,RequiredItemID6,RequiredItemAmount6,RequiredItemID7,RequiredItemAmount7,RequiredItemID8,RequiredItemAmount8,RequiredItemID9,RequiredItemAmount9,RequiredItemID10,RequiredItemAmount10
 //
 // Legend for 'RequiredState' field:
 //  none = Nothing special
@@ -390,16 +390,13 @@
 //temp plugs
 500,0,0,10,0,0,0,0,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//GS_GLITTERING
 501,0,0,10,0,0,0,0,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//GS_FLING
-502,0,0,10,0,0,0,0,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//GS_TRIPLEACTION
-503,0,0,10,0,0,0,0,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//GS_BULLSEYE
-504,0,0,10,0,0,0,0,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//GS_MADNESSCANCEL
-505,0,0,10,0,0,0,0,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//GS_ADJUSTMENT
-506,0,0,10,0,0,0,0,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//GS_INCREASING
-507,0,0,10,0,0,0,0,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//GS_MAGICALBULLET
-508,0,0,10,0,0,0,0,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//GS_CRACKER
-509,0,0,10,0,0,0,0,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//GS_SINGLEACTION
-510,0,0,10,0,0,0,0,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//GS_SNAKEEYE
-511,0,0,10,0,0,0,0,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//GS_CHAINACTION
+502,0,0,10,0,0,0,0,none,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//GS_TRIPLEACTION
+503,0,0,10,0,0,0,0,none,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//GS_BULLSEYE
+504,0,0,10,0,0,0,0,none,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//GS_MADNESSCANCEL
+505,0,0,10,0,0,0,0,none,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//GS_ADJUSTMENT
+506,0,0,10,0,0,0,0,none,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//GS_INCREASING
+507,0,0,10,0,0,0,0,none,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//GS_MAGICALBULLET
+508,0,0,10,0,0,0,0,none,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//GS_CRACKER
 512,0,0,10,0,0,0,0,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//GS_TRACKING
 513,0,0,10,0,0,0,0,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//GS_DISARM
 514,0,0,10,0,0,0,0,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//GS_PIERCINGSHOT
@@ -410,27 +407,26 @@
 519,0,0,10,0,0,0,0,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//GS_FULLBUSTER
 520,0,0,10,0,0,0,0,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//GS_SPREADATTACK
 521,0,0,10,0,0,0,0,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//GS_GROUNDDRIFT
-522,0,0,10,0,0,0,0,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//NJ_TOBIDOUGU
 523,0,0,10,0,0,0,0,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//NJ_SYURIKEN
 524,0,0,10,0,0,0,0,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//NJ_KUNAI
 525,0,0,10,0,0,0,0,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//NJ_HUUMA
-526,0,0,10,0,0,0,0,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//NJ_ZENYNAGE
+526,0,0,10,0,0,1000:2000:3000:4000:5000:6000:7000:8000:9000:10000,0,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//NJ_ZENYNAGE
 527,0,0,10,0,0,0,0,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//NJ_TATAMIGAESHI
 528,0,0,10,0,0,0,0,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//NJ_KASUMIKIRI
 529,0,0,10,0,0,0,0,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//NJ_SHADOWJUMP
-530,0,0,10,0,0,0,0,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//NJ_KIRIKAGE
+530,0,0,10,0,0,0,0,hiding,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//NJ_KIRIKAGE
 531,0,0,10,0,0,0,0,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//NJ_UTSUSEMI
 532,0,0,10,0,0,0,0,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//NJ_BUNSINJYUTSU
 533,0,0,10,0,0,0,0,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//NJ_NINPOU
 534,0,0,10,0,0,0,0,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//NJ_KOUENKA
-535,0,0,10,0,0,0,0,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//NJ_KAENSIN
-536,0,0,10,0,0,0,0,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//NJ_BAKUENRYU
+535,0,0,10,0,0,0,0,none,0,7521,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//NJ_KAENSIN
+536,0,0,10,0,0,0,0,none,0,7521,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//NJ_BAKUENRYU
 537,0,0,10,0,0,0,0,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//NJ_HYOUSENSOU
-538,0,0,10,0,0,0,0,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//NJ_SUITON
-539,0,0,10,0,0,0,0,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//NJ_HYOUSYOURAKU
+538,0,0,10,0,0,0,0,none,0,7522,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//NJ_SUITON
+539,0,0,10,0,0,0,0,none,0,7522,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//NJ_HYOUSYOURAKU
 540,0,0,10,0,0,0,0,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//NJ_HUUJIN
-541,0,0,10,0,0,0,0,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//NJ_RAIGEKISAI
-542,0,0,10,0,0,0,0,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//NJ_KAMAITACHI
+541,0,0,10,0,0,0,0,none,0,7523,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//NJ_RAIGEKISAI
+542,0,0,10,0,0,0,0,none,0,7523,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//NJ_KAMAITACHI
 543,0,0,10,0,0,0,0,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//NJ_NEN
 544,0,0,10,0,0,0,0,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//NJ_ISSEN
 

+ 79 - 3
src/map/skill.c

@@ -3078,7 +3078,8 @@ int skill_castend_damage_id (struct block_list* src, struct block_list *bl,int s
 		}
 		break;
 
-	//Until they're at right position [Vicious]
+	//Until they're at right position - gs_damage- [Vicious]
+	//Not implemented yet [Vicious]
 	case GS_GLITTERING:
 	case GS_FLING:
 	case GS_TRIPLEACTION:
@@ -5639,8 +5640,14 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, in
 		}
 		break;
 
-	//Until they're at right position [Vicious]
+	//Until they're at right position - gs_nodamage- [Vicious]
+	//Not implemented yet [Vicious]
 	case GS_GLITTERING:
+	if(sd) {
+			clif_skill_nodamage(src,bl,skillid,skilllv,1);
+			pc_addspiritball(sd,skill_get_time(skillid,skilllv),skilllv);
+		}
+		break;
 	case GS_FLING:
 	case GS_TRIPLEACTION:
 	case GS_BULLSEYE:
@@ -8138,6 +8145,76 @@ int skill_check_condition(struct map_session_data *sd,int type)
 			return 0;
 		}
 		break;
+		
+	//Until they're at right position - gs_skillcheck- [Vicious]
+	case GS_GLITTERING:
+		if(sd->spiritball >= 10) {
+			clif_skill_fail(sd,skill,0,0);
+			return 0;
+		}
+		break;
+	case GS_FLING:
+	case GS_TRIPLEACTION:
+	case GS_MAGICALBULLET:
+	case GS_CRACKER:
+		if(sd->spiritball < 1) {
+			clif_skill_fail(sd,skill,0,0);
+			return 0;
+		}
+		if (skill != GS_MAGICALBULLET)
+			arrow_flag = 1;
+		break;
+	case GS_BULLSEYE:
+		if(sd->spiritball < 5) {
+			clif_skill_fail(sd,skill,0,0);
+			return 0;
+		}
+		break;
+	case GS_MADNESSCANCEL:
+		if(sd->spiritball < 4) {
+			clif_skill_fail(sd,skill,0,0);
+			return 0;
+		}
+		break;
+	case GS_ADJUSTMENT:
+	case GS_INCREASING:
+		if(sd->spiritball < 2) {
+			clif_skill_fail(sd,skill,0,0);
+			return 0;
+		}
+		break;
+	case GS_TRACKING:
+	case GS_DISARM:
+	case GS_PIERCINGSHOT:
+	case GS_RAPIDSHOWER:
+	case GS_DESPERADO:
+	case GS_DUST:
+	case GS_SPREADATTACK:
+	case GS_GROUNDDRIFT:
+	case NJ_SYURIKEN:
+	case NJ_KUNAI:
+	case NJ_HUUMA:
+		arrow_flag = 1;
+		break;
+
+	//Not implemented yet [Vicious]
+	case NJ_KASUMIKIRI:
+	case NJ_SHADOWJUMP:
+	case NJ_KIRIKAGE:
+	case NJ_UTSUSEMI:
+	case NJ_BUNSINJYUTSU:
+	case NJ_KOUENKA:
+	case NJ_KAENSIN:
+	case NJ_BAKUENRYU:
+	case NJ_HYOUSENSOU:
+	case NJ_SUITON:
+	case NJ_HYOUSYOURAKU:
+	case NJ_HUUJIN:
+	case NJ_RAIGEKISAI:
+	case NJ_KAMAITACHI:
+	case NJ_NEN:
+	case NJ_ISSEN:
+		break;
 	}
 
 	if(!(type&2)){
@@ -8253,7 +8330,6 @@ int skill_check_condition(struct map_session_data *sd,int type)
 			return 0;
 		}
 		break;
-
 	}
 
 	if (checkitem_flag) {