YashasSamaga

Untitled

May 15th, 2015
562
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 15.11 KB | None | 0 0
  1. #include <a_samp>
  2. #include <zcmd>
  3. #include <sscanf2>
  4. #include<streamer>
  5.  
  6. static ConnectMessageText[5][MAX_PLAYER_NAME + 19];
  7.  
  8. #define BUSTAIM_MAX_PING 800
  9.  
  10. static Text:ConnectMessage1;
  11. static Text:ConnectMessage2;
  12. static Text:ConnectMessage3;
  13. static Text:ConnectMessage4;
  14. static Text:ConnectMessage5;
  15.  
  16. #define BUSTAIM_MAX_PL_PERCENT_ALLOWED 5
  17. ////////////////////////////////////////////////////////////////////////////////
  18. //INCLUDES-LOCAL
  19. #include "..\include\BustAim37.pwn"
  20. #include "..\include\xacnr_colors.inc"
  21. ////////////////////////////////////////////////////////////////////////////////
  22. //////////////////////////////CAN BE MODIFIED///////////////////////////////////
  23. //DEFINES - SERVER INFO
  24. #define SERVER_SNAME "XACNR"
  25. #define SERVER_NAME "eXtended & Advanced Cops And Robbers"
  26. #define SERVER_VERSION "XACNR V6.2.7 - 11/4/2012 Update"
  27. #define SERVER_COPYRIGHT "----------------------------------"
  28. ////////////////////////////////////////////////////////////////////////////////
  29. new Text:td;
  30. new Text:td2;
  31. public OnPlayerSuspectedForAimbot(playerid,hitid,weaponid,warnings)
  32. {
  33.     new str[144],nme[MAX_PLAYER_NAME],wname[32];
  34.     GetPlayerName(playerid,nme,sizeof(nme));
  35.     GetWeaponName(weaponid,wname,sizeof(wname));
  36.     if(warnings & WARNING_OUT_OF_RANGE_SHOT)
  37.     {
  38.         format(str,256,"%s(%d) fired shots from a distance greater than the %s's fire range.",nme,playerid,wname);
  39.         SendClientMessageToAll(-1,str);
  40.     }
  41.     if(warnings & WARNING_PROAIM_TELEPORT)
  42.     {
  43.         format(str,256,"%s(%d) is using proaim (Teleport Detected)",nme,playerid);
  44.         SendClientMessageToAll(-1,str);
  45.     }
  46.     if(warnings & WARNING_RANDOM_AIM)
  47.     {
  48.         format(str,256,"%s(%d) is suspected to be using aimbot(Hit with Random Aim with %s)",nme,playerid,wname);
  49.         SendClientMessageToAll(-1,str);
  50.     }
  51.     if(warnings & WARNING_BACKWARD_SHOT)
  52.     {
  53.         format(str,256,"%s(%d) shot a player behind him with %s.",nme,playerid,wname);
  54.         SendClientMessageToAll(-1,str);
  55.     }
  56.     if(warnings & WARNING_CONTINOUS_SHOTS)
  57.     {
  58.         format(str,256,"%s(%d) has fired 10 shots continously with %s(%d)",nme,playerid,wname,weaponid);
  59.         SendClientMessageToAll(-1,str);
  60.     }
  61.     return 0;
  62. }
  63. main()
  64. {
  65.     print("\n\n===========================");
  66.     print(" XACNR Gamemode ");
  67.     print(" Copyright (C) 2012 Yashas Samaga ");
  68.     print("===================================================\n");
  69.    
  70.     ConnectMessage1 = TextDrawCreate(480,290, " ");
  71.     TextDrawSetProportional(ConnectMessage1,1);
  72.     TextDrawColor(ConnectMessage1,COLOR_WHITE);
  73.     TextDrawFont(ConnectMessage1,1);
  74.     TextDrawLetterSize(ConnectMessage1,0.169999, 1.199999);
  75.     TextDrawSetShadow(ConnectMessage1, 1);
  76.     ConnectMessage2 = TextDrawCreate(480,300, " ");
  77.     TextDrawSetProportional(ConnectMessage2,1);
  78.     TextDrawColor(ConnectMessage2,COLOR_WHITE);
  79.     TextDrawFont(ConnectMessage2,1);
  80.     TextDrawLetterSize(ConnectMessage2, 0.169999, 1.199999);
  81.     TextDrawSetShadow(ConnectMessage2, 1);
  82.     ConnectMessage3 = TextDrawCreate(480,310, " ");
  83.     TextDrawSetProportional(ConnectMessage3,1);
  84.     TextDrawColor(ConnectMessage3,COLOR_WHITE);
  85.     TextDrawFont(ConnectMessage3,1);
  86.     TextDrawLetterSize(ConnectMessage3, 0.169999, 1.199999);
  87.     TextDrawSetShadow(ConnectMessage3, 1);
  88.     ConnectMessage4 = TextDrawCreate(480,320, " ");
  89.     TextDrawSetProportional(ConnectMessage4,1);
  90.     TextDrawColor(ConnectMessage4,COLOR_WHITE);
  91.     TextDrawFont(ConnectMessage4,1);
  92.     TextDrawLetterSize(ConnectMessage4,0.169999, 1.199999);
  93.     TextDrawSetShadow(ConnectMessage4, 1);
  94.     ConnectMessage5 = TextDrawCreate(480,330, " ");
  95.     TextDrawSetProportional(ConnectMessage5,1);
  96.     TextDrawColor(ConnectMessage5,COLOR_WHITE);
  97.     TextDrawFont(ConnectMessage5,1);
  98.     TextDrawLetterSize(ConnectMessage5,0.169999, 1.199999);
  99.     TextDrawSetShadow(ConnectMessage5, 1);
  100.     AddPlayerClass(1, 1958.33, 1343.12, 15.36, 269.15, 26, 36, 28, 150, 0, 0); // The Truth
  101.     AddPlayerClass(2, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0); // CJ
  102.     AddPlayerClass(3,1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0); // The Truth
  103.     AddPlayerClass(4,1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0); // CJ
  104.     AddPlayerClass(5,1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0); // The Truth
  105.     AddPlayerClass(6,1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0); // CJ
  106.     AddPlayerClass(7, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0); // The Truth
  107.     AddPlayerClass(8,1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0); // CJ
  108.     AddPlayerClass(9,1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0); // The Truth
  109.     AddPlayerClass(10,1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0); // CJ
  110.     AddPlayerClass(11,1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0); // The Truth
  111.     AddPlayerClass(12,1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0); // CJ
  112.     AddPlayerClass(13,1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0); // The Truth
  113.     AddPlayerClass(14,1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0); // CJ
  114.     AddPlayerClass(15,1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0); // The Truth
  115.     AddPlayerClass(16,1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0); // CJ
  116.     AddPlayerClass(17,1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0); // The Truth AddPlayerClass(0, 1958.33, 1343.12, 15.36, 269.15, 26, 36, 28, 150, 0, 0); // CJ
  117.     AddPlayerClass(18,1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0); // The Truth
  118.     AddPlayerClass(19,1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0); // CJ
  119.     AddPlayerClass(20,1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0); // The Truth AddPlayerClass(0, 1958.33, 1343.12, 15.36, 269.15, 26, 36, 28, 150, 0, 0); // CJ
  120.     AddPlayerClass(21,1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0); // The Truth AddPlayerClass(0, 1958.33, 1343.12, 15.36, 269.15, 26, 36, 28, 150, 0, 0); // CJ
  121.     AddPlayerClass(22,1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0); // The Truth
  122.     AddPlayerClass(23,1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0); // CJ
  123.     AddPlayerClass(24,1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0); // The Truth AddPlayerClass(0, 1958.33, 1343.12, 15.36, 269.15, 26, 36, 28, 150, 0, 0); // CJ
  124.     AddPlayerClass(25,1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0); // The Truth AddPlayerClass(0, 1958.33, 1343.12, 15.36, 269.15, 26, 36, 28, 150, 0, 0); // CJ
  125.     AddPlayerClass(26,1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0); // The Truth AddPlayerClass(0, 1958.33, 1343.12, 15.36, 269.15, 26, 36, 28, 150, 0, 0); // CJ
  126.  
  127.     AddPlayerClass(27,1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0); // The Truth
  128. }
  129. public OnGameModeInit()
  130. {
  131.    
  132.     SetGameModeText("BustAim Test Server");
  133.     td = TextDrawCreate(480,350,"");
  134.    
  135.     TextDrawFont(td,1);
  136.     TextDrawLetterSize(td,0.169999, 1.199999);
  137.     TextDrawSetShadow(td, 0);
  138.     TextDrawSetOutline(td,1);
  139.     TextDrawBackgroundColor(td,0x000000FF);
  140.    
  141.     td2 = TextDrawCreate(480,210,"");
  142.     TextDrawSetString(td2,"Type ~g~/help~w~ for more information~n~~g~/vspawn /teleto /teletome /sethealth /giveweapon~n~/freeze /unfreeze /jetpack /kill /movep /movev~n~/wmenu /vfix /dl~n~~n~~w~BustAim Profile Functions:~n~~g~/reset /profile /wprofile /wreset");
  143.     TextDrawFont(td2,1);
  144.     TextDrawLetterSize(td2,0.169999, 1.199999);
  145.     TextDrawSetShadow(td2, 0);
  146.     TextDrawSetOutline(td2,1);
  147.     TextDrawBackgroundColor(td2,0x000000FF);
  148.     return 1;
  149. }
  150. public OnGameModeExit()
  151. {
  152.  
  153.     return 1;
  154. }
  155. public OnPlayerRequestClass(playerid, classid)
  156. {
  157.     SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746);
  158.     SetPlayerCameraPos(playerid, 1958.3783, 1343.1572, 15.3746);
  159.     SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746);
  160.     return 1;
  161. }
  162. public OnIncomingConnection(playerid, ip_address[], port)
  163. {
  164.     return 1;
  165. }
  166. static stock UpdateConnectMessages(playerid,name[],reason)
  167. {
  168.     new rsn[9];
  169.     new string[sizeof(rsn) + MAX_PLAYER_NAME + 10];
  170.  
  171.     if(reason == 1)
  172.     {
  173.         rsn = "~y~KICK:";
  174.     }
  175.     else if(reason == 2)
  176.     {
  177.         rsn = "~y~TIME:";
  178.     }
  179.     else if(reason == 3)
  180.     {
  181.         rsn = "~r~QUIT:";
  182.     }
  183.     else if(reason == 4)
  184.     {
  185.         rsn = "~g~JOIN:";
  186.     }
  187.     else
  188.     {
  189.         rsn = "~b~BUG:";
  190.     }
  191.     format(string,sizeof(string),"%s~w~%s(%d)",rsn,name,playerid);
  192.     ConnectMessageText[0] = ConnectMessageText[1];
  193.     ConnectMessageText[1] = ConnectMessageText[2];
  194.     ConnectMessageText[2] = ConnectMessageText[3];
  195.     ConnectMessageText[3] = ConnectMessageText[4];
  196.     ConnectMessageText[4] = string;
  197.  
  198.     TextDrawSetString(ConnectMessage1,ConnectMessageText[0]);
  199.     TextDrawSetString(ConnectMessage2,ConnectMessageText[1]);
  200.     TextDrawSetString(ConnectMessage3,ConnectMessageText[2]);
  201.     TextDrawSetString(ConnectMessage4,ConnectMessageText[3]);
  202.     TextDrawSetString(ConnectMessage5,string);
  203. }
  204.  
  205. public OnPlayerConnect(playerid)
  206. {
  207.     new str[24];
  208.     GetPlayerName(playerid,str,24);
  209.     UpdateConnectMessages(playerid,str,4);
  210.     TextDrawShowForPlayer(playerid,td2);
  211.     TextDrawShowForPlayer(playerid,td);
  212.     TextDrawShowForPlayer(playerid,ConnectMessage1);
  213.     TextDrawShowForPlayer(playerid,ConnectMessage2);
  214.     TextDrawShowForPlayer(playerid,ConnectMessage3);
  215.     TextDrawShowForPlayer(playerid,ConnectMessage4);
  216.     TextDrawShowForPlayer(playerid,ConnectMessage5);
  217.  
  218.     return 1;
  219. }
  220. public OnPlayerUpdate(playerid)
  221. {
  222.     new str[256],nme[24];
  223.     format(str,256,"Packet Loss:");
  224.     for(new i = 0;i < 8;i++)
  225.     {
  226.         if(IsPlayerConnected(i))
  227.         {
  228.             GetPlayerName(i,nme,24);
  229.             format(str,256,"%s~n~~g~%s(%d):~r~%f",str,nme,i,NetStats_PacketLossPercent(i));
  230.         }
  231.     }
  232.     TextDrawSetString(td,str);
  233.     return 1;
  234. }
  235. public OnPlayerDisconnect(playerid, reason)
  236. {
  237.     new str[24];
  238.     GetPlayerName(playerid,str,24);
  239.     switch(reason)
  240.     {
  241.         case 0:UpdateConnectMessages(playerid,str,2);
  242.         case 1:UpdateConnectMessages(playerid,str,3);
  243.         case 2:UpdateConnectMessages(playerid,str,1);
  244.     }
  245.     return 1;
  246. }
  247. public OnPlayerRequestSpawn(playerid)
  248. {
  249.     return 1;
  250. }
  251. public OnPlayerSpawn(playerid)
  252. {
  253.     GivePlayerWeapon(playerid, 24, 5000);
  254.     GivePlayerWeapon(playerid, 26, 5000);
  255.     GivePlayerWeapon(playerid, 28, 9999);
  256.     GivePlayerWeapon(playerid, 31, 5000);
  257.     SetPlayerArmour(playerid,100);
  258.     SendClientMessage(playerid,0xFFFFFF,"Use /sethealth [playerid] [100000] to set yourself to god mode");
  259.     SendClientMessage(playerid,0xFFFFFF,"Use /givewep [playerid] [weaponid] [ammo] to give a weapon (/wmenu for weaponids)");
  260.     SendClientMessage(playerid,0xFFFFFF,"Use /teleto [playerid] and /teletome [playerid] to teleport yourself to a player or teleport a player to you respectively.");
  261.     SendClientMessage(playerid,0xFFFFFF,"Use /vspawn [modelid] [color1] [color2] (NRG=522,Hydra=520,Use /dl to see vehicle stats)");
  262.     SendClientMessage(playerid,0xFFFFFF,"[BUST-AIM]Use /profile [playerid] to check a players BustAim Profile and use /reset to reset your profile");
  263.     SendClientMessage(playerid,0xFFFFFF,"[BUST-AIM]Use /wprofile [playerid] [weaponid] to get Weapon Profile and /wreset to reset your weapon profile");
  264.     SendClientMessage(playerid,0xFFFFFF,"Type refill(main chat) to get instant ammo refill and godmode(main chat) to become immortal");
  265.  
  266.     return 1;
  267. }
  268.  
  269. COMMAND:help(playerid,params[])
  270. {
  271.     SendClientMessage(playerid,0xFFFFFF,"Use /sethealth [playerid] [100000] to set yourself to god mode");
  272.     SendClientMessage(playerid,0xFFFFFF,"Use /givewep [playerid] [weaponid] [ammo] to give a weapon (/wmenu for weaponids)");
  273.     SendClientMessage(playerid,0xFFFFFF,"Use /teleto [playerid] and /teletome [playerid] to teleport yourself to a player or teleport a player to you respectively.");
  274.     SendClientMessage(playerid,0xFFFFFF,"Use /vspawn [modelid] [color1] [color2] (NRG=522,Hydra=520,Use /dl to see vehicle stats)");
  275.     SendClientMessage(playerid,0xFFFFFF,"[BUST-AIM]Use /profile [PlayerID/Name] to check a players BustAim Profile and use /reset to reset your profile");
  276.     SendClientMessage(playerid,0xFFFFFF,"[BUST-AIM]Use /wprofile [PlayerID/Name] [weaponid] to get Weapon Profile and /wreset [weaponid] to reset your weapon profile");
  277.     SendClientMessage(playerid,0xFFFFFF,"Type refill(main chat) to get instant ammo refill and godmode(main chat) to become immortal");
  278.  
  279.     return 1;
  280. }
  281. COMMAND:profile(playerid,params[])
  282. {
  283.     new id;
  284.     if(sscanf(params, "u",id))
  285.     {
  286.         return SendClientMessage(playerid, 0xFF0000AA, "Usage:/profile [PlayerID/Name]");
  287.     }
  288.     new allshots,hitshots,max_cont_shots,out_of_range_warns,random_aim_warns,proaim_tele_warns,backward_shot_warns;
  289.     BustAim::GetPlayerProfile(id,allshots,hitshots,max_cont_shots,out_of_range_warns,random_aim_warns,proaim_tele_warns,backward_shot_warns);
  290.     new str[144],name[MAX_PLAYER_NAME];
  291.     GetPlayerName(id,name,MAX_PLAYER_NAME);
  292.     format(str,144,"BustAim Profile of %s(%d):Complete Profile:Stats of all weapons",name,id);
  293.     SendClientMessage(playerid,COLOR_GREEN,str);
  294.     format(str,144,"Fired:%d Hits:%d HitPercentage:%.2f MaxContinousShots:%d Bullets OutOfRangeWarns:%d AimWarns:%d TeleportWarns:%d BackwardShotWarns:%d",allshots,hitshots,((hitshots*100.0)/allshots),max_cont_shots,out_of_range_warns,random_aim_warns,proaim_tele_warns,backward_shot_warns);
  295.     SendClientMessage(playerid,COLOR_GREEN,str);
  296.     return 1;
  297. }
  298. COMMAND:wprofile(playerid,params[])
  299. {
  300.     new id,wid;
  301.     if(sscanf(params, "ui",id,wid))
  302.     {
  303.         return SendClientMessage(playerid, 0xFF0000AA, "Usage:/wprofile [PlayerID/Name] [WeaponID]");
  304.     }
  305.     new allshots,hitshots,max_cont_shots,out_of_range_warns,random_aim_warns,proaim_tele_warns,backward_shot_warns;
  306.     BustAim::GetPlayerWeaponProfile(playerid,wid,allshots,hitshots,max_cont_shots,out_of_range_warns,random_aim_warns,proaim_tele_warns,backward_shot_warns);
  307.     new str[144],name[MAX_PLAYER_NAME],wname[32];
  308.     GetPlayerName(id,name,MAX_PLAYER_NAME);
  309.     GetWeaponName(wid,wname,32);
  310.     format(str,144,"BustAim Weapon Profile of %s(%d):Stats of Weapon %s(%d)",name,id,wname,wid);
  311.     SendClientMessage(playerid,COLOR_GREEN,str);
  312.     format(str,144,"Fired:%d Hits:%d HitPercentage:%.2f MaxContinousShots:%d Bullets OutOfRangeWarns:%d AimWarns:%d TeleportWarns:%d BackwardShotWarns:%d",allshots,hitshots,((hitshots*100.0)/allshots),max_cont_shots,out_of_range_warns,random_aim_warns,proaim_tele_warns,backward_shot_warns);
  313.     SendClientMessage(playerid,COLOR_GREEN,str);
  314.     return 1;
  315. }
  316. COMMAND:reset(playerid,params[])
  317. {
  318.     BustAim::ResetPlayerProfile(playerid);
  319.     SendClientMessage(playerid,COLOR_GREEN,"Your profile has been reset for all weapons");
  320.     return 1;
  321. }
  322. COMMAND:wreset(playerid,params[])
  323. {
  324.     new tmp;
  325.     if(sscanf(params, "i",tmp))
  326.     {
  327.         return SendClientMessage(playerid, 0xFF0000AA, "Usage:/wprofile [WeaponID]");
  328.     }
  329.     BustAim::ResetPlayerWeaponProfile(playerid,tmp);
  330.     SendClientMessage(playerid,COLOR_GREEN,"Your weapon profile has been reset.");
  331.     return 1;
  332. }
  333. public OnPlayerDeath(playerid, killerid, reason)
  334. {
  335.    SendDeathMessage(killerid,playerid,reason);
  336. }
  337. public OnPlayerText(playerid, text[])
  338. {
  339.     if(strfind(text,"refill") != -1) {
  340.     GivePlayerWeapon(playerid, 1, 1);
  341.     GivePlayerWeapon(playerid, 24, 5000);
  342.     GivePlayerWeapon(playerid, 26, 5000);
  343.     GivePlayerWeapon(playerid, 28, 9999);
  344.     GivePlayerWeapon(playerid, 31, 5000);}
  345.     if(strfind(text,"godmode") != -1) { SetPlayerArmour(playerid,1000000); SetPlayerHealth(playerid,1000000); }
  346.     return 1;
  347. }
Advertisement
Add Comment
Please, Sign In to add comment