Veteran Member
|
07-08-2012
, 07:53
Re: Image in hud
|
#3
|
Advanced_win_msgs.sma:
PHP Code:
#include <amxmodx> #include <fakemeta> #include <fakemeta_util> #include <dsohud>
new const g_zombie_win[] = "sprites/zombie_win.spr" new const g_human_win[] = "sprites/human_win.spr"
new g_maxplayers
public plugin_init() { register_plugin("[ZP] Advanced Win Msgs.", "1.0", "@bdul!"); register_message( get_user_msgid( "TextMsg" ), "message_textmsg" ); register_event("HLTV", "event_round_start", "a", "1=0", "2=0") g_maxplayers = get_maxplayers() }
public plugin_precache() { precache_model(g_zombie_win) precache_model(g_human_win) }
public event_round_start() { static id for (id = 1; id <= g_maxplayers; id++) remove_hud_sprite(id) } /* public zp_round_ended(win_team) { if (win_team == WIN_NO_ONE) return static id for (id = 1; id <= g_maxplayers; id++) { if (win_team == WIN_HUMANS) display_hud_sprite(id, g_human_win, 0.04) else display_hud_sprite(id, g_zombie_win, 0.05) } } */ public message_textmsg( msg_id, msg_dest, msg_entity ) { static sMessage[16]; get_msg_arg_string( 2, sMessage, sizeof sMessage - 1 ); new iLen = strlen( sMessage ); if( sMessage[1] == 'C' && iLen == 8 ) // set_msg_arg_string( 2, "Counter-Terrorists Won!" ); display_hud_sprite(2, g_zombie_win, 0.05) else if( sMessage[1] == 'T' && iLen == 15 ) // set_msg_arg_string( 2, "Terrorists Won!" ); display_hud_sprite(2, g_human_win, 0.04) return PLUGIN_CONTINUE; }
spr_on_hud.sma:
PHP Code:
#include <amxmodx> #include <fakemeta> #include <xs>
#define DISTANCE 12
new g_player_ent[33], g_bit_connected_user, g_stop_frame[33]
#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_plugin("Sprites On HUD", "1.0", "@bdul!"); register_forward(FM_AddToFullPack, "fm_add_to_fullpack", 1) }
public plugin_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) { if (!is_player_connected(host)) return FMRES_IGNORED; if (ent == g_player_ent[host]) { static Float:origin[3], Float:forvec[3], Float:voffsets[3]
pev(host, pev_origin, origin) pev(host, pev_view_ofs, voffsets) xs_vec_add(origin, voffsets, origin) velocity_by_aim(host, DISTANCE, forvec) xs_vec_add(origin, forvec, origin) engfunc(EngFunc_SetOrigin, ent, origin) set_es(es, ES_Origin, origin)
set_es(es, ES_RenderMode, kRenderNormal) set_es(es, ES_RenderAmt, 200) if (!g_stop_frame[host]) return FMRES_IGNORED if (pev(ent, pev_frame) == g_stop_frame[host]) { set_pev(ent, pev_framerate, 0.0) g_stop_frame[host] = 0 } }
return FMRES_IGNORED }
public client_putinserver(id) { player_is_connected(id) if (is_user_bot(id)) player_disconnected(id) if (pev_valid(g_player_ent[id])) remove_sprite_entity(id) }
public client_disconnect(id) { player_disconnected(id) 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) { if (!is_player_connected(id)) return -1; if (g_player_ent[id]) return -1; param_convert(2) if (!sprite_name[0]) return -1; g_player_ent[id] = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, "env_sprite"))
if (!pev_valid(g_player_ent[id])) return -1; 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) engfunc(EngFunc_SetModel, g_player_ent[id], sprite_name) set_pev(g_player_ent[id], pev_rendermode, kRenderTransAlpha) set_pev(g_player_ent[id], pev_renderamt, 0.0) set_pev(g_player_ent[id], pev_scale, sprite_size) g_stop_frame[id] = sprite_stopframe if (g_stop_frame[id] && sprite_framerate > 0.0) { set_pev(g_player_ent[id], pev_animtime, get_gametime()) set_pev(g_player_ent[id], pev_framerate, sprite_framerate) 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) { if (!is_player_connected(id)) return -1; if (!pev_valid(g_player_ent[id])) return -1; remove_sprite_entity(id) return 1; }
remove_sprite_entity(id) { engfunc(EngFunc_RemoveEntity, g_player_ent[id]) g_player_ent[id] = 0 g_stop_frame[id] = 0 }
dsohud.inc:
PHP Code:
#if defined zp_dsohud_included #endinput #endif #define _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.03, sprite_stopframe = 0, Float: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)
Why dont work?
__________________
|
|