Guest User

RGR_AntiCheat.inc

a guest
Dec 30th, 2012
49
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 18.88 KB | None | 0 0
  1. #define RGR_Botname "System"
  2. #define COLOR_RGR 0xFF6347AA
  3. /*
  4.  
  5. |+++++++++++++++++++++++++++++++++++++++++++++++++++++|
  6. |+++++++++  AntiCheat-Bot © 2011  ++++++++++++++++++++|
  7. |++++++++++++++++++++++  v1.2  +++++++++++++++++++++++|
  8. |+++++++++++++++++++++++++++++++++++++++++++++++++++++|
  9. |+++++++++++++++++++++++++++++++++++++++++++++++++++++|
  10.  
  11.  
  12. native SendClientMessageToAdmins(color,message[]);
  13. native FreezePlayer(playerid);
  14. native UnFreezePlayer(playerid);
  15. native FreezeAll();
  16. native UnFreezeAll();
  17. native GetName(playerid);
  18. native GetIP(playerid);
  19. native GetWeaponSlot(wid);
  20. native GetVehicleDriver(vehicleid);
  21. native M_Kick(playerid);
  22. native M_Ban(playerid);
  23. native M_BanEx(playerid,reason[]);
  24. native M_Log(string[]):
  25. native M_GivePlayerWeapon(playerid,weapon,ammo);
  26. native M_ResetPlayerWeapons(playerid);
  27. native M_GetPlayerMoney(playerid);
  28. native M_ResetPlayerMoney(playerid);
  29. native M_GivePlayerMoney(playerid,summe);
  30. native M_SetPlayerMoney(playerid,summe);
  31. native M_SetPlayerHealth(playerid,Float:health);
  32. native M_GivePlayerHealth(playerid,Float:health);
  33. native M_SetPlayerArmour(playerid,Float:armour);
  34. native M_GivePlayerArmour(playerid,Float:armour);
  35. native M_SetPlayerPos(playerid,Float:Xpos,Float:Ypos,Float:Zpos,Float:Angle); // Spielerteleport ( + Winkel/Angle)=> Muss nicht dabei sein
  36. native M_SetVehiclePos(playerid,Float:Xpos,Float:Ypos,Float:Zpos,Float:Angle); // Autoteleport ( + Winkel/Angle)=> Muss nicht dabei sein
  37.  
  38. native EnableM_Bot();
  39. native M_OnPlayerSpawn(playerid);
  40. native M_OnPlayerConnect(playerid);
  41. native M_OnPlayerDeath(playerid,killerid,reason);
  42. native M_OnPlayerUpdate(playerid);
  43. native M_OnPlayerCommandText(playerid,cmdtext[]);
  44. */
  45.  
  46.  
  47. forward KickHim(playerid);
  48. forward BanHim(playerid);
  49. forward BanHimEx(playerid,reason[]);
  50. forward Check();
  51. forward EnableChecking(playerid);
  52. forward EnablePingWarnAgain(playerid);
  53. forward AFKOn(playerid);
  54.  
  55.  
  56. enum SysInfo
  57. {
  58. //  PMoney,
  59.     PWeapon[13],
  60.     PAmmo[13],
  61.     PLastVehicleID,
  62.     PLastInterior,
  63.     PInactiveSeconds,
  64.     PCheckHighPing,
  65.     PHighPingWarns,
  66.     PIPWarns,
  67.     PBadWordWarns,
  68.     PAFK,
  69.     PAFKTimer,
  70.     Float:PHealth,
  71.     Float:PArmour,
  72.     Float:PXpos,
  73.     Float:PYpos,
  74.     Float:PZpos,
  75.     Float:PXpos2,
  76.     Float:PYpos2,
  77.     Float:PZpos2,
  78.     PFrozen,
  79.     PSpawned,
  80.     PCheck
  81. }
  82.  
  83. new M_Bot[MAX_PLAYERS][SysInfo];
  84.  
  85. new BanWeaponIDs[] = {
  86. 8,
  87. 9,
  88. 16,
  89. 17,
  90. 18,
  91. 32,
  92. 35,
  93. 36,
  94. 37,
  95. 38,
  96. 39,
  97. 40,
  98. 44,
  99. 45,
  100. 28,
  101. 26,
  102. 22
  103. };
  104.  
  105. new BanClanTags[][] = {
  106. "[NeS]",
  107. "[GRP]",
  108. "[BE]",
  109. "[LoS]"
  110. };
  111.  
  112. new BanNames[][] = {
  113. "Suppennoob"
  114. };
  115.  
  116. new Float:GettedHealth,
  117.     Float:GettedArmour,
  118.     AllFrozen,
  119.     MaxPing = 1000;
  120. //    MoneySpam[MAX_PLAYERS];
  121.  
  122.  
  123. public EnableChecking(playerid)
  124. {
  125.     M_Bot[playerid][PCheck] = 1;
  126.     return 1;
  127. }
  128.  
  129. public EnablePingWarnAgain(playerid)
  130. {
  131.     M_Bot[playerid][PCheckHighPing] = 1;
  132.     return 1;
  133. }  
  134.  
  135. public AFKOn(playerid)
  136. {
  137.     if(IsPlayerConnected(playerid) && M_Bot[playerid][PAFK] == 0)
  138.     {
  139.         new string[128];
  140.         format(string,sizeof string,"%s wurde vom System gekickt. (Grund: AFK) ",GetName(playerid));
  141.         SendClientMessage(playerid, COLOR_RGR," Du wurdest gekickt, da du AFK gegammelt hast!");
  142.         SendClientMessageToAll(0xAFAFAFAA,string);
  143.         M_Bot[playerid][PAFK] = 1;
  144.         Kick(playerid);
  145.         //KillTimer(M_Bot[playerid][PAFKTimer]);
  146.     }  
  147.     return 1;
  148. }
  149.  
  150. // ====================================================================================================================
  151.  
  152. stock SendClientMessageToAdmins(color,message[])
  153. {
  154.     for(new i = 0; i < GetMaxPlayers(); i++)
  155.     {
  156.         if(IsPlayerConnected(i) && IsAnAdmin(i))
  157.         {
  158.             SendClientMessage(i,color,message);
  159.         }
  160.     }
  161. }
  162.  
  163.  
  164. stock FreezePlayer(playerid)
  165. {
  166.     TogglePlayerControllable(playerid,false);
  167.     M_Bot[playerid][PFrozen] = 1;
  168. }
  169.  
  170.  
  171. stock UnFreezePlayer(playerid)
  172. {
  173.     TogglePlayerControllable(playerid,true);
  174.     M_Bot[playerid][PFrozen] = 0;
  175. }
  176.  
  177.  
  178. stock FreezeAll()
  179. {
  180.     for(new i = 0; i < GetMaxPlayers(); i++)
  181.     {
  182.         if(IsPlayerConnected(i))
  183.         {
  184.             TogglePlayerControllable(i,false);
  185.             AllFrozen = 1;
  186.         }
  187.     }
  188. }  
  189.  
  190. stock UnFreezeAll()
  191. {
  192.     for(new i = 0; i < GetMaxPlayers(); i++)
  193.     {
  194.         if(IsPlayerConnected(i))
  195.         {
  196.             TogglePlayerControllable(i,true);
  197.             AllFrozen = 0;
  198.         }
  199.     }
  200. }
  201.  
  202. stock GetName(playerid)
  203. {
  204.     new getthename[MAX_PLAYER_NAME];
  205.     GetPlayerName(playerid,getthename,sizeof(getthename));
  206.     return getthename;
  207. }
  208.  
  209. stock GetIP(playerid)
  210. {
  211.     new gettheip[15];
  212.     GetPlayerIp(playerid,gettheip,sizeof(gettheip));
  213.     return gettheip;
  214. }
  215.  
  216.  
  217. stock M_Kick(playerid)
  218. {
  219.     SetTimerEx("KickHim",100,0,"d",playerid);
  220. }
  221.  
  222. public KickHim(playerid)
  223. {
  224.     Kick(playerid);
  225.     return 1;
  226. }
  227.  
  228.  
  229. stock M_Ban(playerid)
  230. {
  231.     SetTimerEx("BanHim",100,0,"d",playerid);
  232. }
  233.  
  234. public BanHim(playerid)
  235. {
  236.     Ban(playerid);
  237.     return 1;
  238. }
  239.  
  240.  
  241. stock M_BanEx(playerid,reason[])
  242. {
  243.     SetTimerEx("BanHimEx",100,0,"ds",playerid,reason);
  244. }
  245.  
  246. public BanHimEx(playerid,reason[])
  247. {
  248.     BanEx(playerid,reason);
  249.     return 1;
  250. }
  251.  
  252. stock GetVehicleDriver(vehicleid)
  253. {
  254.     for(new i = 0; i < GetMaxPlayers(); i++)
  255.     {
  256.         if(IsPlayerConnected(i) && GetPlayerState(i) == PLAYER_STATE_DRIVER && GetPlayerVehicleID(i) == vehicleid)
  257.         {
  258.             return i;
  259.         }
  260.     }
  261.     return -1;
  262. }
  263.  
  264.  
  265. stock M_WriteIPToBlacklist(ip[])
  266. {
  267.     new File:BLACKLISTFILE;
  268.     if(!fexist("/M_Bot/M_Black.cfg"))
  269.     {
  270.         BLACKLISTFILE = fopen("/M_Bot/M_Black.cfg",io_write);
  271.     }
  272.     else
  273.     {
  274.         BLACKLISTFILE = fopen("/M_Bot/M_Black.cfg",io_append);
  275.     }  
  276.     if(BLACKLISTFILE)
  277.     {
  278.         new string[20];
  279.         format(string,sizeof(string),"%s\n",ip);
  280.         fwrite(BLACKLISTFILE,string);
  281.     }
  282.     fclose(BLACKLISTFILE);
  283. }
  284.  
  285. stock M_Log(string[])
  286. {
  287.     new File:logfile, mhour, mminute, msecond, myear, mmonth, mday;
  288.     if(!fexist("/M_Bot/M_Log.txt"))
  289.     {
  290.         logfile = fopen("/M_Bot/M_Log.txt",io_write);
  291.     }
  292.     else
  293.     {
  294.         logfile = fopen("/M_Bot/M_Log.txt",io_append);
  295.     }  
  296.     gettime(mhour,mminute,msecond);
  297.     getdate(myear,mmonth,mday);
  298.     format(string,(strlen(string)+32),"Logged %02d.%02d.%d %d:%d:%d: %s\n",mday,mmonth,myear,mhour,mminute,msecond,string);
  299.     fwrite(logfile,string);
  300.     fclose(logfile);
  301. }
  302.  
  303.  
  304. stock M_PutPlayerInVehicle(playerid,vehicleid,seatid)
  305. {
  306.     GetVehiclePos(vehicleid,M_Bot[playerid][PXpos],M_Bot[playerid][PYpos],M_Bot[playerid][PZpos]);
  307.     PutPlayerInVehicle(playerid,vehicleid,seatid);
  308. }
  309.  
  310. stock M_SetPlayerPos(playerid,Float:Xpos,Float:Ypos,Float:Zpos,Float:Angle = -1.0)
  311. {
  312.     M_Bot[playerid][PXpos] = Xpos;
  313.     M_Bot[playerid][PYpos] = Ypos;
  314.     M_Bot[playerid][PZpos] = Zpos;
  315.     SetPlayerPos(playerid,Xpos,Ypos,Zpos);
  316.     if(Angle != -1.0)
  317.     {
  318.         SetPlayerFacingAngle(playerid,Angle);
  319.     }
  320. }
  321.  
  322. stock M_SetVehiclePos(vehicleid,Float:Xpos,Float:Ypos,Float:Zpos,Float:Angle = -1.0)
  323. {
  324.     new playerid = GetVehicleDriver(vehicleid);
  325.     if(playerid != -1)
  326.     {
  327.         M_Bot[playerid][PXpos] = Xpos;
  328.         M_Bot[playerid][PYpos] = Ypos;
  329.         M_Bot[playerid][PZpos] = Zpos;
  330.     }
  331.     SetVehiclePos(vehicleid,Xpos,Ypos,Zpos);
  332.     if(Angle != -1.0)
  333.     {
  334.         SetVehicleZAngle(vehicleid,Angle);
  335.     }
  336.     return 1;  
  337. }
  338.  
  339. stock M_GivePlayerWeapon(playerid,weaponid,ammo)
  340. {
  341.     new slot = GetWeaponSlot(weaponid);
  342.     if(ammo == 0)
  343.         ammo = 1;
  344.     M_Bot[playerid][PWeapon][slot] = weaponid;
  345.     M_Bot[playerid][PAmmo][slot] += ammo;
  346.     GivePlayerWeapon(playerid,weaponid,ammo);
  347. }
  348.  
  349. stock M_ResetPlayerWeapons(playerid)
  350. {
  351.     for(new slot=0; slot<13; slot++)
  352.     {
  353.         M_Bot[playerid][PWeapon][slot] = -1;
  354.         M_Bot[playerid][PAmmo][slot] = 0;
  355.     }  
  356.     ResetPlayerWeapons(playerid);
  357. }
  358.  
  359.  
  360. /*stock M_GetPlayerMoney(playerid)
  361. {
  362.     return M_Bot[playerid][PMoney];
  363. }*/
  364.  
  365. /*stock M_ResetPlayerMoney(playerid)
  366. {
  367.     M_Bot[playerid][PMoney] = 0;
  368.     ResetPlayerMoney(playerid);
  369. }*/
  370.  
  371. /*forward M_GivePlayerMoney(playerid,summe);
  372. public M_GivePlayerMoney(playerid,summe)
  373. {
  374.     M_Bot[playerid][PMoney] += summe;
  375.     GivePlayerMoney(playerid,summe);
  376. }*/
  377. /*
  378. stock M_SetPlayerMoney(playerid,summe)
  379. {
  380.     ResetPlayerMoney(playerid);
  381.     M_Bot[playerid][PMoney] = summe;
  382.     GivePlayerMoney(playerid,summe);
  383. }*/
  384.  
  385.  
  386. stock M_SetPlayerHealth(playerid,Float:health)
  387. {
  388.     if(health <= 0)
  389.     {
  390.         M_Bot[playerid][PSpawned] = 0;
  391.         M_Bot[playerid][PHealth] = health;
  392.         SetPlayerHealth(playerid,health);
  393.     }
  394.     else if(health > 161.0)
  395.     {
  396.         M_Bot[playerid][PHealth] = 161.0;
  397.         SetPlayerHealth(playerid,161.0);
  398.     }
  399.     else
  400.     {
  401.         M_Bot[playerid][PHealth] = health;
  402.         SetPlayerHealth(playerid,health);
  403.     }
  404. }
  405.  
  406. stock M_GivePlayerHealth(playerid,Float:health)
  407. {
  408.     GetPlayerHealth(playerid,GettedHealth);
  409.     if(GettedHealth + health <= 0)
  410.     {
  411.         M_Bot[playerid][PSpawned] = 0;
  412.         M_Bot[playerid][PHealth] = health;
  413.         SetPlayerHealth(playerid,GettedHealth + health);
  414.     }
  415.     else if(GettedHealth + health > 161.0)
  416.     {
  417.         M_Bot[playerid][PHealth] = 161.0;
  418.         SetPlayerHealth(playerid,161.0);
  419.     }
  420.     else
  421.     {
  422.         M_Bot[playerid][PHealth] += health;
  423.         SetPlayerHealth(playerid,GettedHealth + health);
  424.     }
  425. }
  426.  
  427.  
  428. stock M_SetPlayerArmour(playerid,Float:armour)
  429. {
  430.     if(armour > 99.0)
  431.     {
  432.         M_Bot[playerid][PArmour] = 99.0;
  433.         SetPlayerArmour(playerid,99.0);
  434.     }
  435.     else
  436.     {
  437.         M_Bot[playerid][PArmour] = armour;
  438.         SetPlayerArmour(playerid,armour);
  439.     }  
  440. }
  441.  
  442. stock M_GivePlayerArmour(playerid,Float:armour)
  443. {
  444.     GetPlayerArmour(playerid,GettedArmour);
  445.     if(GettedArmour + armour > 99.0)
  446.     {
  447.         M_Bot[playerid][PArmour] = 99.0;
  448.         SetPlayerArmour(playerid,99.0);
  449.     }
  450.     else
  451.     {
  452.         M_Bot[playerid][PArmour] += armour;
  453.         SetPlayerArmour(playerid,GettedArmour + armour);
  454.     }
  455. }
  456.  
  457.  
  458. public Check()
  459. {
  460.     for(new playerid=0; playerid<GetMaxPlayers(); playerid++)
  461.     if(IsPlayerConnected(playerid))
  462.     {
  463.         new admstring[128], playername[MAX_PLAYER_NAME], weapon = -1, ammo = 0;
  464.         GetPlayerName(playerid,playername,sizeof(playername));
  465.         GetPlayerHealth(playerid,GettedHealth);
  466.         GetPlayerArmour(playerid,GettedArmour);
  467.         GetPlayerPos(playerid,M_Bot[playerid][PXpos2],M_Bot[playerid][PYpos2],M_Bot[playerid][PZpos2]);
  468.         //distance = (((M_Bot[playerid][PXpos2]-M_Bot[playerid][PXpos])*(M_Bot[playerid][PXpos2]-M_Bot[playerid][PXpos]))+((M_Bot[playerid][PYpos2]-M_Bot[playerid][PYpos])*(M_Bot[playerid][PYpos2]-M_Bot[playerid][PYpos])))/100;
  469.  
  470. /*      new differenz = (GetPlayerMoney(playerid) - M_Bot[playerid][PMoney]);
  471.         if(differenz >= 4490)
  472.         {
  473.             format(admstring,sizeof(admstring)," %s: %s ist unter Moneyhackverdacht! Ercheateter Betrag: %d ",RGR_Botname,playername,differenz);
  474.             SendClientMessageToAdmins(COLOR_RGR,admstring);
  475.             M_SetPlayerMoney(playerid,M_Bot[playerid][PMoney]);
  476.             M_Log(admstring);
  477.             MoneySpam[playerid]++;
  478.         }*/
  479.         /*if(MoneySpam[playerid] >= 20)
  480.         {
  481.             format(admstring,sizeof(admstring),"AdmCmd: %s wurde vom %s gebannt, (GRUND: MoneyCheat)",playername,RGR_Botname);
  482.             SendClientMessageToAll(COLOR,admstring);
  483.             format(admstring,sizeof(admstring)," Bann von %s (GRUND: MoneyCheat | IP: %s) ",playername,GetIP(playerid));
  484.             MoneySpam[playerid] = 0;
  485.             M_Log(admstring);
  486.             M_BanEx(playerid,"MoneyCheat");
  487.                 return 1;
  488.         }*/
  489.  
  490.  
  491.         /*if(M_Bot[playerid][PSpawned] && M_Bot[playerid][PCheck])
  492.         {
  493.             if(GettedHealth > 161.0)
  494.             {
  495.                 if(M_Bot[playerid][PHealth] > 161.0)
  496.                 {
  497.                     M_SetPlayerHealth(playerid,161.0);
  498.                 }
  499.                 else
  500.                 {
  501.                     format(admstring,sizeof(admstring)," %s: %s ist unter Healthcheatverdacht! ",RGR_Botname,playername);
  502.                     SendClientMessageToAdmins(COLOR_RGR,admstring);
  503.                     M_SetPlayerHealth(playerid,M_Bot[playerid][PHealth]);
  504.                     //M_Log(admstring);
  505.                 }
  506.             }
  507.             if(GettedArmour > 99.0)
  508.             {
  509.                 format(admstring,sizeof(admstring)," %s: %s ist unter Armourcheatverdacht! ",RGR_Botname,playername);
  510.                 SendClientMessageToAdmins(COLOR_RGR,admstring);
  511.                 M_SetPlayerArmour(playerid,M_Bot[playerid][PArmour]);
  512.                 //M_Log(admstring);
  513.             }
  514.             if(distance > 1000.0) // Hohe Distanz
  515.             if(GetPlayerState(playerid) != PLAYER_STATE_SPECTATING) // Nicht beim Spectaten
  516.             if(!IsAPlaneForNoCheck(GetPlayerVehicleID(playerid))) // Nicht wenn man im Flugzeug ist
  517.             {
  518.                 format(admstring,sizeof(admstring)," %s: %s ist unter Speedhack/Teleport-verdacht! ",RGR_Botname,playername);
  519.                 SendClientMessageToAdmins(COLOR_RGR,admstring);
  520.             }
  521.         }*/
  522.        
  523.         /*if(GetPlayerSpecialAction(playerid) == SPECIAL_ACTION_USEJETPACK)
  524.         {
  525.             format(admstring,sizeof(admstring)," %s wurde vom %s gebannt! (GRUND: Jetpack) ",playername,RGR_Botname);
  526.             SendClientMessageToAll(COLOR_RGR,admstring);
  527.             format(admstring,sizeof(admstring)," Bann von %s (GRUND: Jetpack | IP: %s) ",playername,GetIP(playerid));
  528.             M_Log(admstring);
  529.             M_BanEx(playerid,"Jetpack");
  530.         }/*
  531.        
  532.         /*for(new w=0; w<sizeof(BanWeaponIDs); w++)
  533.         {
  534.             GetPlayerWeaponData(playerid,GetWeaponSlot(BanWeaponIDs[w]),weapon,ammo);
  535.             if(weapon == BanWeaponIDs[w] && ammo > 0)
  536.             {
  537.                 format(admstring,sizeof(admstring),"AdmCmd: %s wurde vom %s gebannt, Grund: Weaponhack",playername,RGR_Botname);
  538.                 SendClientMessageToAll(COLOR_RGR,admstring);
  539.                 format(admstring,sizeof(admstring)," Bann von %s (GRUND: Waffenhack | IP: %s) ",playername,GetIP(playerid));
  540.                 M_Log(admstring);
  541.                 M_BanEx(playerid,"Waffenhack");
  542.             }
  543.         }/*
  544.    
  545.        
  546.         if(GetPlayerPing(playerid) >= MaxPing && M_Bot[playerid][PCheckHighPing] && M_Bot[playerid][PSpawned])
  547.         {
  548.             M_Bot[playerid][PHighPingWarns]++;
  549.             if(M_Bot[playerid][PHighPingWarns] >= 5)
  550.             {
  551.                 format(admstring,sizeof(admstring),"AdmCmd: %s wurde vom %s gekickt, Grund: Zu hoher Ping: %d | Erlaubt: %d ",playername,RGR_Botname,GetPlayerPing(playerid),MaxPing);
  552.                 SendClientMessageToAll(COLOR_RGR,admstring);
  553.                 M_Kick(playerid);
  554.                 M_Log(admstring);
  555.             }
  556.             else
  557.             {
  558.                 format(admstring,sizeof(admstring)," [!] Dein Ping ist zu hoch! (PING: %d | MAXPING: %d | WARNUNG: %d/5)",GetPlayerPing(playerid),MaxPing,M_Bot[playerid][PHighPingWarns]);
  559.                 SendClientMessage(playerid,COLOR_RGR,admstring);
  560.                 SetTimerEx("EnablePingWarnAgain",15000,0,"i",playerid);
  561.             }
  562.         }
  563.        
  564.         if(M_Bot[playerid][PSpawned])
  565.         {
  566.             M_Bot[playerid][PInactiveSeconds]++;
  567.         }
  568.  
  569.         if(M_Bot[playerid][PFrozen] || AllFrozen)
  570.         {
  571.             FreezePlayer(playerid);
  572.         }
  573.        
  574.         if(M_Bot[playerid][PAFK] == 1)
  575.         {
  576.             SendClientMessage(playerid, COLOR_RGR," Du wurdest gekickt, da du AFK gegammelt hast!");
  577.             GameTextForPlayer(playerid,"~r~DU WURDEST VOM SERVER GEKICKT DA DU AFK GEGAMMELT HAST!",3500,3);
  578.             Kick(playerid);
  579.         }  
  580.        
  581.         M_Bot[playerid][PXpos] = M_Bot[playerid][PXpos2];
  582.         M_Bot[playerid][PYpos] = M_Bot[playerid][PYpos2];
  583.         M_Bot[playerid][PZpos] = M_Bot[playerid][PZpos2];
  584.         M_Bot[playerid][PLastInterior] = GetPlayerInterior(playerid);
  585.     }  
  586.     return 1;
  587. }
  588.  
  589.  
  590. stock IsAPlaneForNoCheck(vehicleid)
  591. {
  592.     new modelid = GetVehicleModel(vehicleid);
  593.     if(modelid == 417 || modelid == 425 || modelid == 447 || modelid == 460 || modelid == 469 || modelid == 476 || modelid == 487 || modelid == 488 || modelid == 497 || modelid == 511 || modelid == 512 || modelid == 513 || modelid == 519 || modelid == 520 || modelid == 548 || modelid == 553 || modelid == 563 || modelid == 577 || modelid == 593)
  594.     {
  595.         return 1;
  596.     }
  597.     return 0;
  598. }
  599.  
  600. stock GetWeaponSlot(wid) // Dank an [NSG]roschti für die Funktion
  601. {
  602.     new id;
  603.     switch(wid)
  604.     {
  605.         case 0,1:                   id=0;
  606.         case 2,3,4,5,6,7,8,9:       id=1;
  607.         case 22,23,24:              id=2;
  608.         case 25,26,27:              id=3;
  609.         case 28,29,32:              id=4;
  610.         case 30,31:                 id=5;
  611.         case 33,34:                 id=6;
  612.         case 35,36,37,38:           id=7;
  613.         case 16,17,18,19,39:        id=8;
  614.         case 41,42,43:              id=9;
  615.         case 10,11,12,13,14,15:     id=10;
  616.         case 44,45,46:              id=11;
  617.         case 40:                    id=12;
  618.         case 20,21,47,49,50,53,54:  id=(-1);
  619.         default:                    id=(-1);
  620.     }
  621.     return id;
  622. }
  623.  
  624.  
  625.  
  626. // ====================================================================================================================
  627.  
  628.  
  629.  
  630. EnableM_Bot()
  631. {
  632.     SetTimer("Check",2500,1);
  633.     AllFrozen = 0;
  634.     return 1;
  635. }
  636.  
  637. M_OnPlayerSpawn(playerid)
  638. {
  639.     M_Bot[playerid][PSpawned] = 1;
  640.     M_Bot[playerid][PCheck] = 0;
  641.     SetTimerEx("EnableChecking",3333,0,"i",playerid);
  642.     if(AllFrozen)
  643.     {
  644.         FreezePlayer(playerid);
  645.     }
  646.     return 1;
  647. }
  648.  
  649. M_OnPlayerConnect(playerid)
  650. {
  651.     if(!strcmp(RGR_Botname,GetName(playerid),true))
  652.     {
  653.         M_Kick(playerid);
  654.     }
  655.     for(new n=0; n<sizeof(BanClanTags); n++)
  656.     {
  657.         if(strfind(GetName(playerid),BanClanTags[n],false) == 0)
  658.         {
  659.             new banstring[128];
  660.             format(banstring,sizeof(banstring)," Dein Clan %s ist von diesem Server gebannt!",BanClanTags[n]);
  661.             SendClientMessage(playerid,COLOR_RGR,banstring);
  662.             format(banstring,sizeof(banstring),"AdmCmd: %s aus dem gebannten Clan %s hat den Server betreten und wurde gebannt!",GetName(playerid),BanClanTags[n]);
  663.             SendClientMessageToAdmins(COLOR_RGR,banstring);
  664.             M_Log(banstring);
  665.             format(banstring,sizeof(banstring),"Clan %s",BanClanTags[n]);
  666.             M_BanEx(playerid,banstring);
  667.         }
  668.     }
  669.     for(new n=0; n<sizeof(BanNames); n++)
  670.     {
  671.         if(strcmp(GetName(playerid),BanNames[n],true) == 0)
  672.         {
  673.             new banstring[128];
  674.             format(banstring,sizeof(banstring)," Dein Name %s ist von diesem Server gebannt!",GetName(playerid));
  675.             SendClientMessage(playerid,COLOR_RGR,banstring);
  676.             format(banstring,sizeof(banstring),"AdmCmd: %s hat den Server betreten und wurde gebannt!",GetName(playerid));
  677.             SendClientMessageToAdmins(COLOR_RGR,banstring);
  678.             M_Log(banstring);
  679.             format(banstring,sizeof(banstring),"Name %s",BanNames[n]);
  680.             M_BanEx(playerid,banstring);
  681.         }
  682.     }
  683.     // Reset Vars
  684. //  M_Bot[playerid][PMoney] = 0;
  685.     M_Bot[playerid][PLastInterior] = 0;
  686.     M_Bot[playerid][PInactiveSeconds] = 0;
  687.     M_Bot[playerid][PIPWarns] = 0;
  688.     M_Bot[playerid][PBadWordWarns] = 0;
  689.     M_Bot[playerid][PHighPingWarns] = 0;
  690.     M_Bot[playerid][PAFK] = 0;
  691.     M_Bot[playerid][PFrozen] = 0;
  692.     M_Bot[playerid][PSpawned] = 0;
  693.     M_Bot[playerid][PCheck] = 0;
  694.     M_Bot[playerid][PCheckHighPing] = 0;
  695.     for(new slot=0; slot<13; slot++)
  696.     {
  697.         M_Bot[playerid][PWeapon][slot] = -1;
  698.         M_Bot[playerid][PAmmo][slot] = 0;
  699.     }  
  700.     return 1;  
  701. }
  702.  
  703. /*M_OnPlayerDeath(playerid,killerid,reason)
  704. {
  705.     M_Bot[playerid][PSpawned] = 0;
  706.     if(GetPlayerState(killerid) == PLAYER_STATE_DRIVER && GetDistanceBetweenPlayers(playerid,killerid) < 20  && (reason == WEAPON_MP5 || reason == WEAPON_VEHICLE || reason == WEAPON_COLLISION))
  707.     {
  708.         new kickstring[128];
  709.         format(kickstring,sizeof(kickstring)," %s wurde vom %s gekickt! (GRUND: Fahrer-DriveBy)",GetName(killerid),RGR_Botname);
  710.         SendClientMessageToAll(COLOR_RGR,kickstring);
  711.         M_Kick(killerid);
  712.     }
  713.     return 1;  
  714. }*/
  715.  
  716. /*M_OnPlayerUpdate(playerid)
  717. {
  718.     M_Bot[playerid][PInactiveSeconds] = 0;
  719.     return 1;
  720. }*/
  721.  
  722. /*M_OnPlayerStateChange(playerid, newstate, oldstate)
  723. {
  724.     #pragma unused oldstate
  725.     if(newstate == PLAYER_STATE_DRIVER)
  726.     {
  727.         if(IsAnAmbulance(GetPlayerVehicleID(playerid)))
  728.         {
  729.             M_SetPlayerHealth(playerid,161.0);
  730.         }
  731.     }  
  732.     return 1;
  733. }*/
  734.  
  735.  
  736. #define GivePlayerWeapon    M_GivePlayerWeapon
  737. #define ResetPlayerWeapons  M_ResetPlayerWeapons
  738. //#define GivePlayerMoney   M_GivePlayerMoney
  739. //#define GetPlayerMoney        M_GetPlayerMoney
  740. //#define ResetPlayerMoney  M_ResetPlayerMoney
  741. #define SetPlayerHealth     M_SetPlayerHealth
  742. #define SetPlayerArmour     M_SetPlayerArmour
  743. #define PutPlayerInVehicle  M_PutPlayerInVehicle
  744. #define SetVehiclePos       M_SetVehiclePos
  745. #define SetPlayerPos        M_SetPlayerPos
  746. #define Kick                M_Kick
  747. #define Ban                 M_Ban
  748. #define BanEx               M_BanEx
Advertisement
Add Comment
Please, Sign In to add comment