Enviar respuesta 
[ZP] Tomar arma del suelo
Autor Mensaje
iZeus Sin conexión
Miembro Junior


Mensajes: 39
Registro en: Aug 2014
Reputación: 0
Mensaje: #11
RE: [ZP] Tomar arma del suelo
para eso le doy la variable con su numero correspondiente cuando recojo el arma del suelo: g_arma_prim[id] = i, g_arma_sec[id] = i en fw_Item_AddToPlayer, luego de que recojan el arma, restablezco el impulse a 0: set_pev(iWeapon, pev_impulse, 0)
17/08/2019 07:31 PM
Encuentra todos sus mensajes Cita este mensaje en tu respuesta
Ipolito Sin conexión
Miembro Sr.


Mensajes: 375
Registro en: May 2014
Reputación: 5
Mensaje: #12
RE: [ZP] Tomar arma del suelo
Te doy un ejemplo como lo tengo yo
Código PHP:
#define PRIMARY_ENT         EV_INT_iuser3 // Donde se va a guardar el numero de arma PRIMARIA elegida desde el menu o agarrada del piso
#define SECONDARY_ENT         EV_INT_iuser2 // Donde se va a guardar el numero de arma SECUNDARIA elegida desde el menu o agarrada del piso

enum WEAPON_TYPE {
    
PRIMARY// Armas primarias
    
SECONDARY// Armas secundarias
    
TERCIARY// Armas terciariaras (Cuchillos)
    
LASERMINE // Lasermines
}

new 
g_weapon_using[MAX_SLOTS+1][WEAPON_TYPE]
new 
g_weapon_select[MAX_SLOTS+1][WEAPON_TYPE]
new 
g_weapon_next[MAX_SLOTS+1][WEAPON_TYPE]

// New weapons update
stock update_current_weapon_primary(idcurrent_weapon_ent) {
    if (!
g_isalive[id] || !pev_valid(current_weapon_ent)) return;

    
g_weapon_using[id][PRIMARY] = entity_get_int(current_weapon_entPRIMARY_ENT// Le seteamos al jugador el numero que tiene la entidad del arma primaria
}

stock update_current_weapon_secondary(idcurrent_weapon_ent) {
    if (!
g_isalive[id] || !pev_valid(current_weapon_ent)) return;

    
g_weapon_using[id][SECONDARY] = entity_get_int(current_weapon_entSECONDARY_ENT// Le seteamos al jugador el numero que tiene la entidad del arma secundaria

public buy_weapons(const taskid) {
    static 
id;
    
id = (taskid g_maxplayers) ? ID_SPAWN taskid;

    if(!
g_isalive[id] || g_zombie[id] || g_survivor[id])
        return 
PLUGIN_HANDLED;

    
dropWeapons(id1)

    
strip_user_weapons(id);
    
give_item(id,"weapon_knife")

    
// Arma primaria
    
g_weapon_select[id][PRIMARY] = g_weapon_next[id][PRIMARY]

    new 
iWeaponId;
    
iWeaponId weaponNameId(STRUCT_PRIMARY[g_weapon_select[id][PRIMARY]][WEAPON_ENT])

    new 
iPrimaryiPrimary give_item(idSTRUCT_PRIMARY[g_weapon_select[id][PRIMARY]][WEAPON_ENT])
    
ExecuteHamB(Ham_GiveAmmoidMAX_BPAMMO[iWeaponId], AMMO_TYPE[iWeaponId], MAX_BPAMMO[iWeaponId]);

    
dropWeapons(id2)

    
// Secundaria
    
g_weapon_select[id][SECONDARY] = g_weapon_next[id][SECONDARY]

    
iWeaponId weaponNameId(STRUCT_SECONDARY[g_weapon_select[id][SECONDARY]][WEAPON_ENT])

    new 
iSecondaryiSecondary give_item(idSTRUCT_SECONDARY[g_weapon_select[id][SECONDARY]][WEAPON_ENT])
    
ExecuteHamB(Ham_GiveAmmoidMAX_BPAMMO[iWeaponId], AMMO_TYPE[iWeaponId], MAX_BPAMMO[iWeaponId]);
    

    if (
is_valid_ent(iPrimary)) {
        
entity_set_int(iPrimaryPRIMARY_ENTg_weapon_select[id][PRIMARY]) // Guardamos el numero del arma en la entidad

        
ExecuteHamB(Ham_Item_DeployiPrimary); // Le seteamos el model
        
update_current_weapon_primary(idiPrimary// Le seteamos el numero del arma que esta usando al jugador
    
}

    if (
is_valid_ent(iSecondary)) {
        
entity_set_int(iSecondarySECONDARY_ENTg_weapon_select[id][SECONDARY]) // Guardamos el numero del arma en la entidad
    
}
    

    
g_canbuy[id] = false

    
return PLUGIN_CONTINUE;
}

// Cuando el jugador agarra o cambia de arma
public fw_Item_Deploy_Post(const weapon_ent) {
    
// Get weapon's owner
    
static owner
    owner 
getWeaponEntId(weapon_ent)
    
    
// Valid owner?
    
if (!pev_valid(owner))
        return;

    
// Get weapon's id
    
static weaponid
    weaponid 
cs_get_weapon_id(weapon_ent)

    
// Only Humans
    
if (!g_zombie[owner] && !g_nemesis[owner])
    {
        
// Si el jugador equipa un arma primaria
        
if((1<<weaponid) & PRIMARY_WEAPONS_BIT_SUM)
        {
            
// Le seteamos el numero del arma primaria que esta usando
            
update_current_weapon_primary(ownerweapon_ent)
            
ExecuteHamB(Ham_GiveAmmoownerMAX_BPAMMO[weaponid], AMMO_TYPE[weaponid], MAX_BPAMMO[weaponid]);
        }

        
// Si el jugador cambia al arma secundaria
        
if((1<<weaponid) & SECONDARY_WEAPONS_BIT_SUM)
        {
            
// Le seteamos el numero del arma secundaria que esta usando
            
update_current_weapon_secondary(ownerweapon_ent)
            
ExecuteHamB(Ham_GiveAmmoownerMAX_BPAMMO[weaponid], AMMO_TYPE[weaponid], MAX_BPAMMO[weaponid]);
        }
    }
        
    
g_currentweapon[owner] = weaponid
    
      
// Le cambiamos el model      
    
replace_weapon_models(ownerweaponid)

    if (
g_zombie[owner] && !((1<<weaponid) & ZOMBIE_ALLOWED_WEAPONS_BITSUM))
    {
        
// Switch to knife
        
g_currentweapon[owner] = CSW_KNIFE
        engclient_cmd
(owner"weapon_knife")
    }
}

replace_weapon_models(idweaponid)
{
    if(
weaponid == STRUCT_PRIMARY[g_weapon_using[id][PRIMARY]][WEAPON_CSW]) // si la arma que tiene == a la del menu que el habia obtenido
    
{
        static 
MDL[100]
        if(!
equal(STRUCT_PRIMARY[g_weapon_using[id][PRIMARY]][WEAPON_VMDL], "default"))
        {    
// Si no es default le damos el modelo 
            
formatex(MDLsizeof MDL 1"models/eg_zombie/%s.mdl"STRUCT_PRIMARY[g_weapon_using[id][PRIMARY]][WEAPON_VMDL])
            
entity_set_string(idEV_SZ_viewmodelMDL)
        }
        
        if(!
equal(STRUCT_PRIMARY[g_weapon_using[id][PRIMARY]][WEAPON_PMDL] , "default"))
        {
            
formatex(MDLsizeof MDL 1"models/eg_zombie/%s.mdl"STRUCT_PRIMARY[g_weapon_using[id][PRIMARY]][WEAPON_PMDL])
            
entity_set_string(idEV_SZ_weaponmodelMDL)// Si no es default le damos el modelo
        
}
    }

    if(
weaponid == STRUCT_SECONDARY[g_weapon_using[id][SECONDARY]][WEAPON_CSW]) // si la arma que tiene == a la del menu que el habia obtenido
    
{
        static 
MDL[100]
        if(!
equal(STRUCT_SECONDARY[g_weapon_using[id][SECONDARY]][WEAPON_VMDL], "default"))
        {    
// Si no es default le damos el modelo 
            
formatex(MDLsizeof MDL 1"models/eg_zombie/%s.mdl"STRUCT_SECONDARY[g_weapon_using[id][SECONDARY]][WEAPON_VMDL])
            
entity_set_string(idEV_SZ_viewmodelMDL)
        }
        
        if(!
equal(STRUCT_SECONDARY[g_weapon_using[id][SECONDARY]][WEAPON_PMDL] , "default"))
        {
            
formatex(MDLsizeof MDL 1"models/eg_zombie/%s.mdl"STRUCT_SECONDARY[g_weapon_using[id][SECONDARY]][WEAPON_PMDL])
            
entity_set_string(idEV_SZ_weaponmodelMDL)// Si no es default le damos el modelo
        
}
    } 


(Este mensaje fue modificado por última vez en: 22/08/2019 07:16 AM por Ipolito.)
22/08/2019 07:00 AM
Encuentra todos sus mensajes Cita este mensaje en tu respuesta
Enviar respuesta 


Salto de foro:


Usuario(s) navegando en este tema: 1 invitado(s)

Contáctanos | Allied Modders en español | Volver arriba | Volver al contenido | Archivo (Modo simple) | Sindicación RSS