#using scripts\codescripts\struct; #using scripts\shared\callbacks_shared; #using scripts\shared\clientfield_shared; #using scripts\shared\duplicaterender_mgr; #using scripts\shared\system_shared; #using scripts\shared\visionset_mgr_shared; #using scripts\shared\postfx_shared; #using scripts\shared\abilities\_ability_player; #using scripts\shared\abilities\_ability_power; #using scripts\shared\abilities\_ability_util; function autoexec __init__sytem__() { system::register("gadget_resurrect",&__init__,undefined,undefined); } function __init__() { clientfield::register( "allplayers", "resurrecting", 1, 1, "int", &player_resurrect_changed, !true, true ); clientfield::register( "toplayer", "resurrect_state", 1, 2, "int", &player_resurrect_state_changed, !true, true ); duplicate_render::set_dr_filter_offscreen( "resurrecting", 99, "resurrecting", undefined, 2, "mc/hud_keyline_resurrect", 0 ); visionset_mgr::register_visionset_info( "resurrect", 1, 16, undefined, "mp_ability_resurrection" ); visionset_mgr::register_visionset_info( "resurrect_up", 1, 16, undefined, "mp_ability_wakeup" ); } function player_resurrect_changed( localClientNum, oldVal, newVal, bNewEnt, bInitialSnap, fieldName, bWasTimeJump ) { self duplicate_render::update_dr_flag( localClientNum, "resurrecting", newVal ); } function resurrect_down_fx( localClientNum ) { self endon ( "entityshutdown" ); self endon ( "finish_rejack" ); self thread postfx::PlayPostfxBundle( "pstfx_resurrection_close" ); wait( .5 ); self thread postfx::PlayPostfxBundle( "pstfx_resurrection_pus" ); } function resurrect_up_fx( localClientNum ) { self endon ( "entityshutdown" ); self notify( "finish_rejack" ); self thread postfx::PlayPostfxBundle( "pstfx_resurrection_open" ); } function player_resurrect_state_changed( localClientNum, oldVal, newVal, bNewEnt, bInitialSnap, fieldName, bWasTimeJump ) { if( newVal == 1 ) { self thread resurrect_down_fx( localClientNum ); } else if( newVal == 2 ) { self thread resurrect_up_fx( localClientNum ); } else { self thread postfx::stopPostfxBundle(); } }