function move_player()
{
var save_pan = 0; //stores the entity.pan (needed to find out if the pan has changed)
VECTOR save_pos; //stores the entity.pos (needed to find out if the position has changed)
while(enet_ent_globpointer(my) == -1) {wait(1);} //wait until the entity gets a global pointer
if(enet_ent_creator(enet_ent_globpointer(my)) == enet_get_clientid())
{ //Every client controls his own player
control_player();
}
if(enet_get_connection() == SERVER_MODE || enet_get_connection() == CLIENT_SERVER_MODE)
{
phent_settype(my, PH_RIGID, PH_BOX);//physik entity definieren & kollision = sphere
phent_setmass(my, 75, PH_SPHERE);//masse definieren & rotation = sphere
phent_setdamping(my,100.0, 100.0);//Reibung definieren & drehungsdämpfung nach kollision
// phent_setgroup(player, 2);
while(1)
{
var forward_key = my.skill1&0x00000001; //get bit1
var backward_key = (my.skill1&0x00000002)>>1; //get bit2
var left_key = (my.skill1&0x00000004)>>2; //get bit3
var right_key = (my.skill1&0x00000008)>>3; //get bit4
var space_key = (my.skill1&0x000000016)>>4; //get bit5
phys_ctrl(forward_key,backward_key,left_key,right_key);
//sends the position if changed
if(save_pos.x != my.x || save_pos.y != my.y || save_pos.z != my.z) {enet_send_pos(enet_ent_globpointer(my),-1);vec_set(save_pos,my.x);}
//sends the angles if they changed
if(save_pan != my.pan) {enet_send_angle(enet_ent_globpointer(my),-1);save_pan = my.pan;}
wait(1);
}
}
}
function control_player()
{
if(enet_get_connection() == CLIENT_SERVER_MODE) proc_mode = PROC_LATE;
while(1)
{
vec_set(camera.x,my.x);
my.skill1 = 0;
my.skill1 |= key_pressed(key_for_str("f")); //forward key in bit0
my.skill1 |= key_pressed(key_for_str("v"))<<1; //backward key in bit1
my.skill1 |= key_pressed(key_for_str("c"))<<2; //left key in bit2
my.skill1 |= key_pressed(key_for_str("b"))<<3; //right key in bit3
my.skill1 |= key_pressed(key_for_str("Space"))<<4; //right key in bit4
if(my.skill1 != oldskill1 && enet_get_connection() != CLIENT_SERVER_MODE) enet_send_skill(enet_ent_globpointer(my),1,1,SERVER);
wait(1);
}
}