Advertisement
Guest User

ay

a guest
Oct 28th, 2014
59
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 8.92 KB | None | 0 0
  1. #define FILTERSCRIPT
  2.  
  3. #include <a_samp>
  4. #include <zcmd>
  5. #include <foreach>
  6. #include <sscanf2>
  7.  
  8. #define     REWARD_NONE         0
  9. #define     REWARD_SCORE        1
  10. #define     REWARD_MONEY        2
  11. #define     REWARD_HEALTH       3
  12. #define     REWARD_ARMOUR       4
  13.  
  14. enum hInfo
  15. {
  16.     bool:BeingHunted,
  17.     Reward = REWARD_NONE, RewardAmount
  18. };
  19. new
  20.     Text:HuntInfo[ MAX_PLAYERS ] = Text:INVALID_TEXT_DRAW,
  21.     HuntedInfo[ MAX_PLAYERS ][ hInfo ], HuntedPlayer = INVALID_PLAYER_ID,
  22.     bool:HuntedSet = false,
  23.     TextdrawTimer
  24. ;
  25.  
  26. forward UpdateTextdraw();
  27. public UpdateTextdraw()
  28. {
  29.     switch(HuntedSet)
  30.     {
  31.         case false: foreach(Player, i) TextDrawHideForPlayer(i, HuntInfo[i]);
  32.         case true:
  33.         {
  34.             new string[140];
  35.             foreach(Player, i)
  36.             {
  37.                 format(string, sizeof(string), "~r~HUNTED INFORMATION~n~~w~Hunted player: ~y~%s~n~~w~Reward type: ~y~%s~n~~w~Distance: ~y~%0.1f", GetName(HuntedPlayer), GetReward(HuntedPlayer), GetDistance(i, HuntedPlayer));
  38.                 TextDrawSetString(HuntInfo[i], string);
  39.                 TextDrawShowForPlayer(i, HuntInfo[i]);
  40.             }
  41.         }
  42.     }
  43.     return 1;
  44. }
  45.  
  46. #if defined FILTERSCRIPT
  47.  
  48. public OnFilterScriptInit()
  49. {
  50.     print("\n--------------------------------------");
  51.     print("All-Hunt v1 loaded");
  52.     print("--------------------------------------\n");
  53.     foreach(Player, i) OnPlayerConnect(i);
  54.     HuntedSet = false, HuntedPlayer = INVALID_PLAYER_ID;
  55.     TextdrawTimer = SetTimer("UpdateTextdraw", 4500, true);
  56.     return 1;
  57. }
  58.  
  59. public OnFilterScriptExit()
  60. {
  61.     print("\n--------------------------------------");
  62.     print("All-Hunt v1 unloaded");
  63.     print("--------------------------------------\n");
  64.     foreach(Player, i)
  65.     {
  66.         TextDrawDestroy(HuntInfo[i]);
  67.         if(HuntedInfo[ i ][ BeingHunted ] == true) HuntedInfo[ i ][ BeingHunted ] = false;
  68.     }
  69.     HuntedSet = false, HuntedPlayer = INVALID_PLAYER_ID;
  70.     KillTimer(TextdrawTimer);
  71.     return 1;
  72. }
  73.  
  74. #endif
  75.  
  76.  
  77. public OnPlayerConnect(playerid)
  78. {
  79.     HuntedInfo[ playerid ][ BeingHunted ] = false;
  80.     HuntedInfo[ playerid ][ Reward ] = REWARD_NONE, HuntedInfo[ playerid ][ RewardAmount ] = 0;
  81.    
  82.     HuntInfo[playerid] = TextDrawCreate(500.000000, 396.200000, "~r~HUNTED INFORMATION~n~~w~Hunted player: ~y~N/A~n~~w~Reward type: ~y~N/A~n~~w~Distance: ~y~N/A"); //460 396.2
  83.     TextDrawBackgroundColor(HuntInfo[playerid], 255);
  84.     TextDrawFont(HuntInfo[playerid], 2);
  85.     TextDrawLetterSize(HuntInfo[playerid], 0.199999,1.100000);
  86.     TextDrawColor(HuntInfo[playerid], -1);
  87.     TextDrawSetOutline(HuntInfo[playerid], 1);
  88.     TextDrawSetProportional(HuntInfo[playerid], 1);
  89.     TextDrawSetShadow(HuntInfo[playerid], 1);
  90.     TextDrawAlignment(HuntInfo[playerid], 2);
  91.     return 1;
  92. }
  93. public OnPlayerDisconnect(playerid, reason)
  94. {
  95.     if(HuntedInfo[ playerid ][ BeingHunted ] == true)
  96.     {
  97.         new
  98.             string[74];
  99.         format(string, sizeof(string), "(HUNT) %s(%d) has left the server while hunted - hunt cancelled. . .", GetName(playerid), playerid), SendClientMessageToAll(0xFF9900AA, string);
  100.         HuntedInfo[ playerid ][ BeingHunted ] = false;
  101.         HuntedInfo[ playerid ][ Reward ] = REWARD_NONE;
  102.         HuntedSet = false;
  103.         HuntedPlayer = INVALID_PLAYER_ID;
  104.     }
  105.     TextDrawDestroy(HuntInfo[playerid]);
  106.     return 1;
  107. }
  108.  
  109.  
  110.  
  111. public OnPlayerSpawn(playerid)
  112. {
  113.     //You can remove the lines underneath..
  114.     if(HuntedInfo[ playerid ][ BeingHunted ] == true)
  115.     {
  116.         new
  117.             string[76];
  118.         format(string, sizeof(string), "(HUNT) %s(%d) has spawned while hunted - hunt cancelled. . .", GetName(playerid), playerid), SendClientMessageToAll(0xFF9900AA, string);
  119.         HuntedInfo[ playerid ][ BeingHunted ] = false;
  120.         HuntedInfo[ playerid ][ Reward ] = REWARD_NONE;
  121.         HuntedSet = false;
  122.         HuntedPlayer = INVALID_PLAYER_ID;
  123.     }
  124.     return 1;
  125. }
  126. public OnPlayerDeath(playerid, killerid, reason)
  127. {
  128.     if(HuntedInfo[ playerid ][ BeingHunted ] == true && killerid != INVALID_PLAYER_ID)
  129.     {
  130.         new
  131.             string[128];
  132.         format(string, sizeof(string), "(HUNT) %s(%d) has killed the hunted %s(%d) - hunt ended!", GetName(killerid), killerid, GetName(playerid), playerid), SendClientMessageToAll(0xFF9900AA, string); //color orange
  133.         switch(HuntedInfo[ playerid ][ Reward ])
  134.         {
  135.             case REWARD_NONE:
  136.             {
  137.                 format(string, sizeof(string), "(HUNT) %s(%d) didn't have an reward set - Giving %s(%d) some score and money.", GetName(playerid), playerid, GetName(killerid), killerid), SendClientMessageToAll(0xFF9900AA, string); //color orange
  138.                 SetPlayerScore(killerid, GetPlayerScore(killerid)+3), GivePlayerMoney(killerid, 5000+random(10000));
  139.             }
  140.             case REWARD_SCORE:
  141.             {
  142.                 format(string, sizeof(string), "(HUNT) %s(%d) received some score for killing %s(%d).", GetName(killerid), killerid, GetName(playerid), playerid), SendClientMessageToAll(0xFF9900AA, string); //color orange
  143.                 SetPlayerScore(killerid, GetPlayerScore(killerid)+3+random(5));
  144.             }
  145.             case REWARD_MONEY:
  146.             {
  147.                 format(string, sizeof(string), "(HUNT) %s(%d) received money for killing %s(%d).", GetName(killerid), killerid, GetName(playerid), playerid), SendClientMessageToAll(0xFF9900AA, string); //color orange
  148.                 GivePlayerMoney(killerid, 5000+random(10000));
  149.             }
  150.             case REWARD_HEALTH:
  151.             {
  152.                 format(string, sizeof(string), "(HUNT) %s(%d) received full-health for killing %s(%d).", GetName(killerid), killerid, GetName(playerid), playerid), SendClientMessageToAll(0xFF9900AA, string); //color orange
  153.                 SetPlayerHealth(killerid, 99);
  154.             }
  155.             case REWARD_ARMOUR:
  156.             {
  157.                 format(string, sizeof(string), "(HUNT) %s(%d) received full-armour for killing %s(%d).", GetName(killerid), killerid, GetName(playerid), playerid), SendClientMessageToAll(0xFF9900AA, string); //color orange
  158.                 SetPlayerArmour(killerid, 99);
  159.             }
  160.         }
  161.         HuntedInfo[ playerid ][ BeingHunted ] = false;
  162.         HuntedInfo[ playerid ][ Reward ] = REWARD_NONE;
  163.         HuntedSet = false;
  164.         HuntedPlayer = INVALID_PLAYER_ID;
  165.     }
  166.     return 1;
  167. }
  168.  
  169.  
  170. //unsethunted would be the same(kinda), but with less checks(like sscanf, weaponid.), and you would set the variables to 'false', REWARD_NONE;
  171. CMD:sethunted(playerid, params[]) {
  172.     new
  173.         huntedid, Float:health, Float:armour, weaponid, string[124];
  174.     if(!IsPlayerAdmin(playerid)) return 0;
  175.     if(HuntedSet) return SendClientMessage(playerid, 0xFF0000AA, "(INFO) You can't set more than one hunted player!"); //red(ish) color
  176.     if(sscanf(params, "uffi", huntedid, health, armour, weaponid)) return SendClientMessage(playerid, 0xFF9900AA, "(USAGE) /sethunted TargetID SetHisHealth SetHisArmour GiveHimAWeapon");//color orange
  177.  
  178.     if(!IsPlayerConnected(huntedid) || huntedid == INVALID_PLAYER_ID) return SendClientMessage(playerid, 0xFF0000A, "(ERROR) You've given an invalid player ID!");
  179.     else if(weaponid < 0 || weaponid > 42) return SendClientMessage(playerid, 0xFF0000A, "(ERROR) You've given and invalid weapon ID!");
  180.     else if(weaponid == 38 || weaponid == 39 || weaponid == 40) return SendClientMessage(playerid, 0xFF0000A, "(ERROR) You can't give out these weapons!"); //minigun and satchel charge(c4).
  181.    
  182.     HuntedInfo[ huntedid ][ BeingHunted ] = false;
  183.     HuntedSet = true, HuntedPlayer = huntedid;
  184.     switch(5)
  185.     {
  186.         case 0: HuntedInfo[ huntedid ][ Reward ] = REWARD_NONE;
  187.         case 1: HuntedInfo[ huntedid ][ Reward ] = REWARD_SCORE;
  188.         case 2: HuntedInfo[ huntedid ][ Reward ] = REWARD_MONEY;
  189.         case 3: HuntedInfo[ huntedid ][ Reward ] = REWARD_HEALTH;
  190.         case 4: HuntedInfo[ huntedid ][ Reward ] = REWARD_ARMOUR;
  191.     }
  192.     format(string, sizeof(string), "(HUNT) %s(%d) has set %s(%d) as the hunted, reward - %s.", GetName(playerid), playerid, GetName(huntedid), huntedid, GetReward(huntedid)), SendClientMessageToAll(0xFF9900AA, string);
  193.     format(string, sizeof(string), "(HUNT) But be careful, %s has %f health, %f armour and received a %s!", GetName(huntedid), health, armour, WeaponName(weaponid)), SendClientMessageToAll(0xFF9900AA, string);
  194.     return 1;
  195. }
  196. CMD:hunted(playerid, params[]) {
  197.     new string[124];
  198.     if(!HuntedSet) return SendClientMessage(playerid, 0xFF9900AA, "(INFO) Nobody is being hunted.");
  199.     format(string, sizeof(string), "%s(%d) - reward type: %s.", GetName(HuntedPlayer), HuntedPlayer, GetReward(HuntedPlayer)), SendClientMessage(playerid, 0xFF9900AA, string);
  200.     return 1;
  201. }
  202. stock GetName(playerid)
  203. {
  204.     new pnameid[24];
  205.     GetPlayerName(playerid,pnameid,sizeof(pnameid));
  206.     return pnameid;
  207. }
  208. stock GetReward(playerid)
  209. {
  210.     new string[7];
  211.     switch(HuntedInfo[ playerid ][ Reward ])
  212.     {
  213.         case REWARD_NONE: format(string, sizeof(string), "none");
  214.         case REWARD_SCORE: format(string, sizeof(string), "score");
  215.         case REWARD_MONEY: format(string, sizeof(string), "money");
  216.         case REWARD_HEALTH: format(string, sizeof(string), "health");
  217.         case REWARD_ARMOUR: format(string, sizeof(string), "armour");
  218.     }
  219.     return string;
  220. }
  221. stock GetDistance(playerid, targetid)
  222. {
  223.     new Float:tX, Float:tY, Float:tZ, Float:distance;
  224.     GetPlayerPos(targetid, tX, tY, tZ), distance = GetPlayerDistanceFromPoint(playerid, tX, tY, tZ);
  225.     return _:distance;
  226. }
  227. stock WeaponName(weaponid)
  228. {
  229.     new weapname[30];
  230.     GetWeaponName(weaponid, weapname, sizeof(weapname));
  231.     return weapname;
  232. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement