Преглед изворни кода

nj/gs skill update

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@5516 54d463be-8e91-2dee-dedb-b68131a5f0ec
Vicious пре 19 година
родитељ
комит
f36f60be04
2 измењених фајлова са 51 додато и 60 уклоњено
  1. 1 0
      Changelog-Trunk.txt
  2. 50 60
      src/map/skill.c

+ 1 - 0
Changelog-Trunk.txt

@@ -5,6 +5,7 @@ IF YOU HAVE A WORKING AND TESTED BUGFIX PUT IT INTO STABLE AS WELL AS TRUNK.  EV
 GOES INTO TRUNK AND WILL BE MERGED INTO STABLE BY VALARIS AND WIZPUTER. -- VALARIS
 
 2006/03/08
+	* About half-ish nj/gs skills are semi/fully-done. No effect/status yet though. [Vicious]
 	* Added atcommand @whodrops which lists mobs with the top drop-rates for a
 	  given item. List of stored mobs and their dropchances is also defined by
 	  MAX_SEARCH on map.h [Skotlex]

+ 50 - 60
src/map/skill.c

@@ -1240,6 +1240,20 @@ int skill_additional_effect (struct block_list* src, struct block_list *bl, int
 		if(attack_type == BF_MISC) //70% base stun chance...
 			sc_start(bl,SC_STUN,70,skilllv,skill_get_time2(skillid,skilllv));
 		break;
+	//Until they're at right position - gs_statuschange- [Vicious]
+	case GS_BULLSEYE:
+		if(!(status_get_mode(bl)&MD_BOSS))
+			sc_start(bl,SC_COMA,0.1,skilllv,skill_get_time(skillid,skilllv));
+		break;
+	case GS_CRACKER:
+		sc_start(bl,SC_STUN,10*skilllv,skilllv,skill_get_time(skillid,skilllv)); //Temp stun rate
+		break;
+	case GS_PIERCINGSHOT:
+		sc_start(bl,SC_BLEEDING,(skilllv*3),skilllv,skill_get_time(skillid,skilllv));
+		break;
+	case NJ_HYOUSYOURAKU:
+		sc_start(bl,SC_FREEZE,(10+10*skilllv),skilllv,skill_get_time2(skillid,skilllv));
+		break;
 	}
 
 	if (md && battle_config.summons_inherit_effects && md->master_id && md->special_state.ai)
@@ -3079,53 +3093,59 @@ int skill_castend_damage_id (struct block_list* src, struct block_list *bl,int s
 		break;
 
 	//Until they're at right position - gs_damage- [Vicious]
-	//Not implemented yet [Vicious]
-	case GS_GLITTERING:
-	case GS_FLING:
-	case GS_TRIPLEACTION:
 	case GS_BULLSEYE:
-	case GS_MADNESSCANCEL:
-	case GS_ADJUSTMENT:
-	case GS_INCREASING:
-	case GS_MAGICALBULLET:
 	case GS_CRACKER:
-	case GS_SINGLEACTION:
-	case GS_SNAKEEYE:
-	case GS_CHAINACTION:
 	case GS_TRACKING:
-	case GS_DISARM:
 	case GS_PIERCINGSHOT:
 	case GS_RAPIDSHOWER:
-	case GS_DESPERADO:
-	case GS_GATLINGFEVER:
 	case GS_DUST:
 	case GS_SPREADATTACK:
-	case GS_GROUNDDRIFT:
-	
-	case NJ_TOBIDOUGU:
 	case NJ_SYURIKEN:
 	case NJ_KUNAI:
 	case NJ_HUUMA:
-	case NJ_ZENYNAGE:
-	case NJ_TATAMIGAESHI:
-	case NJ_KASUMIKIRI:
-	case NJ_SHADOWJUMP:
-	case NJ_KIRIKAGE:
-	case NJ_UTSUSEMI:
-	case NJ_BUNSINJYUTSU:
-	case NJ_NINPOU:
 		skill_attack(BF_WEAPON,src,src,bl,skillid,skilllv,tick,flag);
 		break;
+	case NJ_ZENYNAGE:
+		skill_attack(BF_MISC,src,src,bl,skillid,skilllv,tick,flag);
+		break;
 	case NJ_KOUENKA:
-	case NJ_KAENSIN:
 	case NJ_BAKUENRYU:
 	case NJ_HYOUSENSOU:
-	case NJ_SUITON:
 	case NJ_HYOUSYOURAKU:
 	case NJ_HUUJIN:
 	case NJ_RAIGEKISAI:
+		skill_attack(BF_MAGIC,src,src,bl,skillid,skilllv,tick,flag);
+		break;
+	//Not implemented yet [Vicious]
+	case GS_FLING:
+	//case GS_BULLSEYE:
+	case GS_MAGICALBULLET:
+	//case GS_CRACKER:
+	//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:
+	//case NJ_ZENYNAGE:
+	case NJ_TATAMIGAESHI:
+	case NJ_KIRIKAGE:
+		skill_attack(BF_WEAPON,src,src,bl,skillid,skilllv,tick,flag);
+		break;
+	//case NJ_KOUENKA:
+	case NJ_KAENSIN:
+	//case NJ_BAKUENRYU:
+	//case NJ_HYOUSENSOU:
+	//case NJ_HYOUSYOURAKU:
+	//case NJ_HUUJIN:
+	//case NJ_RAIGEKISAI:
 	case NJ_KAMAITACHI:
-	case NJ_NEN:
 	case NJ_ISSEN:
 		skill_attack(BF_MAGIC,src,src,bl,skillid,skilllv,tick,flag);
 		break;
@@ -5645,53 +5665,23 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, in
 	case GS_GLITTERING:
 	if(sd) {
 			clif_skill_nodamage(src,bl,skillid,skilllv,1);
-			pc_addspiritball(sd,skill_get_time(skillid,skilllv),skilllv);
+			if(rand()%100 < 50+10*skilllv )
+				pc_addspiritball(sd,skill_get_time(skillid,skilllv),skilllv);
 		}
 		break;
-	case GS_FLING:
-	case GS_TRIPLEACTION:
-	case GS_BULLSEYE:
 	case GS_MADNESSCANCEL:
 	case GS_ADJUSTMENT:
 	case GS_INCREASING:
-	case GS_MAGICALBULLET:
 	case GS_CRACKER:
-	case GS_SINGLEACTION:
-	case GS_SNAKEEYE:
-	case GS_CHAINACTION:
-	case GS_TRACKING:
-	case GS_DISARM:
-	case GS_PIERCINGSHOT:
-	case GS_RAPIDSHOWER:
-	case GS_DESPERADO:
 	case GS_GATLINGFEVER:
-	case GS_DUST:
-	case GS_SPREADATTACK:
 	case GS_GROUNDDRIFT:
 	
-	case NJ_TOBIDOUGU:
-	case NJ_SYURIKEN:
-	case NJ_KUNAI:
-	case NJ_HUUMA:
-	case NJ_ZENYNAGE:
 	case NJ_TATAMIGAESHI:
 	case NJ_KASUMIKIRI:
 	case NJ_SHADOWJUMP:
-	case NJ_KIRIKAGE:
 	case NJ_UTSUSEMI:
 	case NJ_BUNSINJYUTSU:
-	case NJ_NINPOU:
-	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:
 		clif_skill_nodamage(src,bl,skillid,skilllv,
 			sc_start(bl,type,100,skilllv,skill_get_time(skillid,skilllv)));
 		break;