AlliedModders

AlliedModders (https://forums.alliedmods.net/index.php)
-   Scripting Help (https://forums.alliedmods.net/forumdisplay.php?f=11)
-   -   Simple effect (weapon remover) (https://forums.alliedmods.net/showthread.php?t=206234)

alonelive 01-20-2013 02:30

Simple effect (weapon remover)
 
PHP Code:

#include <amxmodx> 
#include <fakemeta> 

#define PLUGIN "Destroy Weapons" 
#define AUTHOR "ConnorMcLeod" 
#define VERSION "0.0.1" 

public plugin_init() 

    
register_plugin(PLUGINVERSIONAUTHOR

    
register_forward(FM_SetModel"SetModel"


public 
SetModel(iEntszModel[]) 

    if( 
equal(szModel"models/w_"9) ) 
    {
        new 
szClassName[2]
        
pev(iEntpev_classnameszClassNamecharsmax(szClassName))
        if( 
szClassName[0] == 'w' // "weaponbox" against "grenade"
        
{
            
set_pev(iEntpev_nextthinkget_gametime() + 10.0)
        }
    } 


Hello all! This plugin removes dropped weapon after 10 second. Is possible to add an effect to this process?
For example,

PHP Code:

g_Explode precache_model("sprites/white.spr");

// how to get origin of dropped weapon? 
// new Float:Origin[3]
// get.. weapon.. origin..

create_explode(Origin[3])
{
    
message_begin(MSG_BROADCAST,SVC_TEMPENTITY); 
    
write_byte(TE_EXPLOSION2); 
    
write_coord(vec1[0]); 
    
write_coord(vec1[1]); 
    
write_coord(vec1[2]); 
    
write_byte(185); 
    
write_byte(10); 
    
message_end();



simanovich 01-20-2013 02:50

Re: Simple effect (weapon remover)
 
you need to get the ent origin

Try:
PHP Code:

pev(iEnt,pev_origin,... //the var to store the origin); 


alonelive 01-20-2013 08:01

Re: Simple effect (weapon remover)
 
PHP Code:

#include <amxmodx> 
#include <fakemeta> 

#define PLUGIN "Destroy Weapons" 
#define AUTHOR "ConnorMcLeod" 
#define VERSION "0.0.1" 

new Float:w_Origin[3]
new 
TEST_EXPL

public plugin_init() 

    
register_plugin(PLUGINVERSIONAUTHOR
    
register_forward(FM_SetModel"SetModel"
}

public 
plugin_precache()
{
    
TEST_EXPL precache_model"sprites/flame.spr" );


public 
SetModel(iEntszModel[]) 

    if( 
equal(szModel"models/w_"9) ) 
    {
        new 
szClassName[2]
        
pev(iEntpev_classnameszClassNamecharsmax(szClassName))
        if( 
szClassName[0] == 'w' // "weaponbox": remove all weapons, but not a "grenade"
        
{
              
//effects begin
              
pev(iEntpev_originw_Origin)
              
message_begin(MSG_BROADCAST,SVC_TEMPENTITY); 
              
write_byte(TEST_EXPL); 
              
write_coord(w_Origin[0]); 
              
write_coord(w_Origin[1]); 
              
write_coord(w_Origin[2]); 
              
write_byte(185); 
              
write_byte(10); 
              
message_end();
              
//effects end
              
              
set_pev(iEntpev_nextthinkget_gametime() + 10.0//remove dropped weapon code..
        
}
    } 


Welcome to the AMX Mod X 1.8.1-300 Compiler.
Copyright (c) 1997-2006 ITB CompuPhase, AMX Mod X Team

Warning: Tag mismatch on line 34
Warning: Tag mismatch on line 35
Warning: Tag mismatch on line 36
Header size: 408 bytes
Code size: 936 bytes
Data size: 316 bytes
Stack/heap size: 16384 bytes; estimated max. usage=41 cells (164 bytes)
Total requirements: 18044 bytes

3 Warnings.
Done.

And does not work. I am not a programmer.. :)

ConnorMcLeod 01-20-2013 14:27

Re: Simple effect (weapon remover)
 
PHP Code:

#include <amxmodx>
#include <fakemeta_stocks>
#include <hamsandwich>

#define PLUGIN "Weapon Stay Time With Effect"
#define VERSION "0.0.1"

const XO_CWEAPONBOX 4
new const m_rgpPlayerItems_CWeaponBox[6] = { 34 35 , ... }

new 
g_pWeaponBoxDisappearTimeg_pWeaponBoxDisappearFx
new g_iFhSetModel

public plugin_init()
{
    
register_pluginPLUGINVERSION"ConnorMcLeod" )

    
g_pWeaponBoxDisappearTime register_cvar("mp_weapon_stay_time""10.0")
    
g_pWeaponBoxDisappearFx register_cvar("mp_weapon_stay_effect""1")

    
RegisterHam(Ham_Spawn"weaponbox""OnCWeaponBox_Spawn_Post"true)
    
RegisterHam(Ham_Think"weaponbox""OnCWeaponBox_Think_Post"true)
}

public 
OnCWeaponBox_Spawn_Post()
{
    
g_iFhSetModel register_forward(FM_SetModel"OnSetModel_WeaponBox_Post"true)
}

public 
OnSetModel_WeaponBox_PostiWeaponBox /* , szModel[] */ )
{
    if( 
get_pdata_cbase(iWeaponBoxm_rgpPlayerItems_CWeaponBox[5], XO_CWEAPONBOX) <= // Filter with c4
    
{
        
set_pev(iWeaponBoxpev_nextthinkget_gametime() + get_pcvar_float(g_pWeaponBoxDisappearTime))
    }
    
unregister_forward(FM_SetModelg_iFhSetModeltrue)
}

public 
OnCWeaponBox_Think_PostiWeaponBox )
{
    if( 
get_pcvar_num(g_pWeaponBoxDisappearFx) && pev_valid(iWeaponBox) && pev(iWeaponBoxpev_flags) & FL_KILLME )
    {
        new 
Float:origin[3]
        
pev(iWeaponBoxpev_originorigin)
        
EF_MessageBegin(MSG_PASSVC_TEMPENTITYorigin0)
        
write_byte(TE_EXPLOSION2)
        
EF_WriteCoordorigin[0] )
        
EF_WriteCoordorigin[1] )
        
EF_WriteCoordorigin[2] )
        
write_byte(185)
        
write_byte(10)
        
message_end()
    }



alonelive 01-21-2013 02:51

Re: Simple effect (weapon remover)
 
Thank you, Connor, but weapons removes after 10 seconds without any effect :(

ConnorMcLeod 01-21-2013 13:35

Re: Simple effect (weapon remover)
 
Does work for me.

alonelive 01-21-2013 13:45

Re: Simple effect (weapon remover)
 
Can you give a screenshot please?
maybe this plugin can conflict with some my plugins..


All times are GMT -4. The time now is 13:38.

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