Que parte eu mudo para ao invйs de salvar a conta.txt no scriptfiles salve em scriptfiles/contas
pawn Код:
// Sitema de Login criado por Matheus_Mendes ////Baixado na Tech Samp - http://www.techsamp.blogspot.com.br//#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//**MISC**//#define ACCOUNTS_FOLDER "%s.ini"#define LOGIN_DELAY 3 ////Variaveis Nao retire//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
(){ SendRconCommand
("reloadfs Seifistration");
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
), ACCOUNTS_FOLDER, name
);
if (AccountInfo
[playerid
][aLogged
] == 0) { if (!fexist(string
)) { new kayitmsg
[256];
format(kayitmsg,
256,
"Seja Bem Vindo\n\n%s Por favor, se registre!\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,
"Seja Bem Vindo\n\nNick: %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
), ACCOUNTS_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 login. -|");
new girismsg
[256];
format(girismsg,
256,
"Seja Bem Vindo\n\nNick: %s\n\nSenha:",playername3
);
ShowPlayerDialog
(playerid,
12346,DIALOG_STYLE_INPUT,
"Login",girismsg,
"Login",
"Quit");
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,
"Seja Bem Vindo\n\n%s Por favor, se registre!\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
];
GetPlayerName
(playerid, playername2,
sizeof(playername2
));
format(string2,
sizeof(string2
), ACCOUNTS_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) // 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];
printf("%s esta usando senha errada.",playername2
);
format(girismsg,
256,
"SENHA ERRADA\n\nSenha:");
ShowPlayerDialog
(playerid,
12347,DIALOG_STYLE_INPUT,
"Login",girismsg,
"Login",
"Quit");
login
[playerid
] = 1;
registro
[playerid
] = 0;
fclose(UserFile
);
return 1;
} } if(!strlen(inputtext
)) { new girismsg
[256];
printf("%s nao esta entrando com senha.",playername2
);
format(girismsg,
256,
"SENHA ERRADA\n\nSenha:");
ShowPlayerDialog
(playerid,
12347,DIALOG_STYLE_INPUT,
"Login",girismsg,
"Login",
"Quit");
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
), ACCOUNTS_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];
printf("%s esta errando a senha.",playername2
);
format(girismsg,
256,
"SENHA ERRADA\n\nSenha:");
ShowPlayerDialog
(playerid,
12347,DIALOG_STYLE_INPUT,
"Login",girismsg,
"Login",
"Quit");
login
[playerid
] = 1;
registro
[playerid
] = 0;
fclose(UserFile
);
return 1;
} } if(!strlen(inputtext
)) { new girismsg
[256];
printf("%s did not enter the Senha.",playername2
);
format(girismsg,
256,
"SENHA ERRADA\n\nSenha:");
ShowPlayerDialog
(playerid,
12347,DIALOG_STYLE_INPUT,
"Login",girismsg,
"Login",
"Quit");
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
), ACCOUNTS_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;
} }}
AFS MANO NA MORAL VAI SE FERRAR AGAMASTER PARA DE PEDIR AJUDA CARA USA A WIKI QUE SACO :@
Desculpa, й porque eu pensei que todos os FS que salvavam arquivos tinham essa linha: