Szerző Téma: Mysql problémák/kérdések  (Megtekintve 586 alkalommal)

Nem elérhető Tomee

  • 385
    • Profil megtekintése
Mysql problémák/kérdések
« Dátum: 2013. április 03. - 18:00:08 »
0 Show voters
Sziasztok!
1.)
Lenne egy kisebb problémám, mostanság elkezdett érdekelni a mysql. Mert már egy ideje dini-n éltem és gondoltam, jobb lenne ezt is kipróbálni szóval próbálkozok.
A módomat elkezdtem mysql alapúra írni, hibátlanul megvan a mód.
De! Amikor regisztrálok, akkor kéri, hogy lépjen be a játékos és már itt problémák adódnak, mert a jelszó nem tetszik, neki.
((próbáltam úgyis, hogy ne kelljen a belépés hanem egybõl a regisztrációs kérdések jöjjenek, de akkor meg nem akarta rendesen lespawnolni a játékost. Persze ezt  egy SpawnPlayer-rel megoldottam. Csak ott meg nem regisztrálta a felhasználót. Szóval a lényeg ugyan az ))
Kiválogattam a lényeges elemeket a módból. Remélem valaki tud segíteni.
 

public OnPlayerRequestClass(playerid, classid)
{
new query[128];
format(query,sizeof query,\"SELECT Username FROM Karakter WHERE Username = \'%s\'\",GetName(playerid));
mysql_query(buf);
mysql_store_result();
if(mysql_num_rows() != 1) ShowPlayerDialog(playerid, REGISZTRACIO, DIALOG_STYLE_INPUT,SZERVERNEV,\"{0080FF}Írj be egy tetszõleges jelszót\",\"Regisztrál\",\"Kilép\");
else ShowPlayerDialog(playerid, BELEPES, DIALOG_STYLE_PASSWORD,SZERVERNEV,\"{0080FF}Írd be a jelszavadat a belépéshez\",\"Belépés\",\"Kilép\");
mysql_free_result();
SetPlayerPos(playerid,1173.3711,-1250.3394,15.1870); SetPlayerVirtualWorld(playerid,playerid);
return 0;
}
stock AdatokMentese(playerid)
{
     if(IsPlayerConnected(playerid))
{
new save[1000];
format(save, sizeof(save), \"UPDATE Karakter SET Szint = %d,Admin = %d,Regisztralt = %d WHERE Username = \'%s\'\",
jatekos[playerid][pSzint],
jatekos[playerid][pAdmin],
jatekos[playerid][pReg],
GetName(playerid));
mysql_query(save);
}
return 1;
}
//DIALOG
switch(dialogid)
{
case BELEPES:
{
if(response)
{
   new query[129];
   new query2[256];
   WP_Hash(query,129,inputtext);
   format(query2,sizeof query2,\"SELECT Username FROM Karakter WHERE Username = \'%s\' AND Password = \'%s\'\",GetName(playerid),query);
   mysql_query(query2);
   mysql_store_result();
   if(mysql_num_rows() == 1) return mysql_free_result(),JatekosBelepSQL(playerid);
   mysql_free_result();
}
}
}
forward JatekosBelepSQL(playerid);
public JatekosBelepSQL(playerid)
{
    new query[450];
//A módban több lementeni való adat van, csak kitöröltem a nagyját az átláthatóság kedvéért.
    //Éés azért van itt több részre szedve, hogy megmutassam mivel több adat van, így egysorban nem fér ki és így oldottam meg.
format(query, sizeof(query), \"SELECT Szint,Admin,Regisztralt FROM Karakter WHERE Username = \'%s\'\",GetName(playerid));
mysql_query(query);
format(query, sizeof(query), \"SELECT Regisztralt FROM Karakter WHERE Username = \'%s\'\",GetName(playerid));
mysql_query(query);
mysql_store_result();
mysql_fetch_row_format(query);
sscanf(query,\"p<|>ddd\",
jatekos[playerid][pSzint],
jatekos[playerid][pAdmin],
jatekos[playerid][pReg]);
mysql_free_result();
SendClientMessage(playerid, NARANCS,\"*Sikeresen beléptél\");
SetSpawnInfo(playerid, 1, jatekos[playerid][pSkin], jatekos[playerid][pPos][0], jatekos[playerid][pPos][1], jatekos[playerid][pPos][2], 1.0, -1, -1, -1, -1, -1, -1);
SpawnPlayer(playerid); SetCameraBehindPlayer(playerid);
SetPlayerScore(playerid,jatekos[playerid][pSzint]);
return 1;
}
//Regisztráció
//JatekosBelepSQL(playerid); itt ugye bespawnol és ha a pReg == 0- val akkor, az OnPlayerSpawn alatt, beindítja a regisztrációt, és felteszii a krédéseket
//majd a regisztráció végén, mikor spawnolna
forward JatekosRegisztralSQL(playerid);
public JatekosRegisztralSQL(playerid)
{
if(IsPlayerConnected(playerid))
{
new query[256];
GetPVarString(playerid,\"tmp_pw\",query,sizeof query);
format(query,sizeof query,\"INSERT INTO Karakter(Username,Password) VALUES(\'%s\',\'%s\')\",
   GetName(playerid),
   query);
   mysql_query(query);
}
return 1;
}

 
2.)
Amikor mysql-nél restartolom a módot az egy kicsit sok idõt vesz igénybe, hogy restartoljon.
Ez alap a mysql-nél? Ne aggódjak miatta?
3.)
Ha elmentõdik a karakter akkor a webhoston belül hol fogom látni? A Karakter táblán belül?
4.) Nézelõdtem itt az oldalon egy mysql leírástért, de nem találtam. Valaki tudna mutatni egy elfogadhatót?

Mysql problémák/kérdések
« Válasz #1 Dátum: 2013. április 03. - 18:25:07 »
0 Show voters
Lehet a restartnál zárni is kellene a mysql kapcsolatot, de én nem szoktam csak úgy restartoltatni (/gmx) hanem teljesen újraindítom.

Nem elérhető Tomee

  • 385
    • Profil megtekintése
Mysql problémák/kérdések
« Válasz #2 Dátum: 2013. április 03. - 18:31:47 »
0 Show voters
Mind a két variációnál ezt csinálja.
Csak sajnos ha én webadminról restartolok akkor nem menti az adatokat.

Mysql problémák/kérdések
« Válasz #3 Dátum: 2013. április 03. - 19:12:12 »
0 Show voters
Hát jha mivel az nem konzol parancsot ad hanem csak leállítja a program futását.
Mint házi szerveren ha az x-el állítod le vagy beírod az /exit parancsot.
Az elsõnél nem kerül meghívásra az OnGameModeExit míg a másik lehetõségnél igen.
Jó lenne ha valahogy megoldanák hogy /exit parancsot adjon a samp szervernek.
Így míg nem oldják meg addig jobban jársz restart elõtt kickelni minden játékost.  :D

Nem elérhető Tomee

  • 385
    • Profil megtekintése
Mysql problémák/kérdések
« Válasz #4 Dátum: 2013. április 03. - 20:29:59 »
0 Show voters
:D Az fajin :D Na mindegy.
És a többire esetleg van valami megoldás?

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal