Rock

RASystem

Aug 16th, 2011
378
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 6.62 KB | None | 0 0
  1. #include < a_samp >
  2. #include <  zcmd  >
  3. #include < sscanf >
  4.  
  5. #define BUD_USE_WHIRLPOOL false
  6. #define BUD_MAX_COLUMNS 10
  7.  
  8. #include < BUD >
  9.  
  10. #define Register_D1       1_3_3_7
  11. #define Register_D2       2_3_3_7
  12. #define Register_D3       3_3_3_7
  13. #define Register_D4       4_3_3_7
  14. #define Login_D1          5_3_3_7
  15. #define Login_D2          6_3_3_7
  16. #define Login_D3          7_3_3_7
  17.  
  18. #define MAX_TRYES        3
  19.  
  20. #define C_R             "{F81414}"
  21. #define C_W             "{FFFFFF}"
  22.  
  23. #if !defined IsNull
  24.     #define IsNull(%1) \
  25.                 ((!(%1[0])) || (((%1[0]) == '\1') && (!(%1[1]))))
  26. #endif
  27.  
  28. enum RAS_DATA
  29. {
  30.     rK_TRY,
  31.     rK_CASH,
  32.     rK_SCORE
  33. }
  34. new
  35.     ROCK_PDATA[ MAX_PLAYERS ][ RAS_DATA ]
  36. ;
  37.  
  38. public OnFilterScriptInit( )
  39. {
  40.     BUD::Setting(  opt.Database, "Users.db"  );
  41.     BUD::Setting(  opt.Asynchronous, true    );
  42.     BUD::Setting(  opt.KeepAliveTime, 3000   );
  43.     BUD::Setting(  opt.CheckForUpdates, true );
  44.  
  45.     BUD::Initialize( );
  46.  
  47.     BUD::VerifyColumn(  "Money", BUD::TYPE_NUMBER, rRandom( 500 )  ); // You can delete "rRandom from here, it was just for tests
  48.     BUD::VerifyColumn(  "Score", BUD::TYPE_NUMBER, rRandom( 500 )  ); // If you don't delete it, all players will have an random amount of money and score between 0 and 500
  49.    
  50.     /* For testing
  51.     BUD::RegisterName( "Bla0", "test" );
  52.     BUD::RegisterName( "Bla1", "test" );
  53.     BUD::RegisterName( "Bla2", "test" );
  54.     BUD::RegisterName( "Bla3", "test" );
  55.     */
  56.  
  57.     print("\n------------------------------------");
  58.     print("     Rock's Account System Loaded   \n");
  59.     print("------------------------------------\n");
  60.    
  61.     return 1;
  62.  
  63. }
  64.  
  65. public OnFilterScriptExit( )
  66. {
  67.     BUD::Exit( );
  68.  
  69.     print("\n------------------------------------");
  70.     print("    Rock's Account System UnLoaded  \n");
  71.     print("------------------------------------\n");
  72. }
  73.  
  74. public OnPlayerConnect( playerid )
  75. {
  76.     new _rK[ 128 ];
  77.     if( !BUD::IsNameRegistered( GetName( playerid ) ) )
  78.     {
  79.         format( _rK, sizeof( _rK ), ""C_W"Bine ai venit "C_R"%s\n"C_W"Ai nevoie de unde cont ca sa poti juca pe server.", GetName( playerid ) );
  80.         ShowPlayerDialog( playerid, Register_D1, DIALOG_STYLE_MSGBOX, "Cont nou", _rK, "Register", "Kick" );
  81.     }
  82.     else
  83.     {
  84.         format( _rK, sizeof( _rK ), ""C_W"Welcome "C_R"%s\n"C_W"Acest cont este deja inregistrat\nLogheaza-te Acum!", GetName( playerid ) );
  85.         ShowPlayerDialog( playerid, Login_D1, DIALOG_STYLE_MSGBOX, "Logheaza-te", _rK, "Login", "Kick" );
  86.     }
  87.     return 1;
  88. }
  89.  
  90. public OnPlayerDisconnect( playerid, reason )
  91. {
  92.     new
  93.         iUID = BUD::GetNameUID( GetName( playerid ) )
  94.     ;
  95.     BUD::MultiSet( iUID, "ii",
  96.         "Money", ROCK_PDATA[ playerid ][ rK_CASH  ],
  97.         "Score", ROCK_PDATA[ playerid ][ rK_SCORE ]
  98.     );
  99.     return 1;
  100. }
  101.  
  102. public OnDialogResponse( playerid, dialogid, response, listitem, inputtext[ ] )
  103. {
  104.     if ( dialogid == Register_D1 )
  105.     {
  106.         if ( response )
  107.         {
  108.             ShowPlayerDialog( playerid, Register_D2, DIALOG_STYLE_INPUT, "Scrie Parola", ""C_W"Scrie parola care o doresti:", "Enter", "");
  109.         }
  110.         if ( !response ) Kick( playerid );
  111.     }
  112.     if ( dialogid == Register_D4 )
  113.     {
  114.         if ( response )
  115.         {
  116.             ShowPlayerDialog( playerid, Register_D2, DIALOG_STYLE_INPUT, "Scrie Parola", ""C_W"Scrie parola care o doresti:", "Enter", "");
  117.         }
  118.     }
  119.     if ( dialogid == Register_D2 )
  120.     {
  121.         if ( response )
  122.         {
  123.             if ( strlen( inputtext ) == 0 ) return ShowPlayerDialog( playerid, Register_D2, DIALOG_STYLE_INPUT, "Scrie Parola", ""C_R"Nu ai scris nici-o parola\n"C_W"Scrie parola care o doresti:", "Enter", "");
  124.             if ( BUD::RegisterName( GetName( playerid ), inputtext ) )
  125.             {
  126.                 new iUID = BUD::GetNameUID( GetName( playerid ) );
  127.                 new RString[ 128 ];
  128.                 BUD::MultiSet( iUID, "s", "Password", inputtext );
  129.                 format( RString, sizeof( RString ), ""C_W"Account Created!\n\nAccount: "C_R"%s\n"C_W"Password: "C_R"%s", GetName( playerid ), inputtext );
  130.                 ShowPlayerDialog( playerid, Register_D3, DIALOG_STYLE_MSGBOX, "Cont Creat.", RString, "Login", "");
  131.             }
  132.         }
  133.         if( !response ) return Kick( playerid );
  134.     }
  135.     if ( dialogid == Register_D3 )
  136.     {
  137.         if ( response )
  138.         {
  139.             ShowPlayerDialog( playerid, Login_D2, DIALOG_STYLE_INPUT, "Scrie Parola", ""C_W"Scrie parola care o doresti:", "Enter", "");
  140.         }
  141.     }
  142.     if ( dialogid == Login_D1 )
  143.     {
  144.         if ( response )
  145.         {
  146.             ShowPlayerDialog( playerid, Login_D2, DIALOG_STYLE_INPUT, "Scrie Parola", ""C_W"Scrie parola de la cont:", "Enter", "");
  147.         }else Kick( playerid );
  148.     }
  149.     if ( dialogid == Login_D3 )
  150.     {
  151.         if ( response )
  152.         {
  153.             ShowPlayerDialog( playerid, Login_D2, DIALOG_STYLE_INPUT, "Scrie Parola", ""C_W"Scrie parola de la cont:", "Enter", "");
  154.         }
  155.     }
  156.     if ( dialogid == Login_D2 )
  157.     {
  158.         if ( response )
  159.         {
  160.             if( strlen( inputtext ) == 0 ) return ShowPlayerDialog( playerid, Login_D2, DIALOG_STYLE_INPUT, "Scrie Parola", ""C_W"Nu ai scris nici-o parola\n"C_W"Scrie parola care o doresti:", "Enter", "");
  161.             if( BUD::CheckAuth( GetName( playerid ), inputtext ) )
  162.             {
  163.                 new Money, Score;
  164.                 new iUID = BUD::GetNameUID( GetName( playerid ) );
  165.  
  166.                 BUD::MultiGet( iUID, "ii",
  167.                     "Money", Money,
  168.                     "Score", Score
  169.                 );
  170.                 ROCK_PDATA[ playerid ][ rK_SCORE ] = Score;
  171.                 ROCK_PDATA[ playerid ][ rK_CASH ] = Money;
  172.                 SendClientMessage( playerid, -1, ""C_W"Te-ai logat cu succes.");
  173.             }
  174.             else
  175.             {
  176.                 new r_Var[ 150 ];
  177.                 ROCK_PDATA[ playerid ][ rK_TRY ] ++;
  178.                 format( r_Var, sizeof( r_Var ), ""C_R"Parola Incorecta\n"C_W"Incercari "C_R"%i"C_W"/"C_R"%i\n"C_W"Introdu parola corecta", ROCK_PDATA[ playerid ][ rK_TRY ], MAX_TRYES );
  179.                 ShowPlayerDialog( playerid, Login_D2, DIALOG_STYLE_MSGBOX, "Parola Incorecta", r_Var, "Enter", "Kick" );
  180.                 if( ROCK_PDATA[ playerid ][ rK_TRY ] == MAX_TRYES ) return Kick( playerid );
  181.             }
  182.  
  183.         }else Kick( playerid );
  184.     }
  185.     return 1;
  186. }
  187.  
  188. // Usage: /top money, /top score
  189. CMD:top( playerid, params[ ] )
  190. {
  191.     if( IsNull( params ) ) return SendClientMessage( playerid, -1, "Syntax: /top <money/score>");
  192.    
  193.     new
  194.         BUD::Results: rSort< 5 >,
  195.         rName[ 10 ][ MAX_PLAYER_NAME ],
  196.         rResults = BUD::GetSortedData( rName, params )
  197.     ;
  198.     BUD::GetNamesForSortedData( rSort, rResults, rName );
  199.    
  200.     if( rResults == -1 ) return print( "WARNING: BUD::GetSortedData Failed!" );
  201.     else
  202.     {
  203.         for ( new i = 0; i < rResults; i++ )
  204.         {
  205.             printf( "Users: %s (%d)\t%d", rName, rSort[ i ][ 0 ], rSort[ i ][ 1 ] );
  206.         }
  207.     }
  208.     return 1;
  209. }
  210.  
  211. rRandom( rVar = 0 )
  212. {
  213.     random( rVar );
  214.     return rVar;
  215. }
  216.  
  217. stock GetName( playerid )
  218. {
  219.         new _RocKzSk[ MAX_PLAYER_NAME ];
  220.         GetPlayerName( playerid, _RocKzSk, sizeof _RocKzSk );
  221.         return ( _RocKzSk );
  222. }
Advertisement
Add Comment
Please, Sign In to add comment