1
-
2
1
use super :: * ;
3
2
4
3
#[ acmd_script( agent = "duckhunt" , script = "game_specialhi" , category = ACMD_GAME , low_priority) ]
@@ -7,11 +6,79 @@ unsafe fn duckhunt_special_hi_game(fighter: &mut L2CAgentBase) {
7
6
let boma = fighter. boma ( ) ;
8
7
frame ( lua_state, 3.0 ) ;
9
8
if is_excute ( fighter) {
10
- WorkModule :: on_flag ( boma, * FIGHTER_DUCKHUNT_INSTANCE_WORK_ID_FLAG_REQUEST_SPECIAL_HI_CANCEL ) ;
9
+ WorkModule :: set_int ( boma, 5 , * FIGHTER_DUCKHUNT_STATUS_ATTACK_INT_SMASH_DELAY_FRAME ) ;
10
+ WorkModule :: set_int ( boma, 6 , * FIGHTER_DUCKHUNT_STATUS_ATTACK_INT_SMASH_RETICLE_DISPLAY_FRAME ) ;
11
+ ATTACK ( fighter, 1 , 0 , Hash40 :: new ( "top" ) , 5.0 , 45 , 30 , 0 , 40 , 7.0 , 0.0 , -2.0 , 0.0 , None , None , None , 1.0 , 1.0 , * ATTACK_SETOFF_KIND_THRU , * 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_M , * COLLISION_SOUND_ATTR_PUNCH , * ATTACK_REGION_NONE , ) ;
12
+ }
13
+ }
14
+
15
+
16
+ #[ acmd_script( agent = "duckhunt" , script = "game_specialhi2" , category = ACMD_GAME , low_priority) ]
17
+ unsafe fn duckhunt_special_hi2_game ( fighter : & mut L2CAgentBase ) {
18
+ let lua_state = fighter. lua_state_agent ;
19
+ let boma = fighter. boma ( ) ;
20
+ frame ( lua_state, 3.0 ) ;
21
+ if is_excute ( fighter) {
22
+ WorkModule :: set_int ( boma, 5 , * FIGHTER_DUCKHUNT_STATUS_ATTACK_INT_SMASH_DELAY_FRAME ) ;
23
+ WorkModule :: set_int ( boma, 6 , * FIGHTER_DUCKHUNT_STATUS_ATTACK_INT_SMASH_RETICLE_DISPLAY_FRAME ) ;
24
+ ATTACK ( fighter, 1 , 0 , Hash40 :: new ( "top" ) , 7.5 , 45 , 40 , 0 , 50 , 7.0 , 0.0 , -2.0 , 0.0 , None , None , None , 1.0 , 1.0 , * ATTACK_SETOFF_KIND_THRU , * 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_M , * COLLISION_SOUND_ATTR_PUNCH , * ATTACK_REGION_NONE , ) ;
25
+ }
26
+ }
27
+
28
+ #[ acmd_script( agent = "duckhunt" , script = "game_specialhi3" , category = ACMD_GAME , low_priority) ]
29
+ unsafe fn duckhunt_special_hi3_game ( fighter : & mut L2CAgentBase ) {
30
+ let lua_state = fighter. lua_state_agent ;
31
+ let boma = fighter. boma ( ) ;
32
+ frame ( lua_state, 3.0 ) ;
33
+ if is_excute ( fighter) {
34
+ WorkModule :: set_int ( boma, 5 , * FIGHTER_DUCKHUNT_STATUS_ATTACK_INT_SMASH_DELAY_FRAME ) ;
35
+ WorkModule :: set_int ( boma, 6 , * FIGHTER_DUCKHUNT_STATUS_ATTACK_INT_SMASH_RETICLE_DISPLAY_FRAME ) ;
36
+ ATTACK ( fighter, 1 , 0 , Hash40 :: new ( "top" ) , 15.0 , 45 , 85 , 0 , 80 , 7.0 , 0.0 , -2.0 , 0.0 , None , None , None , 1.0 , 1.0 , * ATTACK_SETOFF_KIND_THRU , * 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_M , * COLLISION_SOUND_ATTR_PUNCH , * ATTACK_REGION_NONE , ) ;
11
37
}
12
-
13
38
}
14
39
40
+ #[ acmd_script( agent = "duckhunt" , scripts = [ "effect_specialhi" , "effect_specialhi2" , "effect_specialhi3" ] , category = ACMD_EFFECT , low_priority) ]
41
+ unsafe fn duckhunt_special_hi_effect ( agent : & mut L2CAgentBase ) {
42
+ let lua_state = agent. lua_state_agent ;
43
+ let boma = agent. boma ( ) ;
44
+ if is_excute ( agent) {
45
+ EFFECT_FOLLOW_arg11 ( agent, Hash40 :: new ( "duckhunt_feather_long" ) , Hash40 :: new ( "duckrot" ) , 0 , 4 , 0 , 20 , 0 , 0 , 1 , true , * FIGHTER_INSTANCE_WORK_ID_INT_COLOR ) ;
46
+ }
47
+ }
48
+
49
+ #[ acmd_script( agent = "duckhunt" , scripts = [ "sound_specialhi" , "sound_specialhi2" , "sound_specialhi3" ] , category = ACMD_SOUND , low_priority) ]
50
+ unsafe fn duckhunt_special_hi_sound ( agent : & mut L2CAgentBase ) {
51
+ let lua_state = agent. lua_state_agent ;
52
+ let boma = agent. boma ( ) ;
53
+ frame ( lua_state, 1.0 ) ;
54
+ if is_excute ( agent) {
55
+ PLAY_SE ( agent, Hash40 :: new ( "se_duckhunt_special_h02" ) ) ;
56
+ }
57
+ frame ( lua_state, 5.0 ) ;
58
+ if is_excute ( agent) {
59
+ PLAY_SE ( agent, Hash40 :: new ( "se_duckhunt_special_h03" ) ) ;
60
+ }
61
+ }
62
+
63
+ #[ acmd_script( agent = "duckhunt" , scripts = [ "expression_specialhi" , "expression_specialhi2" , "expression_specialhi3" ] , category = ACMD_EXPRESSION , low_priority) ]
64
+ unsafe fn duckhunt_special_hi_expression ( agent : & mut L2CAgentBase ) {
65
+ let lua_state = agent. lua_state_agent ;
66
+ let boma = agent. boma ( ) ;
67
+ if is_excute ( agent) {
68
+ }
69
+ }
70
+
71
+
72
+ #[ acmd_script( agent = "duckhunt_reticle" , scripts = [ "game_specialhi" , "game_specialhi2" , "game_specialhi3" ] , category = ACMD_GAME , low_priority) ]
73
+ unsafe fn reticle_special_hi_game ( agent : & mut L2CAgentBase ) {
74
+ let lua_state = agent. lua_state_agent ;
75
+ let boma = agent. boma ( ) ;
76
+ if is_excute ( agent) {
77
+ WorkModule :: set_float ( boma, 1.0 , * WEAPON_DUCKHUNT_RETICLE_INSTANCE_WORK_ID_FLOAT_SIZE ) ;
78
+ }
79
+ }
80
+
81
+
15
82
#[ acmd_script( agent = "duckhunt" , scripts = [ "game_specialairlw" , "game_speciallw" ] , category = ACMD_GAME , low_priority) ]
16
83
unsafe fn duckhunt_special_lw_game ( fighter : & mut L2CAgentBase ) {
17
84
let lua_state: u64 = fighter. lua_state_agent ;
@@ -64,7 +131,15 @@ unsafe fn duckhunt_special_s_game(fighter: &mut L2CAgentBase) {
64
131
65
132
pub fn install ( ) {
66
133
install_acmd_scripts ! (
134
+ //gumshoe {{{
67
135
duckhunt_special_hi_game,
136
+ duckhunt_special_hi2_game,
137
+ duckhunt_special_hi3_game,
138
+ duckhunt_special_hi_effect,
139
+ duckhunt_special_hi_sound,
140
+ duckhunt_special_hi_expression,
141
+ reticle_special_hi_game,
142
+ //gumshoe }}}
68
143
duckhunt_special_n_game,
69
144
duckhunt_special_lw_game,
70
145
duckhunt_special_s_game,
0 commit comments