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:
parent
b2aeae0dcc
commit
989a557598
@ -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
|
||||||
|
@ -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;
|
||||||
|
|
||||||
|
@ -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;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -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]);
|
||||||
|
@ -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 );
|
||||||
|
@ -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)
|
||||||
|
@ -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;
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user