//sky_move.wdl(602) var Multiplayer = 2; // 0-off 1-client 2-server var OnlinePlayer; entity* spawn_pos01; entity* spawn_pos02; entity* spawn_pos03; //entity* A_multiplayer_entity; //moved to lampost.wdl //entity* B_multiplayer_entity; var MP_viewOffset[3]= -400,90,220; // where camera will be located relative to chassis center (cockpit) var MP_viewAngle[3] = 0,550,0; var MP_viewOffset2[3]= -400,90,220; // where camera will be located relative to chassis center (cockpit) var MP_viewAngle2[3] = 0,550,0; var PeoplePlaying; //define life, skill9; var life; var life2; var life3; //var client_id = 0; TEXT info_txt { pos_x = 10; pos_y = 100; size_y = 20; size_x = 20; string("Online!"); } bmap health_map = ; panel hbar_pan2 { window = 44, 241, 150, 15, health_map, 0, 0; flags = refresh, overlay; } bmap threeqt_health_map = ; panel threeqt_hbar_pan2 { window = 44, 241, 100, 15, threeqt_health_map, 0, 0; flags = refresh, overlay; } bmap hlf_health_map = ; panel half_hbar_pan2 { window = 44, 241, 85, 15, hlf_health_map, 0, 0; flags = refresh, overlay; } bmap qt_health_map = ; panel qt_hbar_pan2 { window = 44, 241, 60, 15, qt_health_map, 0, 0; flags = refresh, overlay; } bmap low_health_map = ; panel low_hbar_pan2 { window = 44, 241, 25, 15, low_health_map, 0, 0; flags = refresh, overlay; } panel MyLife { pos_x = 10; pos_y = 400; layer = 10; digits 42, 14,"%3.0f", "Arial#26b", 1,life; //digits 42, 14, 2, "DancingDonuts#48b", 1, time_day; flags = refresh,transparent, d3d; //vis } panel NumberOfPlayers { pos_x = 10; pos_y = 100; layer = 10; digits 42, 14,"%3.0f People playing", "Arial#26b", 1, num_clients; //digits 42, 14,"%3.0f People playing", "Arial#26b", 1, num_clients; //digits 42, 14, 2, "DancingDonuts#48b", 1, time_day; flags = refresh,transparent, d3d; //vis } panel NumberOfPlayersClient { pos_x = 10; pos_y = 100; layer = 10; digits 42, 14,"%3.0f People playing with you", "Arial#26b", 1, PeoplePlaying; //digits 42, 14, 2, "DancingDonuts#48b", 1, time_day; flags = refresh,transparent, d3d; //vis } view top_multiview { layer = 48; //19 pos_x = 50; pos_y = 820; size_x = 150; size_y = 150; flags = noshadow, noshader; } action spawn01() { spawn_pos01 = me; } action spawn02() { spawn_pos02 = me; } action spawn03() { spawn_pos03 = me; } function Multiplayer_Event() { while(my) { result = c_scan( my.x, my.pan, vector( 305, 190, 412 ), ignore_me+scan_ents+scan_limit ); // scan for actors if( result != 0) //&& YOU == plBiped01_entity && bipedAnim01_cur_strp == bipedAnim01_attack_str) // found an actor? { life -= 25; } if(result == 0) { wait(1); } wait(1); } } function Multiplayer_Action() { A_multiplayer_entity = me; //c_setminmax(multiplayer_entity); //my.fat = on; //my.narrow = on; my.ENABLE_IMPACT = ON; my.enable_scan = on; my.enable_detect = on; my.enable_impact = on; my.ENABLE_TRIGGER = ON; my.enable_entity = on; // sensitive to crashes my.enable_shoot = on; my.enable_block = on; my.ENABLE_FRICTION = ON; my.ENABLE_DISCONNECT = ON; my.POLYGON = on; my.push = 10; my.CAST = ON; my.shadow = off; life += 100; //my.event = Multiplayer_Event; //my.shadow = vehicle_shadow; var walk_percentage = 0; var dist_to_ground = 0; var vFeet[3]; while(1) { if(Multiplayer == 1) && (my == A_multiplayer_entity) { info_txt.visible = on; NumberOfPlayersClient.visible = on; MyLife.visible = on; my.skill1 = key_cuu - key_cud; send_skill(my.skill1,SEND_UNRELIABLE|SEND_RATE); // send movement request to the server my.skill2 = key_cul - key_cur; send_skill(my.skill2,SEND_UNRELIABLE|SEND_RATE); // send movement request to the server if(key_space == on) { my.skill3 = 1; send_skill(my.skill3,SEND_UNRELIABLE|SEND_RATE); // send movement request to the server } if(key_space == off) { my.skill3 = 0; send_skill(my.skill3,SEND_UNRELIABLE|SEND_RATE); // send movement request to the server } if(life > 90) { hbar_pan2.visible = on; } if(life > 75 && life < 90) { threeqt_hbar_pan2.visible = off; //VIS change to on; hbar_pan2.visible = off; } if(life > 50 && life < 75) { threeqt_hbar_pan2.visible = off; half_hbar_pan2.visible = off; //VIS change to on; hbar_pan2.visible = off; } if(life > 25 && life < 50) { half_hbar_pan2.visible = off; threeqt_hbar_pan2.visible = off; qt_hbar_pan2.visible = off; //VIS change to on; hbar_pan2.visible = off; } if(life < 25) { qt_hbar_pan2.visible = off; half_hbar_pan2.visible = off; threeqt_hbar_pan2.visible = off; hbar_pan2.visible = off; low_hbar_pan2.visible = on; wait(-0.3); low_hbar_pan2.visible = off; wait(-0.3); } result = c_scan( my.x, my.pan, vector( 305, 190, 412 ), ignore_me+scan_ents+scan_limit ); // scan for actors if( result != 0) && (YOU == plBiped01_entity && bipedAnim01_cur_strp == bipedAnim01_attack_str) // found an actor? { life -= 20; } /* if (event_type == EVENT_ENTITY) { life -= 25; } */ top_multiview.x = A_multiplayer_entity.x -400; top_multiview.y = A_multiplayer_entity.y; top_multiview.z = 4000; // play with this value top_multiview.pan = A_multiplayer_entity.pan; top_multiview.tilt = -90; top_multiview.ambient = 100; top_multiview.fog = 0; top_multiview.visible = on; } if(Multiplayer == 2) { info_txt.visible = on; NumberOfPlayers.visible = on; PeoplePlaying = num_clients; PeoplePlaying = PeoplePlaying - 2; send_var(PeoplePlaying); my.pan += my.skill2*5*time_step; c_move(me,vector(my.skill1*150*time_step,0,0), NULL, GLIDE); walk_percentage += 10.5 * my.skill1; ent_animate(me,"run",walk_percentage,ANM_CYCLE); // animate the entity my.scale_x=2.5; my.scale_y=2.5; my.scale_z=2.5; c_setminmax(my); my.fat = off; my.narrow = on; if(my.skill3 == 1) { c_move(me,vector(0,0,my.skill3*150*time_step), NULL, GLIDE); } if(my.skill3 == 0 && my.z > 20) { c_move(me,vector(0,0,-20),nullvector,GLIDE); //-70 } if(my.skill1 == 0) { //c_move(me,vector(0,0,-20),nullvector,GLIDE); //-20 my.skill31 += 1 * time_step; my.skill31 %= 100; ent_animate(me,"stand", my.skill31, ANM_SKIP); } } if(EVENT_TYPE == EVENT_DISCONNECT) { ent_remove(A_multiplayer_entity); } // Update the camera target cameraTarget_ent = A_multiplayer_entity; vec_set(cameraTarget_pos_vec,MP_viewOffset); vec_rotate(cameraTarget_pos_vec,A_multiplayer_entity.pan); vec_add(cameraTarget_pos_vec,A_multiplayer_entity.x); vec_set(cameraTarget_ang_vec,A_multiplayer_entity.pan); vec_add(cameraTarget_ang_vec,MP_viewAngle); wait(1); } } } function MP2_CAM() { while(1) { define camera3rd01_id = 2.0; cameraTarget_ent = B_multiplayer_entity; //camera = B_multiplayer_entity; vec_set(cameraTarget_pos_vec,MP_viewOffset2); vec_rotate(cameraTarget_pos_vec,B_multiplayer_entity.pan); vec_add(cameraTarget_pos_vec,B_multiplayer_entity.x); vec_set(cameraTarget_ang_vec,B_multiplayer_entity.pan); vec_add(cameraTarget_ang_vec,MP_viewAngle2); wait(1); } } function Multiplayer_Action2() { B_multiplayer_entity = me; //c_setminmax(multiplayer_entity); //my.fat = on; //my.narrow = on; my.ENABLE_IMPACT = ON; my.enable_scan = on; my.enable_detect = on; my.enable_impact = on; my.ENABLE_TRIGGER = ON; my.enable_entity = on; // sensitive to crashes my.enable_shoot = on; my.enable_block = on; my.ENABLE_FRICTION = ON; my.ENABLE_DISCONNECT = ON; my.POLYGON = on; my.push = 10; my.CAST = ON; my.shadow = off; life2 += 100; MP2_CAM(); //my.event = Multiplayer_Event; //my.shadow = vehicle_shadow; var walk_percentage = 0; var dist_to_ground = 0; var vFeet[3]; while(1) { if(Multiplayer == 1) && (my == B_multiplayer_entity) { info_txt.visible = on; NumberOfPlayersClient.visible = on; MyLife.visible = on; my.skill4 = key_cuu - key_cud; send_skill(my.skill4,SEND_UNRELIABLE|SEND_RATE); // send movement request to the server my.skill5 = key_cul - key_cur; send_skill(my.skill5,SEND_UNRELIABLE|SEND_RATE); // send movement request to the server if(key_space == on) { my.skill6 = 1; send_skill(my.skill6,SEND_UNRELIABLE|SEND_RATE); // send movement request to the server } if(key_space == off) { my.skill6 = 0; send_skill(my.skill6,SEND_UNRELIABLE|SEND_RATE); // send movement request to the server } if(life > 90) { hbar_pan2.visible = on; } if(life > 75 && life < 90) { threeqt_hbar_pan2.visible = off; //VIS change to on; hbar_pan2.visible = off; } if(life > 50 && life < 75) { threeqt_hbar_pan2.visible = off; half_hbar_pan2.visible = off; //VIS change to on; hbar_pan2.visible = off; } if(life > 25 && life < 50) { half_hbar_pan2.visible = off; threeqt_hbar_pan2.visible = off; qt_hbar_pan2.visible = off; //VIS change to on; hbar_pan2.visible = off; } if(life < 25) { qt_hbar_pan2.visible = off; half_hbar_pan2.visible = off; threeqt_hbar_pan2.visible = off; hbar_pan2.visible = off; low_hbar_pan2.visible = on; wait(-0.3); low_hbar_pan2.visible = off; wait(-0.3); } result = c_scan( my.x, my.pan, vector( 305, 190, 412 ), ignore_me+scan_ents+scan_limit ); // scan for actors if( result != 0) && (YOU == plBiped01_entity && bipedAnim01_cur_strp == bipedAnim01_attack_str) // found an actor? { life -= 20; } /* if (event_type == EVENT_ENTITY) { life -= 25; } */ top_multiview.x = B_multiplayer_entity.x -400; top_multiview.y = B_multiplayer_entity.y; top_multiview.z = 4000; // play with this value top_multiview.pan = B_multiplayer_entity.pan; top_multiview.tilt = -90; top_multiview.ambient = 100; top_multiview.fog = 0; top_multiview.visible = on; } if(Multiplayer == 2) { info_txt.visible = on; NumberOfPlayers.visible = on; PeoplePlaying = num_clients; PeoplePlaying = PeoplePlaying - 2; send_var(PeoplePlaying); my.pan += my.skill5*5*time_step; c_move(me,vector(my.skill4*150*time_step,0,0), NULL, GLIDE); walk_percentage += 10.5 * my.skill4; ent_animate(me,"run",walk_percentage,ANM_CYCLE); // animate the entity my.scale_x=2.5; my.scale_y=2.5; my.scale_z=2.5; c_setminmax(my); my.fat = off; my.narrow = on; if(my.skill6 == 1) { c_move(me,vector(0,0,my.skill6*150*time_step), NULL, GLIDE); } if(my.skill6 == 0 && my.z > 20) { c_move(me,vector(0,0,-20),nullvector,GLIDE); //-70 } if(my.skill4 == 0) { //c_move(me,vector(0,0,-20),nullvector,GLIDE); //-20 my.skill31 += 1 * time_step; my.skill31 %= 100; ent_animate(me,"stand", my.skill31, ANM_SKIP); } } // Update the camera target wait(1); } } } function create_player() { if(PeoplePlaying == 1) //2ndPlayer { ent_create("FbiAgent.mdl", start.x, Multiplayer_Action2); //player = multiplayer_entity; } if(PeoplePlaying == 0) //1stPlayer { ent_create("Pedestrian02.mdl", start.x, Multiplayer_Action); } } function multiplayer_connect() { if(Multiplayer == 1) { session_connect("highroad","25.18.156.154"); dplay_localfunction = 2; //send_var(vehicle_entity.x); OnlinePlayer += 1; wait(-10); //send_var(OnlinePlayer); wait(-40); create_player(); // vec_set(multiplayer_entity.x, spawn_pos01.x); } if(Multiplayer == 2) { session_open("highroad"); dplay_localfunction = 2; diag_frame(dplay_status); } }