hey guys, going to post my entire script here. For some reason the character will turn, and aninamte, but when I try to go forward or backward, all I get is the animation and no movement. Everything i got is from Locoweeds tutorial. I know the code is a mess, and this is just trial error right now, as I am trying to learn how to script from the multiplayer perspective....however I can not seem to get to get the character to move.

please note that functions, and actions and stuff may not be in the proper order (they all work, but I have moved things around here recently to try and take care of other bugs I have ran into...I will get everything back in the proper place probably tomorrow (I have a backup copy with the functions, actions, and such in the proper order if you need that..can just post it if need be)..as I do not have time to before I post this...any help would be great!



// anything that you need to find QUICKLY (most needed areas) will be a box that looks like this:

/*************************
* *
* something in here *
* *
*************************/

not sure why it has all the star boxes screwed up ( in this post)...they all look like this in my script:

/****************
* ........................ *
* something in here *
* ........................ *
****************/

(without the periods)

// things that fit fit below the important categories are broke down using this:

//----------------------------------------------------------------------------

// anything that is important that is not in the star box can be found by looking through the sections that are seperated with
// the dotted line. (kind of like the submenu of the words in the star box.)

//I am doing this to make this code as easy as possible to find what you need to fix, easier to follow the logic
//of the script, and keep up with what is going on.






/************
* *
* Paths *
* *
************/

path ".\\wads";

path ".\\Sounds";

path ".\\Models";

path ".\\Entities";

path ".\\Bitmaps";


//---------------------------------------------------------------------------------------------------------------------------------










/***************
* *
* Defines *
* *
***************/

//------------------------------------------------------------------------------------------------------------------------------
//Boolean....instead of using 1 for true and 0 for false...we make it easier to read the script...tyoing false will equel 0 now.
define FALSE, 0;
define TRUE, 1;



//------------------------------------------------------------------------------------------------------------------------------
//Animation states
define ANIMATION_STATE_STAND, 0;
define ANIMATION_STATE_WALK, 1;
define ANIMATION_STATE_RUN, 2;
define ANIMATIONE_STATE_ATTACK, 3;




//------------------------------------------------------------------------------------------------------------------------------
//Animation speeds
define PLAYER_ANIM_WALK_SPEED, 6; // animation speed for "walk"
define PLAYER_ANIM_RUN_SPEED, 8; // " " run
define PLAYER_ANIM_BLEND_SPEED, 10; // " " blending the animation


//------------------------------------------------------------------------------------------------------------------------------

// Number of players aloud on the server at one time?
define MAX_CONNECTIONS, 4; // With the comercial version the max is 4.




//------------------------------------------------------------------------------------------------------------------------------

// Define PROFESSION Types below here ( whatever profesions you will have in your game....like a cop, or burgler, or carpentor)
// EXAMPLE define for a profession: define Pro_Carpenter, 1;
// second EXAMPLE: define Metal_Worker, 2;
// setup: define variable_name, identification_number;








//------------------------------------------------------------------------------------------------------------------------------

//below here add the defines for SKILL defienitions
// EXAMPLE: define armor_class, skill30; // armor class of the entity
// setup: define variable_name, skill#;

define player_number, skill1; // player number that this entity is owned by.
define profession, skill2; // entity's prefession.
define speed, skill3; // entity's run speed.
define health, skill4; // entity's health.
define max_health, skill5; // Maximum health of the entity.
define armor_class, skill6; // Armor class of the entity.
define power_pool, skill7; // entity's power.
define max_power, skill8; // Maximum power for the entity.
define class, skill9; // the class that the player chose
define force_x, skill10; // current forces for this entity
define force_y, skill11; // " "
define force_z , skill12; // " "
define current_anim_percent, skill13; //current animation percent
define blend_anim_percent, skill14; //blending animation percent
define animation_state, skill15; //animation state
define prev_anim_state, skill16;
define weapon, skill17; // weapon ID that this ent wields






//------------------------------------------------------------------------------------------------------------------------------
// in this section you should define any CLASSES that you may have
//EXAMPLE: define Templar, skill23;
// setup: define variable_name, skill#
//EXAMPLE 2: define Wizard, 3;
//setup: define cariable_name, value;


define cleric, 10;
define wizzard, 11;





//------------------------------------------------------------------------------------------------------------------------------
// Class speeds

define wizzard_speed, 11; // speed of a vizzard
define cleric_speed, 12; // speed of a cleric
define officer_speed, 13; // speed of an officer



//Class's max health

define wizzard_max_hp, 50;
define cleric_max_hp, 34;
define ooficer_max_hp, 63;


// Class's Armor class

define wizzard_ac, 7;
define cleric_ac, 5;
define officer_ac, 9;



//Movement defines
define PLAYER_SPEED_TURN, 6; // how fast a player rotates


// weapong types
define cleric_waund, 1; // clerics fighting stick
define wizzard_stick, 2; // wizzards fighting stick
define officer_bar, 3; // officers fighting stick













/*****************
* *
* Resources *
* Strings *
*****************/

//-------------------------------------------------------------------------------------------------------------------------------
// Place all STRINGS declerations below here...that do not have a submenu option below...usually levels and such

string fighting_chance_str = <fighting_chance.wmb>; // This will be our levalage!!







//-------------------------------------------------------------------------------------------------------------------------------
// Any MODELS that will be added to the game go in this section

string str_cbabe = <cbabe.mdl>; // this is the cbabe model

string str_wizzard_mdl = <blue_warlock.mdl>;

string str_warrior_mdl = <red_guard.mdl>;








//-------------------------------------------------------------------------------------------------------------------------------
// any DISPLAYED strings go in this section

string str_people_connected; // used to show the number of people currently connected.

string str_temp; // temp string ..um duh!

string str_player_num; // string to hold the player number

string str_number_of_players; // sting to hold the number of players








//-------------------------------------------------------------------------------------------------------------------------------
// any FONTS go in this area...yes Font is a resource lol

font arial_font = "arial", 1, 10; //standord font




/***************
* *
* Bitmaps *
* *
***************/
//------------------------------------------------------------------------------------------------------------------------------
//pannels
//choosing a class


bmap cleric_tga = <cleric.tga>;
bmap wizzard_tga = <wizzard.tga>;
bmap class_selection_tga = <class_selection.tga>;


//-------------------------------------------------------------------------------------------------------------------------------















/*****************
* *
* Varaibles *
* *
*****************/
//------------------------------------------------------------------------------------------------------------------------------





//------------------------------------------------------------------------------------------------------------------------------
// ENGINE variables go here

var fps_max = 65; //locking it down! no one is allowed to go over 65 frames per second..actually you can have any fps right now.

var fps_lock = ON; // no more freedom for the frames... muuhhaahahaa..no one has an advantage now..so there!








//------------------------------------------------------------------------------------------------------------------------------
// RESOLUTIONS and DISPLAY variables

var video_mode = 7; //screen size will be 800X600..can change this later or whatever..maybe make it to where the player chooses

var video_screen = 2; // Start settings for full screen (2 sets it to windowed mode.......1 sets it to full screen)

var mouse_mode = 2; // with 2 you can use the mouse, but it does not have an effect on forces. ( the force keyword))








//------------------------------------------------------------------------------------------------------------------------------
// GAME variables go in this section

var people_connected = 0; // how many people are connected to the server right now?

var number_of_players = 0; //how many players are actually in the game? ... both of these start with 0 when servers starts up.

var server_says_start = FALSE; // client holds creating entity until server says go.

var class_ID; // used in the main function to hold the players class ID.

var temp_loc[3];

var vecFrom[3];

var vecTo[3];

var class_not_set = TRUE;

var force[3]; // temp for "forces" in the player_move action





//------------------------------------------------------------------------------------------------------------------------------















/******************
* *
* Text stuff *
* *
******************/

//-----------------------------------------------------------------------------------------------------------------------------
// text to display the number of people connected


text txt_people_connected

{
pos_x = 0; //possition cordinates on the screen

pos_y = 65;

layer = 15; //what layer you want it in?

font arial_font; // Type of font to use

string str_people_connected; // what will be displayed....whatever the variable contains.

}





//------------------------------------------------------------------------------------------------------------------------------
// Text to display this particular players_number.




//--------------------------------------------------------------------------------------------------------------------------------
// Text to display the current number of people in the game

text txt_number_of_playerss // number pf plaers in the game
{

pos_x = 0; // again it is set in the function init_display()

pos_y = 0;

layer = 15;

font arial_font;

string str_number_of_players;

}





text number_for_player
{

pos_x = 0; // we set it in init_display() down below this point in the script

pos_y = 0;

layer = 15;

font arial_font;

string str_player_num;

}











/**************
* *
* Panels *
* *
**************/






// next is the two class pannels that we have so far

panel = cleric_class
{
bmap = cleric_tga;

layer = 21;

pos_x = 0;

pos_y = 0;

on_click = set_class_cleric;

flags = overlay, transparent, refresh;

}






panel = wizzard_class
{
bmap = wizzard_tga;

layer = 21;

pos_x = 0;

pos_y = 0;

on_click = set_class_wizzard;

flags = overlay, transparent, refresh;

}





//----------------------------------------------------------------------------------------------------------------------------
// class selection panel
panel selection_class
{

bmap = class_selection_tga;

layer = 20;

pos_x = 0;

pos_y = 0;

//on_click = set_class; // this is not used right now...but will be during a real game

flags = overlay, transparent, refresh;

}











//------------------------------------------------------------------------------------------------------------------------------





function animate()
{

proc_late(); // make sure force is set before we run the animation




while(my)
{

if (my.animation_state == ANIMATION_STATE_RUN)
{


my.current_anim_percent += PLAYER_ANIM_RUN_SPEED *time;


}

else
{


my.current_anim_percent += PLAYER_ANIM_WALK_SPEED * time;


}





if (my.current_anim_percent >100)
{


my.current_anim_percent -= 100;


}





//do animation of current animation state
if (my.animation_state == ANIMATION_STATE_WALK)
{



if (my.prev_anim_state != my.animation_state)
{


my.blend_anim_percent += PLAYER_ANIM_BLEND_SPEED *time;

my.blend_anim_percent = min (my.blend_anim_percent, 100);



ent_blend ("walk", 0, my.blend_anim_percent);

if (my.blend_anim_percent == 100)
{

my.current_anim_percent = 0;




ent_animate (me, "walk", my.current_anim_percent, ANM_CYCLE);

my.prev_anim_state = my.animation_state;

my.blend_anim_percent = 0;


}

}


else
{


ent_animate (me, "walk", my.current_anim_percent, ANM_CYCLE);


}
}


else
{

if (my.animation_state == ANIMATION _STATE_STAND)
{


if (my.prev_anim_state != my.animation_state)
{


my.blend_anim_percent += PLAYER_ANIM_BLEND_SPEED * time;

my.blend_anim_percent = min (my.blend_anim_percent, 100);



ent_blend ("stand", my.current_anim_percent, my.blend_anim_percent);

if (my.blend_anim_percent == 100)
{


my.current_anim_percent = 0;




ent_animate (me, "stand", my.current_anim_percent, ANM_CYCLE);

my.prev_anim_state = my.animation_state;

my.blend_anim_percent = 0;


}


}


else
{


ent_animate (me, "stand", my.current_anim_percent, ANM_CYCLE);


}


}



else
{

if (my.animation_state == ANIMATION_STATE_RUN)

{

if(my.prev_anim_state != my.animation_state)
{

my.blend_anim_percent += PLAYER_ANIM_BLEND_SPEED * time;

my.blend_anim_percent = min(my.blend_anim_percent,100);



ent_blend("run",my.current_anim_percent,my.blend_anim_percent);

if(my.blend_anim_percent == 100)
{

my.current_anim_percent=0;



ent_animate(me,"run",my.current_anim_percent,ANM_CYCLE );

my.prev_anim_state = my.animation_state;

my.blend_anim_percent = 0;

}



}



else
{

ent_animate( me, "run", my.current_anim_percent, ANM_CYCLE );

}


}




else // attack
{

if(my.prev_anim_state != my.animation_state)
{

my.blend_anim_percent += PLAYER_ANIM_BLEND_SPEED * time;

my.blend_anim_percent = min(my.blend_anim_percent,100);



ent_blend("attack",my.current_anim_percent,my.blend_anim_percent);



if (my.blend_anim_percent == 100)
{

my.current_anim_percent=0;



ent_animate(me,"attack",my.current_anim_percent,ANM_CYCLE );

my.prev_anim_state = my.animation_state;

my.blend_anim_percent = 0;

}

}




else
{

ent_animate( me, "attack", my.current_anim_percent, ANM_CYCLE );

}



}




}




}





wait(1);




}
}

















/***************
* *
* Actions *
* *
***************/

//-------------------------------------------------------------------------------------------------------------------------------
//move the player

action move_player
{


my.pan = random(360); // face a random direction


// We need the server to give the player his unique player_number...in the same order that the player logs in
number_of_players += 1; // the player has been created and is in the world...so we add one to the number of players
// on the server

send_var (number_of_players); //send the new number of players to all clients that are connected to the server

my.player_number = number_of_players; // This sets the player_number skill --> skill 1 --> see defines at top of script

send_skill (my.player_number, SEND_ALL); // send player_number skill to all clients



//this code helps solves issues with high latency between the server and the client.
sleep (.3);
ent_sendnow(my);
sleep (3); // solves high latency issues for right now.





//if not client...making sure that only the dedicated server reads throug this...not the client
if (connection != 2)
{


if(my.class == cleric)
{


my.speed = cleric_speed; // set players speed

my.health = cleric_max_hp; //set health

my.max_health = cleric_max_hp; // set max health

my.armor_class = cleric_ac; //set AC

//send health, max health, and armor class
send_skill(my.health, SEND_VEC + SEND_ALL);

my.weapon = cleric_waund; // set weaopon


}




if (my.class == wizzard)
{


my.speed = wizzard_speed; //set players speed

my.health = wizzard_max_hp; //set health

my.max_health = wizzard_max_hp; // set max health

my.armor_class = wizzard_ac; // set armor class


//send health, max health and armor class
send_skill (my.health, SEND _VEC + SEND_ALL);

my.weapon = wizzard_stick; //set weapons


}

//if (my.class == officer) // point here is that you can keep on going with them if you have more.


}




// animate if it is not the SERVER
if ((connection == 2) || (connection == 0) || (connection == 3))
{

animate(); // animate the entity


}


while(1)
{


//initiall set animation to WALK, this can be changed s neccesary as it goes through the code.
my.animation_state = ANIMATION_STATE_WALK;


//if moving forward or backward at walking rate, set animation to walk
if ((abs(my.force_x) >0) && (abs(my.force_x) <=1))
{


my.animation_state = ANIMATION_STATE_WALK;


}



else
{


//if moving forward or backward at run, set animation to run
if (abs(my.force_x) >1)
{


my.animation_state = ANIMATION_STATE_RUN;


}


else
{


//if entity is not turning, then all that is left is standing
if (my.force_y == 0)
{


my.animation_state = ANIMATION _STATE_STAND;


}




//get new pan
my.pan = my.force_y * PLAYER_SPEED_TURN * time + my.pan;



//use time and speed_forwards_factor
force.x = my.force_x * my.speed * time;

force.y = 0;

force.z = 0;



//move_mode = glide +ignore_passable;

//result = ent_move (force.x, nullvector);



// move the player
c_move (my, force.x , nullvector, ignore_me + ignore _sprites + glide + ignore_passable);





//A6.3 feature..and after

if (my.floor_dist > (my.max_z - my.min_z) / 2)
{


my.z -= my.floor_dist - (my.max_z - my.min_z) / 2;


}





}


}



wait(1);


}



}

//-------------------------------------------------------------------------------------------------------------------------------
//move camera..3rd person

function move_camera()
{


var distance;

var adj_cam_tilt;

var camera_next[3];



restart_camera:

//wait for player to be created

while (player == NULL)
{


wait(1);


}



while (player != NULL) // player exist?
{


camera_next.x = player.x - cos (player.pan) * 200;

camera_next.y = player.y - sin (player.pan) * 200;

camera_next.z = player.z + 10;



you = player;



//make sure camera has unobstructed view
trace_mode = ignore_sprites + ignore_you + ignore_passable +use_box;

distance = trace (player.x, camera_next.x);

if (distance)
{


distance -= 2;

camera.x = player.x - cos (player.pan) * 200;

camera.y = player.x - sin (player.pan) * 200;


}


else
{


camera.x = player.x - cos (player.pan) * 200;

camera.y = player.y - sin (player.pan) * 200;


}


camera.z = player.z +75;

camera.pan = player.pan;

if (distance == 0)
{


distance = 200;


}


//if players back is close to a wall...tilt camera

// away from player while still being able to see the play field


adj_cam_tilt = (100 / distance);


if (adj_cam_tilt > 1.75)
{


adj_cam_tilt = 1.75;


}



camera.tilt = -10;

camera.tilt += (camera.tilt * adj_cam_tilt);

adj_cam_tilt = 0;

camera.roll = 0;




wait (1);


}


goto (restart_camera);


}





//-------------------------------------------------------------------------------------------------------------------------------
//move_officer

action move_officer
{


//my.profession = whatever_profession_ you_make
move_player();



}



//--------------------------------------------------------------------------------------------------------------------------------
// move_cleric

action move_cleric
{

my.class = cleric;

move_player();


}



//--------------------------------------------------------------------------------------------------------------------------------
// move_wizzard

action move_wizzard
{

my.class = wizzard;

move_player();


}












//---------------------------------------------------------------------------------------------------------------------------------
// Function set class: Cleric

function set_class_cleric
{

class_ID = cleric;

class_not_set = FALSE;

}






//---------------------------------------------------------------------------------------------------------------------------------
// Function set class: Wizzard

function set_class_wizzard
{

class_ID = wizzard;

class_not_set = FALSE;

}







//---------------------------------------------------------------------------------------------------------------------------------
//Function to set up the class selection pannels, and move the people connected text to the right some

function init_display()
{

selection_class.pos_x = 144 ;

selection_class.pos_y = 200;

selection_class.alpha = 50;



cleric_class.pos_x = 144;

cleric_class.pos_y = 232;

cleric_class.alpha = 50;




wizzard_class.pos_x = 400;

wizzard_class.pos_y = 232;

wizzard_class.alpha = 50;



txt_people_connected.pos_x = 600;

txt_people_connected.pos_y = 32;




txt_number_of_playerss.pos_x = 600;

txt_number_of_playerss.pos_y = 48;



number_for_player.pos_x = 600;

number_for_player.pos_y = 62;



}






//------------------------------------------------------------------------------------------------------------------------------
//Input Scan() ... check the input from the player and let the server do it's work


function input_scan()
{

//only send changed skill values to the server...we need a way to store old values to check if they have changed
var force_x_old;

var force_y_old;

var force_z_old;





while(1)
{

//if player has been created, get input from him or her

if (player)
{

force_x_old = player.force_x; //store the old force values

force_y_old = player.force_y;





player.force_x = 0;

player.force_y = 0;





//<w> or else <curser up> moves the character forward

if ((key_w == 1) || (key_cuu == 1))
{

player.force_x = 1;


}



//if <a> or else <curser left>....... turn the player to the left

if ((key_a == 1) || (key_cul == 1))
{

player.force_y = 1;


}





//if <d> or else <curser right> .... turn the player to the left

if ((key_d == 1) || (key_cur == 1))
{

player.force_y = -1;


}





//if <s> or else <curser down> ......player moves back

if ((key_s == 1) || (key_cud == 1))
{

player.force_x = -1;


}


//if <shift> is pressed....player will runage! (run!)

if (key_shift == 1)
{

player.force_x = player.force_x * 1.5; // run speed is 1.5 times faster then walk


}





// The Code below uses 3DGS's force protocol

// get new force values (gruadually speed up force)

// uses more bandwidth until reaches min or max force

// but does work




//player.force_x = key_force.y; // get force x

//player.force_y = -key_force.x; // get force y

//player.force_z = 0; // force z always 0 for now



//if any forces have changed, then we need to send the new forces to the server to updte the client

if ((player.force_x != force_x_old) || (player.force_y != force_y_old) || (player.force_z != force_z_old))
{

//if we are a single player, host or server...we don't need to update anything
if (connection == 2) || (connection == 3)
{

send_skill (player.force_x, SEND_VEC); // send the force vector to the server


}


}


}


wait(1);

}


}








//---------------------------------------------------------------------------------------------------------------------------------
//switch the mouse mode so we can click panels and what not

function mouse_on()
{

mouse_mode = 2;

while (mouse_mode > 0)
{

mouse_pos.x = pointer.x;

mouse_pos.y = pointer.y;

wait(1);

}


mouse_map = null;

}





//turn the mouse back off when not needed
function mouse_off()
{

mouse_mode = 0;


}


//--------------------------------------------------------------------------------------------------------------------------------






/************
* *
* Main *
* *
************/

function main()
{



randomize(); //set random seed









//---------------------------------------------------------------------------------------------------------------------------
// if this is not a single player game we need to wait for the connection to be established.
ifdef server;

while(connection == 0)
{

wait(1);

}
endif;





ifdef client;

while(connection == 0)
{

wait (1);


}


endif;


//---------------------------------------------------------------------------------------------------------------------------
// time to load the level that we stored in a string above! WOOT it starts!
sleep (1);
level_load(varrahs_world_str); // load the level
sleep (1); // just making sure the level is actually loaded
camera.visible = on;




//---------------------------------------------------------------------------------------------------------------------------
// checking stuff in this area



// check to see if this is a client or not

if (connection == 2) // is this the client?
{
//beep();

while (server_says_start == FALSE)
{

wait(1);

}


}







// if we are the host, we need to count ourself as a player!

if (connection == 3)
{

people_connected = 1;

}


//------------------------------------------------------------------------------------------------------------------------------
// display the text that shows how many people are connected......show it to the user
// if this was a dedicated server, we would want it to skip all this part...no one is playing the server

if (connection != 1)
{








display_info(); // continuely display any information we want to show




init_display(); // Initialize the text posistions if neccesary



mouse_on(); //turn mouse on!






//Display class panel on the screen so the player can choose a class!
selection_class.visible = on;
wizzard_class.visible = on;
cleric_class.visible = on;





//if not in single player mode, display the players
if (connection)
{

txt_people_connected.visible = ON;

txt_number_of_playerss.visible = ON;

number_for_player.visible = ON;

}






//wait for a class to be selected by the player


while (class_not_set)
{

wait(1);

}








// now time to turn off the mouse..since they selected a class
mouse_off(); // turn off the mouse.





// also it is now time to make the pannels go away

selection_class.visible = off;
cleric_class.visible = off;
wizzard_class.visible = off;






create_player(); // create the player by calling this function...located bellow this place


move_camera(); // call simple 3rd person chase camera



input_scan(); // get the input from the user

}


}





/*****************
* *
* Functions *
* *
*****************/

//--------------------------------------------------------------------------------------------------------------------------------
// Function Server Called(): the server was called..maybe from a client?

function server_called()
{

//If a new player connected, incriment the people connected variable
// and tell the computer it is ok to continue

if ((event_type == event_join) && (people_connected < MAX_CONNECTIONS))

{
ifdef server;


server_says_start = TRUE; // let client know that it is ok to start up now

people_connected += 1; //another person connected


send_var(people_connected); // send number of people connected

send_var(server_says_start); // actually send it to the client now....send start message



endif;
}


// Someone just disconnected!!! how darn them!

if (event_type == event_leave)

{

ifdef server;

people_connected -= 1; //one less person connected to the server

number_of_players -= 1;
send_var(people_connected); // send the number of people connected

endif;
}


send_var_to (you, number_of_players);
}

on_server = server_called; // on server event, call server_called()








//---------------------------------------------------------------------------------------------------------------------------------
//DISPLAY INFO --> continuously displays game information

function display_info()

{

while(1)
{

str_cpy (str_people_connected, "People currently connected to the server: ");

str_for_num (str_temp,people_connected);

str_cat (str_people_connected, str_temp);



str_cpy (str_number_of_players, "number of players currently in the world: ");

str_for_num (str_temp, number_of_players);

str_cat (str_number_of_players, str_temp);



if (player != NULL) // make sure the player exists
{

str_cpy (str_player_num, "You are Player Number: ");

str_for_num (str_temp, player.player_number);

str_cat (str_player_num, str_temp);



}

wait(1);

}

}








//---------------------------------------------------------------------------------------------------------------------------------
// CREATE PLAYER ... crate a player entity and place it at a random location.

function create_player()

{

var position_found = FALSE;


while (position_found == FALSE)
{

//get a random start vector around center of level

vecFrom.x = -400 + random(800);

vecFrom.y = -400 + random(800);

vecFrom.z = 200;




vec_set(vecTo, vecFrom);
vecTo.z = -200;



trace_mode = ignore_sprites + ignore_passents + ignore_passable + ignore_models + use_box + scan_texture;
trace(vecFrom, vecTo);



//check for floor textures, if there is a floor, create entity

if ((str_stri (tex_name, "Grass_07")!= FALSE) || (str_stri (tex_name, "crator") != FALSE))
{

vec_set(temp_loc, vecTo);

temp_loc.z = target.z +35;



//create player's entity depending on his or her class
if (class_ID == wizzard)
{

player = ent_create (str_wizzard_mdl, temp_loc, move_wizzard);


}



if (class_ID == cleric)
{

player = ent_create (str_cbabe, temp_loc, move_cleric);
}








position_found = TRUE; //found the floor to create the player on!

}


}

}



again the animations work ( the character animates the walk), but he does not actually move...can't figure out if I am missing something, or if I have something out of place, or just have something completely wrong...I am new to multiplayer..thanks for any help you can send my way....all this is just practice...not the actuall game I am making...just trying to get the hang of of how c-script + multiplayer works...still do not understand the client / server fully..so any help in how they communicate would also be appreciated!


3DGS (6.4) Commercial