summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorcelest <celest@54d463be-8e91-2dee-dedb-b68131a5f0ec>2005-01-02 09:59:58 +0000
committercelest <celest@54d463be-8e91-2dee-dedb-b68131a5f0ec>2005-01-02 09:59:58 +0000
commit3c67213c5146804c761558d956d95eb34561dd7a (patch)
tree06730457c811a55cff35644a3a54728090931340 /src
parent9a4314e14fef7680cda7ae187a2594cf5495d11e (diff)
downloadhercules-3c67213c5146804c761558d956d95eb34561dd7a.tar.gz
hercules-3c67213c5146804c761558d956d95eb34561dd7a.tar.bz2
hercules-3c67213c5146804c761558d956d95eb34561dd7a.tar.xz
hercules-3c67213c5146804c761558d956d95eb34561dd7a.zip
* Updated weapon breaking rates
* Optimized enchanting skills success rates calculation * Modified Spiral Pierce and Breaker to type ranged * Updated Berserk Potion git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/branches/stable@891 54d463be-8e91-2dee-dedb-b68131a5f0ec
Diffstat (limited to 'src')
-rw-r--r--src/map/battle.c9
-rw-r--r--src/map/skill.c2
2 files changed, 8 insertions, 3 deletions
diff --git a/src/map/battle.c b/src/map/battle.c
index f59c179b5..9da0b51b2 100644
--- a/src/map/battle.c
+++ b/src/map/battle.c
@@ -2133,6 +2133,7 @@ static struct Damage battle_calc_pet_weapon_attack(
case LK_SPIRALPIERCE: /* スパイラルピアース */
damage = damage*(100+ 50*skill_lv)/100; //増加量が分からないので適当に
div_=5;
+ flag=(flag&~BF_RANGEMASK)|BF_LONG;
if(target->type == BL_PC)
((struct map_session_data *)target)->canmove_tick = gettick() + 1000;
else if(target->type == BL_MOB)
@@ -2629,6 +2630,7 @@ static struct Damage battle_calc_mob_weapon_attack(
case LK_SPIRALPIERCE: /* スパイラルピアース */
damage = damage*(100+ 50*skill_lv)/100; //増加量が分からないので適当に
div_=5;
+ flag=(flag&~BF_RANGEMASK)|BF_LONG;
if(tsd)
tsd->canmove_tick = gettick() + 1000;
else if(tmd)
@@ -3459,6 +3461,7 @@ static struct Damage battle_calc_pc_weapon_attack(
damage = damage*(100+ 50*skill_lv)/100; //増加量が分からないので適当に
damage2 = damage2*(100+ 50*skill_lv)/100; //増加量が分からないので適当に
div_=5;
+ flag=(flag&~BF_RANGEMASK)|BF_LONG;
if(tsd)
tsd->canmove_tick = gettick() + 1000;
else if(tmd)
@@ -3539,6 +3542,8 @@ static struct Damage battle_calc_pc_weapon_attack(
damage3=1;
damage3=battle_attr_fix(damage2,s_ele_, battle_get_element(target) );*/
+
+ flag=(flag&~BF_RANGEMASK)|BF_LONG;
}
break;
}
@@ -4036,7 +4041,7 @@ struct Damage battle_calc_weapon_attack(
if(battle_config.equipment_breaking && src->type==BL_PC && (wd.damage > 0 || wd.damage2 > 0)) {
struct map_session_data *sd=(struct map_session_data *)src;
- int breakrate = 0;
+ int breakrate = 1; //0.01% weapon breaking chance [DracoRPG]
if(sd->status.weapon && sd->status.weapon != 11) {
if(sd->sc_data[SC_MELTDOWN].timer!=-1) {
@@ -4058,7 +4063,7 @@ struct Damage battle_calc_weapon_attack(
}
}
if(sd->sc_data[SC_OVERTHRUST].timer!=-1) {
- breakrate = 10*sd->sc_data[SC_OVERTHRUST].val1;
+ breakrate += 10; //+ 0.1% whatever skill level you use [DracoRPG]
//if(wd.type==0x0a) //removed! because CRITS don't affect on breaking chance [Lupus]
// breakrate*=2;
if(rand()%10000 < breakrate*battle_config.equipment_break_rate/100 || breakrate >= 10000) {
diff --git a/src/map/skill.c b/src/map/skill.c
index 55b531fd7..413fa7ba0 100644
--- a/src/map/skill.c
+++ b/src/map/skill.c
@@ -3233,7 +3233,7 @@ int skill_castend_nodamage_id( struct block_list *src, struct block_list *bl,int
break;
}
}
- if(rand()%100 > (60+skilllv*10) && (skilllv != 5)) {
+ if(skilllv < 4 && rand()%100 > (60+skilllv*10) ) {
clif_skill_fail(sd,skillid,0,0);
clif_skill_nodamage(src,bl,skillid,skilllv,0);
if(bl->type==BL_PC && battle_config.equipment_breaking) {