1
-
2
1
use super :: * ;
3
2
3
+ #[ acmd_script( agent = "bayonetta" , script = "game_throwf" , category = ACMD_GAME , low_priority ) ]
4
+ unsafe fn bayonetta_throw_f_game ( fighter : & mut L2CAgentBase ) {
5
+ let lua_state = fighter. lua_state_agent ;
6
+ let boma = fighter. boma ( ) ;
7
+ if is_excute ( fighter) {
8
+ ATTACK_ABS ( fighter, * FIGHTER_ATTACK_ABSOLUTE_KIND_THROW , 0 , 4.0 , 45 , 165 , 0 , 60 , 0.0 , 1.0 , * ATTACK_LR_CHECK_F , 0.0 , true , Hash40 :: new ( "collision_attr_normal" ) , * ATTACK_SOUND_LEVEL_S , * COLLISION_SOUND_ATTR_NONE , * ATTACK_REGION_THROW ) ;
9
+ ATTACK_ABS ( fighter, * FIGHTER_ATTACK_ABSOLUTE_KIND_CATCH , 0 , 3.0 , 361 , 100 , 0 , 60 , 0.0 , 1.0 , * ATTACK_LR_CHECK_F , 0.0 , true , Hash40 :: new ( "collision_attr_normal" ) , * ATTACK_SOUND_LEVEL_S , * COLLISION_SOUND_ATTR_NONE , * ATTACK_REGION_THROW ) ;
10
+ }
11
+ frame ( lua_state, 14.0 ) ;
12
+ if is_excute ( fighter) {
13
+ ATTACK ( fighter, 0 , 0 , Hash40 :: new ( "top" ) , 6.0 , 55 , 160 , 0 , 30 , 6.0 , 0.0 , 10.0 , 5.0 , None , None , None , 1.4 , 1.0 , * ATTACK_SETOFF_KIND_OFF , * 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_normal" ) , * ATTACK_SOUND_LEVEL_S , * COLLISION_SOUND_ATTR_NONE , * ATTACK_REGION_BODY ) ;
14
+ AttackModule :: set_catch_only_all ( boma, true , false ) ;
15
+ CHECK_FINISH_CAMERA ( fighter, 14 , 7 ) ;
16
+ }
17
+ frame ( lua_state, 15.0 ) ;
18
+ FT_MOTION_RATE_RANGE ( fighter, 15.0 , 50.0 , 28.0 ) ;
19
+ if is_excute ( fighter) {
20
+ let target = WorkModule :: get_int64 ( boma, * FIGHTER_STATUS_THROW_WORK_INT_TARGET_OBJECT ) ;
21
+ let target_group = WorkModule :: get_int64 ( boma, * FIGHTER_STATUS_THROW_WORK_INT_TARGET_HIT_GROUP ) ;
22
+ let target_no = WorkModule :: get_int64 ( boma, * FIGHTER_STATUS_THROW_WORK_INT_TARGET_HIT_NO ) ;
23
+ ATK_HIT_ABS ( fighter, * FIGHTER_ATTACK_ABSOLUTE_KIND_THROW , Hash40 :: new ( "throw" ) , target, target_group, target_no) ;
24
+ AttackModule :: clear_all ( boma) ;
25
+ }
26
+ frame ( lua_state, 50.0 ) ;
27
+ FT_MOTION_RATE ( fighter, 1.0 ) ;
28
+
29
+ }
30
+
4
31
#[ acmd_script( agent = "bayonetta" , script = "game_throwhi" , category = ACMD_GAME , low_priority) ]
5
32
unsafe fn bayonetta_throw_hi_game ( fighter : & mut L2CAgentBase ) {
6
33
let lua_state = fighter. lua_state_agent ;
7
34
let boma = fighter. boma ( ) ;
8
35
if is_excute ( fighter) {
9
- ATTACK_ABS ( fighter, * FIGHTER_ATTACK_ABSOLUTE_KIND_THROW , 0 , 4.5 , 84 , 108 , 0 , 60 , 0.0 , 1.0 , * ATTACK_LR_CHECK_F , 0.0 , true , Hash40 :: new ( "collision_attr_normal" ) , * ATTACK_SOUND_LEVEL_S , * COLLISION_SOUND_ATTR_NONE , * ATTACK_REGION_THROW ) ;
36
+ ATTACK_ABS ( fighter, * FIGHTER_ATTACK_ABSOLUTE_KIND_THROW , 0 , 4.5 , 85 , 78 , 0 , 55 , 0.0 , 1.0 , * ATTACK_LR_CHECK_F , 0.0 , true , Hash40 :: new ( "collision_attr_normal" ) , * ATTACK_SOUND_LEVEL_S , * COLLISION_SOUND_ATTR_NONE , * ATTACK_REGION_THROW ) ;
10
37
ATTACK_ABS ( fighter, * FIGHTER_ATTACK_ABSOLUTE_KIND_CATCH , 0 , 3.0 , 361 , 100 , 0 , 40 , 0.0 , 1.0 , * ATTACK_LR_CHECK_F , 0.0 , true , Hash40 :: new ( "collision_attr_normal" ) , * ATTACK_SOUND_LEVEL_S , * COLLISION_SOUND_ATTR_NONE , * ATTACK_REGION_THROW ) ;
11
38
}
12
39
frame ( lua_state, 9.0 ) ;
@@ -15,7 +42,6 @@ unsafe fn bayonetta_throw_hi_game(fighter: &mut L2CAgentBase) {
15
42
ATTACK ( fighter, 1 , 0 , Hash40 :: new ( "kneel" ) , 3.0 , 80 , 170 , 0 , 60 , 5.0 , 0.0 , 0.0 , 0.0 , None , None , None , 1.0 , 1.0 , * ATTACK_SETOFF_KIND_OFF , * 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_normal" ) , * ATTACK_SOUND_LEVEL_M , * COLLISION_SOUND_ATTR_KICK , * ATTACK_REGION_KICK ) ;
16
43
AttackModule :: set_catch_only_all ( boma, true , false ) ;
17
44
CHECK_FINISH_CAMERA ( fighter, 8 , 18 ) ;
18
- //FighterCutInManager::set_throw_finish_zoom_rate(boma, 1.3);
19
45
}
20
46
frame ( lua_state, 10.0 ) ;
21
47
if is_excute ( fighter) {
@@ -26,14 +52,16 @@ unsafe fn bayonetta_throw_hi_game(fighter: &mut L2CAgentBase) {
26
52
if is_excute ( fighter) {
27
53
AttackModule :: clear_all ( boma) ;
28
54
}
55
+ frame ( lua_state, 35.0 ) ;
56
+ FT_MOTION_RATE ( fighter, 1.0 ) ;
29
57
}
30
58
31
59
#[ acmd_script( agent = "bayonetta" , script = "game_throwlw" , category = ACMD_GAME , low_priority) ]
32
60
unsafe fn bayonetta_throw_lw_game ( fighter : & mut L2CAgentBase ) {
33
61
let lua_state = fighter. lua_state_agent ;
34
62
let boma = fighter. boma ( ) ;
35
63
if is_excute ( fighter) {
36
- ATTACK_ABS ( fighter, * FIGHTER_ATTACK_ABSOLUTE_KIND_THROW , 0 , 5.0 , 78 , 156 , 0 , 26 , 0.0 , 1.0 , * ATTACK_LR_CHECK_F , 0.0 , true , Hash40 :: new ( "collision_attr_normal" ) , * ATTACK_SOUND_LEVEL_S , * COLLISION_SOUND_ATTR_NONE , * ATTACK_REGION_THROW ) ;
64
+ ATTACK_ABS ( fighter, * FIGHTER_ATTACK_ABSOLUTE_KIND_THROW , 0 , 5.0 , 81 , 170 , 0 , 26 , 0.0 , 1.0 , * ATTACK_LR_CHECK_F , 0.0 , true , Hash40 :: new ( "collision_attr_normal" ) , * ATTACK_SOUND_LEVEL_S , * COLLISION_SOUND_ATTR_NONE , * ATTACK_REGION_THROW ) ;
37
65
ATTACK_ABS ( fighter, * FIGHTER_ATTACK_ABSOLUTE_KIND_CATCH , 0 , 3.0 , 361 , 100 , 0 , 40 , 0.0 , 1.0 , * ATTACK_LR_CHECK_F , 0.0 , true , Hash40 :: new ( "collision_attr_normal" ) , * ATTACK_SOUND_LEVEL_S , * COLLISION_SOUND_ATTR_NONE , * ATTACK_REGION_THROW ) ;
38
66
}
39
67
frame ( lua_state, 20.0 ) ;
@@ -48,36 +76,14 @@ unsafe fn bayonetta_throw_lw_game(fighter: &mut L2CAgentBase) {
48
76
ATK_HIT_ABS ( fighter, * FIGHTER_ATTACK_ABSOLUTE_KIND_THROW , Hash40 :: new ( "throw" ) , WorkModule :: get_int64 ( boma, * FIGHTER_STATUS_THROW_WORK_INT_TARGET_OBJECT ) , WorkModule :: get_int64 ( boma, * FIGHTER_STATUS_THROW_WORK_INT_TARGET_HIT_GROUP ) , WorkModule :: get_int64 ( boma, * FIGHTER_STATUS_THROW_WORK_INT_TARGET_HIT_NO ) ) ;
49
77
AttackModule :: clear_all ( boma) ;
50
78
}
51
- }
52
-
53
- #[ acmd_script( agent = "bayonetta" , script = "game_throwf" , category = ACMD_GAME , low_priority ) ]
54
- unsafe fn bayonetta_throw_f_game ( fighter : & mut L2CAgentBase ) {
55
- if is_excute ( fighter) {
56
- ATTACK_ABS ( fighter, * FIGHTER_ATTACK_ABSOLUTE_KIND_THROW , 0 , 4.0 , 45 , 140 , 0 , 60 , 0.0 , 1.0 , * ATTACK_LR_CHECK_F , 0.0 , true , Hash40 :: new ( "collision_attr_normal" ) , * ATTACK_SOUND_LEVEL_S , * COLLISION_SOUND_ATTR_NONE , * ATTACK_REGION_THROW ) ;
57
- ATTACK_ABS ( fighter, * FIGHTER_ATTACK_ABSOLUTE_KIND_CATCH , 0 , 3.0 , 361 , 100 , 0 , 60 , 0.0 , 1.0 , * ATTACK_LR_CHECK_F , 0.0 , true , Hash40 :: new ( "collision_attr_normal" ) , * ATTACK_SOUND_LEVEL_S , * COLLISION_SOUND_ATTR_NONE , * ATTACK_REGION_THROW ) ;
58
- }
59
- frame ( fighter. lua_state_agent , 14.0 ) ;
60
- if is_excute ( fighter) {
61
- ATTACK ( fighter, 0 , 0 , Hash40 :: new ( "top" ) , 6.0 , 55 , 160 , 0 , 30 , 6.0 , 0.0 , 10.0 , 5.0 , None , None , None , 1.4 , 1.0 , * ATTACK_SETOFF_KIND_OFF , * 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_normal" ) , * ATTACK_SOUND_LEVEL_S , * COLLISION_SOUND_ATTR_NONE , * ATTACK_REGION_BODY ) ;
62
- AttackModule :: set_catch_only_all ( fighter. module_accessor , true , false ) ;
63
- CHECK_FINISH_CAMERA ( fighter, 14 , 7 ) ;
64
- }
65
- frame ( fighter. lua_state_agent , 15.0 ) ;
66
- if is_excute ( fighter) {
67
- let target = WorkModule :: get_int64 ( fighter. module_accessor , * FIGHTER_STATUS_THROW_WORK_INT_TARGET_OBJECT ) ;
68
- let target_group = WorkModule :: get_int64 ( fighter. module_accessor , * FIGHTER_STATUS_THROW_WORK_INT_TARGET_HIT_GROUP ) ;
69
- let target_no = WorkModule :: get_int64 ( fighter. module_accessor , * FIGHTER_STATUS_THROW_WORK_INT_TARGET_HIT_NO ) ;
70
- ATK_HIT_ABS ( fighter, * FIGHTER_ATTACK_ABSOLUTE_KIND_THROW , Hash40 :: new ( "throw" ) , target, target_group, target_no) ;
71
- AttackModule :: clear_all ( fighter. module_accessor ) ;
72
- }
73
- FT_MOTION_RATE_RANGE ( fighter, 15.0 , 50.0 , 28.0 ) ;
79
+ frame ( lua_state, 41.0 ) ;
80
+ FT_MOTION_RATE ( fighter, 1.0 ) ;
74
81
}
75
82
76
83
pub fn install ( ) {
77
84
install_acmd_scripts ! (
85
+ bayonetta_throw_f_game,
78
86
bayonetta_throw_hi_game,
79
87
bayonetta_throw_lw_game,
80
- bayonetta_throw_f_game,
81
88
) ;
82
- }
83
-
89
+ }
0 commit comments