Most asked questions

Top  Previous  Next

Q: I need a simple action that does the following thing: when the "W" key is pushed, the entity should cycle through its "wave" movement once.

A: Here's your function:

 

action your_player

{

   ...........

   while (1)

   {

       ......................

       if (key_w == 1)

       {

           while (key_w == 1) {wait (1);}

           my.skill40 = 0;

           while (my.skill40 < 100)

           {

               ent_cycle("wave", my.skill40);

               my.skill40 += 3 * time; // 3 = animation speed

               wait (1);

           }

       }

       wait (1);

   }

}

 

Q: I have an animated texture on a block and it is really slow.... does anybody have any idea how to speed it up some?

A: Decrease the number of frames for your texture or place an animated sprite over the block; you can control its animation speed this way:

 

function animated_sprite()

{

    my.passable = on;

    while (my.frame < 10)

    {

         my.frame += 1 * time;

         wait (1);

    }

}

 

Q: Can you tell me what is the function and in what file is the function that is activated by right click?

A: Sure. Check function mouse_toggle() in menu.wdl.

 

Q: I have added an entity to my level and it is named lampe_mdl_020. How can I get the values of its skills using C-script?

A: I am attaching an example; please note that you can only read the skills, you can't change their values:

 

entity* my_model;

function test_lamp()

{

    my_model = ptr_for_name("lampe_mdl_020");

    if (my_model.skill1 == 1) {beep; beep;} // beep twice if skill1 is set to 1 in Wed

}

 

Q: Once you set an entity as something, can you clear it, so that character no longer equals you?

entity* character;

character = you;

A: Sure. Use

 

character = null;

 

and character will be reset.

 

Q: Is there a way to have a sound follow an entity around as it moves?

A: Use short sounds with ent_playsound and ent_playloop.

 

Q: How can I create vars for entitys, like my._stupidhat?

A: These aren't vars, they are other names for skills. Use something like this:

 

define _stupidhat skill1;

 

and you have got yourself a funny name for skill1.

 

Q: When I use the inkey command to accept user input, how can I position it?

A: First of all you have to create a string:

 

string getvalue_str;

 

Now define a text that uses the string:

 

text my_txt

{

    layer = 20;

    pos_x = 27;

    pos_y = 28;

    font = arial_font;

    string = getvalue_str;

}

 

When you use these lines in your code:

 

my_txt.visible = on;

inkey getvalue_str;

 

the cursor will appear at the position given by pos_x and pos_y.

 

Q: I am using ent_move for my player but anything that is set to passable will act just like a solid. What can I do?

A: Place this line before your ent_move line and everything will work ok:

 

move_mode = ignore_passable;

 

Q: I want to make a little triangle above the enemy so you can see if he is mad or not.

A: This piece of code will display the triangle if the enemy is mad (skill8 = 1).

 

string triangle_pcx = <triangle.pcx>;

 

function am_i_mad();

 

action my_model

{

    ent_create (triangle_pcx, my.pos, am_i_mad);

    while (1)

    {

         // your code here

         wait (1);

    }

}

 

function am_i_mad()

{

    my.passable = on;

    my.flare = on;

    while (1)

    {

         if (you != null)

         {

              vec_set (temp, you.pos);

              temp.z += 65; // above the head

              vec_set (my.pos, temp);

              if (you.flag8 == 1)

              {

                   my.invisible = off;

              }

              else

              {

                   my.invisible = on;

              }

         }

         wait (1);

    }

}