Advertisement
YiinY

mysqlGM.pwn

Dec 4th, 2012
1,288
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 9.69 KB | None | 0 0
  1. #define MySQL_HOST "localhost"
  2. #define MySQL_USER "root"
  3. #define MySQL_DATA "serveris"
  4. #define MySQL_PASS ""
  5.  
  6. #include <a_samp>
  7. #include <a_mysql>
  8.  
  9. enum _playerData
  10. {
  11.     pSkin,
  12.     pPinigai,
  13.     pPatirtis
  14. };
  15.  
  16. new
  17.     playerData[MAX_PLAYERS][_playerData],
  18.    
  19.     bool: online[MAX_PLAYERS],      /* Ar prisijunges?          */
  20.     bool: from_login[MAX_PLAYERS],  /* Ar po prisijungimo ?     */
  21.     bool: from_reg[MAX_PLAYERS],    /* Ar po registracijos ?    */
  22.    
  23.     trylog[MAX_PLAYERS];            /* Bandymai prisijungti     */
  24.  
  25. main()
  26. {
  27.     print(" -:: mysqlGM \n       by Yiin\n");
  28. }
  29.  
  30. public OnGameModeInit()
  31. {
  32.     SetGameModeText("mysqlGM");
  33.  
  34.     mysql_debug( true );
  35.     mysql_connect( MySQL_HOST,MySQL_USER,MySQL_DATA,MySQL_PASS );
  36.     if( mysql_ping( ) >= 1 )    print( "\n" );
  37.     else                        print("Prisijungimas prie MySQL DB ( "MySQL_DATA" ) nepavyko !");
  38.  
  39.     AddPlayerClass(0, 0, 0,0,4,0,0,0,0,0,0);
  40.    
  41.     return 1;
  42. }
  43.  
  44. public OnGameModeExit()
  45. {
  46.     for(new i=0; i < MAX_PLAYERS; i++)
  47.     {
  48.         if( IsPlayerConnected(i) && online[i] ) MySQL_Save(i);
  49.     }
  50.     mysql_close( );
  51.    
  52.     return 1;
  53. }
  54.  
  55. public OnPlayerRequestClass(playerid, classid)
  56. {
  57.     new
  58.         Query[ 200 ]
  59.     ;
  60.     format( Query,sizeof( Query ),"SELECT * FROM `zaidejai` WHERE vardas = '%s'",GetPlayerNameEx( playerid ) );
  61.     mysql_query( Query );
  62.     mysql_store_result( );
  63.  
  64.     if( mysql_num_rows( ) )
  65.     {
  66.         ShowPlayerDialog( playerid,1,DIALOG_STYLE_INPUT,"Prisijungimas","Sveikas atvykes! Prisijunk!\nSlaptažodis: ","Jungtis", "" );
  67.     }
  68.     else
  69.     {
  70.         ShowPlayerDialog( playerid,0,DIALOG_STYLE_INPUT,"Registracija","Sveikas atvykes! Užsiregistruok.\nSlaptažodis: ","Registruotis", "" );
  71.     }
  72.     mysql_free_result( );
  73.  
  74.     return 1;
  75. }
  76.  
  77.  
  78.  
  79. public OnPlayerConnect(playerid)
  80. {
  81.     online[playerid] = false;
  82.     trylog[playerid] = 0;
  83.    
  84.     return 1;
  85. }
  86.  
  87.  
  88.  
  89. public OnPlayerDisconnect(playerid, reason)
  90. {
  91.     if( online[playerid] )
  92.     {
  93.         MySQL_Save(playerid);
  94.     }
  95.     return 1;
  96. }
  97.  
  98.  
  99.  
  100. public OnPlayerSpawn(playerid)
  101. {
  102.     if( !online[playerid] ) Kick(playerid);
  103.  
  104.     if( from_login[playerid] )
  105.     {
  106.         MySQL_Load(playerid);
  107.         from_login[playerid] = false;
  108.         return 1;
  109.     }
  110.     if( from_reg[playerid] )
  111.     {
  112.         from_reg[playerid] = false;
  113.         return 1;
  114.     }
  115.  
  116.     return 1;
  117. }
  118.  
  119.  
  120.  
  121. public OnPlayerGiveDamage(playerid, damagedid, Float:amount, weaponid)
  122. {
  123.     return 1;
  124. }
  125.  
  126.  
  127.  
  128. public OnPlayerDeath(playerid, killerid, reason)
  129. {
  130.     return 1;
  131. }
  132.  
  133.  
  134.  
  135. public OnVehicleDeath(vehicleid, killerid)
  136. {
  137.     return 1;
  138. }
  139.  
  140.  
  141.  
  142. public OnPlayerText(playerid, text[])
  143. {
  144.     return 1;
  145. }
  146.  
  147.  
  148.  
  149. public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
  150. {
  151.     return 1;
  152. }
  153.  
  154.  
  155. public OnPlayerExitVehicle(playerid, vehicleid)
  156. {
  157.     return 1;
  158. }
  159.  
  160.  
  161.  
  162. public OnPlayerStateChange(playerid, newstate, oldstate)
  163. {
  164.     return 1;
  165. }
  166.  
  167.  
  168.  
  169. public OnPlayerEnterCheckpoint(playerid)
  170. {
  171.     return 1;
  172. }
  173.  
  174.  
  175.  
  176. public OnPlayerLeaveCheckpoint(playerid)
  177. {
  178.     return 1;
  179. }
  180.  
  181.  
  182.  
  183. public OnPlayerEnterRaceCheckpoint(playerid)
  184. {
  185.     return 1;
  186. }
  187.  
  188.  
  189.  
  190. public OnPlayerLeaveRaceCheckpoint(playerid)
  191. {
  192.     return 1;
  193. }
  194.  
  195.  
  196.  
  197. public OnRconCommand(cmd[])
  198. {
  199.     return 1;
  200. }
  201.  
  202.  
  203.  
  204. public OnPlayerRequestSpawn(playerid)
  205. {
  206.     return 1;
  207. }
  208.  
  209.  
  210.  
  211. public OnObjectMoved(objectid)
  212. {
  213.     return 1;
  214. }
  215.  
  216.  
  217.  
  218. public OnPlayerObjectMoved(playerid, objectid)
  219. {
  220.     return 1;
  221. }
  222.  
  223.  
  224.  
  225. public OnPlayerPickUpPickup(playerid, pickupid)
  226. {
  227.     return 1;
  228. }
  229.  
  230.  
  231.  
  232. public OnPlayerClickPlayerTextDraw(playerid, PlayerText:playertextid)
  233. {
  234.     return 1;
  235. }
  236.  
  237.  
  238.  
  239. public OnPlayerClickTextDraw(playerid, Text:clickedid)
  240. {
  241.     return 1;
  242. }
  243.  
  244.  
  245.  
  246.  
  247. public OnVehicleMod(playerid, vehicleid, componentid)
  248. {
  249.     return 1;
  250. }
  251.  
  252.  
  253.  
  254. public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
  255. {
  256.     return 1;
  257. }
  258.  
  259.  
  260.  
  261. public OnVehicleRespray(playerid, vehicleid, color1, color2)
  262. {
  263.     return 1;
  264. }
  265.  
  266.  
  267.  
  268. public OnPlayerSelectedMenuRow(playerid, row)
  269. {
  270.     return 1;
  271. }
  272.  
  273.  
  274.  
  275. public OnPlayerExitedMenu(playerid)
  276. {
  277.     return 1;
  278. }
  279.  
  280.  
  281.  
  282. public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
  283. {
  284.     return 1;
  285. }
  286.  
  287.  
  288.  
  289. public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
  290. {
  291.     return 1;
  292. }
  293.  
  294.  
  295.  
  296. public OnRconLoginAttempt(ip[], password[], success)
  297. {
  298.     return 1;
  299. }
  300.  
  301.  
  302.  
  303. public OnPlayerUpdate(playerid)
  304. {
  305.     return 1;
  306. }
  307.  
  308.  
  309.  
  310. public OnPlayerStreamIn(playerid, forplayerid)
  311. {
  312.     return 1;
  313. }
  314.  
  315.  
  316.  
  317. public OnPlayerStreamOut(playerid, forplayerid)
  318. {
  319.     return 1;
  320. }
  321.  
  322.  
  323.  
  324. public OnVehicleStreamIn(vehicleid, forplayerid)
  325. {
  326.     return 1;
  327. }
  328.  
  329.  
  330.  
  331. public OnVehicleStreamOut(vehicleid, forplayerid)
  332. {
  333.     return 1;
  334. }
  335.  
  336.  
  337.  
  338. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  339. {
  340.     if( dialogid == 0 ) //Registracija
  341.     {
  342.         if( response )
  343.         {
  344.             new pw[40];
  345.             mysql_real_escape_string(inputtext, pw);
  346.             if( !strlen( pw ) )
  347.             {
  348.                 SendClientMessage( playerid,-1,"Laukelis negali būti tuščias." );
  349.                 ShowPlayerDialog( playerid,0,DIALOG_STYLE_INPUT,"Registracija","Sveikas atvykes! Užsiregistruok.\nSlaptažodis: ","Registruotis","Atšaukti" );
  350.                 return 1;
  351.             }
  352.             if( strlen( pw ) > 40 )
  353.             {
  354.                 SendClientMessage( playerid,-1,"Slaptažodis negali būti ilgesnis nei 40simbolių." );
  355.                 ShowPlayerDialog( playerid,0,DIALOG_STYLE_INPUT,"Registracija","Sveikas atvykes! Užsiregistruok.\nSlaptažodis: ","Registruotis","Atšaukti" );
  356.                 return 1;
  357.             }
  358.  
  359.             new
  360.                 Query[ 150 ]
  361.             ;
  362.             format( Query,sizeof( Query ),"INSERT INTO `zaidejai` (vardas,slaptazodis) VALUES ('%s','%s')",GetPlayerNameEx( playerid ), pw );
  363.             mysql_query( Query );
  364.             online[playerid] = true;
  365.             from_reg[playerid] = true;
  366.             SendClientMessage(playerid, 0x00FF00FF, "Sėkmingai užsiregistravai! Spausk 'Spawn' norėdamas prisijungti.");
  367.         }
  368.         else
  369.         {
  370.             Kick( playerid );
  371.         }
  372.         return 1;
  373.     }
  374.     if( dialogid == 1 ) //Prisijungimas
  375.     {
  376.         if( response )
  377.         {
  378.             new pw[40];
  379.             mysql_real_escape_string(inputtext, pw);
  380.             if( strlen( pw ) > 40 )
  381.             {
  382.                 SendClientMessage( playerid,-1,"Slaptažodis negali būti ilgesnis nei 40simbolių." );
  383.                 ShowPlayerDialog( playerid,1,DIALOG_STYLE_PASSWORD,"Prisijungimas","Malonu, kad gryžai :) Prisijunk!\nSlaptažodis: ","Jungtis","Atšaukti" );
  384.                 return 1;
  385.             }
  386.  
  387.             new
  388.                 Query[ 150 ]
  389.             ;
  390.             format( Query,sizeof( Query ),"SELECT * FROM `zaidejai` WHERE vardas = '%s' AND slaptazodis = '%s'",GetPlayerNameEx( playerid ),pw );
  391.             mysql_query( Query );
  392.             mysql_store_result( );
  393.  
  394.             if(! mysql_num_rows( ) )
  395.             {
  396.                 if(trylog[playerid] > 2) { SendClientMessage(playerid, 0xFF0000FF, "Norėdamas(-a) išeiti, rašyk /q"); Kick(playerid); }
  397.                 trylog[playerid]++;
  398.                 SendClientMessage(playerid, -1, "Neteisingas slaptažodis..");
  399.                 ShowPlayerDialog( playerid,1,DIALOG_STYLE_INPUT,"Prisijungimas","Malonu, kad gryžai :) Prisijunk!\nSlaptažodis: ","Jungtis","Atšaukti" );
  400.             }
  401.             else
  402.             {
  403.                 SendClientMessage( playerid,0x97FC3CFF,"Prisijungei sėkmingai!" );
  404.                 online[playerid] = true;
  405.                 from_login[playerid] = true;
  406.                 return 1;
  407.             }
  408.             mysql_free_result( );
  409.             return 1;
  410.         }
  411.         if( !response )
  412.         {
  413.             Kick( playerid );
  414.         }
  415.         return 1;
  416.     }
  417.  
  418.     return 1;
  419. }
  420.  
  421. stock MySQL_Save(playerid)
  422. {
  423.     if( online[playerid] )
  424.     {
  425.         new
  426.             Float: pos[3], // 0,1,2 - pozicija;
  427.             Query[512];
  428.  
  429.         printf("Išsaugoma. [%s]", GetPlayerNameEx(playerid));
  430.  
  431.         GetPlayerPos(playerid,pos[0],pos[1],pos[2]);
  432.         format( Query,sizeof( Query ),"UPDATE `zaidejai` SET x = '%f', y = '%f', z = '%f' WHERE vardas = '%s'",\
  433.         pos[0], pos[1], pos[2], GetPlayerNameEx( playerid ));
  434.         mysql_query( Query );
  435.  
  436.  
  437.         playerData[playerid][pSkin] = GetPlayerSkin(playerid);
  438.         playerData[playerid][pPinigai] = GetPlayerMoney(playerid);
  439.         playerData[playerid][pPatirtis] = GetPlayerScore(playerid);
  440.  
  441.         format( Query, sizeof(Query),"UPDATE `zaidejai` SET skin = '%i', pinigai = '%i', patirtis = '%i' WHERE vardas = '%s'",\
  442.         playerData[playerid][pSkin], playerData[playerid][pPinigai], playerData[playerid][pPatirtis], GetPlayerNameEx(playerid));
  443.         mysql_query( Query );
  444.  
  445.         new Float:HP, Float:ARM;
  446.         GetPlayerArmour(playerid, ARM);
  447.         GetPlayerHealth(playerid, HP);
  448.         format(Query, sizeof(Query), "UPDATE `zaidejai` SET hp = '%f', armour = '%f' WHERE vardas = '%s'",\
  449.         HP,ARM, GetPlayerNameEx(playerid));
  450.         mysql_query(Query);
  451.     }
  452.     return 1;
  453. }
  454.  
  455. stock MySQL_Load(playerid)
  456. {
  457.     new
  458.         Float: pos[3], // 0,1,2 - pozicija;
  459.         fetch[16],
  460.         Query[256];
  461.  
  462.     format(Query, sizeof(Query), "SELECT * FROM `zaidejai` WHERE vardas = '%s'", GetPlayerNameEx(playerid));
  463.     mysql_query(Query);
  464.     mysql_store_result();
  465.     mysql_retrieve_row();
  466.  
  467.     mysql_fetch_field_row( fetch, "x" );
  468.     pos[0] = floatstr(fetch);
  469.     mysql_fetch_field_row( fetch, "y" );
  470.     pos[1] = floatstr(fetch);
  471.     mysql_fetch_field_row( fetch, "z" );
  472.     pos[2] = floatstr(fetch);
  473.  
  474.     SetPlayerPos( playerid, pos[0], pos[1], pos[2] + 0.75);
  475.  
  476.     mysql_fetch_field_row( fetch,"skin" );          playerData[playerid][pSkin] = strval(fetch);    SetPlayerSkin(playerid, playerData[playerid][pSkin]);
  477.     mysql_fetch_field_row( fetch,"pinigai" );       playerData[playerid][pPinigai] = strval(fetch); GivePlayerMoney(playerid, playerData[playerid][pPinigai]);
  478.     mysql_fetch_field_row( fetch,"patirtis" );      playerData[playerid][pPatirtis] = strval(fetch);    SetPlayerScore(playerid, playerData[playerid][pPatirtis]);
  479.  
  480.     new Float: HP,
  481.         Float: ARM;
  482.  
  483.     mysql_fetch_field_row( fetch,"hp" );            HP = floatstr( fetch );     SetPlayerHealth( playerid, HP);
  484.     mysql_fetch_field_row( fetch,"armour" );        ARM = floatstr( fetch );    SetPlayerArmour( playerid, ARM);
  485.  
  486.     mysql_free_result();
  487.  
  488.     printf("Pakrautas žaidėjas. [%s]", GetPlayerNameEx(playerid));
  489.  
  490.     return 1;
  491. }
  492.  
  493. stock GetPlayerNameEx( playerid )
  494. {
  495.     new
  496.         Name[ MAX_PLAYER_NAME ]
  497.     ;
  498.     GetPlayerName( playerid,Name,MAX_PLAYER_NAME );
  499.     return Name;
  500. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement