Sziasztok. Lenne egy admin rendszerem, amibe akarok egy regisztrációs rendszert csinálni.. Próbáltam már mindenhogy, fórumról néztem, stb, de nem megy. Tudnátok nekem bele írni egy kis regisztrációs rendszert? Köszönöm!!!!!
#include <a_samp>
#include <dini>
#include <sscanf2>
#include <zcmd>
#define MAX_LEVEL 5
#define COLOR_GREY 0xAFAFAFAA
#define COLOR_ORANGE 0xFF9933AA
enum pdata //az adattároló neve
{
Level,// A szint értéke
Death,//A halálok száma
MONEY,//A pénz értéke
Score //A pont értéke
}
new PlayerInfo[MAX_PLAYERS][pdata];
public OnFilterScriptInit()
{
return 1;
}
public OnFilterScriptExit()
{
return 1;
}
public OnPlayerConnect(playerid)
{
new string[128],name[MAX_PLAYER_NAME];
GetPlayerName(playerid,name,sizeof(name));
format(string,sizeof(string),\"nAdmin/%s.ini\",name);
if(dini_Exists(string))
{
PlayerInfo[playerid][Level] = dini_Int(string,\"Level\");
PlayerInfo[playerid][Death] = dini_Int(string,\"Halalok\");
GivePlayerMoney(playerid,dini_Int(string,\"Penz\"));
SetPlayerScore(playerid,dini_Int(string,\"Pont\"));
}
else
{
dini_Create(string);
}
return 1;
}
public OnPlayerDisconnect(playerid, reason)
{
new string[128],name[MAX_PLAYER_NAME];
GetPlayerName(playerid,name,sizeof(name));
format(string,sizeof(string),\"nAdmin/%s.ini\",name);
if(dini_Exists(string))
{
dini_IntSet(string,\"Szint\",PlayerInfo[playerid][Level]);
dini_IntSet(string,\"Halalok\",PlayerInfo[playerid][Death]);
dini_IntSet(string,\"Penz\",GetPlayerMoney(playerid));
dini_IntSet(string,\"Pont\",GetPlayerScore(playerid));
}
return 1;
}
public OnPlayerDeath(playerid, killerid, reason)
{
PlayerInfo[playerid][Death]++; //növeltük az értéket 1-el.
return 1;
}
CMD:setlevel(playerid,params[])
{
new playerid2,level;
if(sscanf(params,\"id\",playerid2,level)) return SendClientMessage(playerid,-1,\"HASZNÁLAT: /setlevel [játékosid] [szint 0-5]\");
if(playerid2 == INVALID_PLAYER_ID)return SendClientMessage(playerid,-1,\"Rossz játékos ID\");
if(level < 0 || level > 5)return SendClientMessage(playerid,-1,\"HASZNÁLAT: /setlevel [játékosid] [szint 0-5]\");
if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid,-1,\"{AFAFAF}A parancs használatához {FF9933}rCon {AFAFAF}adminnak kell lenned.\");
PlayerInfo[playerid2][Level] = level;
SendClientMessage(playerid,-1,\"{AFAFAF}Sikeresen átállítottad az {FF9933}admin {FF9933}szintjét!\");
SendClientMessage(playerid2,-1,\"{AFAFAF}Sikeresen át lett állítva az {FF9933}admin {AFAFAF}szinted!\");
return 1;
}
#include <a_samp>
#include <dini>
#include <sscanf2>
#include <zcmd>
#define MAX_LEVEL 5
#define COLOR_GREY 0xAFAFAFAA
#define COLOR_ORANGE 0xFF9933AA
new File[128];
new PW[64];
new WPW[MAX_PLAYERS];
main();
enum pdata //az adattároló neve
{
Level,// A szint értéke
Death,//A halálok száma
MONEY,//A pénz értéke
Score //A pont értéke
}
new PlayerInfo[MAX_PLAYERS][pdata];
public OnFilterScriptInit()
{
return 1;
}
public OnFilterScriptExit()
{
return 1;
}
public OnPlayerConnect(playerid)
{
format(File, sizeof(File), \"User/%s.ini\", Nev(playerid));
if(!fexist(File))
{
ShowPlayerDialog(playerid, 1, DIALOG_STYLE_INPUT, \"Regisztráció\", \"Írj be egy tetszőleges jelszót!\", \"Oké\", \"Mégse\");
}
else
{
ShowPlayerDialog(playerid, 2, DIALOG_STYLE_INPUT, \"Belépés\", \"Írd be a jelszavad!\", \"Rendben\", \"Mégse\");
}
return 1;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid == 1)
{
if(!response) Kick(playerid);
if(strlen(inputtext) == 0)
{
ShowPlayerDialog(playerid, 1, DIALOG_STYLE_INPUT, \"Regisztráció\", \"Írj be egy tetszoleges jelszót!\", \"Rendben\", \"Mégsem\");
return 0;
}
format(File, sizeof(File), \"User/%s.ini\", Nev(playerid));
if(!fexist(File))
{
dini_Create(File);
dini_Set(File, \"Pasword\", inputtext);
PlayerInfo[playerid][Level] = dini_Int(File,\"Level\");
PlayerInfo[playerid][Death] = dini_Int(File,\"Halalok\");
GivePlayerMoney(playerid,dini_Int(File,\"Penz\"));
SetPlayerScore(playerid,dini_Int(File,\"Pont\"));
ShowPlayerDialog(playerid, 2, DIALOG_STYLE_INPUT, \"Belépés\", \"Írd be a jelszavad.\", \"Rendben\", \"Mégsem\");
}
}
if(dialogid == 2)
{
format(File, sizeof(File), \"User/%s.ini\", Nev(playerid));
if(!response)
{
Kick(playerid);
}
format(PW, 64, \"%s\", dini_Get(File, \"Pasword\"));
if(!strcmp(inputtext, PW, false))
{
SendClientMessage(playerid, -1, \"Sikeres belépés! Nyomj a \'SPAWN\' gombra!\");
}
else
{
WPW[playerid] ++;
SendClientMessage(playerid, -1, \"Rossz jelszó!\");
if(WPW[playerid] == 3)
{
Kick(playerid);
}
ShowPlayerDialog(playerid, 2, DIALOG_STYLE_INPUT, \"Belépés\", \"Írd be a jelszavad\", \"Oké\", \"Mégse\");
}
}
return 1;
}
public OnPlayerDisconnect(playerid, reason)
{
new string[128],name[MAX_PLAYER_NAME];
GetPlayerName(playerid,name,sizeof(name));
format(string,sizeof(string),\"User/%s.ini\",name);
if(dini_Exists(string))
{
dini_IntSet(string,\"Szint\",PlayerInfo[playerid][Level]);
dini_IntSet(string,\"Halalok\",PlayerInfo[playerid][Death]);
dini_IntSet(string,\"Penz\",GetPlayerMoney(playerid));
dini_IntSet(string,\"Pont\",GetPlayerScore(playerid));
}
return 1;
}
public OnPlayerDeath(playerid, killerid, reason)
{
PlayerInfo[playerid][Death]++; //növeltük az értéket 1-el.
return 1;
}
CMD:setlevel(playerid,params[])
{
new playerid2,level;
if(sscanf(params,\"id\",playerid2,level)) return SendClientMessage(playerid,-1,\"HASZNÁLAT: /setlevel [játékosid] [szint 0-5]\");
if(playerid2 == INVALID_PLAYER_ID)return SendClientMessage(playerid,-1,\"Rossz játékos ID\");
if(level < 0 || level > 5)return SendClientMessage(playerid,-1,\"HASZNÁLAT: /setlevel [játékosid] [szint 0-5]\");
if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid,-1,\"{AFAFAF}A parancs használatához {FF9933}rCon {AFAFAF}adminnak kell lenned.\");
PlayerInfo[playerid2][Level] = level;
SendClientMessage(playerid,-1,\"{AFAFAF}Sikeresen átállítottad az {FF9933}admin {FF9933}szintjét!\");
SendClientMessage(playerid2,-1,\"{AFAFAF}Sikeresen át lett állítva az {FF9933}admin {AFAFAF}szinted!\");
return 1;
}
stock Nev(playerid)
{
new Neve[MAX_PLAYER_NAME];
GetPlayerName(playerid, Neve, sizeof(Neve));
return Neve;
}
Teszteltem, nálam jó volt, és mindent mentett. Remélem tetszik! :)