1 registered members (7th_zorro),
1,390
guests, and 2
spiders. |
Key:
Admin,
Global Mod,
Mod
|
|
|
Re: c_trace and shooting projectile help
[Re: immolat3]
#168160
11/21/07 18:11
11/21/07 18:11
|
Joined: Nov 2007
Posts: 73
immolat3
OP
Junior Member
|
OP
Junior Member
Joined: Nov 2007
Posts: 73
|
Code:
var shootEnergy = 1; var shootDmg = 0.1; sound laserPew = <laserPew.wav>; sound laserEmpty = <laserEmpty.wav>; sound laserNoHit = <laserNoHit.wav>; var bulletSpeed = 50;
action bulletFly { // Set the bullet positions and angles correctly to be fired. my.pan = camera.pan; my.roll = camera.roll; my.tilt = camera.tilt; my.x = plBiped01_entity.x; my.y = plBiped01_entity.y; my.z = plBiped01_entity.z; // Start the ticker. var ticker = 0; while(me) { ticker = ticker + 1; my.passable = on; c_move(me, vector(bulletSpeed,0,0), vector(0,0,0), ignore_me); my.z = my.z + 5; if (ticker == 50) // Length of time in pseudo-ticks that bullet stays "alive." { ent_remove(me); } wait(1); } }
// Fire Gun Function function PewPew() { var theTarget; vec_set(theTarget.x, vector(10000, 0, 0)); // shoots 10000 quants vec_rotate(theTarget.x, camera.pan); // shoots in the direction of the player (cameras pan, b/c 3rd person) c_trace(my.x, theTarget.x, ignore_me + scan_texture | ignore_passable | use_aabb );
if(str_cmpi(tex_name, "TESTBOSS.MDL") == 1 && getEnergy() >= shootEnergy) { doDamage(shootDmg); subtractEnergy(shootEnergy); snd_play(laserPew, 100, 0); ent_createlocal("bullet.mdl", plBiped01_entity.x, bulletFly); } if(getEnergy() < shootEnergy) { snd_play(laserEmpty, 100, 0); subtractEnergy(0); } else { snd_play(laserNoHit, 100, 0); subtractEnergy(shootEnergy); ent_createlocal("bullet.mdl", plBiped01_entity.x, bulletFly); } snd_stop(laserPew); snd_stop(laserEmpty); snd_stop(laserNoHit); } Thanks so much for your help. The above code works perfectly ;P
|
|
|
Re: c_trace and shooting projectile help
[Re: immolat3]
#168161
11/21/07 18:19
11/21/07 18:19
|
Joined: Oct 2004
Posts: 4,134 Netherlands
Joozey
Expert
|
Expert
Joined: Oct 2004
Posts: 4,134
Netherlands
|
Code:
result = c_move(me, vector(bulletSpeed,0,0), vector(0,0,0), ignore_me); ... if (result > 1000 || result < 0) //or traveled over 1000 quants, or blocked { ent_remove(me); }
Click and join the 3dgs irc community! Room: #3dgs
|
|
|
Re: c_trace and shooting projectile help
[Re: Joozey]
#168164
11/22/07 06:46
11/22/07 06:46
|
Joined: Nov 2007
Posts: 73
immolat3
OP
Junior Member
|
OP
Junior Member
Joined: Nov 2007
Posts: 73
|
Code:
action bossShootRand { my.pan = random(360); my.roll = random(360); my.tilt = 90 - random(165);
// Start the ticker. var ticker = 0; while(me) { var theTarget; vec_set(theTarget.x, vector(100,0,0)); ticker = ticker + 1; my.passable = off; c_move(me, vector(30,0,0), vector(0,0,0), use_aabb + glide); if (you == player) { remDocHealth(10); } my.z = my.z + 5; if (ticker == 50) // Length of time in pseudo-ticks that bullet stays "alive." { ent_remove(me); } wait(1); } } not working either, the bullets definite hit the player model because they bounce off, which is fine, but they dont want to do damage.
|
|
|
|