Removed some long-unneccessary debug messages (from r1105).

Removed function skill_count_target() because it's a duplicate (see topic:169337).
Renamed skill_get_pl to skill_get_ele (because it retrieves element ids).
The block_list structure now uses the BL_ enums instead of 'unsigned char'.

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@11640 54d463be-8e91-2dee-dedb-b68131a5f0ec
This commit is contained in:
ultramage 2007-11-02 15:54:27 +00:00
parent b2aeae0dcc
commit 989a557598
7 changed files with 24 additions and 46 deletions

View File

@ -4,8 +4,8 @@
// if range is < 5, the skill is considered melee-range) // if range is < 5, the skill is considered melee-range)
// 03 hit (8- repeated hitting, 6- single-hit) // 03 hit (8- repeated hitting, 6- single-hit)
// 04 inf (0- passive, 1- enemy, 2- place, 4- self, 16- friend, 32- trap) // 04 inf (0- passive, 1- enemy, 2- place, 4- self, 16- friend, 32- trap)
// 05 pl attributes (0- neutral, 1- water, 2- earth, 3- fire, 4- wind, // 05 element (0- neutral, 1- water, 2- earth, 3- fire, 4- wind, 5- poison,
// 5- poison, 6- holy, 7- dark, 8- ghost, 9- undead, -1- use weapon element) // 6- holy, 7- dark, 8- ghost, 9- undead, -1- use weapon element)
// 06 nk (skill damage properties): // 06 nk (skill damage properties):
// 0x01 - No damage skill // 0x01 - No damage skill
// 0x02 - Has splash area // 0x02 - Has splash area

View File

@ -833,8 +833,7 @@ struct Damage battle_calc_misc_attack(struct block_list *src,struct block_list *
/*========================================== /*==========================================
* battle_calc_weapon_attack (by Skotlex) * battle_calc_weapon_attack (by Skotlex)
*------------------------------------------*/ *------------------------------------------*/
static struct Damage battle_calc_weapon_attack( static struct Damage battle_calc_weapon_attack(struct block_list *src,struct block_list *target,int skill_num,int skill_lv,int wflag)
struct block_list *src,struct block_list *target,int skill_num,int skill_lv,int wflag)
{ {
unsigned int skillratio = 100; //Skill dmg modifiers. unsigned int skillratio = 100; //Skill dmg modifiers.
short skill=0; short skill=0;
@ -966,7 +965,7 @@ static struct Damage battle_calc_weapon_attack(
} }
t_class = status_get_class(target); t_class = status_get_class(target);
s_ele = s_ele_ = skill_get_pl(skill_num, skill_lv); s_ele = s_ele_ = skill_get_ele(skill_num, skill_lv);
if (!skill_num || s_ele == -1) { //Take weapon's element if (!skill_num || s_ele == -1) { //Take weapon's element
s_ele = sstatus->rhw.ele; s_ele = sstatus->rhw.ele;
s_ele_ = sstatus->lhw?sstatus->lhw->ele:0; s_ele_ = sstatus->lhw?sstatus->lhw->ele:0;
@ -2135,7 +2134,7 @@ struct Damage battle_calc_magic_attack(struct block_list *src,struct block_list
BL_CAST(BL_PC, target, tsd); BL_CAST(BL_PC, target, tsd);
//Initialize variables that will be used afterwards //Initialize variables that will be used afterwards
s_ele = skill_get_pl(skill_num, skill_lv); s_ele = skill_get_ele(skill_num, skill_lv);
if (s_ele == -1) // pl=-1 : the skill takes the weapon's element if (s_ele == -1) // pl=-1 : the skill takes the weapon's element
s_ele = sstatus->rhw.ele; s_ele = sstatus->rhw.ele;
@ -2468,7 +2467,7 @@ struct Damage battle_calc_misc_attack(struct block_list *src,struct block_list *
md.blewcount += battle_blewcount_bonus(sd, skill_num); md.blewcount += battle_blewcount_bonus(sd, skill_num);
} }
s_ele = skill_get_pl(skill_num, skill_lv); s_ele = skill_get_ele(skill_num, skill_lv);
if (s_ele < 0) //Attack that takes weapon's element for misc attacks? Make it neutral [Skotlex] if (s_ele < 0) //Attack that takes weapon's element for misc attacks? Make it neutral [Skotlex]
s_ele = ELE_NEUTRAL; s_ele = ELE_NEUTRAL;

View File

@ -232,8 +232,8 @@ struct block_list {
struct block_list *next,*prev; struct block_list *next,*prev;
int id; int id;
short m,x,y; short m,x,y;
unsigned char type; enum bl_type type;
unsigned char subtype; enum bl_subtype subtype;
}; };
struct walkpath_data { struct walkpath_data {
@ -253,7 +253,7 @@ struct skill_timerskill {
int map; int map;
short x,y; short x,y;
short skill_id,skill_lv; short skill_id,skill_lv;
int type; int type; // a BF_ type (NOTE: some places use this as general-purpose storage...)
int flag; int flag;
}; };

View File

@ -692,7 +692,7 @@ int icewall_unit_pos;
// Skill DB // Skill DB
int skill_get_hit( int id ){ skill_get (skill_db[id].hit, id, 1); } int skill_get_hit( int id ){ skill_get (skill_db[id].hit, id, 1); }
int skill_get_inf( int id ){ skill_get (skill_db[id].inf, id, 1); } int skill_get_inf( int id ){ skill_get (skill_db[id].inf, id, 1); }
int skill_get_pl( int id , int lv ){ skill_get (skill_db[id].pl[lv-1], id, lv); } int skill_get_ele( int id , int lv ){ skill_get (skill_db[id].element[lv-1], id, lv); }
int skill_get_nk( int id ){ skill_get (skill_db[id].nk, id, 1); } int skill_get_nk( int id ){ skill_get (skill_db[id].nk, id, 1); }
int skill_get_max( int id ){ skill_get (skill_db[id].max, id, 1); } int skill_get_max( int id ){ skill_get (skill_db[id].max, id, 1); }
int skill_get_range( int id , int lv ){ skill_get(skill_db[id].range[lv-1], id, lv); } int skill_get_range( int id , int lv ){ skill_get(skill_db[id].range[lv-1], id, lv); }
@ -774,7 +774,6 @@ int skill_greed(struct block_list *bl, va_list ap);
int skill_cell_overlap(struct block_list *bl, va_list ap); int skill_cell_overlap(struct block_list *bl, va_list ap);
int skill_ganbatein(struct block_list *bl, va_list ap); int skill_ganbatein(struct block_list *bl, va_list ap);
int skill_trap_splash(struct block_list *bl, va_list ap); int skill_trap_splash(struct block_list *bl, va_list ap);
int skill_count_target(struct block_list *bl, va_list ap);
struct skill_unit_group_tickset *skill_unitgrouptickset_search(struct block_list *bl,struct skill_unit_group *sg,int tick); struct skill_unit_group_tickset *skill_unitgrouptickset_search(struct block_list *bl,struct skill_unit_group *sg,int tick);
static int skill_unit_onplace(struct skill_unit *src,struct block_list *bl,unsigned int tick); static int skill_unit_onplace(struct skill_unit *src,struct block_list *bl,unsigned int tick);
static int skill_unit_onleft(int skill_id, struct block_list *bl,unsigned int tick); static int skill_unit_onleft(int skill_id, struct block_list *bl,unsigned int tick);
@ -1036,11 +1035,7 @@ int skill_additional_effect (struct block_list* src, struct block_list *bl, int
nullpo_retr(0, src); nullpo_retr(0, src);
nullpo_retr(0, bl); nullpo_retr(0, bl);
if(skillid < 0) if(skillid < 0) return 0;
{ // remove the debug print when this case is finished
ShowDebug("skill_additional_effect: skillid=%i\ncall: %p %p %i %i %i %i",skillid,src,bl,skillid,skilllv,attack_type,tick);
return 0;
}
if(skillid > 0 && skilllv <= 0) return 0; // don't forget auto attacks! - celest if(skillid > 0 && skilllv <= 0) return 0; // don't forget auto attacks! - celest
BL_CAST(BL_PC, src, sd); BL_CAST(BL_PC, src, sd);
@ -1568,12 +1563,7 @@ int skill_counter_additional_effect (struct block_list* src, struct block_list *
nullpo_retr(0, src); nullpo_retr(0, src);
nullpo_retr(0, bl); nullpo_retr(0, bl);
if(skillid < 0) if(skillid < 0) return 0;
{ // remove the debug print when this case is finished
ShowDebug("skill_counter_additional_effect: skillid=%i\ncall: %p %p %i %i %i %i",skillid,
src, bl,skillid,skilllv,attack_type,tick);
return 0;
}
if(skillid > 0 && skilllv <= 0) return 0; // don't forget auto attacks! - celest if(skillid > 0 && skilllv <= 0) return 0; // don't forget auto attacks! - celest
tsc = status_get_sc(bl); tsc = status_get_sc(bl);
@ -2005,7 +1995,7 @@ int skill_attack (int attack_type, struct block_list* src, struct block_list *ds
struct pet_data *pd = (TBL_PET*)src; struct pet_data *pd = (TBL_PET*)src;
if (pd->a_skill && pd->a_skill->div_ && pd->a_skill->id == skillid) if (pd->a_skill && pd->a_skill->div_ && pd->a_skill->id == skillid)
{ {
int element = skill_get_pl(skillid, skilllv); int element = skill_get_ele(skillid, skilllv);
if (skillid == -1) if (skillid == -1)
element = sstatus->rhw.ele; element = sstatus->rhw.ele;
if (element != ELE_NEUTRAL || !(battle_config.attack_attr_none&BL_PET)) if (element != ELE_NEUTRAL || !(battle_config.attack_attr_none&BL_PET))
@ -3312,8 +3302,7 @@ int skill_castend_damage_id (struct block_list* src, struct block_list *bl, int
} }
cnt--; cnt--;
if (cnt > 0) if (cnt > 0)
skill_addtimerskill(src,tick+125,bl->id,0,0, skill_addtimerskill(src,tick+125,bl->id,0,0,skillid,skilllv,cnt,flag);
skillid,skilllv,cnt,flag);
} else if (sd) //Eat up deluge tiles. } else if (sd) //Eat up deluge tiles.
skill_count_water(src,0); skill_count_water(src,0);
@ -3508,7 +3497,7 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, in
tsc = status_get_sc(bl); tsc = status_get_sc(bl);
if (src!=bl && type > -1 && if (src!=bl && type > -1 &&
(i = skill_get_pl(skillid, skilllv)) > ELE_NEUTRAL && (i = skill_get_ele(skillid, skilllv)) > ELE_NEUTRAL &&
skill_get_inf(skillid) != INF_SUPPORT_SKILL && skill_get_inf(skillid) != INF_SUPPORT_SKILL &&
battle_attr_fix(NULL, NULL, 100, i, tstatus->def_ele, tstatus->ele_lv) <= 0) battle_attr_fix(NULL, NULL, 100, i, tstatus->def_ele, tstatus->ele_lv) <= 0)
return 1; //Skills that cause an status should be blocked if the target element blocks its element. return 1; //Skills that cause an status should be blocked if the target element blocks its element.
@ -3871,11 +3860,11 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, in
case ITEM_ENCHANTARMS: case ITEM_ENCHANTARMS:
clif_skill_nodamage(src,bl,skillid,skilllv, clif_skill_nodamage(src,bl,skillid,skilllv,
sc_start2(bl,type,100,skilllv, sc_start2(bl,type,100,skilllv,
skill_get_pl(skillid,skilllv), skill_get_time(skillid,skilllv))); skill_get_ele(skillid,skilllv), skill_get_time(skillid,skilllv)));
break; break;
case TK_SEVENWIND: case TK_SEVENWIND:
switch(skill_get_pl(skillid,skilllv)) { switch(skill_get_ele(skillid,skilllv)) {
case ELE_EARTH : type = SC_EARTHWEAPON; break; case ELE_EARTH : type = SC_EARTHWEAPON; break;
case ELE_WIND : type = SC_WINDWEAPON; break; case ELE_WIND : type = SC_WINDWEAPON; break;
case ELE_WATER : type = SC_WATERWEAPON; break; case ELE_WATER : type = SC_WATERWEAPON; break;
@ -5004,7 +4993,7 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, in
case NPC_CHANGETELEKINESIS: case NPC_CHANGETELEKINESIS:
case NPC_CHANGEUNDEAD: case NPC_CHANGEUNDEAD:
clif_skill_nodamage(src,bl,skillid,skilllv, clif_skill_nodamage(src,bl,skillid,skilllv,
sc_start2(bl, type, 100, skilllv, skill_get_pl(skillid,skilllv), sc_start2(bl, type, 100, skilllv, skill_get_ele(skillid,skilllv),
skill_get_time(skillid, skilllv))); skill_get_time(skillid, skilllv)));
break; break;
@ -9686,16 +9675,6 @@ int skill_chastle_mob_changetarget(struct block_list *bl,va_list ap)
return 0; return 0;
} }
/*==========================================
* srcに対して有効なターゲットのblの数を数える(foreachinarea)
*------------------------------------------*/
int skill_count_target (struct block_list *bl, va_list ap)
{
struct block_list *src = va_arg(ap,struct block_list *);
if (battle_check_target(src,bl,BCT_ENEMY) > 0)
return 1;
return 0;
}
/*========================================== /*==========================================
* *
*------------------------------------------*/ *------------------------------------------*/
@ -11409,7 +11388,7 @@ int skill_readdb (void)
skill_split_atoi(split[1],skill_db[i].range); skill_split_atoi(split[1],skill_db[i].range);
skill_db[i].hit=atoi(split[2]); skill_db[i].hit=atoi(split[2]);
skill_db[i].inf=atoi(split[3]); skill_db[i].inf=atoi(split[3]);
skill_split_atoi(split[4],skill_db[i].pl); skill_split_atoi(split[4],skill_db[i].element);
skill_db[i].nk=(int)strtol(split[5], NULL, 0); skill_db[i].nk=(int)strtol(split[5], NULL, 0);
skill_split_atoi(split[6],skill_db[i].splash); skill_split_atoi(split[6],skill_db[i].splash);
skill_db[i].max=atoi(split[7]); skill_db[i].max=atoi(split[7]);

View File

@ -63,7 +63,7 @@
struct s_skill_db { struct s_skill_db {
char *name; char *name;
char *desc; char *desc;
int range[MAX_SKILL_LEVEL],hit,inf,pl[MAX_SKILL_LEVEL],nk,splash[MAX_SKILL_LEVEL],max; int range[MAX_SKILL_LEVEL],hit,inf,element[MAX_SKILL_LEVEL],nk,splash[MAX_SKILL_LEVEL],max;
int num[MAX_SKILL_LEVEL]; int num[MAX_SKILL_LEVEL];
int cast[MAX_SKILL_LEVEL],walkdelay[MAX_SKILL_LEVEL],delay[MAX_SKILL_LEVEL]; int cast[MAX_SKILL_LEVEL],walkdelay[MAX_SKILL_LEVEL],delay[MAX_SKILL_LEVEL];
int upkeep_time[MAX_SKILL_LEVEL],upkeep_time2[MAX_SKILL_LEVEL]; int upkeep_time[MAX_SKILL_LEVEL],upkeep_time2[MAX_SKILL_LEVEL];
@ -155,7 +155,7 @@ int skill_get_casttype(int id); //[Skotlex]
int skill_get_type( int id ); int skill_get_type( int id );
int skill_get_hit( int id ); int skill_get_hit( int id );
int skill_get_inf( int id ); int skill_get_inf( int id );
int skill_get_pl( int id , int lv ); int skill_get_ele( int id , int lv );
int skill_get_nk( int id ); int skill_get_nk( int id );
int skill_get_max( int id ); int skill_get_max( int id );
int skill_get_range( int id , int lv ); int skill_get_range( int id , int lv );

View File

@ -1112,7 +1112,7 @@ int status_check_skilluse(struct block_list *src, struct block_list *target, int
hide_flag = flag?OPTION_HIDE:(OPTION_HIDE|OPTION_CLOAK|OPTION_CHASEWALK); hide_flag = flag?OPTION_HIDE:(OPTION_HIDE|OPTION_CLOAK|OPTION_CHASEWALK);
//You cannot hide from ground skills. //You cannot hide from ground skills.
if(skill_get_pl(skill_num,1) == ELE_EARTH) //TODO: Need Skill Lv here :/ if(skill_get_ele(skill_num,1) == ELE_EARTH) //TODO: Need Skill Lv here :/
hide_flag &= ~OPTION_HIDE; hide_flag &= ~OPTION_HIDE;
switch (target->type) switch (target->type)

View File

@ -995,7 +995,7 @@ int unit_skilluse_id2(struct block_list *src, int target_id, short skill_num, sh
if( casttime>0 || temp){ if( casttime>0 || temp){
clif_skillcasting(src, src->id, target_id, 0,0, skill_num, skill_get_pl(skill_num, skill_lv), casttime); clif_skillcasting(src, src->id, target_id, 0,0, skill_num, skill_get_ele(skill_num, skill_lv), casttime);
if (sd && target->type == BL_MOB) if (sd && target->type == BL_MOB)
{ {
@ -1131,7 +1131,7 @@ int unit_skilluse_pos2( struct block_list *src, short skill_x, short skill_y, sh
if( casttime>0 ) { if( casttime>0 ) {
unit_stop_walking( src, 1); unit_stop_walking( src, 1);
clif_skillcasting(src, src->id, 0, skill_x, skill_y, skill_num, skill_get_pl(skill_num, skill_lv), casttime); clif_skillcasting(src, src->id, 0, skill_x, skill_y, skill_num, skill_get_ele(skill_num, skill_lv), casttime);
} else } else
ud->state.skillcastcancel=0; ud->state.skillcastcancel=0;