Win CT TT Sprites En HUD (CSO Normal)
#1
Buenas Noches, a todos y todas xD, Vengo por aca por este problema...

-Yo al poner esto sprites con su plugin y todo me agarra normal fino ps, y a los dias, en la consola de mi gpanel me dice debug linea nose que , es decir poner debug en el plugins.ini en el amxx , ps hago eso pero ya el sprite no sale al ganar los CT o Los TT , quito el debug y tampoco no hagarra y ps nose que es lo que pasa,Pero supongo que debe ser un error en el (SMA) , Trae 2 sma uno llamado.. advanced_win_msgs y el otro sprites_on_hud
Código:
#include <amxmodx>
#include <fakemeta>
#include <fakemeta_util>
#include <dsohud>

// Win sprites dirs'
new const g_ct_win[] = "sprites/teamwin/ctwin_cso.spr"
new const g_t_win[] = "sprites/teamwin/trwin_cso.spr"

new g_maxplayers

public plugin_init()
{
    register_plugin("Advanced Win Msgs.", "1.0", "@bdul!");
    
    // Round start event
    register_event("HLTV", "event_round_start", "a", "1=0", "2=0")
    
    // Hook win team
    register_logevent("Event_CTWin", 6, "3=CTs_Win", "3=All_Hostages_Rescued")
    register_logevent("Event_TerroristWin" , 6, "3=Terrorists_Win", "3=Target_Bombed")
    
    // Retrieve max players
    g_maxplayers = get_maxplayers()
}

// Prechache the sprites
public plugin_precache()
{
    precache_model(g_t_win)
    precache_model(g_ct_win)
}

// Remove win sprites on new round
public event_round_start()
{
    static id
    for (id = 1; id <= g_maxplayers; id++)
        remove_hud_sprite(id)
}

// Set "ctwin" sprites on players HUD
public Event_CTWin(id)
{
    static id
    for (id = 1; id <= g_maxplayers; id++)
    {
        display_hud_sprite(id, g_ct_win, 0.04)
    }
}

// Set "twin" sprites on players HUD
public Event_TerroristWin(id)
{
    static id
    for (id = 1; id <= g_maxplayers; id++)
    {
        display_hud_sprite(id, g_t_win, 0.05)
    }
}

// no sprites on players HUD
public Event_Draw(id)
{
    return
}
Código:
#include <amxmodx>
#include <fakemeta>
#include <xs>

// Distance at which the sprite is placed from the users screen
// DO NOT EDIT UNNECESSARILY!
#define DISTANCE     12

new g_player_ent[33], g_bit_connected_user, g_stop_frame[33]

// Connected players macros
#define player_is_connected(%1)        (g_bit_connected_user |=  (1 << (%1 & 31)))
#define player_disconnected(%1)        (g_bit_connected_user &= ~(1 << (%1 & 31)))
#define is_player_connected(%1)        ((1 <= %1 <= 32) && (g_bit_connected_user & (1 << (%1 & 31))))

public plugin_init()
{
    // Register the plugin and the main forward
    register_plugin("Addon: Sprites On HUD", "1.0", "@bdul!");
    register_forward(FM_AddToFullPack, "fm_add_to_fullpack", 1)
}

public plugin_natives()
{
    // Lets register some natives
    register_native("display_hud_sprite", "native_display_hud_sprite", 1)
    register_native("remove_hud_sprite", "native_remove_hud_sprite", 1)
}

public fm_add_to_fullpack(es, e, ent, host, host_flags, player, p_set)
{
    // Valid player ?
    if (!is_player_connected(host))
        return FMRES_IGNORED;
    
    // Player haves a valid sprite entity
    if (ent == g_player_ent[host])
    {
        static Float:origin[3], Float:forvec[3], Float:voffsets[3]
        
        // Retrieve player's origin
        pev(host, pev_origin, origin)
        pev(host, pev_view_ofs, voffsets)
        xs_vec_add(origin, voffsets, origin)
        
        // Get a forward vector in the direction of player's aim
        velocity_by_aim(host, DISTANCE, forvec)
        
        // Set the sprite on the new origin
        xs_vec_add(origin, forvec, origin)
        engfunc(EngFunc_SetOrigin, ent, origin)
        set_es(es, ES_Origin, origin)
        
        // Make the sprite visible
        set_es(es, ES_RenderMode, kRenderNormal)
        set_es(es, ES_RenderAmt, 200)
        
        // Sprite animation already stopped ?
        if (!g_stop_frame[host])
            return FMRES_IGNORED
        
        // Stop the animation at the desired frame
        if (pev(ent, pev_frame) == g_stop_frame[host])
        {
            set_pev(ent, pev_framerate, 0.0)
            g_stop_frame[host] = 0
        }
    }
    
    // Stupid compiler !!
    return FMRES_IGNORED
}

public client_putinserver(id)
{
    // Player connected
    player_is_connected(id)
    
    // Marks bots as disconnected players (so sprites are'nt displayed to them)
    if (is_user_bot(id)) player_disconnected(id)
    
    // Remove sprite entity if present
    if (pev_valid(g_player_ent[id]))
        remove_sprite_entity(id)
}

public client_disconnect(id)
{
    // Player disconnected
    player_disconnected(id)
    
    // Remove sprite entity if present
    if (pev_valid(g_player_ent[id]))
        remove_sprite_entity(id)
}

public native_display_hud_sprite(id, const sprite_name[], Float:sprite_size, sprite_stopframe, Float:sprite_framerate)
{
    // Invalid player ?
    if (!is_player_connected(id))
        return -1;
    
    // Already haves a sprite on his hud
    if (g_player_ent[id])
        return -1;
    
    // Strings passed byref
    param_convert(2)
    
    // Invalid sprite ?
    if (!sprite_name[0])
        return -1;
    
    // Create an entity for the player
    g_player_ent[id] = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, "env_sprite"))
    
    // Invalid entity ?
    if (!pev_valid(g_player_ent[id]))
        return -1;
    
    // Set some basic properties
    set_pev(g_player_ent[id], pev_takedamage, 0.0)
    set_pev(g_player_ent[id], pev_solid, SOLID_NOT)
    set_pev(g_player_ent[id], pev_movetype, MOVETYPE_NONE)
    
    // Set the sprite model
    engfunc(EngFunc_SetModel, g_player_ent[id], sprite_name)
    
    // Set the rendering on the entity
    set_pev(g_player_ent[id], pev_rendermode, kRenderTransAlpha)
    set_pev(g_player_ent[id], pev_renderamt, 0.0)
    
    // Set the sprite size
    set_pev(g_player_ent[id], pev_scale, sprite_size)
    
    // Update sprite's stopping frame
    g_stop_frame[id] = sprite_stopframe
    
    // Allow animation of sprite ?
    if (g_stop_frame[id] && sprite_framerate > 0.0)
    {
        // Set the sprites animation time, framerate and stop frame
        set_pev(g_player_ent[id], pev_animtime, get_gametime())
        set_pev(g_player_ent[id], pev_framerate, sprite_framerate)
        
        // Spawn the sprite entity (necessary to play the sprite animations)
        set_pev(g_player_ent[id], pev_spawnflags, SF_SPRITE_STARTON)
        dllfunc(DLLFunc_Spawn, g_player_ent[id])
    }
    
    return g_player_ent[id];
}

public native_remove_hud_sprite(id)
{
    // Invalid player ?
    if (!is_player_connected(id))
        return -1;
    
    // Doesnt haves any sprite on his screen ?
    if (!pev_valid(g_player_ent[id]))
        return -1;
    
    // Remove sprite entity
    remove_sprite_entity(id)
    
    return 1;
}

// Removes a sprite entity from world
remove_sprite_entity(id)
{
    engfunc(EngFunc_RemoveEntity, g_player_ent[id])
    
    g_player_ent[id] = 0
    g_stop_frame[id] = 0
}

Ayudenme Pf


Archivos adjuntos
.rar   Win CT TT Sprites En HUD (CSO Normal) - Alexanderr-Tutorialess.rar (Tamaño: 49.76 KB / Descargas: 79)
.inc   dsohud.inc (Tamaño: 936 bytes / Descargas: 33)
SI NO VAS AYUDAR, POR FAVOR NO COMENTARLovepanda
Responder


Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)