Jump to content

Account System (Register & Login ) (Update to v.1.1 )


Andr3

Recommended Posts

Acccount System

V 1.1 FINAL

Informatii :Acest filterscript a fost creat cu ajutorul lui Y_Less  care a facut y_ini,Roach pt. YDB si a lui Zex pt. Zcmd ! Cu acest script , banii si scorul jucatorilor se vor salva !

Last Release: Account System v.1.0

Curent Release: Account System v. 1.1(switch to Zcmd & Y_INI )

[glow=red,2,300]Data crearii[/glow] : 25.04.2011 - 27.04.2011

/*-------------------------------
	Y_Less - y_ini
---------------------------------
	JoKeR - Script
---------------------------------
	www.sa-mp.ro - Tutorials
	www.sa-mp.com- Tutorials
--------------------------------*/

#include    <a_samp>
#include    < zcmd >
#include    < YDB  >
#include < YSI\y_ini >

#define DIRECTORY       "Accounts/%s.ini"
//Colors//
#define COLOR_SYSTEM 	(0xEFEFF7AA)
#define green 			(0x33FF33AA)
#define blue 			(0x00FFFFAA)

forward Pass( playerid, name[ ], value[ ] );
forward LoadpUser( playerid, name[ ], value[ ] );

public OnFilterScriptInit( )
{
	print( "\n--------------------------------------" );
	print( "Account System                          " );
	print( "--------------------------------------\n" );
	return ( 1 );
}

public OnPlayerRequestSpawn( playerid )
{
	if( INI_Exist ( pName( playerid ) ) )
	{
		if( GetPVarInt( playerid, "pLog" ) == 0 )
		{
			SendClientMessage( playerid, green, "You have already registered, use /login to log into your account. ");
			return ( 0 );
		}
	}
	return ( 1 );
}

public OnPlayerDisconnect( playerid )
{
	if( GetPVarInt( playerid, "pLog" ) == 1 )
	{
	    new file[ 256 ]; format( file, sizeof file, DIRECTORY, pName( playerid ) );
	    new INI:PlayerAcc = INI_Open( file );
		INI_WriteInt( PlayerAcc, "Money", GetPlayerMoney( playerid ) );
		INI_WriteInt( PlayerAcc, "Score", GetPlayerScore( playerid ) );
		INI_Close( PlayerAcc );
		SetPVarInt( playerid, "pLog", 0 );
	}
	return ( 1 );
}

public OnPlayerConnect( playerid )
{
 	if( GetPVarInt( playerid, "pLog" ) == 0 )
	{
		if( INI_Exist ( pName( playerid ) ) )
		{
			SystemMsg( playerid, "You have already registered, please /login [password] to login." );
		}
		else SystemMsg( playerid, "You do not have an account, use /register [password] to register then /login [password] to login." );
	}
	return ( 1 );
}

stock SystemMsg( playerid, msg[ ] )
{
   if( ( IsPlayerConnected ( playerid ) ) && ( strlen ( msg ) > 0 ) ) SendClientMessage( playerid, COLOR_SYSTEM, msg );
   return ( 1 );
}

stock pName( playerid )
{
	new name[ MAX_PLAYER_NAME ];
	GetPlayerName( playerid, name, sizeof name );
	return name;
}

CMD:register( playerid, params[ ] )
{
    new file[ 256 ]; format( file, sizeof file, DIRECTORY, pName( playerid ) );
    new INI:PlayerAcc = INI_Open( file );
	if( GetPVarInt( playerid, "pLog" ) == 1 ) return SystemMsg( playerid, "You have already had an account." );
	if( INI_Exist( pName( playerid ) ) ) return SystemMsg( playerid, "You have already created an account, /login [password] to login." );
	if( strlen ( params ) == 0 ) return SystemMsg( playerid, "Usage: /register [password]" );
    SystemMsg( playerid, "You have successfully created your account, now use /login [password] to login." );
    INI_WriteString( PlayerAcc, "Name", pName( playerid ) );
    INI_WriteString( PlayerAcc, "Password", params );
    INI_WriteInt( PlayerAcc, "Money", 0 );
    INI_WriteInt( PlayerAcc, "Score", 0 );
    INI_Close( PlayerAcc );
	return ( 1 );
}

CMD:login( playerid, params[ ] )
{
    new file[ 256 ], Passw[ 500 ]; format( file, sizeof file, DIRECTORY, pName( playerid ) );
    INI_ParseFile(file, "Pass", false, true, playerid);
    GetPVarString( playerid, "pPass", Passw, sizeof Passw );
	if( GetPVarInt( playerid, "pLog" ) == 1 ) return SystemMsg( playerid, "You have already logined." );
	if( !INI_Exist ( pName( playerid ) ) ) return SystemMsg( playerid, "You do not have an account, please /register [password]" );
	if( isnull ( params ) ) return SystemMsg( playerid, "Usage: /login [password]" );
	if( strcmp ( Passw, params, false ) == 0 )
	{
		SetPlayerScore( playerid, GetPVarInt( playerid, "pScore" ) );
		ResetPlayerMoney( playerid );
		GivePlayerMoney( playerid, GetPVarInt( playerid, "pCash" ) );
		SetPVarInt( playerid, "pLog", 1 );
		SystemMsg( playerid, "You have successfully logined." );
	}else SystemMsg( playerid, "Wrong password or nickname!" );
	return ( 1 );
}

public Pass( playerid, name[ ], value[ ] )
{
	if( !strcmp ( name, "Password" ) )
	{
		SetPVarString( playerid, "pPass", value );
	}
}

public LoadpUser( playerid, name[ ], value[ ] )
{
	if( !strcmp ( name, "Money" ) )
	{
		SetPVarInt( playerid, "pCash", strval( value ) );
	}
	if( !strcmp ( name, "Score" ) )
	{
		SetPVarInt( playerid, "pScore", strval( value ) );
	}
}
/*-----------------------------------------
   Thanks for use my Register & Login Script
  ------------------------------------------*/

Amx.+Pwn./ScriptFiles/Include : Download

Daca aveti probleme cu bug-urile lasa-ti un reply  !

Pentru a se salva banii si scorul creati un folder in scriptfiles (pentru cei care nu stiu )

Link to comment
Share on other sites

  • 3 weeks later...
  • 1 month later...
  • 1 month later...

Daca nu va suparati imi puteti spune si mie cum il adaug , mie imi scrie in consola :

" ERRROR: Could not connect to YSI

  update server <response was 006>.

da , trebuie sa descarci ultima versiune YSI  >> http://forum.sa-mp.com/showthread.php?p=884701

Foarte frumos 5/5  :grin:

communitylogosml.png

94.23.120.101:7778

Link to comment
Share on other sites

  • 1 month later...

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. For more details you can also review our Terms of Use and Privacy Policy.