/* Plugin Template generated by Pawn Studio */
 
#include <sourcemod>
 
new Handle:Enabled
new Handle:pBonus
new Handle:dBonus
new bool:g_isHooked
 
new g_iAccount
 
public Plugin:myinfo = 
{
	name = "Plant/Defuse Money",
	author = "Fredd",
	description = "Penzt kap a jatekos ha elesiti/hatastalanitja a bombat!",
	version = "1.0",
	url = "www.sourcemod.net"
}
 
public OnPluginStart()
{
	CreateConVar("pdm_version", "1.0")
 
	Enabled		=	CreateConVar("pdm_enabled", "1", "Plugin ki/be kapcsolasa (1/0) (Alap:1-bekapcsolva)")
	dBonus		=	CreateConVar("pdm_defuse", "500", "Ennyi penzt kap aki hatastalanitja a bombat (alap:500)")
	pBonus		=	CreateConVar("pdm_plant", "500", "Ennyi penzt kap aki elesiti a bombat (alap:500)")
 
	g_iAccount = FindSendPropOffs("CCSPlayer", "m_iAccount")
 
	HookEvent("bomb_planted", BombPlanted)
	HookEvent("bomb_defused", BombDefused)
 
	HookConVarChange(Enabled, ConvarChanged)	
}
public OnPluginEnd()
{
	if (g_isHooked == true)
	{
		UnhookEvent("bomb_planted", BombPlanted)
		UnhookEvent("bomb_defused", BombDefused)
	}
 
	UnhookConVarChange(Enabled, ConvarChanged);
}
public ConvarChanged(Handle:convar, const String:oldValue[], const String:newValue[])
{
	new value = !!StringToInt(newValue);
	if (value == 0)
	{
		if (g_isHooked == true)
		{
			g_isHooked = false;
 
			UnhookEvent("bomb_planted", BombPlanted)
			UnhookEvent("bomb_defused", BombDefused)
		}
	}
	else
	{
		g_isHooked = true;
 
		HookEvent("bomb_planted", BombPlanted)
		HookEvent("bomb_defused", BombDefused)
 
	}
}
public Action:BombPlanted(Handle:event, const String:name[], bool:dontBroadcast)
{
	new client = GetClientOfUserId(GetEventInt(event, "userid"))
 
	SetMoney(client, (GetMoney(client) + GetConVarInt(pBonus)))
 
	return Plugin_Continue;
}
public Action:BombDefused(Handle:event, const String:name[], bool:dontBroadcast)
{
	new client = GetClientOfUserId(GetEventInt(event, "userid"))
 
	SetMoney(client, (GetMoney(client) + GetConVarInt(dBonus)))
 
	return Plugin_Continue;
}
public GetMoney(client)
{
	if(g_iAccount != -1)
	{
		return GetEntData(client, g_iAccount);
	}
	return 0;
}
public SetMoney(client, amount)
{
	if(g_iAccount != -1)
	{
		SetEntData(client, g_iAccount, amount);
	}
}