summaryrefslogtreecommitdiff
path: root/src/map/skill.c
diff options
context:
space:
mode:
authorskotlex <skotlex@54d463be-8e91-2dee-dedb-b68131a5f0ec>2007-09-10 17:07:35 +0000
committerskotlex <skotlex@54d463be-8e91-2dee-dedb-b68131a5f0ec>2007-09-10 17:07:35 +0000
commite6d726f486b00d443320269a96a0e6d9a12d8d38 (patch)
treeb2fc96e5b687976248ecfce71ed049464b007354 /src/map/skill.c
parent9343f6e46de1221a00e136c69acc2762c681ba62 (diff)
downloadhercules-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.c14
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)