Hi Guys, i have some problems with the vec_for_vertex.
I used the code from Aum77, and modified it for my uses.
Im using A6 Comm edition without lite c.
Problem Nr 1:
If i create the bullet/rocket entity, it is not createt on the vertex 208 correctly, its created some meters to the left of the entity. Especial when it moves. Im not able to solve this problem by myself.
Problem Nr 2:
When the entity is not moved, the rocket/bullet is created correctly, but it looks like ist created inside the collision hull, so it does remove itselves instantly. Looks like the rocket/bullet does not ignore the creator entity.
Hallo Leute. Ich hab ein paar probleme mit dem vec_for_vertex befehl.
Ich habe den code vom Aum77 genommen, und ihn für meine zwecke modifiziert.
Ich habe A6 Commercial ohne Lite-c.
Problem Nr1 :
Die rocket/bullet ent wird generiert, allerdings nicht am vertex 208 sondern ein ganzes stück neben meiner entity. Speziell wenn die entity bewegt wird.
Problem Nr 2:
Wenn die entitiy nicht bewegt wird, wird die Rocket/bullet zwar richtig generiert, allerdings sieht es so aus, als würde sie innerhalb der Kollisionsabfrage der erzeugenden Entity erstellt, und löst sich nahezu sofort wieder auf wenn sie von innen auf die Kollisionsabfrage trift. Sieht so aus als würde sie die erzeugende entity NICHT ignorieren.
Ich poste mal den entsprechenden code
function remove_bullets() // this function runs when the bullet collides with something
{
wait (1); // wait a frame to be sure (don't trigger engine warnings)
ent_remove (my); // and then remove the bullet
}
function move_bullets()
{
var bullet_speed[3];
my.enable_impact = on;
my.enable_entity = on;
my.enable_block = on;
my.event = remove_bullets;
my.pan = bullet_pan;
bullet_speed.x = 50 * time_step;
bullet_speed.y = 0; // the bullet doesn't move sideways
bullet_speed.z = 0; // or up / down on the z axis
your = bullet_creator;
while (my)
{
c_move (my, bullet_speed, nullvector, IGNORE_PASSABLE | IGNORE_YOU);
ent_sendnow(my);
wait (1);
}
}
///////////////////////////////////////////
if (connection == 3)
{
my = ent_create (str_jeepmdl2, vector (100, 80, 0), move_players);
my.skill5 = -4; // Skill5 == driver-Skill
my.skill3 = 10; // Maximum Speed
var bullet_pos[3];
while (1)
{
if (key_w == on) && (my.skill1 < my.skill3)
{
my.skill1 +=1 * time_step;
}
if (key_s == on) && ((my.skill1) > ((my.skill3 / 2) * -1))
{
my.skill1 -=1 * time_step;
}
if (key_a - key_d == 0)
{
my.skill2 = 0 * time_step;
}
if (key_a - key_d != 0) && (my.skill1 < 0)
{
my.skill2 = ((key_d - key_a)*(12 - my.skill5)) * time_step;
}
if (my.skill1 > 0) && (key_a - key_d != 0)
{
my.skill2 = ((key_a - key_d)*(12 - my.skill5)) * time_step;
}
if (my.skill1 == 0) && (key_a - key_d != 0)
{
my.skill2 = 0;
}
if (key_space == on)
{
my.skill1 = 0;
}
if (server_fired)
{
vec_for_vertex (bullet_pos,my,208);
vec_rotate (bullet_pos.x, my.pan);
bullet_pan = my.pan;
bullet_creator = my;
ent_create(str_SRMRocket,vector(bullet_pos.x,bullet_pos.y,bullet_pos.z), move_bullets);
}