Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <a_samp>
- #include <a_mysql>
- #define DIALOG_REGISTER 1
- #define DIALOG_LOGIN 2
- enum playerinfo {
- ORM:ORM_ID,
- SQL_ID,
- Name[MAX_PLAYER_NAME],
- Password[129],
- Money,
- Xp,
- AdminLvl,
- Float:SpawnX,
- Float:SpawnY,
- Float:SpawnZ
- };
- new pInfo[MAX_PLAYERS][playerinfo];
- new DbHandle;
- main() {}
- public OnGameModeInit()
- {
- mysql_log();
- DbHandle = mysql_connect("localhost","root","testas","");
- AddPlayerClass(0,0,0,3,0,0,0,0,0,0,0);
- return 1;
- }
- public OnPlayerConnect(playerid)
- {
- GetPlayerName(playerid,pInfo[playerid][Name],24); // Gauname žaidėjo vardą, nestebuklas.
- pInfo[playerid][ORM_ID] = orm_create("zaidejai",DbHandle); // Sukuriame ryšį su lentele "zaidejai"
- orm_addvar_int(pInfo[playerid][ORM_ID],pInfo[playerid][SQL_ID],"SQL_ID"); //Pridedame integer tipo kintamajį "SQL_ID" prie duombazės lentelės stulpelio pavadinimu "SQL_ID"
- orm_addvar_string(pInfo[playerid][ORM_ID],pInfo[playerid][Name],24,"Name");// Pridedame string tipo "Name" prie duomenų bazės stulpelio "Name"
- orm_addvar_string(pInfo[playerid][ORM_ID],pInfo[playerid][Password],129,"Password");
- orm_addvar_int(pInfo[playerid][ORM_ID],pInfo[playerid][Money],"Money");
- orm_addvar_int(pInfo[playerid][ORM_ID],pInfo[playerid][Xp],"Xp");
- orm_addvar_int(pInfo[playerid][ORM_ID],pInfo[playerid][AdminLvl],"AdminLvl");
- orm_addvar_float(pInfo[playerid][ORM_ID],pInfo[playerid][SpawnX],"SpawnX"); //Pridedame float tipo kintamąjį prie duomenų bazės stulpelio "SpawnX"
- orm_addvar_float(pInfo[playerid][ORM_ID],pInfo[playerid][SpawnY],"SpawnY");
- orm_addvar_float(pInfo[playerid][ORM_ID],pInfo[playerid][SpawnZ],"SpawnZ");
- // Dabar jau galėtume siųsti įprastas užklausas į duomenų bazę...Bet jie dar nežinos į kieno eilutę įrašinėti duomenis
- orm_setkey(pInfo[playerid][ORM_ID],"Name"); //Nurodome kad įašinėtų ten kur vardas bus lygus kintamajam "pInfo[playerid][Name]"
- orm_select(pInfo[playerid][ORM_ID],"OnPlayerCheck","d",playerid); // Išsiunčiame užklausą į duomenų bazę kuri parinks visus duomenis ir iškvies "OnPlayerCheck" funckiją su rezultatu
- return 1;
- }
- forward OnPlayerCheck(playerid);
- public OnPlayerCheck(playerid)
- {
- switch(orm_errno(pInfo[playerid][ORM_ID]))
- {
- //Jeigu nebuvo jokių klaidų siunčiant užklausą.
- case ERROR_OK: ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"Prisijungimas","Įveskite savo slaptažodį žemiau","Prisijungti","Išeiti");
- //Jeigu gauta "nėra duomenų" klaida. Reiškia žaidėjo nėra duomenų bazėje.
- case ERROR_NO_DATA: ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_PASSWORD,"Registracija","Įvesktie savo slaptažodį žemiau","Registruotis","Išeiti");
- }
- // Nurodome kad eilutes nuo dabar skirsime pagal "SQL_ID".
- orm_setkey(pInfo[playerid][ORM_ID],"SQL_ID");
- return 1;
- }
- public OnPlayerDisconnect(playerid,reason)
- {
- if(pInfo[playerid][SQL_ID] != 0) orm_update(pInfo[playerid][ORM_ID]); // Jeigu žaidėjo informacija buvo užkrauta, išsaugom visus duomenis.
- orm_destroy(pInfo[playerid][ORM_ID]); // Pašalinam ryšt su lentele tam žaidėjui.
- return 1;
- }
- public OnPlayerCommandText(playerid,cmdtext[])
- {
- if(!strcmp(cmdtext,"/test"))
- {
- printf("SQLID:%d",pInfo[playerid][SQL_ID]);
- printf("Name:%s",pInfo[playerid][Name]);
- printf("Password:%s",pInfo[playerid][Password]);
- printf("Money:%d",pInfo[playerid][Money]);
- return 1;
- }
- return 0;
- }
- public OnDialogResponse(playerid,dialogid,response,listitem,inputtext[])
- {
- if(dialogid == DIALOG_REGISTER) // Jeigu tai regsitracijos lentelė
- {
- if(!response) return Kick(playerid); // Jeigu paspaudė "Išeiti", išmetame jį lauk.
- if(strlen(inputtext) < 6) // Jeigu įvesto slaptažodis trumpesnis už 6.
- {
- SendClientMessage(playerid,-1,"Slaptažodį turi sudaryti bent 6 simboliai");
- ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_PASSWORD,"Registracija","Įvesktie savo slaptažodį žemiau","Registruotis","Išeiti");
- return 1;
- }
- strins(pInfo[playerid][Password],inputtext,0); // Įrašom į kintamajį "pInfo[playerid][Password]" žaidėjo slaptažodį.
- orm_insert(pInfo[playerid][ORM_ID],"OnPlayerRegister","d",playerid); // Įrašome į lentelę naują eilutę skirta žaidėjui.
- return 1;
- }
- else if(dialogid == DIALOG_LOGIN) // Jeigu tai prisijungimo lentelė.
- {
- if(!response) return Kick(playerid); // Jeigu žaidėjas paspaudė "Išeiti" - išmetam.
- if(strlen(inputtext) < 6)
- {
- SendClientMessage(playerid,-1,"Slaptažodį turi sudaryti bent 6 simboliai");
- ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"Prisijungimas","Įveskite savo slaptažodį žemiau","Prisijungti","Išeiti");
- return 1;
- }
- if(!strcmp(pInfo[playerid][Password],inputtext)) //Jeigu įvestas slaptažodis yra lygus įrašytam duomenų bazėje(jau užkrautas jis buvo, prisijungiant)
- {
- SendClientMessage(playerid,-1,"Sėkmingai prisijungėte, gero žaidimo!");
- return 1;
- }
- else SendClientMessage(playerid,-1,"Slaptažodis neteisingas");
- }
- return 0;
- }
- forward OnPlayerRegister(playerid);
- public OnPlayerRegister(playerid)
- {
- if(orm_errno(pInfo[playerid][ORM_ID]) == ERROR_OK) // Jeigu nebuvo klaidų siunčiant užklausą.
- {
- SendClientMessage(playerid,-1,"Registracija sėkminga! Gero žaidimo");
- }
- return 1;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement