Not tested, just wrote it down in the university:
PHP Code:
#include <sourcemod>
#pragma semicolon 1
#define HUD_INTERVAL 1.0
new bool:TankAlive = false;
new TankClient = -1;
public OnPluginStart()
{
HookEvent("tank_spawn", Tank_Spawn_Event);
HookEvent("player_death", Player_Death_Event);
}
public Action:Tank_Spawn_Event(Handle:event, const String:name[], bool:dontBroadcast)
{
TankClient = GetClientOfUserId(GetEventInt(event, "userid"));
TankAlive = true;
CreateTimer(HUD_INTERVAL, HUD_Timer, INVALID_HANDLE, TIMER_REPEAT);
}
public Action:Player_Death_Event(Handle:event, const String:name[], bool:dontBroadcast)
{
new client = GetClientOfUserId(GetEventInt(event, "userid"));
if (client == TankClient)
{
TankClient = -1;
TankAlive = false;
}
}
public Action:HUD_Timer(Handle:timer)
{
ShowHUD();
if(!TankAlive) return Plugin_Stop;
return Plugin_Continue;
}
ShowHUD()
{
if (!IsClientInGame(TankClient)) return;
if (!IsPlayerAlive(TankClient)) return;
new String:text[128];
new Handle:HUD = CreatePanel();
DrawPanelText(HUD, "Tank Info:");
DrawPanelText(HUD, "##################");
if (IsFakeClient(TankClient)) text = "Player: AI";
else Format(text, sizeof(text), "Player: %N", TankClient);
DrawPanelText(HUD, text);
new health = GetEntProp(TankClient, Prop_Send, "m_iHealth");
Format(text, sizeof(text), "Health: %d", health);
DrawPanelText(HUD, text);
for(new client = 1; client < MaxClients+1; client++)
{
if (!IsClientInGame(client)) continue;
if (IsFakeClient(client)) continue;
if (client == TankClient) continue;
SendPanelToClient(HUD, client, HUDHandler, 3);
}
}
public HUDHandler(Handle:menu, MenuAction:action, param1, param2)
{
}
__________________