PHP Code:
#include <amxmodx>
#include <hamsandwich>
#include <fun>
new cvar_hp
new g_hambots; // This variable will check if the hams have been recorded
public plugin_init()
{
register_plugin("Low HP", "alliedmods", "0.1")
RegisterHam(Ham_Spawn, "player", "fwPlayerSpawn", 1)
cvar_hp = register_cvar("spawn_hp_amount", "25")
register_clcmd("say /bothp", "CMD_BotHP")
}
public CMD_BotHP(id)
{
new iPlayers[32], iPnum, iPlayer, sName[64];
get_players(iPlayers, iPnum, "ah")
for(new i = 0; i < iPnum; i++)
{
get_user_name(iPlayers[i], sName, charsmax(sName))
client_print(id, print_console, "%s: %i", sName, get_user_health(iPlayers[i]))
}
}
// Spawn event hook for bots: https://forums.alliedmods.net/showthread.php?t=294861
public client_putinserver(id)
{
if(!g_hambots && is_user_bot(id))
{
g_hambots = 1
set_task(0.1, "Do_RegisterHam", id)
}
}
public Do_RegisterHam(id)
{
// Ham Forwards
RegisterHamFromEntity(Ham_Spawn, id, "fwPlayerSpawn", 1); // In this case, Ham_TakeDamage
client_print(0, print_console, "Registered Bot: %i", id)
}
public fwPlayerSpawn(id)
{
if(is_user_alive(id))
{
set_user_health(id, get_pcvar_num(cvar_hp))
}
}
I am not sure why this work but as long as it work then it should be fine I guess....
I remove IsValid, add cmd to check and change client_putinserver a bit
Also, when testing, I notce that if other type of bot was used (ex:SyPB, PODBot,..) and they spawn first, they will "eat" the
RegisterHamFromEntity and ZBot willl not get the
RegisterHamFromEntity
__________________