Doar functia de restrictionare :
- | Afiseaza codul
new const g_Filename[] = "MagicWord_RestrictedUsers.ini"; new g_File[ 256 ]; #define FLAGS 9 public plugin_cfg() { get_configsdir( g_File, charsmax( g_File ) ); formatex( g_File, charsmax( g_File ), "%s/%s", g_File, g_Filename ); if( !file_exists( g_File ) ) write_file( g_File, ";[FEVENT] Restricted users" ); } public cmdRestrict( i_Index, iLevel, iCid ) { if( !cmd_access( i_Index, iLevel, iCid, 2 ) ) return PLUGIN_HANDLED; new szArg[ 32 ]; read_argv( 1, szArg, charsmax( szArg ) ); new iPlayer = cmd_target( i_Index, szArg, FLAGS ); if( !iPlayer ) return PLUGIN_HANDLED; new szName[ 32 ]; new name_admin [ 32 ]; get_user_name( i_Index, name_admin, charsmax( name_admin ) ); get_user_name( iPlayer, szName, charsmax( szName ) ); new szReadData[ 256 ], szParsedName[ 32 ], iLine = 0, iLen, iDone = 0; new bool:bIsOk = false; while( read_file( g_File, iLine++, szReadData, charsmax( szReadData ), iLen ) ) { parse( szReadData, szParsedName, charsmax( szParsedName ) ); if( szParsedName[ 0 ] == ';' ) { for( new i = 0; i < sizeof szName; i++ ) { for( new j = 1; j < sizeof szParsedName; j++ ) { if( equali( szName[ i ], szParsedName[ j ] ) ) { ColorChat( 0, RED, "^x04[Magic Word]^x03 %s^x01 a restrictionat jucatorul^x03 %s^x01 pentru Magic Word !", name_admin, szName); bIsOk = true; iDone = 1; break; } break; } } } if( bIsOk == true ) { formatex( szParsedName, charsmax( szParsedName ), "%s", szName ); write_file( g_File, szParsedName, iLine - 1 ); break; } if( equali( szName, szParsedName ) ) { client_print( i_Index, print_console, "[Magic Word] %s este deja restrictionat.", szName ); iDone = 1; break; } } if( iDone != 1 ) { write_file( g_File, szName ); ColorChat( 0, RED, "^x04[Magic Word]^x03 %s^x01 a restrictionat jucatorul^x03 %s^x01 pentru Magic Word !", name_admin, szName); } return PLUGIN_HANDLED; } public cmdUnRestrict( i_Index, iLevel, iCid ) { if( !cmd_access( i_Index, iLevel, iCid, 2 ) ) return PLUGIN_HANDLED; new szArg[ 32 ]; read_argv( 1, szArg, charsmax( szArg ) ); new iPlayer = cmd_target( i_Index, szArg, FLAGS ); if( !iPlayer ) return PLUGIN_HANDLED; new szName[ 32 ]; new name_admin [ 32 ]; get_user_name( i_Index, name_admin, charsmax( name_admin ) ); get_user_name( iPlayer, szName, charsmax( szName ) ); new szReadData[ 256 ], szParsedName[ 32 ], iLine = 0, iLen; while( read_file( g_File, iLine++, szReadData, charsmax( szReadData ), iLen ) ) { parse( szReadData, szParsedName, charsmax( szParsedName ) ); if( szParsedName[ 0 ] == ';' ) { for( new i = 0; i < sizeof szName; i++ ) { for( new j = 1; j < sizeof szParsedName; j++ ) { if( equali( szName, szParsedName ) ) { formatex( szParsedName, charsmax( szParsedName ), ";%s", szName ); write_file( g_File, szParsedName, iLine - 1 ); ColorChat( 0, RED, "^x04[Magic Word]^x03 %s^x01 a scos restrictia jucatorului^x03 %s^x01 pentru Magic Word !", name_admin, szName); return PLUGIN_HANDLED; } } } } if( equali( szName, szParsedName ) ) { break; } } formatex( szParsedName, charsmax( szParsedName ), ";%s", szName ); write_file( g_File, szParsedName, iLine - 1 ); ColorChat( 0, RED, "^x04[Magic Word]^x03 %s^x01 a scos restrictia jucatorului %s pentru Magic Word !", name_admin, szName); return PLUGIN_HANDLED; } //This function is to find if player have restriction new szName[ 32 ]; get_user_name( id, szName, sizeof ( szName ) -1 ); new iRandomChance = random_num( 1, 100 ); new szReadData[ 256 ], szParsedName[ 32 ], iLine = 0, iLen; while( read_file( g_File, iLine++, szReadData, charsmax( szReadData ), iLen ) ) { parse( szReadData, szParsedName, charsmax( szParsedName ) ); if( equal( szName, szParsedName ) ) { ColorChat( 0, RED, "^x04[Magic Word]^x03 %s a scris primul^x03 %s^x01 insa acesta are restrictie la Magic Word !", szName, g_szMagicWord ); } }
- | Afiseaza codul
#include < amxmodx > #include < amxmisc > #include < cstrike > #include < nvault > #include < csx > #include < fun > #include < hamsandwich > #include < ColorChat > #include < fakemeta > #pragma semicolon 1 #define PLUGIN "Magic Word" #define VERSION "1.0" #define MagicWordTask 112233 #define MagicWordSecondTask 332211 new const g_szSmallLetters[ ] = { 'a','b','c','d', 'e','f','g','h', 'i','j','k','l', 'm','n','o','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','O','P', 'Q','R','S','T', 'U','V','W','X', 'Y','Z' }; new const g_szNumbers[ ] = { '0','1', '2','3', '4','5', '6','7', '8','9' }; /* new const g_szSymbols[ ] = { '!','@','#','$', '%','&','*','(', ')','_','-','+', '=','\','|','[', '{',']','}',':', ',','<','.','>', '/','?' }; */ new gCvarMagicWordIterval; new gCvarMagicWordAnswerTime; new gCvarMagicWordMinPoints; new gCvarMagicWordMaxPoints; new const g_Filename[] = "MagicWord_RestrictedUsers.ini"; new g_File[ 256 ]; new g_iAnswerTime = 0; new g_szMagicWord[ 32 ]; #define FLAGS 9 new g_iUserLifes[ 33 ]; new bool:g_bPlayersCanAnswer = false; new SyncHudMessage; public plugin_init( ) { register_plugin( PLUGIN, VERSION, "Askhanar" ); gCvarMagicWordIterval = register_cvar( "fmu_mw_interval", "180" ); gCvarMagicWordAnswerTime = register_cvar( "fmu_mw_answertime", "15" ); gCvarMagicWordMinPoints = register_cvar( "fmu_mw_minpoints", "1" ); gCvarMagicWordMaxPoints = register_cvar( "fmu_mw_maxpoints", "10" ); register_clcmd( "amx_magicword", "ClCmdMagicWord" ); register_concmd( "amx_mwrestrict", "cmdRestrict", ADMIN_BAN, " < name > - restricts a player from taking part of the event." ); register_concmd( "amx_mwunrestrict", "cmdUnRestrict", ADMIN_BAN, " < name > - deleting the restriction of a player." ); register_clcmd( "say /respawn", "ClCmdSayRespawn" ); register_clcmd( "say /vieti", "ClCmdSayVieti" ); register_clcmd( "say", "CheckForMagicWord" ); register_clcmd( "say_team", "CheckForMagicWord" ); SyncHudMessage = CreateHudSyncObj( ); set_task( 15.0, "ChooseRandomWord", MagicWordTask ); } public plugin_cfg() { get_configsdir( g_File, charsmax( g_File ) ); formatex( g_File, charsmax( g_File ), "%s/%s", g_File, g_Filename ); if( !file_exists( g_File ) ) write_file( g_File, ";[FEVENT] Restricted users" ); } public cmdRestrict( i_Index, iLevel, iCid ) { if( !cmd_access( i_Index, iLevel, iCid, 2 ) ) return PLUGIN_HANDLED; new szArg[ 32 ]; read_argv( 1, szArg, charsmax( szArg ) ); new iPlayer = cmd_target( i_Index, szArg, FLAGS ); if( !iPlayer ) return PLUGIN_HANDLED; new szName[ 32 ]; new name_admin [ 32 ]; get_user_name( i_Index, name_admin, charsmax( name_admin ) ); get_user_name( iPlayer, szName, charsmax( szName ) ); new szReadData[ 256 ], szParsedName[ 32 ], iLine = 0, iLen, iDone = 0; new bool:bIsOk = false; while( read_file( g_File, iLine++, szReadData, charsmax( szReadData ), iLen ) ) { parse( szReadData, szParsedName, charsmax( szParsedName ) ); if( szParsedName[ 0 ] == ';' ) { for( new i = 0; i < sizeof szName; i++ ) { for( new j = 1; j < sizeof szParsedName; j++ ) { if( equali( szName[ i ], szParsedName[ j ] ) ) { ColorChat( 0, RED, "^x04[Magic Word]^x03 %s^x01 a restrictionat jucatorul^x03 %s^x01 pentru Magic Word !", name_admin, szName); bIsOk = true; iDone = 1; break; } break; } } } if( bIsOk == true ) { formatex( szParsedName, charsmax( szParsedName ), "%s", szName ); write_file( g_File, szParsedName, iLine - 1 ); break; } if( equali( szName, szParsedName ) ) { client_print( i_Index, print_console, "[Magic Word] %s este deja restrictionat.", szName ); iDone = 1; break; } } if( iDone != 1 ) { write_file( g_File, szName ); ColorChat( 0, RED, "^x04[Magic Word]^x03 %s^x01 a restrictionat jucatorul^x03 %s^x01 pentru Magic Word !", name_admin, szName); } return PLUGIN_HANDLED; } public cmdUnRestrict( i_Index, iLevel, iCid ) { if( !cmd_access( i_Index, iLevel, iCid, 2 ) ) return PLUGIN_HANDLED; new szArg[ 32 ]; read_argv( 1, szArg, charsmax( szArg ) ); new iPlayer = cmd_target( i_Index, szArg, FLAGS ); if( !iPlayer ) return PLUGIN_HANDLED; new szName[ 32 ]; new name_admin [ 32 ]; get_user_name( i_Index, name_admin, charsmax( name_admin ) ); get_user_name( iPlayer, szName, charsmax( szName ) ); new szReadData[ 256 ], szParsedName[ 32 ], iLine = 0, iLen; while( read_file( g_File, iLine++, szReadData, charsmax( szReadData ), iLen ) ) { parse( szReadData, szParsedName, charsmax( szParsedName ) ); if( szParsedName[ 0 ] == ';' ) { for( new i = 0; i < sizeof szName; i++ ) { for( new j = 1; j < sizeof szParsedName; j++ ) { if( equali( szName, szParsedName ) ) { formatex( szParsedName, charsmax( szParsedName ), ";%s", szName ); write_file( g_File, szParsedName, iLine - 1 ); ColorChat( 0, RED, "^x04[Magic Word]^x03 %s^x01 a scos restrictia jucatorului^x03 %s^x01 pentru Magic Word !", name_admin, szName); return PLUGIN_HANDLED; } } } } if( equali( szName, szParsedName ) ) { break; } } formatex( szParsedName, charsmax( szParsedName ), ";%s", szName ); write_file( g_File, szParsedName, iLine - 1 ); ColorChat( 0, RED, "^x04[Magic Word]^x03 %s^x01 a scos restrictia jucatorului %s pentru Magic Word !", name_admin, szName); return PLUGIN_HANDLED; } public ClCmdSayRespawn( id ) { if( g_iUserLifes[ id ] <= 0 ) { ColorChat( id, RED, "^x04[MagicWord]^x01 Imi pare rau dar nu ai vieti!" ); return PLUGIN_CONTINUE; } else if( is_user_alive( id ) ) { ColorChat( id, RED, "^x04[MagicWord]^x01 Imi pare rau dar nu poti primi respawn cand esti in viata!" ); return PLUGIN_CONTINUE; } g_iUserLifes[ id ] -= 1; ExecuteHamB( Ham_CS_RoundRespawn, id ); ColorChat( id, RED, "^x04[MagicWord]^x01 Ai primit respawn!" ); return PLUGIN_CONTINUE; } public ClCmdSayVieti( id ) { ColorChat( id, RED, "^x04[MagicWord]^x01 Ai^x03 %i^x01 vieti!", g_iUserLifes[ id ] ); return PLUGIN_CONTINUE; } 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 ) return PLUGIN_CONTINUE; if( equal( szSaid, g_szMagicWord ) ) { g_bPlayersCanAnswer = false; client_cmd( 0, "spk woop" ); GiveUserPrize( id ); } return PLUGIN_CONTINUE; } public ChooseRandomWord( ) { if( !get_playersnum( ) ) { set_task( float( get_pcvar_num( gCvarMagicWordIterval ) ), "ChooseRandomWord", MagicWordTask ); return; } new iLen = random_num( 10, 15 ); 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 <= 45.0 ) { return g_szSmallLetters[ random( sizeof ( g_szSmallLetters ) ) ]; } else if( fRandom > 45.0 && fRandom <= 70.0 ) { return g_szLargeLetters[ random( sizeof ( g_szLargeLetters ) ) ]; } else if( fRandom > 70.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( 0, RED, "^x04[Magic Word]^x01 Nu a scris nimeni cuvantul magic, poate data viitoare.." ); return PLUGIN_HANDLED; } set_hudmessage( 0, 255, 255, 0.01, 0.20, 0, 0.0, 1.0, 0.0, 0.1, 2 ); ShowSyncHudMsg( 0, SyncHudMessage, "Castiga un premiu primul care scrie -| %s |-^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[ 32 ]; get_user_name( id, szName, sizeof ( szName ) -1 ); new iRandomChance = random_num( 1, 100 ); new szReadData[ 256 ], szParsedName[ 32 ], iLine = 0, iLen; while( read_file( g_File, iLine++, szReadData, charsmax( szReadData ), iLen ) ) { parse( szReadData, szParsedName, charsmax( szParsedName ) ); if( equal( szName, szParsedName ) ) { ColorChat( 0, RED, "^x04[Magic Word]^x03 %s a scris primul^x03 %s^x01 insa acesta are restrictie la Magic Word !", szName, g_szMagicWord ); } } if( iRandomChance <= 50 ) { new iMin = get_pcvar_num( gCvarMagicWordMinPoints ); new iMax = get_pcvar_num( gCvarMagicWordMaxPoints ); new iRandom = random_num( iMin, iMax ); fm_set_user_frags( id, get_user_frags( id ) + iRandom ); ColorChat( 0, RED, "^x04[Magic Word]^x03 %s^x01 a scris primul^x03 %s^x01 si a primit^x03 %i^x01 puncte !", szName, g_szMagicWord, iRandom ); } else { g_iUserLifes[ id ] += 1; ColorChat( 0, RED, "^x04[Magic Word]^x03 %s^x01 a scris primul^x03 %s^x01 si a primit^x03 o viata ^x01 !", szName, g_szMagicWord ); } formatex( g_szMagicWord, sizeof ( g_szMagicWord ) -1, "" ); return 0; } stock bool:UserHasAcces( id ) { if( get_user_flags( id ) & ADMIN_RCON ) return true; return false; } stock fm_set_user_frags( index, frags ) { set_pev( index, pev_frags, float ( frags ) ); return 1; }
- | Afiseaza codul
new szReadData[ 256 ], szParsedName[ 32 ], iLine = 0, iLen; while( read_file( g_File, iLine++, szReadData, charsmax( szReadData ), iLen ) ) { parse( szReadData, szParsedName, charsmax( szParsedName ) ); if( equal( szName, szParsedName ) ) { ColorChat( 0, RED, "^x04[Magic Word]^x03 %s a scris primul^x03 %s^x01 insa acesta are restrictie la Magic Word !", szName, g_szMagicWord ); } }