summaryrefslogtreecommitdiff
path: root/src/map
diff options
context:
space:
mode:
authorskotlex <skotlex@54d463be-8e91-2dee-dedb-b68131a5f0ec>2006-08-21 17:55:19 +0000
committerskotlex <skotlex@54d463be-8e91-2dee-dedb-b68131a5f0ec>2006-08-21 17:55:19 +0000
commit90d59676f4e34d970a7c89d82afc8b57f4b34dc8 (patch)
tree11036b1d86c60f41403827ae6391545b14afac71 /src/map
parent30eed6413ac034f94e6aa2e0064318f153cb2cf8 (diff)
downloadhercules-90d59676f4e34d970a7c89d82afc8b57f4b34dc8.tar.gz
hercules-90d59676f4e34d970a7c89d82afc8b57f4b34dc8.tar.bz2
hercules-90d59676f4e34d970a7c89d82afc8b57f4b34dc8.tar.xz
hercules-90d59676f4e34d970a7c89d82afc8b57f4b34dc8.zip
- Adjusted Glittering's success rate to 20+10*lv%
- Corrected isequipped() so that cards will not be tagged as "used up" unless all the specified items were found. - Fixed a confusion in skill_attack using the src instead of dsrc for some calls, which was causing some problems with the KAITE check from AoE spells. - Fixed ASC_BREAKER's misc damage part not having the ignore-element flag set. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@8406 54d463be-8e91-2dee-dedb-b68131a5f0ec
Diffstat (limited to 'src/map')
-rw-r--r--src/map/battle.c5
-rw-r--r--src/map/script.c12
-rw-r--r--src/map/skill.c8
3 files changed, 17 insertions, 8 deletions
diff --git a/src/map/battle.c b/src/map/battle.c
index c645399e7..51101b3c0 100644
--- a/src/map/battle.c
+++ b/src/map/battle.c
@@ -2519,13 +2519,14 @@ struct Damage battle_calc_misc_attack(
case PA_PRESSURE:
case GS_FLING:
case NJ_ZENYNAGE:
- flag.elefix = flag.cardfix = 0;
+ flag.cardfix = 0;
+ case ASC_BREAKER:
+ flag.elefix = 0;
case HT_BLITZBEAT:
case TF_THROWSTONE:
case SN_FALCONASSAULT:
case PA_GOSPEL:
case CR_ACIDDEMONSTRATION:
- case ASC_BREAKER:
md.flag = (md.flag&~BF_RANGEMASK)|BF_LONG;
break;
case HVAN_EXPLOSION:
diff --git a/src/map/script.c b/src/map/script.c
index 6aa199d1b..7d199721d 100644
--- a/src/map/script.c
+++ b/src/map/script.c
@@ -10796,6 +10796,8 @@ int buildin_isequipped(struct script_state *st)
int i, j, k, id = 1;
int index, flag;
int ret = -1;
+ //Original hash to reverse it when full check fails.
+ unsigned int setitem_hash = 0, setitem_hash2 = 0;
sd = script_rid2sd(st);
@@ -10803,7 +10805,9 @@ int buildin_isequipped(struct script_state *st)
push_val(st->stack,C_INT,0);
return 0;
}
-
+
+ setitem_hash = sd->setitem_hash;
+ setitem_hash2 = sd->setitem_hash2;
for (i=0; id!=0; i++)
{
FETCH (i+2, id) else id = 0;
@@ -10860,7 +10864,11 @@ int buildin_isequipped(struct script_state *st)
ret &= flag;
if (!ret) break;
}
-
+ if (!ret)
+ { //When check fails, restore original hash values. [Skotlex]
+ sd->setitem_hash = setitem_hash;
+ sd->setitem_hash2 = setitem_hash2;
+ }
push_val(st->stack,C_INT,ret);
return 0;
}
diff --git a/src/map/skill.c b/src/map/skill.c
index df2b796e6..ac11dc856 100644
--- a/src/map/skill.c
+++ b/src/map/skill.c
@@ -1818,14 +1818,14 @@ int skill_attack (int attack_type, struct block_list* src, struct block_list *ds
return 0;
} else if (flag && skill_get_nk(skillid)&NK_SPLASH) {
//Note that splash attacks often only check versus the targetted mob, those around the splash area normally don't get checked for being hidden/cloaked/etc. [Skotlex]
- if (!status_check_skilluse(dsrc, bl, skillid, 2))
+ if (!status_check_skilluse(src, bl, skillid, 2))
return 0;
}
- BL_CAST(BL_PC, dsrc, sd);
+ BL_CAST(BL_PC, src, sd);
BL_CAST(BL_PC, bl, tsd);
- sstatus = status_get_status_data(dsrc);
+ sstatus = status_get_status_data(src);
tstatus = status_get_status_data(bl);
// Is this check really needed? FrostNova won't hurt you if you step right where the caster is?
if(skillid == WZ_FROSTNOVA && dsrc->x == bl->x && dsrc->y == bl->y)
@@ -5510,7 +5510,7 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, in
case GS_GLITTERING:
if(sd) {
clif_skill_nodamage(src,bl,skillid,skilllv,1);
- if(rand()%100 < (10+10*skilllv))
+ if(rand()%100 < (20+10*skilllv))
pc_addspiritball(sd,skill_get_time(skillid,skilllv),10);
else if(sd->spiritball > 0)
pc_delspiritball(sd,1,0);