1
1
2
2
use super :: * ;
3
3
4
+ #[ acmd_script( agent = "pacman" , script = "game_attackairn" , category = ACMD_GAME , low_priority) ]
5
+ unsafe fn pacman_attack_air_n_game ( fighter : & mut L2CAgentBase ) {
6
+ let lua_state = fighter. lua_state_agent ;
7
+ let boma = fighter. boma ( ) ;
8
+ frame ( lua_state, 3.0 ) ;
9
+ if is_excute ( fighter) {
10
+ WorkModule :: on_flag ( boma, * FIGHTER_STATUS_ATTACK_AIR_FLAG_ENABLE_LANDING ) ;
11
+ ATTACK ( fighter, 0 , 0 , Hash40 :: new ( "pizzapacman" ) , 10.0 , 50 , 70 , 0 , 45 , 7.6 , 0.0 , 0.0 , 0.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_BODY ) ;
12
+ }
13
+ frame ( lua_state, 6.0 ) ;
14
+ if is_excute ( fighter) {
15
+ ATTACK ( fighter, 0 , 0 , Hash40 :: new ( "pizzapacman" ) , 8.5 , 50 , 70 , 0 , 45 , 7.2 , 0.0 , 0.5 , 0.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_S , * COLLISION_SOUND_ATTR_PUNCH , * ATTACK_REGION_BODY ) ;
16
+ }
17
+ frame ( lua_state, 10.0 ) ;
18
+ if is_excute ( fighter) {
19
+ ATTACK ( fighter, 0 , 0 , Hash40 :: new ( "pizzapacman" ) , 6.0 , 50 , 70 , 0 , 45 , 4.5 , 0.0 , 0.5 , 0.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_S , * COLLISION_SOUND_ATTR_PUNCH , * ATTACK_REGION_BODY ) ;
20
+ }
21
+ frame ( lua_state, 20.0 ) ;
22
+ if is_excute ( fighter) {
23
+ AttackModule :: clear_all ( boma) ;
24
+ }
25
+ frame ( lua_state, 45.0 ) ;
26
+ if is_excute ( fighter) {
27
+ WorkModule :: off_flag ( boma, * FIGHTER_STATUS_ATTACK_AIR_FLAG_ENABLE_LANDING ) ;
28
+ }
29
+ }
30
+
4
31
#[ acmd_script( agent = "pacman" , script = "effect_attackairn" , category = ACMD_EFFECT , low_priority) ]
5
32
unsafe fn pacman_attack_air_n_effect ( fighter : & mut L2CAgentBase ) {
6
33
let lua_state = fighter. lua_state_agent ;
@@ -11,11 +38,11 @@ unsafe fn pacman_attack_air_n_effect(fighter: &mut L2CAgentBase) {
11
38
}
12
39
frame ( lua_state, 3.0 ) ;
13
40
if is_excute ( fighter) {
14
- EFFECT_FOLLOW_FLIP_ALPHA ( fighter, Hash40 :: new ( "sys_spin_wind" ) , Hash40 :: new ( "sys_spin_wind" ) , Hash40 :: new ( "top " ) , 0 , 4 , 1 , 0 , 0 , 90 , 0.8 , true , * EF_FLIP_YZ , 0.4 ) ;
41
+ EFFECT_FOLLOW_FLIP_ALPHA ( fighter, Hash40 :: new ( "sys_spin_wind" ) , Hash40 :: new ( "sys_spin_wind" ) , Hash40 :: new ( "throw " ) , 0 , 4 , 1 , 0 , 0 , 90 , 0.8 , true , * EF_FLIP_YZ , 0.4 ) ;
15
42
}
16
43
frame ( lua_state, 16.0 ) ;
17
44
if is_excute ( fighter) {
18
- EFFECT_FOLLOW_FLIP_ALPHA ( fighter, Hash40 :: new ( "sys_spin_wind" ) , Hash40 :: new ( "sys_spin_wind" ) , Hash40 :: new ( "top " ) , 0 , 7 , 0 , 0 , 0 , 90 , 0.75 , true , * EF_FLIP_YZ , 0.4 ) ;
45
+ EFFECT_FOLLOW_FLIP_ALPHA ( fighter, Hash40 :: new ( "sys_spin_wind" ) , Hash40 :: new ( "sys_spin_wind" ) , Hash40 :: new ( "throw " ) , 0 , 7 , 0 , 0 , 0 , 90 , 0.75 , true , * EF_FLIP_YZ , 0.4 ) ;
19
46
}
20
47
frame ( lua_state, 30.0 ) ;
21
48
if is_excute ( fighter) {
@@ -179,6 +206,7 @@ unsafe fn pacman_attack_air_lw_game(fighter: &mut L2CAgentBase) {
179
206
180
207
pub fn install ( ) {
181
208
install_acmd_scripts ! (
209
+ pacman_attack_air_n_game,
182
210
pacman_attack_air_n_effect,
183
211
pacman_attack_air_f_game,
184
212
pacman_attack_air_b_game,
0 commit comments