Gamestudio Links
Zorro Links
Newest Posts
Executing Trades on Next Bar Open
by Zheka. 06/20/24 14:26
Lapsa's very own thread
by rki. 06/19/24 11:27
A simple game ...
by VoroneTZ. 06/18/24 10:50
Face player all the time ...
by bbn1982. 06/18/24 10:25
Zorro Beta 2.61: PyTorch
by jcl. 06/10/24 14:42
New FXCM FIX Plugin
by flink. 06/04/24 07:30
AUM Magazine
Latest Screens
The Bible Game
A psychological thriller game
SHADOW (2014)
DEAD TASTE
Who's Online Now
0 registered members (), 1,227 guests, and 2 spiders.
Key: Admin, Global Mod, Mod
Newest Members
Mino, squik, AemStones, LucasJoshua, Baklazhan
19061 Registered Users
Previous Thread
Next Thread
Print Thread
Rate Thread
Georges AUM 77 MP-Tut #243092
12/27/08 21:30
12/27/08 21:30
Joined: Mar 2007
Posts: 112
MikeS Offline OP
Member
MikeS  Offline OP
Member

Joined: Mar 2007
Posts: 112
Well, its me again.

I used Georges AUM 77 code, and modified it for my uses.

Well, nearly all of my code works fine,

BUT

the fired bullets did not impact or react in any way with another entity.

They fly through the server and the client ent.

On walls, they remove themselves, i dont know why not on ents.

Maybe u guys are able to help me out.

I had to setminmax after bullet creation, cause if i did not, they did not ignore the creating ent.

heres the code:

Code:

function reload_timer()
  {
   if (var_reload_timer_check == 1)
    { 
    return; 
    }
    var_reload_timer_check = 1;             			
   while(1)                    				
		{									
                       		
			var_reload_timer -= time_step/16;

         
         if (var_reload_timer <= 0)
         {
         	var_reload_timer_check = 0;
         	return;
			}
			wait(1);		              										;								
      }                 			
}

function move_players()

{ 

       while (1) 

       {
					c_move(my,vector(my.skill1 * time_step,0,0),nullvector,IGNORE_SPRITES|GLIDE);
					c_rotate(my,vector((my.skill2 * time_step),0,0),USE_AABB);

               ent_sendnow(my);

               wait (1);

       }

}

 function players_fired()

{

       if (connection == 2)

       {
   				if (var_reload_timer <= 0)
						{
							client_fired = 1;
							var_reload_timer = my.skill10;
						}
						
 					wait (1);
 					
               client_fired = 0;
               
					reload_timer();


       }

       if (connection == 3)

       {

               server_fired = 1;

               wait (1);
               
               reload_timer();

               server_fired = 0;

       }

}
function remove_bullets() // this function runs when the bullet collides with something

{

       wait (1); // wait a frame to be sure (don't trigger engine warnings)

       ent_remove (my); // and then remove the bullet

}


function move_bullets()

{

       var bullet_speed[3];

       

	    my.event = remove_bullets;

       my.pan = bullet_pan;

       bullet_speed.x = 10 * time_step;

       bullet_speed.y = 0; // the bullet doesn't move sideways

       bullet_speed.z = 0; // or up / down on the z axis
 		 
       while (my)

       {
       			
       			my.ENABLE_IMPACT = ON;
       			my.ENABLE_ENTITY = ON;
       			my.ENABLE_BLOCK = ON; 
					wait(1);
					c_setminmax(me); 
               c_move (my, bullet_speed, nullvector, IGNORE_PASSABLE | IGNORE_YOU);

               ent_sendnow(my); 

               wait (1);

       }                

}





function main() 

{

       fps_max = 60;



      camera.z = 5000;

      camera.tilt = -90;

	     ifdef client;

		    while(connection== 0) {wait(1);} // wait until level loaded and connection set

			endif;
	
    level_load(world_str); // load level

    sleep(.5); // make sure level is loadedif (!connection)

//		on_mouse_left = players_fired;

        display_info();
       if (connection == 2)

       {
					
               my = ent_create (str_jeepmdl_mg, vector (0,20,0), move_players);
               wait (-0.5);
              
              	my.enable_impact = on;
               client_ent = handle(my);
               send_var (client_ent);
               my.skill10 = 2;
					my.skill5 = 5; // Skill5 == Driverskill
					my.skill3 = 10; // Maximum Speed
					on_mouse_left = players_fired;//	display_info();
               while (1) 
					{
						
							on_mouse_left = players_fired;
						
						   var_reload_timer_display = int(var_reload_timer * 60);
						   
							if (key_w == on) && (my.skill1 < my.skill3)
							{
								my.skill1 +=1 * time_step;
							}
               		if (key_s == on) && ((my.skill1) > ((my.skill3 / 2) * -1))
							{
								my.skill1 -=1 * time_step;
							}
							if (key_a - key_d == 0)   
							{
								my.skill2 = 0 * time_step;
							}
							if (key_a - key_d != 0) && (my.skill1 < 0)  
							{
								my.skill2 = ((key_d - key_a)*(12 - my.skill5)) * time_step;
							}	
							if (my.skill1 > 0) && (key_a - key_d != 0)
							{
								my.skill2 = ((key_a - key_d)*(12 - my.skill5)) * time_step;
							}
							if (my.skill1 == 0) && (key_a - key_d != 0)
							{
								my.skill2 = 0;
							}		
         				if (key_space == on)
         				{
         					my.skill1 = 0;
         				}
         
          

                     send_skill (my.skill1, SEND_VEC);
                     
                     if (client_fired == 1) && (var_reload_timer <= 0)
                     {
                     	var_reload_timer = my.skill10;
                     }
                     	send_var (client_fired);// send client_fired to the server
//                     	beep;
//                     	var_reload_timer = my.skill10;
//							}
							 

                       wait (1);

               }

       }

       if (connection == 3)

       { 
       			my = ent_create (str_jeepmdl_srm, vector (100, 80, 0), move_players);
      			wait (-0.5);
					var my_rocket_launch_points_array[1] = 208, 256;
			 		on_mouse_left = players_fired;
					my.skill10 = 5; // == Fire_lag (relaod time in seconds)
               my.skill5 = -4; // Skill5 == driver-Skill
               my.skill3 = 10; // Maximum Speed
               
					var bullet_pos[3];

					
					
               while (1) 
					{		
				   	var_reload_timer_display = int(var_reload_timer * 31);

							on_mouse_left = players_fired;
					
							if (key_w == on) && (my.skill1 < my.skill3)
							{
								my.skill1 +=1 * time_step;
							}
               		if (key_s == on) && ((my.skill1) > ((my.skill3 / 2) * -1))
							{
								my.skill1 -=1 * time_step;
							}
							if (key_a - key_d == 0)   
							{
								my.skill2 = 0 * time_step;
							}
							if (key_a - key_d != 0) && (my.skill1 < 0)  
							{
								my.skill2 = ((key_d - key_a)*(12 - my.skill5)) * time_step;
							}	
							if (my.skill1 > 0) && (key_a - key_d != 0)
							{
								my.skill2 = ((key_a - key_d)*(12 - my.skill5)) * time_step;
							}
							if (my.skill1 == 0) && (key_a - key_d != 0)
							{
								my.skill2 = 0;
							}		
         				if (key_space == on)
         				{
         					my.skill1 = 0;
         				}
         				
         				

									
                       			
                       			
									
                       		if ((server_fired) && (var_reload_timer <= 0))
                       		    {                       	
                         		 vec_for_vertex (bullet_pos,my,my_rocket_launch_points_array[0]);
                               bullet_pan = my.pan;
                               ent_create(str_SRMRocket,vector(bullet_pos.x,bullet_pos.y,bullet_pos.z), move_bullets);
                               vec_for_vertex (bullet_pos,my,my_rocket_launch_points_array[1]);
                               bullet_pan = my.pan;
                               ent_create(str_SRMRocket,vector(bullet_pos.x,bullet_pos.y,bullet_pos.z), move_bullets);	
                               var_reload_timer = my.skill10;
                               }

								if (client_fired) 

                       {
                               you = ptr_for_handle(client_ent);
                             	 vec_for_vertex (bullet_pos,you,10);
   	                         bullet_pan = you.pan;
      	                      ent_create(str_BulletMG,vector(bullet_pos.x,bullet_pos.y,bullet_pos.z), move_bullets);
                         }       
								wait(1);
                       }
               wait (1);
               }
       }







Thanks for every help and suggestions.

Re: Georges AUM 77 MP-Tut [Re: MikeS] #245140
01/08/09 15:10
01/08/09 15:10
Joined: Mar 2007
Posts: 112
MikeS Offline OP
Member
MikeS  Offline OP
Member

Joined: Mar 2007
Posts: 112
Ok, i solved my problem.

I found out, if i make an c_setminmax on the client, it does not change the bounding box on the server automaticly. So i had to set an c_setminmax on the server too. now it works fine, bounding boxes react with each other the way i want.


Moderated by  HeelX, Spirit 

Gamestudio download | chip programmers | Zorro platform | shop | Data Protection Policy

oP group Germany GmbH | Birkenstr. 25-27 | 63549 Ronneburg / Germany | info (at) opgroup.de

Powered by UBB.threads™ PHP Forum Software 7.7.1