[Ayuda]Bonus Box
#1
Bueno lo que quiero hacer es agregar un extra items Ej: Bubble Camp es para zombie plague 4.2,les dejo el code de bonus box.

Código PHP:
#include <amxmodx>
#include <amxmisc>
#include <fakemeta>
#include <fakemeta_util>
#include <zombieplague>
#include <hamsandwich>

#define PLUGIN "[ZP] Addon: Bonus Box"
#define VERSION "1.0"
#define AUTHOR "PomanoB & Accelerator"

#define OFFSET_FLASH_AMMO 387
#define OFFSET_HE_AMMO 388
#define OFFSET_SMOKE_AMMO 389

new const item_class_name[] = "dm_item"

new g_models[][] = {"models/zombie_plague/presents.mdl"}

public 
plugin_precache()
{
    for (new 
0sizeof g_modelsi++)
        
precache_model(g_models[i])    
}

public 
plugin_init()
{
    
register_plugin(PLUGINVERSIONAUTHOR)
    
    
register_forward(FM_Touch"fwd_Touch")
    
    
register_event("HLTV""round_start""a""1=0""2=0")
    
    
RegisterHam(Ham_Killed"player""fw_PlayerKilled")
    
    
register_dictionary("bonus_box.txt")
}

public 
fwd_Touch(touchertouched)
{
    if (!
is_user_alive(toucher) || !pev_valid(touched))
        return 
FMRES_IGNORED
    
    
new classname[32]    
    
pev(touchedpev_classnameclassname31)
    if (!
equal(classnameitem_class_name))
        return 
FMRES_IGNORED
    
    
    
    give_item
(toucher)
    
set_pev(touchedpev_effectsEF_NODRAW)
    
set_pev(touchedpev_solidSOLID_NOT)
    
    return 
FMRES_IGNORED
    
}

public 
fw_PlayerKilled(victimattackershouldgib)
{
    if (!
is_user_connected(attacker) || !is_user_connected(victim) || attacker == victim || !attacker)
        return 
HAM_IGNORED
    
    
    
new random random_num(08)
    
    if (
random == || random == || random == 6)
    {
        new 
origin[3]
        
get_user_origin(victimorigin0)
        
        
addItem(origin)
    }
    
    return 
HAM_IGNORED
}

public 
removeEntity(ent)
{
    if (
pev_valid(ent))
        
engfunc(EngFunc_RemoveEntityent)
}

public 
addItem(origin[3])
{
    new 
ent fm_create_entity("info_target")
    
set_pev(entpev_classnameitem_class_name)
    
    
engfunc(EngFunc_SetModel,entg_models[random_num(0sizeof g_models 1)])

    
set_pev(ent,pev_mins,Float:{-10.0,-10.0,0.0})
    
set_pev(ent,pev_maxs,Float:{10.0,10.0,25.0})
    
set_pev(ent,pev_size,Float:{-10.0,-10.0,0.0,10.0,10.0,25.0})
    
engfunc(EngFunc_SetSize,ent,Float:{-10.0,-10.0,0.0},Float:{10.0,10.0,25.0})

    
set_pev(ent,pev_solid,SOLID_BBOX)
    
set_pev(ent,pev_movetype,MOVETYPE_FLY)
    
    new 
Float:fOrigin[3]
    
IVecFVec(originfOrigin)
    
set_pev(entpev_originfOrigin)
    
    
set_pev(ent,pev_renderfx,kRenderFxGlowShell)
    switch(
random_num(1,4))
    {
        case 
1set_pev(ent,pev_rendercolor,Float:{0.0,0.0,255.0})
        case 
2set_pev(ent,pev_rendercolor,Float:{0.0,255.0,0.0})
        case 
3set_pev(ent,pev_rendercolor,Float:{255.0,0.0,0.0})
        case 
4set_pev(ent,pev_rendercolor,Float:{255.0,255.0,255.0})
    }
}

public 
give_item(id)
{
    new 
zombie 
    zombie 
zp_get_user_zombie(id)
    
    new 
random_num(0, (zombie 13))
    switch (
i)
    {
        case 
0:
            if (
zombie)
            {
                if (!
zp_get_user_last_zombie(id) && !zp_is_survivor_round() && !zp_is_swarm_round())
                {
                    
zp_disinfect_user(id)
                    
ChatColor(id"!g[ZP]!y %L"LANG_PLAYER"ITEM_DM_ANTIDOT")
                }
                else
                    
ChatColor(id"!g[ZP]!y %L"LANG_PLAYER"ITEM_DM_NO")    
            }
            else
            {
                if (!
zp_get_user_last_human(id) && !zp_is_survivor_round() && !zp_is_swarm_round())
                {
                    
zp_infect_user(id)
                    
ChatColor(id"!g[ZP]!y %L"LANG_PLAYER"ITEM_DM_INFECT")
                }
                else
                    
ChatColor(id"!g[ZP]!y %L"LANG_PLAYER"ITEM_DM_NO")
            }
            
        case 
1:
        {
            
fm_set_user_health(idget_user_health(id) + (zombie 500 50))
            
ChatColor(id"!g[ZP]!y %L"LANG_PLAYER"ITEM_DM_HEALTH_UP")
        }
        case 
2:
        {
            
fm_set_user_health(idget_user_health(id) - (zombie 250 25))
            
ChatColor(id"!g[ZP]!y %L"LANG_PLAYER"ITEM_DM_HEALTH_DOWN")
        }
        case 
3:
        {
            
zp_set_user_ammo_packs(idzp_get_user_ammo_packs(id) + random_num(15))
            
ChatColor(id"!g[ZP]!y %L"LANG_PLAYER"ITEM_DM_AMMOPACKS_UP")
        }
        case 
4:
        {
            
zp_set_user_ammo_packs(idzp_get_user_ammo_packs(id) - random_num(15))
            
ChatColor(id"!g[ZP]!y %L"LANG_PLAYER"ITEM_DM_AMMOPACKS_DOWN")
        }
        case 
5:
        {
            
fm_set_user_gravity(id0.5)
            
ChatColor(id"!g[ZP]!y %L"LANG_PLAYER"ITEM_DM_GRAVITY")
        }
        case 
6:
        {
            if (!
zp_get_user_nightvision(id))
            {
                
zp_set_user_nightvision(id1)
                
ChatColor(id"!g[ZP]!y %L"LANG_PLAYER"ITEM_DM_NIGHTVISION")
            }
            else
                
ChatColor(id"!g[ZP]!y %L"LANG_PLAYER"ITEM_DM_NO")
        }
        case 
7:
        {
            
fm_set_user_armor(idget_user_armor(id) + 100)
            
ChatColor(id"!g[ZP]!y %L"LANG_PLAYER"ITEM_DM_ARMOR_UP")
        }
        case 
8:
        {
            
fm_set_user_armor(idget_user_armor(id) - 100)
            
ChatColor(id"!g[ZP]!y %L"LANG_PLAYER"ITEM_DM_ARMOR_DOWN")
        }
        case 
9:
        {
            
set_pev(idpev_effectspev(idpev_effects) | EF_BRIGHTLIGHT)
            
ChatColor(id"!g[ZP]!y %L"LANG_PLAYER"ITEM_DM_BRIGHTLIGHT")
        }
        case 
10:
        {
            
fm_give_item(id"weapon_flashbang")
            
fm_give_item(id"weapon_smokegrenade")
            
fm_give_item(id"weapon_hegrenade")
            
            
set_pdata_int(idOFFSET_FLASH_AMMO3)
            
set_pdata_int(idOFFSET_HE_AMMO3)
            
set_pdata_int(idOFFSET_SMOKE_AMMO3)
            
            
ChatColor(id"!g[ZP]!y %L"LANG_PLAYER"ITEM_DM_GRENADES")
        }
        case 
11:
        {
            if (!
user_has_weapon(idCSW_SG550))
            {
                
fm_give_item(id"weapon_sg550")
                
ExecuteHamB(Ham_GiveAmmoid30"556nato"90)
                
                
ChatColor(id"!g[ZP]!y %L"LANG_PLAYER"ITEM_DM_SG550")
            }
            else
                
ChatColor(id"!g[ZP]!y %L"LANG_PLAYER"ITEM_DM_NO")
        }
        case 
12:
        {
            if (!
user_has_weapon(idCSW_G3SG1))
            {
                
fm_give_item(id"weapon_g3sg1")
                
ExecuteHamB(Ham_GiveAmmoid30"762nato"20)
                
                
ChatColor(id"!g[ZP]!y %L"LANG_PLAYER"ITEM_DM_G3SG1")
            }
            else
                
ChatColor(id"!g[ZP]!y %L"LANG_PLAYER"ITEM_DM_NO")
        }
        case 
13:
        {
            if (!
user_has_weapon(idCSW_M249))
            {
                
fm_give_item(id"weapon_m249")
                
ExecuteHamB(Ham_GiveAmmoid100"9mm"200)
                
                
ChatColor(id"!g[ZP]!y %L"LANG_PLAYER"ITEM_DM_M249")
            }
            else
                
ChatColor(id"!g[ZP]!y %L"LANG_PLAYER"ITEM_DM_NO")
        }
        case 
14:
        {
            if (!
user_has_weapon(idCSW_AWP))
            {
                
fm_give_item(id"weapon_awp")
                
ExecuteHamB(Ham_GiveAmmoid10"338magnum"30)
                
                
ChatColor(id"!g[ZP]!y %L"LANG_PLAYER"ITEM_DM_AWP")
            }
            else
                
ChatColor(id"!g[ZP]!y %L"LANG_PLAYER"ITEM_DM_NO")
        }
    }
}

public 
round_start()
{
    new 
ent FM_NULLENT
    
static string_class[] = "classname"
    
while ((ent engfunc(EngFunc_FindEntityByStringentstring_classitem_class_name))) 
        
set_pev(entpev_flagsFL_KILLME)
}

// Stock: ChatColor!
stock ChatColor(const id, const input[], any:...)
{
    new 
count 1players[32]
    static 
msg[191]
    
vformat(msg190input3)
    
    
replace_all(msg190"!g""^4"// Green Color
    
replace_all(msg190"!y""^1"// Default Color
    
replace_all(msg190"!team""^3"// Team Color
    
replace_all(msg190"!team2""^0"// Team2 Color
    
    
if (idplayers[0] = id; else get_players(playerscount"ch")
    {
        for (new 
0counti++)
        {
            if (
is_user_connected(players[i]))
            {
                
message_begin(MSG_ONE_UNRELIABLEget_user_msgid("SayText"), _players[i])
                
write_byte(players[i]);
                
write_string(msg);
                
message_end();
            }
        }
    }

Responder
#2
y vos planeas que nos leamos todo el code para adivinar cual es el error?
decinos que te esta fallando o si te tira logs o algún error o algo...
Responder
#3
Pregunto si se puede agregar extra items al bonus box como Bubble camp (Campo de fuerza)
Responder
#4
(18/01/2014, 12:52 AM)Lechugabp escribió: Pregunto si se puede agregar extra items al bonus box como Bubble camp (Campo de fuerza)

ese plugin lo que hace es crear una entidad (en este caso es una caja) cuando alguien muere y quien lo recoja reciba vida, nvg, ap, etc.

que es lo que pretendes? ponerlo como extra item y quien lo compre cuando muera se cree la caja?

no seria buena idea, ya que el que lo compra no recibe nada a cambio Whatever
(17/04/2015, 03:36 PM)Neeeeeeeeeel.- escribió: No se va a volver a conectar a internet en toda su puta vida... nadie sube porno a mi foro y vive para contarlo.
Responder
#5
noo seria asi mira el plugins bonus box funciona asi cuando mata un zombie deja un caja con que te puede dar dar chaleco, o dar vida, lo que qiero es agregar bubble camp que es un items extra.
Responder
#6
(18/01/2014, 04:22 PM)Lechugabp escribió: noo seria asi mira el plugins bonus box funciona asi cuando mata un zombie deja un caja con que te puede dar dar chaleco, o dar vida, lo que qiero es agregar bubble camp que es un items extra.
ahh, vale, creo que entendí
agregar una bubble de recompensa al coger caja?
ya la tienes creada en el zp o externamente? muestralo
(17/04/2015, 03:36 PM)Neeeeeeeeeel.- escribió: No se va a volver a conectar a internet en toda su puta vida... nadie sube porno a mi foro y vive para contarlo.
Responder
#7
sii eso qiero hacer, lo tengo externamente al plugins bubble aca te dejo el code
Código PHP:
#include <amxmodx>
#include <engine>
#include <zombieplague>
#include <hamsandwich>
#include <fun>
#include <fakemeta_util>

#define PLUGIN "[ZP] Extra Item: Force Field Grenade"
#define VERSION "v2.3"
#define AUTHOR "lucas_7_94" // Thanks To Users in credits too!.

#define CAMPO_ROUND_NAME "Campo De Fuerza - 1 Round"
#define CAMPO_TIME_NAME "Campo De Fuerza"
#define ValidTouch(%1) ( is_user_alive(%1) && ( zp_get_user_zombie(%1) || zp_get_user_nemesis(%1) ) )

/*=============================[Plugin Customization]=============================*/
#define CAMPO_TASK
//#define CAMPO_ROUND

#define RANDOM_COLOR
//#define ONE_COLOR

new const NADE_TYPE_CAMPO 6545

#if defined ONE_COLOR
new Float:CampoColors] = { 255.0 0.0 ,   0.0  }
#endif

new TrailColor] = { 000255255 }
new 
Float:Maxs] = { 100.0 100.0 100.0 }
new 
Float:Mins] = { -100.0, -100.0, -100.0 }

new const 
model_grenade[] = "models/zombie_plague/v_auragren.mdl"
new const model[] = "models/zombie_plague/aura8.mdl"
new const w_model[] = "models/zombie_plague/w_aura.mdl"
new const sprite_grenade_trail[] = "sprites/laserbeam.spr"
new const entclas[] = "campo_grenade_forze"

new cvar_flaregrenadesg_trailSprg_SayTextg_itemID

new gBomb
const Float:Push 15.0

const item_cost 10
/*=============================[End Customization]=============================*/

public plugin_init()
{
    
register_plugin(PLUGINVERSIONAUTHOR)
    
    
RegisterHam(Ham_Think"grenade""fw_ThinkGrenade")
    
    
RegisterHam(Ham_Killed"player""fw_PlayerKilled")
    
    
cvar_flaregrenades get_cvar_pointer("zp_flare_grenades")
    
    
register_forward(FM_SetModel"fw_SetModel")
    
    
RegisterHam(Ham_Item_Deploy"weapon_smokegrenade""shield_deploy"1)
    
    
register_event("HLTV""event_round_start""a""1=0""2=0")
    
    
register_forward(FM_Touch"fw_touch")
    
    
g_SayText get_user_msgid("SayText")
    
    
register_cvar("zp_shield_creator""lucas_7_94"FCVAR_SERVER|FCVAR_PROTECTED)
    
    
#if defined CAMPO_ROUND
    
g_itemID zp_register_extra_item CAMPO_ROUND_NAME item_cost ZP_TEAM_HUMAN )
    
#else 
    
g_itemID zp_register_extra_item CAMPO_TIME_NAME item_cost ZP_TEAM_HUMAN )
    
#endif        
}

public 
event_round_start() {
    
    
#if defined CAMPO_ROUND
    
remove_entity_name(entclas)
    
#endif
    
    
gBomb 0
}

public 
plugin_precache() {
    
    
g_trailSpr engfunc(EngFunc_PrecacheModelsprite_grenade_trail)
    
engfunc(EngFunc_PrecacheModelmodel_grenade)
    
engfunc(EngFunc_PrecacheModelmodel)
    
engfunc(EngFunc_PrecacheModelw_model)
}

public 
client_disconnect(id
    
gBomb &= ~( << ( id 32 ) )

public 
zp_extra_item_selected(playeritemid) {
    
    if(
itemid == g_itemID)
    {
        if( 
gBomb & ( << ( player 32 ) ) )
            
Color(player"!g[Escudo]!y Ya Tienes Un Campo De Fuerza")
        else 
        {
            
gBomb |= ( << ( player 32 ) )
            
            if( !
user_has_weaponplayerCSW_SMOKEGRENADE ) )
                
give_item(player,"weapon_smokegrenade")
            
            
            
#if defined CAMPO_ROUND
            
Color(player"!g[Escudo]!y Has Comprado Un Campo De Fuerza!. Este, Dura Un Round.")
            
#else
            
Color(player"!g[Escudo]!y Has Comprado Un Campo De Fuerza!. Este, Durara 15 Segundos!")
            
#endif
        
}
        
        
    }
    
}
public 
fw_PlayerKilled(victimattackershouldgib)
{
    if( ( 
<= attacker <= 32 ) && ( gBomb & ( << ( victim 32 ) ) ) ) 
        
gBomb &= ~( << ( victim 32 ) )
}

public 
fw_ThinkGrenade(entity) {   
    
    if(!
pev_valid(entity)) return HAM_IGNORED
    
    
static Float:dmgtime   
    pev
(entitypev_dmgtimedmgtime)
    
    if (
dmgtime get_gametime())
        return 
HAM_IGNORED   
    
    
if(pev(entitypev_flTimeStepSound) == NADE_TYPE_CAMPO)
        
crear_ent(entity)
    
    return 
HAM_SUPERCEDE
}


public 
fw_SetModel(entity, const model[]) {    
    
    static 
Float:dmgtime
    pev
(entitypev_dmgtimedmgtime)
    
    if (
dmgtime == 0.0)
        return 
FMRES_IGNORED;
    
    if (
equal(model[7], "w_sm"4))
    {        
        new 
owner pev(entitypev_owner)        
        
        if( 
is_user_alive(owner) && !zp_get_user_zombie(owner) && ( gBomb & ( << ( owner 32 ) ) ) ) 
        {
            
set_pcvar_num(cvar_flaregrenades,0)            
            
            
fm_set_rendering(entitykRenderFxGlowShell000255255kRenderNormal16)
            
            
message_begin(MSG_BROADCASTSVC_TEMPENTITY)
            
write_byte(TE_BEAMFOLLOW// TE id
            
write_short(entity// entity
            
write_short(g_trailSpr// sprite
            
write_byte(10// life
            
write_byte(10// width
            
write_byte(TrailColor]) // r
            
write_byte(TrailColor]) // g
            
write_byte(TrailColor]) // b
            
write_byte(500// brightness
            
message_end()
            
            
set_pev(entitypev_flTimeStepSoundNADE_TYPE_CAMPO)
            
            
set_task(6.0"DeleteEntityGrenade" ,entity)
            
gBomb &= ~( << ( owner 32 ) )
            
entity_set_model(entityw_model)
            return 
FMRES_SUPERCEDE
        
}
    }
    return 
FMRES_IGNORED
    
}

public 
DeleteEntityGrenade(entity
    if( 
is_valid_ententity ) )
        
remove_entity(entity)

public 
crear_ent(id) {
        
    
set_pcvar_num(cvar_flaregrenades,1)
    
    
// Create entitity
    
new iEntity create_entity("info_target")
    
    if(!
is_valid_ent(iEntity))
        return 
PLUGIN_HANDLED
    
    
new FloatOrigin[3
    
entity_get_vector(idEV_VEC_originOrigin
    
    
entity_set_string(iEntityEV_SZ_classnameentclas)
    
    
entity_set_vector(iEntity,EV_VEC_originOrigin)
    
entity_set_model(iEntity,model)
    
entity_set_int(iEntityEV_INT_solidSOLID_TRIGGER)
    
entity_set_size(iEntityMinsMaxs )
    
entity_set_int(iEntityEV_INT_renderfxkRenderFxGlowShell)
    
entity_set_int(iEntityEV_INT_rendermodekRenderTransAlpha)
    
entity_set_float(iEntityEV_FL_renderamt50.0)
    
    
#if defined RANDOM_COLOR
    
if(is_valid_ent(iEntity))
    {
        new 
Float:vColor[3]
        
        for(new 
i3i++)
            
vColor[i] = random_float(0.0255.0)
        
        
entity_set_vector(iEntityEV_VEC_rendercolorvColor)
    }
    
#endif
    
    #if defined ONE_COLOR
    
entity_set_vector(iEntityEV_VEC_rendercolorCampoColors)
    
#endif
    
    #if defined CAMPO_TASK
    
set_task(15.0"DeleteEntity"iEntity)
    
#endif
    
    
    
return PLUGIN_CONTINUE;
}

public 
zp_user_infected_post(infectedinfector
    if ( 
gBomb & ( << ( infected 32 ) ) ) 
        
gBomb &= ~( << ( infected 32 ) ) 

public 
fw_touch(enttouched)
{
    if ( !
pev_valid(ent) ) return FMRES_IGNORED;
    static 
entclass[32];
    
pev(entpev_modelentclass31);
    
    if ( 
strcmpentclassmodel ) == )
    {    
        if( 
ValidTouch(touched) )
        {
            static 
Float:pos_ptr[3], Float:pos_ptd[3]
            
            
pev(entpev_originpos_ptr)
            
pev(touchedpev_originpos_ptd)
            
            for(new 
03i++)
            {
                
pos_ptd[i] -= pos_ptr[i]
                
pos_ptd[i] *= Push
            
}
            
set_pev(touchedpev_velocitypos_ptd)
            
set_pev(touchedpev_impulsepos_ptd)
        }
    }
    return 
FMRES_HANDLED
}


public 
DeleteEntityentity )  // Thanks xPaw For The Code =D
    
if( is_valid_ententity ) ) 
    
remove_entityentity );

stock Color(const id, const input[], any:...)
{
    static 
msg[191]
    
vformat(msg190input3)
    
    
replace_all(msg190"!g""^4")
    
replace_all(msg190"!y""^1")
    
replace_all(msg190"!t""^3")
    
    
message_begin(MSG_ONE_UNRELIABLEg_SayText_id)
    
write_byte(id)
    
write_string(msg)
    
message_end()
}

public 
shield_deployshield_ent )
{
    if( 
pev_validshield_ent ) != )
        return 
HAM_IGNORED;
    
    static const 
mPlayer 41
    
    
new id get_pdata_cbaseshield_entmPlayer);
    
    if( ( 
gBomb & ( << ( id 32 ) ) ) && !zp_get_user_zombieid ) )
        
set_pevidpev_viewmodel2model_grenade );
    
    return 
HAM_IGNORED;

Responder
#8
con una native solucionas todo Lengua

aca te dejo un th que se trato el tema natives
Responder
#9
me podes dar una mano, soy nuevo en esto
Responder
#10
mira aki te dejo ya el code echo pero echale un vistazo para k ala otra ya sepas como va el p2 y tambien perdonen mi falta de ortografia el .inc llamado native es el include de la native de la bubble ay tu puedes meter mas sy quieres en el .sma de bonux box ba el include para k llame ala bubble bueno si me entendieron k Bn sy no pues k mal


Archivos adjuntos
.sma   Descargar AMXX / zp_bonus_box.sma (Tamaño: 9.04 KB / Descargas: 68)
.sma   Descargar AMXX / zp_extra_bubble.sma (Tamaño: 8.97 KB / Descargas: 36)
.inc   natives.inc (Tamaño: 96 bytes / Descargas: 41)
Responder
#11
una pregunta como sacaste la native de la bubble, porque quiero sacar de otro items extra
Responder
#12
no la sake de ningun lado la cree con otro item puedes hacer lo mismo como la bubble solo echale un viztaso ala bubble y listo
Responder
#13
lo estuve comparando el code que me dejaste, quiero saber si estoy en lo correcto
Código PHP:
public plugin_natives ()
{
    
register_native("zp_give_bubble""native_give_weapon_add"1)
}
public 
native_give_weapon_add(id)
{
    
give_bubble(id)
}
public 
give_bubble(id)
{
    if( 
gBomb & ( << ( id 32 ) ) )
        
Color(id"!g[Escudo]!y Ya Tienes Un Campo De Fuerza")
    else 
    {
        
gBomb |= ( << ( id 32 ) )
            
        if( !
user_has_weaponidCSW_SMOKEGRENADE ) )
            
give_item(id,"weapon_smokegrenade")
            
        
Color(id"!g[Escudo]!y Has Encontrado Un Campo De Fuerza!. Este, Durara 15 Segundos!")
    }
    

Responder
#14
claro k sy we
Responder
#15
También puedes utilizar zp_force_buy_extraitem??? Para que no te enredes haciendo mas "inc"
[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
#16
osea si kieres crear un arma k no este en items nose usaria eso si no una native y listo lo borras de item xd i no lo llamaria con el forze
Responder
#17
Pero el esta pidiendo poner extra item dentro del bonusbox no? Osea que también los quiere tener en el Menú extra items
[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
#18
solo lo quiero en el bonus box , no en el menu extra items. Estuve probando agregar otro items y me sale en menu extra items
Responder
#19
pues del .sma del item k metistes corra la parte de extra_item_selec y borra el name del item y la variable k usa y listo we sy no me entendistes pon el .sma y te ayudo
Responder
#20
Es un Extra items Kill Bomba para matar zombie
mira aca te dejo el code me salta alguno errores
Código PHP:
#include <amxmodx>
#include <amxmisc>
#include <fakemeta>
#include <zombieplague>
#include <hamsandwich>
#include <fakemeta_util>

#define PLUGIN "Nowy Plugin"
#define VERSION "1.0"
#define AUTHOR "Sn!ff3r"

new const NADE_TYPE_KILLBOMB 7000
new const Float:RADIUS 240.0
new const sprite_grenade_trail[] = "sprites/laserbeam.spr"
new const sprite_grenade_ring[] = "sprites/shockwave.spr"
new const item_cost 20
new const item_name[] = "Kill Bomb"
new const model_grenade_infect[] = "models/zombie_plague/v_grenade_infect.mdl"

new item_id
new has_bomb[33]
new 
cvar_enabledcvar_fragsinfectcvar_ammoinfectcvar_humanbonushpcvar_flaregrenades
new g_trailSprg_exploSprg_msgScoreInfog_msgDeathMsgg_msgScoreAttrib

public plugin_init() 
{
    
register_plugin(PLUGINVERSIONAUTHOR)
    
    
RegisterHam(Ham_Think"grenade""fw_ThinkGrenade")
    
RegisterHam(Ham_Killed"player""fw_PlayerKilled")
    
    
register_forward(FM_SetModel"fw_SetModel")    
    
    
register_message(get_user_msgid("CurWeapon"), "message_cur_weapon")
    
    
cvar_enabled register_cvar("zp_kill_bomb","1")
    
cvar_fragsinfect get_cvar_pointer("zp_zombie_frags_for_infect")
    
cvar_ammoinfect get_cvar_pointer("zp_zombie_infect_reward")
    
cvar_humanbonushp register_cvar("zp_kill_bomb_extra_hp","10")    
    
cvar_flaregrenades get_cvar_pointer("zp_flare_grenades")
    
    
g_msgScoreInfo get_user_msgid("ScoreInfo")
    
g_msgDeathMsg get_user_msgid("DeathMsg")
    
g_msgScoreAttrib get_user_msgid("ScoreAttrib")
}

public 
plugin_precache()
{
    
g_trailSpr engfunc(EngFunc_PrecacheModelsprite_grenade_trail)
    
g_exploSpr engfunc(EngFunc_PrecacheModelsprite_grenade_ring)
    
    
engfunc(EngFunc_PrecacheModelmodel_grenade_infect)
    
    
item_id zp_register_extra_item(item_name,item_cost,ZP_TEAM_HUMAN)
}
//ACA AGREGUE PARA QUE SALGA EN BONUS BOX 

public plugin_natives ()
{
    
register_native("zp_give_kill""native_give_weapon_add"1)
}
public 
native_give_weapon_add(id)
{
    
give_kill(id)
}
public 
give_kill(id)
{
    if( 
gBomb & ( << ( id 32 ) ) ) // ACA ME SALTA ERROR 
        
Color(id"!g[Bomba]!y Ya Tienes Una Bomba Kill")
    else 
    {
        
gBomb |= ( << ( id 32 ) )
            
        if( !
user_has_weaponidCSW_SMOKEGRENADE ) )
            
give_item(id,"weapon_hegrenade")
            
        
Color(id"!g[Bomba]!y Has Encontrado Una Bomba Kill!")
    }
    
}

public 
client_disconnect(id)
{
    
has_bomb[id] = 0
}

public 
zp_extra_item_selected(playeritemid)
{
    if(
itemid == item_id)
    {
        
has_bomb[player] = 1    
        fm_strip_user_gun
(player,9)
        
fm_give_item(player,"weapon_smokegrenade")
    }
    
}

public 
fw_PlayerKilled(victimattackershouldgib)
{
    
has_bomb[victim] = 0    
}

public 
fw_ThinkGrenade(entity)
{    
    if(!
pev_valid(entity))
        return 
HAM_IGNORED
        
    
static Float:dmgtime    
    pev
(entitypev_dmgtimedmgtime)
    
    if (
dmgtime get_gametime())
        return 
HAM_IGNORED    
    
    
if(pev(entitypev_flTimeStepSound) == NADE_TYPE_KILLBOMB)
        
kill_explode(entity)
    
    return 
HAM_SUPERCEDE
}

public 
fw_SetModel(entity, const model[])
{
    if(!
get_pcvar_num(cvar_enabled))
        return    
    
    static 
Float:dmgtime
    pev
(entitypev_dmgtimedmgtime)
    
    if (
dmgtime == 0.0)
        return
    
    if (
equal(model[7], "w_sm"4))
    {        
        new 
owner pev(entitypev_owner)        
        
        if(!
zp_get_user_zombie(owner) && has_bomb[owner]) 
        {
            
set_pcvar_num(cvar_flaregrenades,0)            
            
            
fm_set_rendering(entitykRenderFxGlowShell2551280kRenderNormal16)
            
            
message_begin(MSG_BROADCASTSVC_TEMPENTITY)
            
write_byte(TE_BEAMFOLLOW// TE id
            
write_short(entity// entity
            
write_short(g_trailSpr// sprite
            
write_byte(10// life
            
write_byte(10// width
            
write_byte(255// r
            
write_byte(128// g
            
write_byte(0// b
            
write_byte(200// brightness
            
message_end()
            
            
set_pev(entitypev_flTimeStepSoundNADE_TYPE_KILLBOMB)
        }
    }
    
}


public 
kill_explode(ent)
{
    if (!
zp_has_round_started()) return
    
    
set_pcvar_num(cvar_flaregrenades,1)
    
    static 
Float:originF[3]
    
pev(entpev_originoriginF)
    
    
create_blast(originF)    
    
    
//engfunc(EngFunc_EmitSound, ent, CHAN_WEAPON, grenade_infect[random_num(0, sizeof grenade_infect - 1)], 1.0, ATTN_NORM, 0, PITCH_NORM)
    
    
static attacker
    attacker 
pev(entpev_owner)
    
    
has_bomb[attacker] = 0
    
    
static victim
    victim 
= -1
    
while ((victim engfunc(EngFunc_FindEntityInSpherevictimoriginFRADIUS)) != 0)
    {
        if (!
is_user_alive(victim) || !zp_get_user_zombie(victim) || zp_get_user_nemesis(victim))
            continue
        
        
SendDeathMsg(attackervictim)
        
FixDeadAttrib(victim)
        
UpdateFrags(attackervictimget_pcvar_num(cvar_fragsinfect), 11)
        
user_kill(victim0)
        
zp_set_user_ammo_packs(attacker,zp_get_user_ammo_packs(attacker) + get_pcvar_num(cvar_ammoinfect))
        
fm_set_user_health(attackerpev(attackerpev_health)+get_pcvar_num(cvar_humanbonushp))
        
    }
    
    
engfunc(EngFunc_RemoveEntityent)
}

public 
create_blast(const Float:originF[3])
{
    
engfunc(EngFunc_MessageBeginMSG_PVSSVC_TEMPENTITYoriginF0)
    
write_byte(TE_BEAMCYLINDER// TE id
    
engfunc(EngFunc_WriteCoordoriginF[0]) // x
    
engfunc(EngFunc_WriteCoordoriginF[1]) // y
    
engfunc(EngFunc_WriteCoordoriginF[2]) // z
    
engfunc(EngFunc_WriteCoordoriginF[0]) // x axis
    
engfunc(EngFunc_WriteCoordoriginF[1]) // y axis
    
engfunc(EngFunc_WriteCoordoriginF[2]+385.0// z axis
    
write_short(g_exploSpr// sprite
    
write_byte(0// startframe
    
write_byte(0// framerate
    
write_byte(4// life
    
write_byte(60// width
    
write_byte(0// noise
    
write_byte(255// red
    
write_byte(128// green
    
write_byte(0// blue
    
write_byte(200// brightness
    
write_byte(0// speed
    
message_end()
    
    
engfunc(EngFunc_MessageBeginMSG_PVSSVC_TEMPENTITYoriginF0)
    
write_byte(TE_BEAMCYLINDER// TE id
    
engfunc(EngFunc_WriteCoordoriginF[0]) // x
    
engfunc(EngFunc_WriteCoordoriginF[1]) // y
    
engfunc(EngFunc_WriteCoordoriginF[2]) // z
    
engfunc(EngFunc_WriteCoordoriginF[0]) // x axis
    
engfunc(EngFunc_WriteCoordoriginF[1]) // y axis
    
engfunc(EngFunc_WriteCoordoriginF[2]+470.0// z axis
    
write_short(g_exploSpr// sprite
    
write_byte(0// startframe
    
write_byte(0// framerate
    
write_byte(4// life
    
write_byte(60// width
    
write_byte(0// noise
    
write_byte(255// red
    
write_byte(164// green
    
write_byte(0// blue
    
write_byte(200// brightness
    
write_byte(0// speed
    
message_end()
    
    
engfunc(EngFunc_MessageBeginMSG_PVSSVC_TEMPENTITYoriginF0)
    
write_byte(TE_BEAMCYLINDER// TE id
    
engfunc(EngFunc_WriteCoordoriginF[0]) // x
    
engfunc(EngFunc_WriteCoordoriginF[1]) // y
    
engfunc(EngFunc_WriteCoordoriginF[2]) // z
    
engfunc(EngFunc_WriteCoordoriginF[0]) // x axis
    
engfunc(EngFunc_WriteCoordoriginF[1]) // y axis
    
engfunc(EngFunc_WriteCoordoriginF[2]+555.0// z axis
    
write_short(g_exploSpr// sprite
    
write_byte(0// startframe
    
write_byte(0// framerate
    
write_byte(4// life
    
write_byte(60// width
    
write_byte(0// noise
    
write_byte(255// red
    
write_byte(200// green
    
write_byte(0// blue
    
write_byte(200// brightness
    
write_byte(0// speed
    
message_end()
}

public 
UpdateFrags(attackervictimfragsdeathsscoreboard)
{
    
set_pev(attackerpev_fragsfloat(pev(attackerpev_frags) + frags))
    
    
fm_set_user_deaths(victimfm_get_user_deaths(victim) + deaths)
    
    if (
scoreboard)
    {    
        
message_begin(MSG_BROADCASTg_msgScoreInfo)
        
write_byte(attacker// id
        
write_short(pev(attackerpev_frags)) // frags
        
write_short(fm_get_user_deaths(attacker)) // deaths
        
write_short(0// class?
        
write_short(fm_get_user_team(attacker)) // team
        
message_end()
        
        
message_begin(MSG_BROADCASTg_msgScoreInfo)
        
write_byte(victim// id
        
write_short(pev(victimpev_frags)) // frags
        
write_short(fm_get_user_deaths(victim)) // deaths
        
write_short(0// class?
        
write_short(fm_get_user_team(victim)) // team
        
message_end()
    }
}

stock fm_set_user_deaths(idvalue)
{
    
set_pdata_int(id444value5)
}

stock fm_get_user_deaths(id)
{
    return 
get_pdata_int(id4445)
}


stock fm_get_user_team(id)
{
    return 
get_pdata_int(id1145)
}

public 
SendDeathMsg(attackervictim)
{
    
message_begin(MSG_BROADCASTg_msgDeathMsg)
    
write_byte(attacker// killer
    
write_byte(victim// victim
    
write_byte(1// headshot flag
    
write_string("grenade"// killer's weapon
    
message_end()
}

public 
FixDeadAttrib(id)
{
    
message_begin(MSG_BROADCASTg_msgScoreAttrib)
    
write_byte(id// id
    
write_byte(0// attrib
    
message_end()
}

public 
replace_models(id)
{
    if (!
is_user_alive(id))
        return
    
    if(
get_user_weapon(id) == CSW_SMOKEGRENADE && has_bomb[id])
    {
        
set_pev(idpev_viewmodel2model_grenade_infect)
        
    }
}

public 
message_cur_weapon(msg_idmsg_destmsg_entity)
{
    
replace_models(msg_entity)


aca te dejo el log de errores

Cita:Welcome to the AMX Mod X 1.8.1-300 Compiler.
Copyright © 1997-2006 ITB CompuPhase, AMX Mod X Team

Error: Undefined symbol "gBomb" on line 70
Error: Undefined symbol "Color" on line 71
Error: Undefined symbol "gBomb" on line 74
Warning: Expression has no effect on line 74
Error: Undefined symbol "give_item" on line 77
Error: Undefined symbol "Color" on line 79

5 Errors.
Could not locate output file G:\Archivos de programa\Valve\cstrike\Addons\amxmodx\scripting\zp_killbombhumano.amx (compile failed).
Responder
#21
primero k nada si bas a dar el item en bonux box con una native debes poner la parte de extra_item_selec
en el public del give para la native fijate bien como esta la bubble y lo entenderas aki te dejo ya el .sma para k veas como quedo y como se quito de los items al p2 ay vees tu code y el ya editado Gran sonrisa Thats what she said


Archivos adjuntos
.sma   Descargar AMXX / zp_bomb_kill.sma (Tamaño: 9.06 KB / Descargas: 39)
Responder
#22
gracias PerfecScore sos un kapo cada ve estoy aprendiendo mas Gran sonrisa,quiero ultima cosita que en el mensaje cuando agarre diga Ejemplo [ZP] Player: Lechugabp a Encontrado Una Bomba Kill en el say ,como seria?
Responder
#23
(25/01/2014, 06:18 PM)Lechugabp escribió: gracias PerfecScore sos un kapo cada ve estoy aprendiendo mas Gran sonrisa,quiero ultima cosita que en el mensaje cuando agarre diga Ejemplo [ZP] Player: LechugaCja a Encontrado Una Bomba Kill en el say ,como seria?

obtienes el nombre con get_user_name y cambias el mensaje, no es difícil
(17/04/2015, 03:36 PM)Neeeeeeeeeel.- escribió: No se va a volver a conectar a internet en toda su puta vida... nadie sube porno a mi foro y vive para contarlo.
Responder
#24
no es nada dificil we ai te dejo el code k agregue i el .sma para k chekes el p2

Código PHP:
#include <colorchat>

static name[32]
get_user_name(idname31)
ColorChat(0TEAM_COLOR"[ZP]^x01 Player:^x03 %s a Encontrado Una Bomba Kill"name


Archivos adjuntos
.sma   Descargar AMXX / zp_bomb_kill.sma (Tamaño: 9.21 KB / Descargas: 24)
Responder


Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)