Sziasztok!
Arra gondoltam, hogy csinálok egy Leírást arról, hogy hogyan lehet
Regisztrációs rendszert készíteni.
Elég egyszerû lesz.
1. Nyissuk meg a Pawno-t.
2. Csináljunk egy új munkalapot, töröljük ki az egészet.
3. Írjuk ezeket be:
[pawn] #include <a_samp>
#include <dini>
#inlude <dubd>[/pawn]
4. Csinálunk egy ilyen részt:
[pawn]new IsLogged[MAX_PLAYERS];
enum pInfo
{
}
new PlayerInfo[MAX_PLAYERS][pInfo];
enum pInfo
{
AdminLevel,
Cash,
}
new PlayerInfo[MAX_PLAYERS][pInfo];
new cmd[256], idx, file[128], tmp[256], tmp2[256];
cmd = strtok(cmdtext, idx);[/pawn]
5. Csináljunk egy OnPlayerCommandText részt.
[pawn]public OnPlayerCommandText (playerid, cmdtext[])[/pawn]
6. Elõszõr is a Regisztrációs parancsot csináljuk meg.
[pawn]if(strcmp(cmd, \"/register\", true) == 0)
{
new name[MAX_PLAYER_NAME];
tmp = strtok(cmdtext, idx);
GetPlayerName(playerid, name, sizeof(name));
if(strlen(tmp) == 0) return SendClientMessage(playerid, 0xFFFFFFFF, \"Használat: /register [jelszó]\");
format(file,sizeof(file),\"%s.ini\",name);
if(!fexist(file))
{
dini_Create(file);
dini_IntSet(file, \"Password\", udb_hash(tmp));
dini_IntSet(file,\"AdminLevel\", 0);
dini_IntSet(file,\"Cash\", 0);
SendClientMessage(playerid, eadmin, \"[Rendszer]: Felhasználó regisztrálva!\");
PlayerPlaySound(playerid,1057,0.0,0.0,0.0);
GetPlayerName(playerid, name, sizeof(name));
printf(\"%s has registered a account!\", name);
}
else
{
SendClientMessage(playerid, COLOR, \" Felhasználó már bent van az adatbázisban\");
PlayerPlaySound(playerid,1057,0.0,0.0,0.0);
}
return 1;
}
return 0;
}[/pawn]
7. A következõ pedig a /login parancs lesz.
[pawn]if(strcmp(cmd, \"/login\", true) == 0)
{
new PlayerName[24];
tmp = strtok(cmdtext, idx);
if(strlen(tmp) == 0) return SendClientMessage(playerid, 0xFFFFFFFF, \"Használat: /login [jelszó]\");
new name[MAX_PLAYER_NAME];
if(IsLogged[playerid] == 1)
{
SendClientMessage(playerid, COLOR, \"Te sikeresen bejelentkeztél!\");
return 1;
}
else
{
GetPlayerName(playerid, name, sizeof(name));
format(file,sizeof(file),\"%s.ini\",name);
if(fexist(file))
{
tmp2 = dini_Get(file, \"Password\");
if(udb_hash(tmp) != strval(tmp2))
{
SendClientMessage(playerid, COLOR, \"Bejelentkezési hiba!\");
GetPlayerName(playerid, PlayerName, sizeof(PlayerName));
printf(\"%s bejelentkezett a rendszerbe\", name);
}
else
{
IsLogged[playerid] = 1;
SetPlayerMoney(playerid, dini_Int(file, \"Cash\"));
PlayerInfo[playerid][AdminLevel] = dini_Int(file, \"AdminLevel\");
SendClientMessage(playerid, COLOR, \"[Rendszer] Már be vagy jelentkezve!\");
}
}
}
return 1;
}[/pawn]
8. Csináljunk egy Disconnect részt
[pawn]public OnPlayerDisconnect (playerid, reason)[/pawn]
9. Ilesszük be ezt alá:
[pawn]IsLogged[playerid] = 0; [/pawn]
Természetesen zárjuk is le.
10. Legesleg utolsó kód:
[pawn]if(gLogged[playerid] == 0)
{
SendClientMessage(playerid, COLOR, \"[Rendszer]Jelentkezz be.\");
Kick(playerid);
return 1;
}[/pawn]
És már kész is a Regisztrációs rendszerünk.
Sziasztok!
Dupla hozzászólás automatikusan összefûzve. ( 2011. szeptember 11. - 09:45:46 )
Remélem mindenkinek tetszik és hibátlan.! Dobj egy likeot.!