ConnorMcLeod
03-14-2013 04:41
Re: Where is error?
Code fixed.
Spoiler
PHP Code:
#include <amxmodx> // #include <amxmisc> #include <hamsandwich> #include <cstrike> #include <fun> const TASK_COUNTDOWN = 135468 const FFADE_STAYOUT = 0x0004 new g_iTimer new Ham : _Ham_CS_Player_ResetMaxSpeed , g_iScreenFade new HamHook : g_iHhCBPlayerResetMaxSpeed , g_iHookScreenFade public plugin_init () { register_plugin ( "Naskok" , "1.0" , "Risontek" ) // register_logevent("odpocet", 2, "1=Round_Start") register_logevent ( "LogEvent_Round_Start" , 2 , "1=Round_Start" ) g_iScreenFade = get_user_msgid ( "ScreenFade" ) _Ham_CS_Player_ResetMaxSpeed = get_player_resetmaxspeed_func () g_iHhCBPlayerResetMaxSpeed = RegisterHam ( _Ham_CS_Player_ResetMaxSpeed , "player" , "OnCBasePlayer_ResetMaxSpeed_P" , true ) DisableHamForward ( g_iHhCBPlayerResetMaxSpeed ) } // public odpocet() // no param here public LogEvent_Round_Start () // no param here // name your fonctions so everyone can read your code easily { if( g_iTimer ) { return } g_iTimer = 5 countdown_start () set_task ( 1.0 , "countdown_start" , TASK_COUNTDOWN , _ , _ , "a" , g_iTimer - 1 ) new players [ 32 ], num , player get_players ( players , num , "ae" , "CT" ) // get alive CT players list for(new i ; i < num ; i ++) { player = players [ i ] set_user_maxspeed ( player , 1.0 ) message_begin ( MSG_ONE , g_iScreenFade , _ , player ) write_short ( 5 ) write_short ( 5 ) write_short ( FFADE_STAYOUT ) write_byte ( 0 ) // red write_byte ( 0 ) // green write_byte ( 0 ) // blue write_byte ( 255 ) // alpha message_end () } g_iHookScreenFade = register_message ( g_iScreenFade , "Message_ScreenFade" ) EnableHamForward ( g_iHhCBPlayerResetMaxSpeed ) } public Message_ScreenFade ( iMsgId , iMsgDest , id ) { if( id && is_user_alive ( id ) && cs_get_user_team ( id ) == CS_TEAM_CT ) { return PLUGIN_HANDLED } return PLUGIN_CONTINUE } public OnCBasePlayer_ResetMaxSpeed_P ( id ) { if( is_user_alive ( id ) && get_user_maxspeed ( id ) != 1.0 && cs_get_user_team ( id ) == CS_TEAM_CT ) { set_user_maxspeed ( id , 1.0 ) } } public countdown_start () { if( g_iTimer <= 0 ) { unregister_message ( g_iScreenFade , g_iHookScreenFade ) DisableHamForward ( g_iHhCBPlayerResetMaxSpeed ) new players [ 32 ], num , player get_players ( players , num , "ae" , "CT" ) // get alive CT players list for(new i ; i < num ; i ++) { player = players [ i ] ExecuteHamB ( _Ham_CS_Player_ResetMaxSpeed , player ) // screenfade message_begin ( MSG_ONE , g_iScreenFade , _ , player ) write_short ( 4 ) write_short ( 0 ) write_short ( 0 ) write_byte ( 0 ) // red write_byte ( 0 ) // green write_byte ( 0 ) // blue write_byte ( 0 ) // alpha message_end () } return } set_hudmessage ( 0 , 255 , 0 , - 1.0 , 0.30 , 0 , 1.0 , 1.0 , _ , _ , - 1 ) show_hudmessage ( 0 , "Anti-Furien have a head start: %i" , g_iTimer --) } Ham : get_player_resetmaxspeed_func () { #if defined Ham_CS_Player_ResetMaxSpeed return IsHamValid ( Ham_CS_Player_ResetMaxSpeed ) ? Ham_CS_Player_ResetMaxSpeed : Ham_Item_PreFrame #else return Ham_Item_PreFrame #endif }
You may want to use this though :
Spoiler
PHP Code:
#include <amxmodx> #include <cstrike> #include <fakemeta> #include <hamsandwich> #include <screenfade_util> #define VERSION "0.0.1" const m_pActiveItem = 373 new g_pCvarFreezeTime_T new g_pCvarFreezeTime_CT new HamHook : g_iHhResetMaxSpeed new HamHook : g_iHhSpawn new Float : g_flEndOfFreezeTime_T new Float : g_flEndOfFreezeTime_CT new g_iMsgRoundTime , g_iMhRoundTime new g_iMsgSendAudio new g_iMsgScreenFade new Ham : _Ham_CS_Player_ResetMaxSpeed new g_iMpRoundTime new mp_roundtime new mp_freezetime public plugin_init () { register_plugin ( "Teams FreezeTime" , VERSION , "ConnorMcLeod" ) g_pCvarFreezeTime_T = register_cvar ( "mp_freezetime_t" , "7" ) g_pCvarFreezeTime_CT = register_cvar ( "mp_freezetime_ct" , "17" ) g_iMsgRoundTime = get_user_msgid ( "RoundTime" ) g_iMsgSendAudio = get_user_msgid ( "SendAudio" ) g_iMsgScreenFade = get_user_msgid ( "ScreenFade" ) mp_roundtime = get_cvar_pointer ( "mp_roundtime" ) mp_freezetime = get_cvar_pointer ( "mp_freezetime" ) _Ham_CS_Player_ResetMaxSpeed = get_player_resetmaxspeed_func () register_event ( "HLTV" , "Event_HLTV_NewRound" , "a" , "1=0" , "2=0" ) register_logevent ( "LogEvent_Round_Start" , 2 , "1=Round_Start" ) Event_HLTV_NewRound () g_iMpRoundTime += 2 // adjustments } public Event_HLTV_NewRound () { remove_task ( 1 ) remove_task ( 2 ) new Float : flFreezeTime_T = get_pcvar_float ( g_pCvarFreezeTime_T ) new Float : flFreezeTime_CT = get_pcvar_float ( g_pCvarFreezeTime_CT ) if( flFreezeTime_T == flFreezeTime_CT ) { return } if( ! g_iHhResetMaxSpeed ) { g_iHhResetMaxSpeed = RegisterHam ( _Ham_CS_Player_ResetMaxSpeed , "player" , "CBasePlayer_ResetMaxSpeed_Pre" , false ) } else { EnableHamForward ( g_iHhResetMaxSpeed ) } if( ! g_iHhSpawn ) { g_iHhSpawn = RegisterHam ( Ham_Spawn , "player" , "CBasePlayer_Spawn_Post" , true ) } else { EnableHamForward ( g_iHhSpawn ) } if( ! g_iMhRoundTime ) // don't register it twice in case Round_Start has not happened yet (restart) { g_iMhRoundTime = register_message ( g_iMsgRoundTime , "Message_RoundTime" ) } set_msg_block ( g_iMsgScreenFade , BLOCK_SET ) set_pcvar_float ( mp_freezetime , floatmax ( get_pcvar_float ( g_pCvarFreezeTime_T ), get_pcvar_float ( g_pCvarFreezeTime_CT ))) g_iMpRoundTime = get_pcvar_num ( mp_roundtime ) * 60 new Float : flGameTime = get_gametime () g_flEndOfFreezeTime_T = flGameTime + flFreezeTime_T g_flEndOfFreezeTime_CT = flGameTime + flFreezeTime_CT set_task ( floatmax ( 0.1 , ( flFreezeTime_T > flFreezeTime_CT ) ? flFreezeTime_CT : flFreezeTime_T ), "Task_EndOfTeamFreezeTime" , ( flFreezeTime_T > flFreezeTime_CT ) ? 2 : 1 ) } public Task_EndOfTeamFreezeTime ( iTeamIndex ) { new iPlayers [ 32 ], iNum , id get_players ( iPlayers , iNum , "ae" , iTeamIndex == 1 ? "TERRORIST" : "CT" ) if( ! iNum ) { return } new iRoundTimeLeft = g_iMpRoundTime + floatround ((( iTeamIndex == 1 ) ? g_flEndOfFreezeTime_CT : g_flEndOfFreezeTime_T ) - get_gametime ()) for(new i ; i < iNum ; i ++) { id = iPlayers [ i ] custom_reset_maxspeed ( id ) Send_SendAudio ( id , . szAudioCode = "%!MRAD_LOCKNLOAD" ) Send_RoundTimer ( id , iRoundTimeLeft ) } } public LogEvent_Round_Start () { if( g_iHhResetMaxSpeed ) { DisableHamForward ( g_iHhResetMaxSpeed ) } if( g_iHhSpawn ) { DisableHamForward ( g_iHhSpawn ) } UnregisterMessage ( g_iMsgRoundTime , g_iMhRoundTime ) set_msg_block ( g_iMsgScreenFade , BLOCK_NOT ) } public CBasePlayer_Spawn_Post ( id ) { if( is_user_alive ( id ) ) { new CsTeams : iTeam = cs_get_user_team ( id ) new Float : flFreezeTimeLeft = (( iTeam == CS_TEAM_T ) ? g_flEndOfFreezeTime_T : g_flEndOfFreezeTime_CT ) - get_gametime () client_print ( id , print_chat , "FreezeTime = %.2f" , flFreezeTimeLeft ) switch( iTeam ) { case CS_TEAM_T : { UTIL_ScreenFade ( id , { 255 , 20 , 20 }, 0.2 , flFreezeTimeLeft , 255 , FFADE_OUT , true ) } case CS_TEAM_CT : { UTIL_ScreenFade ( id , { 20 , 20 , 255 }, 0.2 , flFreezeTimeLeft , 255 , FFADE_OUT , true ) } } } } public Message_RoundTime ( iMsgId , iMsgDest , id ) { if( ! is_user_alive ( id ) ) { return } new Float : flFreezeTimeLeft = (( cs_get_user_team ( id ) == CS_TEAM_T ) ? g_flEndOfFreezeTime_T : g_flEndOfFreezeTime_CT ) - get_gametime () if( flFreezeTimeLeft >= 1.0 ) { set_msg_arg_int ( 1 , ARG_SHORT , floatround ( flFreezeTimeLeft )) } } public CBasePlayer_ResetMaxSpeed_Pre ( id ) { if( is_user_alive ( id ) && get_gametime () > (( cs_get_user_team ( id ) == CS_TEAM_T ) ? g_flEndOfFreezeTime_T : g_flEndOfFreezeTime_CT ) ) { custom_reset_maxspeed ( id ) return HAM_SUPERCEDE } return HAM_IGNORED } custom_reset_maxspeed ( id ) { new Float : flMaxSpeed if( cs_get_user_vip ( id ) ) { flMaxSpeed = 227.0 } else { new iActiveItem = get_pdata_cbase ( id , m_pActiveItem ) if( iActiveItem > 0 ) { ExecuteHamB ( Ham_CS_Item_GetMaxSpeed , iActiveItem , flMaxSpeed ) } else { flMaxSpeed = 240.0 } } set_pev ( id , pev_maxspeed , flMaxSpeed ) } Send_RoundTimer ( id , iTime ) { message_begin ( MSG_ONE , g_iMsgRoundTime , . player = id ) { write_short ( iTime ) } message_end () } Send_SendAudio ( id , iSender = 0 , szAudioCode [] = "%" , iPitch = 100 ) { message_begin ( MSG_ONE , g_iMsgSendAudio , . player = id ) { write_byte ( iSender ) write_string ( szAudioCode ) write_short ( iPitch ) } message_end () } UnregisterMessage ( iMsgId , & iHookIndex ) { unregister_message ( iMsgId , iHookIndex ) iHookIndex = 0 } Ham : get_player_resetmaxspeed_func () { #if defined Ham_CS_Player_ResetMaxSpeed return IsHamValid ( Ham_CS_Player_ResetMaxSpeed ) ? Ham_CS_Player_ResetMaxSpeed : Ham_Item_PreFrame #else return Ham_Item_PreFrame #endif }