-
Hali, nézegettem 1-2 adminszkriptet és az alapján próbálgatok írni egy sajátot. :)
A regisztráción és a belépésen túl vagyok viszont 2 dolog van ami szúrja a szemem.
1,
Jelszo = 145490553
Adminszint = 0
Penz = 0
A jelszónál ezt a számot írja nem a jelszavam :(
2, Hiába írom be a jelszót amivel regisztráltam azt írja hogy hibás.
if(dialogid == DIALOG_LOGIN)
{
if(response)
{
new file[128];
GetPlayerName(playerid, file, sizeof(file));
if(strlen(inputtext) == 0)
{
ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT, \"Bejelentkezés\", \"Írd be a jelszavad\", \"Belépés\", \"Mégse\");
return 1;
}
format(file, sizeof(file), \"/Weed-Admin/Jatekosok/%s.ini\", pName);
if(fexist(file))
{
new jelszo = dini_Int(file, \"Jelszo\");
if(udb_hash(inputtext) == jelszo)
{
Info[playerid][Jelszo] = dini_Int(file, \"Jelszo\");
Info[playerid][Adminszint] = dini_Int(file, \"Adminszint\");
Info[playerid][Penz] = dini_Int(file, \"Penz\");
SendClientMessage(playerid, YELLOW, \"-> Bejelentkeztél\");
SpawnPlayer(playerid);
} else {
SendClientMessage(playerid, RED, \"Hibás jelszó!\");
ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT, \"Bejelentkezés\", \"Írd be a jelszavad\", \"Belépés\", \"Mégse\");
}
}
}
}
Mi lehet a probléma?
-
Esetleg :
if(strcmp(inputtext, jelszo) == 0)
-
C:\\Users\\DaWee\\Desktop\\server\\filterscripts\\weedadmin.pwn(278) : error 035: argument type mismatch (argument 2)
C:\\Users\\DaWee\\Desktop\\server\\filterscripts\\weedadmin.pwn(277) : warning 204: symbol is assigned a value that is never used: \"jelszo\"
-
if(strlen(inputtext) == 1)
Lehet hülyeséget írok de ilyet még nem csináltam probáld meg ha 1 -est írsz oda.. :D
-
if(strlen(inputtext) == 1)
Lehet hülyeséget írok de ilyet még nem csináltam probáld meg ha 1 -est írsz oda.. :D
Ezzel csak azt éred el, hogyha 1 betû az inputtext, szóval nagy hülyeség :D.
-
Akkor így probáld:
if (!strlen(inputtext)) return
ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT, \"Bejelentkezés\", \"Írd be a jelszavad\", \"Belépés\", \"Mégse\");
egyépként: http://sampforum.hu/index.php?topic=29094.0
-
Jelszo = 145490553[/quote]
ez valószínüleg azért van mert a jelszó titkosítva van eltárolva...
meg kell találnod a titkosító függvényt és így megírni:
if(titkosit(inputtext) == jelszo)
if (!strlen(inputtext))[/quote]
ez a kód azt jelenti hogy ha nem írt be szöveget...
-
Dini-be?
-
nem...a módba...amikor regel a játékos azt a részt keresd meg és nézd meg hogy ott hogyan titkosítja le a jelszót !
-
A játékos nevet lekérted egy file nevû változóba, de nem használtad fel, helyette valahonnan valami pName változót használsz.
Így próbáld:
format(file, sizeof(file), \"/Weed-Admin/Jatekosok/%s.ini\", file);
mivel elõtte a file változóba lekérted a játékos nevét:
GetPlayerName(playerid, file, sizeof(file));[/quote]
-
A Szkript elején létre van hozva egy pName változó hogy le tudja menteni a nevemmel a .ini fájlt.
U.I.: Egy megoldás sem vezetett még sikerhez. :(
U.I.2: A GetPlayerName(playerid, file, sizeof(file)); nál pName helyett file-t írtam...
Így bejelentkezik viszont nem írja ki az üzenetet o.o
A jelszavas cuccosra van megoldás?
-
Úgy próbáld ahogy én javasoltam.
Ha a mód elején létrehoztál egy változót akkor annak valahol értéket is kell adni.
A bemásolt kódodban sehol sem szerepel.
Írj egy print(file); sort ezután:
format(file, sizeof(file), \"/Weed-Admin/Jatekosok/%s.ini\", pName);
print(file);
Próbáld ki, majd nyisd meg a server_log.txt fájlt és keresd meg benne és másold be ide.
Nem ártana az sem ha a regisztrációs részt is bemásolnád, hogy látni lehessen milyen módon mented el a jelszavat.
Amúgy használj több print / printf függvényt hogy a konzol ablakban lásd, mi mit is csinál. És ha már látod akkor hamarabb megtalálod mit rontottál el.
-
if(dialogid == DIALOG_REG)
{
if(response)
{
new file[128];
GetPlayerName(playerid, file, sizeof(file));
if(strlen(inputtext) == 0)
{
ShowPlayerDialog(playerid, DIALOG_REG, DIALOG_STYLE_INPUT, \"Regisztráció\", \"Írj be egy tetszõleges jelszót\", \"Regisztráció\", \"Mégse.\");
return 1;
}
format(file, sizeof(file), \"/Weed-Admin/Jatekosok/%s.ini\", pName);
if(!fexist(file))
{
dini_Create(file);
dini_IntSet(file, \"Jelszó\", udb_hash(inputtext));
dini_IntSet(file, \"Adminszint\", 0);
dini_IntSet(file, \"Pénz\", 0);
dini_IntSet(file, \"Ölések\", 0);
ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT, \"Bejelentkezés\", \"Írd be a jelszavad\", \"Belépés\", \"Mégse\");
}
}
}
Itt van, de megoldottam félig.. A francért se akarja kiírni sárgával az üzenetet o.O (elõzõ hsz-t szerkesztettem)
u.i: Nem jelentkezik be csak eltûnik a dialog (a fájlban tárolt pénzt se kapom meg, pedig OnPlayerSpawn-nál megadtam a pénzt a fájból)
SA-MP Dedicated Server
----------------------
v0.3e-R2, (C)2005-2012 SA-MP Team
[20:50:33]
[20:50:33] Server Plugins
[20:50:33] --------------
[20:50:33] Loading plugin: sscanf
[20:50:33]
[20:50:33] ===============================
[20:50:33] sscanf plugin loaded.
[20:50:33] (c) 2009 Alex \"Y_Less\" Cole
[20:50:33] ===============================
[20:50:33] Loaded.
[20:50:33] Loaded 1 plugins.
[20:50:33]
[20:50:33] Ban list
[20:50:33] --------
[20:50:33] Loaded: samp.ban
[20:50:33]
[20:50:33]
[20:50:33] Filterscripts
[20:50:33] ---------------
[20:50:33] Loading filterscript \'weedadmin.amx\'...
[20:50:33] << ------------------------------------ >>
[20:50:33] << Weed Adminszkript betoltve by: DaWee >>
[20:50:33] << ------------------------------------ >>
[20:50:33] Loaded 1 filterscripts.
[20:50:33] Number of vehicle models: 0
[20:50:50] Incoming connection: 127.0.0.1:51075
[20:50:50] [join] DaWee has joined the server (0:127.0.0.1)
[20:50:53] /Weed-Admin/Jatekosok/DaWee.ini
-
Olvasd el többször amit írtam, korábban.
Majd felejtsd el azt a pName változót. :D
És használd a print és printf native funkciókat hibakeresésre, ellenõrzésre, meg egyáltalán arra hogy lásd mit is csinálsz.
Csak találomra dobálod oda a dolgokat, és nem csak te. És csodálkoznak hogy nem mûködik. Használd õket, tesztelj, és ellenõrizd konzol ablakban vagy server_log.txt fájlban, azt amit éppen tesztelsz.
Csak így fogod átlátni, a dolgokat és megérteni mûködésüket. De használhatod a SendClientMessage részt is, akkor játék közben is látod hogy megfelelõ-e amit alkotsz vagy sem. És ha minden mûködik rendesen akkor törlöd ezeket a debug kódokat. (print printf sorokat)
format(file, sizeof(file), \"/Weed-Admin/Jatekosok/%s.ini\", pName);
SendClientMessage(playerid, -1, file);
Ha lekéred a játékos nevét így:
GetPlayerName(playerid, file, sizeof(file));
Akkor használd is itt:
format(file, sizeof(file), \"/Weed-Admin/Jatekosok/%s.ini\", file);
-
Megfogadom a tanácsod igazad van így vakon dolgozok. :D
Akkor elemezgetem hol lehet a probléma.
Lekértem a játékos nevét, csak mint írtam a GetPlayerName-ben pName helyett file-t írtam. :)
Valamint még mit ajánlasz ahhoz hogy ne titkosítottként írja a jelszót?
U.I.: Ha beleszerkesztek a DaWee.ini-be és felmegyek a szerverre a \"Jelszó= 145490553\" átváltozik \"ÿJelszó= 145490553\" -ra, gondolom ezért nem tudja beolvasni, mert a script \"Jelszó\"ból olvas. ??? ??? ??? ???
-
Ne szerkessz bele.
A titkosításnak az a lényege hogy ne lehessen visszafejteni.
Regisztrálj új accountot, ami elmenti az újból beírt jelszavad, majd azután próbáld a bejelentkezõ részt.
Amúgy valami sor lezárás hiba lehet a plusz karakter oka.
Amúgy, ilyenekre is figyelj oda:
dini_IntSet(file, \"Jelszó\", udb_hash(inputtext)); // Regisztrációs rész
[/quote]
new jelszo = dini_Int(file, \"Jelszo\"); // Login rész
[/quote]
-
Az pénzen változtattam hogy megnézzem 1-2 hiba jelen van-e.
Ha nem szerkesztek bele akkor be tudok jelentkezni.
Ha sor lezárás lehet az oka akkor miért nem ír rá semmit a pawno?
-
Fájlba való mentésnél gondoltam lezárás hibára, \\r\\n hiányra.
Ha nem szerkesztesz bele akkor mûködik azt írtad, próbálj valami más szövegszerkesztõt a fájl módosítására, pl.: notepad++ -t.
-
Fájlba való mentésnél gondoltam lezárás hibára, \\r\\n hiányra.
Ha nem szerkesztesz bele akkor mûködik azt írtad, próbálj valami más szövegszerkesztõt a fájl módosítására, pl.: notepad++ -t.
Jegyzettömb nem tetszett neki, Notepad++-al hozzáírtam 3ezer $-t, be is tudok jelentkezni és a pénz is megvan köszi szépen a segítséget megy a + :) :)