Most asked questions

Top  Previous  Next

Q: I haven't figured out how to make a script file for my models when I use the A5 export from milkshape. Can you help?

A: Let's examine the content of a typical qc script file:

 

// header: not used entries (just let them be)

$final 0

$pad 0.0

$eye 0.0 0.0 0.0

$flags 0

 

// skin size and name

$skinwidth 512

$skinheight 256

$skin soldier.pcx

 

// animation frames

$sequence stand 1 5

$sequence walk 6 31

$sequence run 32 61

 

It starts with the header (ignore that part) and then goes on with the width, height of the skin (in pixels) and the skin name. This model has 3 animations: stand, walk and run and you can see their corresponding frame numbers; add more sequences if you need them. Copy and paste the yellow lines above into a text file created by notepad, and then rename it to mymodel.qc (just an example). Make sure to give the same name to the exported model (mymodel.mdl in my example). The exported model could have a weird looking skin, but you can load it again using Med's skin editor and everything will work fine.

 

Q: I need a script which makes an entity invisible and visible every few seconds. If you shoot the entity and it is visible the player will get some points. Can you please help me?

A: Here's the snippet that does what you want:

 

var my_score = 0;

 

function you_hit_me()

{

  my_score += 10;

}

 

action my_entity

{

  my.enable_impact = on; // sensitive to impact with other entitites (any weapon that fires rockets or bullets)

  my.event = you_hit_me;

  while (1)

  {

     my.invisible = on;

     my.passable = on;

     sleep (3); // invisible for 3 seconds

     my.invisible = off;

     my.passable = off;

     sleep (3); // visible for 3 seconds

  }

}

 

panel score_pan

{

  layer = 10;

  pos_x = 10;

  pos_y = 10;

  digits = 7, 15, 3, _a4font, 1, my_score;

  flags = overlay, refresh, visible;

}

 

Q: I need a simple level changing script when I move over an entity and then I want to play a movie file for a cutscene. Can you help me?

A: Use the script below:

 

string level2_wmb = <level2.wmb>;

 

action level_changer

{

  while (vec_dist (my.x, player.x) > 100) {wait (1);} // wait until the player has come close enough

  my = null; // keep the function running even after level_load

  level_load (level2_wmb);

  wait (3); // wait until the level is loaded

  media_play ("cutscene.avi", null, 100); // now play the movie

}

 

 

Q: I wish to create a game involving combat where 2 people fight each other using swords. It would be neat to be able to show sparks flying when swords meet. Is it possible with the physics engine to get the position of the collision (or some other smarter technique) so I can see which parts of the models collided?

A: The easiest method is to use separate models for the swords. Set "my.enable_impact = on;" for them and then check if they have collided or not by testing if you.skill35 = certain_value or not (set skill35 = certain_value only for the swords). Visit Acknex Unlimited to get a script that allows you to attach weapons to characters.