Browse Source

- Corrected TripleAction's damage. It should do 150%*3 instead of 100*3% damage.
- Updated GS_CRACKER's stun chance using Doddler's info as reference.
- GS_FLING won't reduce armor defense when used on players.
- Added constant MAX_STEAL_DROP to determine up to which slot you can steal.


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

skotlex 18 years ago
parent
commit
4f9e65d7ee
6 changed files with 22 additions and 6 deletions
  1. 5 0
      Changelog-Trunk.txt
  2. 3 0
      src/map/battle.c
  3. 6 2
      src/map/mob.h
  4. 1 1
      src/map/pc.c
  5. 3 2
      src/map/skill.c
  6. 4 1
      src/map/status.c

+ 5 - 0
Changelog-Trunk.txt

@@ -4,6 +4,11 @@ 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/11/21
+	* Corrected TripleAction's damage. It should do 150%*3 instead of 100*3%
+	  damage. [Skotlex]
+	* Updated GS_CRACKER's stun chance using Doddler's info as reference.
+	  [Skotlex]
+	* GS_FLING won't reduce armor defense when used on players. [Skotlex]
 	* Moved ignoreAll to state.ignoreAll so it saves some space. [Skotlex]
 	* Cleaned up clif_parse_Wis to prevent crashes from forged packets
 	  [Skotlex]

+ 3 - 0
src/map/battle.c

@@ -1541,6 +1541,9 @@ static struct Damage battle_calc_weapon_attack(
 					if (sc && sc->data[SC_COMBO].timer != -1 && sc->data[SC_COMBO].val1 == skill_num)
 						skillratio += 10*status_get_lv(src)/3;
 					break;
+				case GS_TRIPLEACTION:
+					skillratio += 50*skill_lv;
+					break;
 				case GS_BULLSEYE:
 					if((tstatus->race == RC_BRUTE || tstatus->race == RC_DEMIHUMAN)
 						&& !(tstatus->mode&MD_BOSS))

+ 6 - 2
src/map/mob.h

@@ -9,11 +9,15 @@
 
 #define MAX_RANDOMMONSTER 3
 #define MAX_MOB_RACE_DB 6
-#define MAX_MOB_DB 10000
-#define MAX_MOB_DROP 10
 	/* Change this to increase the table size in your mob_db to accomodate
 		a larger mob database. Be sure to note that IDs 4001 to 4048 are reserved for advanced/baby/expanded classes.
 	*/
+#define MAX_MOB_DB 10000
+
+//The number of drops all mobs have and the max drop-slot that the steal skill
+//will attempt to steal from.
+#define MAX_MOB_DROP 10
+#define MAX_STEAL_DROP 7
 
 //Min time before mobs do a check to call nearby friends for help (or for slaves to support their master)
 #define MIN_MOBLINKTIME 1000

+ 1 - 1
src/map/pc.c

@@ -3215,7 +3215,7 @@ int pc_steal_item(struct map_session_data *sd,struct block_list *bl, int lv)
 
 	//preliminar statistical data hints at this behaviour:
 	//each steal attempt: try to steal against ONE mob drop, and no more.
-	i = rand()%(MAX_MOB_DROP-1); //You can't steal from the last slot.
+	i = rand()%(MAX_STEAL_DROP); //You can't steal from the last slot.
 
 	if(rand() % 10000 >= md->db->dropitem[i].p*rate/100)
 		return 0;

+ 3 - 2
src/map/skill.c

@@ -5440,9 +5440,10 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, in
 	case GS_CRACKER:
 		if (!dstsd)	// according to latest patch, should not work on players [Reddozen]
 		{
-			int rate=10+(skill_get_range2(src,skillid,skilllv)-distance_bl(src,bl))*20;
+			i =65 -5*distance_bl(src,bl); //Base rate
+			if (i < 30) i = 30;
 			clif_skill_nodamage(src,bl,skillid,skilllv,1);
-			sc_start(bl,SC_STUN,(rate>100)?100:rate,skilllv,skill_get_time2(skillid,skilllv)); //New temp stun rate (by RockmanEXE)
+			sc_start(bl,SC_STUN, i,skilllv,skill_get_time2(skillid,skilllv));
 		}
 		else if (sd)
 			clif_skill_fail(sd,skillid,0,0);

+ 4 - 1
src/map/status.c

@@ -5539,7 +5539,10 @@ int status_change_start(struct block_list *bl,int type,int rate,int val1,int val
 			break;
 
 		case SC_FLING:
-			val2 = 5*val1; //Def reduction
+			if (bl->type == BL_PC)
+				val2 = 0; //No armor reduction to players.
+			else
+				val2 = 5*val1; //Def reduction
 			val3 = 5*val1; //Def2 reduction
 			break;
 		case SC_PROVOKE: