Thread: [Solved] Spawn with 25 HP
View Single Post
Celena Luna
Veteran Member
Join Date: Aug 2013
Location: Nagazora
Old 04-16-2023 , 21:23   Re: Spawn with 25 HP
Reply With Quote #9

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], iPnumiPlayersName[64];
    
get_players(iPlayersiPnum"ah")

    for(new 
0iPnumi++)
    {
        
get_user_name(iPlayers[i], sNamecharsmax(sName))
        
client_print(idprint_console"%s: %i"sNameget_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_Spawnid"fwPlayerSpawn"1); // In this case, Ham_TakeDamage
    
client_print(0print_console"Registered Bot: %i"id)
}

public 
fwPlayerSpawn(id)
{
    if(
is_user_alive(id))
    {
        
set_user_health(idget_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
__________________
My plugin:

Last edited by Celena Luna; 04-16-2023 at 21:30.
Celena Luna is offline