Skip to content

Commit c9f20e8

Browse files
committed
Revisions and additions
1 parent 644bcc8 commit c9f20e8

File tree

14 files changed

+319
-138
lines changed

14 files changed

+319
-138
lines changed

fighters/bayonetta/src/acmd/throws.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ unsafe fn bayonetta_throw_lw_game(fighter: &mut L2CAgentBase) {
6161
let lua_state = fighter.lua_state_agent;
6262
let boma = fighter.boma();
6363
if is_excute(fighter) {
64-
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);
6565
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);
6666
}
6767
frame(lua_state, 20.0);

fighters/buddy/src/acmd/throws.rs

+35-5
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,12 @@ unsafe fn buddy_throw_f_game(fighter: &mut L2CAgentBase) {
55
let lua_state = fighter.lua_state_agent;
66
let boma = fighter.boma();
77
if is_excute(fighter) {
8-
ATTACK_ABS(fighter, *FIGHTER_ATTACK_ABSOLUTE_KIND_THROW, 0, 4.0, 45, 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);
8+
ATTACK_ABS(fighter, *FIGHTER_ATTACK_ABSOLUTE_KIND_THROW, 0, 4.0, 52, 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);
99
ATTACK_ABS(fighter, *FIGHTER_ATTACK_ABSOLUTE_KIND_CATCH, 0, 4.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);
1010
}
1111
frame(lua_state, 9.0);
1212
if is_excute(fighter) {
13-
ATTACK(fighter, 0, 0, Hash40::new("k_footr"), 6.0, 64, 34, 0, 82, 4.6, 2.8, 2.8, 0.0, None, None, None, 1.25, 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_KICK, *ATTACK_REGION_KICK);
13+
ATTACK(fighter, 0, 0, Hash40::new("k_footr"), 6.0, 64, 34, 0, 82, 4.6, 2.8, 2.8, 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_KICK, *ATTACK_REGION_KICK);
1414
AttackModule::set_catch_only_all(boma, true, false);
1515
}
1616
frame(lua_state, 10.0);
@@ -53,13 +53,44 @@ unsafe fn buddy_throw_b_game(fighter: &mut L2CAgentBase) {
5353

5454
}
5555

56+
#[acmd_script( agent = "buddy", script = "game_throwhi" , category = ACMD_GAME , low_priority)]
57+
unsafe fn buddy_throw_hi_game(fighter: &mut L2CAgentBase) {
58+
let lua_state = fighter.lua_state_agent;
59+
let boma = fighter.boma();
60+
if is_excute(fighter) {
61+
ATTACK_ABS(fighter, *FIGHTER_ATTACK_ABSOLUTE_KIND_THROW, 0, 3.0, 104, 64, 0, 78, 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);
62+
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);
63+
}
64+
frame(lua_state, 13.0);
65+
if is_excute(fighter) {
66+
ATTACK(fighter, 0, 0, Hash40::new("top"), 5.4, 361, 100, 0, 10, 4.0, 0.0, 24.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_CUTUP, *ATTACK_REGION_HEAD);
67+
AttackModule::set_catch_only_all(boma, true, false);
68+
}
69+
frame(lua_state, 14.0);
70+
if is_excute(fighter) {
71+
CHECK_FINISH_CAMERA(fighter, -1, 18);
72+
}
73+
frame(lua_state, 15.0);
74+
if is_excute(fighter) {
75+
let target = WorkModule::get_int64(boma, *FIGHTER_STATUS_THROW_WORK_INT_TARGET_OBJECT);
76+
let target_group = WorkModule::get_int64(boma, *FIGHTER_STATUS_THROW_WORK_INT_TARGET_HIT_GROUP);
77+
let target_no = WorkModule::get_int64(boma, *FIGHTER_STATUS_THROW_WORK_INT_TARGET_HIT_NO);
78+
ATK_HIT_ABS(fighter, *FIGHTER_ATTACK_ABSOLUTE_KIND_THROW, Hash40::new("throw"), target, target_group, target_no);
79+
AttackModule::clear_all(boma);
80+
}
81+
frame(lua_state, 16.0);
82+
FT_MOTION_RATE(fighter, 0.6);
83+
frame(lua_state, 56.0);
84+
FT_MOTION_RATE(fighter, 1.0);
85+
}
86+
5687
#[acmd_script( agent = "buddy", script = "game_throwlw" , category = ACMD_GAME , low_priority)]
5788
unsafe fn buddy_throw_lw_game(fighter: &mut L2CAgentBase) {
5889
let lua_state = fighter.lua_state_agent;
5990
let boma = fighter.boma();
6091
FT_MOTION_RATE_RANGE(fighter, 1.0, 10.0, 7.0);
6192
if is_excute(fighter) {
62-
ATTACK_ABS(fighter, *FIGHTER_ATTACK_ABSOLUTE_KIND_THROW, 0, 6.0, 35, 70, 0, 50, 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);
93+
ATTACK_ABS(fighter, *FIGHTER_ATTACK_ABSOLUTE_KIND_THROW, 0, 6.0, 75, 80, 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);
6394
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);
6495
}
6596
frame(lua_state, 10.0);
@@ -71,8 +102,6 @@ unsafe fn buddy_throw_lw_game(fighter: &mut L2CAgentBase) {
71102
if is_excute(fighter) {
72103
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));
73104
AttackModule::clear_all(boma);
74-
let opponent_boma = fighter.get_grabbed_opponent_boma();
75-
VarModule::on_flag(opponent_boma.object(), vars::common::instance::IS_KNOCKDOWN_THROW);
76105
}
77106

78107
}
@@ -127,6 +156,7 @@ pub fn install() {
127156
install_acmd_scripts!(
128157
buddy_throw_f_game,
129158
buddy_throw_b_game,
159+
buddy_throw_hi_game,
130160
buddy_throw_lw_game,
131161
buddy_throw_lw_effect,
132162
buddy_throw_lw_sound,

fighters/dolly/src/acmd/mod.rs

+2
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ mod tilts;
44
mod other;
55
mod smashes;
66
mod specials;
7+
mod throws;
78
mod ground;
89

910
pub fn install() {
@@ -12,5 +13,6 @@ pub fn install() {
1213
other::install();
1314
smashes::install();
1415
specials::install();
16+
throws::install();
1517
ground::install();
1618
}

fighters/dolly/src/acmd/throws.rs

+51
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
use super::*;
2+
3+
#[acmd_script( agent = "dolly", script = "game_throwf" , category = ACMD_GAME , low_priority)]
4+
unsafe fn dolly_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, 10.0, 38, 59, 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, 29.0);
12+
if is_excute(fighter) {
13+
CHECK_FINISH_CAMERA(fighter, 11, 1);
14+
}
15+
frame(lua_state, 30.0);
16+
if is_excute(fighter) {
17+
let target = WorkModule::get_int64(boma, *FIGHTER_STATUS_THROW_WORK_INT_TARGET_OBJECT);
18+
let target_group = WorkModule::get_int64(boma, *FIGHTER_STATUS_THROW_WORK_INT_TARGET_HIT_GROUP);
19+
let target_no = WorkModule::get_int64(boma, *FIGHTER_STATUS_THROW_WORK_INT_TARGET_HIT_NO);
20+
ATK_HIT_ABS(fighter, *FIGHTER_ATTACK_ABSOLUTE_KIND_THROW, Hash40::new("throw"), target, target_group, target_no);
21+
}
22+
}
23+
24+
#[acmd_script( agent = "dolly", script = "game_throwb" , category = ACMD_GAME , low_priority)]
25+
unsafe fn dolly_throw_b_game(fighter: &mut L2CAgentBase) {
26+
let lua_state = fighter.lua_state_agent;
27+
let boma = fighter.boma();
28+
if is_excute(fighter) {
29+
ATTACK_ABS(fighter, *FIGHTER_ATTACK_ABSOLUTE_KIND_THROW, 0, 10.0, 38, 59, 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);
30+
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+
}
32+
frame(lua_state, 29.0);
33+
if is_excute(fighter) {
34+
REVERSE_LR(fighter);
35+
CHECK_FINISH_CAMERA(fighter, 11, 1);
36+
}
37+
frame(lua_state, 30.0);
38+
if is_excute(fighter) {
39+
let target = WorkModule::get_int64(boma, *FIGHTER_STATUS_THROW_WORK_INT_TARGET_OBJECT);
40+
let target_group = WorkModule::get_int64(boma, *FIGHTER_STATUS_THROW_WORK_INT_TARGET_HIT_GROUP);
41+
let target_no = WorkModule::get_int64(boma, *FIGHTER_STATUS_THROW_WORK_INT_TARGET_HIT_NO);
42+
ATK_HIT_ABS(fighter, *FIGHTER_ATTACK_ABSOLUTE_KIND_THROW, Hash40::new("throw"), target, target_group, target_no);
43+
}
44+
}
45+
46+
pub fn install() {
47+
install_acmd_scripts!(
48+
dolly_throw_f_game,
49+
dolly_throw_b_game,
50+
);
51+
}

fighters/gamewatch/src/acmd/throws.rs

+3-8
Original file line numberDiff line numberDiff line change
@@ -161,13 +161,8 @@ unsafe fn game_throwlw(fighter: &mut L2CAgentBase) {
161161
if is_excute(fighter) {
162162
WorkModule::set_float(boma, 70.0, *FIGHTER_GAMEWATCH_STATUS_THROW_WORK_FLOAT_STOCK_ICON_ROTATE);
163163
}
164-
frame(lua_state, 29.0);
165-
if (is_excute(fighter)) {
166-
FT_MOTION_RATE(fighter, 2.000);
167-
}
168164
frame(lua_state, 34.0);
169165
if is_excute(fighter) {
170-
FT_MOTION_RATE(fighter, 1.000);
171166
CHECK_FINISH_CAMERA(fighter, -9, 0);
172167
}
173168
frame(lua_state, 35.0);
@@ -179,9 +174,9 @@ unsafe fn game_throwlw(fighter: &mut L2CAgentBase) {
179174
VarModule::on_flag(opponent_boma.object(), vars::common::instance::IS_KNOCKDOWN_THROW);
180175
}
181176
frame(lua_state, 41.0);
182-
if (is_excute(fighter)) {
183-
FT_MOTION_RATE(fighter, 0.500);
184-
}
177+
FT_MOTION_RATE(fighter, 0.5);
178+
frame(lua_state, 47.0);
179+
FT_MOTION_RATE(fighter, 1.0);
185180

186181
}
187182

fighters/gekkouga/src/acmd/throws.rs

+33-42
Original file line numberDiff line numberDiff line change
@@ -1,81 +1,72 @@
1-
21
use super::*;
32

43
#[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) {
65
let lua_state = fighter.lua_state_agent;
76
let boma = fighter.boma();
87
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);
109
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);
1110
}
1211
frame(lua_state, 15.0);
1312
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);
2014
}
2115
frame(lua_state, 16.0);
2216
if is_excute(fighter) {
2317
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);
2518
}
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);
2623

2724
}
2825

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) {
3128
let lua_state = fighter.lua_state_agent;
3229
let boma = fighter.boma();
3330
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);
3632
}
3733
frame(lua_state, 15.0);
3834
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);
5537
}
56-
57-
5838
}
5939

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) {
6242
let lua_state = fighter.lua_state_agent;
6343
let boma = fighter.boma();
6444
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);
6647
}
6748
frame(lua_state, 15.0);
6849
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);
7159
}
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);
7264
}
7365

7466
pub fn install() {
7567
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,
7971
);
80-
}
81-
72+
}

0 commit comments

Comments
 (0)