Added support for skill scale display (#5041)
Fixes #4530 Thanks to @Balferian
This commit is contained in:
parent
f218994054
commit
d87ac21986
@ -145,3 +145,7 @@ ping_timer_inverval: 30
|
|||||||
|
|
||||||
// Send packets timeout in seconds before ping packet can be sent.
|
// Send packets timeout in seconds before ping packet can be sent.
|
||||||
ping_time: 20
|
ping_time: 20
|
||||||
|
|
||||||
|
// Show skill scale for clients 2015-12-23 and newer? (Note 1)
|
||||||
|
// Official: yes
|
||||||
|
show_skill_scale: yes
|
||||||
|
@ -15309,6 +15309,7 @@ Body:
|
|||||||
Flags:
|
Flags:
|
||||||
IsNpc: true
|
IsNpc: true
|
||||||
TargetTrap: true
|
TargetTrap: true
|
||||||
|
ShowScale: true
|
||||||
Hit: Multi_Hit
|
Hit: Multi_Hit
|
||||||
HitCount: 1
|
HitCount: 1
|
||||||
SplashArea:
|
SplashArea:
|
||||||
@ -15414,6 +15415,7 @@ Body:
|
|||||||
Splash: true
|
Splash: true
|
||||||
Flags:
|
Flags:
|
||||||
IsNpc: true
|
IsNpc: true
|
||||||
|
ShowScale: true
|
||||||
Hit: Single
|
Hit: Single
|
||||||
HitCount: 1
|
HitCount: 1
|
||||||
SplashArea:
|
SplashArea:
|
||||||
@ -15460,6 +15462,7 @@ Body:
|
|||||||
Flags:
|
Flags:
|
||||||
IsNpc: true
|
IsNpc: true
|
||||||
TargetTrap: true
|
TargetTrap: true
|
||||||
|
ShowScale: true
|
||||||
Hit: Single
|
Hit: Single
|
||||||
HitCount: 1
|
HitCount: 1
|
||||||
SplashArea: 7
|
SplashArea: 7
|
||||||
@ -15475,6 +15478,7 @@ Body:
|
|||||||
Flags:
|
Flags:
|
||||||
IsNpc: true
|
IsNpc: true
|
||||||
TargetTrap: true
|
TargetTrap: true
|
||||||
|
ShowScale: true
|
||||||
Hit: Single
|
Hit: Single
|
||||||
HitCount: 1
|
HitCount: 1
|
||||||
SplashArea: 14
|
SplashArea: 14
|
||||||
@ -15489,6 +15493,7 @@ Body:
|
|||||||
Splash: true
|
Splash: true
|
||||||
Flags:
|
Flags:
|
||||||
IsNpc: true
|
IsNpc: true
|
||||||
|
ShowScale: true
|
||||||
Hit: Single
|
Hit: Single
|
||||||
HitCount: 1
|
HitCount: 1
|
||||||
SplashArea:
|
SplashArea:
|
||||||
@ -15513,6 +15518,7 @@ Body:
|
|||||||
Splash: true
|
Splash: true
|
||||||
Flags:
|
Flags:
|
||||||
IsNpc: true
|
IsNpc: true
|
||||||
|
ShowScale: true
|
||||||
Hit: Single
|
Hit: Single
|
||||||
HitCount: 1
|
HitCount: 1
|
||||||
SplashArea:
|
SplashArea:
|
||||||
@ -15537,6 +15543,7 @@ Body:
|
|||||||
Splash: true
|
Splash: true
|
||||||
Flags:
|
Flags:
|
||||||
IsNpc: true
|
IsNpc: true
|
||||||
|
ShowScale: true
|
||||||
Hit: Single
|
Hit: Single
|
||||||
HitCount: 1
|
HitCount: 1
|
||||||
SplashArea:
|
SplashArea:
|
||||||
@ -15561,6 +15568,7 @@ Body:
|
|||||||
Splash: true
|
Splash: true
|
||||||
Flags:
|
Flags:
|
||||||
IsNpc: true
|
IsNpc: true
|
||||||
|
ShowScale: true
|
||||||
Hit: Single
|
Hit: Single
|
||||||
HitCount: 1
|
HitCount: 1
|
||||||
SplashArea:
|
SplashArea:
|
||||||
@ -15585,6 +15593,7 @@ Body:
|
|||||||
Splash: true
|
Splash: true
|
||||||
Flags:
|
Flags:
|
||||||
IsNpc: true
|
IsNpc: true
|
||||||
|
ShowScale: true
|
||||||
Hit: Single
|
Hit: Single
|
||||||
HitCount: 1
|
HitCount: 1
|
||||||
SplashArea:
|
SplashArea:
|
||||||
@ -15609,6 +15618,7 @@ Body:
|
|||||||
Splash: true
|
Splash: true
|
||||||
Flags:
|
Flags:
|
||||||
IsNpc: true
|
IsNpc: true
|
||||||
|
ShowScale: true
|
||||||
Hit: Single
|
Hit: Single
|
||||||
HitCount: 1
|
HitCount: 1
|
||||||
SplashArea:
|
SplashArea:
|
||||||
@ -15634,6 +15644,7 @@ Body:
|
|||||||
Splash: true
|
Splash: true
|
||||||
Flags:
|
Flags:
|
||||||
IsNpc: true
|
IsNpc: true
|
||||||
|
ShowScale: true
|
||||||
Hit: Single
|
Hit: Single
|
||||||
HitCount: 1
|
HitCount: 1
|
||||||
Element: Fire
|
Element: Fire
|
||||||
@ -15652,6 +15663,7 @@ Body:
|
|||||||
IgnoreDefCard: true
|
IgnoreDefCard: true
|
||||||
Flags:
|
Flags:
|
||||||
IsNpc: true
|
IsNpc: true
|
||||||
|
ShowScale: true
|
||||||
Range: 7
|
Range: 7
|
||||||
Hit: Single
|
Hit: Single
|
||||||
HitCount: 1
|
HitCount: 1
|
||||||
@ -15748,6 +15760,7 @@ Body:
|
|||||||
Splash: true
|
Splash: true
|
||||||
Flags:
|
Flags:
|
||||||
IsNpc: true
|
IsNpc: true
|
||||||
|
ShowScale: true
|
||||||
Hit: Single
|
Hit: Single
|
||||||
HitCount: 1
|
HitCount: 1
|
||||||
SplashArea:
|
SplashArea:
|
||||||
@ -15864,6 +15877,7 @@ Body:
|
|||||||
Splash: true
|
Splash: true
|
||||||
Flags:
|
Flags:
|
||||||
IsNpc: true
|
IsNpc: true
|
||||||
|
ShowScale: true
|
||||||
Hit: Single
|
Hit: Single
|
||||||
HitCount: 1
|
HitCount: 1
|
||||||
SplashArea:
|
SplashArea:
|
||||||
@ -15888,6 +15902,7 @@ Body:
|
|||||||
Splash: true
|
Splash: true
|
||||||
Flags:
|
Flags:
|
||||||
IsNpc: true
|
IsNpc: true
|
||||||
|
ShowScale: true
|
||||||
Hit: Single
|
Hit: Single
|
||||||
HitCount: 1
|
HitCount: 1
|
||||||
SplashArea:
|
SplashArea:
|
||||||
@ -15912,6 +15927,7 @@ Body:
|
|||||||
Splash: true
|
Splash: true
|
||||||
Flags:
|
Flags:
|
||||||
IsNpc: true
|
IsNpc: true
|
||||||
|
ShowScale: true
|
||||||
Hit: Single
|
Hit: Single
|
||||||
HitCount: 1
|
HitCount: 1
|
||||||
SplashArea:
|
SplashArea:
|
||||||
@ -15945,6 +15961,7 @@ Body:
|
|||||||
Splash: true
|
Splash: true
|
||||||
Flags:
|
Flags:
|
||||||
IsNpc: true
|
IsNpc: true
|
||||||
|
ShowScale: true
|
||||||
Hit: Single
|
Hit: Single
|
||||||
HitCount: 1
|
HitCount: 1
|
||||||
SplashArea:
|
SplashArea:
|
||||||
@ -16224,6 +16241,7 @@ Body:
|
|||||||
Flags:
|
Flags:
|
||||||
IsNpc: true
|
IsNpc: true
|
||||||
IgnoreLandProtector: true
|
IgnoreLandProtector: true
|
||||||
|
ShowScale: true
|
||||||
Hit: Single
|
Hit: Single
|
||||||
HitCount: 1
|
HitCount: 1
|
||||||
Element: Poison
|
Element: Poison
|
||||||
@ -16240,6 +16258,8 @@ Body:
|
|||||||
Name: NPC_COMET
|
Name: NPC_COMET
|
||||||
Description: Comet 2
|
Description: Comet 2
|
||||||
MaxLevel: 1
|
MaxLevel: 1
|
||||||
|
Flags:
|
||||||
|
ShowScale: true
|
||||||
- Id: 716
|
- Id: 716
|
||||||
Name: NPC_MAXPAIN
|
Name: NPC_MAXPAIN
|
||||||
Description: Max Pain
|
Description: Max Pain
|
||||||
@ -16271,6 +16291,8 @@ Body:
|
|||||||
Name: NPC_JACKFROST
|
Name: NPC_JACKFROST
|
||||||
Description: Jack Frost 2
|
Description: Jack Frost 2
|
||||||
MaxLevel: 1
|
MaxLevel: 1
|
||||||
|
Flags:
|
||||||
|
ShowScale: true
|
||||||
- Id: 725
|
- Id: 725
|
||||||
Name: NPC_REVERBERATION
|
Name: NPC_REVERBERATION
|
||||||
Description: Reverberation 2
|
Description: Reverberation 2
|
||||||
@ -16283,6 +16305,7 @@ Body:
|
|||||||
IsNpc: true
|
IsNpc: true
|
||||||
IsTrap: true
|
IsTrap: true
|
||||||
DisableNearNpc: true
|
DisableNearNpc: true
|
||||||
|
ShowScale: true
|
||||||
Range: 1
|
Range: 1
|
||||||
Hit: Single
|
Hit: Single
|
||||||
HitCount: 1
|
HitCount: 1
|
||||||
@ -16323,6 +16346,8 @@ Body:
|
|||||||
Name: NPC_LEX_AETERNA
|
Name: NPC_LEX_AETERNA
|
||||||
Description: Lex Aeterna 2
|
Description: Lex Aeterna 2
|
||||||
MaxLevel: 1
|
MaxLevel: 1
|
||||||
|
Flags:
|
||||||
|
ShowScale: true
|
||||||
- Id: 728
|
- Id: 728
|
||||||
Name: NPC_ARROWSTORM
|
Name: NPC_ARROWSTORM
|
||||||
Description: NPC Arrow Storm
|
Description: NPC Arrow Storm
|
||||||
|
@ -15722,6 +15722,7 @@ Body:
|
|||||||
Flags:
|
Flags:
|
||||||
IsNpc: true
|
IsNpc: true
|
||||||
TargetTrap: true
|
TargetTrap: true
|
||||||
|
ShowScale: true
|
||||||
Hit: Multi_Hit
|
Hit: Multi_Hit
|
||||||
HitCount: 1
|
HitCount: 1
|
||||||
SplashArea:
|
SplashArea:
|
||||||
@ -15829,6 +15830,7 @@ Body:
|
|||||||
Splash: true
|
Splash: true
|
||||||
Flags:
|
Flags:
|
||||||
IsNpc: true
|
IsNpc: true
|
||||||
|
ShowScale: true
|
||||||
Hit: Single
|
Hit: Single
|
||||||
HitCount: 1
|
HitCount: 1
|
||||||
SplashArea:
|
SplashArea:
|
||||||
@ -15877,6 +15879,7 @@ Body:
|
|||||||
Flags:
|
Flags:
|
||||||
IsNpc: true
|
IsNpc: true
|
||||||
TargetTrap: true
|
TargetTrap: true
|
||||||
|
ShowScale: true
|
||||||
Hit: Single
|
Hit: Single
|
||||||
HitCount: 1
|
HitCount: 1
|
||||||
SplashArea: 7
|
SplashArea: 7
|
||||||
@ -15892,6 +15895,7 @@ Body:
|
|||||||
Flags:
|
Flags:
|
||||||
IsNpc: true
|
IsNpc: true
|
||||||
TargetTrap: true
|
TargetTrap: true
|
||||||
|
ShowScale: true
|
||||||
Hit: Single
|
Hit: Single
|
||||||
HitCount: 1
|
HitCount: 1
|
||||||
SplashArea: 14
|
SplashArea: 14
|
||||||
@ -15907,6 +15911,7 @@ Body:
|
|||||||
Splash: true
|
Splash: true
|
||||||
Flags:
|
Flags:
|
||||||
IsNpc: true
|
IsNpc: true
|
||||||
|
ShowScale: true
|
||||||
Hit: Single
|
Hit: Single
|
||||||
HitCount: 1
|
HitCount: 1
|
||||||
SplashArea:
|
SplashArea:
|
||||||
@ -15932,6 +15937,7 @@ Body:
|
|||||||
Splash: true
|
Splash: true
|
||||||
Flags:
|
Flags:
|
||||||
IsNpc: true
|
IsNpc: true
|
||||||
|
ShowScale: true
|
||||||
Hit: Single
|
Hit: Single
|
||||||
HitCount: 1
|
HitCount: 1
|
||||||
SplashArea:
|
SplashArea:
|
||||||
@ -15957,6 +15963,7 @@ Body:
|
|||||||
Splash: true
|
Splash: true
|
||||||
Flags:
|
Flags:
|
||||||
IsNpc: true
|
IsNpc: true
|
||||||
|
ShowScale: true
|
||||||
Hit: Single
|
Hit: Single
|
||||||
HitCount: 1
|
HitCount: 1
|
||||||
SplashArea:
|
SplashArea:
|
||||||
@ -15982,6 +15989,7 @@ Body:
|
|||||||
Splash: true
|
Splash: true
|
||||||
Flags:
|
Flags:
|
||||||
IsNpc: true
|
IsNpc: true
|
||||||
|
ShowScale: true
|
||||||
Hit: Single
|
Hit: Single
|
||||||
HitCount: 1
|
HitCount: 1
|
||||||
SplashArea:
|
SplashArea:
|
||||||
@ -16007,6 +16015,7 @@ Body:
|
|||||||
Splash: true
|
Splash: true
|
||||||
Flags:
|
Flags:
|
||||||
IsNpc: true
|
IsNpc: true
|
||||||
|
ShowScale: true
|
||||||
Hit: Single
|
Hit: Single
|
||||||
HitCount: 1
|
HitCount: 1
|
||||||
SplashArea:
|
SplashArea:
|
||||||
@ -16032,6 +16041,7 @@ Body:
|
|||||||
Splash: true
|
Splash: true
|
||||||
Flags:
|
Flags:
|
||||||
IsNpc: true
|
IsNpc: true
|
||||||
|
ShowScale: true
|
||||||
Hit: Single
|
Hit: Single
|
||||||
HitCount: 1
|
HitCount: 1
|
||||||
SplashArea:
|
SplashArea:
|
||||||
@ -16058,6 +16068,7 @@ Body:
|
|||||||
Splash: true
|
Splash: true
|
||||||
Flags:
|
Flags:
|
||||||
IsNpc: true
|
IsNpc: true
|
||||||
|
ShowScale: true
|
||||||
Hit: Single
|
Hit: Single
|
||||||
HitCount: 1
|
HitCount: 1
|
||||||
Element: Fire
|
Element: Fire
|
||||||
@ -16077,6 +16088,7 @@ Body:
|
|||||||
IgnoreDefCard: true
|
IgnoreDefCard: true
|
||||||
Flags:
|
Flags:
|
||||||
IsNpc: true
|
IsNpc: true
|
||||||
|
ShowScale: true
|
||||||
Range: 7
|
Range: 7
|
||||||
Hit: Single
|
Hit: Single
|
||||||
HitCount: 1
|
HitCount: 1
|
||||||
@ -16175,6 +16187,7 @@ Body:
|
|||||||
Splash: true
|
Splash: true
|
||||||
Flags:
|
Flags:
|
||||||
IsNpc: true
|
IsNpc: true
|
||||||
|
ShowScale: true
|
||||||
Hit: Single
|
Hit: Single
|
||||||
HitCount: 1
|
HitCount: 1
|
||||||
SplashArea:
|
SplashArea:
|
||||||
@ -16295,6 +16308,7 @@ Body:
|
|||||||
Splash: true
|
Splash: true
|
||||||
Flags:
|
Flags:
|
||||||
IsNpc: true
|
IsNpc: true
|
||||||
|
ShowScale: true
|
||||||
Hit: Single
|
Hit: Single
|
||||||
HitCount: 1
|
HitCount: 1
|
||||||
SplashArea:
|
SplashArea:
|
||||||
@ -16320,6 +16334,7 @@ Body:
|
|||||||
Splash: true
|
Splash: true
|
||||||
Flags:
|
Flags:
|
||||||
IsNpc: true
|
IsNpc: true
|
||||||
|
ShowScale: true
|
||||||
Hit: Single
|
Hit: Single
|
||||||
HitCount: 1
|
HitCount: 1
|
||||||
SplashArea:
|
SplashArea:
|
||||||
@ -16345,6 +16360,7 @@ Body:
|
|||||||
Splash: true
|
Splash: true
|
||||||
Flags:
|
Flags:
|
||||||
IsNpc: true
|
IsNpc: true
|
||||||
|
ShowScale: true
|
||||||
Hit: Single
|
Hit: Single
|
||||||
HitCount: 1
|
HitCount: 1
|
||||||
SplashArea:
|
SplashArea:
|
||||||
@ -16378,6 +16394,7 @@ Body:
|
|||||||
Splash: true
|
Splash: true
|
||||||
Flags:
|
Flags:
|
||||||
IsNpc: true
|
IsNpc: true
|
||||||
|
ShowScale: true
|
||||||
Hit: Single
|
Hit: Single
|
||||||
HitCount: 1
|
HitCount: 1
|
||||||
SplashArea:
|
SplashArea:
|
||||||
@ -16676,6 +16693,7 @@ Body:
|
|||||||
Flags:
|
Flags:
|
||||||
IsNpc: true
|
IsNpc: true
|
||||||
IgnoreLandProtector: true
|
IgnoreLandProtector: true
|
||||||
|
ShowScale: true
|
||||||
Hit: Single
|
Hit: Single
|
||||||
HitCount: 1
|
HitCount: 1
|
||||||
Element: Poison
|
Element: Poison
|
||||||
@ -16699,6 +16717,7 @@ Body:
|
|||||||
Splash: true
|
Splash: true
|
||||||
Flags:
|
Flags:
|
||||||
AlterRangeRadius: true
|
AlterRangeRadius: true
|
||||||
|
ShowScale: true
|
||||||
Range: 11
|
Range: 11
|
||||||
Hit: Multi_Hit
|
Hit: Multi_Hit
|
||||||
HitCount: -20
|
HitCount: -20
|
||||||
@ -16724,6 +16743,7 @@ Body:
|
|||||||
IgnoreDefCard: true
|
IgnoreDefCard: true
|
||||||
Flags:
|
Flags:
|
||||||
IsNpc: true
|
IsNpc: true
|
||||||
|
ShowScale: true
|
||||||
Hit: Single
|
Hit: Single
|
||||||
HitCount: 1
|
HitCount: 1
|
||||||
Duration1: 10000
|
Duration1: 10000
|
||||||
@ -16748,6 +16768,7 @@ Body:
|
|||||||
Flags:
|
Flags:
|
||||||
IsNpc: true
|
IsNpc: true
|
||||||
IgnoreLandProtector: true
|
IgnoreLandProtector: true
|
||||||
|
ShowScale: true
|
||||||
Hit: Single
|
Hit: Single
|
||||||
HitCount: 1
|
HitCount: 1
|
||||||
Knockback: 2
|
Knockback: 2
|
||||||
@ -16826,6 +16847,8 @@ Body:
|
|||||||
TargetType: Self
|
TargetType: Self
|
||||||
DamageFlags:
|
DamageFlags:
|
||||||
Splash: true
|
Splash: true
|
||||||
|
Flags:
|
||||||
|
ShowScale: true
|
||||||
Hit: Multi_Hit
|
Hit: Multi_Hit
|
||||||
HitCount: -5
|
HitCount: -5
|
||||||
Element: Water
|
Element: Water
|
||||||
@ -16864,6 +16887,7 @@ Body:
|
|||||||
IsNpc: true
|
IsNpc: true
|
||||||
IsTrap: true
|
IsTrap: true
|
||||||
DisableNearNpc: true
|
DisableNearNpc: true
|
||||||
|
ShowScale: true
|
||||||
Range: 1
|
Range: 1
|
||||||
Hit: Single
|
Hit: Single
|
||||||
HitCount: 1
|
HitCount: 1
|
||||||
@ -16912,6 +16936,7 @@ Body:
|
|||||||
Splash: true
|
Splash: true
|
||||||
Flags:
|
Flags:
|
||||||
IsNpc: true
|
IsNpc: true
|
||||||
|
ShowScale: true
|
||||||
Range: 9
|
Range: 9
|
||||||
Hit: Single
|
Hit: Single
|
||||||
SplashArea:
|
SplashArea:
|
||||||
|
@ -99,8 +99,9 @@ TargetManHole - Target enemy with SC__MANHOLE.
|
|||||||
TargetHidden - Target enemy with OPTION_HIDE.
|
TargetHidden - Target enemy with OPTION_HIDE.
|
||||||
IncreaseDanceWithWugDamage - Increase SC_DANCEWITHWUG damage.
|
IncreaseDanceWithWugDamage - Increase SC_DANCEWITHWUG damage.
|
||||||
IgnoreWugBite - Ignore RA_WUGBITE.
|
IgnoreWugBite - Ignore RA_WUGBITE.
|
||||||
IgnoreAutoGuard - Not blocked by SC_AUTOGUARD (When TargetType is Weapon only).
|
IgnoreAutoGuard - Not blocked by SC_AUTOGUARD (When TargetType is Weapon only).
|
||||||
IgnoreCicada - Not blocked by SC_UTSUSEMI or SC_BUNSINJYUTSU (When TargetType is Weapon only).
|
IgnoreCicada - Not blocked by SC_UTSUSEMI or SC_BUNSINJYUTSU (When TargetType is Weapon only).
|
||||||
|
ShowScale - Shows AoE area while casting
|
||||||
|
|
||||||
---------------------------------------
|
---------------------------------------
|
||||||
|
|
||||||
|
@ -8956,6 +8956,7 @@ static const struct _battle_data {
|
|||||||
{ "rental_item_novalue", &battle_config.rental_item_novalue, 1, 0, 1, },
|
{ "rental_item_novalue", &battle_config.rental_item_novalue, 1, 0, 1, },
|
||||||
{ "ping_timer_inverval", &battle_config.ping_timer_interval, 30, 0, 99999999, },
|
{ "ping_timer_inverval", &battle_config.ping_timer_interval, 30, 0, 99999999, },
|
||||||
{ "ping_time", &battle_config.ping_time, 20, 0, 99999999, },
|
{ "ping_time", &battle_config.ping_time, 20, 0, 99999999, },
|
||||||
|
{ "show_skill_scale", &battle_config.show_skill_scale, 1, 0, 1, },
|
||||||
|
|
||||||
#include "../custom/battle_config_init.inc"
|
#include "../custom/battle_config_init.inc"
|
||||||
};
|
};
|
||||||
|
@ -680,6 +680,7 @@ struct Battle_Config
|
|||||||
int rental_item_novalue;
|
int rental_item_novalue;
|
||||||
int ping_timer_interval;
|
int ping_timer_interval;
|
||||||
int ping_time;
|
int ping_time;
|
||||||
|
int show_skill_scale;
|
||||||
|
|
||||||
#include "../custom/battle_config_struct.inc"
|
#include "../custom/battle_config_struct.inc"
|
||||||
};
|
};
|
||||||
|
@ -5425,6 +5425,31 @@ void clif_skillinfo(struct map_session_data *sd,int skill_id, int inf)
|
|||||||
WFIFOSET(fd,packet_len(0x7e1));
|
WFIFOSET(fd,packet_len(0x7e1));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void clif_skill_scale( struct block_list *bl, int src_id, int x, int y, uint16 skill_id, uint16 skill_lv, int casttime ){
|
||||||
|
#if PACKETVER >= 20151223
|
||||||
|
if( !battle_config.show_skill_scale ){
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
struct PACKET_ZC_SKILL_SCALE p;
|
||||||
|
|
||||||
|
p.PacketType = skillscale;
|
||||||
|
p.AID = src_id;
|
||||||
|
p.skill_id = skill_id;
|
||||||
|
p.skill_lv = skill_lv;
|
||||||
|
p.x = x;
|
||||||
|
p.y = y;
|
||||||
|
p.casttime = casttime;
|
||||||
|
|
||||||
|
if( disguised( bl ) ){
|
||||||
|
clif_send( &p, sizeof( p ), bl, AREA_WOS );
|
||||||
|
p.AID = disguised_bl_id( bl->id );
|
||||||
|
clif_send( &p, sizeof( p ), bl, SELF );
|
||||||
|
}else{
|
||||||
|
clif_send( &p, sizeof( p ), bl, AREA );
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
/// Notifies clients in area, that an object is about to use a skill.
|
/// Notifies clients in area, that an object is about to use a skill.
|
||||||
/// 013e <src id>.L <dst id>.L <x>.W <y>.W <skill id>.W <property>.L <delaytime>.L (ZC_USESKILL_ACK)
|
/// 013e <src id>.L <dst id>.L <x>.W <y>.W <skill id>.W <property>.L <delaytime>.L (ZC_USESKILL_ACK)
|
||||||
@ -5441,7 +5466,7 @@ void clif_skillinfo(struct map_session_data *sd,int skill_id, int inf)
|
|||||||
/// is disposable:
|
/// is disposable:
|
||||||
/// 0 = yellow chat text "[src name] will use skill [skill name]."
|
/// 0 = yellow chat text "[src name] will use skill [skill name]."
|
||||||
/// 1 = no text
|
/// 1 = no text
|
||||||
void clif_skillcasting(struct block_list* bl, int src_id, int dst_id, int dst_x, int dst_y, uint16 skill_id, int property, int casttime)
|
void clif_skillcasting(struct block_list* bl, int src_id, int dst_id, int dst_x, int dst_y, uint16 skill_id, uint16 skill_lv, int property, int casttime)
|
||||||
{
|
{
|
||||||
#if PACKETVER < 20091124
|
#if PACKETVER < 20091124
|
||||||
const int cmd = 0x13e;
|
const int cmd = 0x13e;
|
||||||
@ -5468,6 +5493,10 @@ void clif_skillcasting(struct block_list* bl, int src_id, int dst_id, int dst_x,
|
|||||||
clif_send(buf,packet_len(cmd), bl, SELF);
|
clif_send(buf,packet_len(cmd), bl, SELF);
|
||||||
} else
|
} else
|
||||||
clif_send(buf,packet_len(cmd), bl, AREA);
|
clif_send(buf,packet_len(cmd), bl, AREA);
|
||||||
|
|
||||||
|
if( skill_get_inf2( skill_id, INF2_SHOWSCALE ) ){
|
||||||
|
clif_skill_scale( bl, src_id, bl->x, bl->y, skill_id, skill_lv, casttime );
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -694,7 +694,7 @@ void clif_skillinfo(struct map_session_data *sd,int skill_id, int inf);
|
|||||||
void clif_addskill(struct map_session_data *sd, int skill_id);
|
void clif_addskill(struct map_session_data *sd, int skill_id);
|
||||||
void clif_deleteskill(struct map_session_data *sd, int skill_id);
|
void clif_deleteskill(struct map_session_data *sd, int skill_id);
|
||||||
|
|
||||||
void clif_skillcasting(struct block_list* bl, int src_id, int dst_id, int dst_x, int dst_y, uint16 skill_id, int property, int casttime);
|
void clif_skillcasting(struct block_list* bl, int src_id, int dst_id, int dst_x, int dst_y, uint16 skill_id, uint16 skill_lv, int property, int casttime);
|
||||||
void clif_skillcastcancel(struct block_list* bl);
|
void clif_skillcastcancel(struct block_list* bl);
|
||||||
void clif_skill_fail(struct map_session_data *sd,uint16 skill_id,enum useskill_fail_cause cause,int btype, int itemId = 0);
|
void clif_skill_fail(struct map_session_data *sd,uint16 skill_id,enum useskill_fail_cause cause,int btype, int itemId = 0);
|
||||||
void clif_skill_cooldown(struct map_session_data *sd, uint16 skill_id, t_tick tick);
|
void clif_skill_cooldown(struct map_session_data *sd, uint16 skill_id, t_tick tick);
|
||||||
|
@ -7527,6 +7527,7 @@
|
|||||||
export_constant(INF2_IGNOREWUGBITE);
|
export_constant(INF2_IGNOREWUGBITE);
|
||||||
export_constant(INF2_IGNOREAUTOGUARD);
|
export_constant(INF2_IGNOREAUTOGUARD);
|
||||||
export_constant(INF2_IGNORECICADA);
|
export_constant(INF2_IGNORECICADA);
|
||||||
|
export_constant(INF2_SHOWSCALE);
|
||||||
|
|
||||||
/* skill no near npc flags */
|
/* skill no near npc flags */
|
||||||
export_constant(SKILL_NONEAR_WARPPORTAL);
|
export_constant(SKILL_NONEAR_WARPPORTAL);
|
||||||
|
@ -105,6 +105,7 @@ enum e_skill_inf2 : uint8 {
|
|||||||
INF2_IGNOREWUGBITE, // Skill blocked by RA_WUGBITE
|
INF2_IGNOREWUGBITE, // Skill blocked by RA_WUGBITE
|
||||||
INF2_IGNOREAUTOGUARD , // Skill is not blocked by SC_AUTOGUARD (physical-skill only)
|
INF2_IGNOREAUTOGUARD , // Skill is not blocked by SC_AUTOGUARD (physical-skill only)
|
||||||
INF2_IGNORECICADA, // Skill is not blocked by SC_UTSUSEMI or SC_BUNSINJYUTSU (physical-skill only)
|
INF2_IGNORECICADA, // Skill is not blocked by SC_UTSUSEMI or SC_BUNSINJYUTSU (physical-skill only)
|
||||||
|
INF2_SHOWSCALE, // Skill shows AoE area while casting
|
||||||
INF2_MAX,
|
INF2_MAX,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -1890,7 +1890,7 @@ int unit_skilluse_id2(struct block_list *src, int target_id, uint16 skill_id, ui
|
|||||||
skill_toggle_magicpower(src, skill_id);
|
skill_toggle_magicpower(src, skill_id);
|
||||||
|
|
||||||
// In official this is triggered even if no cast time.
|
// In official this is triggered even if no cast time.
|
||||||
clif_skillcasting(src, src->id, target_id, 0,0, skill_id, skill_get_ele(skill_id, skill_lv), casttime);
|
clif_skillcasting(src, src->id, target_id, 0,0, skill_id, skill_lv, skill_get_ele(skill_id, skill_lv), casttime);
|
||||||
|
|
||||||
if (sd && target->type == BL_MOB) {
|
if (sd && target->type == BL_MOB) {
|
||||||
TBL_MOB *md = (TBL_MOB*)target;
|
TBL_MOB *md = (TBL_MOB*)target;
|
||||||
@ -2149,7 +2149,7 @@ int unit_skilluse_pos2( struct block_list *src, short skill_x, short skill_y, ui
|
|||||||
skill_toggle_magicpower(src, skill_id);
|
skill_toggle_magicpower(src, skill_id);
|
||||||
|
|
||||||
// In official this is triggered even if no cast time.
|
// In official this is triggered even if no cast time.
|
||||||
clif_skillcasting(src, src->id, 0, skill_x, skill_y, skill_id, skill_get_ele(skill_id, skill_lv), casttime);
|
clif_skillcasting(src, src->id, 0, skill_x, skill_y, skill_id, skill_lv, skill_get_ele(skill_id, skill_lv), casttime);
|
||||||
|
|
||||||
if( casttime > 0 ) {
|
if( casttime > 0 ) {
|
||||||
ud->skilltimer = add_timer( tick+casttime, skill_castend_pos, src->id, 0 );
|
ud->skilltimer = add_timer( tick+casttime, skill_castend_pos, src->id, 0 );
|
||||||
|
Loading…
x
Reference in New Issue
Block a user