obj_team3 script meaning

Post your scripting questions / solutions here

Moderator: Moderators

Post Reply
madcow
Lance Corporal
Posts: 13
Joined: Wed Jun 05, 2002 2:32 pm
Location: Netherlands
Contact:

obj_team3 script meaning

Post by madcow »

Here is the meaning of the obj_team3 script where everybody was waiting for :D maybe tomorow I gonna make all of my addings to the script in green I hope someone wants this script.

main:

level waittill prespawn // does what it says

exec global/DMprecache.scr // load the precache script

thread global/minefield.scr::minefield_setup // activates the mine field could someone tell me were that mine field is in that level
$spawn_allied2 disablespawn // dissables the spawning points behind the fence
$spawn_allied3 disablespawn // same

$spawn_axis3 disablespawn // dissables also spawning points for the axis but don't know where they are play to little axis
$spawn_axis4 disablespawn // same

$bangalore_nopulse_left hide // hides the normal bangalore that not pulsade from the left side
$bangalore_nopulse_center hide // same but from the center
$bangalore_nopulse_right hide // same but from the right one

$world northyaw 270 // don't know

$world farplane 7500 // sets the fog at that distance
$world farplane_color (0.675 0.663 0.651) // sets the fog collor

level.script = maps/obj/obj_team5.scr // says where the level script is.
exec global/ambient.scr obj_team5 // says where the music script is.

setcvar "g_obj_alliedtext1" "- Breach the shingle"
setcvar "g_obj_alliedtext2" "- Destroy two 15cm"
setcvar "g_obj_alliedtext3" "cannons"
setcvar "g_obj_axistext1" "- Prevent Allies from"
setcvar "g_obj_axistext2" "taking the beach"
setcvar "g_obj_axistext3" ""
setcvar "g_scoreboardpic" "objdm5"
// the score bord text and script
level waittill spawn // does what it says

level.bomb_damage = 200 // how much damage the bom does
level.bomb_explosion_radius = 640 // how far the bom damage goes
level.defusing_team = "axis" // does what it says
level.planting_team = "allies" // does what it says
level.dmrespawning = 1 // 1 or 0 if you respawn(1) or not respawn(0)
level.dmroundlimit = 10 // round time limit in minutes
level.clockside = axis // set to axis, allies, kills, or draw

level waittill roundstart // does what it says

$88mm_explosive1 thread global/obj_dm.scr::bomb_thinker // sets the objective explosion script
$88mm_explosive2 thread global/obj_dm.scr::bomb_thinker // sets the objective explosion script

$88mm_explosive1 thread axis_win_timer // I don't know precisly
thread allies_win_bomb $88mm_explosive1 $88mm_explosive2 // This one gives through that it should look up those 2 objectives and pass it through to the allies_win_bomb thread

thread bomb1_exploded $88mm_explosive1 // this one says that the bomb1_explode thread should look up the script_object with a targetname of $88mm_explosive1
thread bomb2_exploded $88mm_explosive2 // this one says that the bomb1_explode thread should look up the script_object with a targetname of $88mm_explosive2

thread random_explode_setup // thread the random explosions on the beach

thread shingle_setup // thread the script to activate the shingle_setup

end


//*** --------------------------------------------
//*** "Axis Victory"
//*** --------------------------------------------

axis_win_timer:

level waittill axiswin // waits till axis win.

end

//*** --------------------------------------------
//*** "Allied Victory"
//*** --------------------------------------------

allies_win_bomb local.bomb1 local.bomb2:

while (local.bomb1.exploded != 1)
waitframe

while (local.bomb2.exploded != 1) // waits till both are destroyed before continued
waitframe

teamwin allies // changes the line at the beginning of level.clockside and then will be progressed that the allies win.
end


//*** --------------------------------------------
//*** "Bomb 1 Exploded"
//*** --------------------------------------------

bomb1_exploded local.bomb1:

while (local.bomb1.exploded != 1) // waits till that bomb explodes

wait .1 // wait a little time for the script to progress all the information if this line is not in mohaa will think that this script will run forever and then your level crashes because mohaa can't see the end line because mohaa didn't got that far.

iprintlnbold "Allies have destroyed the Western Cannon!" // prints a message

$spawn_axis2 disablespawn // dissables spawning here.
$spawn_axis3 enablespawn // will spawn here now.

end


//*** --------------------------------------------
//*** "Bomb 2 Exploded" // same as the last bomb exploded thread.
//*** --------------------------------------------

bomb2_exploded local.bomb2:

while (local.bomb2.exploded != 1)

wait .1

iprintlnbold "Allies have destroyed the Eastern Cannon!"

$spawn_axis2 disablespawn
$spawn_axis4 enablespawn

end


//*** --------------------------------------------
//*** "Shingle"
//*** --------------------------------------------

shingle_setup: // the shingle setup thread

thread shingle_left_start // tels him to go to the left start script
thread shingle_center_start // tels him to go to the center start script
thread shingle_right_start // tels him to go to the right start script

end

shingle_left_start:

$bangalore_trigger_left waittill trigger // this says that the script must wait until that trigger is triggerd

local.player = parm.other // dont know maybe they find it a better word than parm.other :lol:

if (local.player.dmteam != axis) // this says that only a allies can activate this trigger not axis because != means not equel
{
goto shingle_left // then the script goes to the tread shingle_left
}

end

shingle_left: // the shingle left script

$bangalore_left playsound plantbomb1 // plays the sound that the bomb is planted
$bangalore_left remove // removes the pulsating bangalore
$bangalore_nopulse_left show // shows the not pulsating bangalore

wait 8 // waits 8 seconds and then boom :lol:

$bangalore_explosion_left1 anim start // shows 1 of the 2 explosions
$bangalore_explosion_left2 anim start // shows the second explosion
radiusdamage $bangalore_explosion_left2.origin 640 384 // makes the damage around the bangalore
$bangalore_nopulse_left remove // removes the bangalore
$barbwire_clip_left remove // removes the barbwire clip that is for that you can't get stuck at the front of the barbwire.
$barbwire_collision_left remove // removes the barbwire collision I think that is that you bullets get stopt by the barbwire
$barbwire_left remove // removes the barbwire
$spawn_axis1 disablespawn // disables the first axis spawn point

end

shingle_center_start: // same as the last shingle start don't gonna retype everything

$bangalore_trigger_center waittill trigger

local.player = parm.other

if (local.player.dmteam != axis)
{
goto shingle_center
}

end

shingle_center: // same as the last shingle

$bangalore_center playsound plantbomb1
$bangalore_center remove
$bangalore_nopulse_center show

wait 8

$bangalore_explosion_center1 anim start
$bangalore_explosion_center2 anim start
radiusdamage $bangalore_nopulse_center.origin 640 384
$bangalore_nopulse_center remove
$barbwire_clip_center remove
$barbwire_collision_center remove
$barbwire_center remove
$spawn_axis1 disablespawn
$spawn_allied1 disablespawn
$spawn_allied2 enablespawn

end

shingle_right_start: // same as the last shingle start

$bangalore_trigger_right waittill trigger

local.player = parm.other

if (local.player.dmteam != axis)
{
goto shingle_right
}

end

shingle_right: // same as the last shingle and my hands are getting tierd

$bangalore_right playsound plantbomb1
$bangalore_right remove
$bangalore_nopulse_right show

wait 8

$bangalore_explosion_right1 anim start
$bangalore_explosion_right2 anim start
radiusdamage $bangalore_nopulse_right.origin 640 384
$bangalore_nopulse_right remove
$barbwire_clip_right remove
$barbwire_collision_right remove
$barbwire_right remove
$spawn_axis1 disablespawn
$spawn_axis2 enablespawn
$spawn_allied1 disablespawn
$spawn_allied3 enablespawn

end


//*** --------------------------------------------
//*** "Random Beach Explosions"
//*** --------------------------------------------

random_explode_setup: // setups the random explosions

thread random_explode1 // threads the random explosions
thread random_explode2
thread random_explode3
thread random_explode4
thread random_explode5
thread random_explode6
thread random_explode7

end

random_explode1: // the first random explosion don't gonna explain all of them but only the first one.

wait (randomfloat 13 + 23) // the script waits a random time between 13 and 23 seconds

$random_explode1_origin playsound arty_leadinmp // he plays that flute sound just before the crater explodes

wait 1 // does what it says

$random_explode1 anim start // begins the explosion animation
radiusdamage $random_explode1_origin 256 384 // lets people get killed by the explosion

goto random_explode1 // goto the begin of this thread for the repetion.

random_explode2:

wait (randomfloat 7 + 20)

$random_explode2_origin playsound arty_leadinmp

wait 1

$random_explode2 anim start
radiusdamage $random_explode2_origin 256 384

goto random_explode2

random_explode3:

wait (randomfloat 9 + 18)

$random_explode3_origin playsound arty_leadinmp

wait 1

$random_explode3 anim start
radiusdamage $random_explode3_origin 256 384

goto random_explode3

random_explode4:

wait (randomfloat 12 + 18)

$random_explode4_origin playsound arty_leadinmp

wait 1

$random_explode4 anim start
radiusdamage $random_explode4_origin 256 384

goto random_explode4

random_explode5:

wait (randomfloat 15 + 22)

$random_explode5_origin playsound arty_leadinmp

wait 1

$random_explode5 anim start
radiusdamage $random_explode5_origin 256 384

goto random_explode5

random_explode6:

wait (randomfloat 8 + 15)

$random_explode6_origin playsound arty_leadinmp

wait 1

$random_explode6 anim start
radiusdamage $random_explode6_origin 256 384

goto random_explode6

random_explode7:

wait (randomfloat 10 + 24)

$random_explode7_origin playsound arty_leadinmp

wait 1

$random_explode7 anim start
radiusdamage $random_explode7_origin 256 384

goto random_explode7

end // ends them all
Surgeon
Site Admin
Posts: 1386
Joined: Tue Jun 04, 2002 1:15 am
Location: Stirling, Scotland
Contact:

Post by Surgeon »

The mine field is located at the edges of the beach and up top / to the sides of the German bunkers :D
Admin
Image

.map Forums

Truth and Honor.
Random Error
Lance Corporal
Posts: 10
Joined: Wed Jun 05, 2002 9:04 am
Location: Netherlands

Post by Random Error »

$world northyaw 270 // don't know

I would assume it does the same as the northyaw in the worldspawn entity, it sets which angle of the map is north.
Random Error
Lance Corporal
Posts: 10
Joined: Wed Jun 05, 2002 9:04 am
Location: Netherlands

Post by Random Error »

thread bomb1_exploded $88mm_explosive1 // this one says that the bomb1_explode thread should look up the script_object with a targetname of $88mm_explosive1
thread bomb2_exploded $88mm_explosive2 // this one says that the bomb1_explode thread should look up the script_object with a targetname of $88mm_explosive2


Are you sure about this? I don't really know much about scripting, but I thought those lines say to run thread bomb1_exploded when $88mm_explosive1 does it's thing. Because thread bomb1_exploded is the message that is shown in the game when the gun explodes. That thread is after the "end" that ends the main script and thus is only used when called for by a line in the main script.

Or am I misunderstanding your explenation?
tstrait72
Second Lieutenant
Posts: 154
Joined: Tue Jun 04, 2002 1:25 am
Location: York, PA U.S.A.
Contact:

Post by tstrait72 »

i think your right on that too, Random Error... :D
Toby, or not Toby, that is the question...

Staff Member
MoH Design
madcow
Lance Corporal
Posts: 13
Joined: Wed Jun 05, 2002 2:32 pm
Location: Netherlands
Contact:

Post by madcow »

I dont know why they do that on that way but what I have seen and I even have tried it out it will pass on that variable to the thread because the thread searches for a local gun because I think that in while commands cannot use targetnames because 2 variables are locked together a variable local.bomb and a variable local.bomb.exploded and there must be a bomb specified.

So for shorter that targetname $88mm_explosive1 will be changed by the script in the variable local.bomb1 and that will be used as a check command in the global/obj_dm script command that the target is already exploded and that question is asked by the line while (local.bomb1.exploded != 1) because if the bomb is not exploded then the local.bomb1.exploded = 1.
It is easier then it looks.
obersturmfuhrer
Lance Corporal
Posts: 13
Joined: Sun Jul 07, 2002 12:50 pm
Location: Orlando, Florida & Augsburg, Germany
Contact:

Post by obersturmfuhrer »

Sure you can use an object's targetname in a while statement. They just set it to a local variable for convenience. So that for each bomb they have exactly the same code. It actually better that way because there is less room for typing errors in the script.

Here is an example:

while ($88mm_explosive1.exploded != 1)
{
wait .1
}
Oops, I threw the pin instead of the grenade!
Author of "The Last Castle" map
Post Reply