Se Puede reemplazar el knife default y agregar este ZP 4.2
#1
Quiero Saber si puedo este KNIFE al menu zp... osea que me lo reemplaze al knife default que ya tiene el zp...


Código PHP:
#include <amxmodx>
#include <zombieplague>
#include <fun> 
#include <engine>
#include <fakemeta>
#include <hamsandwich>
   
new g_iBuy

new V_KATANA[] = "models/v_katana.mdl" 
new P_KATANA[]        = "models/p_katana.mdl"
new W_KATANA[]    = "models/w_katana.mdl"

new bool:g_katana[33]
new 
g_currentweapon[33]
new 
g_iMaxPlayers
new g_mgcur

// Cvar pointer
new cvar_katanasoundscvar_oneroundcvar_explobodycvar_katanaenabled

new const katana_sounds[][] =
{
    
"katana/katana_deploy.wav",
    
"katana/katana_hit1.wav",
    
"katana/katana_hit2.wav",
    
"katana/katana_stab.wav",
    
"katana/katana_hitwall.wav",
    
"katana/katana_slash1.wav",
    
"katana/katana_slash2.wav"
}

new const 
old_knifeSounds[][] =
{
    
"weapons/knife_deploy1.wav",
    
"weapons/knife_hit1.wav",
    
"weapons/knife_hit2.wav",
    
"weapons/knife_hit3.wav",
    
"weapons/knife_hit4.wav",
    
"weapons/knife_hitwall.wav",
    
"weapons/knife_slash1.wav",
    
"weapons/knife_slash2.wav",
    
"weapons/knife_stab.wav"
}

public 
plugin_init()
{
    
register_plugin("[ZP] Extra Item: Katana Samurai!""1.0""x[L]eoNNN"
    
g_iBuy zp_register_extra_item("Katana Samurai!"10ZP_TEAM_HUMAN)

    
// Event
    
register_event("HLTV""event_round_start""a""1=0""2=0")
    
register_event("CurWeapon""Event_CurWeapon""be","1=1")
    
    
// Forwards
    
register_forward(FM_SetModel"fw_SetModel")
    
register_forward(FM_EmitSound"fw_EmitSound")
    
    
// Ham 
    
RegisterHam(Ham_TakeDamage"player""fw_TakeDamage")
    
RegisterHam(Ham_Spawn"player""fw_PlayerSpawn"1)
    
RegisterHam(Ham_Killed"player""fw_PlayerKilled")
    
    
// Cvars 
    
cvar_katanaenabled register_cvar("zp_katana_enabled""1")
    
cvar_katanasounds register_cvar("zp_katana_sounds""1")
    
cvar_oneround register_cvar("zp_katana_oneround""0")
    
cvar_explobody register_cvar("zp_katana_explobody""1")
    
    
// Others 
    
register_clcmd("drop_katana""drop_weaponKatana")
    
register_touch("katana""player""PlayerTouchKatana")
    
g_mgcur get_user_msgid("CurWeapon")
}

public 
plugin_precache()
{
    
precache_model(V_KATANA)
    
precache_model(P_KATANA)
    
precache_model(W_KATANA)
    
    for(new 
0sizeof katana_soundsi++)
    
precache_sound(katana_sounds[i])
}

// Item Selected forward
public zp_extra_item_selected(iditemid)
{    
    if (
get_pcvar_num(cvar_katanaenabled))
    {
        if (
itemid == g_iBuy)
        
        
g_katana[id] = true
        strip_user_weapons
(id)
        
give_item (id"weapon_knife")
        
set_user_armor(id700)
        
set_user_health(id300)
        
client_print(idprint_chat"[ZP] Katana Samurai! Destrosed Your Enemy'S!")
    }
}

public 
event_round_start()
{
    for(new 
1<= g_iMaxPlayersi++)
    {
        if (!
is_user_connected(i))
        continue
        
        if (
g_katana[i])
        {
            
g_katana[i] = false
        
}
        
give_item(i"weapon_knife")
        
remove_entity_name("katana")
    }
}

public 
Event_CurWeapon(id
{     
    if(!
is_user_alive(id))
        return 
PLUGIN_CONTINUE
    
    g_currentweapon
[id] = read_data(2
    
    if(!
g_katana[id] || g_currentweapon[id] != CSW_KNIFE)
        return 
PLUGIN_CONTINUE
    
    entity_set_string
(idEV_SZ_viewmodelV_KATANA)
    
entity_set_string(idEV_SZ_weaponmodelP_KATANA)
    
    return 
PLUGIN_CONTINUE 
}

public 
fw_SetModel(entitymodel[])
{
    if(!
is_valid_ent(entity)) 
        return 
FMRES_IGNORED
    
    
if(!equali(model"models/w_knife.mdl")) 
        return 
FMRES_IGNORED;
    
    new 
className[33]
    
entity_get_string(entityEV_SZ_classnameclassName32)
    
    if(
equal(className"weaponbox") || equal(className"armoury_entity") || equal(className"grenade"))
    {
        
entity_set_model(entityW_KATANA)
        return 
FMRES_SUPERCEDE
    
}
    
    return 
FMRES_IGNORED
}  

public 
fw_TakeDamage(victiminflictorattackerFloat:damagedamage_bits)
{
    if(!
is_user_connected(attacker) || !is_user_connected(victim) || zp_get_user_nemesis(victim) || attacker == victim || !attacker)
        return 
HAM_IGNORED
    
    
if(g_katana[attacker] && g_currentweapon[attacker] == CSW_KNIFE)
    {    
        static 
Float:originF[3]
        
pev(victimpev_originoriginF)
        
        new 
plrWeapIdplrClipplrAmmo
        plrWeapId 
get_user_weapon(attackerplrClipplrAmmo)
        if (
plrWeapId == CSW_KNIFE)
            
SetHamParamFloat(4damage += get_user_health(victim))
        
        
client_print(attackerprint_center"Enemy Scraf!")
    }
    
    if(
zp_get_user_nemesis(victim) || zp_get_user_first_zombie(victim) || zp_get_user_last_zombie(victim))
    {
        
client_print(attackerprint_center"The Nemesis, First Zombie And Last Zombie Inmunes")
    }
    return 
PLUGIN_HANDLED
}

public 
fw_PlayerKilled(victimattackershouldgib)
{
    if(!
is_user_connected(attacker) || !is_user_connected(victim) || attacker == victim || !attacker)
        return 
HAM_IGNORED
    
    
if(g_katana[attacker] && g_currentweapon[attacker] == CSW_KNIFE && get_pcvar_num(cvar_explobody))
    {
        
SetHamParamInteger(32)
        static 
iOrigin[3]
        
get_user_origin(victimiOrigin)
        
implosion_efect(iOrigin)
    }
    
    if(
g_katana[victim])
    {
        
g_katana[victim] = false
    
}
    return 
HAM_IGNORED
}

implosion_efect(iOrigin[3])
{
    
message_begin(MSG_BROADCASTSVC_TEMPENTITY)
    
write_byte(TE_IMPLOSION)
    
write_coord(iOrigin[0])
    
write_coord(iOrigin[1])
    
write_coord(iOrigin[2])
    
write_byte(200)
    
write_byte(40)
    
write_byte(45)
    
message_end()
}

public 
zp_user_infected_post(infectedinfector)
{
    
    if (
g_katana[infected])
    {
        
g_katana[infected] = false
    
}
}

public 
client_putinserver(id)
{
    
g_katana[id] = false
}

public 
client_disconnect(id)
{
    
g_katana[id] = false
}

public 
fw_PlayerSpawn(id)
{
    if(
get_pcvar_num(cvar_oneround))
    {
        
g_katana[id] = false
        strip_oneWeapon
(id"weapon_knife")
        
give_item(id"weapon_knife")
    }
}

stock strip_oneWeapon(idweapon[])
{
    if (!
equal(weapon"weapon_"7))
    return 
0
    
    
new idd get_weaponid(weapon)
    
    if (!
idd) return 0
    
    
new iEnty
    
    
while((iEnty find_ent_by_class(iEntyweapon)) && entity_get_edict(iEntyEV_ENT_owner) != id) {}
    
    if (!
iEnty) return 0
    
    
if (get_user_weapon(id) == idd)
    
ExecuteHamB(Ham_Weapon_RetireWeapon,iEnty);
    
    if(!
ExecuteHamB(Ham_RemovePlayerItem,id,iEnty))
    return 
0
    
    ExecuteHamB
(Ham_Item_KilliEnty)
    
    
entity_set_int(idEV_INT_weaponsentity_get_int(idEV_INT_weapons) & ~(1<<idd))
    
    return 
1
}

public 
fw_EmitSound(idchannel, const sound[])
{
    if(!
is_user_connected(id))
        return 
FMRES_IGNORED
    
    
if(!is_user_alive(id) || zp_get_user_zombie(id) || zp_get_user_survivor(id) || !g_katana[id] || !get_pcvar_num(cvar_katanasounds))
        return 
FMRES_IGNORED
    
    
for(new 0sizeof katana_soundsi++)
    {
        if(
equal(soundold_knifeSounds[i]))
        {
            
emit_sound(idchannelkatana_sounds[i], 1.0ATTN_NORM0PITCH_NORM)
            return 
FMRES_SUPERCEDE
        
}
    }
    
    return 
FMRES_IGNORED
}

public 
drop_weaponKatana(id)
{
    if(
g_katana[id] && g_currentweapon[id] == CSW_KNIFE)
    {
        
katana_playerDrop(id)
        return 
PLUGIN_HANDLED
    
}
    
    return 
PLUGIN_CONTINUE
}

public 
katana_playerDrop(id
{
    static 
Float:flAim[3], Float:flOrigin[3]
    
VelocityByAim(id64flAim)
    
entity_get_vector(idEV_VEC_originflOrigin)
    
    
flOrigin[0] += flAim[0]
    
flOrigin[1] += flAim[1]
    
    new 
iEnt create_entity("info_target")
    
    new 
Float:katana_iMin[3] = { -2.0, -2.0, -2.0 }
    new 
Float:katana_iMax[3] = { 2.02.02.0 }
    
    
entity_set_string(iEntEV_SZ_classname"katana")
    
entity_set_origin(iEntflOrigin)
    
entity_set_model(iEntW_KATANA)
    
set_size(iEntkatana_iMinkatana_iMax)
    
entity_set_vector(iEntEV_VEC_minskatana_iMin)
    
entity_set_vector(iEntEV_VEC_maxskatana_iMax)
    
entity_set_int(iEntEV_INT_solidSOLID_TRIGGER)
    
entity_set_int(iEntEV_INT_movetypeMOVETYPE_TOSS)
    
    
g_katana[id] = false
    
    reset_knifeModel
(id)
}

public 
reset_knifeModel(id)
{
    if(
user_has_weapon(idCSW_KNIFE))
    
ExecuteHamB(Ham_Item_Deployfind_ent_by_owner(-1"weapon_knife"id))
    
    
engclient_cmd(id"weapon_knife")
    
emessage_begin(MSG_ONEg_mgcur_id)
    
ewrite_byte(1)
    
ewrite_byte(CSW_KNIFE)
    
ewrite_byte(-1)
    
emessage_end()
}

public 
PlayerTouchKatana(Hasplayer)
{
    if(!
is_valid_ent(Has) || !is_valid_ent(player))
    return 
PLUGIN_CONTINUE
    
    
if(!is_user_connected(player))
    return 
PLUGIN_CONTINUE
    
    
if(!is_user_alive(player) || zp_get_user_zombie(player) || zp_get_user_survivor(player) || g_katana[player])
    return 
PLUGIN_CONTINUE
    
    g_katana
[player] = true
    
    reset_knifeModel
(player)
    
    
remove_entity(Has)
    
    return 
PLUGIN_CONTINUE



Y otra duda..

Con esto
[ZP] Menu De Armas Con Extra Items de Sambuseti

Puede haber un tuto de como agregarlo.. o simplemente tengo que hacer C&P y pasarlo al zp que estoy trabajando...
Responder


Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)