A building that falls down on the ground and breaks down

Have questions about CoD/UO mapping that aren't covered in the tutorials section? Post here!

Moderator: Core Staff

Post Reply
Lennard
CJ Wannabe
CJ Wannabe
Posts: 24
Joined: July 22nd, 2009, 3:27 pm

A building that falls down on the ground and breaks down

Post by Lennard » October 22nd, 2009, 9:27 pm

Hi there.

I wanna make a new singleplayer map, with an effect that you gotta place a bomb on a building, and when you trigger it, the bombs explode and the building falls down on the ground and breaks down. ( The same effect as in the first singleplayer map of Call Of Duty 2, where they place a few bombs on the building and it breaks apart in a couple parts )

Now I've been searching for the script of the SP map in CoD2, but I wasn't able to find it.

That's why I'm hoping someone here knows how to do it.

If you wanna see what I meant with the Cod2 Singleplayer map, here's a video of the gameplay.
Skip to:
7:17 for the part that I mean (ends when video ends)

link: http://www.youtube.com/watch?v=f8_ccLXg ... re=related

Thanks alot!
Last edited by Lennard on October 23rd, 2009, 1:30 pm, edited 3 times in total.

User avatar
Rezil
Core Staff
Core Staff
Posts: 2030
Joined: July 24th, 2006, 11:21 am
Location: Cramped in a small cubicle/making another jump map

Re: A statue that falls down on the ground and breaks down

Post by Rezil » October 22nd, 2009, 10:09 pm

What video?
Drofder2004: Drofder's rules for reviewing a map
[...]
#5 If your name is Rezil, minimum 5/5.
---
<LT>YosemiteSam[NL]:
I heard somewhere that the best way to start is juggling 2 balls with one hand, so you will get a feel for it.


User avatar
Rezil
Core Staff
Core Staff
Posts: 2030
Joined: July 24th, 2006, 11:21 am
Location: Cramped in a small cubicle/making another jump map

Re: A statue that falls down on the ground and breaks down

Post by Rezil » October 22nd, 2009, 10:38 pm

Well, the building collapsing is probably an animation, but you can do it with brushes aswell, precache the rumble, make the building parts as seperate brushmodels(5 parts for example,for falling down like in the vid, but put together as one and then hidden+not solid). Then precache the smoke and explosions fx for the bottom of the building. Play your fx's along with the rumble, add some cool sound effects and move the parts down slowly.
Drofder2004: Drofder's rules for reviewing a map
[...]
#5 If your name is Rezil, minimum 5/5.
---
<LT>YosemiteSam[NL]:
I heard somewhere that the best way to start is juggling 2 balls with one hand, so you will get a feel for it.

User avatar
Rezil
Core Staff
Core Staff
Posts: 2030
Joined: July 24th, 2006, 11:21 am
Location: Cramped in a small cubicle/making another jump map

Re: A statue that falls down on the ground and breaks down

Post by Rezil » October 22nd, 2009, 10:46 pm

by the way, I believe this is the script(the building exploding part anyway):

Code: Select all

buildingExplodes()
{
	maps\demolition_fx::createWallShredExploders();
	wait (2.0);
	demoStart = getentarray ("demo_start","targetname");
	demoBack = getentarray ("demo_back","targetname");
	demo1 = getent ("demo_1","targetname");
	demo2 = getent ("demo_2","targetname");
	demo3 = getent ("demo_3","targetname");
	demo4 = getent ("demo_4","targetname");
	demo5 = getent ("demo_5","targetname");
	demo_wall = getent ("demo_wall","targetname");
	rubble = getent ("demo_base_rubble","targetname");
	demoBase = getent ("demo_base","targetname");
	demoBase2 = getent ("demo_base2","targetname");
	demoBaseChunk = getent ("demo_base_chunk","targetname");
	level.eq_org = (7088, 754, 384);
	earthquake(0.2, 5, level.eq_org, 5000);

	if (level.showExploder)
		exploder(20);
	level notify ("stopGermanPlanning"); // stops german planning sound fx
	getent ("explosion_sound","targetname") playsound ("demolition_demoexplosion");
	ai = getaiarray();
	trigger = getent("demolition_death_trigger","targetname");
	for (i=0;i<ai.size;i++)
	{
		if (ai[i] istouching (trigger))
			ai[i] dodamage(ai[i].health,(0,0,0));
	}
	if (level.player istouching (trigger))
		level.player dodamage (level.player.health, (0,0,0));
	if (level.showExploder)
		exploder(1);
	quickQuake();

	if (level.showExploder)
		exploder(2);
	quickQuake();
//	demoBase hide();
	if (level.showExploder)
		exploder(3);
	quickQuake();
	wait (0.5);

//	demoStart hide();

	if (level.showExploder)
		exploder(21);
	quickQuake();
	wait .25;

	earthquake(0.35, 14, level.eq_org, 5000);

	ai = getaiarray("axis");
	for (i=0;i<ai.size;i++)
		ai[i] dodamage(ai[i].health +5, (0,0,0));
	maps\_spawner::kill_spawnerNum(1);
	getent ("death_point","targetname") thread explosionDamage();
	demo1 thread moveRotate(-10, 0);	
	thread chunkSpawnStart(level.build_brick[10], "brick_spawn_short", demo1, 10, (-30,270,0), 0.15);
	demo1 show();
	demo2 show();
	demo3 show();
	demo4 show();
	demo5 show();
	for (i=0;i<demoStart.size;i++)
		demoStart[i] delete();
	array_thread (demoBack, ::shower);
	demoBase show();
	demoBase solid();
	demoBaseChunk show();
//	demo_wall show();

	exploder(19);

	array_thread(getentarray("building_glow","script_noteworthy"), ::deleter);
	array_thread(getentarray("demo_start_model","targetname"), ::deleter);
	level notify ("stop fx" + "lantern_stop");
	wait (0.45);
	wait (0.25);
/*
	if (level.showExploder)
		exploder(4);
*/
	wait .25;

	if (level.showExploder)
		exploder(22);
	
	demo2 thread moveRotate(-15, -5);	
	offsetTimer = 0.3;
	thread chunkSpawnStart(level.build_brick[20], "brick_spawn_short", 	demo2, 2.4, (-30,285,0), 0.35);
	thread chunkSpawnStart(level.build_brick[25], "brick_spawn_short", 	demo2, 1, (-30,285,0), 0.35);
	wait (offsetTimer);
	chunkSetFX(level.build_brick[20], "brick_spawn_long");
	chunkSetFX(level.build_brick[25], "brick_spawn");
//	thread chunkSpawnStart(level.build_brick[20], "brick_spawn_long", 	demo2, 2-offsetTimer, (-30,270,0), 0.15);
//	thread chunkSpawnStart(level.build_brick[25], "brick_spawn", 		demo2, 1-offsetTimer, (-30,270,0), 0.15);

	wait (0.65 - offsetTimer);
/*
	if (level.showExploder)
		exploder(5);
*/
	rubble show();
	rubble solid();
	rubble moveto (rubble.origin + (0,0,level.movelength), 6, 2, 4);
	wait .25;
	wait (0.65);
	if (level.showExploder)
		exploder(23); // 3rd bricks
	demo3 thread moveRotate(-20, -10);
	thread chunkSpawnStart(level.build_brick[30], "brick_spawn_short", demo3, 2, (-30,270,0), 0.25);
	wait .24;
	chunkSetFX(level.build_brick[30], "brick_spawn");
/*
	if (level.showExploder)
		exploder(6);
*/
	if (level.showExploder)
		exploder(24);
	demo4 thread moveRotate(-10, -40);	
//	thread chunkSpawnStart(level.build_brick[40], demo4, 1.5, (-30,350,0));
	thread chunkSpawnStart(level.build_brick[40], "brick_spawn", demo4, 2, (-30,340,0), 0.25);
	wait (0.65);
	array_thread (demoBack, ::deleter);
	demoBase2 show();
	demoBase2 solid();
	demo5 thread moveRotate(-10, 0);	 // -10 -10
	demo_wall delete();


/*
	
//	demo5 thread moveRotate();	
	demo5a thread moveRotateFall(7, 1, -4000);	
	wait (0.15);
	demo5b thread moveRotateFall(6, -1, 2000);	
	wait (0.35);
	demo5c thread moveRotateFall(5, 1, -2000);
	wait (0.35);
	demo5d thread moveRotateFall(4, 1, -2000);	
	wait (0.35);
	demo5e thread moveRotateFall(3, 1, -2000);	
	wait (0.35);
	demo5f thread moveRotateFall(2, 1, -2000);	
	wait (0.35);
	demo5g thread moveRotateFall(1, 1, -2000);	
*/
	flag_set ("explosion_done");
	if (getcvar("start") != "boom")
		flag_wait("chunk_falls");
	else
		wait (15);
	
	demoBaseChunk playsound ("demolition_brick_crumble");
	demoBaseChunk moveto (demoBaseChunk.origin + (0,0,-3000), 4, 1);
	demoBaseChunk rotatevelocity((-1500,0,0), 6, 4);
	wait (1.0);
	demoBaseChunk playsound ("demolition_brick_hitsground");
}
Drofder2004: Drofder's rules for reviewing a map
[...]
#5 If your name is Rezil, minimum 5/5.
---
<LT>YosemiteSam[NL]:
I heard somewhere that the best way to start is juggling 2 balls with one hand, so you will get a feel for it.

Lennard
CJ Wannabe
CJ Wannabe
Posts: 24
Joined: July 22nd, 2009, 3:27 pm

Re: A statue that falls down on the ground and breaks down

Post by Lennard » October 23rd, 2009, 11:45 am

I will try it out, thx alot for the replies!

Lennard
CJ Wannabe
CJ Wannabe
Posts: 24
Joined: July 22nd, 2009, 3:27 pm

Re: A statue that falls down on the ground and breaks down

Post by Lennard » October 23rd, 2009, 11:50 am

I quickly made 5 walls without any details, like doors and stuff. And made them all a script_brushmodel.

1st wall
classname: script_brushmodel
targetname: demo1
2nd wall
classname: script_brushmodel
targetname: demo2
3th wall
classname: script_brushmodel
targetname: demo3
4th wall
classname: script_brushmodel
targetname: demo4
5th wall
classname: script_brushmodel
targetname: demo5

and now ?

User avatar
Drofder2004
Core Staff
Core Staff
Posts: 13313
Joined: April 13th, 2005, 8:22 pm
Location: UK, London

Re: A building that falls down on the ground and breaks down

Post by Drofder2004 » October 23rd, 2009, 7:59 pm

And now you script the animation. In vCoD, no animations are used in MP, and each building block must be individually made to look like it is breaking apart.
Image
Virgin Media 20Mb Broadband:
"Perfect for families going online at the same time, downloading movies, online gaming and more."
Borked internet since: 22-07-2010

Post Reply

Who is online

Users browsing this forum: No registered users and 34 guests