process My_Player();
private
int x_buffer; // coordenadas correctas del frame anterior..
int y_buffer; // coordenadas correctas del frame anterior..
byte last_key=0; // ultima tecla pulsada "de las teclas que se usan.."
byte anima_walk_up[11]=1,1,2,2,3,3,4,4,5,5,6,6;
byte anima_walk_side[11]=7,7,8,8,9,9,10,10,11,11,12,12;
byte anima_walk_down[11]=13,13,14,14,15,15,16,16,17,17,18,18;
byte anima_shot_up[11]=19,19,20,20,21,21,22,22,23,23,24,24;
byte anima_shot_side[11]=25,25,26,26,27,27,28,28,29,29,30,30;
byte anima_shot_down[11]=31,31,32,32,33,33,34,34,35,35,36,36;
byte anima_shot2_up[9]=37,37,38,38,39,39,40,40,41,41;
byte anima_shot2_side[9]=42,42,43,43,44,44,45,45,46,46;
byte anima_shot2_down[9]=47,47,48,48,49,49,50,50,51,51;
byte anima_steep=1;
int available_bomb = false;
byte net_graph_; // el gráfico actual de mi personaje.. para enviarlo por red..
byte net_flags_; // el valor de flags de mi personaje.. para enviarlo por red..
begin
visible = false;
ctype = c_scroll;
scroll[0].camera = id;
graph = new_map(10,10,5,5,rgb(10,10,10));
write_int(0,10,50,3,&x);
write_int(0,10,60,3,&y);
x = 460;
y = 840;
loop
x_buffer=x;
y_buffer=y;
z = 1000 - y;
if(key(_left)) // IR IZQUIERDA..
if(anima_steep==0)play_sound(sfx_pasos);end
x-=2;
anima_steep=(anima_steep+1) % 11;
draw_graphic(f_player,anima_walk_side[anima_steep],x-scroll[0].x0,y-scroll[0].y0,z,resolution,angle,100,100);
net_graph_ = anima_walk_side[anima_steep];
net_flags_ = 0;
last_key=1;
elseif(key(_right)) // IR DERECHA..
if(anima_steep==0)play_sound(sfx_pasos);end
//flags=1;
x+=2;
anima_steep=(anima_steep+1) % 11;
draw_graphic(f_player,anima_walk_side[anima_steep],x-scroll[0].x0,y-scroll[0].y0,z,resolution,angle,100,100,0,0,0,1,0);
net_graph_ = anima_walk_side[anima_steep];
net_flags_ = 1;
last_key=2;
elseif(key(_up)) // IR ARRIBA..
if(anima_steep==0)play_sound(sfx_pasos);end
y-=2;
anima_steep=(anima_steep+1) % 11;
draw_graphic(f_player,anima_walk_up[anima_steep],x-scroll[0].x0,y-scroll[0].y0,z,resolution,angle,100,100);
net_graph_ = anima_walk_up[anima_steep];
net_flags_ = 0;
last_key=3;
elseif(key(_down)) // IR ABAJO..
if(anima_steep==0)play_sound(sfx_pasos);end
y+=2;
anima_steep=(anima_steep+1) % 11;
draw_graphic(f_player,anima_walk_down[anima_steep],x-scroll[0].x0,y-scroll[0].y0,z,resolution,angle,100,100);
net_graph_ = anima_walk_down[anima_steep];
net_flags_ = 0;
last_key=4;
else // DEFAULT AS STAND..
anima_steep=0;
if(last_key==4)
draw_graphic(f_player,18,x-scroll[0].x0,y-scroll[0].y0,z,resolution,angle,100,100);
net_graph_ = 18;
net_flags_ = 0;
elseif(last_key==3)
draw_graphic(f_player,1,x-scroll[0].x0,y-scroll[0].y0,z,resolution,angle,100,100);
net_graph_ = 1;
net_flags_ = 0;
elseif(last_key==1)
draw_graphic(f_player,7,x-scroll[0].x0,y-scroll[0].y0,z,resolution,angle,100,100);
net_graph_ = 7;
net_flags_ = 0;
elseif(last_key==2)
draw_graphic(f_player,7,x-scroll[0].x0,y-scroll[0].y0,z,resolution,angle,100,100,0,0,0,1,0);
net_graph_ = 7;
net_flags_ = 1;
end
end
if(key(_alt)) // generar disparo tipo FLECHA..
if(!exists(type shot_flecha))
sound(sfx_pre_bow);
if(last_key==4)
for(anima_steep=0;anima_steep<11;anima_Steep++)
draw_text(0,"ATACK",4,x-scroll[0].x0,y-25-scroll[0].y0,-10,0,100,100,0,0,0,0,1);
draw_graphic(f_player,anima_shot_down[anima_steep],x-scroll[0].x0,y-scroll[0].y0,z,resolution,angle,100,100);
frame;
end
SHOT_FLECHA(x,y,"abajo");
end
if(last_key==3)
for(anima_steep=0;anima_steep<11;anima_Steep++)
draw_text(0,"ATACK",4,x-scroll[0].x0,y-25-scroll[0].y0,-10,0,100,100,0,0,0,0,1);
draw_graphic(f_player,anima_shot_up[anima_steep],x-scroll[0].x0,y-scroll[0].y0,z,resolution,angle,100,100);
frame;
end
SHOT_FLECHA(x,y,"arriba");
end
if(last_key==1)
for(anima_steep=0;anima_steep<11;anima_Steep++)
draw_text(0,"ATACK",4,x-scroll[0].x0,y-25-scroll[0].y0,-10,0,100,100,0,0,0,0,1);
draw_graphic(f_player,anima_shot_side[anima_steep],x-scroll[0].x0,y-scroll[0].y0,z,resolution,angle,100,100);
frame;
end
SHOT_FLECHA(x,y,"izquierda");
end
if(last_key==2)
for(anima_steep=0;anima_steep<11;anima_Steep++)
draw_text(0,"ATACK",4,x-scroll[0].x0,y-25-scroll[0].y0,-10,0,100,100,0,0,0,0,1);
draw_graphic(f_player,anima_shot_side[anima_steep],x-scroll[0].x0,y-scroll[0].y0,z,resolution,angle,100,100,0,0,0,1,0);
frame;
end
SHOT_FLECHA(x,y,"derecha");
end
end
end
if(key(_space)) // generar disparo tipo bomba..
if(available_bomb == true)
sound(sfx_pre_bomba);
if(last_key==4)
for(anima_steep=0;anima_steep<9;anima_Steep++)
draw_text(0,"ATACK",4,x-scroll[0].x0,y-25-scroll[0].y0,-10,0,100,100,0,0,0,0,1);
draw_graphic(f_player,anima_shot2_down[anima_steep],x-scroll[0].x0,y-scroll[0].y0,z,resolution,angle,100,100);
frame;
end
SHOT_bomba(x,y,"abajo");
end
if(last_key==3)
for(anima_steep=0;anima_steep<9;anima_Steep++)
draw_text(0,"ATACK",4,x-scroll[0].x0,y-25-scroll[0].y0,-10,0,100,100,0,0,0,0,1);
draw_graphic(f_player,anima_shot2_up[anima_steep],x-scroll[0].x0,y-scroll[0].y0,z,resolution,angle,100,100);
frame;
end
SHOT_bomba(x,y,"arriba");
end
if(last_key==1)
for(anima_steep=0;anima_steep<9;anima_Steep++)
draw_text(0,"ATACK",4,x-scroll[0].x0,y-25-scroll[0].y0,-10,0,100,100,0,0,0,0,1);
draw_graphic(f_player,anima_shot2_side[anima_steep],x-scroll[0].x0,y-scroll[0].y0,z,resolution,angle,100,100);
frame;
end
SHOT_bomba(x,y,"izquierda");
end
if(last_key==2)
for(anima_steep=0;anima_steep<9;anima_Steep++)
draw_text(0,"ATACK",4,x-scroll[0].x0,y-25-scroll[0].y0,-10,0,100,100,0,0,0,0,1);
draw_graphic(f_player,anima_shot2_side[anima_steep],x-scroll[0].x0,y-scroll[0].y0,z,resolution,angle,100,100,0,0,0,1,0);
frame;
end
SHOT_bomba(x,y,"derecha");
end
end
end
if(last_key==3 && map_get_pixel(f_zone,3,x,y-2) <> 0) // si bajando toco dureza..
x=x_buffer;
y=y_buffer;
end
if(last_key==4 && map_get_pixel(f_zone,3,x,y+4) <> 0) // si subiendo toco dureza..
x=x_buffer;
y=y_buffer;
end
if(last_key==1 && map_get_pixel(f_zone,3,x-2,y) <> 0) // si a la izquierda toco dureza..
x=x_buffer;
y=y_buffer;
end
if(last_key==2 && map_get_pixel(f_zone,3,x+2,y) <> 0) // si a la derecha toco dureza..
x=x_buffer;
y=y_buffer;
end
draw_text(0,"Player 1",4,x-scroll[0].x0,y-25-scroll[0].y0,-10,0,100,100,0,0,0,0,1);
//--------------------------UPDATE NET POSITION---------------------------------------
players[net.player_id].x_ = x; // mi coordenada X..
players[net.player_id].y_ = y; // mi coordenada Y..
players[net.player_id].graph_ = net_graph_; // mi gráfico..
players[net.player_id].flags_ = net_flags_; // mi flags..
if(exists(id_my_shot)) // Si existe mi disparo..
players[net.player_id].x_shot_ = id_my_shot.x; // envio su posición..
players[net.player_id].y_shot_ = id_my_shot.y; // envio su posición..
players[net.player_id].angle_shot_ = id_my_shot.angle; // envio su angle..
players[net.player_id].graph_shot_ = id_my_shot.graph; // envio su gráfico..
else // si no existe mi disparo..
players[net.player_id].x_shot_ = -100; // mando a las replicas de mi disparo en los otros clientes fuera del scroll..
players[net.player_id].y_shot_ = -100; // mando a las replicas de mi disparo en los otros clientes fuera del scroll..
end
//------------------------------------------------------------------------------------
frame;
end
end