Selaa lähdekoodia

- Implemented desperado as explained by Rockman-EXE.

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@6454 54d463be-8e91-2dee-dedb-b68131a5f0ec
skotlex 19 vuotta sitten
vanhempi
commit
7f07476e22
6 muutettua tiedostoa jossa 16 lisäystä ja 10 poistoa
  1. 3 0
      Changelog-Trunk.txt
  2. 1 1
      db/skill_cast_db.txt
  3. 1 1
      db/skill_db.txt
  4. 1 1
      db/skill_unit_db.txt
  5. 7 4
      src/map/skill.c
  6. 3 3
      src/map/skill.h

+ 3 - 0
Changelog-Trunk.txt

@@ -4,6 +4,9 @@ AS OF SVN REV. 5091, WE ARE NOW USING TRUNK.  ALL UNTESTED BUGFIXES/FEATURES GO
 IF YOU HAVE A WORKING AND TESTED BUGFIX PUT IT INTO STABLE AS WELL AS TRUNK.
 
 2006/05/02
+	* Implemented desperado as explained by Rockman-EXE. The skill-effect is
+	  not showing up though, I'll need some logged packets to see what's missing.
+	  [Skotlex]
 	* Removed the unit_can_move checks in skill cast-end, they should be
 	  performed in skill_check_require when the skill's state is move_enabled.
 	  [Skotlex]

+ 1 - 1
db/skill_cast_db.txt

@@ -839,7 +839,7 @@
 //-- GS_RAPIDSHOWER
 515,0,1000,0,0,0
 //-- GS_DESPERADO
-516,0,1000,0,0,0
+516,0,1000,1000,1000,0
 //-- GS_GATLINGFEVER
 517,0,1000,0,30000:45000:60000:75000:90000:105000:120000:135000:150000:160000,0
 //-- GS_DUST

+ 1 - 1
db/skill_db.txt

@@ -536,7 +536,7 @@
 513,-3,6,1,0,0,0,5,1,no,0,0,0,weapon,0	//GS_DISARM#Disarm#
 514,3,6,1,0,0,0,5,1,no,0,0,0,weapon,0	//GS_PIERCINGSHOT#Piercing Shot#
 515,3,8,1,0,0,0,10,5,no,0,0,0,weapon,0	//GS_RAPIDSHOWER#Rapid Shower#
-516,-5,8,4,0,2,2,10,-10,no,0,0,0,weapon,0	//GS_DESPERADO#Desperado#
+516,-5,8,4,0,2,2,10,1,no,0,0,0,weapon,0	//GS_DESPERADO#Desperado#
 517,0,6,4,0,1,0,10,1,no,0,0,0,weapon,0	//GS_GATLINGFEVER#Gatling Fever#
 518,-3,6,1,0,0,0,10,1,no,0,0,0,weapon,0	//GS_DUST#Dust#
 519,3,6,1,0,0,0,10,1,no,0,0,0,weapon,0	//GS_FULLBUSTER#Full Buster#

+ 1 - 1
db/skill_unit_db.txt

@@ -86,7 +86,7 @@
 430,0x86,    ,  0, 1, 500,enemy, 0x000	//SG_STAR_WARM
 484,0xb8,    ,  2, 0,1000,enemy, 0x808	//HW_GRAVITATION
 488,0xb9,    ,  3, 0,  -1,all,   0x100	//CG_HERMODE
-516,0xbc,    ,  0, 3,1000,enemy,0x000,GS_DESPERADO#デスペラード
+516,0xba,    ,  0, 3, 100,enemy,0x000,GS_DESPERADO#デスペラード
 521,0xbd,    ,  0, 1,1000,enemy,0x006,GS_GROUNDDRIFT#グラウンドドリフト
 535,0x86,    ,  0, 2,2000,enemy,0x008,NJ_KAENSIN#火炎陣#
 536,0x86,    ,  0, 2, 300,enemy,0x008,NJ_BAKUENRYU#爆炎龍#

+ 7 - 4
src/map/skill.c

@@ -1932,7 +1932,6 @@ int skill_attack( int attack_type, struct block_list* src, struct block_list *ds
 	case SM_MAGNUM:
 	case AS_SPLASHER:
 	case ASC_METEORASSAULT:
-	case GS_DESPERADO:
 	case GS_SPREADATTACK:
 		dmg.dmotion = clif_skill_damage(dsrc,bl,tick,dmg.amotion,dmg.dmotion, damage, dmg.div_, skillid, -1, 5);
 		break;
@@ -3205,8 +3204,8 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, in
 		case CR_GRANDCROSS:
 		case NPC_GRANDDARKNESS:
 		//Until they're at right position - gs_ground- [Vicious]
+		case GS_DESPERADO:
 		case NJ_KAENSIN:	/*火炎陣*/
-		case GS_DESPERADO:	/*デスペラード*/
 		case NJ_HYOUSYOURAKU:
 		case NJ_RAIGEKISAI:
 			return skill_castend_pos2(src,src->x,src->y,skillid,skilllv,tick,0);
@@ -3968,7 +3967,6 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, in
 		break;
 
 	case ASC_METEORASSAULT:	/* �?テオアサルト */
-	case GS_DESPERADO:
 	case GS_SPREADATTACK:
 		clif_skill_nodamage(src,bl,skillid,skilllv,1);
 		map_foreachinrange(skill_area_sub, src,
@@ -5976,6 +5974,7 @@ int skill_castend_pos2( struct block_list *src, int x,int y,int skillid,int skil
 	case WE_CALLPARENT:
 	case WE_CALLBABY:
 	case AC_SHOWER:	//Ground-placed skill implementation.
+	case GS_DESPERADO:
 		skill_unitsetting(src,skillid,skilllv,x,y,0);
 		break;
 
@@ -6154,7 +6153,6 @@ int skill_castend_pos2( struct block_list *src, int x,int y,int skillid,int skil
 		break;
 	
 	//Until they're at right position - gs_unit- [Vicious]
-	case GS_DESPERADO:			/* デスペラード*/
 	case GS_GROUNDDRIFT:		/* グラウンドドリフト*/
 	case NJ_KAENSIN:			/* 火炎陣*/
 	case NJ_BAKUENRYU:			/* 爆炎龍*/
@@ -6871,6 +6869,11 @@ int skill_unit_onplace_timer(struct skill_unit *src,struct block_list *bl,unsign
 				skill_attack(skill_get_type(sg->skill_id),ss,&src->bl,bl,sg->skill_id,sg->skill_lv,tick,0);			
 		}
 		break;
+	case UNT_DESPERADO:
+		if (!(rand()%10)) //Has a low chance of connecting. [Skotlex]
+			skill_attack(BF_WEAPON,ss,&src->bl,bl,sg->skill_id,sg->skill_lv,tick,0);
+		break;
+
 	case UNT_FIREPILLAR_WAITING:
 		skill_unitsetting(ss,sg->skill_id,sg->skill_lv,src->bl.x,src->bl.y,1);
 		skill_delunit(src);

+ 3 - 3
src/map/skill.h

@@ -931,10 +931,10 @@ enum {
 	UNT_SPIDERWEB,
 	UNT_GRAVITATION,
 	UNT_HERMODE,
-
-	UNT_KAENSIN,
+	UNT_DESPERADO,
 	UNT_SUITON,
-	
+	UNT_TATAMIGAESHI,
+	UNT_KAENSIN,
 };
 
 #endif