Guest User

Sistem de inregistrare Mysql

a guest
Mar 17th, 2014
178
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 11.66 KB | None | 0 0
  1. ////////////////////////////////////////////////////////////////////////////////
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9.  
  10.  
  11.  
  12.  
  13.  
  14.  
  15. ////////////////////////////////////////////////////////////////////////////////
  16. main( ) { }
  17. #include <a_samp>
  18. #include <streamer>
  19. #include <YSI\y_ini>
  20. #include <mysql>
  21. //******************************************************************************
  22. //          Define-uri
  23. //******************************************************************************
  24. //Colors
  25. #define COLOR_WHITE 0xFFFFFFFF
  26. //
  27. #define SPD                   ShowPlayerDialog
  28. #define SCM                   SendClientMessage
  29. #define DIALOG_REGISTER       ( 101 )
  30. #define DIALOG_LOGIN          ( 102 )
  31. #define DIALOG_SEX            ( 103 )
  32. #define DIALOG_VARSTA         ( 104 )
  33. #define DIALOG_EMAIL          ( 105 )
  34. //******************************************************************************
  35. #define mysql_host "localhost"
  36. #define mysql_user "trinity"
  37. #define mysql_db   "Accounts"
  38. #define mysql_pass "calculator"
  39. //******************************************************************************
  40. //          Forwards
  41. //******************************************************************************
  42. forward RefreshMenuHeader(playerid,Menu:menu,text[]);
  43. //******************************************************************************
  44. //          Enums
  45. //******************************************************************************
  46.  
  47. enum PlayerData
  48. {
  49.     Sex                        ,
  50.     Varsta                     ,
  51.     Spawn                      ,
  52.     Interior                   ,
  53.     Nume [ MAX_PLAYER_NAME ]   ,
  54.     Bani                       ,
  55.     Scor                       ,
  56.     Ucideri                    ,
  57.     Decese
  58. } ;
  59. //new PlayerInfo[MAX_PLAYERS][PlayerData];
  60.  
  61. new
  62.         P_DATA      [ MAX_PLAYERS ] [ PlayerData ] ,
  63.         bool: Logat [ MAX_PLAYERS ]                ,
  64.         DB:Accounts
  65. ;
  66.  
  67. //******************************************************************************
  68. //          Functii Public
  69. //******************************************************************************
  70.  
  71. public OnPlayerCommandText(playerid, cmdtext[])
  72. {
  73.     return 0;
  74. }
  75. public OnGameModeInit()
  76. {
  77.     print(" ");
  78.     print("------[HardCore-Gaming RPG]-------------");
  79.     print("________________________________________");
  80.     print("---(GameMode creeat de: Yugato)----------");
  81.     print(" ");
  82.     mysql_connect ( "localhost", "trinity", "Accounts", "calculator" );
  83.     SetGameModeText("HC:RP v0.0.1");
  84.     AddPlayerClass(60,1743.0549,-1861.2273,13.5778,46.8583,0,0,0,0,0,0);
  85.     new
  86.     string [   756   ]
  87.     ;
  88.     Accounts = db_open ( "Accounts.db" ) ;
  89.     strcat ( string , "CREATE TABLE IF NOT EXISTS `Jucatori`"  ,     756 ) ;
  90.     strcat ( string , "(`ID` INTEGER PRIMARY KEY AUTOINCREMENT             ,\
  91.                        `Nume`                            TEXT             ,\
  92.                        `Sex`                          NUMERIC             ,\
  93.                        `Parola`                          TEXT             ,\
  94.                        `Email`                           TEXT             ,\
  95.                        `Varsta`                       NUMERIC             ,\
  96.                        `Bani`                         NUMERIC             ,\
  97.                        `Scor`                         NUMERIC , " , 756 ) ;
  98.     strcat ( string ,  "`Interior`                     NUMERIC             ,\
  99.                        `Ucideri`                      NUMERIC             ,\
  100.                        `Decese`                       NUMERIC ) " , 756 ) ;
  101.     db_free_result ( db_query ( Accounts , string ) ) ;
  102.     return ( 1 ) ;
  103. }
  104. public OnGameModeExit()
  105. {
  106.    db_close ( Accounts ) ;
  107.    return ( 1 ) ;
  108. }
  109. public OnPlayerConnect ( playerid )
  110. {
  111.    new
  112.         Query [   256           ] ,
  113.         pNume [ MAX_PLAYER_NAME ] ,
  114.         DBResult:Result
  115.    ;
  116.    Logat  [ playerid ] = false ;
  117.    GetPlayerName ( playerid , pNume , MAX_PLAYER_NAME ) ;
  118.    strcpy ( P_DATA [ playerid ] [ Nume ] , DB_Escape ( pNume ) , MAX_PLAYER_NAME ) ;
  119.    format ( Query , 256 , "SELECT * FROM `Jucatori` WHERE `Nume` = '%s'" , P_DATA [ playerid ] [ Nume ] ) ;
  120.    Result = db_query ( Accounts , Query ) ;
  121.    if ( db_num_rows ( Result ) > 0 )
  122.       SPD ( playerid , DIALOG_LOGIN , DIALOG_STYLE_PASSWORD , "Logheaza-te" , "Introdu parola in casuta de mai jos:" , "Login" , "Renunta" ) ;
  123.    else
  124.       ShowPlayerDialog(playerid,DIALOG_EMAIL,DIALOG_STYLE_INPUT,"Email","Scrie aici email-ul tau","O.K.","");
  125.    if ( Logat [ playerid ] )
  126.    {
  127.        SpawnPlayer(playerid);
  128.    }
  129.    db_free_result ( Result ) ;
  130.    return ( 1 ) ;
  131. }
  132. public OnPlayerDisconnect ( playerid , reason )
  133. {
  134.    if ( Logat [ playerid ] )
  135.    {
  136.       new
  137.          Query [   256   ]
  138.       ;
  139.       format ( Query , sizeof ( Query ) , "UPDATE `Jucatori` SET `Bani` = '%d' ,`Scor` = '%d' , `Ucideri` = '%d' , `Decese` = '%d' , `Sex` = '%d' , `Interior` = '%d' , `Varsta` = '%d' WHERE `Nume` = '%s'"
  140.         , GetPlayerMoney ( playerid ) , GetPlayerScore ( playerid ) , P_DATA [ playerid ] [ Ucideri ] , P_DATA [ playerid ] [ Decese ] , P_DATA [ playerid ] [ Nume ] ) ;
  141.       db_free_result ( db_query ( Accounts , Query ) ) ;
  142.    }
  143.    return ( 1 ) ;
  144. }
  145. public OnPlayerDeath ( playerid , killerid , reason )
  146. {
  147.    P_DATA [ playerid ] [ Decese ] ++ ;
  148.    if ( killerid != INVALID_PLAYER_ID )
  149.    {
  150.       P_DATA [ killerid ] [ Ucideri ] ++ ;
  151.    }
  152.    return ( 1 ) ;
  153. }
  154. public OnDialogResponse ( playerid , dialogid , response , listitem , inputtext [ ] )
  155. {
  156.     if ( dialogid == DIALOG_EMAIL )
  157.     {
  158.        if ( !response || isnull(inputtext ) ) return ShowPlayerDialog(playerid,DIALOG_EMAIL,DIALOG_STYLE_INPUT,"Email","Scrie aici email-ul tau","O.K.","");
  159.        new
  160.           Query [   256   ]
  161.        ;
  162.        format ( Query , sizeof ( Query ) , "INSERT INTO `Jucatori` ( `Email` ) VALUE ( '%s' )"
  163.         , P_DATA [ playerid ] [ Nume ] , DB_Escape ( inputtext ) , 0 ) ;
  164.        db_free_result ( db_query ( Accounts , Query ) ) ;
  165.        SPD ( playerid , DIALOG_REGISTER , DIALOG_STYLE_PASSWORD , "Inregistreaza-te" , "Introduceti o parola pentru a va inregistra:" , "Register" , "Renunta" );
  166.        return ( 1 ) ;
  167.     }
  168.     if ( dialogid == DIALOG_REGISTER )
  169.     {
  170.        if ( !response || isnull(inputtext ) ) return SPD ( playerid , DIALOG_REGISTER , DIALOG_STYLE_PASSWORD , "Inregistreaza-te" , "Introduceti o parola pentru a va inregistra:" , "Register" , "Renunta" ) ;
  171.        new
  172.           Query [   256   ]
  173.        ;
  174.        format ( Query , sizeof ( Query ) , "INSERT INTO `Jucatori` ( `Nume` , `Parola` , `Email` , `Bani` , `Scor` , `Ucideri` , `Decese`  , `Sex` , `Interior` , `Varsta` ) VALUES ( '%s' , '%s' , '%s' , '%d' , '%d' , '%d' , '%d' , '%d' , '%d' , '%d' )"
  175.         , P_DATA [ playerid ] [ Nume ] , DB_Escape ( inputtext ) , 0 , 0 , 0 , 0 , 0 , 0 ) ;
  176.        db_free_result ( db_query ( Accounts , Query ) ) ;
  177.        ShowPlayerDialog(playerid,DIALOG_SEX,DIALOG_STYLE_LIST,"Care este sexul tau?","Masculin \nFeminin","Select","");
  178.        return ( 1 ) ;
  179.     }
  180.     if(dialogid == DIALOG_SEX)
  181.     {
  182.         if ( !response || isnull(inputtext ) ) return ShowPlayerDialog(playerid,DIALOG_SEX,DIALOG_STYLE_LIST,"Care este sexul tau?","Masculin \nFeminin","Select","");
  183.         {
  184.             if(listitem == 0)
  185.             {
  186.                 new
  187.                    Query [   256   ]
  188.                 ;
  189.                 format ( Query , sizeof ( Query ) , "INSERT INTO `Jucatori` ( `Sex` ) VALUE ( '1' )"
  190.                 , P_DATA [ playerid ] [ Nume ] , DB_Escape ( inputtext ) , 0 , 0 , 0 , 0 ) ;
  191.                 db_free_result ( db_query ( Accounts , Query ) ) ;
  192.                 SendClientMessage(playerid,COLOR_WHITE,"[{3399FF}HardCore-Gaming{FFFFFF}]Bine,Deci esti baiat");
  193.                 ShowPlayerDialog(playerid,DIALOG_VARSTA,DIALOG_STYLE_INPUT,"Varsta","Scrie ce varsta ai!","OK","");
  194.             }
  195.             else if(listitem == 1)
  196.             {
  197.                 new
  198.                    Query [   256   ]
  199.                 ;
  200.                 format ( Query , sizeof ( Query ) , "INSERT INTO `Jucatori` ( `Sex` ) VALUE ( '2' )"
  201.                 , P_DATA [ playerid ] [ Nume ] , DB_Escape ( inputtext ) , 0 , 0 , 0 , 0 ) ;
  202.                 db_free_result ( db_query ( Accounts , Query ) ) ;
  203.                 SendClientMessage(playerid,COLOR_WHITE,"[{3399FF}HardCore-Gaming{FFFFFF}]Bine,Deci esti fata");
  204.                 ShowPlayerDialog(playerid,DIALOG_VARSTA,DIALOG_STYLE_INPUT,"Varsta","Scrie ce varsta ai!","OK","");
  205.             }
  206.         }
  207.     }
  208.     if(dialogid == DIALOG_VARSTA)
  209.     {
  210.         if ( !response || isnull(inputtext ) ) return ShowPlayerDialog(playerid,DIALOG_VARSTA,DIALOG_STYLE_INPUT,"Varsta","Scrie ce varsta ai!","OK","");
  211.         {
  212.             new varsta = strval(inputtext);
  213.             if(varsta >5 && varsta<90)
  214.             {
  215.                 new
  216.                    Query [   256   ]
  217.                 ;
  218.                 format ( Query , sizeof ( Query ) , "INSERT INTO `Jucatori` ( `Varsta` ) VALUE ( '%d' )"
  219.                 , P_DATA [ playerid ] [ Nume ] , DB_Escape ( inputtext ) , 0 /*, 0 , 0 , 0*/ ) ;
  220.                 db_free_result ( db_query ( Accounts , Query ) ) ;
  221.                 new string[256];
  222.                 format(string,256,"[{3399FF}HardCore-Gaming{FFFFFF}]Bine,deci ai %d ani",varsta);
  223.                 SendClientMessage(playerid,COLOR_WHITE,string);
  224.             }
  225.         }
  226.         SCM ( playerid , -1 , "Te-ai inregistrat cu succes." ) ;
  227.         SPD ( playerid , DIALOG_LOGIN , DIALOG_STYLE_PASSWORD , "Logheaza-te" , "Introdu parola in casuta de mai jos:" , "Login" , "Renunta" ) ;
  228.     }
  229.     if ( dialogid == DIALOG_LOGIN )
  230.     {
  231.        if ( !response || isnull ( inputtext ) ) return SPD ( playerid , DIALOG_LOGIN , DIALOG_STYLE_PASSWORD , "Logheaza-te" , "Introdu parola in casuta de mai jos:" , "Login" , "Renunta" ) ;
  232.        new
  233.           Query  [   256   ] ,
  234.           DBResult:Result
  235.        ;
  236.        format ( Query , sizeof ( Query ) , "SELECT `Bani` , `Scor` , `Ucideri` , `Decese` FROM `Jucatori` WHERE `Nume` = '%s' AND `Parola` = '%s'"
  237.          , P_DATA [ playerid ] [ Nume ] , DB_Escape ( inputtext ) ) ;
  238.        Result = db_query ( Accounts , Query ) ;
  239.        if ( db_num_rows ( Result ) )
  240.        {
  241.           new
  242.              Field [   30   ]
  243.           ;
  244.           db_get_field_assoc ( Result , "Bani" , Field , 30 ) ;
  245.           P_DATA [ playerid ] [ Bani ] = strval ( Field ) ;
  246.           ResetPlayerMoney ( playerid ) ;
  247.           GivePlayerMoney ( playerid , strval ( Field ) ) ;
  248.  
  249.           db_get_field_assoc ( Result , "Scor" , Field , 30 ) ;
  250.           P_DATA [ playerid ] [ Scor ] = strval ( Field ) ;
  251.           SetPlayerScore ( playerid , strval ( Field ) ) ;
  252.  
  253.           db_get_field_assoc ( Result , "Ucideri" , Field , 30 ) ;
  254.           P_DATA [ playerid ] [ Ucideri ] = strval ( Field ) ;
  255.  
  256.           db_get_field_assoc ( Result , "Decese" , Field , 30 ) ;
  257.           P_DATA [ playerid ] [ Decese ] = strval(Field);
  258.  
  259.        }
  260.        else
  261.        {
  262.           SPD ( playerid , DIALOG_LOGIN , DIALOG_STYLE_PASSWORD , "Logheaza-te" , "Parola gresita.Introdu parola in casuta de mai jos:" , "Login" , "Renunta" ) ;
  263.        }
  264.        db_free_result ( Result ) ;
  265.        Logat [ playerid ] = true ;
  266.        return ( 1 ) ;
  267.     }
  268.     return ( 0 ) ;
  269. }
  270. stock DB_Escape ( text [] )
  271. {
  272.    new
  273.       ret[ MAX_INI_ENTRY_TEXT * 2 ] ,
  274.       ch                            ,
  275.       i                             ,
  276.       j
  277.    ;
  278.    while ( ( ch = text [ i++ ] ) && j < sizeof ( ret ) )
  279.    {
  280.       if ( ch == '\'' )
  281.       {
  282.          if  ( j < sizeof ( ret ) - 2 )
  283.          {
  284.             ret [ j++ ] = '\'' ;
  285.             ret [ j++ ] = '\'' ;
  286.          }
  287.       }
  288.       else if ( j < sizeof ( ret ) )
  289.       {
  290.          ret [ j++ ] = ch ;
  291.       }
  292.       else
  293.       {
  294.          j++ ;
  295.       }
  296.    }
  297.    ret [ sizeof ( ret ) - 1 ] = '\0' ;
  298.    return ret ;
  299. }
Advertisement
Add Comment
Please, Sign In to add comment