|
Re: Selecting of character: HELP!!
[Re: Theil]
#352836
01/06/11 11:20
01/06/11 11:20
|
Joined: Sep 2010
Posts: 97
carla_mariz
OP
Junior Member
|
OP
Junior Member
Joined: Sep 2010
Posts: 97
|
Here's the code: 
function start_game()
{
me = NULL;
level_load (level_wmb);
wait (3);
if (player_model == 1)
{
player = ent_create (cbabe_mdl, vector(100, 50, 80), player_moves);
}
if (player_model == 2)
{
player = ent_create (cbabe1_mdl, vector(100, 50, 80), player_moves);
}
if (player_model == 3)
{
player = ent_create (guard_mdl, vector(100, 50, 80), player_moves);
}
if (player_model == 4)
{
player = ent_create (hero_mdl, vector(100, 50, 80), player_moves);
}
}
function player_moves()
{
my.skin = player_skin;
while (1)
{
my.skill1 = 5 * (key_w - key_s) * time_step; // move with w / s
my.skill2 = 0;
my.skill3 = 0;
my.pan += 3 * (key_a - key_d) * time_step; // rotate with a / d
move_mode = UNTOUCHABLE;
// c_move(my.skill1, nullvector);
if (key_w + key_s > 0) // if the player is walking
{
//ent_cycle("walk", my.skill46); // play "walk" frames animation
my.skill46 += 5 * time_step; // "walk" animation speed
my.skill46 %= 100; // loop animation
}
camera.x = my.x;
camera.y = my.y;
camera.z = my.z + 200;
camera.tilt = -90;
wait (1);
}
}
it now loads the model whenever i click enter.  but if i put another code into it, by replacing the function player_moves() with function pacman() the action from another script, it would show an error somewhere from the function ghost. HERE is the part of the another code:
function ghost_hit()
{
players_lives -= 1 ;
my.state = 2;
ent_remove(my);
wait(1);
ent_create (my, vector(20,20,40), pacman1);
}
action pacman()
{
player = my;
my.event = ghost_hit;
my.emask |= ENABLE_IMPACT;
wait(1);
vec_set(my.min_x,vector(-20,-20,-40));
vec_set(my.max_x,vector(20,20,40));
players_lives = 3;
while (players_lives > 0)
{
handle_movement();
c_move(my,dist,absdist,IGNORE_PASSABLE);
camera_follow();
wait(1);
}
}
action ghost()
{
VECTOR zdist;
VECTOR zabsdist;
VECTOR temp;
VECTOR p;
VECTOR p2;
var hand_palm = 346;
var hand_top = 338;
var alert_snd = 1;
var pain_snd = 0;
var attack_snd = 0;
my.eflags |= FAT | NARROW;
wait(1);
vec_set(my.min_x,vector(-100,-100,-50))
vec_set(my.max_x,vector(200,100,200));
players_lives = 3;
my.state = 0;
while(players_lives > 0)
{
if(my.state == 0)
{
ent_animate(my,"walk",my.skill60,ANM_CYCLE);
path_set(my, "orgpath");
my.skill60 += 50 * time_step;
vec_set(zdist.x,nullvector);
vec_set(zabsdist.x,nullvector);
if(vec_dist(my.x,player.x) < 550 && players_lives > 0)
{
my.state = 1;
}
}
if(my.state == 1)
{
if(alert_snd == 1)
{
snd_play(z_alert,70,0);
alert_snd = 0;
}
vec_set(temp.x,player.x);
vec_sub(temp.x,my.x);
vec_to_angle(my.pan,temp);
my.tilt = 0;
ent_animate(my,"walk",my.skill60,ANM_CYCLE);
my.skill60 += 50 * time_step;
zdist.x = 5 * time_step;
zdist.y = 0;
zdist.z = 0;
vec_set(zabsdist.x,nullvector);
if(vec_dist(my.x,player.x) > 360)
{
my.state = 0;
}
if(vec_dist(my.x,player.x) < 50)
{
my.state = 2;
}
if(players_lives <= 0)
{
my.state = 0;
}
}
if(my.state == 2)
{
while(my.skill40 < 100)
{
vec_for_vertex(p,my,hand_palm);
vec_for_vertex(p2,my,hand_top);
if(c_trace(p,p2,IGNORE_ME | IGNORE_PASSABLE) > 0)
{
attack_snd = 1;
if(attack_snd == 1)
{
snd_play(z_attack,70,0);
attack_snd = 0;
}
if(you == player)
{
pain_snd = 1;
if(pain_snd == 1)
{
snd_play(p_pain,70,0);
pain_snd = 0;
}
}
}
ent_animate(my,"walk",my.skill40,NULL);
my.skill40 += 50 * time_step;
wait (1);
}
vec_set(zdist.x,nullvector);
vec_set(zabsdist.x,nullvector);
if(vec_dist(my.x,player.x) > 70)
{
my.state = 1;
}
if(players_lives <= 0)
{
my.state = 0;
}
}
c_move(my,zdist,zabsdist,IGNORE_PASSABLE);
wait(1);
}
set(my,PASSABLE);
snd_play(z_death,70,0);
my.skill60 = 0;
while(my.skill60 < 100)
{
ent_animate(my,"walk",my.skill60,NULL);
my.skill60 += 5 * time_step;
wait(1);
}
}
and regarding with that code, i just modified it from another source.  i want to make the player decrease a life if he has been attacked by the ghost. and make him disappear and be placed on his starting position. is there a way to make it possible? thanks 
|
|
|
|