Raised This Month: $ Target: $400
 0% 

Cluster Grenades


Post New Thread Reply   
 
Thread Tools Display Modes
Author Message
fl0werD
Senior Member
Join Date: May 2011
Old 01-04-2013 , 18:51   Cluster Grenades
Reply With Quote #1

Hello, I'm doing a cluster grenade. Help me. My code, I created entity cluster:
PHP Code:
#include <amxmodx>
#include <hamsandwich>
#include <fakemeta>
#include <engine>

new g_msgDeathMsg;

public 
plugin_init()
{
    
register_plugin("Cluster Grenade""1.0""fl0wer")

    
register_touch("grenade_cluster""*""Forward__Touch_Pre")
    
register_forward(FM_SetModel"Forward__SetModel_Pre")

    
RegisterHam(Ham_Think"grenade""CBaseGrenade__Think_Pre")

    
g_msgDeathMsg get_user_msgid("DeathMsg");
}

public 
Forward__Touch_Pre(pEntity)
{
    if(!
pev_valid(pEntity))
        return;

    new 
Float:vecOrigin[3], pExpEntity;
    
pev(pEntitypev_originvecOrigin)

    static 
iszAllocStringCached;
    if(
iszAllocStringCached || (iszAllocStringCached engfunc(EngFunc_AllocString"env_explosion")))
    {
        if(
pev_valid((pExpEntity engfunc(EngFunc_CreateNamedEntityiszAllocStringCached))))
        {
            
set_pev(pExpEntitypev_originvecOrigin)
            
set_pev(pExpEntitypev_spawnflagsSF_ENVEXPLOSION_NODAMAGE)

            
DispatchKeyValue(pExpEntity"iMagnitude""080")
            
DispatchSpawn(pExpEntity)

            
force_use(pExpEntitypExpEntity)
        }
    }

    static 
pevVictim;
    
pevVictim FM_NULLENT;

    new 
Float:flDamageFloat:vecVictimOrigin[3];
    new 
pevOwner pev(pEntitypev_owner);

    while((
pevVictim engfunc(EngFunc_FindEntityInSpherepevVictimvecOrigin240.0)))
    {
        if(!(
<= pevVictim <= 32 && is_user_alive(pevVictim)))
            continue;

        if(
get_pdata_int(pevVictim114) == get_pdata_int(pevOwner114))
            continue;

        
pev(pevVictimpev_originvecVictimOrigin)

        if((
flDamage 80.0 * (1.0 - (get_distance_f(vecVictimOriginvecOrigin) / 240.0))) <= pev(pevVictimpev_health))
            
ExecuteHamB(Ham_TakeDamagepevVictimpEntitypevOwnerflDamageDMG_BLAST)
        else
        {
            
set_msg_block(g_msgDeathMsgBLOCK_SET)
            
ExecuteHamB(Ham_KilledpevVictimpevOwner0)
            
set_msg_block(g_msgDeathMsgBLOCK_NOT)

            
message_begin(MSG_ALLg_msgDeathMsg)
            
write_byte(pevOwner)
            
write_byte(pevVictim)
            
write_byte(0)
            
write_string("grenade")
            
message_end()
        }
    }

    
engfunc(EngFunc_RemoveEntitypEntity)
}

public 
Forward__SetModel_Pre(pEntityszModel[])
{
    if(
strlen(szModel) < 8)
        return;

    if(
szModel[7] != 'w' || szModel[8] != '_' || szModel[9] != 'h' || szModel[10] != 'e')
        return;

    static 
Float:flDmgTime;
    
pev(pEntitypev_dmgtimeflDmgTime)

    if(
flDmgTime == 0.0)
        return;

    
set_pev(pEntitypev_flTimeStepSound1111)
}

public 
CBaseGrenade__Think_Pre(pEntity)
{
    if(!
pev_valid(pEntity))
        return;

    static 
Float:flDmgTime;
    
pev(pEntitypev_dmgtimeflDmgTime)

    if(
flDmgTime get_gametime())
        return;

    if(
pev(pEntitypev_flTimeStepSound) != 1111)
        return;

    new 
Float:vecOrigin[3], pGrenade;
    
pev(pEntitypev_originvecOrigin)

    static 
iszAllocStringCached;

    for(new 
04i++)
    {
        if(
iszAllocStringCached || (iszAllocStringCached engfunc(EngFunc_AllocString"info_target")))
            
pGrenade engfunc(EngFunc_CreateNamedEntityiszAllocStringCached);

        if(!
pev_valid(pGrenade))
            continue;

        
set_pev(pGrenadepev_classname"grenade_cluster"
        
set_pev(pGrenadepev_movetypeMOVETYPE_TOSS)
        
set_pev(pGrenadepev_solidSOLID_TRIGGER)
        
set_pev(pGrenadepev_ownerpev(pEntitypev_owner))
        
set_pev(pGrenadepev_originvecOrigin)

        
engfunc(EngFunc_SetSizepGrenadeFloat:{ 0.00.00.0 }, Float:{ 0.00.00.0 })
        
engfunc(EngFunc_SetModelpGrenade"models/grenade.mdl")
    }

I'm having difficulty with this scheme:
Attached Thumbnails
Click image for larger version

Name:	Безымянный.JPG
Views:	238
Size:	21.3 KB
ID:	114104  

Last edited by fl0werD; 01-04-2013 at 18:51.
fl0werD is offline
Send a message via ICQ to fl0werD
Reply


Thread Tools
Display Modes

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 13:44.


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