Login x
User Name:
Password:
Social Links Facebook Twitter YouTube Steam RSS News Feeds

Members Online

»
0 Active | 88 Guests
Online:

LATEST FORUM THREADS

»
CoD: Battle Royale
CoD+UO Map + Mod Releases
Damaged .pk3's
CoD Mapping
heli to attack ai
CoD4 SP Mapping

Forums

»

Welcome to the MODSonline.com forums. Looking for Frequently Asked Questions? Check out our FAQs section or search it out using the SEARCH link below. If you are new here, you may want to check out our rules and this great user's guide to the forums and the website.
For more mapping and modding information, see our Wiki: MODSonWiki.com

Jump To:
Forum: All Forums : Call of Duty 4
Category: CoD4 Scripting
Scripting and coding with Call of Duty 4.
Moderators: foyleman, Foxhound, Mystic, StrYdeR, batistablr, Welshy, DrBiggzz, supersword, playername, novemberdobby
Latest Posts
Subscribed Posts
Search
Restricted Access Topic is Locked subscribe
Author Topic: Multi level elevators
LuckySoul
General Member
Since: Feb 2, 2008
Posts: 55
Last: Mar 21, 2010
[view latest posts]
Level 3
Category: CoD4 Scripting
Posted: Monday, Jun. 15, 2009 10:37 pm
Is it possible to script a multi level elevator? Or am I wasting my time attempting this? I am trying to finish a map and some one suggested I add working elevators, seems lame if they only go up or down in a mutli level structure. I have no problems with scripting 2 position elevators with multiple doors, thanks to modsonline.

Example, 4 floors. Triggers inside elevator to send to certain floors and triggers external on each level to call elevator to that floor, no matter of current level.
Share |
playername
Preferred Member
Since: Aug 24, 2006
Posts: 821
Last: Apr 15, 2011
[view latest posts]
Level 7
Forum Moderator
Im a fan of MODSonair
Category: CoD4 Scripting
Posted: Monday, Jun. 15, 2009 11:38 pm
With scripting anything is possible... well almost anything. Yes it is possible. It takes a lot of know how and time. Mostly depends on how complicated you want to make the elevator.

I would star with making your call triggers (ones that make the elevator go to that floor if it isn't there / open doors) after than, make your selector. This is complicated. For each floor you need to have a trigger (except the floor your on) that says "Go to this floor". Then just have script_origins for each floor.

Hopefully this jump starts some ideas. If you want, I can make a whole things for you.
nullFew tips for coding.
1. Keep the script as short as possible.
2. Don't comment every line. Only comment portions where they may be needed to point something out.
3. Don't over complicate the script, keep it organized and easy to read.

These help you find simple errors and makes it easy to make changes.
Share |
tourist.Tam
General Member
Since: Feb 2, 2007
Posts: 397
Last: Oct 6, 2009
[view latest posts]
Level 5
Category: CoD4 Scripting
Posted: Tuesday, Jun. 16, 2009 12:20 am
A fellow member from a french speaking modding/mapping community has done something that might just be what you are looking for: http://caskami.clan-nawak.net/index.php?showtopic=7032.

It is written in french as far as the explanation are concerned; and I am in no mood to translate I am afraid. :p

But it is well worth a look as it should allows you to customize the code to suit your current need.

Regards,

Tam
Share |
LuckySoul
General Member
Since: Feb 2, 2008
Posts: 55
Last: Mar 21, 2010
[view latest posts]
Level 3
Category: CoD4 Scripting
Posted: Wednesday, Jul. 1, 2009 10:31 pm
I have failed, I can make a two level one with doors that move how I need, but that is by using coordinates. Just cant figure out to write the script or use script_origins so that the current elevator position is known. I have searched for answers but still banging my head. [banghead]

I quick idea on how to add and what values need to be given to a script_origin so a script can recognize an objects position would be appreciated.
Share |
LuckySoul
General Member
Since: Feb 2, 2008
Posts: 55
Last: Mar 21, 2010
[view latest posts]
Level 3
Category: CoD4 Scripting
Posted: Sunday, Aug. 16, 2009 12:01 pm
I have failed, I have no clue about scripting. This moves the elevator from floor to floor, but only in sequential order, it doesn't work if I try to call elevator to 4th floor from 1st. I know its a problem with how its written. I still need to add the triggers inside the elevator car, but need to figure this out first.

Any help would be appreciated and when I finally get my map out you will be credited.

Code:
main() 
{ 
	thread elevator ();
	}

	elevator()
{
	elevator=getent("elevator","targetname");
	elevatorcall1 = getent("trigger_1st_call","targetname");
	elevatorcall2 = getent("trigger_2nd_call","targetname");
	elevatorcall3 = getent("trigger_3rd_call","targetname");
	elevatorcall4 = getent("trigger_4th_call","targetname");
	elevatorcall5 = getent("trigger_5th_call","targetname");
	trig2_1 = getent ("trigger2_1","targetname");
	trig3_1 = getent ("trigger3_1","targetname");
	trig4_1 = getent ("trigger4_1","targetname");
	trig5_1 = getent ("trigger5_1","targetname");
	trig1_2 = getent ("trigger1_2","targetname");
	trig3_2 = getent ("trigger3_2","targetname");
	trig4_2 = getent ("trigger4_2","targetname");
	trig5_2 = getent ("trigger5_2","targetname");
	trig1_3 = getent ("trigger1_3","targetname");
	trig2_3 = getent ("trigger2_3","targetname");
	trig4_3 = getent ("trigger4_3","targetname");
	trig5_3 = getent ("trigger5_3","targetname");
	trig1_4 = getent ("trigger1_4","targetname");
	trig2_4 = getent ("trigger2_4","targetname");
	trig3_4 = getent ("trigger3_4","targetname");
	trig5_4 = getent ("trigger5_4","targetname");
	trig1_5 = getent ("trigger1_5","targetname");
	trig2_5 = getent ("trigger2_5","targetname");
	trig3_5 = getent ("trigger3_5","targetname");
	trig4_5 = getent ("trigger4_5","targetname");
	elev_inside_door = getent ("elev_inside_door","targetname");
	elev_out_R_door_1st = getent ("elev_out_R_door_1st", "targetname"); 
	elev_out_L_door_1st = getent ("elev_out_L_door_1st", "targetname"); 
	elev_out_R_door_2nd = getent ("elev_out_R_door_2nd", "targetname"); 
	elev_out_L_door_2nd = getent ("elev_out_L_door_2nd", "targetname"); 
	elev_out_R_door_3rd = getent ("elev_out_R_door_3rd", "targetname"); 
	elev_out_L_door_3rd = getent ("elev_out_L_door_3rd", "targetname"); 
	elev_out_R_door_4th = getent ("elev_out_R_door_4th", "targetname"); 
	elev_out_L_door_4th = getent ("elev_out_L_door_4th", "targetname"); 
	elev_out_R_door_5th = getent ("elev_out_R_door_5th", "targetname"); 
	elev_out_L_door_5th = getent ("elev_out_L_door_5th", "targetname"); 
	player_block_1st = getent ("player_block_1st","targetname");
	player_block_2nd = getent ("player_block_2nd","targetname");
	player_block_3rd = getent ("player_block_3rd","targetname");
	player_block_4th = getent ("player_block_4th","targetname");
	player_block_5th = getent ("player_block_5th","targetname");
	elevatorlight = getent ("elevatorlight","targetname");
	while (1) 
	

{
// sends elevator to 1st flr
	elevatorcall1 waittill ("trigger"); //moves elevator to 1st floor opens doors
	elevator moveto ((-64,200,100),6,2,2); //moves elevator to coordinates
	elev_inside_door moveto ((-38,138,100),6,2,2); //moves inside door with elevator
	elevatorlight moveto ((-52,204,160),6,2,2); //moves light with elevator
	elevator waittill ("movedone");
	elev_out_R_door_1st movex(-52,2,0.5,0.5); // opens door
	elev_out_L_door_1st moveX(-28,2,0.5,0.5); // opens door
	elev_inside_door moveX(-52,2,0.5,0.5); //opens door
	player_block_1st moveX(-52,2,0.5,0.5); //moves player clip from doorway
	player_block_1st waittill ("movedone");
	wait (7);  //waits to reclose doors
	player_block_1st moveX(52,2,0.5,0.5); //moves player clip into doorway
	player_block_1st waittill ("movedone");
	elev_out_R_door_1st movex(52,2,0.5,0.5); // closes door
	elev_out_L_door_1st moveX(28,2,0.5,0.5); // closes door
	elev_inside_door moveX(52,2,0.5,0.5); //closes door
while (1)

{
// sends elevator to 2nd flr
	elevatorcall2 waittill ("trigger"); 
	elevator moveto ((-64,200,340),6,2,2); 
	elev_inside_door moveto ((-38,138,340),6,2,2); //moves inside door with elevator
	elevatorlight moveto ((-52,204,369.5),6,2,2); //moves light with elevator
	elevator waittill ("movedone");
	elev_out_R_door_2nd movex(-52,2,0.5,0.5); // opens door
	elev_out_L_door_2nd moveX(-28,2,0.5,0.5); // opens door
	elev_inside_door moveX(-52,2,0.5,0.5); //opens door
	player_block_2nd moveX(-52,2,0.5,0.5); //moves player clip from doorway
	player_block_2nd waittill ("movedone"); 
	wait (7);  //waits to reclose doors
	player_block_2nd moveX(52,2,0.5,0.5); //moves player clip into doorway
	player_block_2nd waittill ("movedone");
	elev_out_R_door_2nd movex(52,2,0.5,0.5); // closes door
	elev_out_L_door_2nd moveX(28,2,0.5,0.5); // closes door
	elev_inside_door moveX(52,2,0.5,0.5); //closes door
while (1)

{
// sends elevator to 3rd flr
	elevatorcall3 waittill ("trigger"); 
	elevator moveto ((-64,200,596),6,2,2); 
	elev_inside_door moveto ((-38,138,596),6,2,2); //moves inside door with elevator
	elevatorlight moveto ((-52,204,625.5),6,2,2); //moves light with elevator
	elevator waittill ("movedone");
	elev_out_R_door_3rd movex(-52,2,0.5,0.5); // opens door
	elev_out_L_door_3rd moveX(-28,2,0.5,0.5); // opens door
	elev_inside_door moveX(-52,2,0.5,0.5); //opens door
	player_block_3rd moveX(-52,2,0.5,0.5); //moves player clip from doorway
	player_block_3rd waittill ("movedone");
	wait (7);  //waits to reclose doors
	player_block_3rd moveX(52,2,0.5,0.5); //moves player clip into doorway
	player_block_3rd waittill ("movedone");
	elev_out_R_door_3rd movex(52,2,0.5,0.5); // closes door
	elev_out_L_door_3rd moveX(28,2,0.5,0.5); // closes door
	elev_inside_door moveX(52,2,0.5,0.5); //closes door
while (1)

{
// sends elevator to 4th flr
	elevatorcall4 waittill ("trigger"); 
	elevator moveto ((-64,200,852),6,2,2); 
	elev_inside_door moveto ((-38,138,852),6,2,2); //moves inside door with elevator
	elevatorlight moveto ((-52,204,881.5),6,2,2); //moves light with elevator
	elevator waittill ("movedone");
	elev_out_R_door_4th movex(-52,2,0.5,0.5); // opens door
	elev_out_L_door_4th moveX(-28,2,0.5,0.5); // opens door
	elev_inside_door moveX(-52,2,0.5,0.5); //opens door
	player_block_4th moveX(-52,2,0.5,0.5); //moves player clip from doorway
	player_block_4th waittill ("movedone");
	wait (7);  //waits to reclose doors
	player_block_4th moveX(52,2,0.5,0.5); //moves player clip into doorway
	player_block_4th waittill ("movedone");
	elev_out_R_door_4th movex(52,2,0.5,0.5); // closes door
	elev_out_L_door_4th moveX(28,2,0.5,0.5); // closes door
	elev_inside_door moveX(52,2,0.5,0.5); //closes door
while (1)

{
// sends elevator to 5th flr
	elevatorcall5 waittill ("trigger"); 
	elevator moveto ((-64,200,1108),6,2,2); 
	elev_inside_door moveto ((-38,138,1108),6,2,2); //moves inside door with elevator
	elevatorlight moveto ((-52,204,1137.5),6,2,2); //moves light with elevator
	elevator waittill ("movedone");
	elev_out_R_door_5th movex(-52,2,0.5,0.5); // opens door
	elev_out_L_door_5th moveX(-28,2,0.5,0.5); // opens door
	elev_inside_door moveX(-52,2,0.5,0.5); //opens door
	player_block_5th moveX(-52,2,0.5,0.5); //moves player clip from doorway
	player_block_5th waittill ("movedone");
	wait (7);  //waits to reclose doors
	player_block_5th moveX(52,2,0.5,0.5); //moves player clip into doorway
	player_block_5th waittill ("movedone");
	elev_out_R_door_5th movex(52,2,0.5,0.5); // closes door
	elev_out_L_door_5th moveX(28,2,0.5,0.5); // closes door
	elev_inside_door moveX(52,2,0.5,0.5); //closes door
	}
}
}
}
}
}


edited on Aug. 16, 2009 08:01 am by LuckySoul
Share |
nolman
General Member
Since: Apr 10, 2009
Posts: 18
Last: Nov 15, 2012
[view latest posts]
Level 1
Category: CoD4 Scripting
Posted: Sunday, Aug. 16, 2009 12:11 pm
Hi,
I have done this,
i'm a scripting noob and the script is very bulky for now,
but it works.
I have 4 levels, can call the elevator on each level, but
for now i can only go up or down per floor.
(so you have to activate the trigger up per floor)
1 call triggers on each floor outside elevator
2 triggers up and down inside elevatorshaft on each floor

then you just define the amount of movement for each trigger.
To know where the elevator is u use false/true
here is an example of the script:
(if anyone can improve this or make it less bulky, please tell me)
translation:
omhoog = up
omlaag = down
roep = call

Code:
thread omhoog();
thread omlaag();
thread omhoogEen();
thread omlaagEen();
thread omhoogTwee();
thread omlaagTwee();
thread omhoogDrie();
thread omlaagDrie();
thread omlaagVier();
thread roep();
thread roep1();
thread roep2();
thread roep3();
thread roep4();

}





omhoog()
{       elevator= getent ("elevator","targetname"); 
        trig = getent ("elevator_trigomhoog","targetname");
	while (1) 
	{
		trig waittill ("trigger");
		if(level.moving == false)				
		{       
			elevator moveZ (140, 6);
 			level.moving = true;
			level.nivo++;
			elevator waittill ("movedone");
                        level.moving = false;
                        
                        
		}
	}
}
omlaag()
{       elevator= getent ("elevator","targetname"); 	
	trig = getent ("elevator_trigomlaag","targetname");
	while (1) 
	{
		trig waittill ("trigger");
	 	if(level.nivo && level.moving == false)
		{
			elevator moveZ (-140, 8);
			level.moving = true;
			level.nivo--;
			elevator waittill ("movedone");
			level.moving = false;
		}
	}
}
omhoogEen()
{       elevator= getent ("elevator","targetname"); 	
	trig = getent ("elevator_trigomhoogEen","targetname");
	while (1) 
	{
		trig waittill ("trigger");
		if(level.moving == false)
		{
			elevator moveZ (144, 8);
 			level.moving = true;
			level.nivo++;
			elevator waittill ("movedone");
			level.moving = false;
		}
	}
}
omlaagEen()
{       elevator= getent ("elevator","targetname"); 	
	trig = getent ("elevator_trigomlaagEen","targetname");
	while (1) 
	{
		trig waittill ("trigger");
	 	if(level.nivo && level.moving == false)
		{
			elevator moveZ (-140, 8);
			level.moving = true;
			level.nivo--;
			elevator waittill ("movedone");
			level.moving = false;
		}
	}
}
omhoogTwee()
{       elevator= getent ("elevator","targetname"); 
	trig = getent ("elevator_trigomhoogTwee","targetname");
	while (1) 
	{
		trig waittill ("trigger");
		if(level.moving == false)
		{
			elevator moveZ (144, 8);
 			level.moving = true;
			level.nivo++;
			elevator waittill ("movedone");
			level.moving = false;
		}
	}
}
omlaagTwee()
{       elevator= getent ("elevator","targetname"); 
	trig = getent ("elevator_trigomlaagTwee","targetname");
	while (1) 
	{
		trig waittill ("trigger");
	 	if(level.nivo && level.moving == false)
		{
			elevator moveZ (-144, 8);
			level.moving = true;
			level.nivo--;
			elevator waittill ("movedone");
			level.moving = false;
		}
	}
}
omhoogDrie()
{       elevator= getent ("elevator","targetname"); 
	trig = getent ("elevator_trigomhoogDrie","targetname");
	while (1) 
	{
		trig waittill ("trigger");
		if(level.moving == false)
		{
			elevator moveZ (184, 8);
 			level.moving = true;
			level.nivo++;
			elevator waittill ("movedone");
			level.moving = false;
		}
	}
}
omlaagDrie()
{       elevator= getent ("elevator","targetname"); 
	trig = getent ("elevator_trigomlaagDrie","targetname");
	while (1) 
	{
		trig waittill ("trigger");
	 	if(level.nivo && level.moving == false)
		{
			elevator moveZ (-144, 8);
			level.moving = true;
			level.nivo--;
			elevator waittill ("movedone");
			level.moving = false;
		}
	}
}
omlaagVier()
{       elevator= getent ("elevator","targetname"); 
	trig = getent ("elevator_trigomlaagVier","targetname");
	while (1) 
	{
		trig waittill ("trigger");
	 	if(level.nivo && level.moving == false)
		{
			elevator moveZ (-184, 8);
			level.moving = true;
			level.nivo--;
			elevator waittill ("movedone");
			level.moving = false;
		}
	}
}
roep()
{       elevator= getent ("elevator","targetname");  
	trig = getent ("elevator_trigroep","targetname");
        while (1)
	{
		trig waittill ("trigger");
		if(level.nivo == 1)		
		{
			elevator moveZ (-140, 8);
                        level.moving = true;
			level.nivo--;
			elevator waittill ("movedone");
			level.moving = false;
		}
		else if (level.nivo == 2)
		{
			elevator moveZ (-284, 8);
                        level.moving = true;
			level.nivo = level.nivo -2;
			elevator waittill ("movedone");
			level.moving = false;
		}
		else if (level.nivo == 3)
		{
			elevator moveZ (-420, 8);
                        level.moving = true;
			level.nivo = level.nivo -3;
			elevator waittill ("movedone");
			level.moving = false;
		}		
		else if (level.nivo == 4)
		{
			elevator moveZ (-612, 8);
                        level.moving = true;
			level.nivo = level.nivo -4;
			elevator waittill ("movedone");
			level.moving = false;
		}		
	}
}

roep1()
{       elevator= getent ("elevator","targetname");  
	trig = getent ("elevator_trigroep1","targetname");
        while (1)
	{
		trig waittill ("trigger");
		if(level.nivo == 0)		
		{
			elevator moveZ (140, 8);
                        level.moving = true;
			level.nivo++;
			elevator waittill ("movedone");
			level.moving = false;
		}
		else if (level.nivo == 2)
		{
			elevator moveZ (-144, 8);
                        level.moving = true;
			level.nivo = level.nivo -1;
			elevator waittill ("movedone");
			level.moving = false;
		}
		else if (level.nivo == 3)
		{
			elevator moveZ (-288, 8);
                        level.moving = true;
			level.nivo = level.nivo -2;
			elevator waittill ("movedone");
			level.moving = false;
		}		
		else if (level.nivo == 4)
		{
			elevator moveZ (-472, 8);
                        level.moving = true;
			level.nivo = level.nivo -3;
			elevator waittill ("movedone");
			level.moving = false;
		}		
	}
}
roep2()
{       elevator= getent ("elevator","targetname");  
	trig = getent ("elevator_trigroep2","targetname");
        while (1)
	{
		trig waittill ("trigger");
		if(level.nivo == 0)		
		{
			elevator moveZ (284, 8);
                        level.moving = true;
			level.nivo = level.nivo +2;
			elevator waittill ("movedone");
			level.moving = false;
		}
		else if (level.nivo == 1)
		{
			elevator moveZ (144, 8);
                        level.moving = true;
			level.nivo = level.nivo +1;
			elevator waittill ("movedone");
			level.moving = false;
		}
		else if (level.nivo == 3)
		{
			elevator moveZ (-144, 8);
                        level.moving = true;
			level.nivo = level.nivo -1;
			elevator waittill ("movedone");
			level.moving = false;
		}		
		else if (level.nivo == 4)
		{
			elevator moveZ (-328, 8);
                        level.moving = true;
			level.nivo = level.nivo -2;
			elevator waittill ("movedone");
			level.moving = false;
		}		
	}
}
roep3()
{       elevator= getent ("elevator","targetname");  
	trig = getent ("elevator_trigroep3","targetname");
        while (1)
	{
		trig waittill ("trigger");
		if(level.nivo == 0)		
		{
			elevator moveZ (428, 8);
                        level.moving = true;
			level.nivo = level.nivo +3;
			elevator waittill ("movedone");
			level.moving = false;
		}
		else if (level.nivo == 1)
		{
			elevator moveZ (288, 8);
                        level.moving = true;
			level.nivo = level.nivo +2;
			elevator waittill ("movedone");
			level.moving = false;
		}
		else if (level.nivo == 2)
		{
			elevator moveZ (144, 8);
                        level.moving = true;
			level.nivo = level.nivo +1;
			elevator waittill ("movedone");
			level.moving = false;
		}		
		else if (level.nivo == 4)
		{
			elevator moveZ (-184, 8);
                        level.moving = true;
			level.nivo = level.nivo -2;
			elevator waittill ("movedone");
			level.moving = false;
		}		
	}
}
roep4()
{       elevator= getent ("elevator","targetname");  
	trig = getent ("elevator_trigroep4","targetname");
        while (1)
	{
		trig waittill ("trigger");
		if(level.nivo == 0)		
		{
			elevator moveZ (612, 8);
                        level.moving = true;
			level.nivo = level.nivo +4;
			elevator waittill ("movedone");
			level.moving = false;
		}
		else if (level.nivo == 1)
		{
			elevator moveZ (428, 8);
                        level.moving = true;
			level.nivo = level.nivo +3;
			elevator waittill ("movedone");
			level.moving = false;
		}
		else if (level.nivo == 2)
		{
			elevator moveZ (328, 8);
                        level.moving = true;
			level.nivo = level.nivo +2;
			elevator waittill ("movedone");
			level.moving = false;
		}		
		else if (level.nivo == 3)
		{
			elevator moveZ (184, 8);
                        level.moving = true;
			level.nivo = level.nivo +1;
			elevator waittill ("movedone");
			level.moving = false;
		}		
	}
}


Hope this helps

edited on Aug. 16, 2009 08:13 am by nolman
Share |
Restricted Access Topic is Locked subscribe
MODSonline.com Forums : Call of Duty 4 : CoD4 Scripting

Latest Syndicated News

»
Codutility.com up and runn...
Nice, and there still using the logo and template for the screenshots, which...
Codutility.com up and runn...
dundy writes...Quote:Call of Duty modding and mapping is barly alive only a ...
Codutility.com up and runn...
Mystic writes...Quote:It seems to me the like the site is completely dead? ...
Codutility.com up and runn...
It seems to me the like the site is completely dead?

Partners & Friends

»