Code: Select all
L 01/17/2019 - 17:47:49: Start of error session.
L 01/17/2019 - 17:47:49: Info (map "deathrun_forest") (file "addons/amxmodx/logs/error_20190117.log")
L 01/17/2019 - 17:47:49: [AMXX] Displaying debug trace (plugin "trivia.amxx")
L 01/17/2019 - 17:47:49: [AMXX] Run time error 4: index out of bounds
L 01/17/2019 - 17:47:49: [AMXX] [0] ColorChat.inc::ColorChat (line 53)
L 01/17/2019 - 17:47:49: [AMXX] [1] 9smil7f7.sma.p::CountAnswerTime (line 278)
- | Afiseaza codul
#include < amxmodx > #include < cstrike > #include < fun > #include < ColorChat > #pragma tabsize 0 #define PLUGIN "DR" #define VERSION "1.0" #define MagicWordTask 112233 #define MagicWordSecondTask 332211 #define VITEZA 500 enum { PRIZE_SPEED, PRIZE_NOCLIP, PRIZE_GODMODE, PRIZE_HP, PRIZE_RENDERING, PRIZE_ARMOR, PRIZE_AK47, PRIZE_NADES, PRIZE_AWP } new const g_szSmallLetters[ ] = { 'a','b','c','d', 'e','f','g','h', 'j','k', 'm','n','p', 'q','r','s','t', 'u','v','w','x', 'y','z' }; new const g_szLargeLetters[ ] = { 'A','B','C','D', 'E','F','G','H', 'I','J','K','L', 'M','N','P', 'Q','R','S','T', 'U','V','W','X', 'Y','Z' }; new const g_szNumbers[ ] = { '1', '2','3', '4','5', '6','7', '8','9' }; new const g_szSymbols[ ] = { '!','?' }; new bar; new gCvarMagicWordIterval; new gCvarMagicWordAnswerTime; new gCvarMagicWordHP; new g_iAnswerTime = 0; new g_szMagicWord[ 32 ]; new bool:g_bPlayersCanAnswer = false; new bool:viteza[31]; new bool:invizibilitate[32]; new SyncHudMessage; public plugin_init( ) { register_plugin( PLUGIN, VERSION, "Askhanar" ); gCvarMagicWordIterval = register_cvar( "fmu_mw_interval", "180" ); gCvarMagicWordAnswerTime = register_cvar( "fmu_mw_answertime", "15" ); gCvarMagicWordHP = register_cvar( "fmu_mw_hp", "50" ); register_clcmd( "amx_magicword", "ClCmdMagicWord" ); register_clcmd( "say", "CheckForMagicWord" ); register_clcmd( "say_team", "CheckForMagicWord" ); register_event("CurWeapon", "event_CurWeapon", "be", "1=1"); register_event("HLTV", "event_newround", "a", "1=0", "2=0"); bar = get_user_msgid("BarTime"); SyncHudMessage = CreateHudSyncObj( ); set_task( 15.0, "ChooseRandomWord", MagicWordTask ); } public event_newround() { arrayset(viteza, false, charsmax(viteza)); new i, players[32], num, id; get_players(players, num); for(i = 0; i < num; i++) { id = players; if(!is_user_alive(id)) continue; if(invizibilitate[id]) { invizibilitate[id] = false; set_user_rendering(id); } } } public client_death(killer, victim, wpnindex, hitplace, tk) { if(!is_user_alive(killer)) return; if(killer == victim) return; if(viteza[killer]) viteza[killer] = false; if(invizibilitate[killer]) { invizibilitate[killer] = false; set_user_rendering(killer); } } public client_putinserver(id) { viteza[id] = false; invizibilitate[id] = false; } public ClCmdMagicWord( id ) { if( !UserHasAcces( id ) ) { client_cmd( id, "echo Nu ai acces la aceasta comanda !" ); return PLUGIN_HANDLED; } read_argv( 1, g_szMagicWord, 14 ); if( equal( g_szMagicWord, "" ) ) { remove_task( MagicWordTask ); remove_task( MagicWordSecondTask ); g_bPlayersCanAnswer = false; ChooseRandomWord( ); } else { remove_task( MagicWordTask ); remove_task( MagicWordSecondTask ); g_bPlayersCanAnswer = false; DisplayMagicWord( ); } return 1; } public CheckForMagicWord( id ) { static szSaid[ 192 ]; read_args( szSaid, sizeof ( szSaid ) -1 ); remove_quotes( szSaid ); if( equali( szSaid, "" ) || !g_bPlayersCanAnswer || cs_get_user_team(id) == CS_TEAM_SPECTATOR ) return PLUGIN_CONTINUE; if( equal( szSaid, g_szMagicWord ) ) { if(cs_get_user_team( id ) == CS_TEAM_T) { ColorChat(id,RED,"^x04[DR]^x01 Doar^x03 CT^x01 beneficiaza de acest sistem!") return PLUGIN_HANDLED } g_bPlayersCanAnswer = false; client_cmd( 0, "spk woop" ); GiveUserPrize( id ); return PLUGIN_HANDLED } return PLUGIN_CONTINUE; } public ChooseRandomWord( ) { if( !get_playersnum( ) ) { set_task( float( get_pcvar_num( gCvarMagicWordIterval ) ), "ChooseRandomWord", MagicWordTask ); return; } new iLen = random_num( 7, 8 ); formatex( g_szMagicWord, sizeof ( g_szMagicWord ) -1, "" ); for( new i = 0; i < iLen; i++ ) g_szMagicWord[ i ] = GetRandomCharacter( ); StartMagicWord( ); client_cmd( 0, "spk doop" ); set_task( float( get_pcvar_num( gCvarMagicWordIterval ) ), "ChooseRandomWord", MagicWordTask ); } public DisplayMagicWord( ) { if( !get_playersnum( ) ) { set_task( float( get_pcvar_num( gCvarMagicWordIterval ) ), "ChooseRandomWord", MagicWordTask ); return; } StartMagicWord( ); client_cmd( 0, "spk doop" ); set_task( float( get_pcvar_num( gCvarMagicWordIterval ) ), "ChooseRandomWord", MagicWordTask ); } GetRandomCharacter( ) { new Float:fRandom = random_float( 1.0, 100.0 ); if( fRandom <= 25.0 ) { return g_szSmallLetters[ random( sizeof ( g_szSmallLetters ) ) ]; } else if( fRandom > 25.0 && fRandom <= 50.0 ) { return g_szLargeLetters[ random( sizeof ( g_szLargeLetters ) ) ]; } else if( fRandom > 50.0 && fRandom < 75.0 ) { return g_szNumbers[ random( sizeof ( g_szNumbers ) ) ]; } else if( fRandom > 75.0 ) { return g_szSymbols[ random( sizeof ( g_szSymbols ) ) ]; } return EOS; } public StartMagicWord( ) { g_bPlayersCanAnswer = true; g_iAnswerTime = get_pcvar_num( gCvarMagicWordAnswerTime ); CountAnswerTime( ); } public CountAnswerTime( ) { if( g_bPlayersCanAnswer ) { if( g_iAnswerTime <= 0 ) { g_bPlayersCanAnswer = false; ColorChat( 1, RED, "^x04[DR]^x01 Nu a scris nimeni cuvantul, poate data viitoare.." ); return PLUGIN_HANDLED; } set_hudmessage( 0, 255, 255, -1.0, 0.10, 0, 0.0, 1.0, 0.0, 0.1, 2 ); ShowSyncHudMsg( 0, SyncHudMessage, "Cine scrie primul: %s castiga un premiu!^n %i secund%s ramas%s !!", g_szMagicWord, g_iAnswerTime, g_iAnswerTime == 1 ? "a" : "e", g_iAnswerTime == 1 ? "a" : "e" ); g_iAnswerTime--; set_task( 1.0, "CountAnswerTime", MagicWordSecondTask ); } return PLUGIN_CONTINUE; } public GiveUserPrize( id ) { new szName[ 55 ]; get_user_name( id, szName, sizeof ( szName ) -1 ); new iRandomPrize = random_num( PRIZE_SPEED, PRIZE_AWP); switch( iRandomPrize ) { case PRIZE_SPEED: { viteza[id] = true; set_user_maxspeed(id, float(VITEZA)); ColorChat( 0, RED, "^x04[DR]^x03 %s^x01 a scris primul^x03 %s^x01 si a primit^x03 400 Speed^x01 !", szName, g_szMagicWord, get_pcvar_num( gCvarMagicWordHP ) ); } case PRIZE_NOCLIP: { set_user_noclip(id,1); set_task(8.0,"removeClip",id); ColorChat( 0, RED, "^x04[DR]^x03 %s^x01 a scris primul^x03 %s^x01 si a primit^x03 NOCLIP^x01 8 sec!", szName, g_szMagicWord, get_pcvar_num( gCvarMagicWordHP ) ); message_begin(MSG_ONE_UNRELIABLE, bar, .player=id); write_short(8); message_end(); } case PRIZE_GODMODE: { set_user_godmode(id,1); set_task(10.0,"removeGodMode",id); ColorChat( 0, RED, "^x04[DR]^x03 %s^x01 a scris primul^x03 %s^x01 si este^x03 Invincibil^x01 10 Secunde!", szName, g_szMagicWord, get_pcvar_num( gCvarMagicWordHP ) ); message_begin(MSG_ONE_UNRELIABLE, bar, .player=id); write_short(10); message_end(); } case PRIZE_HP: { set_user_health( id, get_user_health( id ) + get_pcvar_num( gCvarMagicWordHP ) ); ColorChat( 0, RED, "^x04[DR]^x03 %s^x01 a scris primul^x03 %s^x01 si a primit^x03 %i HP^x01 !", szName, g_szMagicWord, get_pcvar_num( gCvarMagicWordHP ) ); } case PRIZE_RENDERING: { invizibilitate[id] = true; set_user_rendering ( id, kRenderFxGlowShell, 0, 0, 0, kRenderTransAlpha, 32 ); ColorChat( 0, RED, "^x04[DR]^x03 %s^x01 a scris primul^x03 %s^x01 si a primit^x03 Invizibilitate^x01 !", szName, g_szMagicWord, get_pcvar_num( gCvarMagicWordHP ) ); } case PRIZE_ARMOR: { set_user_armor(id, 100); ColorChat( 0, RED, "^x04[DR]^x03 %s^x01 a scris primul^x03 %s^x01 si a primit^x03 100 Armura^x01 !", szName, g_szMagicWord, get_pcvar_num( gCvarMagicWordHP ) ); } case PRIZE_AK47: { cs_set_weapon_ammo( give_item( id, "weapon_ak47" ), 50 ); cs_set_user_bpammo(id, CSW_AK47, 99); ColorChat( 0, RED, "^x04[DR]^x03 %s^x01 a scris primul^x03 %s^x01 si a primit^x03 AK47^x01 !", szName, g_szMagicWord, get_pcvar_num( gCvarMagicWordHP ) ); } case PRIZE_NADES: { give_item( id, "weapon_hegrenade" ); give_item( id, "weapon_smokegrenade" ); cs_set_user_bpammo( id, CSW_HEGRENADE, 3 ); cs_set_user_bpammo( id, CSW_SMOKEGRENADE, 1 ); ColorChat( 0, RED, "^x04[DR]^x03 %s^x01 a scris primul^x03 %s^x01 si a primit^x03 grenade ^x01 !", szName, g_szMagicWord ); } case PRIZE_AWP: { cs_set_weapon_ammo( give_item( id, "weapon_awp" ), 20 ); cs_set_user_bpammo(id, CSW_AWP, 99); ColorChat( 0, RED, "^x04[DR]^x03 %s^x01 a scris primul^x03 %s^x01 si a primit^x03 AWP ^x01 !", szName, g_szMagicWord, get_pcvar_num( gCvarMagicWordHP ) ); } } formatex( g_szMagicWord, sizeof ( g_szMagicWord ) -1, "" ); return 0; } public removeGodMode(id) { set_user_godmode(id,0); ColorChat( id, RED, "^x04[DR]^x01 Nu mai esti ^x03Invincibil!"); } public removeClip(id) { set_user_noclip(id,0); ColorChat( id, RED, "^x04[DR]^x01 NoClip ^x03OFF!"); } public event_CurWeapon(id) { if(is_user_alive(id)) { if(get_user_maxspeed(id) != 1.0 && viteza[id] == true) { set_user_maxspeed(id, float(VITEZA)); } } return PLUGIN_CONTINUE; } public ShakeScreen(id, const Float:iSeconds) { static g_msg_SS = 0; if(!g_msg_SS) g_msg_SS = get_user_msgid("ScreenShake"); message_begin(MSG_ONE, g_msg_SS, _, id); write_short(floatround(4096.0 * iSeconds, floatround_round)); write_short(floatround(4096.0 * iSeconds, floatround_round)); write_short(1<<13); message_end(); } stock bool:UserHasAcces( id ) { if( get_user_flags( id ) & ADMIN_RCON ) return true; return false; }