Advertisement
Guest User

Zh3r0

a guest
Jan 2nd, 2011
702
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 9.79 KB | None | 0 0
  1. #include    <  a_samp >
  2. #include    <  ZCMD   >
  3. #include    < sscanf  >
  4. #include    <YSI/y_ini>
  5.  
  6.  
  7. #define COL_RED         \
  8.         "{F81414}"
  9.        
  10. #define COL_LIGHTBLUE   \
  11.         "{00C0FF}"
  12.        
  13. #define COL_LRED        \
  14.         "{FFA1A1}"
  15.  
  16. #define COL_GREEN       \
  17.         "{6EF83C}"
  18.        
  19. #define DIALOG_REG      \
  20.         1995
  21.        
  22. #define DIALOG_REG_REQ  \
  23.         1996
  24.        
  25. #define DIALOG_LOGIN    \
  26.         1997
  27.  
  28. #define DIALOG_LOGIN2   \
  29.         1998
  30.        
  31. #define DIALOG_LOG_DONE \
  32.         1999
  33.        
  34. #define DIALOG_LOG      \
  35.         2000
  36.  
  37.  
  38. public OnFilterScriptInit( )    return 1;
  39. public OnFilterScriptExit( )    return 1;
  40.  
  41.  
  42. forward Parola( playerid, name[ ], value[ ] );
  43. public Parola( playerid, name[ ], value[ ] )
  44. {
  45.     if ( !strcmp( name, "PAROLA" ) )
  46.     {
  47.         SetPVarString( playerid, "pPass", value );
  48.     }
  49. }
  50.  
  51. forward LoadUser( playerid, name[ ], value[ ] );
  52. public LoadUser( playerid, name[ ], value[ ] )
  53. {
  54.     if ( !strcmp(name, "DATA INREGISTRARII" ) )SetPVarString( playerid, "Data", value );
  55.  
  56.     if ( !strcmp(name, "BANI" ) )SetPVarInt( playerid, "Moneys", strval( value ) );
  57.  
  58.     if ( !strcmp(name, "SCOR" ) )SetPVarInt( playerid, "Score", strval( value ) );
  59. }
  60.  
  61. CMD:register( playerid, params[ ] )
  62. {
  63.     #pragma unused params
  64.     if ( GetPVarInt( playerid, "Logged" ) == 1 )
  65.         return SendClientMessage( playerid, -1, ""COL_RED"ERROR:{FFFFFF} Deja esti inregistrat si logat.");
  66.  
  67.     ShowPlayerDialog( playerid, DIALOG_REG, DIALOG_STYLE_INPUT, "{FFFFFF}Parola", "{FFFFFF}Te rog scrie parola dorita.", ">>>", "Exit");
  68.     return 1;
  69. }
  70. CMD:login( playerid, params[ ] )
  71. {
  72.     #pragma unused params
  73.     if ( GetPVarInt( playerid, "Logged" ) == 1 )
  74.         return SendClientMessage( playerid, -1, ""COL_RED"ERROR:{FFFFFF} Deja esti inregistrat si logat.");
  75.  
  76.     ShowPlayerDialog( playerid, DIALOG_LOGIN2, DIALOG_STYLE_INPUT, "{FFFFFF}Parola", "{FFFFFF}Te rog scrie parola ta.", "Login", "Exit");
  77.     return 1;
  78. }
  79. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  80. {
  81.     switch( dialogid )
  82.     {
  83.         case DIALOG_REG:
  84.         {
  85.             if ( response )
  86.             {
  87.                 if ( sscanf( inputtext, "s", inputtext[ 0 ] || strlen( inputtext[ 0 ] ) == 0 ) )
  88.                     return ShowPlayerDialog( playerid, DIALOG_REG, DIALOG_STYLE_INPUT, "{FFFFFF}Parola", ""COL_RED"Eroare!\n\
  89.                                                                                             {FFFFFF}Te rog scrie parola dorita.\n",
  90.                                                                                             ">>>", "Exit");
  91.                 if ( strlen( inputtext[ 0 ] ) < 3 || strlen( inputtext[ 0 ] ) > 20 )
  92.                     return ShowPlayerDialog( playerid, DIALOG_REG, DIALOG_STYLE_INPUT, "{FFFFFF}Parola", ""COL_RED"Eroare!\n\
  93.                                                                                             {FFFFFF}Te rog scrie parola dorita.\n\
  94.                                                                                             "COL_RED"#{FFFFFF}Minim 3 caractere si maxim 20.",
  95.                                                                                             ">>>", "Exit");
  96.                 new
  97.                     PlayerFile[ 13 + MAX_PLAYER_NAME ],
  98.                     pDate[ 8 + 15 ], //HH:MM:SS + DD.MM.YYYY = 18
  99.                     pYear,
  100.                     pMonth,
  101.                     pDay,
  102.                     pHour,
  103.                     pMinute,
  104.                     pSecond,
  105.                     pIP[ 20 ],
  106.                     InfBox[ 512 ]
  107.                 ;
  108.                 getdate(pYear, pMonth, pDay ),gettime(pHour, pMinute, pSecond );
  109.                 GetPlayerIp( playerid, pIP, 20 );
  110.                
  111.                 format( PlayerFile , sizeof PlayerFile, "Accounts/%s.ini", Encode( pName( playerid ) ) );
  112.                 format( pDate, sizeof pDate, "%d:%d:%d  %d/%d/%d",pHour, pMinute, pSecond , pDay, pMonth, pYear );
  113.                 format( InfBox, sizeof InfBox, "{FFFFFF}Te-ai inregistrat cu succes!\n\n\
  114.                                                         "COL_LIGHTBLUE"Cont: {FFFFFF}%s\n\
  115.                                                         "COL_LIGHTBLUE"Parola: {FFFFFF}%s\n\n\
  116.                                                         Ai primit "COL_GREEN"$5000{FFFFFF}.\n\
  117.                                                         Doresti sa te loghezi?", pName( playerid ),
  118.                                                                                  inputtext       );
  119.                 ShowPlayerDialog( playerid, DIALOG_LOG, DIALOG_STYLE_MSGBOX, "Login", InfBox, "Da", "Nu" );
  120.                                                        
  121.                
  122.                
  123.                 new
  124.                     INI:PlayerAcc = INI_Open( PlayerFile );
  125.  
  126.                 INI_WriteString( PlayerAcc, "NUME",               pName( playerid )    );
  127.                 INI_WriteString( PlayerAcc, "PAROLA",             inputtext            );
  128.                 INI_WriteString( PlayerAcc, "DATA INREGISTRARII", pDate                );
  129.                 INI_WriteInt( PlayerAcc,    "BANI",               5000                 );
  130.                 INI_WriteInt( PlayerAcc,    "SCOR",               15                   );
  131.                 INI_Close( PlayerAcc );
  132.                
  133.                 SetPVarString( playerid, "Data", pDate );
  134.                 SetPVarInt( playerid, "Logged", 1 );
  135.                 GivePlayerMoney( playerid, 5000 );
  136.                 SetPlayerScore( playerid, GetPlayerScore( playerid ) + 15 );
  137.                
  138.  
  139.             }
  140.         }
  141.         case DIALOG_REG_REQ:
  142.         {
  143.             if ( response ) cmd_register( playerid, "");
  144.             if ( !response ) return 0;
  145.        
  146.         }
  147.        
  148.         case DIALOG_LOGIN: ShowPlayerDialog( playerid, DIALOG_LOGIN2, DIALOG_STYLE_INPUT, "{FFFFFF}Parola",
  149.                                                                                           "{FFFFFF}Te rog scrie parola ta.",
  150.                                                                                           "Login", "Exit");
  151.  
  152.         case DIALOG_LOG:
  153.         {
  154.             if ( response )
  155.                 ShowPlayerDialog( playerid, DIALOG_LOGIN2, DIALOG_STYLE_INPUT, "{FFFFFF}Parola",    "{FFFFFF}Te rog scrie parola ta.","Login","Exit");
  156.         }
  157.         case DIALOG_LOGIN2:
  158.         {
  159.             if ( !response ) return Kick( playerid );
  160.             if ( response )
  161.             {
  162.                 if ( strlen( inputtext ) == 0 )
  163.                     return ShowPlayerDialog( playerid, DIALOG_LOGIN2, DIALOG_STYLE_INPUT, "{FFFFFF}Parola",     ""COL_RED"Eroare!\n\
  164.                                                                                                                 {FFFFFF}Te rog scrie parola ta.",
  165.                                                                                                                 "Login", "Kick");
  166.  
  167.                 new
  168.                     PlayerFile[ 13 + MAX_PLAYER_NAME ],
  169.                     Password[ 20 + 1 ]
  170.                 ;
  171.                 format( PlayerFile , sizeof PlayerFile, "Accounts/%s.ini", Encode( pName( playerid ) ) );
  172.                 INI_ParseFile( PlayerFile, "Parola", false, true, playerid );
  173.                 GetPVarString( playerid, "pPass", Password, sizeof Password );
  174.  
  175.                 if ( !strcmp ( inputtext, Password, false ) )
  176.                 {
  177.                     new
  178.                         sTitle[ 21 + MAX_PLAYER_NAME + 25 ],
  179.                         sBoxInfo[ 512 ],
  180.                         Pdata[ 8 + 15 ]
  181.                     ;
  182.  
  183.                     SetPVarInt( playerid, "Logged", 1 );
  184.                     format( PlayerFile , sizeof PlayerFile, "Accounts/%s.ini", Encode( pName( playerid ) ) );
  185.                     INI_ParseFile( PlayerFile, "LoadUser", false, true, playerid, true, false );
  186.                     GetPVarString( playerid, "Data", Pdata, 8 + 10 );
  187.                     GivePlayerMoney( playerid,GetPVarInt( playerid, "Moneys" )  );
  188.                     SetPlayerScore( playerid, GetPVarInt( playerid, "Score" )  );
  189.  
  190.                     format( sTitle, sizeof sTitle, "{FFFFFF}Bine ai revenit, "COL_LIGHTBLUE"%s{FFFFFF}!", pName( playerid ) );
  191.                     format( sBoxInfo, sizeof sBoxInfo, "{FFFFFF}Acestea sunt statisticile tale:\n\n\
  192.                                                         {FFFFFF}Bani: "COL_LIGHTBLUE"%d\n\
  193.                                                         {FFFFFF}Scor: "COL_LIGHTBLUE"%d\n\
  194.                                                         {FFFFFF}Inregistrat: "COL_LIGHTBLUE"%s", GetPVarInt( playerid, "Moneys" ),
  195.                                                                                                  GetPVarInt( playerid, "Score" ),
  196.                                                                                                  Pdata );
  197.                     ShowPlayerDialog(playerid, DIALOG_LOG_DONE, DIALOG_STYLE_MSGBOX, sTitle, sBoxInfo, "Ok", "");
  198.  
  199.                 }
  200.                 else ShowPlayerDialog(playerid, DIALOG_LOGIN2, DIALOG_STYLE_INPUT, ""COL_RED"Parola Gresita", "Te rog scrie parola corecta", "Login", "Exit");
  201.                
  202.  
  203.             }
  204.         }
  205.     }
  206.     return 1;
  207. }
  208.  
  209. public OnPlayerConnect(playerid)
  210. {
  211.     SetPVarInt( playerid, "Logged", 0 );
  212.     SetPVarInt( playerid, "Moneys", 0 );
  213.     SetPVarInt( playerid, "Score", 0 );
  214.     if ( !INI_Exist( pName( playerid ) ) )
  215.         ShowPlayerDialog( playerid, DIALOG_REG_REQ, DIALOG_STYLE_MSGBOX, "{FFFFFF}Parola", "{FFFFFF}Pentru a te putea juca trebuie sa te inregistrezi", "Ok", "");
  216.     else
  217.         ShowPlayerDialog( playerid, DIALOG_LOGIN, DIALOG_STYLE_MSGBOX, "{FFFFFF}Parola", "{FFFFFF}Numele tau este inregistrat, doresti sa te loghezi?", "Da", "Nu");
  218.     return 1;
  219. }
  220.  
  221. public OnPlayerDisconnect(playerid, reason)
  222. {   SetPVarInt( playerid, "Logged", 0 );
  223.     return 1;}
  224.  
  225.  
  226. stock INI_Exist(nickname[])
  227. {
  228.   new tmp[255];
  229.   format(tmp,sizeof(tmp),"Accounts/%s.ini",Encode( nickname ) );
  230.   return fexist(tmp);
  231. }
  232.  
  233. stock pName( playerid )
  234. {
  235.     new Name[ MAX_PLAYER_NAME ];
  236.     GetPlayerName( playerid, Name, sizeof( Name ) );
  237.     return Name;
  238. }
  239.  
  240. //DracoBlue
  241. stock Encode(nickname[])
  242. {
  243.   new tmp[255];
  244.   set(tmp,nickname);
  245.   tmp=strreplace("_","_00",tmp);
  246.   tmp=strreplace(";","_01",tmp);
  247.   tmp=strreplace("!","_02",tmp);
  248.   tmp=strreplace("/","_03",tmp);
  249.   tmp=strreplace("\\","_04",tmp);
  250.   tmp=strreplace("[","_05",tmp);
  251.   tmp=strreplace("]","_06",tmp);
  252.   tmp=strreplace("?","_07",tmp);
  253.   tmp=strreplace(".","_08",tmp);
  254.   tmp=strreplace("*","_09",tmp);
  255.   tmp=strreplace("<","_10",tmp);
  256.   tmp=strreplace(">","_11",tmp);
  257.   tmp=strreplace("{","_12",tmp);
  258.   tmp=strreplace("}","_13",tmp);
  259.   tmp=strreplace(" ","_14",tmp);
  260.   tmp=strreplace("\"","_15",tmp);
  261.   tmp=strreplace(":","_16",tmp);
  262.   tmp=strreplace("|","_17",tmp);
  263.   tmp=strreplace("=","_18",tmp);
  264.   return tmp;
  265. }
  266. stock set(dest[],source[]) {
  267.     new count = strlen(source);
  268.     new i=0;
  269.     for (i=0;i<count;i++) {
  270.         dest[i]=source[i];
  271.     }
  272.     dest[count]=0;
  273. }
  274. stock strreplace(trg[],newstr[],src[]) {
  275.     new f=0;
  276.     new s1[255];
  277.     new tmp[255];
  278.     format(s1,sizeof(s1),"%s",src);
  279.     f = strfind(s1,trg);
  280.     tmp[0]=0;
  281.     while (f>=0) {
  282.         strcat(tmp,ret_memcpy(s1, 0, f));
  283.         strcat(tmp,newstr);
  284.         format(s1,sizeof(s1),"%s",ret_memcpy(s1, f+strlen(trg), strlen(s1)-f));
  285.         f = strfind(s1,trg);
  286.     }
  287.     strcat(tmp,s1);
  288.     return tmp;
  289. }
  290. ret_memcpy(source[],index=0,numbytes) {
  291.     new tmp[255];
  292.     new i=0;
  293.     tmp[0]=0;
  294.     if (index>=strlen(source)) return tmp;
  295.     if (numbytes+index>=strlen(source)) numbytes=strlen(source)-index;
  296.     if (numbytes<=0) return tmp;
  297.     for (i=index;i<numbytes+index;i++) {
  298.         tmp[i-index]=source[i];
  299.         if (source[i]==0) return tmp;
  300.     }
  301.     tmp[numbytes]=0;
  302.     return tmp;
  303. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement