summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorskotlex <skotlex@54d463be-8e91-2dee-dedb-b68131a5f0ec>2006-07-08 18:24:39 +0000
committerskotlex <skotlex@54d463be-8e91-2dee-dedb-b68131a5f0ec>2006-07-08 18:24:39 +0000
commit1324165fd673fc2431a50e0dbe530cce352eb70d (patch)
tree35ba19b7aec86c9e69cb3943b0ba87e49ec34a23 /src
parent2c9c73b3121b9bba577c053ebbf8783e69b73f59 (diff)
downloadhercules-1324165fd673fc2431a50e0dbe530cce352eb70d.tar.gz
hercules-1324165fd673fc2431a50e0dbe530cce352eb70d.tar.bz2
hercules-1324165fd673fc2431a50e0dbe530cce352eb70d.tar.xz
hercules-1324165fd673fc2431a50e0dbe530cce352eb70d.zip
- Fixed the new addeff structure not working well with SC_STONE (because SC_STONE is 0, which was by default not handled as a valid value).
- Added back the TF_MISS walking speed bonus to assassin type classes (how did that got lost?) git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@7583 54d463be-8e91-2dee-dedb-b68131a5f0ec
Diffstat (limited to 'src')
-rw-r--r--src/map/pc.c5
-rw-r--r--src/map/skill.c4
-rw-r--r--src/map/status.c2
3 files changed, 6 insertions, 5 deletions
diff --git a/src/map/pc.c b/src/map/pc.c
index 4604ef41c..3fcb2ee41 100644
--- a/src/map/pc.c
+++ b/src/map/pc.c
@@ -1173,12 +1173,11 @@ static int pc_bonus_autospell(struct s_autospell *spell, int max, short id, shor
static int pc_bonus_addeff(struct s_addeffect *effect, int max, short id, short rate, short arrow_rate, unsigned char flag) {
int i;
-
- for (i = 0; i < max && effect[i].id; i++) {
+ for (i = 0; i < max && effect[i].flag; i++) {
if (effect[i].id == id && effect[i].flag == flag)
{
effect[i].rate += rate;
- effect[i].arrow_rate += rate;
+ effect[i].arrow_rate += arrow_rate;
return 1;
}
}
diff --git a/src/map/skill.c b/src/map/skill.c
index 85c67f574..16094e289 100644
--- a/src/map/skill.c
+++ b/src/map/skill.c
@@ -1339,7 +1339,7 @@ int skill_additional_effect (struct block_list* src, struct block_list *bl, int
skillid != CR_REFLECTSHIELD
){ //Trigger status effects
int i, type;
- for(i=0; i < MAX_PC_BONUS && sd->addeff[i].id; i++)
+ for(i=0; i < MAX_PC_BONUS && sd->addeff[i].flag; i++)
{
rate = sd->addeff[i].rate;
type = sd->state.arrow_atk; //Ranged?
@@ -1478,7 +1478,7 @@ int skill_counter_additional_effect (struct block_list* src, struct block_list *
if(dstsd && attack_type&BF_WEAPON)
{ //Counter effects.
int i, type, time;
- for(i=0; i < MAX_PC_BONUS && dstsd->addeff2[i].id; i++)
+ for(i=0; i < MAX_PC_BONUS && dstsd->addeff2[i].flag; i++)
{
rate = dstsd->addeff2[i].rate;
type = (sd && sd->state.arrow_atk) || (status_get_range(src)>2);
diff --git a/src/map/status.c b/src/map/status.c
index 1cc6f5f49..daa6a17d4 100644
--- a/src/map/status.c
+++ b/src/map/status.c
@@ -2011,6 +2011,8 @@ int status_calc_pc(struct map_session_data* sd,int first)
// ----- WALKING SPEED CALCULATION -----
// Relative modifiers from passive skills
+ if((sd->class_&MAPID_UPPERMASK) == MAPID_ASSASSIN && (skill=pc_checkskill(sd,TF_MISS))>0)
+ status->speed -= status->speed * skill/100;
if(pc_isriding(sd) && pc_checkskill(sd,KN_RIDING)>0)
status->speed -= status->speed * 25/100;
if(pc_iscarton(sd) && (skill=pc_checkskill(sd,MC_PUSHCART))>0)