Gamestudio Links
Zorro Links
Newest Posts
Zorro 2.70
by jcl. 09/29/25 09:24
optimize global parameters SOLVED
by dBc. 09/27/25 17:07
ZorroGPT
by TipmyPip. 09/27/25 10:05
assetHistory one candle shift
by jcl. 09/21/25 11:36
Plugins update
by Grant. 09/17/25 16:28
AUM Magazine
Latest Screens
Rocker`s Revenge
Stug 3 Stormartillery
Iljuschin 2
Galactic Strike X
Who's Online Now
0 registered members (), 18,008 guests, and 5 spiders.
Key: Admin, Global Mod, Mod
Newest Members
krishna, DrissB, James168, Ed_Love, xtns
19168 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 | 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