Advertisement
RiseAboveHate

Basic AdminMode By CanadaSoldier For FxP.co.il

Mar 22nd, 2014
254
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 8.22 KB | None | 0 0
  1. #include    < a_samp >
  2. #include    < YSI\y_ini >
  3. #include    < YSI\y_inline >
  4. #include    < sscanf2 >
  5. #include    < zcmd >
  6.  
  7. #define     FILTERSCRIPT
  8. #define     SendFormatMessage(%0,%1,%2,%3) format ( gString , sizeof gString , %2 , %3 ) && SendClientMessage ( %0 , %1 , gString )
  9. #define     SendFormatMessageToAll(%0,%1,%2) format ( gString , sizeof gString , %1 , %2 ) && SendClientMessageToAll ( %0 , gString )
  10. #define     IAdmin(%0) AData [ %0 ] [ IsAdmin ]
  11. #define     ALogged(%0) AData [ %0 ] [ IsLogged ]
  12. #define     ALevel(%0) AData [ %0 ] [ AdminLevel ]
  13. #define     Name(%0) AData [ %0 ] [ AName ]
  14.  
  15.  
  16. #define Kick2_Kick(%0) SetTimerEx ( "KickP2" , 200 , false , "d" , %0 )
  17. #if defined _ALS_Kick
  18.     #undef Kick
  19. #else
  20.     #define _ALS_Kick
  21. #endif
  22. forward public KickP2 ( playerid ) ; public KickP2 ( playerid ) return Kick ( playerid ) ;
  23. #define Kick Kick2_Kick
  24.  
  25. enum pAdminData
  26. {
  27.     AName [ MAX_PLAYER_NAME + 1 ] ,
  28.     AdminFile [ 64 ] ,
  29.     bool: IsAdmin ,
  30.     bool: IsLogged ,
  31.     AdminLevel ,
  32.     AdminPassword [ 33 ] ,
  33.     AdminIP[20]
  34. }
  35.  
  36. enum pBanData
  37. {
  38.     BanFile [ 64 ] ,
  39.     BanReason [ 128 ]
  40. }
  41.  
  42. static
  43.     AData [ MAX_PLAYERS ] [ pAdminData ] ,
  44.         BData [ MAX_PLAYERS ] [ pBanData ] ,
  45.             gString [ 256 ] ;
  46.  
  47. public OnFilterScriptInit ( )
  48. {
  49.     for ( new i = 0 , j = GetMaxPlayers ( ) ; i < j ; i ++ ) \
  50.         OnPlayerConnect ( i ) ;
  51.     return 1 ;
  52. }
  53.  
  54. public OnFilterScriptExit ( )
  55. {
  56.     for ( new i = 0 , j = GetMaxPlayers ( ) ; i < j ; i ++ ) \
  57.         OnPlayerDisconnect ( i , -5 ) ;
  58.     return 1 ;
  59. }
  60.  
  61. public OnPlayerConnect ( playerid )
  62. {
  63.     GetPlayerName ( playerid , AData [ playerid ] [ AName ] , MAX_PLAYER_NAME + 1 ) ;
  64.     GetPlayerIp ( playerid , AData [ playerid ] [ AdminIP ] , 20 ) ;
  65.     format ( AData [ playerid ] [ AdminFile ] , 64 , "Admin/Users/%s.ini" , Name ( playerid ) ) ;
  66.     format ( BData [ playerid ] [ BanFile ] , 64 , "Admin/Users/Bans/%s.ini" , Name ( playerid ) ) ;
  67.     inline LoadAdminAccount( string: name [ ] , string: value [ ] )
  68.     {
  69.         INI_Bool ( "IsAdmin" , AData [ playerid ] [ IsAdmin ] ) ;
  70.         INI_Int ( "AdminLevel" ,  AData [ playerid ] [ AdminLevel ] ) ;
  71.         INI_String ( "AdminPassword" , AData [ playerid ] [ AdminPassword ] , 33 ) ;
  72.         INI_String ( "AdminIP" , AData [ playerid ] [ AdminIP ] , 20 ) ;
  73.     }
  74.     INI_ParseFile ( AData [ playerid ] [ AdminFile ] , using inline "LoadAdminAccount" ) ;
  75.     if( fexist ( BData [ playerid ] [ BanFile ] ) )
  76.     {
  77.         inline LoadBanFile( string: name [ ] , string: value [ ] )
  78.         {
  79.             INI_String ( "Reason" , BData [ playerid ] [ BanReason ] , 129 ) ;
  80.         }
  81.         INI_ParseFile ( BData [ playerid ] [ BanFile ] , using inline "LoadBanFile" ) ;
  82.         SendClientMessage ( playerid , 0xFF0000AA , ":אתה בבאן מהסיבה ההבאה") ;
  83.         SendFormatMessage ( playerid , 0xFF0000AA , "%s" , BData [ playerid ] [ BanReason ] ) ;
  84.         Kick ( playerid ) ;
  85.     }
  86.     return 1 ;
  87. }
  88.  
  89. public OnPlayerDisconnect ( playerid , reason )
  90. {
  91.     if ( IAdmin ( playerid ) )
  92.     {
  93.         new INI: file = INI_Open ( AData [ playerid ] [ AdminFile ] ) ;
  94.         INI_WriteBool ( file , "IsAdmin" , true ) ;
  95.         INI_WriteInt ( file , "AdminLevel" ,  AData [ playerid ] [ AdminLevel ] ) ;
  96.         INI_WriteString ( file , "AdminPassword" , AData [ playerid ] [ AdminPassword ] ) ;
  97.         INI_WriteString ( file , "AdminIP" , AData [ playerid ] [ AdminIP ] ) ;
  98.         INI_Close ( file ) ;
  99.     }
  100.     return 1 ;
  101. }
  102.  
  103. CMD:setadmin ( playerid , params [ ] )
  104. {
  105.     if ( !IsPlayerAdmin ( playerid ) ) return 0 ;
  106.     if ( sscanf ( params , "ud" , params [ 0 ] , params [ 1 ] ) ) return SendClientMessage ( playerid , 0x00A6FFAA , "Usage Error: /SetAdmin [Name / ID] [Level 1 - 6]" ) ;
  107.     if ( !IsPlayerConnected ( params [ 0 ] ) ) return SendClientMessage ( playerid , 0x00A6FFAA , "Error: Inavlid ID!" ) ;
  108.     if ( params [ 1 ] < 1 || params [ 1 ] > 6 ) return SendClientMessage ( playerid , 0x00A6FFAA , "Error: Admin Levels: 1-6" ) ;
  109.     AData [ params [ 0 ] ] [ IsAdmin ] = true ;
  110.     AData [ params [ 0 ] ] [ AdminLevel ] = params [ 1 ] ;
  111.     AData [ params [ 0 ] ] [ IsLogged ] = false ;
  112.     format ( AData [ params [ 0 ] ] [ AdminPassword ] , 33 , "%s1235468716" , Name ( params [ 0 ] ) ) ;
  113.     strins ( AData [ params [ 0 ] ] [ AdminPassword ] , gString , 0 ) ;
  114.     SendFormatMessage ( params [ 0 ] , 0x00A6FFAA , "You Have Set Player \"%s\" As Admin at level %d." , Name ( params [ 0 ] ) , params [ 1 ] ) ;
  115.     SendFormatMessage ( params [ 0 ] , 0x00A6FFAA , "RconAdmin: \"%s\" Set You As Admin at level %d." , Name ( playerid ) , params [ 1 ] ) ;
  116.     SendFormatMessage ( params [ 0 ] , 0x00A6FFAA , "And Your Admin Password is: \"%s\". To Log In Type: \"/ALogin [Your Password]\"" , AData [ params [ 0 ] ] [ AdminPassword ] ) ;
  117.     return 1 ;
  118. }
  119.  
  120. CMD:alogin ( playerid , params [ ] )
  121. {
  122.     if ( !IAdmin ( playerid ) ) return 0 ;
  123.     if ( ALogged ( playerid ) ) return SendClientMessage ( playerid , 0x00A6FFAA , "You Already Logged!" ) ;
  124.     if ( sscanf ( params , "s" , params [ 0 ] ) ) return SendClientMessage ( playerid , 0x00A6FFAA , "Usage Error: /ALogin [Your Password]" ) ;
  125.     if ( strcmp ( params [ 0 ] , AData [ playerid ] [ AdminPassword ] , true ) != 0 ) return SendClientMessage ( playerid , 0x00A6FFAA , "The Password that you typed is wrong!" ) ;
  126.     else
  127.     {
  128.         SendClientMessage ( playerid, 0x00A6FFAA , "You Successfully Logged into you Admin account." );
  129.         AData [ playerid ] [ IsLogged ] = true ;
  130.     }
  131.     return 1 ;
  132. }
  133.  
  134. CMD:kick ( playerid , params [ ] )
  135. {
  136.     if ( !IAdmin ( playerid ) ) return 0 ;
  137.     if ( !ALogged ( playerid ) ) return SendClientMessage ( playerid , 0x00A6FFAA , "You Are Not Logged to your Admin account! to log in, type: \"/ALogin [Your Password]\"" ) ;
  138.     if ( sscanf ( params , "us[128]" , params [ 0 ] , params [ 1 ] ) ) return SendClientMessage ( playerid , 0x00A6FFAA , "Usage Error: /Kick [Name / ID] [REASON]" ) ;
  139.     if ( !IsPlayerConnected ( params [ 0 ] ) ) return SendClientMessage ( playerid , 0x00A6FFAA , "Error: Inavlid ID!" ) ;
  140.     SendFormatMessageToAll ( 0x00A6FFAA , ".\"%s\" :סיבה .\"%s\" נתן קיק לשחקן \"%s\" האדמין" , params [ 1 ] , Name ( params [ 0 ] ) , Name ( playerid ) ) ;
  141.     SendFormatMessage ( playerid , 0x00A6FFAA , ".\"%s\" :סיבה .\"%s\" נתת קיק לשחקן" , params [ 1 ] , Name ( params [ 0 ] ) ) ;
  142.     SendFormatMessage ( params [ 0 ] , 0x00A6FFAA , ".\"%s\" :נתן לך קיק. סיבה \"%s\" האדמין" , params [ 1 ] , Name ( playerid ) ) ;
  143.     Kick ( params [ 0 ] ) ;
  144.     return 1 ;
  145. }
  146.  
  147. CMD:ban ( playerid , params [ ] )
  148. {
  149.     if ( !IAdmin ( playerid ) ) return 0 ;
  150.     if ( !ALogged ( playerid ) ) return SendClientMessage ( playerid , 0x00A6FFAA , "You Are Not Logged to your Admin account! to log in, type: \"/ALogin [Your Password]\"" ) ;
  151.     if ( sscanf ( params , "us[128]" , params [ 0 ] , params [ 1 ] ) ) return SendClientMessage ( playerid , 0x00A6FFAA , "Usage Error: /Ban [Name / ID] [REASON]" ) ;
  152.     if ( !IsPlayerConnected ( params [ 0 ] ) ) return SendClientMessage ( playerid , 0x00A6FFAA , "Error: Inavlid ID!" ) ;
  153.     SendFormatMessageToAll ( 0x00A6FFAA , ".\"%s\" :סיבה .\"%s\" נתן באן לשחקן \"%s\" האדמין" , params [ 1 ] , Name ( params [ 0 ] ) , Name ( playerid ) ) ;
  154.     SendFormatMessage ( playerid , 0x00A6FFAA , ".\"%s\" :סיבה .\"%s\" נתת באן לשחקן" , params [ 1 ] , Name ( params [ 0 ] ) ) ;
  155.     SendFormatMessage ( params [ 0 ] , 0x00A6FFAA , ".\"%s\" :נתן לך באן. סיבה \"%s\" האדמין" , params [ 1 ] , Name ( playerid ) ) ;
  156.     new INI:file = INI_Open ( BData [ params [ 0 ] ] [ BanFile ] ) ;
  157.     INI_WriteString ( file , "Reason" , params [ 1 ] ) ;
  158.     INI_Close ( file ) ;
  159.     Kick ( params [ 0 ] ) ;
  160.     return 1 ;
  161. }
  162.  
  163. CMD:unban ( playerid , params [ ] )
  164. {
  165.     if ( !IAdmin ( playerid ) ) return 0 ;
  166.     if ( !ALogged ( playerid ) ) return SendClientMessage ( playerid , 0x00A6FFAA , "You Are Not Logged to your Admin account! to log in, type: \"/ALogin [Your Password]\"" ) ;
  167.     if ( sscanf ( params , "s[26]" , params [ 0 ] ) ) return SendClientMessage ( playerid , 0x00A6FFAA , "Usage Error: /UnBan [Name]" ) ;
  168.     new bfile [ 64 ] ;
  169.     format ( bfile , sizeof bfile , "Admin/Users/Bans/%s.ini" , params [ 0 ] );
  170.     if( !fexist ( bfile ) ) return SendFormatMessage ( playerid , 0x00A6FFAA , "The Player \"%s\" isn't Banned." , params [ 0 ] );
  171.     else
  172.     {
  173.         fremove ( bfile ) ;
  174.         SendFormatMessage ( playerid , 0x00A6FFAA , ".\"%s\" הורדת את הבאן לשחקן" , params [ 0 ] ) ;
  175.     }
  176.     return 1 ;
  177. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement