Ayuda con Menu de Cuchillos
#1
Buenas, para empezar lo siento si esto no esta posteado en el lugar que tiene que ir. Tengo este menú de cuchillos que funciona como plugin a parte... lo saque de una respuesta a otro usuario que pedía uno. Mis dudas son 3 con respecto a esto:

La primera, el código de base venia para solo restringirlos por nivel lo adapte con lo poco que se para que también lo estén por Reset y Super reset. Me gustaría me lo corrigieran de ser necesario.

La segunda, cuando entro al juego los zombis también pueden usar los cuchillos y pierden los modelos de las manos. Como hago que solo puedan usarlo humanos?

La tercera, como hago para que aparezca luego del menú de selección de pistolas?

Desde ya, muchas gracias.

Les dejo el code:

Código PHP:
#include <amxmodx>
#include <fun>
#include <fakemeta>
#include <hamsandwich>

#define PLUGIN "KNIFES MENU"
#define VERSION "1.0"
#define AUTHOR "author"

new g_arma_knife[33], kNivel[33], kReset[33], kSreset[33]

enum _:knife_caracter Nombre[20], Csw_nombreNivelResetSresetFloat:DamageModelo_v[90], Modelo_p[90]}

new const 
knife_menu[][knife_caracter] = 
{
    { 
"Seal Knife"CSW_KNIFE0000.8"models/v_knife.mdl""models/p_knife.mdl"},
    { 
"Claw Hammer"CSW_KNIFE30000.9"models/weapons/v_clawhammer.mdl""models/weapons/p_clawhammer.mdl"},
    { 
"Hunting Dagger"CSW_KNIFE240001.0"models/weapons/v_hdagger.mdl""models/weapons/p_hdagger.mdl"},
    { 
"Crowbar"CSW_KNIFE20101.1"models/weapons/v_crowbar.mdl""models/weapons/p_crowbar.mdl"},
    { 
"Nata Knife"CSW_KNIFE340101.2"models/weapons/v_strong_knife.mdl""models/weapons/p_strong_knife.mdl"},
    { 
"Machete"CSW_KNIFE25201.4"models/weapons/v_machete.mdl""models/weapons/p_machete.mdl"},
    { 
"Dragon Knife"CSW_KNIFE400201.5"models/weapons/v_knifedragon.mdl""models/weapons/p_knifedragon.mdl"},
    { 
"Combat Knife"CSW_KNIFE15401.5"models/weapons/v_combatknife.mdl""models/weapons/p_combatknife.mdl"},
    { 
"Master Combat Knife"CSW_KNIFE10501.5"models/weapons/v_mastercombatknife.mdl""models/weapons/p_mastercombatknife.mdl"},
    { 
"Parang"CSW_KNIFE50011.5"models/weapons/v_axe.mdl""models/weapons/p_axe.mdl"}
    
}

public 
plugin_init() 
{
    
register_clcmd("say /knifes""cmd_knife_ct")
    
    
register_event("CurWeapon""event_CurWeapon_knife""be""1=1")
    
RegisterHam(Ham_TakeDamage"player""fw_TakeDamage")
}
public 
plugin_precache() {
    for(new 
sizeof knife_menu i++) 
    { 
        if(!(
equal(knife_menu[i][Modelo_v] , "default"))) 
             
precache_model(knife_menu[i][Modelo_v]) 
             
        if(!(
equal(knife_menu[i][Modelo_p] , "default"))) 
             
precache_model(knife_menu[i][Modelo_p]) 
    }
}
public 
cmd_knife_ct(id) {
    if(
get_user_team(id) == 2) {
        
cmd_knife(id
    }
    else {
    }
}

public 
cmd_knife(id) {
    new 
len[999] , temp[22], page
        
    
new menu_armas menu_create("\y[\r\y]Knifes""handler_knifes")
    
    for(new 
sizeof knife_menu i++) 
    {
        if (
kSreset[id] && kReset[id] && kNivel[id] >= knife_menu[i][Nivel], knife_menu[i][Reset], knife_menu[i][Sreset])
            
formatex(len charsmax(len) , "\y%s \r[\yDisponible\r]" knife_menu[i][Nombre]) 
        else 
            
formatex(len charsmax(len) , "\d%s \y[Nivel:\r%d\y|Reset:\r%d\y|Super Reset:\r%d\y]"knife_menu[i][Nombre], knife_menu[i][Nivel], knife_menu[i][Reset], knife_menu[i][Sreset])
        
num_to_str(itemp2)
        
menu_additem(menu_armaslentemp)
    }
    
menu_setprop(menu_armas MPROP_BACKNAME,"\rAtras")
    
menu_setprop(menu_armas MPROP_NEXTNAME,"\rSiguiente"
    
menu_setprop(menu_armas MPROP_EXITNAME,"\r[Salir]"
    
menu_display(idmenu_armas page)
    
    return 
PLUGIN_HANDLED
}
public 
handler_knifes(idmenuitem
{
    if(
item==MENU_EXIT
        return
    for(new 
sizeof knife_menu i++)    
    if(
kSreset[id] && kReset[id] && kNivel[id] >= knife_menu[i][Nivel], knife_menu[i][Reset], knife_menu[i][Sreset]) 
    {
        
give_item(id"weapon_knife")
        
g_arma_knife[id] = item
    
}
    else 
    {
        
client_print(idprint_center"Nivel, Reset o Super Reset insuficiente para esta Knife")
        
cmd_knife(id)
        return
    }
    return
}
public 
event_CurWeapon_knife(id)
{
    if(!
is_user_alive(id))
        return 
1
    
new weaponid read_data(2)
    if(
weaponid == knife_menu[g_arma_knife[id]][Csw_nombre]) 
    { 
        if(!
equal(knife_menu[g_arma_knife[id]][Modelo_v] , "default"))
        
set_pev(id pev_viewmodel2 knife_menu[g_arma_knife[id]][Modelo_v]) 
         
        if(!
equal(knife_menu[g_arma_knife[id]][Modelo_p] , "default")) 
        
set_pev(id pev_weaponmodel2 knife_menu[g_arma_knife[id]][Modelo_p])
    } 
    return 
0
}
public 
fw_TakeDamage(victiminflictorattackerFloat:damagebits)
{
    if ( 
victim == attacker || !is_user_connected(attacker))             
        return 
HAM_IGNORED
        
    
if(get_user_weapon(attacker) == knife_menu[g_arma_knife[attacker]][Csw_nombre]) {
        
SetHamParamFloat(damage *= knife_menu[g_arma_knife[attacker]][Damage])

    }
    
    return 
HAM_IGNORED;

Responder
#2
si lo quieres hacer aparte :

1- No entendí.
2- Verifica que sea ANTI-TERRORISTA para abrir el menú con la native
Código PHP:
cs_get_user_team(index
3- Usa natives.
Responder
#3
(11/11/2018, 12:21 AM)+rdNN! escribió: si lo quieres hacer aparte :

1- No entendí.
2- Verifica que sea ANTI-TERRORISTA para abrir el menú con la native
Código PHP:
cs_get_user_team(index
3- Usa natives.

1- No importa creo lo solucione.
2- En que parte del code iría eso?
3- No entendí Confundido
Responder
#4
2- donde abres el menú
3- crea una native en tu menú de armas para llamarla en el zp.

Te dejo esto para que logres entender de natives :
https://forums.alliedmods.net/showthread.php?t=203738
Responder
#5
(12/11/2018, 08:52 PM)+rdNN! escribió: 2- donde abres el menú
3- crea una native en tu menú de armas para llamarla en el zp.

Te dejo esto para que logres entender de natives :
https://forums.alliedmods.net/showthread.php?t=203738

Logre hacer el 3 con lo que me pasaste gracias. Sin embargo el 2 no he podido. Whatever
Responder
#6
En el codigo de menu knife

abajo de tu
Código PHP:
public cmd_knife(id) { 
pone esto
Código PHP:
if(!(cs_get_user_team(id) == CS_TEAM_CT)) return PLUGIN_HANDLED

y no te olvides de agregar esto
Código PHP:
#include <cstrike> 
abajo de :
Código PHP:
#include <hamsandwich> 
Responder
#7
(14/11/2018, 11:03 PM)+rdNN! escribió: En el codigo de menu knife

abajo de tu
Código PHP:
public cmd_knife(id) { 
pone esto
Código PHP:
if(!(cs_get_user_team(id) == CS_TEAM_CT)) return PLUGIN_HANDLED

y no te olvides de agregar esto
Código PHP:
#include <cstrike> 
abajo de :
Código PHP:
#include <hamsandwich> 

Muchas gracias por la ayuda, compila todo bien pero al entrar al juego los Zombi siguen teniendo acceso a los cuchillos. La verdad no se que pueda ser he probado otros menu de Knife y sucede lo mismo. Tal vez el problema sea que lo pruebo con bots pero de todas maneras a mi como jugador al ser zombi me sucede lo mismo asi que no se.
Responder
#8
Michs ! no tenia idea que los bots tienen la inteligencia de escoger cuchillo en el menú, adjunta tu sma del zombie_plague para adaptarte el menú de cuchillos al zombie plague y hace 1 solo sma
Responder
#9
(15/11/2018, 12:09 AM)+rdNN! escribió: Michs ! no tenia idea que los bots tienen la inteligencia de escoger cuchillo en el menú, adjunta tu sma del zombie_plague para adaptarte el menú de cuchillos al zombie plague y hace 1 solo sma

Hahahaha. Whatdone
Muchas gracias por tomarte la molestia , te dejo también el sma del menu de cuchillos que estoy usando actualmente que ya trae rangos incorporados si podes adaptar ese mejor... sino no pasa nada.


Archivos adjuntos
.sma   Descargar AMXX / zombie_plague40.sma (Tamaño: 380.89 KB / Descargas: 10)
.sma   Descargar AMXX / rangos+knifes.sma (Tamaño: 13.02 KB / Descargas: 9)
Responder


Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)