Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #define FILTERSCRIPT
- #include <a_samp>
- #include <zcmd>
- #include <foreach>
- #include <sscanf2>
- #define REWARD_NONE 0
- #define REWARD_SCORE 1
- #define REWARD_MONEY 2
- #define REWARD_HEALTH 3
- #define REWARD_ARMOUR 4
- enum hInfo
- {
- bool:BeingHunted,
- Reward = REWARD_NONE, RewardAmount
- };
- new
- Text:HuntInfo[ MAX_PLAYERS ] = Text:INVALID_TEXT_DRAW,
- HuntedInfo[ MAX_PLAYERS ][ hInfo ], HuntedPlayer = INVALID_PLAYER_ID,
- bool:HuntedSet = false,
- TextdrawTimer
- ;
- forward UpdateTextdraw();
- public UpdateTextdraw()
- {
- switch(HuntedSet)
- {
- case false: foreach(Player, i) TextDrawHideForPlayer(i, HuntInfo[i]);
- case true:
- {
- new string[140];
- foreach(Player, i)
- {
- 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));
- TextDrawSetString(HuntInfo[i], string);
- TextDrawShowForPlayer(i, HuntInfo[i]);
- }
- }
- }
- return 1;
- }
- #if defined FILTERSCRIPT
- public OnFilterScriptInit()
- {
- print("\n--------------------------------------");
- print("All-Hunt v1 loaded");
- print("--------------------------------------\n");
- foreach(Player, i) OnPlayerConnect(i);
- HuntedSet = false, HuntedPlayer = INVALID_PLAYER_ID;
- TextdrawTimer = SetTimer("UpdateTextdraw", 4500, true);
- return 1;
- }
- public OnFilterScriptExit()
- {
- print("\n--------------------------------------");
- print("All-Hunt v1 unloaded");
- print("--------------------------------------\n");
- foreach(Player, i)
- {
- TextDrawDestroy(HuntInfo[i]);
- if(HuntedInfo[ i ][ BeingHunted ] == true) HuntedInfo[ i ][ BeingHunted ] = false;
- }
- HuntedSet = false, HuntedPlayer = INVALID_PLAYER_ID;
- KillTimer(TextdrawTimer);
- return 1;
- }
- #endif
- public OnPlayerConnect(playerid)
- {
- HuntedInfo[ playerid ][ BeingHunted ] = false;
- HuntedInfo[ playerid ][ Reward ] = REWARD_NONE, HuntedInfo[ playerid ][ RewardAmount ] = 0;
- 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
- TextDrawBackgroundColor(HuntInfo[playerid], 255);
- TextDrawFont(HuntInfo[playerid], 2);
- TextDrawLetterSize(HuntInfo[playerid], 0.199999,1.100000);
- TextDrawColor(HuntInfo[playerid], -1);
- TextDrawSetOutline(HuntInfo[playerid], 1);
- TextDrawSetProportional(HuntInfo[playerid], 1);
- TextDrawSetShadow(HuntInfo[playerid], 1);
- TextDrawAlignment(HuntInfo[playerid], 2);
- return 1;
- }
- public OnPlayerDisconnect(playerid, reason)
- {
- if(HuntedInfo[ playerid ][ BeingHunted ] == true)
- {
- new
- string[74];
- format(string, sizeof(string), "(HUNT) %s(%d) has left the server while hunted - hunt cancelled. . .", GetName(playerid), playerid), SendClientMessageToAll(0xFF9900AA, string);
- HuntedInfo[ playerid ][ BeingHunted ] = false;
- HuntedInfo[ playerid ][ Reward ] = REWARD_NONE;
- HuntedSet = false;
- HuntedPlayer = INVALID_PLAYER_ID;
- }
- TextDrawDestroy(HuntInfo[playerid]);
- return 1;
- }
- public OnPlayerSpawn(playerid)
- {
- //You can remove the lines underneath..
- if(HuntedInfo[ playerid ][ BeingHunted ] == true)
- {
- new
- string[76];
- format(string, sizeof(string), "(HUNT) %s(%d) has spawned while hunted - hunt cancelled. . .", GetName(playerid), playerid), SendClientMessageToAll(0xFF9900AA, string);
- HuntedInfo[ playerid ][ BeingHunted ] = false;
- HuntedInfo[ playerid ][ Reward ] = REWARD_NONE;
- HuntedSet = false;
- HuntedPlayer = INVALID_PLAYER_ID;
- }
- return 1;
- }
- public OnPlayerDeath(playerid, killerid, reason)
- {
- if(HuntedInfo[ playerid ][ BeingHunted ] == true && killerid != INVALID_PLAYER_ID)
- {
- new
- string[128];
- 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
- switch(HuntedInfo[ playerid ][ Reward ])
- {
- case REWARD_NONE:
- {
- 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
- SetPlayerScore(killerid, GetPlayerScore(killerid)+3), GivePlayerMoney(killerid, 5000+random(10000));
- }
- case REWARD_SCORE:
- {
- 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
- SetPlayerScore(killerid, GetPlayerScore(killerid)+3+random(5));
- }
- case REWARD_MONEY:
- {
- format(string, sizeof(string), "(HUNT) %s(%d) received money for killing %s(%d).", GetName(killerid), killerid, GetName(playerid), playerid), SendClientMessageToAll(0xFF9900AA, string); //color orange
- GivePlayerMoney(killerid, 5000+random(10000));
- }
- case REWARD_HEALTH:
- {
- 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
- SetPlayerHealth(killerid, 99);
- }
- case REWARD_ARMOUR:
- {
- 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
- SetPlayerArmour(killerid, 99);
- }
- }
- HuntedInfo[ playerid ][ BeingHunted ] = false;
- HuntedInfo[ playerid ][ Reward ] = REWARD_NONE;
- HuntedSet = false;
- HuntedPlayer = INVALID_PLAYER_ID;
- }
- return 1;
- }
- //unsethunted would be the same(kinda), but with less checks(like sscanf, weaponid.), and you would set the variables to 'false', REWARD_NONE;
- CMD:sethunted(playerid, params[]) {
- new
- huntedid, Float:health, Float:armour, weaponid, string[124];
- if(!IsPlayerAdmin(playerid)) return 0;
- if(HuntedSet) return SendClientMessage(playerid, 0xFF0000AA, "(INFO) You can't set more than one hunted player!"); //red(ish) color
- if(sscanf(params, "uffi", huntedid, health, armour, weaponid)) return SendClientMessage(playerid, 0xFF9900AA, "(USAGE) /sethunted TargetID SetHisHealth SetHisArmour GiveHimAWeapon");//color orange
- if(!IsPlayerConnected(huntedid) || huntedid == INVALID_PLAYER_ID) return SendClientMessage(playerid, 0xFF0000A, "(ERROR) You've given an invalid player ID!");
- else if(weaponid < 0 || weaponid > 42) return SendClientMessage(playerid, 0xFF0000A, "(ERROR) You've given and invalid weapon ID!");
- 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).
- HuntedInfo[ huntedid ][ BeingHunted ] = false;
- HuntedSet = true, HuntedPlayer = huntedid;
- switch(5)
- {
- case 0: HuntedInfo[ huntedid ][ Reward ] = REWARD_NONE;
- case 1: HuntedInfo[ huntedid ][ Reward ] = REWARD_SCORE;
- case 2: HuntedInfo[ huntedid ][ Reward ] = REWARD_MONEY;
- case 3: HuntedInfo[ huntedid ][ Reward ] = REWARD_HEALTH;
- case 4: HuntedInfo[ huntedid ][ Reward ] = REWARD_ARMOUR;
- }
- 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);
- 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);
- return 1;
- }
- CMD:hunted(playerid, params[]) {
- new string[124];
- if(!HuntedSet) return SendClientMessage(playerid, 0xFF9900AA, "(INFO) Nobody is being hunted.");
- format(string, sizeof(string), "%s(%d) - reward type: %s.", GetName(HuntedPlayer), HuntedPlayer, GetReward(HuntedPlayer)), SendClientMessage(playerid, 0xFF9900AA, string);
- return 1;
- }
- stock GetName(playerid)
- {
- new pnameid[24];
- GetPlayerName(playerid,pnameid,sizeof(pnameid));
- return pnameid;
- }
- stock GetReward(playerid)
- {
- new string[7];
- switch(HuntedInfo[ playerid ][ Reward ])
- {
- case REWARD_NONE: format(string, sizeof(string), "none");
- case REWARD_SCORE: format(string, sizeof(string), "score");
- case REWARD_MONEY: format(string, sizeof(string), "money");
- case REWARD_HEALTH: format(string, sizeof(string), "health");
- case REWARD_ARMOUR: format(string, sizeof(string), "armour");
- }
- return string;
- }
- stock GetDistance(playerid, targetid)
- {
- new Float:tX, Float:tY, Float:tZ, Float:distance;
- GetPlayerPos(targetid, tX, tY, tZ), distance = GetPlayerDistanceFromPoint(playerid, tX, tY, tZ);
- return _:distance;
- }
- stock WeaponName(weaponid)
- {
- new weapname[30];
- GetWeaponName(weaponid, weapname, sizeof(weapname));
- return weapname;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement