Sorry for all the post, but alot going on with getting things back to working order. The major problem I was encountering is now solved. So I will be updating all of the old chapter's and their sources today. I will let you know when they are all working with the A6.30 public beta.
EDIT;
Ok all chapters' source code updated and uploaded.
Here are the final changes I went back and changed in the old chapters' source code to get everything running with A6.30 public beta where applicable to that chapter (Chapter 5 and on I believe).
1) in declarations under Variables I added:
Code:
var dplay_smooth = 0; // no movement prediction
With the A6.3 public beta release, the program began to overshoot movement alot on clients even on LAN. I need to look into my code and see if that is where the problem is. It could also have something to do with the beta., but this will make it run better for now.
2) In main() function I changed this:
Code:
//--------------------------------------------------------------------
// MAIN
//--------------------------------------------------------------------
function main()
{
randomize(); // set random seed
level_load(world_str); // load level
// if not a single player game, wait for connection
ifdef server;
while(connection== 0) {wait(1);} // wait until level loaded and connection set
endif;
ifdef client;
while(connection== 0) {wait(1);} // wait until level loaded and connection set
endif;
to
Code:
//--------------------------------------------------------------------
// MAIN
//--------------------------------------------------------------------
function main()
{
randomize(); // set random seed
// if not a single player game, wait for connection
ifdef server;
while(connection== 0) {wait(1);} // wait until level loaded and connection set
endif;
ifdef client;
while(connection== 0) {wait(1);} // wait until level loaded and connection set
endif;
level_load(world_str); // load level, must be after connection is set
The level_load() command must now be used after connection is set or it is possible for send_var() not to work properly under certain conditions.
Slacer actually figured this out. Thanks brother!
3) In action move I changed this:
Code:
force_turn.pan = my.force_y * speed_sidewards_factor * TIME;;
force_turn.tilt = 0;
force_turn.roll = 0;
ROTATE(my,force_turn,NULLVECTOR); // rotate the player
To:
Code:
// get new pan
my.pan = my.force_y * speed_sidewards_factor * TIME + my.pan;
Rotate() is now truely an obsolete 3DGS command.
You WILL find that major updates, such as A6.30 is going to be, especially a big multiplayer update, that you may have to go through growing pains like this. I doubt after A6.30 you will have to worry about this, atleast with multiplayer for a while, so the tutorial should run for quite some time and hopefully someone will update it if it goes obsolete.
Everyone has permission to upgrade or change this code and make the improvements you made available to others.
END_EDIT;
Loco