Szerző Téma: Dinivel történő jelszómentés  (Megtekintve 1014 alkalommal)

Nem elérhető Blez

  • 202
    • Profil megtekintése
Dinivel történő jelszómentés
« Dátum: 2015. Március 04. - 20:49:42 »
0 Show voters
Sziasztok. Valaki tudna egy példát adni, a dinivel történő jelszómentés használatáról ? Egy egyszerű \"felhasználókezelő\" rendszert csinálok, aka. login/register rendszert mely menti a scoret, pénzt, ölést/halált stb... Sem a hivatalos fórumon, sem pedig itt nem találok normális leírást, amelyen el tudnék igazodni. Bár lényegében a Booy által írt példa hasznomra vált, mégsem értem pontosan, hogy hogyan is menti a dialogba beírt jelszót a fájlba.
Valamint még abban kérnék segítséget, hogyan kellene megoldani, hogy számolja a játszott időt (órában, percben, másodpercben).
Edit: Egyébként melyiket érdemes használni ? Dinit vagy Y_INI -t ?
« Utoljára szerkesztve: 2015. Március 04. - 20:57:17 írta RusH. »

Nem elérhető MotI

  • 185
    • Profil megtekintése
Dinivel történő jelszómentés
« Válasz #1 Dátum: 2015. Március 04. - 21:01:37 »
+1 Show voters
Dinit érdemesebb min y_ini-t mivel az y_ini elavult.
Pár link ami segítségedre lehet!
Dini használata!
http://sampforum.hu/index.php?topic=24964.0
Regisztrációs rendszer
http://sampforum.hu/index.php?topic=26350.0

Dinivel történő jelszómentés
« Válasz #2 Dátum: 2015. Március 04. - 23:03:26 »
+1 Show voters
A regisztráció rendszerről annyit hogy mysqllal barátkozz, hidd el jobb.
Játszott idő..
Kell egy 1 Másodperces Timer ami másodpercenként ha belépett akor egy változóhoz mindig hozzá ad egyet.
És ha az eléri a 60 akkor hozzá ad egyet a 2. Változóhoz és ha az is 60 akkor hozzá ad 1 et az órához
 

Masodperc[playerid]++
If(Masodperc[playerid] => 60)
{
Masodperc[playerid]  = 0;
Perc[playerid]++;
If(Perc[playerid] => 60)
{
Perc[playerid] = 0;
Ora[playerid]++;
}
}

 
Ez szerintem jó csak telefonról vagyok abba meg nincs tab gomb...
« Utoljára szerkesztve: 2015. Március 05. - 16:53:10 írta ƒlaﻛh »

Dinivel történő jelszómentés
« Válasz #3 Dátum: 2015. Március 05. - 06:51:32 »
+1 Show voters
y_ini elavult? barátom, a dini a y_ini nagyapja lehetne..
mysql nem fontos, ha nem akarsz hozzá külön szervert futtatni, és webes felületet írni, akkor elég egy SII, vagy ha SQL akkor SQLite.. nem kell hozzá se plugin, se szerver, és ugyan azt tudja, ráadásul egy adatbázisba ment mindent

Nem elérhető Blez

  • 202
    • Profil megtekintése
Dinivel történő jelszómentés
« Válasz #4 Dátum: 2015. Március 05. - 15:50:32 »
0 Show voters
Srácok...  :D Én csak egy laza házi szerverben gondolkodok, ahol 10-15 haverral elszórakoznánk időnként, viszont mindent saját magam szeretnék megírni. Szerintem semmi szükség MySQL -re és hasonlóakra...  :D

Dinivel történő jelszómentés
« Válasz #5 Dátum: 2015. Március 05. - 16:50:31 »
+1 Show voters
mysql nem, de én ajánlom az SQLite-t.. sokkal egyszerűbb, mint dinivel kezelni az esetleg többszáz fájlt
ha sima házi szerver, akkor jelszótitkosírás sem szükséges..
sima script mentős cucc pedig dinivel pár sor..
simán elmented, mint egy szöveget, belépésnél pedig ellenőrzöd, hogy azt adta-e meg.. :D
strcmp, és strlen.. annyi.
« Utoljára szerkesztve: 2015. Március 05. - 16:53:20 írta TengeriMalac »

Nem elérhető Blez

  • 202
    • Profil megtekintése
Dinivel történő jelszómentés
« Válasz #6 Dátum: 2015. Március 05. - 20:00:41 »
0 Show voters
De tudnál írni rá egy példát ? Mert erre még konkrétan normális választ nem kaptam, csak a MySQL -ről és társairól beszéltünk.

Dinivel történő jelszómentés
« Válasz #7 Dátum: 2015. Március 05. - 20:53:37 »
+1 Show voters
#include <a_samp>
#include <zcmd>
#include <dini>
enum pInfo {
Kills,
Deaths
}
new PlayerInfo[MAX_PLAYERS][pInfo];
public OnPlayerConnect(playerid) {
new file[100];
format(file, sizeof(file), \"Accounts/%s.ini\", PlayerName(playerid));
if(fexist(file)) {
    ShowPlayerDialog(playerid, 0, DIALOG_STYLE_INPUT, \"Login Dialog\", \"Írd be a jelszavad\", \"Login\", \"\");
} else if(!fexist(file)) {
    ShowPlayerDialog(playerid, 1, DIALOG_STYLE_INPUT, \"Register Dialog\", \"Írj be egy jelszót\", \"Register\", \"\");
}
return 1;
}
public OnPlayerDisconnect(playerid, reason) {
    new file[100];
format(file, sizeof(file), \"Accounts/%s.ini\", PlayerName(playerid));
dini_IntSet(file, \"Kills\", PlayerInfo[playerid][Kills]);
dini_IntSet(file, \"Deaths\", PlayerInfo[playerid][Deaths]);
dini_IntSet(file, \"Score\", GetPlayerScore(playerid));
dini_IntSet(file, \"Money\", GetPlayerMoney(playerid));
return 1;
}
public OnPlayerDeath(playerid, killerid, reason) {
PlayerInfo[playerid][Deaths]++;
PlayerInfo[killerid][Kills]++;
return 1;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) {
new file[100];
format(file, sizeof(file), \"Accounts/%s.ini\", PlayerName(playerid));
if(dialogid == 0) {
    if(!response) return ShowPlayerDialog(playerid, 0, DIALOG_STYLE_INPUT, \"Login Dialog\", \"Írd be a jelszavad\", \"Login\", \"\");
    if(!strlen(inputtext) || (strcmp(inputtext, dini_Get(file, \"Password\"), false) != 0)) {
   SendClientMessage(playerid, -1, \"Rossz jelszó\");
   return ShowPlayerDialog(playerid, 0, DIALOG_STYLE_INPUT, \"Login Dialog\", \"Írd be a jelszavad\", \"Login\", \"\");
}
PlayerInfo[playerid][Kills] = dini_Int(file, \"Kills\");
PlayerInfo[playerid][Deaths] = dini_Int(file, \"Deaths\");
SetPlayerScore(playerid, dini_Int(file, \"Score\"));
ResetPlayerMoney(playerid);
GivePlayerMoney(playerid, dini_Int(file, \"Money\"));
return 1;
}
if(dialogid == 1) {
    if(!response) return ShowPlayerDialog(playerid, 1, DIALOG_STYLE_INPUT, \"Register Dialog\", \"Írj be egy jelszót\", \"Register\", \"\");
    if(!strlen(inputtext)) return ShowPlayerDialog(playerid, 1, DIALOG_STYLE_INPUT, \"Register Dialog\", \"Írj be egy jelszót\", \"Register\", \"\");
dini_Create(file);
dini_Set(file, \"Password\", inputtext);
    return 1;
}
return 0;
}
stock PlayerName(playerid) {
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid, name, sizeof(name));
return name;
}

 
tesztektem, de egyedül nehéz a killeket vagy a halálokat változtatni, úgyhogy azt tesztelni kell..
de a jelszót meg a pénzt menti, és betölti.. :DD
a szövegeket írd át ahogy akarod.. meg persze bővítsd, de kezdésnek ennyi megteszi.

Nem elérhető Blez

  • 202
    • Profil megtekintése
Dinivel történő jelszómentés
« Válasz #8 Dátum: 2015. Március 05. - 21:32:00 »
+1 Show voters
Köszönöm szépen! Mindenkinek adtam egy plusszt a segítőkészségéért.  :)

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal