Advertisement
ZecoF

gmd e la zero

Dec 25th, 2024 (edited)
2,666
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 12.43 KB | Gaming | 0 0
  1. //-----------INCLUDES----------//
  2. #include        < a_samp >
  3. #include        < a_mysql >
  4. #include        < YSI\y_master >
  5. #include        < YSI\y_timers >
  6. #include        < YSI\y_commands >
  7. #include        < YSI\y_va >
  8. #include        < YSI\y_iterate >
  9. #include        < YSI\y_hooks >
  10. #include        < YSI\y_bit >
  11. //
  12.  
  13. //-----------MYSQL_CONNECT----------//
  14. #define MYSQL_HOST 1
  15. #define MYSQL_LOCALHOST 2
  16. new MysqlConnected = MYSQL_LOCALHOST;
  17.  
  18. //-----------DEFINES----------//
  19. #define SERVER_VERSION "v0.0.1b"
  20. #define SERVER_NAME "Nume-Server"
  21. #define SERVER_COLOR "{39A1C4}"
  22. #define COLOR_SERVER 0x39A1C4FF
  23. #define function%0(%1) forward %0(%1); public %0(%1)
  24. #define SCM SendClientMessage
  25. #define SCMf va_SendClientMessage
  26. #define SCMa va_SendClientMessageToAll
  27. #define KickEx(%0) SetTimerEx("KickPlayerr", 100, 0, "d", %0)
  28. #define BanExx(%0,%1) SetTimerEx("BanPlayerr", 100, 0, "d", %0)
  29. //
  30.  
  31. //-----------COLORS----------//
  32. #define COLOR_RED           0xEB2121FF
  33. #define COLOR_GREEN         0x3ADB2CFF
  34. #define COLOR_GREY          0xB0B0B0FF
  35. #define COLOR_WHITE         0xFFFFFFFF
  36. #define COLOR_BLUE          0x695AE8FF
  37. #define COLOR_YELLOW        0xE8DC5AFF
  38. #define COLOR_LRED          0xC22929FF
  39. //
  40.  
  41. //-----------VARIABLES----------//
  42. //news
  43. new SQL = -1, gQuery[256], gString[256], IncercariParola[MAX_PLAYERS], JucatorLogat[MAX_PLAYERS], InRegister[MAX_PLAYERS], RegisterStep[MAX_PLAYERS][3],
  44.     InLogin[MAX_PLAYERS], ErrorTimer[MAX_PLAYERS];
  45. //Player Textdraws
  46. new PlayerText:RegisterTD[31], PlayerText:LoginTD[6], PlayerText:ErrorTD[2];
  47. //
  48.  
  49. //-----------ENUMS----------//
  50. enum pInfo {
  51.     pSQLID,pName[MAX_PLAYER_NAME],pPassword[32],pEmail[32],pGender,pReg
  52. }
  53. new PlayerInfo[MAX_PLAYERS][pInfo];
  54.  
  55. enum {
  56.     //Register
  57.     DIALOG_REGISTER,DIALOG_EMAIL,DIALOG_GENDER,
  58.     //Login
  59.     DIALOG_LOGIN
  60.     //others
  61. }
  62. //
  63.  
  64. //-----------STOCKS----------//
  65. stock CalculeazaTimp(secunde) {
  66.     new minute = time/60, secunde2 = time, string[10], time = secunde;
  67.     time = time%60, time = time%3600;
  68.     format(string,sizeof(string),"%02d:%02d",minute,secunde2);
  69.     return string; }
  70.  
  71. stock GetName(playerid) {
  72.     new playerName[MAX_PLAYER_NAME];
  73.     GetPlayerName(playerid, playerName, MAX_PLAYER_NAME);
  74.     return playerName; }
  75. //
  76.  
  77. //-----------SYSTEM INCLUDES----------//
  78. #include <new\systems.inc>
  79.  
  80. //-----------PUBLICS----------//
  81. public OnGameModeInit() {
  82.     //mysql connect
  83.     if(MysqlConnected == 1) SQL = mysql_connect("", "", "", ""); else SQL = mysql_connect("localhost", "root", "new", "");
  84.     //
  85.     SetGameModeText("RO:RPG "SERVER_VERSION"");
  86.  
  87.     SetNameTagDrawDistance(30), EnableStuntBonusForAll(0), ShowPlayerMarkers(2), LimitPlayerMarkerRadius(5.0), DisableInteriorEnterExits(), AllowInteriorWeapons(1), UsePlayerPedAnims();
  88.     //ManualVehicleEngineAndLights();
  89.  
  90.     //loads
  91.     LoadTD();
  92.     LoadObj();
  93.     LoadCommands();
  94.  
  95.     AddPlayerClass(23, 2780.6936,-1812.8245,11.8438,217.7789, 0, 0, 0, 0, 0, 0);
  96.     return 1; }
  97.  
  98. public OnGameModeExit() {
  99.  
  100.     return 1; }
  101.  
  102. public OnPlayerClickTextDraw(playerid, Text:clickedid) {
  103.     if(clickedid == Text:INVALID_TEXT_DRAW) {
  104.         if(InRegister[playerid] != 0) HideRegisterTD(playerid), KickEx(playerid);
  105.     }
  106.     return 1; }
  107.  
  108. public OnPlayerClickPlayerTextDraw(playerid, PlayerText:playertextid) {
  109.     gString[0] = EOS;
  110.     if(playertextid == RegisterTD[24]) ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_PASSWORD, "Register:", "Bine ai venit pe "SERVER_NAME"\nNu ai un cont inregistrat pe server!\n\nScrie o parola in casuta de mai jos. "SERVER_COLOR"(6-32 caractere){FFFFFF}", "Register", "Cancel");
  111.     if(playertextid == RegisterTD[25]) ShowPlayerDialog(playerid, DIALOG_EMAIL, DIALOG_STYLE_INPUT, "Email:", "Scrie un email in casuta de mai jos.\n\nExemplu: "SERVER_COLOR"antifixmd@gmail.com{FFFFFF}", "Seteaza", "Cancel");
  112.     if(playertextid == RegisterTD[26]) ShowPlayerDialog(playerid, DIALOG_GENDER, DIALOG_STYLE_MSGBOX, "Gender:", "Seteaza-ti sex-ul:", "Masculin", "Feminin");
  113.     if(playertextid == RegisterTD[27]) SCM(playerid, COLOR_GREY, "Aceasta sectiune este in lucru... daca ai completat tot apasa pe REGISTER.");
  114.     if(playertextid == RegisterTD[29]) {
  115.         if(RegisterStep[playerid][0] == 0 && RegisterStep[playerid][1] == 0 && RegisterStep[playerid][2] == 0) return SendPlayerError(playerid, "Nu ai completat tot, uitete cu atentie unde nu ai completat.");
  116.         HideRegisterTD(playerid), UpdateVar(playerid, "Reg", 1), ShowLoginTD(playerid);
  117.         for(new i = 0; i < 500; i++) SCM(playerid, -1, " ");
  118.     }
  119.     if(playertextid == RegisterTD[30]) {
  120.         HideRegisterTD(playerid), KickEx(playerid);
  121.         SCM(playerid, COLOR_LRED, "Ai primit kick deoarece ai apasat pe CANCEL.");
  122.     }
  123.     if(playertextid == LoginTD[2]) ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "Login:", "Bine ai revenit pe "SERVER_NAME"\nAcest nume este deja inregistrat\n\nScrie parola in casuta de mai jos.", "Login", "Cancel");
  124.     return 1; }
  125.  
  126. public OnPlayerRequestClass(playerid, classid) {
  127.     if(JucatorLogat[playerid] == 1) SpawnPlayer(playerid);
  128.     return 1; }
  129.  
  130. public OnPlayerRequestSpawn(playerid) {
  131.     if(JucatorLogat[playerid] == 1) SpawnPlayer(playerid);
  132.     return 1; }
  133.  
  134. public OnPlayerSpawn(playerid) {
  135.     if(JucatorLogat[playerid] == 0) KickEx(playerid);
  136.     return 1; }
  137.  
  138. public OnPlayerConnect(playerid) {
  139.     LoadPTD(playerid), LoadRObj(playerid), ResetVariables(playerid);
  140.     gQuery[0] = EOS;
  141.     mysql_format(SQL, gQuery, sizeof(gQuery), "SELECT * FROM `users` WHERE `Name`='%s' LIMIT 1", GetName(playerid));
  142.     mysql_tquery(SQL, gQuery, "checkAccount", "i", playerid);
  143.     return 1; }
  144. //
  145.  
  146. //-----------DIALOG-RESPONSE----------//
  147. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) {
  148.     switch(dialogid) {
  149.         case DIALOG_REGISTER: {
  150.             if(!response) return 1;
  151.             if(RegisterStep[playerid][0] == 1) return SendPlayerError(playerid, "Ai setat deja parola.");
  152.             if(strlen(inputtext) < 6 || strlen(inputtext) > 32) return ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_PASSWORD, "Register:", "Bine ai venit pe "SERVER_NAME"\nNu ai un cont inregistrat pe server!\n\nScrie o parola in casuta de mai jos. "SERVER_COLOR"(6-32 caractere){FFFFFF}", "Register", "Cancel");
  153.             gQuery[0] = EOS; gString[0] = EOS;
  154.             mysql_format(SQL, gQuery, sizeof(gQuery), "INSERT INTO `users` (`Name`, `Password`) VALUES ('%s', '%s')", GetName(playerid), inputtext);
  155.             mysql_tquery(SQL, gQuery, "insertAccount", "i", playerid);
  156.             format(PlayerInfo[playerid][pPassword], 32, inputtext);
  157.             RegisterStep[playerid][0] = 1;
  158.             PlayerTextDrawHide(playerid, RegisterTD[24]);
  159.             PlayerTextDrawSetString(playerid, RegisterTD[24], "&&&&&&&&&&&&&&&&&");
  160.             PlayerTextDrawShow(playerid, RegisterTD[24]);
  161.         }
  162.         case DIALOG_EMAIL: {
  163.             if(!response) return 1;
  164.             if(RegisterStep[playerid][1] == 1) return SendPlayerError(playerid, "Ai setat deja email-ul.");
  165.             if(strlen(inputtext) < 6 || strlen(inputtext) > 32) return ShowPlayerDialog(playerid, DIALOG_EMAIL, DIALOG_STYLE_INPUT, "Email:", "Scrie un email in casuta de mai jos.\n\nExemplu: "SERVER_COLOR"antifixmd@gmail.com{FFFFFF}", "Seteaza", "Cancel");
  166.             gQuery[0] = EOS; gString[0] = EOS;
  167.             mysql_format(SQL, gQuery, sizeof(gQuery), "UPDATE `users` SET `Email`='%s' WHERE `ID`='%d'", inputtext, PlayerInfo[playerid][pSQLID]);
  168.             mysql_tquery(SQL, gQuery, "", "");
  169.             format(PlayerInfo[playerid][pEmail], 32, inputtext);
  170.             RegisterStep[playerid][1] = 1;
  171.             PlayerTextDrawHide(playerid, RegisterTD[25]);
  172.             format(gString, sizeof(gString), "%s", inputtext);
  173.             PlayerTextDrawSetString(playerid, RegisterTD[25], gString);
  174.             PlayerTextDrawShow(playerid, RegisterTD[25]);
  175.         }
  176.         case DIALOG_GENDER: {
  177.             if(RegisterStep[playerid][2] == 1) return SendPlayerError(playerid, "Ai setat deja sex-ul.");
  178.             PlayerTextDrawHide(playerid, RegisterTD[26]);
  179.             switch(response) {
  180.                 case 0: PlayerInfo[playerid][pGender] = 1, PlayerTextDrawSetString(playerid, RegisterTD[26], "Feminin");
  181.                 case 1: PlayerInfo[playerid][pGender] = 2, PlayerTextDrawSetString(playerid, RegisterTD[26], "Masculin"); }
  182.             PlayerTextDrawShow(playerid, RegisterTD[26]);
  183.             gQuery[0] = EOS;
  184.             mysql_format(SQL, gQuery, sizeof(gQuery), "UPDATE `users` SET `Gender`='%d' WHERE `ID`='%d'", PlayerInfo[playerid][pGender], PlayerInfo[playerid][pSQLID]);
  185.             mysql_tquery(SQL, gQuery, "", "");
  186.             RegisterStep[playerid][2] = 1;
  187.         }
  188.         case DIALOG_LOGIN: {
  189.             if(!response) return Kick(playerid);
  190.             gQuery[0] = EOS;
  191.             mysql_format(SQL, gQuery, sizeof(gQuery), "SELECT * FROM `users` WHERE `Name`='%s' AND `Password`='%s' LIMIT 1", GetName(playerid), inputtext);
  192.             mysql_tquery(SQL, gQuery, "onLogin", "i", playerid);
  193.             SpawnPlayer(playerid);
  194.         }
  195.     } return 1; }
  196. //
  197.  
  198. //-----------FUNCTIONS----------//
  199. function ShowLoginTD(playerid) {
  200.     gString[0] = EOS;
  201.     for(new i = 0; i < 6; i++) PlayerTextDrawShow(playerid, LoginTD[i]);
  202.     SelectTextDraw(playerid, COLOR_BLUE), InLogin[playerid] = 1;
  203.     PlayerTextDrawHide(playerid, LoginTD[5]);
  204.     format(gString, sizeof(gString), "%s", GetName(playerid));
  205.     PlayerTextDrawSetString(playerid, LoginTD[5], gString);
  206.     PlayerTextDrawShow(playerid, LoginTD[5]);
  207.     for(new i = 0; i < 500; i++) SCM(playerid, -1, " ");
  208.     return 1; }
  209. function HideLoginTD(playerid) {
  210.     for(new i = 0; i < 6; i++) PlayerTextDrawHide(playerid, LoginTD[i]);
  211.     CancelSelectTextDraw(playerid), InLogin[playerid] = 0;
  212.     return 1; }
  213. function UpdateVar(playerid, varname[], ammount) {
  214.     gQuery[0] = EOS;
  215.     mysql_format(SQL, gQuery, sizeof(gQuery), "UPDATE `users` SET `%s`='%d' WHERE `ID`='%d'", varname, ammount, PlayerInfo[playerid][pSQLID]);
  216.     mysql_tquery(SQL, gQuery, "", "");
  217.     return 1; }
  218. function UpdateStr(playerid, varname[], ammount[]) {
  219.     gQuery[0] = EOS;
  220.     mysql_format(SQL, gQuery, sizeof(gQuery), "UPDATE `users` SET `%s`='%s' WHERE `ID`='%d'", varname, ammount, PlayerInfo[playerid][pSQLID]);
  221.     mysql_tquery(SQL, gQuery, "", "");
  222.     return 1; }
  223. function SendPlayerError(playerid, text[]) {
  224.     gString[0] = EOS; ErrorTimer[playerid] = 5;
  225.     format(gString, sizeof(gString), "~r~(!)~w~ %s", text);
  226.     PlayerTextDrawSetString(playerid, ErrorTD[0], gString);
  227.     for(new i = 0; i < 2; i++) PlayerTextDrawShow(playerid, ErrorTD[i]);
  228.     return 1;
  229. }
  230. function ShowRegisterTD(playerid) {
  231.     for(new i = 0; i < 31; i++) PlayerTextDrawShow(playerid, RegisterTD[i]);
  232.     SelectTextDraw(playerid, COLOR_BLUE), InRegister[playerid] = 1;
  233.     for(new i = 0; i < 500; i++) SCM(playerid, -1, " ");
  234.     return 1; }
  235. function HideRegisterTD(playerid) {
  236.     for(new i = 0; i < 31; i++) PlayerTextDrawHide(playerid, RegisterTD[i]);
  237.     CancelSelectTextDraw(playerid), InRegister[playerid] = 0;
  238.     return 1; }
  239. function BanPlayerr(playerid,reason[]) Ban(playerid);
  240. function KickPlayerr(playerid) Kick(playerid);
  241. function onLogin(playerid) {
  242.     switch(cache_num_rows()) {
  243.         case 0: {
  244.             IncercariParola[playerid] ++;
  245.             SCMf(playerid, COLOR_SERVER, ""SERVER_COLOR"ERROR:{FFFFFF} Parola incorecta, (%d/3) incercari ramase!", IncercariParola[playerid]);
  246.             if(IncercariParola[playerid] == 3) Kick(playerid);
  247.             else ShowLoginTD(playerid);
  248.         } case 1: {
  249.             //-------USERS DATABASE--------//
  250.             new result[64];
  251.             PlayerInfo[playerid][pSQLID] = cache_get_field_content_int(0, "ID");
  252.             PlayerInfo[playerid][pGender] = cache_get_field_content_int(0, "Gender");
  253.             PlayerInfo[playerid][pReg] = cache_get_field_content_int(0, "Reg");
  254.  
  255.             cache_get_field_content(0, "Name", result);         format(PlayerInfo[playerid][pName], MAX_PLAYER_NAME, result);
  256.             cache_get_field_content(0, "Email", result);        format(PlayerInfo[playerid][pEmail], 32, result);
  257.             cache_get_field_content(0, "Password", result);     format(PlayerInfo[playerid][pPassword], 32, result);
  258.             JucatorLogat[playerid] = 1; HideLoginTD(playerid);
  259.             SetPlayerPos(playerid, 2780.6936,-1812.8245,11.8438);
  260.             SCMf(playerid, COLOR_SERVER, "(SERVER):{FFFFFF} %s bine ai revenit pe server.", GetName(playerid));
  261.             SpawnPlayer(playerid);
  262.         }
  263.     } return 1; }
  264.  
  265. function insertAccount(playerid) {
  266.     PlayerInfo[playerid][pSQLID] = cache_insert_id();
  267.     printf("%s s-a inregistrat cu SQLID-ul #%d", GetName(playerid), PlayerInfo[playerid][pSQLID]);
  268.     return 1; }
  269.  
  270. function checkAccount(playerid) {
  271.     switch(cache_num_rows()) {
  272.         case 0: ShowRegisterTD(playerid);
  273.         case 1: {
  274.             PlayerInfo[playerid][pReg] = cache_get_field_content_int(0, "Reg");
  275.             if(PlayerInfo[playerid][pReg] == 0) ShowRegisterTD(playerid);
  276.             ShowLoginTD(playerid);
  277.         }
  278.            
  279.     } return 1; }
  280. //
  281.  
  282. //-----------TASKS----------//
  283. task OneSecond[1000]() {
  284.     foreach(new i: Player) {
  285.         if(ErrorTimer[i] > 0) {
  286.             ErrorTimer[i] --;
  287.             if(ErrorTimer[i] <= 0) for(new x = 0; x < 2; x++) PlayerTextDrawHide(i, ErrorTD[x]);
  288.         } } }
  289. //
  290.  
  291. //----------COMMANDS-------//
  292.  
  293. //
  294.  
  295. //----------OTHERS---------//
  296. main() {}
  297. #pragma dynamic 65536 //64 KB
  298. //
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement