Guest User

Untitled

a guest
Dec 13th, 2012
106
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 8.00 KB | None | 0 0
  1. BanPlayer(playerid, time, period[], reason[])
  2. {
  3.     new
  4.         second,
  5.         minute,
  6.         hour,
  7.         day,
  8.         month,
  9.         year;
  10.  
  11.     gettime( hour, minute, second );
  12.     getdate( year, month, day );
  13.  
  14.     new
  15.         INI:banFile = INI_Open( "banlist.ini" );
  16.  
  17.     INI_SetTag( banFile, PlayerName( playerid ));
  18.  
  19.     if( time == 0 )
  20.     {
  21.         INI_WriteInt( banFile, "year", 0 );
  22.         INI_WriteInt( banFile, "month", 0 );
  23.         INI_WriteInt( banFile, "day", 0 );
  24.         INI_WriteInt( banFile, "hour", 0 );
  25.         INI_WriteInt( banFile, "minute", 0 );
  26.         INI_WriteString( banFile, "reason", reason );
  27.         INI_Close( banFile );
  28.         goto BAN_FUNC_END;
  29.     }
  30.  
  31.     switch( YHash( period, false ))
  32.     {
  33.         case _I<minutes>:
  34.         {
  35.             while(( minute + time ) > 60 )
  36.             {
  37.                 hour ++;
  38.                 minute -= 60;
  39.                 if(( hour ) > 24 )
  40.                 {
  41.                     day ++;
  42.                     hour -= 24;
  43.                     if(( day ) > 28 )
  44.                     {
  45.                         switch( month )
  46.                         {
  47.                             case 1, 3, 5, 7, 8, 10, 12:
  48.                             {
  49.                                 if(( day ) > 31 )
  50.                                 {
  51.                                     month ++;
  52.                                     day -= 31;
  53.                                     if( month > 12 )
  54.                                     {
  55.                                         year ++;
  56.                                         month -= 12;
  57.                                     }
  58.                                 }
  59.                             }
  60.                             case 4, 6, 9, 11:
  61.                             {
  62.                                 if(( day ) > 30 )
  63.                                 {
  64.                                     month ++;
  65.                                     day -= 30;
  66.                                     if( month > 12 )
  67.                                     {
  68.                                         year ++;
  69.                                         month -= 12;
  70.                                     }
  71.                                 }
  72.                             }
  73.                             case 2:
  74.                             {
  75.                                 if(( year % 4 ) == 0 && ( year % 100 ) != 0 )
  76.                                 {
  77.                                     if(( day ) > 29 )
  78.                                     {
  79.                                         month ++;
  80.                                         day -= 29;
  81.                                         if( month > 12 )
  82.                                         {
  83.                                             year ++;
  84.                                             month -= 12;
  85.                                         }
  86.                                     }
  87.                                 }
  88.                                 else
  89.                                 {
  90.                                     if(( day ) > 28 )
  91.                                     {
  92.                                         month ++;
  93.                                         day -= 28;
  94.                                         if( month > 12 )
  95.                                         {
  96.                                             year ++;
  97.                                             month -= 12;
  98.                                         }
  99.                                     }
  100.                                 }
  101.                             }
  102.                         }
  103.                     }
  104.                 }
  105.             }
  106.  
  107.  
  108.             INI_WriteInt( banFile, "year", year );
  109.             INI_WriteInt( banFile, "month", month );
  110.             INI_WriteInt( banFile, "day", day );
  111.             INI_WriteInt( banFile, "hour", hour );
  112.             INI_WriteInt( banFile, "minute", ( minute + time ));
  113.         }
  114.         case _I<hours>:
  115.         {
  116.             while(( hour + time ) > 24 )
  117.             {
  118.                 day ++;
  119.                 hour -= 24;
  120.                 if(( day ) > 28 )
  121.                 {
  122.                     switch( month )
  123.                     {
  124.                         case 1, 3, 5, 7, 8, 10, 12:
  125.                         {
  126.                             if(( day ) > 31 )
  127.                             {
  128.                                 month ++;
  129.                                 day -= 31;
  130.                                 if( month > 12 )
  131.                                 {
  132.                                     year ++;
  133.                                     month -= 12;
  134.                                 }
  135.                             }
  136.                         }
  137.                         case 4, 6, 9, 11:
  138.                         {
  139.                             if(( day ) > 30 )
  140.                             {
  141.                                 month ++;
  142.                                 day -= 30;
  143.                                 if( month > 12 )
  144.                                 {
  145.                                     year ++;
  146.                                     month -= 12;
  147.                                 }
  148.                             }
  149.                         }
  150.                         case 2:
  151.                         {
  152.                             if(( year % 4 ) == 0 && ( year % 100 ) != 0 )
  153.                             {
  154.                                 if(( day ) > 29 )
  155.                                 {
  156.                                     month ++;
  157.                                     day -= 29;
  158.                                     if( month > 12 )
  159.                                     {
  160.                                         year ++;
  161.                                         month -= 12;
  162.                                     }
  163.                                 }
  164.                             }
  165.                             else
  166.                             {
  167.                                 if(( day ) > 28 )
  168.                                 {
  169.                                     month ++;
  170.                                     day -= 28;
  171.                                     if( month > 12 )
  172.                                     {
  173.                                         year ++;
  174.                                         month -= 12;
  175.                                     }
  176.                                 }
  177.                             }
  178.                         }
  179.                     }
  180.                 }
  181.             }
  182.             INI_WriteInt( banFile, "year", year );
  183.             INI_WriteInt( banFile, "month", month );
  184.             INI_WriteInt( banFile, "day", day );
  185.             INI_WriteInt( banFile, "hour", ( hour + time ));
  186.             INI_WriteInt( banFile, "minute", minute );
  187.         }
  188.         case _I<days>:
  189.         {
  190.             while(( day + time ) > 28 )
  191.             {
  192.                 switch( month )
  193.                 {
  194.                     case 1, 3, 5, 7, 8, 10, 12:
  195.                     {
  196.                         if(( day + time ) > 31 )
  197.                         {
  198.                             month ++;
  199.                             day -= 31;
  200.                             if( month > 12 )
  201.                             {
  202.                                 year ++;
  203.                                 month -= 12;
  204.                             }
  205.                         }
  206.                     }
  207.                     case 4, 6, 9, 11:
  208.                     {
  209.                         if(( day + time ) > 30 )
  210.                         {
  211.                             month ++;
  212.                             day -= 30;
  213.                             if( month > 12 )
  214.                             {
  215.                                 year ++;
  216.                                 month -= 12;
  217.                             }
  218.                         }
  219.                     }
  220.                     case 2:
  221.                     {
  222.                         if(( year % 4 ) == 0 && ( year % 100 ) != 0 )
  223.                         {
  224.                             if(( day + time ) > 29 )
  225.                             {
  226.                                 month ++;
  227.                                 day -= 29;
  228.                                 if( month > 12 )
  229.                                 {
  230.                                     year ++;
  231.                                     month -= 12;
  232.                                 }
  233.                             }
  234.                         }
  235.                         else
  236.                         {
  237.                             if(( day + time ) > 28 )
  238.                             {
  239.                                 month ++;
  240.                                 day -= 28;
  241.                                 if( month > 12 )
  242.                                 {
  243.                                     year ++;
  244.                                     month -= 12;
  245.                                 }
  246.                             }
  247.                         }
  248.                     }
  249.                 }
  250.             }
  251.  
  252.             INI_WriteInt( banFile, "year", year );
  253.             INI_WriteInt( banFile, "month", month );
  254.             INI_WriteInt( banFile, "day", ( day + time ));
  255.             INI_WriteInt( banFile, "hour", hour );
  256.             INI_WriteInt( banFile, "minute", minute );
  257.         }
  258.         case _I<months>:
  259.         {
  260.             while(( month + time ) > 12 )
  261.             {
  262.                 year ++;
  263.                 month -= 12;
  264.                 switch( month )
  265.                 {
  266.                     case 2:
  267.                     {
  268.                         if(( year % 4 ) == 0 && ( year % 100 ) != 0 )
  269.                         {
  270.                             if( day > 29 )
  271.                             {
  272.                                 month ++;
  273.                                 day -= 29;
  274.                                 if( month > 12 )
  275.                                 {
  276.                                     year ++;
  277.                                     month -= 12;
  278.                                 }
  279.                             }
  280.                         }
  281.                         else
  282.                         {
  283.                             if( day > 28 )
  284.                             {
  285.                                 month ++;
  286.                                 day -= 28;
  287.                                 if( month > 12 )
  288.                                 {
  289.                                     year ++;
  290.                                     month -= 12;
  291.                                 }
  292.                             }
  293.                         }
  294.                     }
  295.                     case 4, 6, 9, 11:
  296.                     {
  297.                         if( day == 31 )
  298.                         {
  299.                             month ++;
  300.                             day = 1;
  301.                         }
  302.                     }
  303.                 }
  304.             }
  305.  
  306.             INI_WriteInt( banFile, "year", year );
  307.             INI_WriteInt( banFile, "month", ( month + time ));
  308.             INI_WriteInt( banFile, "day", day );
  309.             INI_WriteInt( banFile, "hour", hour );
  310.             INI_WriteInt( banFile, "minute", minute );
  311.         }
  312.         case _I<years>:
  313.         {
  314.             if((( year % 4 ) == 0 && ( year % 100 ) != 0 ) && ((( year + time ) % 4 ) != 0 ))
  315.             {
  316.                 if( month > 2 )
  317.                 {
  318.                     day --;
  319.                     if( day < 1 )
  320.                     {
  321.                         month --;
  322.                         switch( month )
  323.                         {
  324.                             case 1, 3, 5, 7, 8, 10, 12:
  325.                                 day = 31;
  326.                             case 4, 6, 9, 11:
  327.                                 day = 30;
  328.                             case 2:
  329.                                 day = 28;
  330.                         }
  331.                     }
  332.                 }
  333.             }
  334.             else if(((( year + time ) % 4 ) != 0 ) && (( year % 4 ) == 0 && ( year % 100 ) != 0 ))
  335.             {
  336.                 if( month > 2 )
  337.                 {
  338.                     day ++;
  339.                     switch( month )
  340.                     {
  341.                         case 3, 5, 7, 8, 10, 12:
  342.                         {
  343.                             if( day > 31 )
  344.                             {
  345.                                 month ++;
  346.                                 day = 1;
  347.                             }
  348.                         }
  349.                         case 4, 6, 9, 11:
  350.                         {
  351.                             if( day > 30 )
  352.                             {
  353.                                 month ++;
  354.                                 day = 1;
  355.                             }
  356.                         }
  357.                     }
  358.                 }
  359.             }
  360.             INI_WriteInt( banFile, "year", ( year + time ));
  361.             INI_WriteInt( banFile, "month", month );
  362.             INI_WriteInt( banFile, "day", day );
  363.             INI_WriteInt( banFile, "hour", hour );
  364.             INI_WriteInt( banFile, "minute", minute );
  365.         }
  366.     }
  367.     INI_WriteString( banFile, "reason", reason );
  368.     INI_Close( banFile );
  369.  
  370.     BAN_FUNC_END:
  371.  
  372.     PlayerInfo[ playerid ][ pBanned ] = true;
  373.     Kick( playerid );
  374. }
Advertisement
Add Comment
Please, Sign In to add comment