Advertisement
agrippa1994

AC

Mar 16th, 2013
124
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 3.57 KB | None | 0 0
  1. #include <a_samp>
  2.  
  3. #define MAX_AC_CLIENTS 2048
  4. #define INVALID_AC_ID (-1)
  5.  
  6. enum eWindowState{ WS_Failed = -1, WS_Closed, WS_Open };
  7. enum ePlayerInfo { PI_ACID = 0};
  8.  
  9. new g_pInfo[MAX_PLAYERS][ePlayerInfo];
  10.  
  11. main()
  12. {
  13.     print("\n====================================================\n");
  14.     printf("\t\tAntiCheat Test Version 0.4");
  15.     print("\n====================================================\n\n");
  16. }
  17.  
  18. native IsACClientConnected(acid);
  19. native InitACServer(port);
  20. native GetACClientCount();
  21. native GetACClientWindowState(acid);
  22. native GetACClientName(acid,name[],len = sizeof(name));
  23. native GetACClientIP(acid,ip[], len = sizeof(ip));
  24.  
  25. forward OnACClientConnect(acid,ip[]);
  26. forward OnACClientDisconnect(acid);
  27. forward OnACClientCheat(acid,hackinfo[]);
  28.  
  29.  
  30. public OnACClientConnect(acid,ip[])
  31. {
  32.     printf("Momentan verbundene AC Clienten: %d",GetACClientCount());
  33.     return 1;
  34. }
  35.  
  36. public OnACClientDisconnect(acid)
  37. {
  38.     new playerid = GetPlayerIDByACID(acid);
  39.     if(!IsPlayerConnected(playerid))
  40.         return 0;
  41.    
  42.     SendClientMessage(playerid,0xFFFFFFFF,"Du hast die Verbindung zum AC-Server verloren...");
  43.     return 1;
  44. }
  45.  
  46.  
  47. public OnACClientCheat(acid,hackinfo[])
  48. {
  49.     new playerid = GetPlayerIDByACID(acid);
  50.     if(!IsPlayerConnected(playerid))
  51.         return 0;
  52.  
  53.     SendClientMessage(playerid,0xFFFFFFFF,hackinfo);
  54.     return 1;
  55. }
  56. public OnGameModeInit()
  57. {
  58.     for(new i=0;i<MAX_PLAYERS;i++)
  59.     {
  60.         g_pInfo[i][PI_ACID] = INVALID_AC_ID;
  61.     }
  62.            
  63.     InitACServer(7777);
  64.     SetGameModeText("Blank Script");
  65.     AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
  66.     return 1;
  67. }
  68.  
  69. stock GetACIDByPlayerID(playerid)
  70. {
  71.     return g_pInfo[playerid][PI_ACID];
  72. }
  73.  
  74. stock GetPlayerIDByACID(acid)
  75. {
  76.     for(new i=0;i<MAX_PLAYERS;i++)
  77.         if(IsPlayerConnected(i))
  78.             if(g_pInfo[i][PI_ACID] == acid)
  79.                 return i;
  80.     return INVALID_PLAYER_ID;
  81. }
  82.  
  83. public OnPlayerRequestClass(playerid, classid)
  84. {
  85.     SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746);
  86.     SetPlayerCameraPos(playerid, 1958.3783, 1343.1572, 15.3746);
  87.     SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746);
  88.     return 1;
  89. }
  90.  
  91. public OnPlayerConnect(playerid)
  92. {
  93.     new szName[MAX_PLAYER_NAME],
  94.         szTMP[MAX_PLAYER_NAME],
  95.         bool:bConnected=false;
  96.        
  97.     for(new i=0;i<MAX_AC_CLIENTS;i++)
  98.         if(IsACClientConnected(i))
  99.             if(GetACClientName(i,szTMP,MAX_PLAYER_NAME))
  100.                 if((!strcmp(szTMP,szName,true)) && strlen(szTMP)){
  101.                     bConnected=true; g_pInfo[playerid][PI_ACID] = i;
  102.                     break;
  103.                 }
  104.     if(!bConnected || g_pInfo[playerid][PI_ACID] == INVALID_AC_ID)
  105.     {
  106.         SendClientMessage(playerid,0xFFFFFFFF,"Es wird ein AC benötigt...");
  107.     }
  108.     else
  109.     {
  110.         switch(GetACClientWindowState(g_pInfo[playerid][PI_ACID]))
  111.         {
  112.             case WS_Failed:
  113.                 SendClientMessage(playerid,0xFFFFFFFF,"Abfrage fehlerhaft");
  114.             case WS_Open:
  115.                 SendClientMessage(playerid,0xFFFFFFFF,"Du kannst hier spielen!");
  116.             case WS_Closed:
  117.                 SendClientMessage(playerid,0xFFFFFFFF,"Fakeclient!");
  118.         }
  119.        
  120.     }
  121.     return 1;
  122. }
  123.  
  124. public OnPlayerCommandText(playerid, cmdtext[])
  125. {
  126.     if (strcmp("/list acusers", cmdtext, true, 10) == 0)
  127.     {
  128.         new acid=0;
  129.         new ip[20];
  130.         new str[100];
  131.         for(new i=0;i<MAX_PLAYERS;i++)
  132.         {
  133.             if(IsPlayerConnected(i))
  134.             {
  135.                 if((acid=GetACIDByPlayerID(i)) != INVALID_AC_ID)
  136.                 {
  137.                     GetACClientIP(acid,ip,sizeof(ip));
  138.                     format(str,sizeof(str),"ID: %d ACID: %d WindowState: %d IP: %s",i,acid,GetACClientWindowState(acid),ip);
  139.                     SendClientMessage(playerid,0xFFFFFFFF,str);
  140.                 }
  141.             }
  142.         }
  143.         return 1;
  144.     }
  145.     return 0;
  146. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement