////////////////////////////////////////////////////////////////////////
// Multiplayer Test Project
////////////////////////////////////////////////////////////////////////
#include <acknex.h>
#include <default.c>
////////////////////////////////////////////////////////////////////////
FONT* font_arial = "Arial#20b";
////////////////////////////////////////////////////////////////////////
STRING* str_Message1 = "#30";
////////////////////////////////////////////////////////////////////////
BMAP* BMAP_MouseMap = "mouse_0.tga";
////////////////////////////////////////////////////////////////////////
VECTOR* vec_ServerMove = {x=0;y=0;z=0;}
////////////////////////////////////////////////////////////////////////
ENTITY* ent_Camera = 0;
////////////////////////////////////////////////////////////////////////
TEXT* t_DEBUG =
{
pos_x = 10;
pos_y = 10;
font = font_arial;
string = str_Message1;
flags = VISIBLE;
}
////////////////////////////////////////////////////////////////////////
function fEVENT_Cube()
{
switch(event_type)
{
case EVENT_CLICK:
{
printf("YES !!!!");
break;
}
}
}
////////////////////////////////////////////////////////////////////////
function fROOT_Cube()
{
my.event = fEVENT_Cube;
my.emask |= (ENABLE_CLICK);
}
////////////////////////////////////////////////////////////////////////
function fROOT_Camera()
{
if(ent_Camera != 0)
{
while(1)
{
camera.x = (ent_Camera.x - 400);
camera.y = ent_Camera.y;
camera.z = (ent_Camera.z + 100);
wait(1);
}
}
}
////////////////////////////////////////////////////////////////////////
function fROOT_Player()
{
while(1)
{
vec_ServerMove.y -= my.skill10;
vec_ServerMove.x += my.skill11;
vec_ServerMove.z += my.skill12;
c_move(my,vec_ServerMove,nullvector,IGNORE_ME);
vec_set(vec_ServerMove,nullvector);
ent_sendnow(my);
wait(1);
}
}
////////////////////////////////////////////////////////////////////////
function fROOT_CreatePlayer()
{
switch(connection)
{
case 2: // Client
{
my = ent_create("player_0.mdl",vector(0,0,150),fROOT_Player);
wait(1);
ent_Camera = my;
while(1)
{
my.skill10 = key_force.x * time_step * 5;
my.skill11 = key_force.y * time_step * 5;
my.skill12 = 0;
send_skill(my.skill10,SEND_VEC);
fROOT_Camera();
wait(1);
}
break;
}
default: // Server-Client/Error
{
my = ent_create("player_0.mdl",vector(0,0,150),fROOT_Player);
wait(1);
ent_Camera = my;
ent_create("cube_0.mdl",vector(100,100,50),fROOT_Cube);
wait(1);
while(1)
{
my.skill10 = key_force.x * time_step * 5;
my.skill11 = key_force.y * time_step * 5;
my.skill12 = 0;
fROOT_Camera();
wait(1);
}
break;
}
}
}
////////////////////////////////////////////////////////////////////////
function main()
{
fps_max = 60;
fps_lock = ON;
mouse_map = BMAP_MouseMap;
mouse_mode += 2;
mouse_range = 2000;
level_load ("level_0.wmb");
switch(connection)
{
case 2: // Client
{
str_cpy((t_DEBUG.pstring)[0],"Client");
break;
}
default: // Server-Client/Error
{
str_cpy((t_DEBUG.pstring)[0],"Server-Client/Error");
break;
}
}
fROOT_CreatePlayer();
while(1)
{
vec_set(mouse_pos,mouse_cursor);
wait(1);
}
}
////////////////////////////////////////////////////////////////////////
// E O F
////////////////////////////////////////////////////////////////////////