summaryrefslogtreecommitdiff
path: root/src/map
diff options
context:
space:
mode:
authorskotlex <skotlex@54d463be-8e91-2dee-dedb-b68131a5f0ec>2006-11-21 19:47:20 +0000
committerskotlex <skotlex@54d463be-8e91-2dee-dedb-b68131a5f0ec>2006-11-21 19:47:20 +0000
commit11414d1e6ba30951ca99071255d479b64858464f (patch)
tree0c97d84fda3076595e6033cf1b6ac71c4c2f1661 /src/map
parentf1f903e398fc76d8286bc0ea8aaee97fb32d8bee (diff)
downloadhercules-11414d1e6ba30951ca99071255d479b64858464f.tar.gz
hercules-11414d1e6ba30951ca99071255d479b64858464f.tar.bz2
hercules-11414d1e6ba30951ca99071255d479b64858464f.tar.xz
hercules-11414d1e6ba30951ca99071255d479b64858464f.zip
- 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://rathena.svn.sourceforge.net/svnroot/rathena/trunk@9286 54d463be-8e91-2dee-dedb-b68131a5f0ec
Diffstat (limited to 'src/map')
-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
5 files changed, 17 insertions, 6 deletions
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: