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

tracers ammo


Post New Thread Reply   
 
Thread Tools Display Modes
Author Message
GAARA54
Veteran Member
Join Date: Oct 2009
Location: Everywhere
Old 11-26-2011 , 15:57   tracers ammo
Reply With Quote #1

PHP Code:
#include <amxmodx>

#define SHOTGUN_AIMING 32

new light;

new 
tracerslnis_cs 0;

lightning(vec1[3],vec2[3])
{
    
//Lightning
    
message_beginMSG_BROADCAST,SVC_TEMPENTITY);
    
write_byte);
    
write_coord(vec1[0]);
    
write_coord(vec1[1]);
    
write_coord(vec1[2]);
    
write_coord(vec2[0]);
    
write_coord(vec2[1]);
    
write_coord(vec2[2]);
    
write_shortlight );
    
write_byte); // framestart
    
write_byte); // framerate
    
write_byte); // life
    
write_byte20 ); // width
    //write_byte( 30 ); // noise
    
write_byte(ln);
    
write_byte200 ); // r, g, b
    
write_byte200 ); // r, g, b
    
write_byte200 ); // r, g, b
    
write_byte200 ); // brightness
    
write_byte200 ); // speed
    
message_end();

}

tracer(vec1[3],vec2[3]) {
    
message_begin(MSG_PASSVC_TEMPENTITY,vec1 );
    
write_byte/* TE_TRACER - see commo/const.h in HLSDK */
    
write_coord(vec1[0]);
    
write_coord(vec1[1]);
    
write_coord(vec1[2]);
    
write_coord(vec2[0]);
    
write_coord(vec2[1]);
    
write_coord(vec2[2]);
    
message_end();
}

draw(vec1[3],vec2[3]) {
    if(
tracers==1) {
        
tracer(vec1,vec2);
    } else {
        
lightning(vec1,vec2);
    }
}

new 
users_ammo[33];
new 
users_w[33]

public 
drawtracer(id)
{
    if(
tracers==0) {
        return 
PLUGIN_HANDLED;
    }
    new 
ammo read_data(3), weapon read_data(2); // I read it only once to save CPU time.
    
if(users_ammo[id]>ammo && ammo>=&& users_w[id]==weapon) {

        new 
vec1[3], vec2[3];
        if(
tracers == 2) {
            
get_user_origin(id,vec1);
            
vec1[2]+=8;
            
// For lightnings we do it a special way, 'cause lightnings from eye positon look shit
        
} else {
            
get_user_origin(id,vec1,1);
        }
        if(
is_cs==1) {
            
get_user_origin(id,vec2,4);
        } else {
            
get_user_origin(id,vec2,3);
        }
        if(
is_cs == && (weapon==CSW_M3 || weapon==CSW_XM1014)) { // Shotguns in CS
            
draw(vec1,vec2);

            
vec2[0]+=SHOTGUN_AIMING;
            
draw(vec1,vec2);
            
vec2[1]+=SHOTGUN_AIMING;
            
draw(vec1,vec2);
            
vec2[2]+=SHOTGUN_AIMING;
            
draw(vec1,vec2);
            
vec2[0]-=SHOTGUN_AIMING// Repeated substraction is faster then multiplication !
            
vec2[0]-=SHOTGUN_AIMING// Repeated substraction is faster then multiplication !
            
draw(vec1,vec2);
            
vec2[1]-=SHOTGUN_AIMING// Repeated substraction is faster then multiplication !
            
vec2[1]-=SHOTGUN_AIMING// Repeated substraction is faster then multiplication !
            
draw(vec1,vec2);
            
vec2[2]-=SHOTGUN_AIMING// Repeated substraction is faster then multiplication !
            
vec2[2]-=SHOTGUN_AIMING// Repeated substraction is faster then multiplication !
            
draw(vec1,vec2);
        } else {
            
draw(vec1,vec2);
        }
        
users_ammo[id]=ammo;
    } else {
        
users_w[id]=weapon;
        
users_ammo[id]=ammo;
    }
    return 
PLUGIN_HANDLED;
}


public 
checktracervars() {
    
tracers get_cvar_num("amx_tracers");
    
ln get_cvar_num("amx_tracers_ln");
}

public 
amx_settracers(id)
{
    new 
arg1[32];
    new 
nt;
    
read_argv(1,arg1,32);
    
nt str_to_num(arg1);
    if(
nt == 1) {
        
client_print(id,print_console,"[AMX] Advanced Tracers> Tracer mode set to 1, Normal Tracers.");
    } else if(
nt == 2) {
        
client_print(id,print_console,"[AMX] Advanced Tracers> Tracer mode set to 2, Lightning Tracers.");
    } else if(
nt==&& equal(arg1,"0")) {
        
client_print(id,print_console,"[AMX] Advanced Tracers> Tracer mode set to 0, No Tracers.");
    } else {
        
client_print(id,print_console,"[AMX] Advanced Tracers> Please type 0, 1 or 2!");
        return 
PLUGIN_HANDLED;
    }
    
tracers nt;
    
set_cvar_num("amx_tracers",tracers);
    return 
PLUGIN_HANDLED;
}

public 
amx_setamplitude(id)
{
    new 
arg1[32];
    new 
na;
    
read_argv(1,arg1,32);
    
na str_to_num(arg1);
    if(
na>=0) {
        
client_print(id,print_console,"[AMX] Advanced Tracers> Amplitude for Lightning Tracers set to %d.",na);
        
ln na;
        
set_cvar_num("amx_tracers_ln",ln);
    }
    return 
PLUGIN_HANDLED;
}

public 
plugin_precache()
{
    
light precache_model("sprites/lgtning.spr");
    return 
PLUGIN_CONTINUE;
}

public 
plugin_init()
{
    new 
modname[32];
    
register_plugin("Advanced Tracers","0.1","[email protected]");
    
register_event("CurWeapon","drawtracer","be","1=1"); //,"3>=0");
    
register_cvar("amx_tracers","1")
    
register_cvar("amx_tracers_ln","30");
    
register_concmd("amx_settracers","amx_settracers",ADMIN_LEVEL_A,"<0|1|2> Set tracer mode.");
    
register_concmd("amx_setamplitude","amx_setamplitude",ADMIN_LEVEL_A,"<noise> Noise for lightning tracers.");
    
set_task(5.0,"checktracervars",0,"",0,"b");
    
checktracervars();
    
get_modname(modname,32);
    if(
equal(modname,"cstrike")) is_cs 1;
    return 
PLUGIN_CONTINUE;

hi all.
think this plugin have 1 bug - when i shoot from weapon's in normal mode all right
but when i have unlimitted ammo (like extra weapons in zp with unl.ammo) tracers don't work... (when ammo for example always on 50 / 100 when you shooting)
somebody can fix it ?
__________________
GAARA54 is offline
Reply



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 01:57.


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