PLUGINS REVIVE
#1
El objetivo del plugin es que puedes revivir a un player despues de muerto, acercandote al cadaver y apretando CTRL + E. En ese instante se cargará una linea de progreso, y cuando termine el jugador respawnea donde murió.


podrian ayudar en dejarle un acceso para que pueda revivirlo y que solo deje una vez por player p


acceso_rcon
por ronda

GRACIAS Y SALUDOS


Código PHP:
/* 

    - Credits: 
        # Alucard (Get_origin)
        # Black Rose (Check buttoms)
*/    

#include <amxmodx>
#include <amxmisc>
#include <fakemeta>
#include <hamsandwich>
#include <fun>
#include <cstrike>

#define PLUGIN "CPR Revive"
#define VERSION "1.0"
#define AUTHOR "wiD"

new Float:fOrigin[33][3// Poss of victim
new gCheck[33]
new 
Float:fPoss[33][3// Poss of reviver
new checkid
new g_msgBarTime;
new 
gMessage[33]

public 
plugin_init() {
    
register_plugin(PLUGINVERSIONAUTHOR)
    
    
register_event("DeathMsg",                    "event_DeathMsg""a")
    
    
register_forward(FM_CmdStart"OnCmdStart"false)
    
    
g_msgBarTime get_user_msgid"BarTime" );
}

public 
get_origin(id)
{
    new 
Float:fDeath[3]
    
pev(id pev_origin fDeath)
    
    
fOrigin[id][0] = fDeath[0]
    
fOrigin[id][1] = fDeath[1]
    
fOrigin[id][2] = fDeath[2]
    
    return 
PLUGIN_HANDLED
}

public 
event_DeathMsg()
{
    new 
attacker read_data(1
    new 
victim read_data(2
    
    if (!(
is_user_connected(attacker)) || (attacker == victim)) 
        return;
        
    
get_origin(victim)
}

public 
OnCmdStart(iduc_handleseed
{
    
    if (!
is_user_alive(id))
        return;
    
    static 
buttons;
    
buttons get_uc(uc_handleUC_Buttons);
    
    if ((
buttons IN_DUCK) && (buttons IN_USE)) 
    {
        if (!
gCheck[id] && CheckOrigin(id)) 
        {
            
set_task(10.0"RevivePlayer"id)
            
gCheck[id] = true;
            if(!
gMessage[id])
            {
                
startBar(id)
                
gMessage[id] = true
            
}
        }
    }
    else 
    {
        
stopBar(id)
        
remove_task(id);
        
gCheck[id] = false;
        
gMessage[id] = false;
    }
    
    return;
}

public 
CheckOrigin(id)
{
    new 
bool:checking
    
new Float:fPosition[3]
    
pev(id pev_origin fPosition)
    
    
fPoss[id][0] = fPosition[0]
    
fPoss[id][1] = fPosition[1]
    
fPoss[id][2] = fPosition[2]
    
    for(new 
1<= get_maxplayers( ); i++ )
    {
        if((
fOrigin[i][0] == fPoss[id][0]) && (fOrigin[i][1] == fPoss[id][1]) && (fOrigin[i][2] == fPoss[id][2]) && (cs_get_user_team(id) == cs_get_user_team(i)))
        {
            
checking true
            checkid 
i
            
break;
        }
    }
    
    return 
checking;
}
    

public 
RevivePlayer(id)
{
    
ExecuteHamB(Ham_CS_RoundRespawncheckid)
    new 
Float:fSetOrigin[3]
    
fSetOrigin[0] = fPoss[id][0]
    
fSetOrigin[1] = fPoss[id][1]
    
fSetOrigin[2] = fPoss[id][2]
    
set_user_origin(checkidfSetOrigin)
    
client_print(0print_chat"[CPR] User %s respawned target %s"idcheckid)
}

public 
startBar(id)
{
    
message_beginMSG_ONE g_msgBarTime , {0,0,0} , id );
    
write_short10 );
    
message_end();

}
 
public 
stopBar(id)
{
    
message_begin(MSG_ONEg_msgBarTime_id)
    
write_short(0)
    
message_end()

Responder


Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)