1
-
2
1
use super :: * ;
3
2
4
3
#[ acmd_script( agent = "gekkouga" , script = "game_throwf" , category = ACMD_GAME , low_priority) ]
5
- unsafe fn game_throwf ( fighter : & mut L2CAgentBase ) {
4
+ unsafe fn gekkouga_throw_f_game ( fighter : & mut L2CAgentBase ) {
6
5
let lua_state = fighter. lua_state_agent ;
7
6
let boma = fighter. boma ( ) ;
8
7
if is_excute ( fighter) {
9
- ATTACK_ABS ( fighter, * FIGHTER_ATTACK_ABSOLUTE_KIND_THROW , 0 , 4 .0, 40 , 80 , 0 , 70 , 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 ) ;
8
+ ATTACK_ABS ( fighter, * FIGHTER_ATTACK_ABSOLUTE_KIND_THROW , 0 , 5 .0, 67 , 70 , 0 , 65 , 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
9
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
10
}
12
11
frame ( lua_state, 15.0 ) ;
13
12
if is_excute ( fighter) {
14
- ATTACK ( fighter, 0 , 0 , Hash40 :: new ( "handr" ) , 1.5 , 361 , 100 , 0 , 55 , 4.0 , 0.0 , 0.5 , 0.0 , None , None , None , 1.0 , 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_M , * COLLISION_SOUND_ATTR_PUNCH , * ATTACK_REGION_PUNCH ) ;
15
- ATTACK ( fighter, 1 , 0 , Hash40 :: new ( "armr" ) , 1.5 , 361 , 100 , 0 , 55 , 3.0 , -0.5 , 0.0 , 0.0 , None , None , None , 1.0 , 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_M , * COLLISION_SOUND_ATTR_PUNCH , * ATTACK_REGION_PUNCH ) ;
16
- AttackModule :: set_catch_only_all ( boma, true , false ) ;
17
- CHECK_FINISH_CAMERA ( fighter, 20.0 , 5.0 ) ;
18
- //FighterCutInManager::set_throw_finish_zoom_rate(boma, 1.5);
19
- //FighterCutInManager::set_throw_finish_offset(boma, 8, 2, 0);
13
+ CHECK_FINISH_CAMERA ( fighter, 5.0 , 0.0 ) ;
20
14
}
21
15
frame ( lua_state, 16.0 ) ;
22
16
if is_excute ( fighter) {
23
17
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 ) ) ;
24
- AttackModule :: clear_all ( boma) ;
25
18
}
19
+ frame ( lua_state, 18.0 ) ;
20
+ FT_MOTION_RATE ( fighter, 0.8 ) ;
21
+ frame ( lua_state, 43.0 ) ;
22
+ FT_MOTION_RATE ( fighter, 1.0 ) ;
26
23
27
24
}
28
25
29
- #[ acmd_script( agent = "gekkouga" , script = "game_throwf" , category = ACMD_GAME , low_priority) ]
30
- unsafe fn game_throwlw ( fighter : & mut L2CAgentBase ) {
26
+ #[ acmd_script( agent = "gekkouga" , script = "expression_throwf" , category = ACMD_EXPRESSION , low_priority ) ]
27
+ unsafe fn gekkouga_throw_f_expression ( fighter : & mut L2CAgentBase ) {
31
28
let lua_state = fighter. lua_state_agent ;
32
29
let boma = fighter. boma ( ) ;
33
30
if is_excute ( fighter) {
34
- ATTACK_ABS ( fighter, * FIGHTER_ATTACK_ABSOLUTE_KIND_THROW , 0 , 5.0 , 67 , 70 , 0 , 65 , 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 ) ;
35
- 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 ) ;
31
+ slope ! ( fighter, * MA_MSC_CMD_SLOPE_SLOPE , * SLOPE_STATUS_LR ) ;
36
32
}
37
33
frame ( lua_state, 15.0 ) ;
38
34
if is_excute ( fighter) {
39
- //FT_CATCH_STOP(fighter, 7, 1);
40
- CHECK_FINISH_CAMERA ( fighter, 5.0 , 0.0 ) ;
41
- //FighterCutInManager::set_throw_finish_zoom_rate(boma, 1.5);
42
- //FighterCutInManager::set_throw_finish_offset(boma, 5, 0, 0);
43
- }
44
- frame ( lua_state, 16.0 ) ;
45
- if is_excute ( fighter) {
46
- 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 ) ) ;
47
- }
48
- frame ( lua_state, 18.0 ) ;
49
- if is_excute ( fighter) {
50
- FT_MOTION_RATE ( fighter, 0.8 ) ;
51
- }
52
- frame ( lua_state, 43.0 ) ;
53
- if is_excute ( fighter) {
54
- FT_MOTION_RATE ( fighter, 1 ) ;
35
+ QUAKE ( fighter, * CAMERA_QUAKE_KIND_M ) ;
36
+ RUMBLE_HIT ( fighter, Hash40 :: new ( "rbkind_attackm" ) , 0 ) ;
55
37
}
56
-
57
-
58
38
}
59
39
60
- #[ acmd_script( agent = "gekkouga" , script = "expression_throwf" , category = ACMD_EXPRESSION , low_priority ) ]
61
- unsafe fn expression_throwf ( fighter : & mut L2CAgentBase ) {
40
+ #[ acmd_script( agent = "gekkouga" , script = "game_throwlw" , category = ACMD_GAME , low_priority) ]
41
+ unsafe fn gekkouga_throw_lw_game ( fighter : & mut L2CAgentBase ) {
62
42
let lua_state = fighter. lua_state_agent ;
63
43
let boma = fighter. boma ( ) ;
64
44
if is_excute ( fighter) {
65
- slope ! ( fighter, * MA_MSC_CMD_SLOPE_SLOPE , * SLOPE_STATUS_LR ) ;
45
+ ATTACK_ABS ( fighter, * FIGHTER_ATTACK_ABSOLUTE_KIND_THROW , 0 , 5.0 , 65 , 73 , 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 ) ;
46
+ 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 ) ;
66
47
}
67
48
frame ( lua_state, 15.0 ) ;
68
49
if is_excute ( fighter) {
69
- QUAKE ( fighter, * CAMERA_QUAKE_KIND_M ) ;
70
- RUMBLE_HIT ( fighter, Hash40 :: new ( "rbkind_attackm" ) , 0 ) ;
50
+ FT_CATCH_STOP ( fighter, 7 , 1 ) ;
51
+ CHECK_FINISH_CAMERA ( fighter, 5 , 0 ) ;
52
+ }
53
+ frame ( lua_state, 16.0 ) ;
54
+ if is_excute ( fighter) {
55
+ let target = WorkModule :: get_int64 ( boma, * FIGHTER_STATUS_THROW_WORK_INT_TARGET_OBJECT ) ;
56
+ let target_group = WorkModule :: get_int64 ( boma, * FIGHTER_STATUS_THROW_WORK_INT_TARGET_HIT_GROUP ) ;
57
+ let target_no = WorkModule :: get_int64 ( boma, * FIGHTER_STATUS_THROW_WORK_INT_TARGET_HIT_NO ) ;
58
+ ATK_HIT_ABS ( fighter, * FIGHTER_ATTACK_ABSOLUTE_KIND_THROW , Hash40 :: new ( "throw" ) , target, target_group, target_no) ;
71
59
}
60
+ frame ( lua_state, 18.0 ) ;
61
+ FT_MOTION_RATE ( fighter, 0.8 ) ;
62
+ frame ( lua_state, 43.0 ) ;
63
+ FT_MOTION_RATE ( fighter, 1.0 ) ;
72
64
}
73
65
74
66
pub fn install ( ) {
75
67
install_acmd_scripts ! (
76
- game_throwf ,
77
- expression_throwf ,
78
- game_throwlw ,
68
+ gekkouga_throw_f_game ,
69
+ gekkouga_throw_f_expression ,
70
+ gekkouga_throw_lw_game ,
79
71
) ;
80
- }
81
-
72
+ }
0 commit comments