problemas con los clips
#1
hola buenas tardes....
tengo un problema con los clip que estoy cambiando a un menu de armas modificado....
Código PHP:
enum _:DATOS

PNAME[32],
PITEMS[32],
PMODEL[32],
PLEVEL[32],
PRESET[32],
Float:PDAMAGE[32],
PMR[32],
PCSW[32],
PCLIPS[32],
PAMMO[32]


Código PHP:
new Armass[MAX_SECUNDARIAS][DATOS] = 
{
{
"Glock 18C""weapon_glock18""models/v_glock18.mdl"001.00CSW_GLOCK1820 90}, 
{
"USP .45""weapon_usp""models/v_usp.mdl"1001.00CSW_USP2090},
{
"P228 Compact""weapon_p228""models/v_p228.mdl"3001.00CSW_P2282090},
{
"FiveseveN""weapon_fiveseven""models/v_fiveseven.mdl"6001.00CSW_FIVESEVEN2090},
{
"Dual Elite""weapon_elite""models/v_elite.mdl"8001.00CSW_ELITE2090}

en el codigo donde pongo los clip en 20 me salen las armas asi.... pero cuando quiero modificar una cambiandole el clip no me lo permite dejando a todas las armas con 12 balas, osea no toma por separado los clips...

lo probe y testie creando nuevas variables y anda perfecto pero me gustaria que ande desde "Armass[id][PCLIPS]"

Código PHP:
public fw_AttachToPlayerDEAGLE(entid)
{    
    
cs_set_weapon_ammo(entArmass[id][PCLIPS]) 
    
cs_set_user_bpammo(idArmass[id][PCSW], Armass[id][PAMMO]) 


alguna idea asi pruebo.. saludos
Responder
#2
No te entendí

pero esto
Código PHP:
cs_set_weapon_ammo(entArmass[id][PCLIPS]) 
    
cs_set_user_bpammo(idArmass[id][PCSW], Armass[id][PAMMO]) 

sin saber todo to code, CREO que esta mal

en tu menu debes cachear el arma que elegiste en una variable

ej;

variable[ id ] = item;


y luego debe quedarte así

Código PHP:
cs_set_weapon_ammo(entArmass[variableid ]][PCLIPS]) 
    
cs_set_user_bpammo(idArmass[variableid ]][PCSW], Armass[id][PAMMO]) 

pd;
https://forums.alliedmods.net/showthread.php?t=103939
[Imagen: zcsztw-4.png] [Imagen: 6u5fj2-4.png]
[Imagen: linkedin_thumb_image.png][Imagen: 76561198283253977.png][Imagen: linkedin_thumb_image.png]
Responder
#3
(27/11/2018, 12:06 PM)Hypnotize escribió: No te entendí

pero esto
Código PHP:
cs_set_weapon_ammo(entArmass[id][PCLIPS]) 
    
cs_set_user_bpammo(idArmass[id][PCSW], Armass[id][PAMMO]) 

sin saber todo to code, CREO que esta mal

en tu menu debes cachear el arma que elegiste en una variable

ej;

variable[ id ] = item;


y luego debe quedarte así

Código PHP:
cs_set_weapon_ammo(entArmass[variableid ]][PCLIPS]) 
    
cs_set_user_bpammo(idArmass[variableid ]][PCSW], Armass[id][PAMMO]) 


asi dices que lo haga... de esa manera si funciona...
Código PHP:
new armita[33] = 12 // balitas

cs_set_weapon_ammo(entarmita[id]) 

    
cs_set_user_bpammo(idArmass[variableid ]][PCSW], Armass[id][PAMMO]) 

Armass[variable[ id ]][PCLIPS] = ser refiere que estoy seleccionando el del enum DATOS la variable PCLIPS del new Armass[MAX_SECUNDARIAS]

lo cual cuando la modifico no me entrega las balas que quiero poner
Responder
#4
Código PHP:
fw_AttachToPlayerDEAGLE 
lo registraste solo con el weapon_deagle o para todas las armas?
Responder
#5
(27/11/2018, 12:19 PM)warrior escribió:
Código PHP:
fw_AttachToPlayerDEAGLE 
lo registraste solo con el weapon_deagle o para todas las armas?

si... todas las armas por separadas registradas
Código PHP:
RegisterHam(Ham_Item_AttachToPlayer"weapon_deagle""fw_AttachToPlayerDEAGLE")
RegisterHam(Ham_Item_PostFrame"weapon_deagle","fw_PostFrameDEAGLE"
Responder
#6
Código PHP:
const SECONDARY_WEAPONS_BIT_SUM = (1<<CSW_P228)|(1<<CSW_ELITE)|(1<<CSW_FIVESEVEN)|(1<<CSW_USP)|(1<<CSW_GLOCK18)|(1<<CSW_DEAGLE

Código PHP:
new weapon_name[24]
    for (new 
1<= 30i++)
    {    
        if ((
SECONDARY_WEAPONS_BIT_SUM << i) && get_weaponname(iweapon_name23))
        {
            
RegisterHam(Ham_Item_AttachToPlayer,     weapon_name"fw_AttachToPlayer")    
            
RegisterHam(Ham_Item_PostFrame,            weapon_name"fw_PostFrame")
        }
    } 
Código PHP:
public fw_AttachToPlayer(entid){
    if(
g_isalive[id]){
        
cs_set_weapon_ammo(ent,  menu_death_2[g_arma_secundaria[id]][item_balas_2])
        
cs_set_user_bpammo(idmenu_death_2[g_arma_secundaria[id]][item_id_2], menu_death_2[g_arma_secundaria[id]][item_balas_2])    
    }
}

public 
fw_PostFrame(ent) {
    static 
id id pev(entpev_owner)
    
    if(
menu_death_2[g_arma_secundaria[id]][item_balas_2] == -1)
        return
    
    if(
g_isalive[id]){
        static 
iMaxClip iBpAmmo iClip fInReloadFloat:flNextAttack ;
            
        
iMaxClip menu_death_2[g_arma_secundaria[id]][item_balas_2]
            
        
iBpAmmo cs_get_user_bpammo(idmenu_death_2[g_arma_secundaria[id]][item_id_2])
                
        
fInReload get_pdata_int(ent544)
        
flNextAttack get_pdata_float(id835)
            
        
iClip cs_get_weapon_ammo(ent)
        
        if( 
fInReload && flNextAttack <= 0.0 )
        {
            new 
min(iMaxClip iClipiBpAmmo)
            
cs_set_weapon_ammo(entiClip j)
            
cs_set_user_bpammo(idmenu_death_2[g_arma_secundaria[id]][item_id_2], iBpAmmo j)
            
            
set_pdata_int(ent5404)
            
fInReload 0
        
}

        static 
iButton iButton pev(idpev_button)
        if( 
iButton IN_RELOAD && !fInReload )
        {
            if( 
iClip >= iMaxClip )
            {
                
set_pev(idpev_buttoniButton & ~IN_RELOAD)
                
SendWeaponAnim(id0)
            }
        }
    }    
}

fn_set_animation(idanimation)
{
    
entity_set_int(idEV_INT_weaponanimanimation)
    
message_begin(MSG_ONESVC_WEAPONANIM_id)
    
write_byte(animation)
    
write_byte(entity_get_int(idEV_INT_body))
    
message_end()



Tratá de adapartarlo...
Responder
#7
dale gracias.... cualquier cosa consulto...
Responder
#8
(27/11/2018, 12:12 PM)GoldenCosta escribió:
(27/11/2018, 12:06 PM)Hypnotize escribió: No te entendí

pero esto
Código PHP:
cs_set_weapon_ammo(entArmass[id][PCLIPS]) 
    
cs_set_user_bpammo(idArmass[id][PCSW], Armass[id][PAMMO]) 

sin saber todo to code, CREO que esta mal

en tu menu debes cachear el arma que elegiste en una variable

ej;

variable[ id ] = item;


y luego debe quedarte así

Código PHP:
cs_set_weapon_ammo(entArmass[variableid ]][PCLIPS]) 
    
cs_set_user_bpammo(idArmass[variableid ]][PCSW], Armass[id][PAMMO]) 


asi dices que lo haga... de esa manera si funciona...
Código PHP:
new armita[33] = 12 // balitas

cs_set_weapon_ammo(entarmita[id]) 

    
cs_set_user_bpammo(idArmass[variableid ]][PCSW], Armass[id][PAMMO]) 

Armass[variable[ id ]][PCLIPS] = ser refiere que estoy seleccionando el del enum DATOS la variable PCLIPS del new Armass[MAX_SECUNDARIAS]

lo cual cuando la modifico no me entrega las balas que quiero poner

Está mal, no es "new armita[33] = 12", debes poner:
Código PHP:
new arma[33]
// funcion donde das el arma
arma[id] = item
// luego
cs_set_user_bpammo(idArmass[arma[id]][PCSW], Armass[arma[id]][PAMMO]) 

Debes almacenar el item elegido en la variable

Responder
#9
Ademas que los niveles y reset de cada arma arma no son strings, son numeros enteros, lo mismo para las balas del clip como del cargador y el daño un float, dudo que eso te compile sin tirarte ningún error.
Responder
#10
(27/11/2018, 08:31 PM)HyperstacK escribió: Ademas que los niveles y reset de cada arma arma no son strings, son numeros enteros, lo mismo para las balas del clip como del cargador y el daño un float, dudo que eso te compile sin tirarte ningún error.

Armass[id][PCLIPS] lo estoy llamando como numero entero a la funcion.... no como un float y si compila solo que no lo estoy haciendo la manera adecuada, es por eso mismo se mezclan todas las demas opciones o solo toma uno de clips al ser tantos en un string, lo que si es mas problabe como dijo skylar tengo que almacenar el item elegido en una sola variable, ya teniendo eso cambiaria
Responder
#11
Entonces tu enumerador debería ser asi ya que el weapon ent es un string, lo mismo con el nombre, y el model del arma.

Código PHP:
enum _:DATOS

    
PNAME[32][64],
    
PITEMS[32][64],
    
PMODEL[32][64],
    
PLEVEL[32],
    
PRESET[32],
    
Float:PDAMAGE[32],
    
PMR[32],
    
PCSW[32],
    
PCLIPS[32],
    
PAMMO[32]

Responder
#12
(28/11/2018, 01:33 PM)HyperstacK escribió: Entonces tu enumerador debería ser asi ya que el weapon ent es un string, lo mismo con el nombre, y el model del arma.

Código PHP:
enum _:DATOS

    
PNAME[32][64],
    
PITEMS[32][64],
    
PMODEL[32][64],
    
PLEVEL[32],
    
PRESET[32],
    
Float:PDAMAGE[32],
    
PMR[32],
    
PCSW[32],
    
PCLIPS[32],
    
PAMMO[32]


No.



Como dijo hypno, debes guardar el id del item que elegiste en una variable para usarlo.

Código PHP:
new g_iSecondary[33]

// En el handler del menu 
g_iSecondary[index] = item;

// Usando la constante:
Armasg_iSecondary[index] ][ PNAME ];

// Si lo usas asi:
Armasid ] [ PNAME ]
//El valor siempre sera lo que vale tu id de usuario (si testeas solo sera 1) 
[Imagen: bvpq9q-6.png]

NO DOY AYUDA VIA MENSAJE PRIVADO

* Si requieres algún servicio de pago puedes contactarme vía MP o en mi facebook
Responder
#13
(28/11/2018, 02:26 PM)kikizon2 escribió:
(28/11/2018, 01:33 PM)HyperstacK escribió: Entonces tu enumerador debería ser asi ya que el weapon ent es un string, lo mismo con el nombre, y el model del arma.

Código PHP:
enum _:DATOS

    
PNAME[32][64],
    
PITEMS[32][64],
    
PMODEL[32][64],
    
PLEVEL[32],
    
PRESET[32],
    
Float:PDAMAGE[32],
    
PMR[32],
    
PCSW[32],
    
PCLIPS[32],
    
PAMMO[32]


No.



Como dijo hypno, debes guardar el id del item que elegiste en una variable para usarlo.

Código PHP:
new g_iSecondary[33]

// En el handler del menu 
g_iSecondary[index] = item;

// Usando la constante:
Armasg_iSecondary[index] ][ PNAME ];

// Si lo usas asi:
Armasid ] [ PNAME ]
//El valor siempre sera lo que vale tu id de usuario (si testeas solo sera 1) 

Tiene mal armada la enumeración ni el nivel, reset, damage, csw, clip, ammo son strings, por eso le estoy diciendo que tiene mal armada la enumeración. Yo le di la enumeración acorde a como el lo estaba haciendo que está mal hecho.
Responder
#14
(28/11/2018, 02:58 PM)HyperstacK escribió:
(28/11/2018, 02:26 PM)kikizon2 escribió:
(28/11/2018, 01:33 PM)HyperstacK escribió: Entonces tu enumerador debería ser asi ya que el weapon ent es un string, lo mismo con el nombre, y el model del arma.

Código PHP:
enum _:DATOS

    
PNAME[32][64],
    
PITEMS[32][64],
    
PMODEL[32][64],
    
PLEVEL[32],
    
PRESET[32],
    
Float:PDAMAGE[32],
    
PMR[32],
    
PCSW[32],
    
PCLIPS[32],
    
PAMMO[32]


No.



Como dijo hypno, debes guardar el id del item que elegiste en una variable para usarlo.

Código PHP:
new g_iSecondary[33]

// En el handler del menu 
g_iSecondary[index] = item;

// Usando la constante:
Armasg_iSecondary[index] ][ PNAME ];

// Si lo usas asi:
Armasid ] [ PNAME ]
//El valor siempre sera lo que vale tu id de usuario (si testeas solo sera 1) 

Tiene mal armada la enumeración ni el nivel, reset, damage, csw, clip, ammo son strings, por eso le estoy diciendo que tiene mal armada la enumeración. Yo le di la enumeración acorde a como el lo estaba haciendo que está mal hecho.

Lo tiene mal armado, si, pero la respuesta no es lo que tu dices, seria asi:

Código PHP:
enum _:DATOS

    
PNAME[64],
    
PITEMS[64],
    
PMODEL[64],
    
PLEVEL,
    
PRESET,
    
Float:PDAMAGE,
    
PMR,
    
PCSW,
    
PCLIPS,
    
PAMMO

[Imagen: bvpq9q-6.png]

NO DOY AYUDA VIA MENSAJE PRIVADO

* Si requieres algún servicio de pago puedes contactarme vía MP o en mi facebook
Responder
#15
Código PHP:
enum _:DATOS

PNAME[32],
PITEMS[32],
PMODEL[32],
PLEVEL,
PRESET,
Float:PDAMAGE,
PMR,
PCSW,
PCLIPS,
PAMMO


Genius

https://amxmodx-es.com/Thread-TUT-Armas-por-niveles

EDIT: Me ganó kiki du yu lo me xd
[Imagen: b_350_20_323957_202743_f19a15_111111.png]

Estudia siempre; el tiempo es oro, lo material se puede recuperar pero el tiempo no se puede recuperar.
(02/10/2016, 05:05 PM)meTaLiCroSS escribió: Siempre me gusta ayudar cuando alguien esta interesado realmente en ver que esta programando.
(08/08/2019, 05:32 PM)meTaLiCroSS escribió: grax x el dato cr4ck


Mis aportes

PLUGINS
MAPAS
Menú LANG [SF] Sistema de Frags
Say System (Admin Prefix)
Responder
#16
edit: tema cerrado.... gracias por la ayuda pude solucionar lo de las balas infinitar....

cambie el evento

RegisterHam(Ham_Item_PostFrame, "weapon_glock18","fw_PostFrameGLOCK18")

por

RegisterHam(Ham_Weapon_Reload, "weapon_glock18", "fw_PostFrameGLOCK18", 1)

error mio por no fijarme los eventos
Responder


Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)