AlliedModders

AlliedModders (https://forums.alliedmods.net/index.php)
-   Scripting Help (https://forums.alliedmods.net/forumdisplay.php?f=11)
-   -   Bullets to skull (https://forums.alliedmods.net/showthread.php?t=204917)

h3llzOr 01-04-2013 17:13

Bullets to skull
 
hi all,
i have two questions...
how to do this amazing effect, so how to transform bullets to skull with green trail ?

[IMG]http://**************/f/692/skullbullets.png/[/IMG][IMG]http://www.**************/f/692/skullbullets.png[/IMG][IMG]http://**************/photo/my-images/692/skullbullets.png/[/IMG]Picture :
http://**************/f/692/skullbullets.png/

and how i can find this model of skull, can someone give me ?

ANTICHRISTUS 01-05-2013 09:27

Re: Bullets to skull
 
  • try to search trail only in tiltes.
  • if that screenshot is from your pc, then search it in your models directory. or just give me a skeleton model to extract the skull from it.

h3llzOr 01-05-2013 09:44

Re: Bullets to skull
 
i have search in models directory and i didn't find the model... but i have steam and don't appear all models...

bLacK-bLooD 01-05-2013 10:16

Re: Bullets to skull
 
Antichristus, here your search advices have no worth. I saw this request and i searched all over the forum and i found nothing.

Most likely that's a plugin which modifies the bullet model to a new one(skull in this situation) and adds a colored trail on the path of the fire.

I am interested in this too.

ONEMDX 01-05-2013 10:18

Re: Bullets to skull
 
im intrested too ... someone can help us ? apreciate

ANTICHRISTUS 01-05-2013 10:48

Re: Bullets to skull
 
Quote:

Originally Posted by h3llzOr (Post 1867498)
i have search in models directory and i didn't find the model...

if that screenshot is from your pc, then the model must be there !
try to search among all the models (*.mdl).

Quote:

but i have steam and don't appear all models...
only the original default ressources are hidden in the .gcf files, which can be opened with a software like GCFScape.

Quote:

Originally Posted by bLacK-bLooD (Post 1867513)
Most likely that's a plugin which modifies the bullet model to a new one(skull in this situation) and adds a colored trail on the path of the fire.

I can't imagine it, the bullet dosen't have a model in cs (except the cartridges), and its entity is running too fast, so how to use a model without to slow it ?!

Backstabnoob 01-05-2013 11:17

Re: Bullets to skull
 
It has to be slowed down, I'm almost certain there's no delay in between the weapon shot and bullet impact. Sorry if I'm wrong.

Menethil 01-05-2013 11:47

Re: Bullets to skull
 
Paintball mod uses balls instead of bullets, it can be simply done.

h3llzOr 01-05-2013 11:57

Re: Bullets to skull
 
1 Attachment(s)
so i have searched and this is all i find
look at public paint_fire( id )
PHP Code:

#include <amxmodx>
#include <fakemeta>
#include <hamsandwich>

#define PLUGIN "Paintball Gun"
#define VERSION "3.4"
#define AUTHOR "WhooKid"

#define MAX_PAINTBALLS    200
#define TASK_PB_RESET    1000
#define TASK_RELOAD    2000

new g_paintballs[MAX_PAINTBALLS], g_pbstatus[MAX_PAINTBALLS], g_pbcountFloat:lastshot[33], Float:nextattack[33], freezetime;
new 
pbgunpbusppbglockcolorshotsvelocspeedblifesoundbglowdamgefriendlyfiretgunctgunbeamspr;

static const 
g_shot_anim[4] = {0395};
static const 
g_pbgun_models[11][] = {"models/v_pbgun.mdl""models/v_pbgun1.mdl""models/v_pbgun2.mdl""models/v_pbgun3.mdl""models/v_pbgun4.mdl""models/v_pbgun5.mdl""models/v_pbgun6.mdl""models/v_pbgun7.mdl""models/v_pbgun8.mdl""models/v_pbgun9.mdl""models/v_pbgun10.mdl"};

public 
plugin_init()
{
    
register_plugin(PLUGINVERSIONAUTHOR);
    
register_cvar("paintballgun"VERSIONFCVAR_SERVER|FCVAR_UNLOGGED);
    
register_clcmd("say /ent""ent_info"ADMIN_SLAY);
    
pbgun register_cvar("amx_pbgun""1");
    
pbusp register_cvar("amx_pbusp""1");
    
pbglock register_cvar("amx_pbglock""1");

    if (
get_pcvar_num(pbgun) || get_pcvar_num(pbusp) || get_pcvar_num(pbglock))
    {
        
register_event("CurWeapon""ev_curweapon""be");
        
register_logevent("ev_roundstart"2"0=World triggered""1=Round_Start");
        if (
get_cvar_num("mp_freezetime") > 0)
            
register_event("HLTV""ev_freezetime""a""1=0""2=0");

        
register_forward(FM_Touch"fw_touch");
        
register_forward(FM_SetModel"fw_setmodel");
        
register_forward(FM_PlayerPreThink"fw_playerprethink"1);
        
register_forward(FM_UpdateClientData"fw_updateclientdata"1);

        
color register_cvar("pbgun_color""2");
        
shots register_cvar("pbgun_shots""100");
        
veloc register_cvar("pbgun_velocity""2000");
        
speed register_cvar("pbgun_speed""0.08");
        
blife register_cvar("pbgun_life""15");
        
sound register_cvar("pbgun_sound""1");
        
bglow register_cvar("pbgun_glow""a");
        
damge register_cvar("pbgun_damage""100");
        
friendlyfire get_cvar_pointer("mp_friendlyfire");

        new 
amax_ents_allow global_get(glb_maxEntities) - 5;
        for (
1<= get_pcvar_num(shots); a++)
            if (
MAX_PAINTBALLS)
                if (
engfunc(EngFunc_NumberOfEntities) < max_ents_allow)
                {
                    
g_paintballs[a] = engfunc(EngFunc_CreateNamedEntityengfunc(EngFunc_AllocString"info_target"));
                    if (
pev_valid(g_paintballs[a]))
                    {
                        
set_pev(g_paintballs[a], pev_effectspev(g_paintballs[a], pev_effects) | EF_NODRAW);
                        
g_pbcount++;
                    }
                }
        if (
g_pbcount 1)
            
set_fail_state("[AMXX] Failed to load Paintball Gun (unable to create ents)");

        
server_print("*** %s v%s by %s Enabled ***"PLUGINVERSIONAUTHOR);
    }
}

public 
plugin_precache()
{
    
register_cvar("amx_pbgun""1");
    
register_cvar("amx_pbusp""1");
    
register_cvar("amx_pbglock""1");
    
register_cvar("pbgun_tgun""3");
    
register_cvar("pbgun_ctgun""7");
    
tgun get_cvar_num("pbgun_tgun");
    
ctgun get_cvar_num("pbgun_ctgun");
    if (
get_cvar_num("amx_pbgun")) {
        
precache_model(g_pbgun_models[tgun]);
        
precache_model(g_pbgun_models[ctgun]);
        
precache_model((ctgun) ? "models/p_pbgun1.mdl" "models/p_pbgun.mdl");
        
precache_model("models/w_pbgun.mdl");
    }
    if (
get_cvar_num("amx_pbusp")) {
        
precache_model("models/v_pbusp.mdl");
        
precache_model("models/p_pbusp.mdl");
    }
    if (
get_cvar_num("amx_pbglock")) {
        
precache_model("models/v_pbglock.mdl");
        
precache_model("models/p_pbglock.mdl");
    }
    if (
get_cvar_num("amx_pbgun") || get_cvar_num("amx_pbusp") || get_cvar_num("amx_pbglock")) {
        
precache_sound("misc/pb1.wav");
        
precache_sound("misc/pb2.wav");
        
precache_sound("misc/pb3.wav");
        
precache_sound("misc/pb4.wav");
        
precache_sound("misc/pbg.wav");
        
precache_model("models/w_paintball.mdl");
        
precache_model("sprites/paintball.spr");
    }
    
beamspr precache_model("sprites/laserbeam.spr");
}

public 
ent_info(id)
    
client_print(idprint_chat"[AMXX] [Ent Info (Current/Max)] Paintballs: (%d/%d)   Entities: (%d/%d)"g_pbcountget_pcvar_num(shots), engfunc(EngFunc_NumberOfEntities), global_get(glb_maxEntities));

public 
ev_curweapon(id)
{
    new 
model[25];
    
pev(idpev_viewmodel2model24);
    if (
equali(model"models/v_mp5.mdl") && get_pcvar_num(pbgun))
    {
        
set_pev(idpev_viewmodel2, (get_user_team(id) == 1) ? g_pbgun_models[tgun] : g_pbgun_models[ctgun]);
        
set_pev(idpev_weaponmodel2, (ctgun) ? "models/p_pbgun1.mdl" "models/p_pbgun.mdl");
    }
    else if (
equali(model"models/v_usp.mdl") && get_pcvar_num(pbusp))
    {
        
set_pev(idpev_viewmodel2"models/v_pbusp.mdl");
        
set_pev(idpev_weaponmodel2"models/p_pbusp.mdl");
    }
    else if (
equali(model"models/v_glock18.mdl") && get_pcvar_num(pbglock))
    {
        
set_pev(idpev_viewmodel2"models/v_pbglock.mdl");
        
set_pev(idpev_weaponmodel2"models/p_pbglock.mdl");
    }
}

public 
fw_setmodel(entmodel[]) 
{
     if (
equali(model"models/w_mp5.mdl")) 
        if (
get_pcvar_num(pbgun))
        {
            
engfunc(EngFunc_SetModelent"models/w_pbgun.mdl");
            return 
FMRES_SUPERCEDE;
        }
    return 
FMRES_IGNORED;
}

public 
fw_updateclientdata(idswcd_handle)
{
    if (
user_has_pbgun(id) && cd_handle)
    {
        
set_cd(cd_handleCD_ID1);
        
get_cd(cd_handleCD_flNextAttacknextattack[id]);
        
//set_cd(cd_handle, CD_flNextAttack, 10.0);
        
return FMRES_HANDLED;
    }
    return 
FMRES_IGNORED;
}

public 
fw_playerprethink(id)
{
    new 
my_pbgun user_has_pbgun(id);
    if (
my_pbgun)
    {
        new 
buttons pev(idpev_button);
        if (
buttons IN_ATTACK)
        {
            new 
ammonull get_user_weapon(idammonull);
            if (
ammo)
            {
                
set_pev(idpev_buttonbuttons & ~IN_ATTACK);
                new 
Float:gametime get_gametime(), Float:g_speed;
                if (
my_pbgun == 1)
                    
g_speed get_pcvar_float(speed);
                else
                    
g_speed = (my_pbgun == 2) ? get_pcvar_float(speed) * 2.0 get_pcvar_float(speed) * 3.0;
                if (
gametime-lastshot[id] > g_speed  && nextattack[id] < 0.0 && !freezetime)
                {
                    if (
paint_fire(id))
                    {
                        
lastshot[id] = gametime;
                        
set_user_clip(idammo 1);
                        
set_pev(idpev_punchangleFloat:{-0.50.00.0});
                        
message_begin(MSG_ONE_UNRELIABLESVC_WEAPONANIM_id);
                        
write_byte(g_shot_anim[my_pbgun]);
                        
write_byte(0);
                        
message_end();
                        if (
get_pcvar_num(sound))
                            
emit_sound(idCHAN_AUTO"misc/pbg.wav"1.0ATTN_NORM0PITCH_NORM);
                    }
                }
            }
        }
    }
    return 
FMRES_IGNORED;
}

public 
paint_fire(id)
{
    new 
aent;
    while (
a++ < g_pbcount && !ent)
        if (
g_pbstatus[a] == 0)
            
ent g_pbstatus[a] = g_paintballs[a];
    if (!
ent)
        while (
a-- > && !ent)
            if (
g_pbstatus[a] == 2)
                
ent g_pbstatus[a] = g_paintballs[a];

    if (
pev_valid(ent) && is_user_alive(id))
    {
        new 
Float:vangles[3], Float:nvelocity[3], Float:voriginf[3], vorigin[3], clr;
        
set_pev(entpev_classname"pbBullet");
        
set_pev(entpev_ownerid);
        
engfunc(EngFunc_SetModelent"models/w_paintball.mdl");
        
engfunc(EngFunc_SetSizeentFloat:{-1.0, -1.0, -1.0}, Float:{1.01.01.0});

        switch (
get_pcvar_num(color))
        {
            case 
2clr = (get_user_team(id) == 1) ? 1;
            case 
3clr = (get_user_team(id) == 1) ? 3;
            case 
4clr = (get_user_team(id) == 1) ? 5;
            default: 
clr random_num(06);
        }
        
set_pev(entpev_skinclr);
        
        
get_user_origin(idvorigin1);
        
IVecFVec(voriginvoriginf);
        
engfunc(EngFunc_SetOriginentvoriginf);

        
vangles[0] = random_float(-180.0180.0);
        
vangles[1] = random_float(-180.0180.0);
        
set_pev(entpev_anglesvangles);

        
pev(idpev_v_anglevangles);
        
set_pev(entpev_v_anglevangles);
        
pev(idpev_view_ofsvangles);
        
set_pev(entpev_view_ofsvangles);

        
set_pev(entpev_solid2);
        
set_pev(entpev_movetype5);

        
velocity_by_aim(idget_pcvar_num(veloc), nvelocity);
        
set_pev(entpev_velocitynvelocity);
        
set_pev(entpev_effectspev(entpev_effects) & ~EF_NODRAW);

        
set_task(0.1"paint_glow"ent);
        
set_task(15.0 "paint_reset"ent+TASK_PB_RESET);
    }

    return 
ent;
}

public 
fw_touch(bulletent)
{
    new class[
20];
    
pev(bulletpev_classname, class, 19);
    if (!
equali(class, "pbBullet"))
        return 
FMRES_IGNORED;

    new 
Float:origin[3], class2[20], owner pev(bulletpev_owner), is_ent_alive is_user_alive(ent);
    
pev(entpev_classnameclass219);
    
pev(bulletpev_originorigin);

    if (
is_ent_alive)
    {
        if (
owner == ent || pev(entpev_takedamage) == DAMAGE_NO)
            return 
FMRES_IGNORED;
        if (
get_user_team(owner) == get_user_team(ent))
            if (!
get_pcvar_num(friendlyfire))
                return 
FMRES_IGNORED;

        
ExecuteHam(Ham_TakeDamageentownerownerfloat(get_pcvar_num(damge)), 4098);
    }

    if (!
equali(class, class2))
    {    
        
set_pev(bulletpev_velocityFloat:{0.00.00.0});
        
set_pev(bulletpev_classname"pbPaint");
        
set_pev(bulletpev_solid0);
        
set_pev(bulletpev_movetype0);
        
engfunc(EngFunc_SetModelbullet"sprites/paintball.spr");

        new 
afindpb 0;
        while (
a++ < g_pbcount && !findpb)
            if (
g_paintballs[a] == bullet)
                
findpb g_pbstatus[a] = 2;

        
remove_task(bullet);
        
remove_task(bullet+TASK_PB_RESET);

        if (
get_pcvar_num(sound))
        {
            static 
wav[20];
            
formatex(wav20is_ent_alive "player/pl_pain%d.wav" "misc/pb%d.wav"is_ent_alive random_num(4,7) : random_num(1,4));
            
emit_sound(bulletCHAN_AUTOwav1.0ATTN_NORM0PITCH_NORM);
        }

        new 
bool:valid_surface = (is_ent_alive || containi(class2"door") != -1) ? false true;
        if (
pev(entpev_health) && !is_ent_alive)
        {
            
ExecuteHam(Ham_TakeDamageentownerownerfloat(pev(entpev_health)), 0);
            
valid_surface false;
        }
        if (
valid_surface)
        {
            
paint_splat(bullet);
            
set_task(float(get_pcvar_num(blife)), "paint_reset"bullet+TASK_PB_RESET);
        }
        else
            
paint_reset(bullet+TASK_PB_RESET);

        return 
FMRES_HANDLED
    }

    return 
FMRES_IGNORED;
}

public 
paint_splat(ent)
{
    new 
Float:origin[3], Float:norigin[3], Float:viewofs[3], Float:angles[3], Float:normal[3], Float:aiming[3];
    
pev(entpev_originorigin);
    
pev(entpev_view_ofsviewofs);
    
pev(entpev_v_angleangles);

    
norigin[0] = origin[0] + viewofs[0];
    
norigin[1] = origin[1] + viewofs[1];
    
norigin[2] = origin[2] + viewofs[2];
    
aiming[0] = norigin[0] + floatcos(angles[1], degrees) * 1000.0;
    
aiming[1] = norigin[1] + floatsin(angles[1], degrees) * 1000.0;
    
aiming[2] = norigin[2] + floatsin(-angles[0], degrees) * 1000.0;

    
engfunc(EngFunc_TraceLinenoriginaiming0ent0);
    
get_tr2(0TR_vecPlaneNormalnormal);

    
vector_to_angle(normalangles);
    
angles[1] += 180.0;
    if (
angles[1] >= 360.0angles[1] -= 360.0;
    
set_pev(entpev_anglesangles);
    
set_pev(entpev_v_angleangles);

    
origin[0] += (normal[0] * random_float(0.32.7));
    
origin[1] += (normal[1] * random_float(0.32.7));
    
origin[2] += (normal[2] * random_float(0.32.7));
    
engfunc(EngFunc_SetOriginentorigin);
    
set_pev(entpev_framefloat(random_num( (pev(entpev_skin) * 18), (pev(entpev_skin) * 18) + 17 ) ));
    if (
pev(entpev_renderfx) != kRenderFxNone)
        
set_rendering(ent);
}

public 
paint_glow(ent)
{
    if (
pev_valid(ent))
    {
        static 
pbglow[5], clr[3];
        
get_pcvar_string(bglowpbglow4);
        switch (
get_pcvar_num(color))
        {
            case 
2clr = (get_user_team(pev(entpev_owner))==1) ? {25500} : {00255};
            default: 
clr = {255255255};
        }
        if (
read_flags(pbglow) & (<< 0))
            
set_rendering(entkRenderFxGlowShellclr[0], clr[1], clr[2], kRenderNormal255);
        if (
read_flags(pbglow) & (<< 1))
        {
            
message_begin(MSG_BROADCASTSVC_TEMPENTITY);
            
write_byte(TE_BEAMFOLLOW);
            
write_short(ent);
            
write_short(beamspr);
            
write_byte(4);
            
write_byte(2);
            
write_byte(clr[0]);
            
write_byte(clr[1]);
            
write_byte(clr[2]);
            
write_byte(255);
            
message_end();
        }
    }
}

public 
paint_reset(ent)
{
    
remove_task(ent);
    
ent -= TASK_PB_RESET;
    new 
afindpb 1;
    while (
a++ <= g_pbcount && findpb)
        if (
g_paintballs[a] == ent)
            
findpb g_pbstatus[a] = 0;

    
set_pev(entpev_effectspev(entpev_effects) | EF_NODRAW);
    
engfunc(EngFunc_SetSizeentFloat:{0.00.00.0}, Float:{0.00.00.0});
    
set_pev(entpev_velocityFloat:{0.00.00.0});
    
engfunc(EngFunc_SetOriginentFloat:{-2000.0, -2000.0, -2000.0});
    if (
pev(entpev_renderfx) != kRenderFxNone)
        
set_rendering(ent);
}

public 
ev_roundstart()
{
    for (new 
1<= g_pbcounta++)
        if (
g_pbstatus[a] != 0)
            
paint_reset(g_paintballs[a]+TASK_PB_RESET);
    if (
freezetime)
        
freezetime 0;
}

public 
ev_freezetime()
    
freezetime 1;

stock user_has_pbgun(id)
{
    if (
is_user_alive(id))
    {
        new 
model[25];
        
pev(idpev_viewmodel2model24);
        if (
containi(model"models/v_pbgun") != -1)
            return 
1;
        else if (
equali(model"models/v_pbusp.mdl"))
            return 
2;
        else if (
equali(model"models/v_pbglock.mdl"))
            return 
3;
    }
    return 
0;
}

stock set_user_clip(idammo)
{
    new 
weaponname[32], weaponid = -1weapon get_user_weapon(id__);
    
get_weaponname(weaponweaponname31);
    while ((
weaponid engfunc(EngFunc_FindEntityByStringweaponid"classname"weaponname)) != 0)
        if (
pev(weaponidpev_owner) == id) {
            
set_pdata_int(weaponid51ammo4);
            return 
weaponid;
        }
    return 
0;
}

// teame06's function
stock set_rendering(indexfx=kRenderFxNoner=0g=0b=0render=kRenderNormalamount=16)
{
    
set_pev(indexpev_renderfxfx);
    new 
Float:RenderColor[3];
    
RenderColor[0] = float(r);
    
RenderColor[1] = float(g);
    
RenderColor[2] = float(b);
    
set_pev(indexpev_rendercolorRenderColor);
    
set_pev(indexpev_rendermoderender);
    
set_pev(indexpev_renderamtfloat(amount));


and the model no one know ? and trail


I have search more and in half-life.gcf i find the model... now only want i need is how to do an trail ?

AngeIII 01-05-2013 12:39

Re: Bullets to skull
 
write_byte(g_shot_anim[my_pbgun]);
...

new Float:vangles[3], Float:nvelocity[3], Float:voriginf[3], vorigin[3], clr;
set_pev(ent, pev_classname, "pbBullet");
set_pev(ent, pev_owner, id);
engfunc(EngFunc_SetModel, ent, "models/w_paintball.mdl");
engfunc(EngFunc_SetSize, ent, Float:{-1.0, -1.0, -1.0}, Float:{1.0, 1.0, 1.0});
...



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

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