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?"