@@ -108,72 +108,32 @@ unsafe fn sheik_attack_air_b_game(fighter: &mut L2CAgentBase) {
108
108
unsafe fn sheik_attack_air_hi_game ( fighter : & mut L2CAgentBase ) {
109
109
let lua_state = fighter. lua_state_agent ;
110
110
let boma = fighter. boma ( ) ;
111
- frame ( lua_state, 5 .0) ;
111
+ frame ( lua_state, 4 .0) ;
112
112
if is_excute ( fighter) {
113
113
WorkModule :: on_flag ( boma, * FIGHTER_STATUS_ATTACK_AIR_FLAG_ENABLE_LANDING ) ;
114
- ATTACK ( fighter, 0 , 0 , Hash40 :: new ( "kneer" ) , 11.0 , 80 , 118 , 0 , 15 , 4.16 , 5.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_sting" ) , * ATTACK_SOUND_LEVEL_L , * COLLISION_SOUND_ATTR_KICK , * ATTACK_REGION_KICK ) ;
115
- ATTACK ( fighter, 1 , 0 , Hash40 :: new ( "kneer" ) , 11.0 , 80 , 118 , 0 , 15 , 3.66 , 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_sting" ) , * ATTACK_SOUND_LEVEL_L , * COLLISION_SOUND_ATTR_KICK , * ATTACK_REGION_KICK ) ;
114
+ ATTACK ( fighter, 0 , 0 , Hash40 :: new ( "kneer" ) , 1.5 , 367 , 80 , 0 , 45 , 4.0 , 5.0 , 0.0 , 0.0 , None , None , None , 0.5 , 1.3 , * ATTACK_SETOFF_KIND_ON , * ATTACK_LR_CHECK_F , false , 0 , 0.0 , 4 , 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_KICK , * ATTACK_REGION_KICK ) ;
115
+ ATTACK ( fighter, 1 , 0 , Hash40 :: new ( "kneer" ) , 1.5 , 367 , 80 , 0 , 45 , 4.0 , 0.0 , 0.0 , 0.0 , None , None , None , 0.5 , 1.3 , * ATTACK_SETOFF_KIND_ON , * ATTACK_LR_CHECK_F , false , 0 , 0.0 , 4 , 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_KICK , * ATTACK_REGION_KICK ) ;
116
+ ATTACK ( fighter, 2 , 0 , Hash40 :: new ( "legr" ) , 1.5 , 367 , 80 , 0 , 45 , 3.5 , 1.0 , 0.0 , 0.0 , None , None , None , 0.5 , 1.3 , * ATTACK_SETOFF_KIND_ON , * ATTACK_LR_CHECK_F , false , 0 , 0.0 , 4 , 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_KICK , * ATTACK_REGION_KICK ) ;
116
117
}
117
- frame ( lua_state, 8 .0) ;
118
+ frame ( lua_state, 16 .0) ;
118
119
if is_excute ( fighter) {
119
- ATTACK ( fighter, 0 , 0 , Hash40 :: new ( "kneer" ) , 9.0 , 70 , 120 , 0 , 10 , 4.16 , 5.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_sting" ) , * ATTACK_SOUND_LEVEL_M , * COLLISION_SOUND_ATTR_KICK , * ATTACK_REGION_KICK ) ;
120
- ATTACK ( fighter, 1 , 0 , Hash40 :: new ( "kneer" ) , 9.0 , 70 , 120 , 0 , 10 , 3.66 , 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_sting" ) , * ATTACK_SOUND_LEVEL_M , * COLLISION_SOUND_ATTR_KICK , * ATTACK_REGION_KICK ) ;
120
+ AttackModule :: clear_all ( boma) ;
121
121
}
122
- frame ( lua_state, 21.0 ) ;
122
+ frame ( lua_state, 23.0 ) ;
123
+ if is_excute ( fighter) {
124
+ FT_MOTION_RATE ( fighter, 1.0 ) ;
125
+ ATTACK ( fighter, 0 , 1 , Hash40 :: new ( "kneel" ) , 6.0 , 80 , 135 , 0 , 45 , 4.7 , 5.0 , 0.0 , 0.0 , None , None , None , 1.5 , 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_sting" ) , * ATTACK_SOUND_LEVEL_L , * COLLISION_SOUND_ATTR_KICK , * ATTACK_REGION_KICK ) ;
126
+ ATTACK ( fighter, 1 , 1 , Hash40 :: new ( "kneel" ) , 6.0 , 80 , 135 , 0 , 45 , 4.7 , 0.0 , 0.0 , 0.0 , None , None , None , 1.5 , 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_sting" ) , * ATTACK_SOUND_LEVEL_L , * COLLISION_SOUND_ATTR_KICK , * ATTACK_REGION_KICK ) ;
127
+ ATTACK ( fighter, 2 , 1 , Hash40 :: new ( "legl" ) , 6.0 , 80 , 135 , 0 , 45 , 4.7 , 0.0 , 0.0 , 0.0 , None , None , None , 1.5 , 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_sting" ) , * ATTACK_SOUND_LEVEL_L , * COLLISION_SOUND_ATTR_KICK , * ATTACK_REGION_KICK ) ;
128
+ }
129
+ frame ( lua_state, 26.0 ) ;
123
130
if is_excute ( fighter) {
124
131
AttackModule :: clear_all ( boma) ;
125
132
}
126
- frame ( lua_state, 30 .0) ;
133
+ frame ( lua_state, 44 .0) ;
127
134
if is_excute ( fighter) {
128
135
WorkModule :: off_flag ( boma, * FIGHTER_STATUS_ATTACK_AIR_FLAG_ENABLE_LANDING ) ;
129
136
}
130
-
131
- }
132
-
133
- #[ acmd_script( agent = "sheik" , script = "effect_attackairhi" , category = ACMD_EFFECT , low_priority ) ]
134
- unsafe fn effect_attackairhi ( agent : & mut L2CAgentBase ) {
135
- let lua_state = agent. lua_state_agent ;
136
- let boma = agent. boma ( ) ;
137
- frame ( lua_state, 4.0 ) ;
138
- if is_excute ( agent) {
139
- EFFECT_FOLLOW ( agent, Hash40 :: new ( "sys_spin_wind" ) , Hash40 :: new ( "top" ) , 0 , 19 , 4 , -20 , 0 , 180 , 0.3 , true ) ;
140
- LAST_EFFECT_SET_RATE ( agent, 1.3 ) ;
141
- }
142
- frame ( lua_state, 5.0 ) ;
143
- for _ in 0 ..3 {
144
- if is_excute ( agent) {
145
- agent. clear_lua_stack ( ) ;
146
- lua_args ! ( agent, Hash40 :: new( "sys_spin_wind_s" ) , Hash40 :: new( "top" ) , 0.0 , 17.5 , 3.5 , 19.0 , 0.0 , 180.0 , 0.4 , 4 , 4 , 4 , 0 , 0 , 0 , true ) ;
147
- sv_animcmd:: EFFECT_FOLLOW_RND ( agent. lua_state_agent ) ;
148
- LAST_EFFECT_SET_RATE ( agent, 2.5 ) ;
149
- }
150
- wait ( lua_state, 1.0 ) ;
151
- if is_excute ( agent) {
152
- agent. clear_lua_stack ( ) ;
153
- lua_args ! ( agent, Hash40 :: new( "sys_spin_wind_s" ) , Hash40 :: new( "top" ) , 0.0 , 15.5 , 3.25 , 19.0 , 0.0 , 180.0 , 0.5 , 4 , 4 , 4 , 0 , 0 , 0 , true ) ;
154
- sv_animcmd:: EFFECT_FOLLOW_RND ( agent. lua_state_agent ) ;
155
- LAST_EFFECT_SET_RATE ( agent, 2 ) ;
156
- }
157
- wait ( lua_state, 1.0 ) ;
158
- if is_excute ( agent) {
159
- agent. clear_lua_stack ( ) ;
160
- lua_args ! ( agent, Hash40 :: new( "sys_spin_wind_s" ) , Hash40 :: new( "top" ) , 0.0 , 12.0 , 3.0 , 19.0 , 0.0 , 180.0 , 0.65 , 3 , 2 , 3 , 0 , 0 , 0 , true ) ;
161
- sv_animcmd:: EFFECT_FOLLOW_RND ( agent. lua_state_agent ) ;
162
- LAST_EFFECT_SET_RATE ( agent, 2 ) ;
163
- }
164
- wait ( lua_state, 1.0 ) ;
165
- }
166
- }
167
-
168
- #[ acmd_script( agent = "sheik" , script = "sound_attackairhi" , category = ACMD_SOUND , low_priority ) ]
169
- unsafe fn sound_attackairhi ( agent : & mut L2CAgentBase ) {
170
- let lua_state = agent. lua_state_agent ;
171
- let boma = agent. boma ( ) ;
172
- frame ( lua_state, 4.0 ) ;
173
- if is_excute ( agent) {
174
- PLAY_SEQUENCE ( agent, Hash40 :: new ( "seq_sheik_rnd_attack" ) ) ;
175
- PLAY_STATUS ( agent, Hash40 :: new ( "se_sheik_attackair_h01" ) ) ;
176
- }
177
137
}
178
138
179
139
#[ acmd_script( agent = "sheik" , script = "expression_attackairhi" , category = ACMD_EXPRESSION , low_priority ) ]
@@ -184,7 +144,7 @@ unsafe fn expression_attackairhi(agent: &mut L2CAgentBase) {
184
144
if is_excute ( agent) {
185
145
ControlModule :: set_rumble ( boma, Hash40 :: new ( "rbkind_nohitm" ) , 0 , false , * BATTLE_OBJECT_ID_INVALID as u32 ) ;
186
146
}
187
- frame ( lua_state, 5 .0) ;
147
+ frame ( lua_state, 4 .0) ;
188
148
if is_excute ( agent) {
189
149
RUMBLE_HIT ( agent, Hash40 :: new ( "rbkind_attackm" ) , 0 ) ;
190
150
}
@@ -289,8 +249,6 @@ pub fn install() {
289
249
sheik_attack_air_f_effect,
290
250
sheik_attack_air_b_game,
291
251
sheik_attack_air_hi_game,
292
- effect_attackairhi,
293
- sound_attackairhi,
294
252
expression_attackairhi,
295
253
sheik_attack_air_lw_game,
296
254
sheik_attack_air_lw_effect,
0 commit comments