[pawn]// Register / Login Filterscript //
#include <a_samp>
#include <dudb>
#include <dutils>
#define dcmd(%1,%2,%3) if ((strcmp((%3)[1], #%1, true, (%2)) == 0) && ((((%3)[(%2) + 1] == 0) && (dcmd_%1(playerid, \"\")))||(((%3)[(%2) + 1] == 32) && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1
//Colors//
#define COLOR_SYSTEM 0xEFEFF7AA
#define green 0x33FF33AA
#define blue 0x00FFFFAA
new PLAYERLIST_authed[MAX_PLAYERS];
#if defined FILTERSCRIPT
public OnFilterScriptInit()
{
print(\"\\n--------------------------------------\");
print(\"Register / Login System\");
print(\"--------------------------------------\\n\");
return 1;
}
public OnFilterScriptExit()
{
return 1;
}
#else
main()
{
print(\"\\n----------------------------------\");
print(\"Register / Login System\");
print(\"----------------------------------\\n\");
}
#endif
public OnPlayerRequestSpawn(playerid)
{
if (udb_Exists(PlayerName(playerid))){
if (!PLAYERLIST_authed[playerid]){
SendClientMessage(playerid,green,\"You have already registered, use /login to log into your account.\");
return 0;
}
}
return 1;
}
public OnPlayerDisconnect(playerid) {
if (PLAYERLIST_authed[playerid]) {
// If someone has logged in, it saves money and score.
dUserSetINT(PlayerName(playerid)).(\"money\",GetPlayerMoney(playerid));
dUserSetINT(PlayerName(playerid)).(\"score\",GetPlayerScore(playerid));
}
PLAYERLIST_authed[playerid]=false;
return 1;
}
public OnPlayerConnect(playerid)
{
if (PLAYERLIST_authed[playerid]==0){
if (udb_Exists(PlayerName(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 0;
}
return 1;
}
public OnPlayerCommandText(playerid, cmdtext[])
{
dcmd(login,5,cmdtext);
dcmd(register,8,cmdtext);
return 0;
}
stock SystemMsg(playerid,msg[]) {
if ((IsPlayerConnected(playerid))&&(strlen(msg)>0)) {
SendClientMessage(playerid,COLOR_SYSTEM,msg);
}
return 1;
}
stock PlayerName(playerid) {
new name[255];
GetPlayerName(playerid, name, 255);
return name;
}
dcmd_register(playerid,params[]) {
if (PLAYERLIST_authed[playerid]) return SystemMsg(playerid,\"You have already had an account.\");
if (udb_Exists(PlayerName(playerid))) return SystemMsg(playerid,\"You have already created an account, /login [password] to login.\");
if (strlen(params)==0) return SystemMsg(playerid,\"USAGE: /register [password]\");
if (udb_Create(PlayerName(playerid),params)) return SystemMsg(playerid,\"You have successfully created your account, now use /login [password] to login.\");
return true;
}
dcmd_login(playerid,params[]) {
if (PLAYERLIST_authed[playerid]) return SystemMsg(playerid,\"You have already logined.\");
if (!udb_Exists(PlayerName(playerid))) return SystemMsg(playerid,\"You do not have an account, please /register [password]\");
if (strlen(params)==0) return SystemMsg(playerid,\"USAGE: /login [password]\");
if (udb_CheckLogin(PlayerName(playerid),params)) {
SetPlayerScore(playerid,dUserINT(PlayerName(playerid)).(\"score\"));
SetPlayerMoney(playerid,dUserINT(PlayerName(playerid)).(\"money\"));
PLAYERLIST_authed[playerid]=true;
return SystemMsg(playerid,\"You have successfully logined.\");
}
return SystemMsg(playerid,\"Wrong password or nickname!\");
}[/pawn]
Tessék remélem segítettem vele