Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include " a_samp "
- #include " a_mysql "
- #include "newanddef"
- #include <YSI\y_commands>
- #include <YSI\y_master>
- new handle;
- //=====[MAIN]=====================================
- main()
- {
- print("\n----------------------------------");
- print(" RPG.ROPLAYERS.RO - SpriteTV\n");
- print("----------------------------------\n");
- }
- forward MySQLConnect();// se creaza un nou callback cu forward
- public MySQLConnect()// se face callback-ul
- {
- handle = mysql_connect(mysql_host, mysql_user, mysql_db, mysql_pass);// definim handle(manerul) ca fiind conectarea mysql la host, baza de date, parola si user-ul
- //handle = mysql_connect("localhost", "roplayers", "roplayers", "roplayers");
- if(mysql_errno() != 0)// in caz ca aceasta va fi diferita de 0(0 inseamna ca e conectat, 1 inseamna ca nu e conectat , fiind un vector)
- {
- printf("Conexiunea la baza de date %s a esuat ---> Server Inchis ~~~", mysql_db);// va trimite un mesaj in consola
- SendRconCommand("exit");// se inchide serverul
- }
- else// altfel daca este 0(daca se face legatura)
- {
- printf("Conexiunea la baza de date '%s' cu user-ul '%s' a reusit!!!", mysql_db, mysql_user);// ne va da acest mesaj in consola
- }
- return 1;
- }
- public OnPlayerConnect(playerid)
- {
- GameTextForPlayer(playerid, "~w~LOADING...~n~~r~CHECKING BAN STATUS", 3500, 3);
- Language[playerid] = 0;
- ShowPlayerDialog(playerid, DIALOG_LANGUAGE, DIALOG_STYLE_MSGBOX, "Select Language", "RO:Te rog selecteaza limba dorita.\nENG:Select language please.", "Romana","English");
- return 1;
- }
- public OnPlayerDisconnect(playerid, reason)
- {
- return 1;
- }
- public OnPlayerSpawn(playerid)
- {
- SetPlayerInterior(playerid,0);
- TogglePlayerClock(playerid,0);
- return 1;
- }
- SetupPlayerForClassSelection(playerid)
- {
- SetPlayerInterior(playerid,14);
- SetPlayerPos(playerid,258.4893,-41.4008,1002.0234);
- SetPlayerFacingAngle(playerid, 270.0);
- SetPlayerCameraPos(playerid,256.0815,-43.0475,1004.0234);
- SetPlayerCameraLookAt(playerid,258.4893,-41.4008,1002.0234);
- }
- public OnGameModeExit()
- {
- return 1;
- }
- public OnGameModeInit()
- {
- MySQLConnect();
- SetGameModeText("RPG.ROPLAYERS.RO");
- ShowPlayerMarkers(1);
- ShowNameTags(1);
- AllowAdminTeleport(1);
- AddPlayerClass(265,1958.3783,1343.1572,15.3746,270.1425,0,0,0,0,-1,-1);
- return 1;
- }
- public OnPlayerRequestClass(playerid)
- {
- new query[100];// definim query(interogare)
- mysql_format(handle, query, sizeof(query), "SELECT * FROM users WHERE Name = '%s'", GetName(playerid));// mysql format face interogarile/setarile/obtiunile/updateurile la baza de date
- mysql_tquery(handle, query, "OnPlayerLogin", "i", playerid);// se va interoga OnPlayerLogin. Adica mai pe scurt , cand se conecteaza se va verifica daca are cont sau nu acel player.
- SetupPlayerForClassSelection(playerid);
- return 1;
- }
- public OnPlayerRequestSpawn(playerid)
- {
- return 1;
- }
- public OnPlayerClickPlayerTextDraw(playerid, PlayerText:playertextid)
- {
- return 0;
- }
- /*public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
- {
- new query[128], ip[25];
- switch(dialogid) {
- case DIALOG_LANGUAGE: {
- if(response) Language[playerid] = 0;
- else Language[playerid] = 1;
- }
- }
- return 0;
- }*/
- public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
- {
- new query[128], ip[25];// se creaza interogarea si ip.
- switch(dialogid)// se va folosi switch pentru a selecta dialogul
- {
- case DIALOG_REGISTER:// daca se va selecta dialogul register
- {
- if(!response)
- return Kick(playerid);// daca se va apasa pe butonul Exit ii va da kick
- if(response)// daca se apasa pe Butonul inregistrare se vor face urmatoarele verificari
- {
- if(!strlen(inputtext))// daca nu e scris nimic la parola
- return ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_PASSWORD, "Parola incorecta!", "Introdu-ti o parola pentru a te inregistra pe server! n", "Inregistreaza", "Exit");// ii va da din nou dialogul register cu mesajul specific
- GetPlayerIp(playerid, ip, sizeof(ip));// definim ip-ul de mai sus
- mysql_format(handle, query, sizeof(query), "INSERT INTO users (Name, Password, IP) VALUES ('%s', '%e', '%s')", GetName(playerid), inputtext, ip);// se insereaza in tabelul cu conturi numele playerului, parola pe care a scris-o si ip pe care il are
- mysql_query(handle, query);// se va trimite setarile si se va interoga callback-ul OnRegistration
- SpawnPlayer(playerid); // ii da spawn
- }
- return 1;
- }
- case DIALOG_LOGIN:// daca se va selecta dialogul de login
- {
- if(!response) return Kick(playerid);// si se va apasa pe butonul exit ii va da kick
- if(response)//daca se apasa pe butonul LOGARE se va face urmatoarele verificari
- {
- if(!strlen(inputtext))// daca nu a scris nimic la parola
- 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");// ii va da dialogul cu login cu mesajul specific
- // daca se va trece peste aceasta verificare se vor face urmatoarele:
- mysql_format(handle, query, sizeof(query), "SELECT * FROM `users` WHERE `Name`='%e' AND `Password` = '%e'", GetName(playerid),inputtext);// va fi selectata parola de la tabelul cu conturi
- mysql_tquery(handle, query, "OnLogin", "i", playerid);// se va face apel la baza si se va interoga CallBackUl OnLogin (Tquery = take query sau ia interogare in romana)
- }
- return 1;
- }
- }
- return 1;
- }
- forward OnPlayerLogin(playerid);// se creaza callbac-ul
- public OnPlayerLogin(playerid)//Se creaza publicul
- {
- new rows, fields;// definim rows(randurile)si fields(domeniile)
- cache_get_data(rows, fields);//cache_get_data interogheaza date din baza de date. acele date sunt rows si fields
- if(rows)// atunci cand playerul se inregistreaza i se va crea niste randuri. Daca i se gasesc atunci cand se va conecta ii va da:
- {
- ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "Logheaza-te!", "Te rog sa-ti introduci parola contuului mai jos!", "Logare", "Exit");// dialogul register
- }
- else// daca nu i se gasesc randuri, adica daca contul nu exista, atunci i se va da urmatorul dialog
- {
- 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");// dialogul register
- }
- return 1;
- }
- forward OnLogin(playerid);// definim callback ul
- public OnLogin(playerid)// facem publicul
- {
- new rows, fields,temporar[200];// definim randurile si domeniile, iar temporar se va folosi la extragerea stringurilor
- cache_get_data(rows, fields);// facem interogarea lor
- if(rows)// daca playerul are randuri(adica daca are cont creat, odata cu contul se creeaza randurile)
- {
- //deci daca are randuri
- cache_get_field_content(0, "Parola",temporar), format(PlayerInfo[playerid][pPassword], 25, temporar);// i se vaextrage parola si i se verifica daca coincide cu numele. Se foloseste new-ul temporar pentru extragerea parolei, ea retinandu-se temporar(pana cand se deconecteaza jucatorul)
- PlayerInfo[playerid][pID] = cache_get_field_content_int(0, "ID");// i se vaextrage ip-ul
- //un exemplu ar fi , daca are Admin , va fi ceva de genu PlayerInfo[playerid][pAdmin] = cache_get_field_content_int(0,"Admin)"; i se va extrage din baza de date levelul de admin si i se va returna pe server, mai precis, cand se conecteaza are levelul de admin , care i-a fost setat de owner
- SpawnPlayer(playerid);// si se va da spawn
- }
- else// altfel , daca parola este gresita
- {
- ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "Parola incorecta!", "Te rog sa iti introduci parola corecta, pentru a te loga pe server.", "Logare", "Exit");// ii va da dialogul cu mesajul specific.
- }
- return 1;
- }
- public OnPlayerDeath(playerid, killerid, reason)
- {
- return 1;
- }
- stock SCMEx(playerid, color, string1[], string2[]) {
- if(Language[playerid] == 0) SCM(playerid, color, string1);
- else SCM(playerid, color, string2);
- }
- stock SCMTAEx(color, string1[], string2[]) {
- foreach(Player, i) {
- if(IsPlayerConnected(i)) {
- if(Language[playerid] == 0) SCM(i, color, string1);
- else SCM(i, color, string2);
- }
- }
- }
- YCMD:language(playerid, params[],help)
- {
- ShowPlayerDialog(playerid, DIALOG_LANGUAGE, DIALOG_STYLE_MSGBOX, "Select Language", "RO:Te rog selecteaza limba dorita.\nENG:Select language please.", "Romana","English");
- return 1;
- }
- YCMD:test1(playerid, params[], help)
- {
- SCMEx(playerid, -1,"Esti romana cu suflet mare", "You speak english bro");
- return 1;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement