Skip to content

Commit 924e61d

Browse files
authored
Merge pull request #2261 from LunchablesTX/PMRoyProject
PM x HDR Roy PR
2 parents 229dc71 + d1f5569 commit 924e61d

File tree

12 files changed

+828
-823
lines changed

12 files changed

+828
-823
lines changed

dynamic/src/consts.rs

+4
Original file line numberDiff line numberDiff line change
@@ -993,6 +993,10 @@ pub mod vars {
993993
// flags
994994
pub const TRAIL_EFFECT: i32 = 0x0100;
995995
}
996+
pub mod status {
997+
// flags
998+
pub const SIDE_B_REVERSE : i32 = 0x1150;
999+
}
9961000
}
9971001

9981002
pub mod shotos {

fighters/roy/src/acmd/aerials.rs

+86-73
Large diffs are not rendered by default.

fighters/roy/src/acmd/ground.rs

+5-6
Original file line numberDiff line numberDiff line change
@@ -30,13 +30,12 @@ unsafe extern "C" fn roy_attack_dash_game(fighter: &mut L2CAgentBase) {
3030
let boma = fighter.boma();
3131
frame(lua_state, 13.0);
3232
if is_excute(fighter) {
33-
ATTACK(fighter, 0, 0, Hash40::new("sword1"), 13.0, 110, 47, 0, 73, 4.0, 0.0, 0.0, 2.25, 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_ROY_HIT, *ATTACK_REGION_SWORD);
34-
ATTACK(fighter, 1, 0, Hash40::new("armr"), 13.0, 110, 47, 0, 73, 4.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_L, *COLLISION_SOUND_ATTR_ROY_HIT, *ATTACK_REGION_SWORD);
35-
ATTACK(fighter, 2, 0, Hash40::new("shoulderl"), 13.0, 110, 47, 0, 73, 2.5, 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_L, *COLLISION_SOUND_ATTR_ROY_HIT, *ATTACK_REGION_SWORD);
36-
ATTACK(fighter, 3, 0, Hash40::new("sword1"), 9.0, 100, 60, 0, 73, 3.5, 0.0, 0.0, 9.0, None, None, None, 0.8, 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_PUNCH, *ATTACK_REGION_SWORD);
37-
ATK_SET_SHIELD_SETOFF_MUL_arg4(fighter, 0, 1, 2, 1.25);
33+
ATTACK(fighter, 0, 0, Hash40::new("sword1"), 13.0, 110, 50, 0, 70, 4.0, 0.0, 0.0, 2.25, 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_L, *COLLISION_SOUND_ATTR_ROY_HIT, *ATTACK_REGION_SWORD);
34+
ATTACK(fighter, 1, 0, Hash40::new("armr"), 13.0, 110, 50, 0, 70, 4.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_L, *COLLISION_SOUND_ATTR_ROY_HIT, *ATTACK_REGION_SWORD);
35+
ATTACK(fighter, 2, 0, Hash40::new("shoulderl"), 13.0, 110, 50, 0, 70, 2.5, 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_L, *COLLISION_SOUND_ATTR_ROY_HIT, *ATTACK_REGION_SWORD);
36+
ATTACK(fighter, 3, 0, Hash40::new("sword1"), 9.0, 361, 55, 0, 35, 3.5, 0.0, 0.0, 9.0, None, None, None, 0.8, 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_PUNCH, *ATTACK_REGION_SWORD);
3837
}
39-
wait(lua_state, 4.0);
38+
frame(lua_state, 18.0);
4039
if is_excute(fighter) {
4140
AttackModule::clear_all(boma);
4241
}

fighters/roy/src/acmd/other.rs

+40-1
Original file line numberDiff line numberDiff line change
@@ -243,6 +243,42 @@ unsafe extern "C" fn escape_air_slide_game(fighter: &mut L2CAgentBase) {
243243
}
244244
}
245245

246+
unsafe extern "C" fn roy_jumpback_sound(fighter: &mut L2CAgentBase) {
247+
let lua_state = fighter.lua_state_agent;
248+
let boma = fighter.boma();
249+
frame(lua_state, 1.0);
250+
if is_excute(fighter) {
251+
PLAY_SE(fighter, Hash40::new("vc_roy_jump01"));
252+
}
253+
}
254+
255+
unsafe extern "C" fn roy_jumpfront_sound(fighter: &mut L2CAgentBase) {
256+
let lua_state = fighter.lua_state_agent;
257+
let boma = fighter.boma();
258+
frame(lua_state, 1.0);
259+
if is_excute(fighter) {
260+
PLAY_SE(fighter, Hash40::new("vc_roy_jump01"));
261+
}
262+
}
263+
264+
unsafe extern "C" fn roy_jumpbackmini_sound(fighter: &mut L2CAgentBase) {
265+
let lua_state = fighter.lua_state_agent;
266+
let boma = fighter.boma();
267+
frame(lua_state, 1.0);
268+
if is_excute(fighter) {
269+
PLAY_SE(fighter, Hash40::new("vc_roy_jump01"));
270+
}
271+
}
272+
273+
unsafe extern "C" fn roy_jumpfrontmini_sound(fighter: &mut L2CAgentBase) {
274+
let lua_state = fighter.lua_state_agent;
275+
let boma = fighter.boma();
276+
frame(lua_state, 1.0);
277+
if is_excute(fighter) {
278+
PLAY_SE(fighter, Hash40::new("vc_roy_jump01"));
279+
}
280+
}
281+
246282
pub fn install() {
247283
smashline::Agent::new("roy")
248284
.acmd("sound_damageflyhi", damageflyhi_sound)
@@ -258,6 +294,9 @@ pub fn install() {
258294
.acmd("game_appeallwr", roy_appeallwr_game)
259295
.acmd("game_appeallwl", roy_appeallwl_game)
260296
.acmd("game_escapeair", escape_air_game)
261-
.acmd("game_escapeairslide", escape_air_slide_game)
297+
.acmd("sound_jumpback", roy_jumpback_sound)
298+
.acmd("sound_jumpfront", roy_jumpfront_sound)
299+
.acmd("sound_jumpbackmini", roy_jumpbackmini_sound)
300+
.acmd("sound_jumpfrontmini", roy_jumpfrontmini_sound)
262301
.install();
263302
}

fighters/roy/src/acmd/smashes.rs

+15-45
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,10 @@ unsafe extern "C" fn roy_attack_s4_s_game(fighter: &mut L2CAgentBase) {
1515
frame(lua_state, 13.2);
1616
if is_excute(fighter) {
1717
FT_MOTION_RATE(fighter, 1.0/(14.0-13.2));
18-
ATTACK(fighter, 0, 0, Hash40::new("sword1"), 20.0, 361, 76, 0, 65, 4.3, 0.0, 0.0, 2.5, None, None, None, 1.1, 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_fire"), *ATTACK_SOUND_LEVEL_L, *COLLISION_SOUND_ATTR_ROY_HIT, *ATTACK_REGION_SWORD);
19-
ATTACK(fighter, 1, 0, Hash40::new("armr"), 20.0, 361, 76, 0, 65, 3.0, 0.0, 0.0, 0.0, None, None, None, 1.1, 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_fire"), *ATTACK_SOUND_LEVEL_L, *COLLISION_SOUND_ATTR_ROY_HIT, *ATTACK_REGION_SWORD);
20-
ATTACK(fighter, 2, 0, Hash40::new("colonells"), 20.0, 361, 76, 0, 65, 3.5, 0.0, 0.0, 0.0, None, None, None, 1.1, 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_fire"), *ATTACK_SOUND_LEVEL_L, *COLLISION_SOUND_ATTR_ROY_HIT, *ATTACK_REGION_SWORD);
21-
ATTACK(fighter, 3, 0, Hash40::new("sword1"), 12.0, 361, 73, 0, 30, 3.5, 0.0, 0.0, 8.75, None, None, None, 0.9, 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_PUNCH, *ATTACK_REGION_SWORD);
18+
ATTACK(fighter, 0, 0, Hash40::new("sword1"), 20.0, 361, 76, 0, 65, 4.3, 0.0, 0.0, 2.5, None, None, None, 1.1, 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_fire"), *ATTACK_SOUND_LEVEL_L, *COLLISION_SOUND_ATTR_ROY_HIT, *ATTACK_REGION_SWORD);
19+
ATTACK(fighter, 1, 0, Hash40::new("armr"), 20.0, 361, 76, 0, 65, 3.0, 0.0, 0.0, 0.0, None, None, None, 1.1, 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_fire"), *ATTACK_SOUND_LEVEL_L, *COLLISION_SOUND_ATTR_ROY_HIT, *ATTACK_REGION_SWORD);
20+
ATTACK(fighter, 2, 0, Hash40::new("colonells"), 20.0, 361, 76, 0, 65, 3.5, 0.0, 0.0, 0.0, None, None, None, 1.1, 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_fire"), *ATTACK_SOUND_LEVEL_L, *COLLISION_SOUND_ATTR_ROY_HIT, *ATTACK_REGION_SWORD);
21+
ATTACK(fighter, 3, 0, Hash40::new("sword1"), 12.0, 361, 73, 0, 30, 3.5, 0.0, 0.0, 8.75, None, None, None, 0.9, 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_PUNCH, *ATTACK_REGION_SWORD);
2222
AttackModule::set_attack_height_all(boma, app::AttackHeight(*ATTACK_HEIGHT_HIGH), false);
2323
}
2424
frame(lua_state, 14.0);
@@ -140,38 +140,23 @@ unsafe extern "C" fn roy_attack_lw4_game(fighter: &mut L2CAgentBase) {
140140
if is_excute(fighter) {
141141
WorkModule::on_flag(boma, *FIGHTER_STATUS_ATTACK_FLAG_START_SMASH_HOLD);
142142
}
143-
frame(lua_state, 5.0);
144-
if is_excute(fighter) {
145-
FT_MOTION_RATE(fighter, 1.0/(6.1-5.0));
146-
}
147-
frame(lua_state, 6.1);
143+
frame(lua_state, 6.0);
148144
if is_excute(fighter) {
149-
FT_MOTION_RATE(fighter, 3.0/(8.5-6.1));
150-
ATTACK(fighter, 0, 0, Hash40::new("sword1"), 18.0, 75, 91, 0, 42, 4.25, 0.0, 0.0, 2.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_ROY_HIT, *ATTACK_REGION_SWORD);
151-
ATTACK(fighter, 1, 0, Hash40::new("armr"), 18.0, 75, 91, 0, 42, 3.1, 0.0, 0.0, 0.0, None, None, None, 1.1, 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_fire"), *ATTACK_SOUND_LEVEL_L, *COLLISION_SOUND_ATTR_FIRE, *ATTACK_REGION_SWORD);
152-
ATTACK(fighter, 2, 0, Hash40::new("colonells"), 18.0, 75, 91, 0, 42, 3.5, 0.0, 0.0, 0.0, None, None, None, 1.1, 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_fire"), *ATTACK_SOUND_LEVEL_L, *COLLISION_SOUND_ATTR_FIRE, *ATTACK_REGION_SWORD);
145+
ATTACK(fighter, 0, 0, Hash40::new("sword1"), 18.0, 75, 91, 0, 42, 4.25, 0.0, 0.0, 2.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_fire"), *ATTACK_SOUND_LEVEL_L, *COLLISION_SOUND_ATTR_ROY_HIT, *ATTACK_REGION_SWORD);
146+
ATTACK(fighter, 1, 0, Hash40::new("armr"), 18.0, 75, 91, 0, 42, 3.1, 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_fire"), *ATTACK_SOUND_LEVEL_L, *COLLISION_SOUND_ATTR_ROY_HIT, *ATTACK_REGION_SWORD);
147+
ATTACK(fighter, 2, 0, Hash40::new("colonells"), 18.0, 75, 91, 0, 42, 3.5, 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_fire"), *ATTACK_SOUND_LEVEL_L, *COLLISION_SOUND_ATTR_ROY_HIT, *ATTACK_REGION_SWORD);
153148
ATTACK(fighter, 3, 0, Hash40::new("sword1"), 11.0, 361, 87, 0, 25, 3.5, 0.0, 0.0, 8.5, None, None, None, 0.9, 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_PUNCH, *ATTACK_REGION_SWORD);
154149
AttackModule::set_attack_height_all(boma, app::AttackHeight(*ATTACK_HEIGHT_LOW), false);
155150
}
156-
frame(lua_state, 8.5);
157-
if is_excute(fighter) {
158-
FT_MOTION_RATE(fighter, 1.0/(9.0-8.5));
159-
AttackModule::clear_all(boma);
160-
}
161-
frame(lua_state, 9.0);
162-
if is_excute(fighter) {
163-
FT_MOTION_RATE(fighter, 1.0);
164-
AttackModule::clear_all(boma);
165-
}
166-
frame(lua_state, 20.0);
151+
frame(lua_state, 10.0);
167152
if is_excute(fighter) {
168-
ATTACK(fighter, 0, 0, Hash40::new("sword1"), 14.0, 75, 91, 0, 42, 4.25, 0.0, 0.0, 2.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_ROY_HIT, *ATTACK_REGION_SWORD);
169-
ATTACK(fighter, 1, 0, Hash40::new("armr"), 14.0, 75, 91, 0, 42, 3.1, 0.0, 0.0, 0.0, None, None, None, 1.1, 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_fire"), *ATTACK_SOUND_LEVEL_L, *COLLISION_SOUND_ATTR_FIRE, *ATTACK_REGION_SWORD);
170-
ATTACK(fighter, 2, 0, Hash40::new("colonells"), 14.0, 75, 91, 0, 42, 3.5, 0.0, 0.0, 0.0, None, None, None, 1.1, 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_fire"), *ATTACK_SOUND_LEVEL_L, *COLLISION_SOUND_ATTR_FIRE, *ATTACK_REGION_SWORD);
171-
ATTACK(fighter, 3, 0, Hash40::new("sword1"), 10.0, 361, 87, 0, 25, 3.5, -1.6, 0.0, 8.5, None, None, None, 0.9, 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_PUNCH, *ATTACK_REGION_SWORD);
153+
ATTACK(fighter, 0, 0, Hash40::new("sword1"), 14.0, 75, 91, 0, 42, 4.25, 0.0, 0.0, 2.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_fire"), *ATTACK_SOUND_LEVEL_L, *COLLISION_SOUND_ATTR_ROY_HIT, *ATTACK_REGION_SWORD);
154+
ATTACK(fighter, 1, 0, Hash40::new("armr"), 14.0, 75, 91, 0, 42, 3.1, 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_fire"), *ATTACK_SOUND_LEVEL_L, *COLLISION_SOUND_ATTR_ROY_HIT, *ATTACK_REGION_SWORD);
155+
ATTACK(fighter, 2, 0, Hash40::new("colonells"), 14.0, 75, 91, 0, 42, 3.5, 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_fire"), *ATTACK_SOUND_LEVEL_L, *COLLISION_SOUND_ATTR_ROY_HIT, *ATTACK_REGION_SWORD);
156+
ATTACK(fighter, 3, 0, Hash40::new("sword1"), 10.0, 361, 87, 0, 25, 3.5, 0.0, 0.0, 8.5, None, None, None, 0.9, 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_PUNCH, *ATTACK_REGION_SWORD);
172157
AttackModule::set_attack_height_all(boma, app::AttackHeight(*ATTACK_HEIGHT_LOW), false);
173158
}
174-
wait(lua_state, 3.0);
159+
frame(lua_state, 18.0);
175160
if is_excute(fighter) {
176161
AttackModule::clear_all(boma);
177162
}
@@ -201,29 +186,14 @@ unsafe extern "C" fn roy_attack_lw4_effect(fighter: &mut L2CAgentBase) {
201186
if is_excute(fighter) {
202187
LANDING_EFFECT(fighter, Hash40::new("sys_atk_smoke"), Hash40::new("top"), 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, false);
203188
}
204-
frame(lua_state, 10.0);
205-
if is_excute(fighter) {
206-
AFTER_IMAGE_OFF(fighter, 4);
207-
EFFECT_OFF_KIND(fighter, Hash40::new("roy_sword_light"), false, true);
208-
EFFECT_OFF_KIND(fighter, Hash40::new("roy_sword"), false, false);
209-
EFFECT_OFF_KIND(fighter, Hash40::new("roy_fire"), false, true);
210-
}
211-
frame(lua_state, 19.0);
212-
if is_excute(fighter) {
213-
EFFECT_FOLLOW(fighter, Hash40::new("roy_attack_fire"), Hash40::new("sword1"), 0, 0, 0, 0, 0, 0, 0.9, true);
214-
LAST_EFFECT_SET_RATE(fighter, 1.25);
215-
EFFECT_FOLLOW(fighter, Hash40::new("roy_fire"), Hash40::new("sword1"), 0, 0, 0, 0, 0, 0, 0.8, true);
216-
LAST_EFFECT_SET_RATE(fighter, 1.25);
217-
AFTER_IMAGE4_ON_arg29(fighter, Hash40::new("tex_roy_sword1"), Hash40::new("tex_roy_sword2"), 15, Hash40::new("sword1"), 0.0, 0.0, -0.8, Hash40::new("sword1"), -0.0, -0.0, 14.5, true, Hash40::new("roy_sword"), Hash40::new("sword1"), 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0, *EFFECT_AXIS_X, 0, *TRAIL_BLEND_ALPHA, 101, *TRAIL_CULL_NONE, 1.3, 0.2);
218-
}
219189
frame(lua_state, 20.0);
220190
if is_excute(fighter) {
221191
EFFECT_FOLLOW(fighter, Hash40::new("roy_sword_light"), Hash40::new("sword1"), 0, 0, 10.55, 0, 0, 0, 1, true);
222192
LAST_EFFECT_SET_ALPHA(fighter, 0.4);
223193
EFFECT_FOLLOW(fighter, Hash40::new("roy_sword_light"), Hash40::new("sword1"), 0, 0, 7, 0, 0, 0, 1, true);
224194
LAST_EFFECT_SET_ALPHA(fighter, 0.4);
225195
}
226-
frame(lua_state, 19.0);
196+
frame(lua_state, 21.0);
227197
if is_excute(fighter) {
228198
LANDING_EFFECT(fighter, Hash40::new("sys_atk_smoke"), Hash40::new("top"), 0, 0, 0, 0, 180, 0, 1, 0, 0, 0, 0, 0, 0, false);
229199
}

0 commit comments

Comments
 (0)