Advertisement
xt3z0ne

dsadasd

Aug 21st, 2018
150
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 8.99 KB | None | 0 0
  1. #include " a_samp  "
  2. #include " a_mysql "
  3. #include "newanddef"
  4. #include <YSI\y_commands>
  5. #include <YSI\y_master>
  6.  
  7. new handle;
  8. //=====[MAIN]=====================================
  9. main()
  10. {
  11.     print("\n----------------------------------");
  12.     print("  RPG.ROPLAYERS.RO - SpriteTV\n");
  13.     print("----------------------------------\n");
  14. }
  15. forward MySQLConnect();// se creaza un nou callback cu forward
  16. public MySQLConnect()// se face callback-ul
  17. {
  18.     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
  19.     //handle = mysql_connect("localhost", "roplayers", "roplayers", "roplayers");
  20.     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)
  21.     {
  22.         printf("Conexiunea la baza de date %s a esuat ---> Server Inchis ~~~", mysql_db);// va trimite un mesaj in consola
  23.         SendRconCommand("exit");// se inchide serverul
  24.     }
  25.     else// altfel daca este 0(daca se face legatura)
  26.     {
  27.         printf("Conexiunea la baza de date '%s' cu user-ul '%s' a reusit!!!", mysql_db, mysql_user);// ne va da acest mesaj in consola
  28.     }
  29.     return 1;
  30. }
  31. public OnPlayerConnect(playerid)
  32. {
  33.     GameTextForPlayer(playerid, "~w~LOADING...~n~~r~CHECKING BAN STATUS", 3500, 3);
  34.     Language[playerid] = 0;
  35.     ShowPlayerDialog(playerid, DIALOG_LANGUAGE, DIALOG_STYLE_MSGBOX, "Select Language", "RO:Te rog selecteaza limba dorita.\nENG:Select language please.", "Romana","English");
  36.     return 1;
  37. }
  38. public OnPlayerDisconnect(playerid, reason)
  39. {
  40.     return 1;
  41. }
  42. public OnPlayerSpawn(playerid)
  43. {
  44.     SetPlayerInterior(playerid,0);
  45.     TogglePlayerClock(playerid,0);
  46.     return 1;
  47. }
  48.  
  49. SetupPlayerForClassSelection(playerid)
  50. {
  51.     SetPlayerInterior(playerid,14);
  52.     SetPlayerPos(playerid,258.4893,-41.4008,1002.0234);
  53.     SetPlayerFacingAngle(playerid, 270.0);
  54.     SetPlayerCameraPos(playerid,256.0815,-43.0475,1004.0234);
  55.     SetPlayerCameraLookAt(playerid,258.4893,-41.4008,1002.0234);
  56. }
  57.  
  58. public OnGameModeExit()
  59. {
  60.     return 1;
  61. }  
  62. public OnGameModeInit()
  63. {
  64.     MySQLConnect();
  65.     SetGameModeText("RPG.ROPLAYERS.RO");
  66.     ShowPlayerMarkers(1);
  67.     ShowNameTags(1);
  68.     AllowAdminTeleport(1);
  69.  
  70.     AddPlayerClass(265,1958.3783,1343.1572,15.3746,270.1425,0,0,0,0,-1,-1);
  71.     return 1;
  72. }
  73. public OnPlayerRequestClass(playerid)
  74. {
  75.     new query[100];// definim query(interogare)
  76.     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
  77.     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.
  78.     SetupPlayerForClassSelection(playerid);
  79.     return 1;
  80. }
  81.  
  82. public OnPlayerRequestSpawn(playerid)
  83. {
  84.     return 1;
  85. }
  86.  
  87. public OnPlayerClickPlayerTextDraw(playerid, PlayerText:playertextid)
  88. {
  89.     return 0;
  90. }
  91.  
  92.  
  93. /*public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  94. {
  95.     new query[128], ip[25];
  96.     switch(dialogid) {
  97.         case DIALOG_LANGUAGE: {
  98.             if(response) Language[playerid] = 0;
  99.             else Language[playerid] = 1;
  100.         }
  101.     }
  102.     return 0;
  103. }*/
  104. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  105. {
  106.     new query[128], ip[25];// se creaza interogarea si ip.
  107.     switch(dialogid)// se va folosi switch pentru a selecta dialogul
  108.     {
  109.         case DIALOG_REGISTER:// daca se va selecta dialogul register
  110.         {
  111.             if(!response)
  112.                     return Kick(playerid);// daca se va apasa pe butonul Exit ii va da kick
  113.             if(response)// daca se apasa pe Butonul inregistrare se vor face urmatoarele verificari
  114.             {
  115.                 if(!strlen(inputtext))// daca nu e scris nimic la parola
  116.                         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
  117.  
  118.                 GetPlayerIp(playerid, ip, sizeof(ip));// definim ip-ul de mai sus
  119.                 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
  120.                 mysql_query(handle, query);// se va trimite setarile si se va interoga callback-ul OnRegistration
  121.                 SpawnPlayer(playerid); // ii da spawn
  122.             }
  123.             return 1;
  124.         }
  125.         case DIALOG_LOGIN:// daca se va selecta dialogul de login
  126.         {
  127.             if(!response) return Kick(playerid);// si se va apasa pe butonul exit ii va da kick
  128.             if(response)//daca se apasa pe butonul LOGARE se va face urmatoarele verificari
  129.             {
  130.                 if(!strlen(inputtext))// daca nu a scris nimic la parola
  131.                         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
  132.                 // daca se va trece peste aceasta verificare se vor face urmatoarele:
  133.                 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
  134.                 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)
  135.             }
  136.             return 1;
  137.         }
  138.     }
  139.     return 1;
  140. }
  141. forward OnPlayerLogin(playerid);// se creaza callbac-ul
  142. public OnPlayerLogin(playerid)//Se creaza publicul
  143. {
  144.     new rows, fields;// definim rows(randurile)si fields(domeniile)
  145.     cache_get_data(rows, fields);//cache_get_data interogheaza date din baza de date. acele date sunt rows si fields
  146.     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:
  147.     {
  148.         ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "Logheaza-te!", "Te rog sa-ti introduci parola contuului mai jos!", "Logare", "Exit");// dialogul register
  149.     }
  150.     else// daca nu i se gasesc randuri, adica daca contul nu exista, atunci i se va da urmatorul dialog
  151.     {
  152.         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
  153.     }
  154.     return 1;
  155. }
  156. forward OnLogin(playerid);// definim callback ul
  157. public OnLogin(playerid)// facem publicul
  158. {
  159.     new rows, fields,temporar[200];// definim randurile si domeniile, iar temporar se va folosi la extragerea stringurilor
  160.     cache_get_data(rows, fields);// facem interogarea lor
  161.     if(rows)// daca playerul are randuri(adica daca are cont creat, odata cu contul se creeaza randurile)
  162.     {
  163.         //deci daca are randuri
  164.         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)
  165.         PlayerInfo[playerid][pID] = cache_get_field_content_int(0, "ID");// i se vaextrage ip-ul
  166.         //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
  167.         SpawnPlayer(playerid);// si se va da spawn
  168.     }
  169.     else// altfel , daca parola este gresita
  170.     {
  171.         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.
  172.     }
  173.     return 1;
  174. }
  175. public OnPlayerDeath(playerid, killerid, reason)
  176. {
  177.  
  178.     return 1;
  179. }
  180. stock SCMEx(playerid, color, string1[], string2[]) {
  181.     if(Language[playerid] == 0) SCM(playerid, color, string1);
  182.     else SCM(playerid, color, string2);
  183. }
  184. stock SCMTAEx(color, string1[], string2[]) {
  185.     foreach(Player, i) {
  186.           if(IsPlayerConnected(i)) {
  187.             if(Language[playerid] == 0) SCM(i, color, string1);
  188.             else SCM(i, color, string2);
  189.           }
  190.     }
  191. }
  192. YCMD:language(playerid, params[],help)
  193. {
  194.     ShowPlayerDialog(playerid, DIALOG_LANGUAGE, DIALOG_STYLE_MSGBOX, "Select Language", "RO:Te rog selecteaza limba dorita.\nENG:Select language please.", "Romana","English");
  195.     return 1;
  196. }
  197. YCMD:test1(playerid, params[], help)
  198. {
  199.     SCMEx(playerid, -1,"Esti romana cu suflet mare", "You speak english bro");
  200.     return 1;
  201. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement