1 #using scripts\codescripts\struct;
3 #using scripts\shared\callbacks_shared;
4 #using scripts\shared\clientfield_shared;
5 #using scripts\shared\system_shared;
6 #using scripts\shared\visionset_mgr_shared;
7 #using scripts\shared\duplicaterender_mgr;
8 #using scripts\shared\util_shared;
10 #using scripts\shared\abilities\_ability_player;
11 #using scripts\shared\abilities\_ability_power;
12 #using scripts\shared\abilities\_ability_util;
14 #insert scripts\shared\duplicaterender.gsh;
15 #insert scripts\shared\shared.gsh;
16 #insert scripts\shared\version.gsh;
17 #insert scripts\shared\abilities\_ability_util.gsh;
18 #insert scripts\shared\abilities\gadgets\_gadget_flashback.gsh;
22 #define FLASHBACK_TRAIL_FX "player/fx_plyr_flashback_trail"
23 #define FLASHBACK_DISAPPEAR_FX "player/fx_plyr_flashback_demat"
24 #define FLASHBACK_MATERIAL_GHOST "mc/mtl_glitch"
25 #define FLASHBACK_SHADER_X_UNUSED 1
26 #define FLASHBACK_SHADER_Y_HDR_BRIGHTNESS 1
27 #define FLASHBACK_SHADER_Z_TINT_INDEX 0
28 #define FLASHBACK_SHADER_CONST "scriptVector3"
30 #define FLASHBACK_REAPPEAR_TAGFX "gadget_flashback_3p_off"
32 #define FLASHBACK_DISAPPEAR_SOUND_1P "mpl_flashback_disappear_plr"
33 #define FLASHBACK_DISAPPEAR_SOUND_3P "mpl_flashback_disappear_npc"
34 #define FLASHBACK_REAPPEAR_SOUND_1P "mpl_flashback_reappear_plr"
35 #define FLASHBACK_REAPPEAR_SOUND_3P "mpl_flashback_reappear_npc"
38 #precache( "client_fx", FLASHBACK_TRAIL_FX );
39 #precache( "client_tagfxset", FLASHBACK_REAPPEAR_TAGFX );
51 function flashback_activated( localClientNum, oldVal, newVal, bNewEnt, bInitialSnap, fieldName, bWasTimeJump )
53 self notify (
"player_flashback" );
54 player = GetLocalPlayer( localclientnum );
55 isFirstPerson = !IsThirdPerson( localclientnum ) && ( player == self );
64 self endon(
"entityshutdown" );
75 player = GetLocalPlayer( localclientnum );
76 isFirstPerson = !IsThirdPerson( localclientnum ) && isDefined(
self.owner ) && isDefined( player ) && (
self.owner == player );
85 self endon(
"entityshutdown" );
105 self endon (
"entityshutdown" );
110 currentTime = GetServerTime( localClientnum );
112 elapsedtime = float( elapsedtime / 1000 );
113 if( elapsedTime < FLASHBACK_CLONE_DURATION )
115 amount = 1.0 - elapsedTime / FLASHBACK_CLONE_DURATION;
130 if ( armorStatusNew )