diff options
author | skotlex <skotlex@54d463be-8e91-2dee-dedb-b68131a5f0ec> | 2007-09-10 17:07:35 +0000 |
---|---|---|
committer | skotlex <skotlex@54d463be-8e91-2dee-dedb-b68131a5f0ec> | 2007-09-10 17:07:35 +0000 |
commit | e6d726f486b00d443320269a96a0e6d9a12d8d38 (patch) | |
tree | b2fc96e5b687976248ecfce71ed049464b007354 /src/map/skill.c | |
parent | 9343f6e46de1221a00e136c69acc2762c681ba62 (diff) | |
download | hercules-e6d726f486b00d443320269a96a0e6d9a12d8d38.tar.gz hercules-e6d726f486b00d443320269a96a0e6d9a12d8d38.tar.bz2 hercules-e6d726f486b00d443320269a96a0e6d9a12d8d38.tar.xz hercules-e6d726f486b00d443320269a96a0e6d9a12d8d38.zip |
- Removed bonus bAddEffWhenHitShort as it is unneeded and unused.
- Corrected getpetinfo so it actually returns "null" when there's no pet and you request the name (the docs state it so).
- Also cleaned up a bit getpetinfo
- Added gethominfo (which behaves in the same way as getpetinfo).
- The 'maxcount' skill_db field now can store independant values per skill-level, required for Kamaitachi since it uses different range values per level.
- Corrected bonus3 bAutoSpell(WhenHit) to select target enemy (rather than self) for skills with inf self and inf2 'don't target self' (aka: auto-select target skills).
- Corrected map_foreachinpath to do a wall check for targets beyond the initially selected tile.
- Corrected Kamaitachi's range to be 9, and the path range to be 4+SkillLv
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@11169 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 9c0ac2f46..27701cf40 100644 --- a/src/map/skill.c +++ b/src/map/skill.c @@ -709,7 +709,7 @@ int skill_get_ammotype( int id ){ skill_get (skill_db[id].ammo, id, 1); } int skill_get_ammo_qty( int id, int lv ){ skill_get (skill_db[id].ammo_qty[lv-1], id, lv); } int skill_get_inf2( int id ){ skill_get (skill_db[id].inf2, id, 1); } int skill_get_castcancel( int id ){ skill_get (skill_db[id].castcancel, id, 1); } -int skill_get_maxcount( int id ){ skill_get (skill_db[id].maxcount, id, 1); } +int skill_get_maxcount( int id ,int lv ){ skill_get (skill_db[id].maxcount[lv-1], id, lv); } int skill_get_blewcount( int id ,int lv ){ skill_get (skill_db[id].blewcount[lv-1], id, lv); } int skill_get_mhp( int id ,int lv ){ skill_get (skill_db[id].mhp[lv-1], id, lv); } int skill_get_castnodex( int id ,int lv ){ skill_get (skill_db[id].castnodex[lv-1], id, lv); } @@ -2920,7 +2920,7 @@ int skill_castend_damage_id (struct block_list* src, struct block_list *bl, int //line of sight between caster and target. skill_area_temp[1] = bl->id; map_foreachinpath (skill_attack_area,src->m,src->x,src->y,bl->x,bl->y, - skill_get_splash(skillid, skilllv),skill_get_maxcount(skillid), BL_CHAR, + skill_get_splash(skillid, skilllv),skill_get_maxcount(skillid,skilllv), BL_CHAR, skill_get_type(skillid),src,src,skillid,skilllv,tick,flag,BCT_ENEMY); break; @@ -2931,7 +2931,7 @@ int skill_castend_damage_id (struct block_list* src, struct block_list *bl, int case NPC_THUNDERBREATH: skill_area_temp[1] = bl->id; map_foreachinpath(skill_attack_area,src->m,src->x,src->y,bl->x,bl->y, - skill_get_splash(skillid, skilllv),skill_get_maxcount(skillid), BL_CHAR, + skill_get_splash(skillid, skilllv),skill_get_maxcount(skillid,skilllv), BL_CHAR, skill_get_type(skillid),src,src,skillid,skilllv,tick,flag,BCT_ENEMY); break; @@ -5974,7 +5974,7 @@ int skill_castend_pos (int tid, unsigned int tick, int id, int data) break; if(battle_config.land_skill_limit && src->type&battle_config.land_skill_limit && - (maxcount = skill_get_maxcount(ud->skillid)) > 0 + (maxcount = skill_get_maxcount(ud->skillid, ud->skilllv)) > 0 ) { int i; for(i=0;i<MAX_SKILLUNITGROUP && ud->skillunit[i] && maxcount;i++) { @@ -6492,7 +6492,7 @@ int skill_castend_map (struct map_session_data *sd, int skill_num, const char *m p[2] = &sd->status.memo_point[1]; p[3] = &sd->status.memo_point[2]; - if((maxcount = skill_get_maxcount(skill_num)) > 0) { + if((maxcount = skill_get_maxcount(skill_num, sd->menuskill_val)) > 0) { for(i=0;i<MAX_SKILLUNITGROUP && sd->ud.skillunit[i] && maxcount;i++) { if(sd->ud.skillunit[i]->skill_id == skill_num) maxcount--; @@ -8388,7 +8388,7 @@ int skill_check_condition (struct map_session_data *sd, int skill, int lv, int t int c=0; int summons[5] = { 1589, 1579, 1575, 1555, 1590 }; //int summons[5] = { 1020, 1068, 1118, 1500, 1368 }; - int maxcount = (skill==AM_CANNIBALIZE)? 6-lv : skill_get_maxcount(skill); + int maxcount = (skill==AM_CANNIBALIZE)? 6-lv : skill_get_maxcount(skill,lv); int mob_class = (skill==AM_CANNIBALIZE)? summons[lv-1] :1142; if(battle_config.land_skill_limit && maxcount>0 && (battle_config.land_skill_limit&BL_PC)) { i = map_foreachinmap(skill_check_condition_mob_master_sub ,sd->bl.m, BL_MOB, sd->bl.id, mob_class, skill, &c); @@ -11355,7 +11355,7 @@ int skill_readdb (void) skill_db[i].castcancel=0; skill_db[i].cast_def_rate=atoi(split[10]); skill_db[i].inf2=(int)strtol(split[11], NULL, 0); - skill_db[i].maxcount=atoi(split[12]); + skill_split_atoi(split[12], skill_db[i].maxcount); if(strcmpi(split[13],"weapon") == 0) skill_db[i].skill_type=BF_WEAPON; else if(strcmpi(split[13],"magic") == 0) |