Browse Source

git-svn-id: https://svn.code.sf.net/p/rathena/svn/branches/stable@706 54d463be-8e91-2dee-dedb-b68131a5f0ec

celest 20 years ago
parent
commit
6422f44e82
2 changed files with 14 additions and 4 deletions
  1. 2 1
      Changelog.txt
  2. 12 3
      src/map/skill.c

+ 2 - 1
Changelog.txt

@@ -22,7 +22,8 @@ Date	Added
           technical ones for the other devs ^^; [celest]
         * Added other new battle_athena options from jA 1082 ... descriptions not
           translated yet [celest]
-        * Removed my own additions for skill delays using aspd and added jA's code [celest]
+        * Removed my own additions for skill delays using aspd and added jA's code
+          (-removed-) [celest]
         * Adapted skill_range_leniency to jA's code - should be more stable [celest]
         * Fixed drop rates only limited to multiples of 100's - thanks to jathena
           for pointing it out [celest]

+ 12 - 3
src/map/skill.c

@@ -7414,9 +7414,8 @@ int skill_delayfix( struct block_list *bl, int time )
 	nullpo_retr(0, bl);
 
 	sc_data = battle_get_sc_data(bl);
-	if(time<=0)
-		return ( battle_get_adelay(bl) / 2 );
-
+/*	if(time<=0)
+		return ( battle_get_adelay(bl) / 2 );*/
 
 	if(bl->type == BL_PC) {
 		if( battle_config.delay_dependon_dex )	/* dexの影響を計算する */
@@ -7751,6 +7750,11 @@ int skill_use_id( struct map_session_data *sd, int target_id,
 	if( casttime<=0 )	/* 詠唱の無いものはキャンセルされない */
 		sd->state.skillcastcancel=0;
 
+	// instant cast attack skills depend on aspd as delay [celest]
+	if (delay <= 0 && skill_db[skill_num].skill_type == BF_WEAPON) {
+		delay = (battle_get_adelay (&sd->bl)/2) * battle_config.delay_rate / 100;
+	}
+
 	sd->skilltarget	= target_id;
 /*	sd->cast_target_bl	= bl; */
 	sd->skillx		= 0;
@@ -7892,6 +7896,11 @@ int skill_use_pos( struct map_session_data *sd,
 	if( casttime<=0 )	/* 詠唱の無いものはキャンセルされない */
 		sd->state.skillcastcancel=0;
 
+	// instant cast attack skills depend on aspd as delay [celest]
+	if (delay <= 0 && skill_db[skill_num].skill_type == BF_WEAPON) {
+		delay = (battle_get_adelay (&sd->bl)/2) * battle_config.delay_rate / 100;
+	}
+	
 	sd->skilltarget	= 0;
 /*	sd->cast_target_bl	= NULL; */
 	tick=gettick();