@@ -5,36 +5,27 @@ unsafe extern "C" fn game_attack11(agent: &mut L2CAgentBase) {
5
5
let boma = agent. boma ( ) ;
6
6
frame ( lua_state, 6.0 ) ;
7
7
if is_excute ( agent) {
8
- ATTACK ( agent, 0 , 0 , Hash40 :: new ( "top" ) , 3.5 , 361 , 25 , 0 , 27 , 2.5 , 0.0 , 5.5 , 7.8 , Some ( 0.0 ) , Some ( 5.5 ) , Some ( 8.8 ) , 1.0 , 1.0 , * ATTACK_SETOFF_KIND_ON , * ATTACK_LR_CHECK_F , false , 0 , 0.0 , 0 , false , false , false , false , true , * COLLISION_SITUATION_MASK_GA , * COLLISION_CATEGORY_MASK_ALL , * COLLISION_PART_MASK_ALL , false , Hash40 :: new ( "collision_attr_cutup" ) , * ATTACK_SOUND_LEVEL_S , * COLLISION_SOUND_ATTR_CUTUP , * ATTACK_REGION_SWORD ) ;
9
- ATTACK ( agent, 1 , 0 , Hash40 :: new ( "top" ) , 3.5 , 180 , 15 , 0 , 25 , 2.5 , 0.0 , 5.5 , 7.8 , Some ( 0.0 ) , Some ( 5.5 ) , Some ( 18.0 ) , 1.0 , 1.0 , * ATTACK_SETOFF_KIND_ON , * ATTACK_LR_CHECK_F , false , 0 , 0.0 , 0 , false , false , false , false , true , * COLLISION_SITUATION_MASK_GA , * COLLISION_CATEGORY_MASK_FIGHTER , * COLLISION_PART_MASK_ALL , false , Hash40 :: new ( "collision_attr_cutup" ) , * ATTACK_SOUND_LEVEL_S , * COLLISION_SOUND_ATTR_CUTUP , * ATTACK_REGION_SWORD ) ;
10
- ATTACK ( agent, 2 , 0 , Hash40 :: new ( "top" ) , 3.5 , 361 , 15 , 0 , 25 , 2.5 , 0.0 , 5.5 , 7.8 , Some ( 0.0 ) , Some ( 5.5 ) , Some ( 18.0 ) , 1.0 , 1.0 , * ATTACK_SETOFF_KIND_ON , * ATTACK_LR_CHECK_F , false , 0 , 0.0 , 0 , false , false , false , false , true , * COLLISION_SITUATION_MASK_GA , * COLLISION_CATEGORY_MASK_ALL , * COLLISION_PART_MASK_ALL , false , Hash40 :: new ( "collision_attr_cutup" ) , * ATTACK_SOUND_LEVEL_S , * COLLISION_SOUND_ATTR_CUTUP , * ATTACK_REGION_SWORD ) ;
11
- AttackModule :: set_add_reaction_frame ( boma, 0 , 3.0 , false ) ;
12
- AttackModule :: set_add_reaction_frame ( boma, 1 , 3.0 , false ) ;
13
- AttackModule :: set_add_reaction_frame ( boma, 2 , 3.0 , false ) ;
8
+ ATTACK ( agent, 0 , 0 , Hash40 :: new ( "top" ) , 3.5 , 361 , 25 , 0 , 27 , 2.5 , 0.0 , 5.5 , 7.8 , Some ( 0.0 ) , Some ( 5.5 ) , Some ( 16.0 ) , 1.0 , 1.0 , * ATTACK_SETOFF_KIND_ON , * ATTACK_LR_CHECK_F , false , 0 , 0.0 , 0 , false , false , false , false , true , * COLLISION_SITUATION_MASK_GA_d , * COLLISION_CATEGORY_MASK_ALL , * COLLISION_PART_MASK_ALL , false , Hash40 :: new ( "collision_attr_cutup" ) , * ATTACK_SOUND_LEVEL_S , * COLLISION_SOUND_ATTR_CUTUP , * ATTACK_REGION_SWORD ) ;
9
+ ATTACK ( agent, 1 , 0 , Hash40 :: new ( "top" ) , 3.5 , 361 , 15 , 0 , 25 , 2.5 , 0.0 , 5.5 , 7.8 , Some ( 0.0 ) , Some ( 5.5 ) , Some ( 16.0 ) , 1.0 , 1.0 , * ATTACK_SETOFF_KIND_ON , * ATTACK_LR_CHECK_F , false , 0 , 0.0 , 0 , false , false , false , false , true , * COLLISION_SITUATION_MASK_G , * COLLISION_CATEGORY_MASK_ALL , * COLLISION_PART_MASK_ALL , false , Hash40 :: new ( "collision_attr_cutup" ) , * ATTACK_SOUND_LEVEL_S , * COLLISION_SOUND_ATTR_CUTUP , * ATTACK_REGION_SWORD ) ;
10
+ AttackModule :: set_add_reaction_frame_revised ( boma, 0 , 3.0 , false ) ;
11
+ AttackModule :: set_down_only ( boma, 1 , false ) ;
14
12
}
15
13
wait ( lua_state, 2.0 ) ;
16
14
if is_excute ( agent) {
17
15
AttackModule :: clear_all ( boma) ;
18
16
WorkModule :: on_flag ( boma, * FIGHTER_STATUS_ATTACK_FLAG_ENABLE_COMBO ) ;
19
17
}
20
- frame ( lua_state, 14.0 ) ;
21
- if is_excute ( agent) {
22
- //WorkModule::on_flag(boma, *FIGHTER_STATUS_ATTACK_FLAG_ENABLE_NO_HIT_COMBO);
23
- }
24
18
}
25
19
26
20
unsafe extern "C" fn game_attack12 ( agent : & mut L2CAgentBase ) {
27
21
let lua_state = agent. lua_state_agent ;
28
22
let boma = agent. boma ( ) ;
29
23
frame ( lua_state, 6.0 ) ;
30
24
if is_excute ( agent) {
31
- // Launching hitboxes
32
- ATTACK ( agent, 0 , 0 , Hash40 :: new ( "top" ) , 3.5 , 78 , 20 , 0 , 30 , 3.5 , 0.0 , 6.2 , 10.0 , Some ( 0.0 ) , Some ( 6.2 ) , Some ( 18.0 ) , 1.0 , 1.0 , * ATTACK_SETOFF_KIND_ON , * ATTACK_LR_CHECK_F , false , 0 , 0.0 , 0 , false , false , false , false , true , * COLLISION_SITUATION_MASK_GA_d , * COLLISION_CATEGORY_MASK_FIGHTER , * COLLISION_PART_MASK_ALL , false , Hash40 :: new ( "collision_attr_cutup" ) , * ATTACK_SOUND_LEVEL_S , * COLLISION_SOUND_ATTR_CUTUP , * ATTACK_REGION_SWORD ) ;
33
- // Locking hitboxes
34
- ATTACK ( agent, 1 , 0 , Hash40 :: new ( "top" ) , 3.5 , 361 , 25 , 0 , 30 , 3.5 , 0.0 , 4.2 , 10.0 , Some ( 0.0 ) , Some ( 4.2 ) , Some ( 11.0 ) , 1.0 , 1.0 , * ATTACK_SETOFF_KIND_ON , * ATTACK_LR_CHECK_F , false , 0 , 0.0 , 0 , false , false , false , false , true , * COLLISION_SITUATION_MASK_G , * COLLISION_CATEGORY_MASK_ALL , * COLLISION_PART_MASK_ALL , false , Hash40 :: new ( "collision_attr_cutup" ) , * ATTACK_SOUND_LEVEL_S , * COLLISION_SOUND_ATTR_CUTUP , * ATTACK_REGION_SWORD ) ;
35
- ATTACK ( agent, 2 , 0 , Hash40 :: new ( "top" ) , 3.5 , 180 , 15 , 0 , 25 , 3.5 , 0.0 , 4.2 , 10.0 , Some ( 0.0 ) , Some ( 4.2 ) , Some ( 18.0 ) , 1.0 , 1.0 , * ATTACK_SETOFF_KIND_ON , * ATTACK_LR_CHECK_F , false , 0 , 0.0 , 0 , false , false , false , false , true , * COLLISION_SITUATION_MASK_G , * COLLISION_CATEGORY_MASK_FIGHTER , * COLLISION_PART_MASK_ALL , false , Hash40 :: new ( "collision_attr_cutup" ) , * ATTACK_SOUND_LEVEL_S , * COLLISION_SOUND_ATTR_CUTUP , * ATTACK_REGION_SWORD ) ;
36
- ATTACK ( agent, 3 , 0 , Hash40 :: new ( "top" ) , 3.5 , 361 , 15 , 0 , 25 , 3.5 , 0.0 , 4.2 , 10.0 , Some ( 0.0 ) , Some ( 4.2 ) , Some ( 18.0 ) , 1.0 , 1.0 , * ATTACK_SETOFF_KIND_ON , * ATTACK_LR_CHECK_F , false , 0 , 0.0 , 0 , false , false , false , false , true , * COLLISION_SITUATION_MASK_G , * COLLISION_CATEGORY_MASK_ALL , * COLLISION_PART_MASK_ALL , false , Hash40 :: new ( "collision_attr_cutup" ) , * ATTACK_SOUND_LEVEL_S , * COLLISION_SOUND_ATTR_CUTUP , * ATTACK_REGION_SWORD ) ;
37
- AttackModule :: set_add_reaction_frame ( boma, 0 , 4.0 , false ) ;
25
+ ATTACK ( agent, 0 , 0 , Hash40 :: new ( "top" ) , 3.5 , 78 , 20 , 0 , 30 , 3.5 , 0.0 , 6.2 , 10.0 , Some ( 0.0 ) , Some ( 6.2 ) , Some ( 16.0 ) , 1.0 , 1.0 , * ATTACK_SETOFF_KIND_ON , * ATTACK_LR_CHECK_F , false , 0 , 0.0 , 0 , false , false , false , false , true , * COLLISION_SITUATION_MASK_GA_d , * COLLISION_CATEGORY_MASK_FIGHTER , * COLLISION_PART_MASK_ALL , false , Hash40 :: new ( "collision_attr_cutup" ) , * ATTACK_SOUND_LEVEL_S , * COLLISION_SOUND_ATTR_CUTUP , * ATTACK_REGION_SWORD ) ;
26
+ ATTACK ( agent, 1 , 0 , Hash40 :: new ( "top" ) , 3.5 , 361 , 15 , 0 , 25 , 3.5 , 0.0 , 4.2 , 10.0 , Some ( 0.0 ) , Some ( 4.2 ) , Some ( 16.0 ) , 1.0 , 1.0 , * ATTACK_SETOFF_KIND_ON , * ATTACK_LR_CHECK_F , false , 0 , 0.0 , 0 , false , false , false , false , true , * COLLISION_SITUATION_MASK_G , * COLLISION_CATEGORY_MASK_ALL , * COLLISION_PART_MASK_ALL , false , Hash40 :: new ( "collision_attr_cutup" ) , * ATTACK_SOUND_LEVEL_S , * COLLISION_SOUND_ATTR_CUTUP , * ATTACK_REGION_SWORD ) ;
27
+ AttackModule :: set_add_reaction_frame_revised ( boma, 0 , 4.0 , false ) ;
28
+ AttackModule :: set_down_only ( boma, 1 , true ) ;
38
29
}
39
30
frame ( lua_state, 8.0 ) ;
40
31
if is_excute ( agent) {
@@ -45,21 +36,17 @@ unsafe extern "C" fn game_attack12(agent: &mut L2CAgentBase) {
45
36
AttackModule :: clear_all ( boma) ;
46
37
WorkModule :: on_flag ( boma, * FIGHTER_STATUS_ATTACK_FLAG_ENABLE_COMBO ) ;
47
38
}
48
- frame ( lua_state, 14.0 ) ;
49
- if is_excute ( agent) {
50
- //WorkModule::on_flag(boma, *FIGHTER_STATUS_ATTACK_FLAG_ENABLE_NO_HIT_COMBO);
51
- }
52
39
}
53
40
54
41
unsafe extern "C" fn game_attack13 ( agent : & mut L2CAgentBase ) {
55
42
let lua_state = agent. lua_state_agent ;
56
43
let boma = agent. boma ( ) ;
57
44
frame ( lua_state, 5.0 ) ;
58
45
if is_excute ( agent) {
59
- ATTACK ( agent, 0 , 0 , Hash40 :: new ( "armr" ) , 5 .0, 30 , 70 , 0 , 75 , 3.0 , 0.0 , 0.0 , 0.0 , None , None , None , 1.0 , 1.0 , * ATTACK_SETOFF_KIND_ON , * ATTACK_LR_CHECK_POS , false , 0 , 0.0 , 0 , false , false , false , false , true , * COLLISION_SITUATION_MASK_GA , * COLLISION_CATEGORY_MASK_ALL , * COLLISION_PART_MASK_ALL , false , Hash40 :: new ( "collision_attr_cutup" ) , * ATTACK_SOUND_LEVEL_M , * COLLISION_SOUND_ATTR_CUTUP , * ATTACK_REGION_SWORD ) ;
60
- ATTACK ( agent, 1 , 0 , Hash40 :: new ( "haver" ) , 5.0 , 30 , 70 , 0 , 70 , 3.0 , 0.0 , 2 .0, 0.0 , None , None , None , 1.0 , 1.0 , * ATTACK_SETOFF_KIND_ON , * ATTACK_LR_CHECK_POS , false , 0 , 0.0 , 0 , false , false , false , false , true , * COLLISION_SITUATION_MASK_GA , * COLLISION_CATEGORY_MASK_ALL , * COLLISION_PART_MASK_ALL , false , Hash40 :: new ( "collision_attr_cutup" ) , * ATTACK_SOUND_LEVEL_M , * COLLISION_SOUND_ATTR_CUTUP , * ATTACK_REGION_SWORD ) ;
61
- ATTACK ( agent, 2 , 0 , Hash40 :: new ( "haver" ) , 5.0 , 30 , 70 , 0 , 70 , 3.0 , 0.0 , 6.75 , 0.0 , None , None , None , 1.0 , 1.0 , * ATTACK_SETOFF_KIND_ON , * ATTACK_LR_CHECK_POS , false , 0 , 0.0 , 0 , false , false , false , false , true , * COLLISION_SITUATION_MASK_GA , * COLLISION_CATEGORY_MASK_ALL , * COLLISION_PART_MASK_ALL , false , Hash40 :: new ( "collision_attr_cutup" ) , * ATTACK_SOUND_LEVEL_M , * COLLISION_SOUND_ATTR_CUTUP , * ATTACK_REGION_SWORD ) ;
62
- ATTACK ( agent, 3 , 0 , Hash40 :: new ( "haver" ) , 6.0 , 30 , 70 , 0 , 70 , 3.0 , 0.0 , 11.5 , 0.0 , None , None , None , 1.0 , 1.0 , * ATTACK_SETOFF_KIND_ON , * ATTACK_LR_CHECK_POS , false , 0 , 0.0 , 0 , false , false , false , false , true , * COLLISION_SITUATION_MASK_GA , * COLLISION_CATEGORY_MASK_ALL , * COLLISION_PART_MASK_ALL , false , Hash40 :: new ( "collision_attr_cutup" ) , * ATTACK_SOUND_LEVEL_M , * COLLISION_SOUND_ATTR_CUTUP , * ATTACK_REGION_SWORD ) ;
46
+ ATTACK ( agent, 0 , 0 , Hash40 :: new ( "armr" ) , 4 .0, 30 , 70 , 0 , 70 , 3.0 , 0.0 , 0.0 , 0.0 , None , None , None , 1.0 , 1.0 , * ATTACK_SETOFF_KIND_ON , * ATTACK_LR_CHECK_POS , false , 0 , 0.0 , 0 , false , false , false , false , true , * COLLISION_SITUATION_MASK_GA , * COLLISION_CATEGORY_MASK_ALL , * COLLISION_PART_MASK_ALL , false , Hash40 :: new ( "collision_attr_cutup" ) , * ATTACK_SOUND_LEVEL_M , * COLLISION_SOUND_ATTR_CUTUP , * ATTACK_REGION_SWORD ) ;
47
+ ATTACK ( agent, 1 , 0 , Hash40 :: new ( "haver" ) , 5.0 , 30 , 70 , 0 , 70 , 3.0 , 0.0 , 0 .0, 0.0 , None , None , None , 1.0 , 1.0 , * ATTACK_SETOFF_KIND_ON , * ATTACK_LR_CHECK_POS , false , 0 , 0.0 , 0 , false , false , false , false , true , * COLLISION_SITUATION_MASK_GA , * COLLISION_CATEGORY_MASK_ALL , * COLLISION_PART_MASK_ALL , false , Hash40 :: new ( "collision_attr_cutup" ) , * ATTACK_SOUND_LEVEL_M , * COLLISION_SOUND_ATTR_CUTUP , * ATTACK_REGION_SWORD ) ;
48
+ ATTACK ( agent, 2 , 0 , Hash40 :: new ( "haver" ) , 5.0 , 30 , 70 , 0 , 70 , 3.0 , 0.0 , 3.5 , 0.0 , None , None , None , 1.0 , 1.0 , * ATTACK_SETOFF_KIND_ON , * ATTACK_LR_CHECK_POS , false , 0 , 0.0 , 0 , false , false , false , false , true , * COLLISION_SITUATION_MASK_GA , * COLLISION_CATEGORY_MASK_ALL , * COLLISION_PART_MASK_ALL , false , Hash40 :: new ( "collision_attr_cutup" ) , * ATTACK_SOUND_LEVEL_M , * COLLISION_SOUND_ATTR_CUTUP , * ATTACK_REGION_SWORD ) ;
49
+ ATTACK ( agent, 3 , 0 , Hash40 :: new ( "haver" ) , 6.0 , 30 , 70 , 0 , 70 , 3.0 , 0.0 , 9.0 , 0.0 , None , None , None , 1.0 , 1.0 , * ATTACK_SETOFF_KIND_ON , * ATTACK_LR_CHECK_POS , false , 0 , 0.0 , 0 , false , false , false , false , true , * COLLISION_SITUATION_MASK_GA , * COLLISION_CATEGORY_MASK_ALL , * COLLISION_PART_MASK_ALL , false , Hash40 :: new ( "collision_attr_cutup" ) , * ATTACK_SOUND_LEVEL_M , * COLLISION_SOUND_ATTR_CUTUP , * ATTACK_REGION_SWORD ) ;
63
50
}
64
51
wait ( lua_state, 3.0 ) ;
65
52
if is_excute ( agent) {
@@ -70,23 +57,26 @@ unsafe extern "C" fn game_attack13(agent: &mut L2CAgentBase) {
70
57
unsafe extern "C" fn game_attackdash ( agent : & mut L2CAgentBase ) {
71
58
let lua_state = agent. lua_state_agent ;
72
59
let boma = agent. boma ( ) ;
73
- frame ( lua_state, 8.0 ) ;
60
+ frame ( lua_state, 7.0 ) ;
61
+ FT_MOTION_RATE_RANGE ( agent, 7.0 , 8.5 , 1.0 ) ;
62
+ frame ( lua_state, 8.5 ) ;
63
+ FT_MOTION_RATE_RANGE ( agent, 8.5 , 10.0 , 4.0 ) ;
74
64
if is_excute ( agent) {
75
- // Body/Sword Hitboxes
76
- ATTACK ( agent, 0 , 0 , Hash40 :: new ( "shoulderr" ) , 10.0 , 361 , 80 , 0 , 50 , 3.0 , 0.0 , 0.0 , 0.0 , None , None , None , 1.0 , 1.0 , * ATTACK_SETOFF_KIND_ON , * ATTACK_LR_CHECK_F , false , 0 , 0.0 , 0 , false , false , false , false , true , * COLLISION_SITUATION_MASK_GA , * COLLISION_CATEGORY_MASK_ALL , * COLLISION_PART_MASK_ALL , false , Hash40 :: new ( "collision_attr_cutup" ) , * ATTACK_SOUND_LEVEL_M , * COLLISION_SOUND_ATTR_CUTUP , * ATTACK_REGION_SWORD ) ;
77
- ATTACK ( agent, 1 , 0 , Hash40 :: new ( "armr" ) , 10.0 , 361 , 80 , 0 , 50 , 3.0 , 0.0 , 0.0 , 0.0 , None , None , None , 1.0 , 1.0 , * ATTACK_SETOFF_KIND_ON , * ATTACK_LR_CHECK_F , false , 0 , 0.0 , 0 , false , false , false , false , true , * COLLISION_SITUATION_MASK_GA , * COLLISION_CATEGORY_MASK_ALL , * COLLISION_PART_MASK_ALL , false , Hash40 :: new ( "collision_attr_cutup" ) , * ATTACK_SOUND_LEVEL_M , * COLLISION_SOUND_ATTR_CUTUP , * ATTACK_REGION_SWORD ) ;
78
- ATTACK ( agent, 2 , 0 , Hash40 :: new ( "haver" ) , 10.0 , 361 , 80 , 0 , 50 , 3.25 , 0.0 , 2.0 , 0.0 , None , None , None , 1.0 , 1.0 , * ATTACK_SETOFF_KIND_ON , * ATTACK_LR_CHECK_F , false , 0 , 0.0 , 0 , false , false , false , false , true , * COLLISION_SITUATION_MASK_GA , * COLLISION_CATEGORY_MASK_ALL , * COLLISION_PART_MASK_ALL , false , Hash40 :: new ( "collision_attr_cutup" ) , * ATTACK_SOUND_LEVEL_M , * COLLISION_SOUND_ATTR_CUTUP , * ATTACK_REGION_SWORD ) ;
79
- ATTACK ( agent, 3 , 0 , Hash40 :: new ( "haver" ) , 10.0 , 361 , 80 , 0 , 50 , 3.25 , 0.0 , 6.75 , 0.0 , None , None , None , 1.0 , 1.0 , * ATTACK_SETOFF_KIND_ON , * ATTACK_LR_CHECK_F , false , 0 , 0.0 , 0 , false , false , false , false , true , * COLLISION_SITUATION_MASK_GA , * COLLISION_CATEGORY_MASK_ALL , * COLLISION_PART_MASK_ALL , false , Hash40 :: new ( "collision_attr_cutup" ) , * ATTACK_SOUND_LEVEL_M , * COLLISION_SOUND_ATTR_CUTUP , * ATTACK_REGION_SWORD ) ;
80
- ATTACK ( agent, 4 , 0 , Hash40 :: new ( "haver" ) , 14.5 , 361 , 80 , 0 , 50 , 3.25 , 0.0 , 11.5 , 0.0 , None , None , None , 1.0 , 1.0 , * ATTACK_SETOFF_KIND_ON , * ATTACK_LR_CHECK_F , false , 0 , 0.0 , 0 , false , false , false , false , true , * COLLISION_SITUATION_MASK_GA , * COLLISION_CATEGORY_MASK_ALL , * COLLISION_PART_MASK_ALL , false , Hash40 :: new ( "collision_attr_cutup" ) , * ATTACK_SOUND_LEVEL_L , * COLLISION_SOUND_ATTR_CUTUP , * ATTACK_REGION_SWORD ) ;
65
+ ATTACK ( agent, 0 , 0 , Hash40 :: new ( "armr" ) , 10.0 , 361 , 75 , 0 , 50 , 3.0 , 0.0 , 0.0 , 0.0 , None , None , None , 1.0 , 1.0 , * ATTACK_SETOFF_KIND_ON , * ATTACK_LR_CHECK_F , false , 0 , 0.0 , 0 , false , false , false , false , true , * COLLISION_SITUATION_MASK_GA , * COLLISION_CATEGORY_MASK_ALL , * COLLISION_PART_MASK_ALL , false , Hash40 :: new ( "collision_attr_cutup" ) , * ATTACK_SOUND_LEVEL_M , * COLLISION_SOUND_ATTR_CUTUP , * ATTACK_REGION_SWORD ) ;
66
+ ATTACK ( agent, 1 , 0 , Hash40 :: new ( "haver" ) , 12.0 , 361 , 75 , 0 , 50 , 3.0 , 0.0 , 0.0 , 0.0 , None , None , None , 1.0 , 1.0 , * ATTACK_SETOFF_KIND_ON , * ATTACK_LR_CHECK_F , false , 0 , 0.0 , 0 , false , false , false , false , true , * COLLISION_SITUATION_MASK_GA , * COLLISION_CATEGORY_MASK_ALL , * COLLISION_PART_MASK_ALL , false , Hash40 :: new ( "collision_attr_cutup" ) , * ATTACK_SOUND_LEVEL_M , * COLLISION_SOUND_ATTR_CUTUP , * ATTACK_REGION_SWORD ) ;
67
+ ATTACK ( agent, 2 , 0 , Hash40 :: new ( "haver" ) , 12.0 , 361 , 75 , 0 , 50 , 3.0 , 0.0 , 3.5 , 0.0 , None , None , None , 1.0 , 1.0 , * ATTACK_SETOFF_KIND_ON , * ATTACK_LR_CHECK_F , false , 0 , 0.0 , 0 , false , false , false , false , true , * COLLISION_SITUATION_MASK_GA , * COLLISION_CATEGORY_MASK_ALL , * COLLISION_PART_MASK_ALL , false , Hash40 :: new ( "collision_attr_cutup" ) , * ATTACK_SOUND_LEVEL_M , * COLLISION_SOUND_ATTR_CUTUP , * ATTACK_REGION_SWORD ) ;
68
+ ATTACK ( agent, 3 , 0 , Hash40 :: new ( "haver" ) , 15.0 , 361 , 75 , 0 , 50 , 3.0 , 0.0 , 9.0 , 0.0 , None , None , None , 1.0 , 1.0 , * ATTACK_SETOFF_KIND_ON , * ATTACK_LR_CHECK_F , false , 0 , 0.0 , 0 , false , false , false , false , true , * COLLISION_SITUATION_MASK_GA , * COLLISION_CATEGORY_MASK_ALL , * COLLISION_PART_MASK_ALL , false , Hash40 :: new ( "collision_attr_cutup" ) , * ATTACK_SOUND_LEVEL_L , * COLLISION_SOUND_ATTR_CUTUP , * ATTACK_REGION_SWORD ) ;
81
69
}
82
- frame ( lua_state, 12.0 ) ;
70
+ frame ( lua_state, 10.0 ) ;
71
+ FT_MOTION_RATE ( agent, 1.0 ) ;
83
72
if is_excute ( agent) {
84
73
AttackModule :: clear_all ( boma) ;
85
74
}
86
75
frame ( lua_state, 28.0 ) ;
87
- if is_excute ( agent) {
88
- FT_MOTION_RATE ( agent, 0.75 ) ;
89
- }
76
+ FT_MOTION_RATE_RANGE ( agent, 28.0 , 46.0 , 12.0 ) ;
77
+ frame ( lua_state, 46.0 ) ;
78
+ FT_MOTION_RATE ( agent, 1.0 ) ;
79
+
90
80
}
91
81
92
82
unsafe extern "C" fn expression_attackdash ( agent : & mut L2CAgentBase ) {
@@ -100,7 +90,7 @@ unsafe extern "C" fn expression_attackdash(agent: &mut L2CAgentBase) {
100
90
if is_excute ( agent) {
101
91
ControlModule :: set_rumble ( boma, Hash40 :: new ( "rbkind_nohitm" ) , 0 , false , * BATTLE_OBJECT_ID_INVALID as u32 ) ;
102
92
}
103
- frame ( lua_state, 8.0 ) ;
93
+ frame ( lua_state, 8.5 ) ;
104
94
if is_excute ( agent) {
105
95
RUMBLE_HIT ( agent, Hash40 :: new ( "rbkind_slashm" ) , 0 ) ;
106
96
}
0 commit comments