Al cambiar el arma queda el icono puesto
#1
Buenas necesito ayuda goglie para saber poner icono a armas encontre uno pero creo que anda mal cuando escojo la arma en el menu me da el icono pero como secundaria escojo una usp que se supone que tendria que desaparecer el icono pero sigue estando con cualquier arma la verdad no se si es la manera mas buena para saber que arma tengo y asignarlo el icono si tienen una mejor dejarmela en los comentarios xd

Post que encontre :
https://forums.alliedmods.net/showpost.p...ostcount=8

Código PHP:
#include <amxmodx> 
#include <amxmisc> 

new iMsgIconStatus 

public plugin_init() 
{     
    
register_event("CurWeapon","event_cur_weapon","be","1=1"
    
iMsgIconStatus get_user_msgid("StatusIcon")   


public 
event_cur_weapon(id

    if(
read_data(2) == CSW_AK47
    { 
        
message_begin(MSG_ONE,iMsgIconStatus,{0,0,0},id)   
        
write_byte(1)   
        
write_string("dmg_heat")  
        
write_byte(0
        
write_byte(255
        
write_byte(0)  
        
message_end()   
    } 

(07/06/2018, 09:51 PM)Hypnotize escribió:
(07/06/2018, 06:55 PM)Nazy.- escribió: este sitio apesta pacman

lo único que apesta es tu ano, deja de robar autor rata

Responder
#2
Ese código esta horrible... la única vez que use el StatusIcon fue para mostrarlo permanentemente de esta forma, podrías guiarte por una parte de codigo que hice y colocarle la condicion de que si no es CSW_AK47, no lo muestre.

PD: Use ReAPI, por lo que si no usas ReAPI, deberás cambiarlo a la forma tradicional.

Código PHP:
#include <amxmodx>
#include <reapi>

#define PLUGIN  "New Plug-In"
#define VERSION "1.0"
#define AUTHOR  "Author"

new g_iIconoSpriteHS

const MOSTRAR_SPRITE 1

enum 
{
    
iColor_R 255,
    
iColor_G 128,
    
iColor_B 0
}

public 
plugin_init()
{
    
register_plugin(PLUGINVERSIONAUTHOR)
    
    
RegisterHookChain(RG_CBasePlayer_Spawn"CBasePlayer_Spawn", .post true);
}

public 
CBasePlayer_Spawn(id
{
    if(!
is_user_alive(id))
        return

    
IconoHeadshot(id)
}

stock IconoHeadshot(id)
{
    
message_begin(MSG_ONE_UNRELIABLEg_iIconoSpriteHS, .player id)
    
write_byte(MOSTRAR_SPRITE)
    
write_string("d_headshot")
    
write_byte(iColor_R)
    
write_byte(iColor_G)
    
write_byte(iColor_B)
    
message_end()

Responder
#3
(10/07/2018, 12:06 AM)metita escribió: Ese código esta horrible... la única vez que use el StatusIcon fue para mostrarlo permanentemente de esta forma, podrías guiarte por una parte de codigo que hice y colocarle la condicion de que si no es CSW_AK47, no lo muestre.

PD: Use ReAPI, por lo que si no usas ReAPI, deberás cambiarlo a la forma tradicional.

Código PHP:
#include <amxmodx>
#include <reapi>

#define PLUGIN  "New Plug-In"
#define VERSION "1.0"
#define AUTHOR  "Author"

new g_iIconoSpriteHS

const MOSTRAR_SPRITE 1

enum 
{
    
iColor_R 255,
    
iColor_G 128,
    
iColor_B 0
}

public 
plugin_init()
{
    
register_plugin(PLUGINVERSIONAUTHOR)
    
    
RegisterHookChain(RG_CBasePlayer_Spawn"CBasePlayer_Spawn", .post true);
}

public 
CBasePlayer_Spawn(id
{
    if(!
is_user_alive(id))
        return

    
IconoHeadshot(id)
}

stock IconoHeadshot(id)
{
    
message_begin(MSG_ONE_UNRELIABLEg_iIconoSpriteHS, .player id)
    
write_byte(MOSTRAR_SPRITE)
    
write_string("d_headshot")
    
write_byte(iColor_R)
    
write_byte(iColor_G)
    
write_byte(iColor_B)
    
message_end()


No entiendo como hacerlo no ocupo reapiTriste alguna otra ayuda Triste y gracias de todos modos
(07/06/2018, 09:51 PM)Hypnotize escribió:
(07/06/2018, 06:55 PM)Nazy.- escribió: este sitio apesta pacman

lo único que apesta es tu ano, deja de robar autor rata

Responder
#4
(10/07/2018, 12:12 AM)BlasKer escribió:
(10/07/2018, 12:06 AM)metita escribió: Ese código esta horrible... la única vez que use el StatusIcon fue para mostrarlo permanentemente de esta forma, podrías guiarte por una parte de codigo que hice y colocarle la condicion de que si no es CSW_AK47, no lo muestre.

PD: Use ReAPI, por lo que si no usas ReAPI, deberás cambiarlo a la forma tradicional.

Código PHP:
#include <amxmodx>
#include <reapi>

#define PLUGIN  "New Plug-In"
#define VERSION "1.0"
#define AUTHOR  "Author"

new g_iIconoSpriteHS

const MOSTRAR_SPRITE 1

enum 
{
    
iColor_R 255,
    
iColor_G 128,
    
iColor_B 0
}

public 
plugin_init()
{
    
register_plugin(PLUGINVERSIONAUTHOR)
    
    
RegisterHookChain(RG_CBasePlayer_Spawn"CBasePlayer_Spawn", .post true);
}

public 
CBasePlayer_Spawn(id
{
    if(!
is_user_alive(id))
        return

    
IconoHeadshot(id)
}

stock IconoHeadshot(id)
{
    
message_begin(MSG_ONE_UNRELIABLEg_iIconoSpriteHS, .player id)
    
write_byte(MOSTRAR_SPRITE)
    
write_string("d_headshot")
    
write_byte(iColor_R)
    
write_byte(iColor_G)
    
write_byte(iColor_B)
    
message_end()


No entiendo como hacerlo no ocupo reapiTriste alguna otra ayuda Triste y gracias de todos modos

#include <reapi> el reapi se descarga capo, buscalo en la pagina ultra-mega magica donde todos buscamos para ayudarnos
Responder
#5
Que parte de que no sabe usar reapi no entiendes Whatever

Tu crees que con tan solo colocar

Código PHP:
#include <reapi> 

Se le acomodara el codigo solo? Dafuq
Si no te gusta algo, cámbialo. Si no lo puedes cambiar, cambia la forma en que piensas sobre ello <3
Responder
#6
BlasKer, lo que puedes hacer, es llevarte de este código para lograr remover el icono cada vez que cambias/dropeas las armas. Ojalá te sirva.

Código PHP:
/**
* Changelog
*
* version 0.1
*    - Intial Release
*
* version 0.2
*     - Fixed intial blank display of status
*    - Fixed on/off bug
* version 0.3
*    - Added suggestion: Use else/if
*    - Added suggestion: use get_players() instead of hardcoded 32
*    - Added suggestion: Changed register_forward() to register_event("CurWeapon"...)
*    - Added attempt to remove icon on death (remove_weapon_icon)
* version 0.4
*    - Completley added get_players() (whoops :| )
*    - Fixed crashing bug
*    - 2nd related bug - crashed CS upon death FIXED
*    - Finally posted some screenys :)
*    - Reverted icon_origin to a normal variable and set it to {0,0,0}
* version 0.5 (now == 5.0 KB! ha ha ha ha)
*    - Added "is_user_ok()" function
*    - Added "add_weapon_icon()" function
*    - Added "remove_weapon_icon()" function
*    - Changed use of direct manipulation of cvar "amx_show_weapon_icon" to use of a pcvar instead
*    - Attempt at removal of icon upon player's death #2 (with combo of attempt 1)
*    - No more fakemeta depedency! (for sure)
* version 0.5c
*    - Removed add_weapon_icon() function, caused the icon to continue the stay after gun change and simply add the icon to the display
*    - Modified color to a lighter green, request for a different color started
* version 0.6
*    - Added color changing icon to represent how much ammo is left
*    - Weapon icon now is removed upon death & replaced when user spawns (for sure)
* version 1.0 (Finally! w00t)
*    - Approved it! AWESOME! Thanks Hawk552!
*    - Change color back to green (sorry about the purple)
*    - Added notes to file with possible ideas
*
*/

#include <amxmodx>

#define PLUGIN "Weapon Icon"
#define VERSION "1.0"
#define AUTHOR "Zenix (m$ubn)"

new iconstatus;
new 
user_icons[32][192];
new 
icon_origin[3] = {0,0,0}
new 
pcv_show;
new 
pcv_iloc;

public 
plugin_init() {
    
register_plugin(PLUGINVERSIONAUTHOR)
    
    
register_event ("CurWeapon""update_icon""ab")
    
register_event("DeathMsg""event_death""a")
    
pcv_show register_cvar("amx_show_weapon_icon""1");
    
pcv_iloc register_cvar("amx_show_weapon_icon_location""1");
    
register_concmd("amx_weapon_icon""weapon_icon_toggle"ADMIN_CVAR"Toggle display of the weapon icon on/off (default on)")
    
    
check_icon_loc();
}

public 
update_icon(id) {
    
check_icon_loc();
    if(!
get_pcvar_num(pcv_show) || get_pcvar_num(pcv_iloc) == 0)
        return 
PLUGIN_CONTINUE;
    
    if(
is_user_alive(id))
    {
        new 
iwpnwclipwammosprite[192], icon_color[3] = {01600}
        
        
remove_weapon_icon(id)
        
        
iwpn get_user_weapon(idwclipwammo)
        switch(
iwpn) {
            case 
CSW_P228sprite "d_p228"
                
case CSW_SCOUTsprite "d_scout"
                
case CSW_HEGRENADEsprite "d_grenade"
                
case CSW_XM1014sprite "d_xm1014"
                
case CSW_C4sprite "d_c4"
                
case CSW_MAC10sprite "d_mac10"
                
case CSW_AUGsprite "d_aug"
                
case CSW_SMOKEGRENADEsprite "d_grenade"
                
case CSW_ELITEsprite "d_elite"
                
case CSW_FIVESEVENsprite "d_fiveseven"
                
case CSW_UMP45sprite "d_ump45"
                
case CSW_SG550sprite "d_sg550"
                
case CSW_GALILsprite "d_galil"
                
case CSW_FAMASsprite "d_famas"
                
case CSW_USPsprite "d_usp"
                
case CSW_MP5NAVYsprite "d_mp5navy"
                
case CSW_M249sprite "d_m249"
                
case CSW_M3sprite "d_m3"
                
case CSW_M4A1sprite "d_m4a1"
                
case CSW_TMPsprite "d_tmp"
                
case CSW_G3SG1sprite "d_g3sg1"
                
case CSW_FLASHBANGsprite "d_flashbang"
                
case CSW_DEAGLEsprite "d_deagle"
                
case CSW_SG552sprite "d_sg552"
                
case CSW_AK47sprite "d_ak47"
                
case CSW_KNIFEsprite "d_knife"
                
case CSW_P90sprite "d_p90"
                
case CSW_VESTsprite "suit_full"
                
case CSW_VESTHELMsprite "suithelmet_full"
                
case CSW_GLOCK18sprite "d_glock18"
                
case CSW_AWPsprite "d_awp"
                
case 0sprite ""
                
default: sprite ""
        
}
        if (
is_user_ok(id)) {
            if (
equali(sprite"") || !is_user_ok(id)) {
                
remove_weapon_icon(id)
                } else {
                
// draw the sprite itself (only on a human user's screen)
                // marker ////////////////////////////////////////////////////////////////////////////////
                
message_begin(MSG_ONE,iconstatus,icon_origin,id);
                
write_byte(1); // status (0=hide, 1=show, 2=flash)
                
write_string(sprite); // sprite name
                
                /*
                4 stages - Normal, 1 Clip, No Clip + Some ammo, Completely Out
                
                */
                
                // ammo check, this is for the color of the icon
                
get_user_ammo(idiwpnwammowclip// update vars correctly
                
if (wclip == && wammo == 0icon_color = {00255// outta ammo!
                
if (wclip == wammo || wclip wammoicon_color = {255150150// last clip!
                
if (wammo && wclip == 0icon_color = {255100100// almost out!
                // attempt at percentage max clip & % red/green color
                // 1: Get max ammo for weapon
                //maxammo = maxclip(iwpn);
                
                
                
write_byte(icon_color[0]); // red
                
write_byte(icon_color[1]); // green
                
write_byte(icon_color[2]); // blue
                
message_end();
            }
            
user_icons[id] = sprite;
        }
    }
    return 
PLUGIN_CONTINUE


public 
weapon_icon_toggle(id) {
    new 
toggle[32], players[32], numplayerstatus[32] = "enabled"
    
read_argv(1toggle1)
    
    if (
equali(toggle"1")) {
        
status "enabled"
        
} else if (equali(toggle"0")) {
        
status "disabled"
        
} else if (equali(toggle"")) {
        
console_print(id"Usage: amx_weapon_icon <1/0> - Toggles wether or not showing the user's current weapon as an icon")
        
console_print(id"Weapon Icon is currently %s"status)
        return 
PLUGIN_HANDLED
    
}
    
    
set_cvar_string("amx_show_weapon_icon"toggle)
    
client_print(0print_chat"Weapon Icon is now %s"status)
    
get_players(playersnum)
    for (new 
i=0i<numi++) {
        
player players[i]
        if (!
equali(user_icons[player], "") && !equali(players[i], "") && is_user_ok(id)) {
            
remove_weapon_icon(i)
        }
    }
    return 
PLUGIN_CONTINUE
}

public 
remove_weapon_icon(id) {
    if (
is_user_ok(id)) {
        
message_begin(MSG_ONE,iconstatus,icon_origin,id);
        
write_byte(0);
        
write_string(user_icons[id]);
        
message_end();
    }
}

public 
is_user_ok(id) {
    
// check if the user is "ok": they are connected, not a bot, and alive
    
if (is_user_connected(id) && !is_user_bot(id) && is_user_alive(id))
        return 
true
    
return false
}

public 
event_death() {
    new 
player read_data(2// the dead player's ID (1-32)
    
if (is_user_connected(player) && !is_user_bot(player)) { // remove icon
        
message_begin(MSG_ONE,iconstatus,icon_origin,player);
        
write_byte(0);
        
write_string(user_icons[player]);
        
message_end();
    }
}

public 
check_icon_loc() {
    if(!
get_pcvar_num(pcv_iloc))
        return 
PLUGIN_CONTINUE;
    new 
value get_pcvar_num(pcv_iloc);
    if (
value == 0)
        
iconstatus 0;
    if (
value == 1)
        
iconstatus get_user_msgid("StatusIcon");
    if (
value == 2)
        
iconstatus get_user_msgid("Scenario");
    return 
PLUGIN_CONTINUE;

Steam
Responder


Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)