Jump to content
  • 0

Problema la mod de login 0.3c


damarius

Question

Am o poblema la un mod de login am incercat sa fac acest fs

#include 	<  a_samp >
#include 	<  ZCMD   >
#include    <YSI/y_ini>


#define COL_RED         \
		"{F81414}"

#define COL_LIGHTBLUE   \
		"{00C0FF}"

#define COL_LRED        \
		"{FFA1A1}"

#define COL_GREEN       \
		"{6EF83C}"

#define DIALOG_REG  	\
		1995

#define DIALOG_REG_REQ  \
		1996

#define DIALOG_LOGIN    \
		1997

#define DIALOG_LOGIN2   \
		1998

#define DIALOG_LOG_DONE \
		1999

#define DIALOG_LOG      \
		2000


public OnFilterScriptInit( )	return 1;
public OnFilterScriptExit( )	return 1;


forward Parola( playerid, name[ ], value[ ] );
public Parola( playerid, name[ ], value[ ] )
{
    if ( !strcmp( name, "PAROLA" ) )
    {
        SetPVarString( playerid, "pPass", value );
    }
}

forward LoadUser( playerid, name[ ], value[ ] );
public LoadUser( playerid, name[ ], value[ ] )
{
    if ( !strcmp(name, "DATA INREGISTRARII" ) )SetPVarString( playerid, "Data", value );

    if ( !strcmp(name, "BANI" ) )SetPVarInt( playerid, "Moneys", strval( value ) );

    if ( !strcmp(name, "SCOR" ) )SetPVarInt( playerid, "Score", strval( value ) );
}

CMD:register( playerid, params[ ] )
{
	#pragma unused params
	if ( GetPVarInt( playerid, "Logged" ) == 1 )
	    return SendClientMessage( playerid, -1, ""COL_RED"ERROR:{FFFFFF} Deja esti inregistrat si logat.");

    ShowPlayerDialog( playerid, DIALOG_REG, DIALOG_STYLE_INPUT, "{FFFFFF}Parola", "{FFFFFF}Te rog scrie parola dorita.", ">>>", "Exit");
	return 1;
}
CMD:login( playerid, params[ ] )
{
	#pragma unused params
	if ( GetPVarInt( playerid, "Logged" ) == 1 )
	    return SendClientMessage( playerid, -1, ""COL_RED"ERROR:{FFFFFF} Deja esti inregistrat si logat.");

    ShowPlayerDialog( playerid, DIALOG_LOGIN2, DIALOG_STYLE_INPUT, "{FFFFFF}Parola", "{FFFFFF}Te rog scrie parola ta.", "Login", "Exit");
	return 1;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
	switch( dialogid )
	{
	    case DIALOG_REG:
	    {
	        if ( response )
	        {
	            if ( sscanf( inputtext, "s", inputtext[ 0 ] || strlen( inputtext[ 0 ] ) == 0 ) )
	                return ShowPlayerDialog( playerid, DIALOG_REG, DIALOG_STYLE_INPUT, "{FFFFFF}Parola", ""COL_RED"Eroare!\n\
																							{FFFFFF}Te rog scrie parola dorita.\n",
																							">>>", "Exit");
        		if ( strlen( inputtext[ 0 ] ) < 3 || strlen( inputtext[ 0 ] ) > 20 )
        			return ShowPlayerDialog( playerid, DIALOG_REG, DIALOG_STYLE_INPUT, "{FFFFFF}Parola", ""COL_RED"Eroare!\n\
																							{FFFFFF}Te rog scrie parola dorita.\n\
																		 					"COL_RED"#{FFFFFF}Minim 3 caractere si maxim 20.",
																							">>>", "Exit");
				new
					PlayerFile[ 13 + MAX_PLAYER_NAME ],
					pDate[ 8 + 15 ], //HH:MM:SS + DD.MM.YYYY = 18
					pYear,
					pMonth,
					pDay,
					pHour,
					pMinute,
					pSecond,
					pIP[ 20 ],
					InfBox[ 512 ]
				;
				getdate(pYear, pMonth, pDay ),gettime(pHour, pMinute, pSecond );
				GetPlayerIp( playerid, pIP, 20 );

				format( PlayerFile , sizeof PlayerFile, "Accounts/%s.ini", Encode( pName( playerid ) ) );
				format( pDate, sizeof pDate, "%d:%d:%d  %d/%d/%d",pHour, pMinute, pSecond , pDay, pMonth, pYear );
			    format( InfBox, sizeof InfBox, "{FFFFFF}Te-ai inregistrat cu succes!\n\n\
			                                            "COL_LIGHTBLUE"Cont: {FFFFFF}%s\n\
			                                            "COL_LIGHTBLUE"Parola: {FFFFFF}%s\n\n\
			                                            Ai primit "COL_GREEN"$5000{FFFFFF}.\n\
			                                            Doresti sa te loghezi?", pName( playerid ),
																				 inputtext		 );
				ShowPlayerDialog( playerid, DIALOG_LOG, DIALOG_STYLE_MSGBOX, "Login", InfBox, "Da", "Nu" );



				new
					INI:PlayerAcc = INI_Open( PlayerFile );

                INI_WriteString( PlayerAcc, "NUME",				  pName( playerid )	   );
			 	INI_WriteString( PlayerAcc, "PAROLA", 			  inputtext 		   );
				INI_WriteString( PlayerAcc, "DATA INREGISTRARII", pDate 			   );
				INI_WriteInt( PlayerAcc,    "BANI",               5000                 );
				INI_WriteInt( PlayerAcc,    "SCOR",               15                   );
				INI_Close( PlayerAcc );

				SetPVarString( playerid, "Data", pDate );
				SetPVarInt( playerid, "Logged", 1 );
				GivePlayerMoney( playerid, 5000 );
				SetPlayerScore( playerid, GetPlayerScore( playerid ) + 15 );


			}
		}
		case DIALOG_REG_REQ:
		{
		    if ( response ) cmd_register( playerid, "");
		    if ( !response ) return 0;

		}

		case DIALOG_LOGIN: ShowPlayerDialog( playerid, DIALOG_LOGIN2, DIALOG_STYLE_INPUT, "{FFFFFF}Parola",
																						  "{FFFFFF}Te rog scrie parola ta.",
																						  "Login", "Exit");

		case DIALOG_LOG:
		{
		    if ( response )
            	ShowPlayerDialog( playerid, DIALOG_LOGIN2, DIALOG_STYLE_INPUT, "{FFFFFF}Parola", 	"{FFFFFF}Te rog scrie parola ta.","Login","Exit");
		}
		case DIALOG_LOGIN2:
		{
		    if ( !response ) return Kick( playerid );
		    if ( response )
		    {
			    if ( strlen( inputtext ) == 0 )
			        return ShowPlayerDialog( playerid, DIALOG_LOGIN2, DIALOG_STYLE_INPUT, "{FFFFFF}Parola", 	""COL_RED"Eroare!\n\
																												{FFFFFF}Te rog scrie parola ta.",
																												"Login", "Kick");

			    new
					PlayerFile[ 13 + MAX_PLAYER_NAME ],
					Password[ 20 + 1 ]
				;
			    format( PlayerFile , sizeof PlayerFile, "Accounts/%s.ini", Encode( pName( playerid ) ) );
		        INI_ParseFile( PlayerFile, "Parola", false, true, playerid );
		        GetPVarString( playerid, "pPass", Password, sizeof Password );

		        if ( !strcmp ( inputtext, Password, false ) )
	        	{
	        	    new
						sTitle[ 21 + MAX_PLAYER_NAME + 25 ],
						sBoxInfo[ 512 ],
						Pdata[ 8 + 15 ]
					;

					SetPVarInt( playerid, "Logged", 1 );
					format( PlayerFile , sizeof PlayerFile, "Accounts/%s.ini", Encode( pName( playerid ) ) );
	        	    INI_ParseFile( PlayerFile, "LoadUser", false, true, playerid, true, false );
	        	    GetPVarString( playerid, "Data", Pdata, 8 + 10 );
					GivePlayerMoney( playerid,GetPVarInt( playerid, "Moneys" )  );
					SetPlayerScore( playerid, GetPVarInt( playerid, "Score" )  );

	        	    format( sTitle, sizeof sTitle, "{FFFFFF}Bine ai revenit, "COL_LIGHTBLUE"%s{FFFFFF}!", pName( playerid ) );
	        	    format( sBoxInfo, sizeof sBoxInfo, "{FFFFFF}Acestea sunt statisticile tale:\n\n\
	        	                                        {FFFFFF}Bani: "COL_LIGHTBLUE"%d\n\
	        	                                        {FFFFFF}Scor: "COL_LIGHTBLUE"%d\n\
	        	                                        {FFFFFF}Inregistrat: "COL_LIGHTBLUE"%s", GetPVarInt( playerid, "Moneys" ),
																								 GetPVarInt( playerid, "Score" ),
																								 Pdata );
					ShowPlayerDialog(playerid, DIALOG_LOG_DONE, DIALOG_STYLE_MSGBOX, sTitle, sBoxInfo, "Ok", "");

	        	}
	        	else ShowPlayerDialog(playerid, DIALOG_LOGIN2, DIALOG_STYLE_INPUT, ""COL_RED"Parola Gresita", "Te rog scrie parola corecta", "Login", "Exit");


        	}
		}
	}
	return 1;
}

public OnPlayerConnect(playerid)
{
	SetPVarInt( playerid, "Logged", 0 );
	SetPVarInt( playerid, "Moneys", 0 );
	SetPVarInt( playerid, "Score", 0 );
	if ( !INI_Exist( pName( playerid ) ) )
		ShowPlayerDialog( playerid, DIALOG_REG_REQ, DIALOG_STYLE_MSGBOX, "{FFFFFF}Parola", "{FFFFFF}Pentru a te putea juca trebuie sa te inregistrezi", "Ok", "");
	else
	    ShowPlayerDialog( playerid, DIALOG_LOGIN, DIALOG_STYLE_MSGBOX, "{FFFFFF}Parola", "{FFFFFF}Numele tau este inregistrat, doresti sa te loghezi?", "Da", "Nu");
	return 1;
}

public OnPlayerDisconnect(playerid, reason)
{   SetPVarInt( playerid, "Logged", 0 );
	return 1;}


stock INI_Exist(nickname[])
{
  new tmp[255];
  format(tmp,sizeof(tmp),"Accounts/%s.ini",Encode( nickname ) );
  return fexist(tmp);
}

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

//DracoBlue
stock Encode(nickname[])
{
  new tmp[255];
  set(tmp,nickname);
  tmp=strreplace("_","_00",tmp);
  tmp=strreplace(";","_01",tmp);
  tmp=strreplace("!","_02",tmp);
  tmp=strreplace("/","_03",tmp);
  tmp=strreplace("\\","_04",tmp);
  tmp=strreplace("[","_05",tmp);
  tmp=strreplace("]","_06",tmp);
  tmp=strreplace("?","_07",tmp);
  tmp=strreplace(".","_08",tmp);
  tmp=strreplace("*","_09",tmp);
  tmp=strreplace("<","_10",tmp);
  tmp=strreplace(">","_11",tmp);
  tmp=strreplace("{","_12",tmp);
  tmp=strreplace("}","_13",tmp);
  tmp=strreplace(" ","_14",tmp);
  tmp=strreplace("\"","_15",tmp);
  tmp=strreplace(":","_16",tmp);
  tmp=strreplace("|","_17",tmp);
  tmp=strreplace("=","_18",tmp);
  return tmp;
}
stock set(dest[],source[]) {
	new count = strlen(source);
	new i=0;
	for (i=0;i<count;i++) {
		dest[i]=source[i];
	}
	dest[count]=0;
}
stock strreplace(trg[],newstr[],src[]) {
    new f=0;
    new s1[255];
    new tmp[255];
    format(s1,sizeof(s1),"%s",src);
    f = strfind(s1,trg);
    tmp[0]=0;
    while (f>=0) {
        strcat(tmp,ret_memcpy(s1, 0, f));
        strcat(tmp,newstr);
        format(s1,sizeof(s1),"%s",ret_memcpy(s1, f+strlen(trg), strlen(s1)-f));
        f = strfind(s1,trg);
    }
    strcat(tmp,s1);
    return tmp;
}
ret_memcpy(source[],index=0,numbytes) {
	new tmp[255];
	new i=0;
	tmp[0]=0;
	if (index>=strlen(source)) return tmp;
	if (numbytes+index>=strlen(source)) numbytes=strlen(source)-index;
	if (numbytes<=0) return tmp;
	for (i=index;i<numbytes+index;i++) {
		tmp[i-index]=source[i];
		if (source[i]==0) return tmp;
	}
	tmp[numbytes]=0;
	return tmp;
}
Dar imi da o eroare la fs uitati eroarea aici
C:\Documents and Settings\damaris\Desktop\Samp Server\pawno\BotServer.pwn(3) : fatal error 100: cannot read from file: "YSI/y_ini"

Compilation aborted.Pawn compiler 3.2.3664	 	 	Copyright (c) 1997-2006, ITB CompuPhase


1 Error.

Sper sa ma puteti ajuta va rog frumos.

Link to comment
Share on other sites

6 answers to this question

Recommended Posts

Am scapat de prob aia cu YSI dar aqcuma imi da prob asta :((

C:\Documents and Settings\damaris\Desktop\Samp Server\pawno\BotServer.pwn(86) : error 017: undefined symbol "sscanf"
Pawn compiler 3.2.3664	 	 	Copyright (c) 1997-2006, ITB CompuPhase


1 Error.

ma ajutatila prob asta si poate aveti si ZCMD ca nush daca imi da eroare si la ala nu vreu sa va pierdeti timpul cu mn.

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
×
×
  • 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.