Witam,
Nigdzie nie widziałem tematu o tak zwanych "tracers" lub "beams" do customowych broni np w Zombie Modzie.
Chodzi mi o te lasery ,które nazywane w przypadku goldenak'a są "złotymi kulami" i kod takich złotych kuli wygląda tak:
public make_tracer(id)
{
if (get_pcvar_num(cvar_goldbullets))
{
new clip,ammo
new wpnid = get_user_weapon(id,clip,ammo)
new pteam[16]
get_user_team(id, pteam, 15)
if ((bullets[id] > clip) && (wpnid == CSW_AK47) && g_HasAk[id])
{
new vec1[3], vec2[3]
get_user_origin(id, vec1, 1) // origin; your camera point.
get_user_origin(id, vec2, 4) // termina; where your bullet goes (4 is cs-only)
//BEAMENTPOINTS
message_begin( MSG_BROADCAST,SVC_TEMPENTITY)
write_byte (0) //TE_BEAMENTPOINTS 0
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_short( m_spriteTexture )
write_byte(1) // framestart
write_byte(5) // framerate
write_byte(2) // life
write_byte(10) // width
write_byte(0) // noise
write_byte( 255 ) // r, g, b
write_byte( 215 ) // r, g, b
write_byte( 0 ) // r, g, b
write_byte(200) // brightness
write_byte(150) // speed
message_end()
}
bullets[id] = clip
}
}
A w grze wygląda tak:
No nie wygląda to dobrze lecz na alliedmods znaleźć można lepszy kod takiego tracer'a ,który wygląda tak:
make_laser_beam(id, 8, 255, 255, 0);
make_laser_beam(id, Size, R, G, B)
{
static End[3];
get_user_origin(id, End, 3);
message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
write_byte (TE_BEAMENTPOINT)
write_short( id |0x1000 )
write_coord(End[0])
write_coord(End[1])
write_coord(End[2])
write_short(jakis_sprite)
write_byte(1)
write_byte(5)
write_byte(2)
write_byte(Size)
write_byte(0)
write_byte(R)
write_byte(G)
write_byte(B)
write_byte(200)
write_byte(150)
message_end()
}
A w grze wygląda tak:
No i jest duża różnica między tam tym kodem a tym i tu przychodzę z pytaniem "Co tak znacząco zmienia to skąd kule będą leciały?"


Dodatki SourceMod












