Q:
I use your split screen shooter from Aum 30. I was wondering how to
change the firing rate; the weapon should fire every 1.3
seconds.
A:
Click here to download the modified script.
Q: What
is the easiest method of creating a game like Virtua Cop? I want to use a
lightgun so very simply put I need
to
just be
able
to "mouse
click" on
an enemy to kill it.
A: Use something like this:
function enemy_dies()
{
beep;
// put the code that makes your enemies die here
// change its animation frames, add some points to player's score, and
so on
}
action my_enemy
{
my.enable_click = on;
my.event = enemy_dies;
}
Q:
I use your Star Wars text script and I was wondering
how can I load a different level after the text has passed the screen?
A:
Click here to download the modified
script.
Q:
I don't like it when all files are in a single folder
so I would want
something like this.
- scripts
- graphics
- models
I
don't want to use absolute paths, because the game can't find the scripts if
I
move the published game to a different folder. Can you help?
A: Use this example for relative paths:
path "..\\scripts";
path "..\\graphics";
path "..\\models";
Q:
Why does the engine think that my models are at a different place
than where I put them in Wed?
A: Make sure that the origin is set in
the center of the model. If this doesn't fix the problem remove their associated
actions, build and run the level that way; the code you are using might move
them to a wrong position.
Q:
How can I attach a fps
camera to an entity, say a car for example?
A:
Use this snippet:
starter
first_person_camera() // that's a 3rd person camera really
{
while (player == null) {wait (1);}
while (1)
{
camera.x = player.x + 5 * cos(player.pan); // place
the camera 5 quants in front
of the player's model
camera.y = player.y + 5 * sin(player.pan); // play with 5; keep the same value
for both "cos" and "sin" lines
camera.z = player.z + 10; // place the camera 10 quants above player's origin
(play with 10)
camera.pan = player.pan;
camera.tilt = player.tilt;
camera.roll = player.roll;
wait (1);
}
}
Q:
I am having some difficulty clipping my particles in my level; it
seems that no matter how I change my script the
particles are not clipping.
A:
Use the example below; press "U", "I", "O" and "P" and play with them until you
are happy with the result. Don't forget that clip_particles is multiplied by
1000 in my example.
text clip_txt
{
layer = 5;
pos_x = 10;
pos_y = 10;
font = _a4font;
string = "Clip range:\nParticle range:";
flags = visible;
}
panel clip_pan
{
layer = 5;
digits = 100, 10, 6, _a4font, 1, clip_range; // displays the "clip_range" value
digits = 100, 20, 6, _a4font, 1000, clip_particles; // displays
the "clip_particles" value
multiplied by 1000
flags = overlay, refresh, visible;
}
starter clip_them()
{
while (1)
{
if (key_u == on)
{
clip_range += 10 * time;
}
if (key_i == on)
{
clip_range -= 10 * time;
}
clip_range = min(max(clip_range, 1000), 500000);
// make sure that clip_range stays in this range: 1,000...500,000
if (key_o == on)
{
clip_particles += 0.01 * time;
}
if (key_p == on)
{
clip_particles -= 0.01 * time;
}
clip_particles = min(max(clip_particles, 0),
1); // make sure that clip_particles stays in this range: 0...1
wait (1);
}
}

Q:
How can I remove all the entities from a level, even if they don't have
an action attached to them?
A: Here's a brute-force method;
prepare to deal with some empty pointers ;)
function remove_entities
{
you = ent_next(null); // we retrieve the first entity
while (1)
{
if (you != null) {ent_remove(you);} // if we can find
an entity let's remove
it
wait (1); // we wait until the "you" pointer is valid again (if there
are more entities left)
you = ent_next(you); // we move on to the next entity
}
}
on_r
= remove_entities; // press the "R" key to remove all the entities
Q:
If my character starts the game facing one way how can I make it so she
only walks the way she is facing and can't turn?
A: Use this example:
action
she
{
while (1)
{
temp.x = 5 * time; // 5 sets the speed
temp.y = 0;
temp.z = 0;
move_mode = ignore_passable;
if (key_a == on) // press the "A" key
to move her
{
ent_move (temp, nullvector); //
move in the direction given by the pan angle
in Wed
ent_cycle("walk", my.skill1); // animate the model
my.skill1 += 5 * time; // animation speed
my.skill1 %= 100; // loop the animation
}
wait (1);
}
}