View Single Post
Apb hq
Senior Member
Join Date: Apr 2014
Old 11-18-2018 , 09:31   Re: [REQ] XM1014 shoot hegrenade
Reply With Quote #5

What i really want to make xm1014 shoot paintballnades , can someone do it , i really dont have enough knowledge to it myself thanks in advance
PHP Code:
#include <amxmodx> 
#include <fakemeta> 
#include <hamsandwich> 

#define PLUGIN "Paintball Nade" 
#define VERSION "1.0" 
#define AUTHOR "WhooKid" 

new pbnaderadiusMaxPlayersblood1blood2

public 
plugin_init() 

    
register_plugin(PLUGINVERSIONAUTHOR); 
    
pbnade register_cvar("amx_pbnade""1"); 

    if (
get_pcvar_num(pbnade)) 
    { 
        
register_event("CurWeapon""ev_curweapon""be"); 
        
register_forward(FM_SetModel"fw_setmodel"); 
        
register_forward(FM_Think"fw_think"); 

        
radius register_cvar("pbnade_radius""150"); 
         
        
MaxPlayers get_maxplayers(); 
    } 


public 
plugin_precache() 

    
register_cvar("amx_pbnade""1"
    if (
get_cvar_num("amx_pbnade")) 
    { 
        
precache_model("models/p_pbnade.mdl"); 
        
precache_model("models/v_pbnade.mdl"); 
        
precache_model("models/w_pbnade.mdl"); 
        
blood1 precache_model("sprites/blood.spr"); 
        
blood2 precache_model("sprites/bloodspray.spr"); 
    } 


public 
ev_curweapon(id

    new 
model[25]; 
    
pev(idpev_viewmodel2model24); 
    if (
equali(model"models/v_hegrenade.mdl")) 
    { 
        
set_pev(idpev_viewmodel2"models/v_pbnade.mdl"); 
        
set_pev(idpev_weaponmodel2"models/p_pbnade.mdl"); 
    } 


public 
fw_setmodel(entmodel[])  

    if (
equali(model"models/w_hegrenade.mdl"))  
    { 
        
engfunc(EngFunc_SetModelent"models/w_pbnade.mdl"); 
        return 
FMRES_SUPERCEDE
    } 
    return 
FMRES_IGNORED


public 
fw_think(ent

    new 
model[25]; 
    
pev(entpev_modelmodel24); 

    if (!
equali(model"models/w_pbnade.mdl")) 
        return 
FMRES_IGNORED

    
set_task(1.6"act_explode"ent); 

    return 
FMRES_SUPERCEDE


public 
act_explode(ent

    if (!
pev_valid(ent)) 
        return; 

    new 
origin[3], Float:forigin[3], colors[4], owner pev(entpev_owner), user_team get_user_team(owner); 

    
colors = (user_team == 1) ? { 255024770} : { 025520830}; 
    
pev(entpev_originforigin); 
    
FVecIVec(foriginorigin); 

    new 
idFloat:distance float(get_pcvar_num(radius)), Float:porigin[3]; 

    while (
id++ < MaxPlayers
        if (
is_user_alive(id)) 
        { 
            
message_begin(MSG_ONE_UNRELIABLESVC_TEMPENTITY_id); 
            
write_byte(TE_LAVASPLASH); 
            
write_coord(origin[0]); 
            
write_coord(origin[1]); 
            
write_coord(origin[2] - 50); 
            
message_end(); 

            
message_begin(MSG_ONE_UNRELIABLESVC_TEMPENTITY_id); 
            
write_byte(TE_BLOODSPRITE); 
            
write_coord(origin[0]); 
            
write_coord(origin[1]); 
            
write_coord(origin[2] + 20); 
            
write_short(blood2); 
            
write_short(blood1); 
            
write_byte(colors[2]); 
            
write_byte(30); 
            
message_end(); 

            
message_begin(MSG_ONE_UNRELIABLESVC_TEMPENTITY_id); 
            
write_byte(TE_DLIGHT); 
            
write_coord(origin[0]); 
            
write_coord(origin[1]); 
            
write_coord(origin[2]); 
            
write_byte(40); 
            
write_byte(colors[0]); 
            
write_byte(20); 
            
write_byte(colors[1]); 
            
write_byte(8); 
            
write_byte(60); 
            
message_end(); 

            if (
user_team != get_user_team(id) || owner == id
            { 
                
pev(idpev_originporigin); 
                if (
get_distance_f(foriginporigin) <= distance
                    if (
fm_is_visible(entid)) 
                        
ExecuteHam(Ham_TakeDamageidentowner, (id != owner) ? 100.0 300.00); 
            } 
        } 

    
emit_sound(entCHAN_AUTO"weapons/sg_explode.wav"1.0ATTN_NORM0PITCH_NORM); 

    
engfunc(EngFunc_RemoveEntityent); 


stock bool:fm_is_visible(enttarget

    if (
pev_valid(ent) && pev_valid(target)) 
    { 
        new 
Float:start[3], Float:view_ofs[3], Float:point[3]; 
        
pev(entpev_originstart); 
        
pev(entpev_view_ofsview_ofs); 
        
pev(targetpev_originpoint); 
        
start[0] += view_ofs[0]; 
        
start[1] += view_ofs[1]; 
        
start[2] += view_ofs[2]; 
        
engfunc(EngFunc_TraceLinestartpoint1ent0); 
        new 
Float:fraction
        
get_tr2(0TR_flFractionfraction); 
        if (
fraction == 1.0
            return 
true
    } 
    return 
false

Apb hq is offline