summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Changelog-Trunk.txt5
-rw-r--r--src/map/battle.c3
-rw-r--r--src/map/mob.h8
-rw-r--r--src/map/pc.c2
-rw-r--r--src/map/skill.c5
-rw-r--r--src/map/status.c5
6 files changed, 22 insertions, 6 deletions
diff --git a/Changelog-Trunk.txt b/Changelog-Trunk.txt
index 32c7a4999..c1bb15c1f 100644
--- a/Changelog-Trunk.txt
+++ b/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]
diff --git a/src/map/battle.c b/src/map/battle.c
index 93829cb6e..ab223789d 100644
--- a/src/map/battle.c
+++ b/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))
diff --git a/src/map/mob.h b/src/map/mob.h
index bb4e1ac57..3156ecf5d 100644
--- a/src/map/mob.h
+++ b/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
diff --git a/src/map/pc.c b/src/map/pc.c
index 0ae9eaae9..a589694d8 100644
--- a/src/map/pc.c
+++ b/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;
diff --git a/src/map/skill.c b/src/map/skill.c
index c4a035f07..53a212465 100644
--- a/src/map/skill.c
+++ b/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);
diff --git a/src/map/status.c b/src/map/status.c
index 7cd554b3e..95b63ba92 100644
--- a/src/map/status.c
+++ b/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: