diff options
author | skotlex <skotlex@54d463be-8e91-2dee-dedb-b68131a5f0ec> | 2006-07-08 18:24:39 +0000 |
---|---|---|
committer | skotlex <skotlex@54d463be-8e91-2dee-dedb-b68131a5f0ec> | 2006-07-08 18:24:39 +0000 |
commit | 1324165fd673fc2431a50e0dbe530cce352eb70d (patch) | |
tree | 35ba19b7aec86c9e69cb3943b0ba87e49ec34a23 /src | |
parent | 2c9c73b3121b9bba577c053ebbf8783e69b73f59 (diff) | |
download | hercules-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.c | 5 | ||||
-rw-r--r-- | src/map/skill.c | 4 | ||||
-rw-r--r-- | src/map/status.c | 2 |
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) |