diff options
author | Inkfish <Inkfish@54d463be-8e91-2dee-dedb-b68131a5f0ec> | 2009-08-11 06:26:27 +0000 |
---|---|---|
committer | Inkfish <Inkfish@54d463be-8e91-2dee-dedb-b68131a5f0ec> | 2009-08-11 06:26:27 +0000 |
commit | d3aeb86c334a72a762e5b0a763ef858a9756d473 (patch) | |
tree | ffe8017bfc579395c108b57288cf7c03bcc219b7 /src/map/skill.c | |
parent | 421e1cc98979edbd220c12d8911a96282b045b60 (diff) | |
download | hercules-d3aeb86c334a72a762e5b0a763ef858a9756d473.tar.gz hercules-d3aeb86c334a72a762e5b0a763ef858a9756d473.tar.bz2 hercules-d3aeb86c334a72a762e5b0a763ef858a9756d473.tar.xz hercules-d3aeb86c334a72a762e5b0a763ef858a9756d473.zip |
* Fixed autospell and autobonus will still trigger even if the chance is 0.
* Disabled "show_party_share_picker" functioning on client older than 20071002 to prevent from disconnection. (bugreport:3457)
* Fixed units other than players and mercenaries using Devotion will cause crashes. (bugreport:3475)
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@13999 54d463be-8e91-2dee-dedb-b68131a5f0ec
Diffstat (limited to 'src/map/skill.c')
-rw-r--r-- | src/map/skill.c | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/src/map/skill.c b/src/map/skill.c index 6509eaddb..cdd00f6e5 100644 --- a/src/map/skill.c +++ b/src/map/skill.c @@ -1007,7 +1007,7 @@ int skill_additional_effect (struct block_list* src, struct block_list *bl, int rate = (!sd->state.arrow_atk) ? sd->autospell[i].rate : sd->autospell[i].rate / 2; - if (rand()%1000 > rate) + if (rand()%1000 >= rate) continue; tbl = (sd->autospell[i].id < 0) ? src : bl; @@ -1048,7 +1048,7 @@ int skill_additional_effect (struct block_list* src, struct block_list *bl, int int i; for( i = 0; i < ARRAYLENGTH(sd->autobonus); i++ ) { - if( rand()%1000 > sd->autobonus[i].rate ) + if( rand()%1000 >= sd->autobonus[i].rate ) continue; if( sd->autobonus[i].active != INVALID_TIMER ) continue; @@ -1107,7 +1107,7 @@ int skill_onskillusage(struct map_session_data *sd, struct block_list *bl, int s if( sd->autospell3[i].id >= 0 && bl == NULL ) continue; // No target - if( rand()%1000 > sd->autospell3[i].rate ) + if( rand()%1000 >= sd->autospell3[i].rate ) continue; tbl = (sd->autospell3[i].id < 0) ? &sd->bl : bl; @@ -1129,7 +1129,7 @@ int skill_onskillusage(struct map_session_data *sd, struct block_list *bl, int s { for( i = 0; i < ARRAYLENGTH(sd->autobonus3); i++ ) { - if( rand()%1000 > sd->autobonus3[i].rate ) + if( rand()%1000 >= sd->autobonus3[i].rate ) continue; if( sd->autobonus3[i].active != INVALID_TIMER ) continue; @@ -1270,7 +1270,7 @@ int skill_counter_additional_effect (struct block_list* src, struct block_list * if (skillnotok(skillid, dstsd)) continue; - if (rand()%1000 > rate) + if (rand()%1000 >= rate) continue; tbl = (dstsd->autospell2[i].id < 0) ? bl : src; @@ -1311,7 +1311,7 @@ int skill_counter_additional_effect (struct block_list* src, struct block_list * int i; for( i = 0; i < ARRAYLENGTH(dstsd->autobonus2); i++ ) { - if( rand()%1000 > dstsd->autobonus2[i].rate ) + if( rand()%1000 >= dstsd->autobonus2[i].rate ) continue; if( dstsd->autobonus2[i].active != INVALID_TIMER ) continue; @@ -3815,7 +3815,7 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, in case CR_DEVOTION: { int count, lv; - if( !dstsd ) + if( !dstsd || (!sd && !mer) ) { // Only players can be devoted if( sd ) clif_skill_fail(sd, skillid, 0, 0); |