Raised This Month: $51 Target: $400
 12% 

[ZP] Extra item sandbang


  
 
 
Thread Tools Display Modes
Author Message
MexPower
Veteran Member
Join Date: Nov 2012
Old 04-30-2013 , 22:50   [ZP] Extra item sandbang
#1

Que onda gente, me descarge e instale el extraitem sandbang que es de poner costales que tienen cierta vida digamos que le pongo 1000 de vida y pueden bloquear el paso a humanos/zombies a menos que sea destruido
Lo que quiero hacer y no lo logro esque solo se le este bajando la vida a ese saco si el atacante es un zombie osea if (zp_get_user_zombie(attacker)), Les dejo el code
PHP Code:
public place_palletwbags(id)
{
    
    
// create a new entity 
    
new ent engfunc(EngFunc_CreateNamedEntityengfunc(EngFunc_AllocString"func_wall"));
    
    
    
// set a name to the entity
    
set_pev(ent,pev_classname,"amxx_pallets");
    
    
// set model        
    
engfunc(EngFunc_SetModel,ent,g_models[random(sizeof g_models)]);
    
    
// register a new var. for origin
    
static Float:xorigin[3];
    
get_user_hitpoint(id,xorigin);
    
    
    
// check if user is aiming at the air 
    
if(engfunc(EngFunc_PointContents,xorigin) == CONTENTS_SKY)
    {
        
client_print(id,print_chat,"[ZA] No puedes poner costales en el Cielo");
        return 
PLUGIN_HANDLED;
    }
    
    
    
// set sizes
    
static Float:p_mins[3], Float:p_maxs[3];
    
p_mins PALLET_MINS;
    
p_maxs PALLET_MAXS;
    
engfunc(EngFunc_SetSizeentp_minsp_maxs);
    
set_pev(entpev_minsp_mins);
    
set_pev(entpev_maxsp_maxs );
    
set_pev(entpev_absminp_mins);
    
set_pev(entpev_absmaxp_maxs );

    
    
// set the rock of origin where is user placed
    
engfunc(EngFunc_SetOriginentxorigin);
    
    
    
// make the rock solid
    
set_pev(ent,pev_solid,SOLID_BBOX); // touch on edge, block
    
    // set the movetype
    
set_pev(ent,pev_movetype,MOVETYPE_FLY); // no gravity, but still collides with stuff
    
    // now the damage stuff, to set to take it or no
    // if you set the cvar "pallets_wbags_health" 0, you can't destroy a pallet with bags
    // else, if you want to make it destroyable, just set the health > 0 and will be
    // destroyable.
    
new Float:p_cvar_health get_pcvar_float(phealth);
    switch(
p_cvar_health//si esta en 0 es indestrucctible el saco
    
{
        case 
0.0 :
        {
            
set_pev(ent,pev_takedamage,DAMAGE_NO);
        }
        
        default : 
//si se le pone vida
        
{
            
set_pev(ent,pev_health,p_cvar_health);
            
set_pev(ent,pev_takedamage,DAMAGE_YES); //creo que es aqui pero no logro saver como
        
}
    }
    
            
    static 
Float:rvec[3];
    
pev(id,pev_v_angle,rvec);
    
    
rvec[0] = 0.0;
    
    
set_pev(ent,pev_angles,rvec);
    
    
// drop entity to floor
    
fm_drop_to_floor(ent);
    
    
// num ..
    
palletscout++;
    
    
// confirm message
    
if ( get_pcvar_num(g_MSGMODE) == )
    {
        
set_hudmessage(255000.800.8006.02.01.01.0)
        
show_hudmessage(id"[ZA] Has colocado un Costal")
        return 
PLUGIN_HANDLED
    
}
    
client_print(idprint_chat"[ZA] Usted ha colocado un costal.")
    return 
PLUGIN_HANDLED;
}
    
/* ====================================================
get_user_hitpoin stock . Was maked by P34nut, and is 
like get_user_aiming but is with floats and better :o
====================================================*/    
stock get_user_hitpoint(idFloat:hOrigin[3]) 
{
    if ( ! 
is_user_aliveid ))
        return 
0;
    
    new 
Float:fOrigin[3], Float:fvAngle[3], Float:fvOffset[3], Float:fvOrigin[3], Float:feOrigin[3];
    new 
Float:fTemp[3];
    
    
pev(idpev_originfOrigin);
    
pev(idpev_v_anglefvAngle);
    
pev(idpev_view_ofsfvOffset);
    
    
xs_vec_add(fOriginfvOffsetfvOrigin);
    
    
engfunc(EngFunc_AngleVectorsfvAnglefeOriginfTempfTemp);
    
    
xs_vec_mul_scalar(feOrigin9999.9feOrigin);
    
xs_vec_add(fvOriginfeOriginfeOrigin);
    
    
engfunc(EngFunc_TraceLinefvOriginfeOrigin0id);
    
global_get(glb_trace_endposhOrigin);
    
    return 
1;

__________________
Allied Modders En Español

Last edited by MexPower; 04-30-2013 at 22:51.
MexPower is offline
Matians
Veteran Member
Join Date: Nov 2010
Location: ME QUIEREN ROBAR
Old 04-30-2013 , 23:08   Re: [ZP] Extra item sandbang
#2

De donde lo sacaste?

Postea el code entero.
Matians is offline
MexPower
Veteran Member
Join Date: Nov 2012
Old 04-30-2013 , 23:11   Re: [ZP] Extra item sandbang
#3

http://forums.alliedmods.net/showthread.php?t=79578

Es lo unico que se ocupa.
__________________
Allied Modders En Español
MexPower is offline
Matians
Veteran Member
Join Date: Nov 2010
Location: ME QUIEREN ROBAR
Old 04-30-2013 , 23:24   Re: [ZP] Extra item sandbang
#4

No se si esta bien, pero si no me equivoco es...

new atacante = read_data(1)

Y dps pones...

if (zp_get_user_zombie(atacante)) le das del DAMAGE_YES
Matians is offline
MexPower
Veteran Member
Join Date: Nov 2012
Old 04-30-2013 , 23:35   Re: [ZP] Extra item sandbang
#5

Eso imagine pero En esa funcion se puede obtener el atacante?
__________________
Allied Modders En Español
MexPower is offline
meTaLiCroSS
Gaze Upon My Hat
Join Date: Feb 2009
Location: Viña del Mar, Chile
Old 04-30-2013 , 23:35   Re: [ZP] Extra item sandbang
#6

Quote:
Originally Posted by Matians View Post
No se si esta bien, pero si no me equivoco es...

new atacante = read_data(1)

Y dps pones...

if (zp_get_user_zombie(atacante)) le das del DAMAGE_YES
Me dio cáncer visual con esto
__________________
Quote:
Originally Posted by joropito View Post
You're right Metalicross
meTaLiCroSS is offline
BlackFur
BANNED
Join Date: Apr 2012
Location: RCL
Old 05-01-2013 , 00:23   Re: [ZP] Extra item sandbang
#7

Registrar Ham_Takedamage con el objetivo de "func_wall" y luego chequeas si es zp_saco o como se llama la entidad si no es asi return HAM_IGNORED , luego chequeas si el atacante es zombie , si no es asi return ham_ignored , y al final del public SUPERCEDE .

EDIT : lo de si es zp_saco es obteniendo la classname
PD : Matian Veteran Spamer Hijo.

Last edited by BlackFur; 05-01-2013 at 00:26.
BlackFur is offline
Matians
Veteran Member
Join Date: Nov 2010
Location: ME QUIEREN ROBAR
Old 05-01-2013 , 16:51   Re: [ZP] Extra item sandbang
#8

Bue, tengo que leer más, así aprendo algo y puedo ayudar bien.

PD: Blackfur si te jode que conteste cualquier cosa, me mandas 1 P.M, y dejas de poner, cosas estúpidas sobre mi, yo no digo nada, todavía.

Last edited by Matians; 05-01-2013 at 16:54.
Matians is offline
MexPower
Veteran Member
Join Date: Nov 2012
Old 05-01-2013 , 19:45   Re: [ZP] Extra item sandbang
#9

Quote:
Originally Posted by BlackFur View Post
Registrar Ham_Takedamage con el objetivo de "func_wall" y luego chequeas si es zp_saco o como se llama la entidad si no es asi return HAM_IGNORED , luego chequeas si el atacante es zombie , si no es asi return ham_ignored , y al final del public SUPERCEDE .

EDIT : lo de si es zp_saco es obteniendo la classname
PD : Matian Veteran Spamer Hijo.
Haber como obtengo la classname?
Hay esto en un define que dise classname
PHP Code:
#define fm_find_ent_by_class(%1,%2) engfunc(EngFunc_FindEntityByString, %1, "classname", %2) 
Lo que ise fue
PHP Code:
//Plugin_init...
RegisterHam(Ham_TakeDamage"func_wall""TakeDamage")

//code code
public TakeDamage(id)
{
        
//Como chekeo si ataca al saco?
    
if(!zp_get_user_zombie(id)) return HAM_IGNORED

//Eso se supercede en que public querias que la pusiera? y como?

__________________
Allied Modders En Español
MexPower is offline
meTaLiCroSS
Gaze Upon My Hat
Join Date: Feb 2009
Location: Viña del Mar, Chile
Old 05-01-2013 , 20:10   Re: [ZP] Extra item sandbang
#10

No entiendo de donde les sale la logica de que el primer parametro de esa función *ES EL ID DE UN PLAYER* ._.
__________________
Quote:
Originally Posted by joropito View Post
You're right Metalicross
meTaLiCroSS is offline
 



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -4. The time now is 10:30.


Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Theme made by Freecode