All pastes #898627 Raw Edit

Hitman 0.1

public text v1 · immutable
#898627 ·published 2008-02-10 14:03 UTC
rendered paste body
/*
Welcome to the Play Hitman Minigame! This is a minigame I used to play
at an old server with some freinds, and found it too be quite fun!

(c) Grove/Jay 2008

*/

#define CASH_PRIZE 500000 //This is the prize that the player will win when killing the terrirost!
#define WEAPON_ID 34 //This is the weapon id that all players will recived to help kill him!
#define WEAPON_AMMO 400 ///this is the ammo!

#include <a_samp>
#define dcmd(%1,%2,%3) if ((strcmp((%3)[1], #%1, true, (%2)) == 0) && ((((%3)[(%2) + 1] == 0) && (dcmd_%1(playerid, "")))||(((%3)[(%2) + 1] == 32) && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1
#define yellow 0xFFFF00AA
#define green 0x33FF33AA
#define red 0xFF0000AA
#define white 0xFFFFFFAA
#define pink 0xCCFF00FFAA
#define blue 0x00FFFFAA
#define grey 0xAFAFAFAA
#define darkred 0x660000AA
#define orange 0xFF8040FF
#define green2 0x33AA33AA
#define red2 0xAA3333AA
forward VehicleTimerHealth(playerid);
new IsGameOn;
new PlayerHitman[200];
new lolz[256];
new color[200];

public OnFilterScriptInit()
{
	print("Play Hitman Minigame 1.0 by Grove Loaded!");
}
public OnFilterScriptExit()
{
	print("Play Hitman Minigame 1.0 by Grove Unloaded!");
}

public OnPlayerCommandText(playerid, cmdtext[])
{
	dcmd(hitman,6,cmdtext);
	dcmd(endhitman,9,cmdtext);
	return 0;
}

dcmd_hitman(playerid, params[])
{
	if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid,red,"You have to be an rcon adminitrator!");
	if(IsGameOn ==1) return SendClientMessage(playerid,red,"The minigame is already on!");

	StartHitman();
	#pragma unused params
	return true;
}

dcmd_endhitman(playerid, params[])
{
	if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid,red,"You have to be an rcon adminitrator!");
	if(!IsGameOn) return SendClientMessage(playerid,red,"The minigame is already off!");
	EndHitman();
	SendClientMessage(playerid,yellow,"You have successfully ended the hitman minigame.");
	GameTextForAll("Minigame Over",5000,1);
	#pragma unused params
	return true;
}

StartHitman()
{
	new id = GetRandomID();
	GameTextForAll("~w~Kill the ~r~red~w~ player!",5000,1);
	format(lolz,256,"%s has been identified as a very dangerous terrorist",PlayerName(id));
	SendClientMessageToAll(red,lolz);
	SendClientMessageToAll(red,"and is Wanted Dead or Alive!");
	format(lolz,256,"Whoever can kill %s will win $%d.",PlayerName(id),CASH_PRIZE);
	SendClientMessageToAll(red,lolz);
	for(new i =0; i <MAX_PLAYERS; i++)
	{
		color[i] = GetPlayerColor(i);
		SetPlayerColor(i,white);
		GivePlayerWeapon(i,WEAPON_ID,WEAPON_AMMO);
	}

	ResetPlayerWeapons(id);
	SetPlayerArmour(id,100);
	SetPlayerHealth(id,100);
	SetPlayerColor(id,red);
	PlayerHitman[id] = true;
	SetTimerEx("VehicleTimerHealth",30*1000,false,"i",id);
	IsGameOn = 1;

}

EndHitman()
{
	KillTimer(0);
	IsGameOn = 0;
	for(new i =0; i <MAX_PLAYERS; i++)
	{
	SetPlayerColor(i,color[i]);
	PlayerHitman[i] = false;
	}

}


public OnPlayerSpawn(playerid)
{
	if(IsGameOn) return SetPlayerColor(playerid,white);
	return true;
}


public VehicleTimerHealth(playerid)
{
	if(!IsPlayerInAnyVehicle(playerid)) return false;
	if(IsGameOn)
	{
		SetVehicleHealth((GetPlayerVehicleID(playerid)),100);
		SendClientMessage(playerid,red,"Burn Baby Burn!");
  		SetTimerEx("VehicleTimerHealth",30*1000,false,"i",playerid);
  		return false;
  	}
  	KillTimer(0);
	return true;
}

public OnPlayerDeath(playerid,killerid,reason)
{

	if(PlayerHitman[playerid])
	{
		if(killerid == INVALID_PLAYER_ID)
		{
		    format(lolz,256,"%s has killed himself, the minigame is over!",PlayerName(playerid));
		    SendClientMessageToAll(red,lolz);
		    EndHitman();
		    return false;
		}
		format(lolz,256,"%s has killed the Terrorist, %s! The Minigame is over!!",PlayerName(killerid),PlayerName(playerid));
		SendClientMessageToAll(red,lolz);
		EndHitman();
		GivePlayerMoney(killerid,CASH_PRIZE);
	}
	return true;
}

stock GetRandomID() //thanks to Boylett
{
	new bool:connected[MAX_PLAYERS] = false, amount = 0;
	for(new i = 0; i < MAX_PLAYERS; i++)
	    if(IsPlayerConnected(i))
	    {
	        connected[i] = true;
	        amount++;
	    }
	if(amount == 0) return -1;
	new rand = random(amount), done = 0;
	for(new i = 0; i < MAX_PLAYERS; i++)
	    if(connected[i])
	    {
	    	if(done == rand) return i;
	    	done++;
		}
	return -1;
}

stock PlayerName(playerid)
{
  new name[255];
  GetPlayerName(playerid, name, 255);
  return name;
}