AlliedModders

AlliedModders (https://forums.alliedmods.net/index.php)
-   Scripting Help (https://forums.alliedmods.net/forumdisplay.php?f=11)
-   -   Hud Sprite (https://forums.alliedmods.net/showthread.php?t=216027)

Jhob94 05-15-2013 13:32

Hud Sprite
 
Hi. I did edited the plugins of ZP hud Sprites for my furien server.
I dont know why, but is not working :3
Here you go:
Sprites On Hud Sma
PHP Code:

#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_userg_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("[ZP] 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(eseenthosthost_flagsplayerp_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(hostpev_originorigin)
        
pev(hostpev_view_ofsvoffsets)
        
xs_vec_add(originvoffsetsorigin)
        
        
// Get a forward vector in the direction of player's aim
        
velocity_by_aim(hostDISTANCEforvec)
        
        
// Set the sprite on the new origin
        
xs_vec_add(originforvecorigin)
        
engfunc(EngFunc_SetOriginentorigin)
        
set_es(esES_Originorigin)
        
        
// Make the sprite visible
        
set_es(esES_RenderModekRenderNormal)
        
set_es(esES_RenderAmt200)
        
        
// Sprite animation already stopped ?
        
if (!g_stop_frame[host])
            return 
FMRES_IGNORED
        
        
// Stop the animation at the desired frame
        
if (pev(entpev_frame) == g_stop_frame[host])
        {
            
set_pev(entpev_framerate0.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_sizesprite_stopframeFloat: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_CreateNamedEntityengfunc(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_takedamage0.0)
    
set_pev(g_player_ent[id], pev_solidSOLID_NOT)
    
set_pev(g_player_ent[id], pev_movetypeMOVETYPE_NONE)
    
    
// Set the sprite model
    
engfunc(EngFunc_SetModelg_player_ent[id], sprite_name)
    
    
// Set the rendering on the entity
    
set_pev(g_player_ent[id], pev_rendermodekRenderTransAlpha)
    
set_pev(g_player_ent[id], pev_renderamt0.0)
    
    
// Set the sprite size
    
set_pev(g_player_ent[id], pev_scalesprite_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_animtimeget_gametime())
        
set_pev(g_player_ent[id], pev_frameratesprite_framerate)
        
        
// Spawn the sprite entity (necessary to play the sprite animations)
        
set_pev(g_player_ent[id], pev_spawnflagsSF_SPRITE_STARTON)
        
dllfunc(DLLFunc_Spawng_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_RemoveEntityg_player_ent[id])
    
    
g_player_ent[id] = 0
    g_stop_frame
[id] = 0


End Round Huds
PHP Code:

#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <fakemeta>
#include <fakemeta_util>
#include <furien_dsohud>

new const g_furien_win[] = "sprites/dark_gamerz/zm.spr"
new const g_human_win[] = "sprites/dark_gamerz/humanzm.spr"

new g_maxplayers

public plugin_init()
{
    
register_plugin("Advanced Win HUDs""1.0""@bdul!");
    
    
register_event("HLTV""furien_round_start""a""1=0""2=0")
    
    
register_event("SendAudio""Furien_Win" "a""2&%!MRAD_terwin")
    
register_event("SendAudio""Human_Win""a""2&%!MRAD_ctwin")
    
    
g_maxplayers get_maxplayers()
}

public 
plugin_precache()
{
    
precache_model(g_furien_win)
    
precache_model(g_human_win)
}

public 
furien_round_start()
{
    static 
id
    
for (id 1id <= g_maxplayersid++)
        
remove_hud_sprite(id)
}

public 
Furien_Win()
{
    new 
iPlayers[32], iNumiPlayer
    get_players
(iPlayersiNum)
    
    for(new 
ii<iNumi++)
    {
        
iPlayer iPlayers[i]
        
display_hud_sprite(iPlayerg_furien_win0.05)
    }
}

public 
Human_Win()
{
    new 
iPlayers[32], iNumiPlayer
    get_players
(iPlayersiNum)
    
    for(new 
ii<iNumi++)
    {
        
iPlayer iPlayers[i]
        
display_hud_sprite(iPlayerg_human_win0.04)
    }


furien_dsohud.inc
PHP Code:

#if defined _furien_dsohud_included
  #endinput
#endif
#define _furien_dsohud_included

/**
 * Allows you to display a sprite on a user's HUD display
 *
 * Note: The sprite which is to be displayed must be precached
 * in your sub-plugin
 * 
 * @param id            Player index.
 * @param sprite_name        The sprite's name which is to be displayed
 * @param sprite_scale        The sprite's scale/size, must be a float
 * @param sprite_stopframe    The frame at which to halt the sprite's animation
 * @param sprite_framerate    The framerate of the sprite's animation
 * @return            Index of the sprite's entity or -1 on failure
 * 
**/
native display_hud_sprite(id, const sprite_name[], Float:sprite_scale 0.03sprite_stopframe 0Float:sprite_framerate 0.0)

/**
 * Allows you to remove the sprite from a player's screen
 *
 * @param id        Player index.
 * @return        1 on success otherwise -1 on failure
 * 
**/
native remove_hud_sprite(id


oxygen935 05-15-2013 15:13

Re: Hud Sprite
 
Man the only thing you just do is to read the last pages of [ZP] hud sprites. There is a guy with a photo which has a guy with a gun(i don't renember his name) who made a version of this plugin for non-zp servers

Jhob94 05-15-2013 15:24

Re: Hud Sprite
 
ok thanks i go look at it, didnt knew someone made it :3


All times are GMT -4. The time now is 16:14.

Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.