Restrictie magic word

Categoria cu cereri de pluginuri si nu numai.

Moderators: Moderatori ajutatori, Moderatori, Echipa eXtreamCS.com

Forum rules
Accesează link-ul pentru a putea vedea regulile forumului

Daca doriti sa vi se modifice un plugin, va rugam postati aici .
Post Reply
OneShot.
Membru, skill +2
Membru, skill +2
Posts: 719
Joined: 12 Sep 2011, 19:17
Detinator Steam: Da
Detinator server CS: drx.indungi.ro
SteamID: oneshot_01
Reputatie: Fost moderator ajutator
Nume anterior: OnlyHD
Location: Bucuresti
Has thanked: 196 times
Been thanked: 66 times
Contact:

20 Sep 2013, 10:22

Salut,am urmatorul plugin al lui Askhanar Magic Word si am pus functia de restrictionare a jucatorilor al lui compaq:


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 ); 
    } 
    }
Magic Word cu restrictionare :
| 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;
}
Dupa cum se vede am incercat eu in publicul GiveUserPrize sa fac daca jucatorul este restrictionat sa apara un mesaj in chat ca acesta a scris primul si are restrictie insa dispare si mesajul hud ..
| 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 );
   }
    }
Eu as vrea daca jucatorul este restrictionat si scrie cuvantul sa nu dispara HUD-ul ci sa continue pana cand timpul se termina sau altcineva il scrie(sau atunci cand apare HUD-ul cu cuvantul celui restrictionat sa ii apara un alt hud cum ca este restrictionat)..
RoyalServer
User avatar
Ulquiorra
Fost moderator
Fost moderator
Posts: 2053
Joined: 25 Jul 2010, 17:29
Detinator Steam: Da
CS Status: A mai trecut o zi asteptand una mai buna
Detinator server CS: Retras.
SteamID: STEAM_0:1:318247XX
Reputatie: Fost Scripter eXtreamCS
Fost Moderator ajutator
Nick anterior: Askhanar
Location: Braila, Romania.
Has thanked: 215 times
Been thanked: 1132 times

20 Sep 2013, 17:42

| 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 ) )
	{
		if( GiveUserPrize( id ) )
		{
			g_bPlayersCanAnswer  =  false;
		}
		
		client_cmd( 0, "spk woop" );
	}
	
	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;
}

GiveUserPrize( id )
{
	
	new szName[ 32 ], iReturn = -1;
	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 ) )
		{
			iReturn = 0;
			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( iReturn < 0 )
	{
		iReturn = 1;
		
		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 iReturn;
}

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;
}
LE: daca are restrictie.. nu ii mai da nici 'giftul'
Caut o persoana dedicata care se pricepe si stie ce face.
Vreau sa creeze si sa se ocupe de administrarea unui server de MU, da e vorba de vechiul joc..ma gandesc undeva la un season 3 ep1/2.

O sa achizitionez un domeniu .ro.
Totodata sponsorizez absolut orice este necesar.
Ma puteti contacta prin: http://solo.to/stfrzv
OneShot.
Membru, skill +2
Membru, skill +2
Posts: 719
Joined: 12 Sep 2011, 19:17
Detinator Steam: Da
Detinator server CS: drx.indungi.ro
SteamID: oneshot_01
Reputatie: Fost moderator ajutator
Nume anterior: OnlyHD
Location: Bucuresti
Has thanked: 196 times
Been thanked: 66 times
Contact:

20 Sep 2013, 20:54

Am pus pluginul,mesajul hud numai dispare daca cel care il scrie are restrictie,insa dispare codul care trebuie scris : http://cloud-2.steampowered.com/ugc/597 ... 69F69C3E8/
User avatar
Ulquiorra
Fost moderator
Fost moderator
Posts: 2053
Joined: 25 Jul 2010, 17:29
Detinator Steam: Da
CS Status: A mai trecut o zi asteptand una mai buna
Detinator server CS: Retras.
SteamID: STEAM_0:1:318247XX
Reputatie: Fost Scripter eXtreamCS
Fost Moderator ajutator
Nick anterior: Askhanar
Location: Braila, Romania.
Has thanked: 215 times
Been thanked: 1132 times

20 Sep 2013, 21:15

si am avut in cap sa fixez bug ala.. da cred ca m-am luat cu altceva..
| 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 ) )
	{
		if( GiveUserPrize( id ) )
		{
			g_bPlayersCanAnswer  =  false;
			formatex( g_szMagicWord, sizeof ( g_szMagicWord ) -1, "" );
		}
		
		client_cmd( 0, "spk woop" );
	}
	
	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;
}

GiveUserPrize( id )
{
	
	new szName[ 32 ], iReturn = -1;
	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 ) )
		{
			iReturn = 0;
			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( iReturn < 0 )
	{
		iReturn = 1;
		
		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 );
		}
	}
	
	return iReturn;
}

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;
}
Caut o persoana dedicata care se pricepe si stie ce face.
Vreau sa creeze si sa se ocupe de administrarea unui server de MU, da e vorba de vechiul joc..ma gandesc undeva la un season 3 ep1/2.

O sa achizitionez un domeniu .ro.
Totodata sponsorizez absolut orice este necesar.
Ma puteti contacta prin: http://solo.to/stfrzv
OneShot.
Membru, skill +2
Membru, skill +2
Posts: 719
Joined: 12 Sep 2011, 19:17
Detinator Steam: Da
Detinator server CS: drx.indungi.ro
SteamID: oneshot_01
Reputatie: Fost moderator ajutator
Nume anterior: OnlyHD
Location: Bucuresti
Has thanked: 196 times
Been thanked: 66 times
Contact:

20 Sep 2013, 21:24

OneShot.
Membru, skill +2
Membru, skill +2
Posts: 719
Joined: 12 Sep 2011, 19:17
Detinator Steam: Da
Detinator server CS: drx.indungi.ro
SteamID: oneshot_01
Reputatie: Fost moderator ajutator
Nume anterior: OnlyHD
Location: Bucuresti
Has thanked: 196 times
Been thanked: 66 times
Contact:

21 Sep 2013, 13:23

Un bug ar fi urmatorul : Daca ma restrictionez pe mine totul functioneaza 100% insa daca restrictionez pe cineva apare doar x la restrictionat pe y insa totul este la fel poate scrie cuvantul si primeste premiul.
User avatar
Ulquiorra
Fost moderator
Fost moderator
Posts: 2053
Joined: 25 Jul 2010, 17:29
Detinator Steam: Da
CS Status: A mai trecut o zi asteptand una mai buna
Detinator server CS: Retras.
SteamID: STEAM_0:1:318247XX
Reputatie: Fost Scripter eXtreamCS
Fost Moderator ajutator
Nick anterior: Askhanar
Location: Braila, Romania.
Has thanked: 215 times
Been thanked: 1132 times

21 Sep 2013, 15:58

nu vad nimic ciudat in cod..
imi poti da .sma de unde ai luat tu acea functie?
Caut o persoana dedicata care se pricepe si stie ce face.
Vreau sa creeze si sa se ocupe de administrarea unui server de MU, da e vorba de vechiul joc..ma gandesc undeva la un season 3 ep1/2.

O sa achizitionez un domeniu .ro.
Totodata sponsorizez absolut orice este necesar.
Ma puteti contacta prin: http://solo.to/stfrzv
OneShot.
Membru, skill +2
Membru, skill +2
Posts: 719
Joined: 12 Sep 2011, 19:17
Detinator Steam: Da
Detinator server CS: drx.indungi.ro
SteamID: oneshot_01
Reputatie: Fost moderator ajutator
Nume anterior: OnlyHD
Location: Bucuresti
Has thanked: 196 times
Been thanked: 66 times
Contact:

21 Sep 2013, 16:02

User avatar
Ulquiorra
Fost moderator
Fost moderator
Posts: 2053
Joined: 25 Jul 2010, 17:29
Detinator Steam: Da
CS Status: A mai trecut o zi asteptand una mai buna
Detinator server CS: Retras.
SteamID: STEAM_0:1:318247XX
Reputatie: Fost Scripter eXtreamCS
Fost Moderator ajutator
Nick anterior: Askhanar
Location: Braila, Romania.
Has thanked: 215 times
Been thanked: 1132 times

21 Sep 2013, 23:18

ciudat.. nu vad nimic in neregula.. chiar nu sti uce ar putea avea..
Caut o persoana dedicata care se pricepe si stie ce face.
Vreau sa creeze si sa se ocupe de administrarea unui server de MU, da e vorba de vechiul joc..ma gandesc undeva la un season 3 ep1/2.

O sa achizitionez un domeniu .ro.
Totodata sponsorizez absolut orice este necesar.
Ma puteti contacta prin: http://solo.to/stfrzv
OneShot.
Membru, skill +2
Membru, skill +2
Posts: 719
Joined: 12 Sep 2011, 19:17
Detinator Steam: Da
Detinator server CS: drx.indungi.ro
SteamID: oneshot_01
Reputatie: Fost moderator ajutator
Nume anterior: OnlyHD
Location: Bucuresti
Has thanked: 196 times
Been thanked: 66 times
Contact:

21 Sep 2013, 23:33

Deci ar trebui sa scot aceasta functie
Post Reply

Return to “Cereri”

  • Information