diff options
author | skotlex <skotlex@54d463be-8e91-2dee-dedb-b68131a5f0ec> | 2006-07-03 16:29:17 +0000 |
---|---|---|
committer | skotlex <skotlex@54d463be-8e91-2dee-dedb-b68131a5f0ec> | 2006-07-03 16:29:17 +0000 |
commit | 884ebdf25a8004abb6f5b001734d507c98b4a6b2 (patch) | |
tree | 890f052c5cd927d0c80f8333fe67ef4d7bf1c203 /src | |
parent | 8c01ccc448ce7ba067ece0e0dbc524671754494a (diff) | |
download | hercules-884ebdf25a8004abb6f5b001734d507c98b4a6b2.tar.gz hercules-884ebdf25a8004abb6f5b001734d507c98b4a6b2.tar.bz2 hercules-884ebdf25a8004abb6f5b001734d507c98b4a6b2.tar.xz hercules-884ebdf25a8004abb6f5b001734d507c98b4a6b2.zip |
- Warmth will dispel when warping now (or else the effect is left on the ground)
- Fixed reading of the refine_db not working right when MAX_REFINE is increased from 10.
- Some more cleaning to the implementation of Abracadabra
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@7456 54d463be-8e91-2dee-dedb-b68131a5f0ec
Diffstat (limited to 'src')
-rw-r--r-- | src/map/skill.c | 9 | ||||
-rw-r--r-- | src/map/status.c | 4 | ||||
-rw-r--r-- | src/map/unit.c | 2 |
3 files changed, 9 insertions, 6 deletions
diff --git a/src/map/skill.c b/src/map/skill.c index fd7dc61d9..aee4fb99f 100644 --- a/src/map/skill.c +++ b/src/map/skill.c @@ -3305,10 +3305,11 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, in } do { abra_skillid = rand() % MAX_SKILL_ABRA_DB; - if (skill_abra_db[abra_skillid].req_lv > skilllv || - rand()%10000 >= skill_abra_db[abra_skillid].per || - skill_get_inf2(abra_skillid)&INF2_NPC_SKILL || - skill_get_unit_flag(abra_skillid) &(UF_DANCE|UF_ENSEMBLE|UF_SONG) + if ( + skill_get_inf2(abra_skillid)&(INF2_NPC_SKILL|INF2_SONG_DANCE|INF2_ENSEMBLE_SKILL) || //NPC/Song/Dance skills are out + !skill_get_inf(abra_skillid) || //Passive skills cannot be casted + skill_abra_db[abra_skillid].req_lv > skilllv || //Required lv for it to appear + rand()%10000 >= skill_abra_db[abra_skillid].per ) abra_skillid = 0; // reset to get a new id } while (abra_skillid == 0); diff --git a/src/map/status.c b/src/map/status.c index e39ff93f0..07e12d548 100644 --- a/src/map/status.c +++ b/src/map/status.c @@ -6454,13 +6454,13 @@ int status_readdb(void) { } i=0; while(fgets(line, sizeof(line)-1, fp)){ - char *split[16]; + char *split[MAX_REFINE+4]; if(line[0]=='/' && line[1]=='/') continue; if(atoi(line)<=0) continue; memset(split,0,sizeof(split)); - for(j=0,p=line;j<16 && p;j++){ + for(j=0,p=line;j<MAX_REFINE+4 && p;j++){ split[j]=p; p=strchr(p,','); if(p) *p++=0; diff --git a/src/map/unit.c b/src/map/unit.c index 304160fe8..0b7bb663d 100644 --- a/src/map/unit.c +++ b/src/map/unit.c @@ -1473,6 +1473,8 @@ int unit_remove_map(struct block_list *bl, int clrtype) { status_change_end(bl,SC_RUN,-1); if (sc->data[SC_DANCING].timer!=-1) // clear dance effect when warping [Valaris] skill_stop_dancing(bl); + if (sc->data[SC_WARM].timer!=-1) + status_change_end(bl, SC_WARM, -1); if (sc->data[SC_DEVOTION].timer!=-1) status_change_end(bl,SC_DEVOTION,-1); if (sc->data[SC_MARIONETTE].timer!=-1) |