18.10.2010, 09:04
Alguem poderia me explicar como eu fasso para as contas criadas nesse login box que estarei posta abaixo como fasso para elas serem salvas dentro de umas pasta ex: scriptfiles - contas
Por que as contas estao sendo salvas no scriptfiles aguardando respostas... grato desde jб!
Por que as contas estao sendo salvas no scriptfiles aguardando respostas... grato desde jб!

pawn Код:
#include <a_samp>
#define GREEN 0x21DD00FF
#define RED 0xE60000FF
#define ADMIN_RED 0xFB0000FF
#define YELLOW 0xFFFF00FF
#define ORANGE 0xF97804FF
#define LIGHTRED 0xFF8080FF
#define LIGHTBLUE 0x00C2ECFF
#define PURPLE 0xB360FDFF
#define PLAYER_COLOR 0xFFFFFFFF
#define BLUE 0x1229FAFF
#define LIGHTGREEN 0x38FF06FF
#define DARKPINK 0xE100E1FF
#define DARKGREEN 0x008040FF
#define ANNOUNCEMENT 0x6AF7E1FF
#define COLOR_SYSTEM 0xEFEFF7AA
#define GREY 0xCECECEFF
#define PINK 0xD52DFFFF
#define DARKGREY 0x626262FF
#define AQUAGREEN 0x03D687FF
#define NICESKY 0x99FFFFAA
#define WHITE 0xFFFFFFFF
#define CONTAS_FOLDER "%s.ini"
#define LOGIN_DELAY 3 //
enum aInfo
{
aSenha[128],
aLogged,
}
;
new AccountInfo[MAX_PLAYERS][aInfo];
new registro[MAX_PLAYERS];
new login[MAX_PLAYERS];
forward LogIn(playerid);
forward OnPlayerUpdate(playerid);
public OnGameModeInit()
{
return 1;
}
public OnPlayerRequestSpawn(playerid)
{
return 1;
}
public OnPlayerDisconnect(playerid, reason)
{
OnPlayerUpdate(playerid);
AccountInfo[playerid][aLogged] = 0;
registro[playerid] = 0;
login[playerid] = 0;
return 1;
}
public OnPlayerConnect(playerid)
{
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid, name, sizeof(name));
new string[128];
format(string, sizeof(string), CONTAS_FOLDER, name);
if (AccountInfo[playerid][aLogged] == 0)
{
if (!fexist(string))
{
new kayitmsg[256];
format(kayitmsg,256,"Bem Vindo ao Server\n\n%s Por favor, abra uma nova conta\n\nSenha:",name);
ShowPlayerDialog(playerid,12345,DIALOG_STYLE_INPUT,"Registrar",kayitmsg,"Registrar","Sair");
registro[playerid] = 1;
login[playerid] = 0;
}
else if (fexist(string))
{
new girismsg[256];
format(girismsg,256,"Bem Vindo ao Servidor Arty Drift Racing\n\nNome: %s\n\nSenha:",name);
ShowPlayerDialog(playerid,12346,DIALOG_STYLE_INPUT,"Logar",girismsg,"Logar","Sair");
registro[playerid] = 0;
login[playerid] = 1;
}
}
return 1;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if (response == 1)
{
if(dialogid == 12345)
{
if(strlen(inputtext))
{
Encrypt(inputtext);
new player[MAX_PLAYER_NAME];
GetPlayerName(playerid, player, 50);
new string3[32];
new playername3[MAX_PLAYER_NAME];
GetPlayerName(playerid, playername3, sizeof(playername3));
format(string3, sizeof(string3), CONTAS_FOLDER, playername3);
new ip[20];
GetPlayerIp(playerid,ip,sizeof(ip));
new File: hFile = fopen(string3, io_write);
if (hFile)
{
strmid(AccountInfo[playerid][aSenha], inputtext, 0, strlen(inputtext), 255);
new var[128];
format(var, 128, "Senha=%s\n", AccountInfo[playerid][aSenha]);fwrite(hFile, var);
format(var, 128, "IP=%s\n",ip);fwrite(hFile, var);
fclose(hFile);
printf("%s is signed up.",playername3);
SendClientMessage(playerid, GREEN, "|- Voce jб esta registrado,faзa o login. -|");
new girismsg[256];
format(girismsg,256,"Bem Vindo ao Server\n\nNick: %s\n\nSenha:",playername3);
ShowPlayerDialog(playerid,12346,DIALOG_STYLE_INPUT,"Logar",girismsg,"Logar","Sair");
registro[playerid] = 0;
login[playerid] = 1;
}
}
else if(!strlen(inputtext))
{
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid, name, sizeof(name));
new kayitmsg[256];
format(kayitmsg,256,"Bem Vindo a Arty Drift Racing\n\n%s Por favor, abra uma nova conta\n\nSenha:",name);
ShowPlayerDialog(playerid,12345,DIALOG_STYLE_INPUT,"Registrar",kayitmsg,"Registrar","Sair");
registro[playerid] = 1;
login[playerid] = 0;
}
}
if(dialogid == 12346)
{
Encrypt(inputtext);
new string2[128];
new playername2[MAX_PLAYER_NAME];
SetPlayerHealth(playerid, 100);
GetPlayerName(playerid, playername2, sizeof(playername2));
format(string2, sizeof(string2), CONTAS_FOLDER, playername2);
new File: UserFile = fopen(string2, io_read);
if ( UserFile )
{
new PassData[256];
new keytmp[256], valtmp[256];
fread( UserFile , PassData , sizeof( PassData ) );
keytmp = ini_GetKey( PassData );
if( strcmp( keytmp , "Senha" , true ) == 0 )
{
valtmp = ini_GetValue( PassData );
strmid(AccountInfo[playerid][aSenha], valtmp, 0, strlen(valtmp)-1, 255);
}
if(strcmp(AccountInfo[playerid][aSenha],inputtext, true ) == 0)
{
if(strlen(inputtext))
{
for(new p = 0; p < strlen(AccountInfo[playerid][aSenha]); p++)
{
inputtext[p] = '?';
}
SetTimerEx("LogIn", LOGIN_DELAY*1000, 0, "d", playerid);
new key[256];
new Data[256];
while ( fread( UserFile , Data , sizeof( Data ) ) )
{
key = ini_GetKey( Data );
/*if(strcmp(key, "AdminLevel", true) == 0) // This is only an example if you want to add more stuff to store in a file.
{
val = ini_GetValue( Data );
AccountInfo[playerid][AdminLevel] = strval(val); // Uncommenting this will give you errors if the variable isn't defined.
}
*/
}
fclose(UserFile);
}
}
else
{
if(strlen(inputtext))
{
new girismsg[256];
format(girismsg,256,"SENHA ERRADA\n\nSenha:");
ShowPlayerDialog(playerid,12347,DIALOG_STYLE_INPUT,"Logar",girismsg,"Logar","Sair");
login[playerid] = 1;
registro[playerid] = 0;
fclose(UserFile);
return 1;
}
}
if(!strlen(inputtext))
{
new girismsg[256];
format(girismsg,256,"SENHA ERRADA\n\nSenha:");
ShowPlayerDialog(playerid,12347,DIALOG_STYLE_INPUT,"Logar",girismsg,"Logar","Sair");
login[playerid] = 1;
registro[playerid] = 0;
fclose(UserFile);
return 1;
}
}
}
if(dialogid == 12347)
{
Encrypt(inputtext);
new string2[128];
new playername2[MAX_PLAYER_NAME];
GetPlayerName(playerid, playername2, sizeof(playername2));
format(string2, sizeof(string2), CONTAS_FOLDER, playername2);
new File: UserFile = fopen(string2, io_read);
if ( UserFile )
{
new PassData[256];
new keytmp[256], valtmp[256];
fread( UserFile , PassData , sizeof( PassData ) );
keytmp = ini_GetKey( PassData );
if( strcmp( keytmp , "Senha" , true ) == 0 )
{
valtmp = ini_GetValue( PassData );
strmid(AccountInfo[playerid][aSenha], valtmp, 0, strlen(valtmp)-1, 255);
}
if(strcmp(AccountInfo[playerid][aSenha],inputtext, true ) == 0)
{
if(strlen(inputtext))
{
for(new p = 0; p < strlen(AccountInfo[playerid][aSenha]); p++)
{
inputtext[p] = '?';
}
SetTimerEx("LogIn", LOGIN_DELAY*1000, 0, "d", playerid);
printf("%s esta logando.",playername2);
new key[256];
new Data[256];
while ( fread( UserFile , Data , sizeof( Data ) ) )
{
key = ini_GetKey( Data );
/*if(strcmp(key, "AdminLevel", true) == 0) // Este й apenas um exemplo, se vocк quiser acrescentar mais coisas para guardar em um arquivo.
{
val = ini_GetValue( Data );
AccountInfo[playerid][AdminLevel] = strval(val); // Descomentando isso vai lhe dar erros se a variбvel nгo estб definida.
}
*/
}
fclose(UserFile);
}
}
else
{
if(strlen(inputtext))
{
new girismsg[256];
format(girismsg,256,"SENHA ERRADA\n\nSenha:");
ShowPlayerDialog(playerid,12347,DIALOG_STYLE_INPUT,"Logar",girismsg,"Logar","Sair");
login[playerid] = 1;
registro[playerid] = 0;
fclose(UserFile);
return 1;
}
}
if(!strlen(inputtext))
{
new girismsg[256];
format(girismsg,256,"SENHA ERRADA\n\nSenha:");
ShowPlayerDialog(playerid,12347,DIALOG_STYLE_INPUT,"Logar",girismsg,"Logar","Sair");
login[playerid] = 1;
registro[playerid] = 0;
fclose(UserFile);
return 1;
}
}
}
}
else return Kick(playerid);
return 0;
}
public OnPlayerDeath(playerid, killerid, reason)
{
return 1;
}
public OnVehicleSpawn(vehicleid)
{
return 1;
}
public OnVehicleDeath(vehicleid, killerid)
{
return 1;
}
public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
return 1;
}
public OnPlayerExitVehicle(playerid, vehicleid)
{
return 1;
}
public OnPlayerStateChange(playerid, newstate, oldstate)
{
return 1;
}
public OnPlayerEnterCheckpoint(playerid)
{
return 1;
}
public OnPlayerLeaveCheckpoint(playerid)
{
return 1;
}
public OnPlayerEnterRaceCheckpoint(playerid)
{
return 1;
}
public OnPlayerLeaveRaceCheckpoint(playerid)
{
return 1;
}
public OnRconCommand(cmd[])
{
return 1;
}
public OnObjectMoved(objectid)
{
return 1;
}
public OnPlayerObjectMoved(playerid, objectid)
{
return 1;
}
public OnPlayerPickUpPickup(playerid, pickupid)
{
return 1;
}
public OnPlayerSelectedMenuRow(playerid, row)
{
return 1;
}
public OnPlayerExitedMenu(playerid)
{
return 1;
}
stock ini_GetKey( line[] )
{
new keyRes[256];
keyRes[0] = 0;
if ( strfind( line , "=" , true ) == -1 ) return keyRes;
strmid( keyRes , line , 0 , strfind( line , "=" , true ) , sizeof( keyRes) );
return keyRes;
}
stock ini_GetValue( line[] )
{
new valRes[256];
valRes[0]=0;
if ( strfind( line , "=" , true ) == -1 ) return valRes;
strmid( valRes , line , strfind( line , "=" , true )+1 , strlen( line ) , sizeof( valRes ) );
return valRes;
}
public LogIn(playerid)
{
AccountInfo[playerid][aLogged] = 1;
registro[playerid] = 0;
login[playerid] = 0;
return 1;
}
public OnPlayerUpdate(playerid)
{
if(IsPlayerConnected(playerid))
{
if(AccountInfo[playerid][aLogged] == 1)
{
new string3[128];
new playername3[MAX_PLAYER_NAME];
GetPlayerName(playerid, playername3, sizeof(playername3));
format(string3, sizeof(string3), CONTAS_FOLDER, playername3);
new ip[20];
GetPlayerIp(playerid,ip,sizeof(ip));
new File: hFile = fopen(string3, io_write);
if (hFile)
{
new var[128];
format(var, 128, "Senha=%s\n", AccountInfo[playerid][aSenha]);fwrite(hFile, var);
format(var, 128, "IP=%s\n",ip);fwrite(hFile, var);
fclose(hFile);
}
}
}
return 1;
}
Encrypt(string[])
{
for(new x=0; x < strlen(string); x++)
{
string[x] += (3^x) * (x % 15);
if(string[x] > (0xff))
{
string[x] -= 256;
}
}
}