Witam.
Może ktoś przerobić plugin bez modułu cvar_util i żeby był pod silnik ZP
/*================================================================================ ------------------------ -*- [ZP] Nightvision -*- ------------------------ This plugin is part of Zombie Plague Mod and is distributed under the terms of the GNU General Public License. Check ZP_ReadMe.txt for details. ================================================================================*/ #include < amxmodx > #include < cvar_util > #include < fakemeta > #include < hamsandwich > #include < zombieplague > enum _:eColor { red = 0, green, blue }; new g_vecNightVisionColor[ 33 ][ eColor ]; new g_bsHasNightVision; new g_bsToggleNVG; new g_iMaxClients; new gmsgScreenFade; new g_szLightStyle[ 32 ]; new g_iZombieNVG[ eColor ]; new g_iHumanNVG[ eColor ]; new g_iNVGAlpha; const UNIT_SECOND = ( 1 << 12 ); const FFADE_STAYOUT = 0x0004; #define FBitSet(%0,%1) ( %0 & ( 1 << ( %1 - 1 ) ) ) #define SetBits(%0,%1) ( %0 |= ( 1 << ( %1 - 1 ) ) ) #define ClearBits(%0,%1) ( %0 &= ~( 1 << ( %1 - 1 ) ) ) #define IsValidPrivateData(%0) ( pev_valid( %0 ) == 2 ) #define IsAlive(%0) is_user_alive( %0 ) #define IsZombie(%0) zp_get_user_zombie( %0 ) public plugin_natives( ) { register_native( "zp_get_user_nightvision", "_zp_get_user_nightvision_", 1 ); register_native( "zp_set_user_nightvision", "_zp_set_user_nightvision_", 1 ); register_native( "zp_reset_user_nightvision", "_zp_reset_user_nightvision_", 1 ); } public plugin_init( ) { register_plugin( "[ZP] NightVision System", ZP_VERSION_STRING, "NiHiLaNTh" ); register_clcmd( "nightvision", "fw_CommandNightVision" ); RegisterHam( Ham_Killed, "player", "fw_PlayerKilled" ); gmsgScreenFade = get_user_msgid( "ScreenFade" ); CvarCache( get_cvar_pointer( "zp_light_style" ), CvarType_String, g_szLightStyle, charsmax( g_szLightStyle ) ); CvarCache( register_cvar( "zp_nvg_zombie_r", "253" ), CvarType_Int, g_iZombieNVG[ red ] ); CvarCache( register_cvar( "zp_nvg_zombie_g", "110" ), CvarType_Int, g_iZombieNVG[ green ] ); CvarCache( register_cvar( "zp_nvg_zombie_b", "110" ), CvarType_Int, g_iZombieNVG[ blue ] ); CvarCache( register_cvar( "zp_nvg_human_r", "0" ), CvarType_Int, g_iHumanNVG[ red ] ); CvarCache( register_cvar( "zp_nvg_human_g", "255" ), CvarType_Int, g_iHumanNVG[ green ] ); CvarCache( register_cvar( "zp_nvg_human_b", "0" ), CvarType_Int, g_iHumanNVG[ blue ] ); CvarCache( register_cvar( "zp_nvg_alpha", "110" ), CvarType_Int, g_iNVGAlpha ); g_iMaxClients = get_maxplayers( ); } public client_putinserver( pPlayer ) { ClearBits( g_bsHasNightVision, pPlayer ); ClearBits( g_bsToggleNVG, pPlayer ); } public zp_user_infected( pPlayer ) { if( FBitSet( g_bsHasNightVision, pPlayer ) ) { ClearBits( g_bsHasNightVision, pPlayer ); if( FBitSet( g_bsToggleNVG, pPlayer ) ) { ClearBits( g_bsToggleNVG, pPlayer ); MSG_ScreenFade( pPlayer ); SVC_ModifyLightStyle( pPlayer, g_szLightStyle ); } } //update nightvision color for( new pColor = red; pColor <= blue; pColor++ ) g_vecNightVisionColor[ pPlayer ][ pColor ] = g_iZombieNVG[ pColor ]; } public zp_user_humanized( pPlayer ) { if( FBitSet( g_bsHasNightVision, pPlayer ) ) { ClearBits( g_bsHasNightVision, pPlayer ); if( FBitSet( g_bsToggleNVG, pPlayer ) ) { ClearBits( g_bsToggleNVG, pPlayer ); MSG_ScreenFade( pPlayer ); SVC_ModifyLightStyle( pPlayer, g_szLightStyle ); } } //update nightvision color for( new pColor = red; pColor <= blue; pColor++ ) g_vecNightVisionColor[ pPlayer ][ pColor ] = g_iHumanNVG[ pColor ]; } public fw_CommandNightVision( pPlayer ) { if( !IsAlive( pPlayer ) || !FBitSet( g_bsHasNightVision, pPlayer ) ) return PLUGIN_CONTINUE; if( IsValidPrivateData( pPlayer ) ) { const m_flFlashedUntil = 514; if( get_pdata_float( pPlayer, m_flFlashedUntil, 5 ) - get_gametime( ) > 0.0 ) return PLUGIN_CONTINUE; } if( !FBitSet( g_bsToggleNVG, pPlayer ) ) { SetBits( g_bsToggleNVG, pPlayer ); MSG_ScreenFade ( .pPlayer = pPlayer, .sDuration = UNIT_SECOND, .sHoldTime = 0, .sFlags = FFADE_STAYOUT, .r = g_vecNightVisionColor[ pPlayer ][ red ], .g = g_vecNightVisionColor[ pPlayer ][ green ], .b = g_vecNightVisionColor[ pPlayer ][ blue ], .a = g_iNVGAlpha ); SVC_ModifyLightStyle( pPlayer, "#" ); emit_sound( pPlayer, CHAN_ITEM, "items/nvg_on.wav", 0.94, ATTN_NORM, 0, 98 ); } else { ClearBits( g_bsToggleNVG, pPlayer ); MSG_ScreenFade( pPlayer ); SVC_ModifyLightStyle( pPlayer, g_szLightStyle ); emit_sound( pPlayer, CHAN_ITEM, "items/nvg_off.wav", 0.94, ATTN_NORM, 0, 98 ); } return PLUGIN_HANDLED; } public fw_PlayerKilled( pevVictim ) { if( FBitSet( g_bsHasNightVision, pevVictim ) ) { ClearBits( g_bsHasNightVision, pevVictim ); if( FBitSet( g_bsToggleNVG, pevVictim ) ) { ClearBits( g_bsToggleNVG, pevVictim ); MSG_ScreenFade( pevVictim ); SVC_ModifyLightStyle( pevVictim, g_szLightStyle ); } } } MSG_ScreenFade( pPlayer, sDuration = 0, sHoldTime = 0, sFlags = 0, r = 0, g = 0, b = 0, a = 0 ) { message_begin( MSG_ONE_UNRELIABLE, gmsgScreenFade, _, pPlayer ); write_short( sDuration ); write_short( sHoldTime ); write_short( sFlags ); write_byte( r ); write_byte( g ); write_byte( b ); write_byte( a ); message_end( ); } SVC_ModifyLightStyle( pPlayer, const pszLightStyle[ ] ) { message_begin( MSG_ONE, SVC_LIGHTSTYLE, .player = pPlayer ); write_byte( 0 ); write_string( pszLightStyle ); message_end( ); } public _zp_get_user_nightvision_( pPlayer ) { if( !( 1 <= pPlayer <= g_iMaxClients ) ) return -1; return FBitSet( g_bsHasNightVision, pPlayer ); } public _zp_set_user_nightvision_( pPlayer, bool:fGive, bool:fNotice, bool:fToggle, bool:fCustomColor, iColor[ eColor ] ) { if( !( 1 <= pPlayer <= g_iMaxClients ) ) return 0; if( fGive ) { SetBits( g_bsHasNightVision, pPlayer ); } if( fNotice ) { zp_print_director_message ( .pPlayer = pPlayer, .message = "Press the NIGHTVISION key to turn on/off nightvision goggles." ); } if( fToggle ) { if( fCustomColor ) { for( new pColor = red; pColor <= blue; pColor++ ) g_vecNightVisionColor[ pPlayer ][ pColor ] = iColor[ pColor ]; } fw_CommandNightVision( pPlayer ); } return 1; } public _zp_reset_user_nightvision_( pPlayer ) { if( !pPlayer ) { for( new pClient = 1; pClient <= g_iMaxClients; ++pClient ) { if( !IsAlive( pClient ) || ~g_bsHasNightVision & ( 1 << pClient ) ) continue; if( FBitSet( g_bsHasNightVision, pClient ) ) { ClearBits( g_bsHasNightVision, pClient ); if( FBitSet( g_bsToggleNVG, pClient ) ) { ClearBits( g_bsToggleNVG, pClient ); MSG_ScreenFade( pClient ); SVC_ModifyLightStyle( pClient, g_szLightStyle ); } } } } else { if( FBitSet( g_bsHasNightVision, pPlayer ) ) { ClearBits( g_bsHasNightVision, pPlayer ); if( FBitSet( g_bsToggleNVG, pPlayer ) ) { ClearBits( g_bsToggleNVG, pPlayer ); MSG_ScreenFade( pPlayer ); SVC_ModifyLightStyle( pPlayer, g_szLightStyle ); } } } }