Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- Credite:...
- Structura:....
- etc...
- */
- #include <a_samp>
- #include <a_mysql>
- /*====================================Devfine's=================================*/
- #define mysql_host "localhost"
- #define mysql_db "bazadate"
- #define mysql_user "root"
- #define mysql_pass ""
- /*====================================Forward's=================================*/
- forward OnLogin(playerid);
- forward OnPlayerLogin(playerid);
- forward MySQLConnect();
- /*====================================Enum's=================================*/
- enum
- {
- DIALOG_LOGIN,
- DIALOG_REGISTER,
- DIALOG_VARSTA,
- DIALOG_SEX,
- DIALOG_EMAIL,
- DIALOG_REFFERAL
- };
- enum pInfo
- {
- pParola,
- pID,
- pVarsta,
- pSex,
- pEmail,
- pRefferal,
- pRegisterStep
- };
- new P_Data[MAX_PLAYERS][pInfo];
- new handle;
- main()
- {
- print("\n----------------------------------");
- print(" GM HaiPa bydavid1995 version V 0.0.1");
- print("----------------------------------\n");
- }
- public MySQLConnect()
- {
- handle = mysql_connect(mysql_host, mysql_user, mysql_db, mysql_pass);
- if(mysql_errno() != 0)
- {
- printf("Conexiunea la baza de date %s a esuat ---> Server Inchis ~~~", mysql_db);
- SendRconCommand("exit");
- }
- else
- {
- printf("Conexiunea la baza de date '%s' cu user-ul '%s' a reusit!!!", mysql_db, mysql_user);
- }
- return 1;
- }
- public OnGameModeInit()
- {
- SetGameModeText("HaiPat");
- MySQLConnect();
- return 1;
- }
- public OnGameModeExit()
- {
- mysql_close( handle ) ;
- return 1;
- }
- public OnPlayerRequestClass(playerid, classid)
- {
- return 1;
- }
- public OnPlayerConnect(playerid)
- {
- new query[100];
- mysql_format(handle, query, sizeof(query), "SELECT * FROM conturi WHERE Nume = '%s'", GetName(playerid));
- mysql_tquery(handle, query, "OnPlayerLogin", "i", playerid);
- return 1;
- }
- public OnPlayerLogin(playerid)
- {
- new rows, fields;
- cache_get_data(rows, fields);
- if(rows)
- {
- ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "Logheaza-te!", "Te rog sa-ti introduci parola contuului mai jos!", "Logare", "Exit");
- }
- else
- {
- ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_INPUT, "Inregistrare", "Trebuie sa iti creezi un cont ca sa joci pe server. nTasteaza mai jos o parola, pentru a te inregistra!", "Inregistreaza", "Exit");
- }
- return 1;
- }
- public OnLogin(playerid)
- {
- new rows, fields,temporar[200];
- cache_get_data(rows, fields);
- if(rows)
- {
- P_Data[playerid][pParola] = cache_get_field_content(0, "Parola",temporar);
- P_Data[playerid][pID] = cache_get_field_content_int(0, "ID");
- P_Data[playerid][pVarsta] = cache_get_field_content_int(0, "Varsta");
- P_Data[playerid][pSex] = cache_get_field_content_int(0, "Sex");
- P_Data[playerid][pEmail] = cache_get_field_content(0, "Email",temporar);
- P_Data[playerid][pRefferal] = cache_get_field_content(0, "Refferal",temporar);
- P_Data[playerid][pRegisterStep] = cache_get_field_content_int(0, "RegisterStep");
- SpawnPlayer(playerid);
- }
- else
- {
- ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "Parola incorecta!", "Te rog sa iti introduci parola corecta, pentru a te loga pe server.", "Logare", "Exit");
- }
- if(P_Data[playerid][pRegisterStep] == 0)
- return ShowPlayerDialog(playerid, DIALOG_VARSTA, DIALOG_STYLE_INPUT, "Varsta", "Ce varsta doresti sa aiba caracterul?", "OK", "");
- if(P_Data[playerid][pRegisterStep] == 1)
- return ShowPlayerDialog(playerid, DIALOG_SEX, DIALOG_STYLE_MSGBOX, "Sex", "Ce sex doresti sa aiba caracterul?", "Masculin", "Feminin");
- if(P_Data[playerid][pRegisterStep] == 2)
- return ShowPlayerDialog(playerid, DIALOG_EMAIL, DIALOG_STYLE_INPUT, "Email", "Ce email ai?", "OK", "");
- if(P_Data[playerid][pRegisterStep] == 3)
- return ShowPlayerDialog(playerid, DIALOG_REFFERAL, DIALOG_STYLE_INPUT, "Refferal", "Cine te-a adus pe server?", "OK", "SKIP");
- return 1;
- }
- public OnPlayerDisconnect(playerid, reason)
- {
- return 1;
- }
- public OnPlayerSpawn(playerid)
- {
- return 1;
- }
- public OnPlayerDeath(playerid, killerid, reason)
- {
- return 1;
- }
- public OnVehicleSpawn(vehicleid)
- {
- return 1;
- }
- public OnVehicleDeath(vehicleid, killerid)
- {
- return 1;
- }
- public OnPlayerText(playerid, text[])
- {
- return 1;
- }
- public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
- {
- return 1;
- }
- public OnPlayerExitVehicle(playerid, vehicleid)
- {
- return 1;
- }
- public OnPlayerStateChange(playerid, newstate, oldstate)
- {
- return 1;
- }
- public OnPlayerEnterCheckpoint(playerid)
- {
- return 1;
- }
- public OnPlayerLeaveCheckpoint(playerid)
- {
- return 1;
- }
- public OnPlayerEnterRaceCheckpoint(playerid)
- {
- return 1;
- }
- public OnPlayerLeaveRaceCheckpoint(playerid)
- {
- return 1;
- }
- public OnRconCommand(cmd[])
- {
- return 1;
- }
- public OnPlayerRequestSpawn(playerid)
- {
- return 1;
- }
- public OnObjectMoved(objectid)
- {
- return 1;
- }
- public OnPlayerObjectMoved(playerid, objectid)
- {
- return 1;
- }
- public OnPlayerPickUpPickup(playerid, pickupid)
- {
- return 1;
- }
- public OnVehicleMod(playerid, vehicleid, componentid)
- {
- return 1;
- }
- public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
- {
- return 1;
- }
- public OnVehicleRespray(playerid, vehicleid, color1, color2)
- {
- return 1;
- }
- public OnPlayerSelectedMenuRow(playerid, row)
- {
- return 1;
- }
- public OnPlayerExitedMenu(playerid)
- {
- return 1;
- }
- public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
- {
- return 1;
- }
- public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
- {
- return 1;
- }
- public OnRconLoginAttempt(ip[], password[], success)
- {
- return 1;
- }
- public OnPlayerUpdate(playerid)
- {
- return 1;
- }
- public OnPlayerStreamIn(playerid, forplayerid)
- {
- return 1;
- }
- public OnPlayerStreamOut(playerid, forplayerid)
- {
- return 1;
- }
- public OnVehicleStreamIn(vehicleid, forplayerid)
- {
- return 1;
- }
- public OnVehicleStreamOut(vehicleid, forplayerid)
- {
- return 1;
- }
- public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
- {
- new query[128], ip[25], rows, fields;
- switch(dialogid)
- {
- case DIALOG_REGISTER:
- {
- if(!response)
- return Kick(playerid);
- if(response)
- {
- if(!strlen(inputtext))
- return ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_PASSWORD, "Parola incorecta!", "Introdu-ti o parola pentru a te inregistra pe server! n", "Inregistreaza", "Exit");
- GetPlayerIp(playerid, ip, sizeof(ip));
- mysql_format(handle, query, sizeof(query), "INSERT INTO conturi (Nume, Parola, IP) VALUES ('%s', '%e', '%s')", GetName(playerid), inputtext, ip);
- mysql_query(handle, query);
- ShowPlayerDialog(playerid, DIALOG_VARSTA, DIALOG_STYLE_INPUT, "Varsta", "Ce varsta doresti sa aiba caracterul?", "OK", "");
- }
- return 1;
- }
- case DIALOG_LOGIN:
- {
- if(!response) return Kick(playerid);
- if(response)
- {
- if(!strlen(inputtext))
- return ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "Parola incorecta!", "Te rog sa iti introduci parola corecta, pentru a te loga pe server.", "Logare", "Exit");
- mysql_format(handle, query, sizeof(query), "SELECT * FROM `conturi` WHERE `Nume`='%e' AND `Parola` = '%e'", GetName(playerid),inputtext);
- mysql_tquery(handle, query, "OnLogin", "i", playerid);
- }
- return 1;
- }
- case DIALOG_VARSTA:
- {
- if(response)
- {
- new varsta = strval(inputtext);// strval convertete un string in intenger(numar natural)
- if(varsta < 6 || varsta > 40)// daca numarul pe care il introduce e mai mare decat 40 de ani sau mai mic decat 6 ii returnam din nou dialogul de varsta:
- return ShowPlayerDialog(playerid, DIALOG_VARSTA, DIALOG_STYLE_INPUT, "Varsta", "Ce varsta doresti sa aiba caracterul?\n Trebuie sa ai intre 6 si 40 de ani!", "OK", "");
- // daca trece peste aceasta verificare se vor intampla urmatoarele:
- P_Data[playerid][pVarsta] = varsta;// variabila varsta va fi egala cu numarul introdus in casuta
- mysql_format(handle, query, sizeof(query), "UPDATE `conturi` SET `Varsta`='%d' WHERE `Nume`='%e'", P_Data[playerid][pVarsta], GetName(playerid));// introducem varsta sa fie egala cu cea care am introdus-o in casuta
- mysql_query(handle, query);// trimitem mesajul catre baza de date
- P_Data[playerid][pRegisterStep] = 1;
- mysql_format(handle, query, sizeof(query), "UPDATE `conturi` SET `RegisterStep`='%d' WHERE `Nume`='%e'", P_Data[playerid][pRegisterStep], GetName(playerid));// se updateaza
- mysql_query(handle, query);// se trimite interogarea
- ShowPlayerDialog(playerid, DIALOG_SEX, DIALOG_STYLE_MSGBOX, "Sex", "Ce sex doresti sa aiba caracterul?", "Masculin", "Feminin");// il timitem la dialogul de sex
- }
- }
- case DIALOG_SEX:
- {
- if(response)// daca apasa pe primul buton(masculin)
- {
- P_Data[playerid][pSex] = 1;//Seteaza pSex = 1(adica baiat)
- mysql_format(handle, query, sizeof(query), "UPDATE `conturi` SET `Sex`='%d' WHERE `Nume`='%e'", P_Data[playerid][pSex], GetName(playerid));// se updateaza sex-ul jucatorului
- mysql_query(handle, query);// se trimite catre baza de date.
- P_Data[playerid][pRegisterStep] = 2;
- mysql_format(handle, query, sizeof(query), "UPDATE `conturi` SET `RegisterStep`='%d' WHERE `Nume`='%e'", P_Data[playerid][pRegisterStep], GetName(playerid));// se updateaza
- mysql_query(handle, query);// se trimite interogarea
- ShowPlayerDialog(playerid, DIALOG_EMAIL, DIALOG_STYLE_INPUT, "Email", "Ce email ai?", "OK", "");// il timitem la dialogul de email
- }
- if(!response)
- {
- P_Data[playerid][pSex] = 2;//Seteaza pSex = 1(adica baiat)
- mysql_format(handle, query, sizeof(query), "UPDATE `conturi` SET `Sex`='%d' WHERE `Nume`='%e'", P_Data[playerid][pSex], GetName(playerid));// se updateaza sex-ul jucatorului
- mysql_query(handle, query);// se trimite catre baza de date.
- P_Data[playerid][pRegisterStep] = 2;
- mysql_format(handle, query, sizeof(query), "UPDATE `conturi` SET `RegisterStep`='%d' WHERE `Nume`='%e'", P_Data[playerid][pRegisterStep], GetName(playerid));// se updateaza
- mysql_query(handle, query);// se trimite interogarea
- ShowPlayerDialog(playerid, DIALOG_EMAIL, DIALOG_STYLE_INPUT, "Email", "Ce email ai?", "OK", "");// il timitem la dialogul de email
- }
- }
- case DIALOG_EMAIL:
- {
- if(response)
- {
- if(strlen(inputtext) < 10 || strlen(inputtext) > 100)// strlen obtine lungimea de string. Daca mesajul introdus in caseta(emailul) este mai mic de 10 caractere sau mai mare de 100 caractere
- return ShowPlayerDialog(playerid, DIALOG_EMAIL, DIALOG_STYLE_INPUT, "Email", "Ce email ai?\nTrebuie sa fie intre 10 si 100 caractere!", "OK", "");// ii returneaza acelasi dialog
- strmid(P_Data[playerid][pEmail],inputtext, 0, strlen(inputtext), 100);// strmid obtine lungimea unui string.
- // in acest caz lungimea este introdusa in pEmail, adica P_Data[playerid][pEmail] = inputtext, dar va da eroare, asa ca ne folosim de strmid.
- mysql_format(handle, query, sizeof(query), "UPDATE `conturi` SET `Email`='%s' WHERE `Nume`='%e'", P_Data[playerid][pEmail], GetName(playerid));// se face update la baza de date a playerului
- mysql_query(handle, query);// se trimite mesajul catre baza de date.
- P_Data[playerid][pRegisterStep] = 3;
- mysql_format(handle, query, sizeof(query), "UPDATE `conturi` SET `RegisterStep`='%d' WHERE `Nume`='%e'", P_Data[playerid][pRegisterStep], GetName(playerid));// se updateaza
- mysql_query(handle, query);// se trimite interogarea
- ShowPlayerDialog(playerid, DIALOG_REFFERAL, DIALOG_STYLE_INPUT, "Refferal", "Te-a adus cineva pe server?", "OK", "SKIP");// il timitem la dialogul de refferal
- }
- }
- case DIALOG_REFFERAL:
- {
- if(response)// primul buton
- {
- mysql_format(handle, query, sizeof(query), "SELECT * FROM `conturi` WHERE `Nume` = '%e'",inputtext);// selecteaza numele din baza de date
- mysql_query(handle, query);// se trimite interogarea catre baza
- cache_get_data(rows, fields);// definim randurile si domeniile
- if(rows)// daca acel player are cont(are randuri in baza de date)
- {
- strmid(P_Data[playerid][pRefferal],inputtext,0,strlen(inputtext),25);// i se seteaza refferal-ul
- mysql_format(handle, query, sizeof(query), "UPDATE `conturi` SET `Refferal`='%e' WHERE `Nume`='%e'", P_Data[playerid][pRefferal], GetName(playerid));// se updateaza refferalul playerului
- mysql_query(handle, query);// se trimite interogarea
- P_Data[playerid][pRegisterStep] = 4;
- mysql_format(handle, query, sizeof(query), "UPDATE `conturi` SET `RegisterStep`='%d' WHERE `Nume`='%e'", P_Data[playerid][pRegisterStep], GetName(playerid));// se updateaza
- mysql_query(handle, query);// se trimite interogarea
- }
- else// daca nu are cont(nu i se gaseste randuri in baza de date)
- {
- ShowPlayerDialog(playerid, DIALOG_REFFERAL, DIALOG_STYLE_INPUT, "Refferal", "Cine te-a adus pe server?", "OK", "SKIP");// ii da din nou dialogul cu refferal
- }
- }
- if(!response)// al 2-lea buton
- {
- SendClientMessage(playerid,-1,"Bine, deci nimeni nu te-a adus!");
- P_Data[playerid][pRegisterStep] = 4;
- mysql_format(handle, query, sizeof(query), "UPDATE `conturi` SET `RegisterStep`='%d' WHERE `Nume`='%e'", P_Data[playerid][pRegisterStep], GetName(playerid));// se updateaza
- mysql_query(handle, query);// se trimite interogarea
- SpawnPlayer(playerid);// ii da spawn
- }
- }
- }
- return 1;
- }
- public OnPlayerClickPlayer(playerid, clickedplayerid, source)
- {
- return 1;
- }
- /*=======================================Stock's=========================================*/
- stock GetName(playerid)
- {
- new Name[MAX_PLAYER_NAME];
- GetPlayerName(playerid, Name, sizeof(Name));
- return Name;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement