Peršokti į turinį
  • ŽAIDIMAI
  • , ŽAIDIMAI
  • ŽAIDIMAI

[PAMOKA] Registracijos sistema su mini save


pauliuzas97

Ši tema yra neaktyvi. Paskutinis pranešimas šioje temoje buvo prieš 4287 dienas (-ų). Patariame sukurti naują temą, o ne rašyti naują pranešimą.

Už neaktyvių temų prikėlimą galite sulaukti įspėjimo ir pranešimo pašalinimo!

Recommended Posts

Sveiki. Taigi, radau anglų forume tut'ą, išverčiau...

Originalas: http://forum.sa-mp.com/showthread.php?t=167937

Pradedam.

Prie visų new'ų ir enum'ų prirašom :

enum pInfo
{
   pAdminLevel,
   pCash,
   pScore,
}
new PlayerInfo[MAX_PLAYERS][pInfo];
new gPlayerLogged[MAX_PLAYERS];
#define SERVER_USER_FILE "users/%s.ini"
#define COLOR_RED 0xAA3333AA
#define COLOR_YELLOW 0xFFFF00AA 

OnPlayerConnect callbacke rašom:

	gPlayerLogged[playerid] = 0;
   new name[MAX_PLAYER_NAME], file[256];
   GetPlayerName(playerid, name, sizeof(name));
   format(file, sizeof(file), SERVER_USER_FILE, name);
   if (!dini_Exists(file))
   {
       ShowPlayerDialog(playerid, 1, DIALOG_STYLE_INPUT, "Jus neuzsiregistraves", "Sveiki, jus neregistruotas prasome suvesti norima slaptazodi", "Registruotis", "Palikti");
   }
   if(fexist(file))
   {
       ShowPlayerDialog(playerid, 2, DIALOG_STYLE_INPUT, "Sveiki", "Jus registruotas, iveskite slaptazodi", "Prisijungti", "Palikti");
   }

OnPlayerDisconnect callback'e rašom :

	new name[MAX_PLAYER_NAME], file[256];
   GetPlayerName(playerid, name, sizeof(name));
   format(file, sizeof(file), SERVER_USER_FILE, name);
   if(gPlayerLogged[playerid] == 1)
   {
       dini_IntSet(file, "Score", PlayerInfo[playerid][pScore]);
       dini_IntSet(file, "Money", PlayerInfo[playerid][pCash]);
       dini_IntSet(file, "AdminLevel",PlayerInfo[playerid][pAdminLevel]);
   }
   gPlayerLogged[playerid] = 0;

OnDialogResponse callback'e rašom :

if (dialogid == 1)
   {
       new name[MAX_PLAYER_NAME], file[256], string[128];
       GetPlayerName(playerid, name, sizeof(name));
       format(file, sizeof(file), SERVER_USER_FILE, name);
       if(!response) return Kick(playerid);
       if (!strlen(inputtext)) return
	ShowPlayerDialog(playerid, 1, DIALOG_STYLE_INPUT, "Jus neuzsiregistraves", "Sveiki, jus neregistruotas prasome suvesti norima slaptazodi", "Registruotis", "Palikti");
       dini_Create(file);
       dini_IntSet(file, "Password", udb_hash(inputtext));
       dini_IntSet(file, "AdminLevel",PlayerInfo[playerid][pAdminLevel] = 0);
       dini_IntSet(file, "Money",PlayerInfo[playerid][pCash] = 500);
       dini_IntSet(file, "Score",PlayerInfo[playerid][pScore] = 0);
       format(string, 128, "Jus sekmingai uzsiregistravote %s su slaptazodziu %s, jus automatiskai prijungtas.", name, inputtext);
       SendClientMessage(playerid, COLOR_YELLOW, string);
       gPlayerLogged[playerid] = 1;
   }
if (dialogid == 2)
{
	new name[MAX_PLAYER_NAME], file[256];
 	GetPlayerName(playerid, name, sizeof(name));
 	format(file, sizeof(file), SERVER_USER_FILE, name);
  	if(!response) return Kick(playerid);
   if (!strlen(inputtext)) return ShowPlayerDialog(playerid, 2, DIALOG_STYLE_INPUT, "Sveiki", "Jus registruotas, iveskite slaptazodi", "Prisijungti", "Palikti");
   new tmp;
   tmp = dini_Int(file, "Password");
   if(udb_hash(inputtext) != tmp) {
   SendClientMessage(playerid, COLOR_RED, "Slaptazodis neteisingas.");
   ShowPlayerDialog(playerid, 2, DIALOG_STYLE_INPUT, "Sveiki", "Jus registruotas, iveskite slaptazodi", "Prisijungti", "Palikti");
   }
   else
   {
   gPlayerLogged[playerid] = 1;
   PlayerInfo[playerid][pAdminLevel] = dini_Int(file, "AdminLevel");
   SetPlayerScore(playerid, PlayerInfo[playerid][pScore]);
   GivePlayerMoney(playerid, dini_Int(file, "Money")-GetPlayerMoney(playerid));
   SendClientMessage(playerid,COLOR_RED, "Sekmingai prisijungete!");
   }
  	}

Scriptfiles folderyje susikurkite users folderį.

Pamoka baigta.

Kūriau ne aš..

new.pwn su reg sistema :

http://www31.zippyshare.com/v/62304620/file.html

Nuoroda į komentarą
Dalintis per kitą puslapį

  • Parašė po 2 mėnesių...
  • Parašė po 1 mėnesio...
  • Parašė po 3 mėnesių...
  • Parašė po 4 savaičių...

C:\Documents and Settings\..\..\..\gamemodes\...pwn(188) : error 017: undefined symbol "gPlayerLogged"
C:\Documents and Settings\..\..\..\gamemodes\...pwn(188) : warning 215: expression has no effect
C:\Documents and Settings\..\..\..\gamemodes\...pwn(188) : error 001: expected token: ";", but found "]"
C:\Documents and Settings\..\..\..\gamemodes\...pwn(188) : error 029: invalid expression, assumed zero
C:\Documents and Settings\..\..\..\gamemodes\...pwn(188) : fatal error 107: too many error messages on one line

Compilation aborted.Pawn compiler 3.2.3664	 	 	Copyright (c) 1997-2006, ITB CompuPhase


4 Errors.

-- Papildyta --

Eilutė:

    gPlayerLogged[playerid] = 0;

Nuoroda į komentarą
Dalintis per kitą puslapį

  • Parašė po 3 mėnesių...

Ši tema yra neaktyvi. Paskutinis pranešimas šioje temoje buvo prieš 4287 dienas (-ų). Patariame sukurti naują temą, o ne rašyti naują pranešimą.

Už neaktyvių temų prikėlimą galite sulaukti įspėjimo ir pranešimo pašalinimo!

Svečias
Ši tema yra užrakinta.
  • Šiame puslapyje naršo:   0 nariai

    • Nėra registruotų narių peržiūrinčių šį forumą.

Skelbimai


×
×
  • Sukurti naują...