Don't mind the mess, just put stuff from older projects together so i can test the DLL:
Code:
include <GSTNet.wdl>;
string strTemp;
string strTemp2;
string strUserID;
var strUserNick[100];
var start_game = 0;
string strNick[20];
include <scr_chat.wdl>;
function fncCreateStrings()
{
var iTemp = 0;
while(iTemp < 100)
{
strUserNick[iTemp] = str_create("#200");
iTemp += 1;
}
}
function fncEnterName()
{
while(!key_enter)
{
draw_text("Please enter your Nickname: ", 100, 100, vector(255,255,255));
draw_text(strNick, 250, 100, vector(255,255,255));
wait(1);
}
}
function main()
{
level_load("gsnet.wmb");
wait(3);
fnc_show_chat();
fncCreateStrings();
fps_max = 60;
ifdef srv;
GSTNet_StartServer(80, 1);
while(GSTNet_Connection()==0)
{
draw_text("trying to connect...", 20, 20, vector(255,255,255));
wait(1);
}
chat_entry();
fncSortChat();
while(1)
{
if(key_e)
{
start_game = 1;
GSTNet_SendVar(0, "start_game");
}
str_cpy(strTemp, "Server connected!\nOnline Users: ");
str_for_num(strTemp2, GSTNet_ClientsConnected());
str_cat(strTemp, strTemp2);
draw_text(strTemp, 20, 20, vector(255,255,255));
wait(1);
}
endif;
ifndef srv;
fncEnterName();
while(!key_enter)
{
inkey(strNick);
wait(1);
}
wait(-1);
var iID;
chat_entry();
fncSortChat();
GSTNet_StartClient("132.176.66.141", 80, 1);
while(GSTNet_Connection()==0)
{
draw_text("trying to connect...", 20, 20, vector(255,255,255));
wait(1);
}
wait(-0.5);
iID = GSTNet_ClientId();
str_cpy(strTemp, "Nickname: ");
str_cat(strTemp, strNick);
wait(-0.5);
str_cpy(strUserNick[iID], strNick);
player = GSTNet_ent_create("warlock.mdl", nullvector, "actPlayer");
while(1)
{
draw_text(strUserNick[iID], 20, 20, vector(255,255,255));
wait(1);
}
endif;
}
var vWorld_Pos;
function fnc_mouse_pos()
{
var vVector_From;
var vVector_To;
while(1)
{
vVector_From.x = mouse_pos.x;
vVector_From.y = mouse_pos.y;
vVector_From.z = 5;
vVector_To.x = mouse_pos.x;
vVector_To.y = mouse_pos.y;
vVector_To.z = 40000;
vec_for_screen(vVector_From, camera);
vec_for_screen(vVector_To, camera);
c_trace(vVector_From, vVector_To,ignore_passable + scan_texture + ignore_models);
if(trace_hit != 0 && mouse_left)
{
vec_set(vWorld_Pos, target);
}
wait(1);
}
}
function fnc_mouse()
{
//mouse_map = bmp_mouse_normal;
mouse_range = 40000;
while(1)
{
mouse_mode = 2;
mouse_pos.x = pointer.x;
mouse_pos.y = pointer.y;
wait(1);
}
}
action actPlayer
{
wait(1);
GSTNet_TrackEntity(my, 1+2);
if(player == me)
{
chat_entry();
var vNext_Pos;
var vTemp;
var vMove_Me;
vMove_Me.x = 15;
vec_set(vNext_Pos, player.x);
fnc_mouse();
fnc_mouse_pos();
while (1)
{
if(mouse_left && vec_dist(player.x, vWorld_Pos) >= 50)
{
vec_set(vNext_Pos, vWorld_Pos);
}
if(vec_dist(player.x, vNext_Pos) >= 10)
{
vNext_Pos.z = player.z;
vec_set(vTemp, vNext_Pos);
vec_sub(vTemp, player.x);
vec_to_angle(player.pan, vTemp);
move_mode = ignore_me + ignore_passable + glide;
ent_move(vMove_Me, nullvector);
}
if(key_cuu)
{
player.z += time_step;
}
wait(1);
}
}
}