Script Suddenly Stopped Excecuting...

Post your scripting questions / solutions here

Moderator: Moderators

Post Reply
Goldeneye090
Colour Sergeant
Posts: 79
Joined: Mon May 10, 2004 10:11 pm

Script Suddenly Stopped Excecuting...

Post by Goldeneye090 »

Ok...I Don't know what change I possibly could have made to the script, but it doesn't excecute itself in the game anymore...can't see the objectives in the tab menu when playing..or do them...well here it is:

main:
level waittill prespawn

exec global/DMprecache.scr
level.script = maps/obj/obj_territory.scr
exec global/ambient.scr m4l1

exec global/door_locked.scr::lock

setcvar "g_obj_alliedtext1" "Destroy the Flak88"
setcvar "g_obj_alliedtext2" "Defend the stolen"
setcvar "g_obj_alliedtext3" "Documents"
setcvar "g_obj_axistext1" "Defend the Flakk88"
setcvar "g_obj_axistext2" "Retrieve the stolen"
setcvar "g_obj_axistext3" "Documents"
setcvar "g_scoreboardpic" "none"

level waittill spawn

thread controls
level.bomb_damage = 300
level.bomb_explosion_radius = 650
level.defusing_team = "axis"
level.planting_team = "allies"
level.targets_to_destroy = 1
level.dmrespawning = 1
level.dmroundlimit = 15
level.clockside = draw

level waittill roundstart

$flak88_explosive1 thread global/obj_dm.scr::bomb_thinker
$flak88_explosive1 thread axis_win_timer
thread allies_win_bomb
end

axis_win_timer:
level waittill axiswin
end

allies_win_bomb:
while(level.targets_destroyed < level.targets_to_destroy)
waitframe
teamwin allies
end

controls:
local.light = $el
local.door = $ed
local.trigger = $et
local.switch = $es
local.elevator = $e
local.light bind local.elevator
local.door bind local.elevator
local.switch bind local.elevator
local.trigger bind local.elevator
local.elevator time 8

while(1)
{
local.trigger waittill trigger
local.switch anim move
local.trigger nottriggerable
wait 1
local.door movedown 128
wait 3
local.elevator loopsound Mec_ElevatorRun_01
local.elevator moveup 1498
local.elevator waitmove
local.elevator stoploopsound
wait 3
local.door moveup 128
wait 2
local.switch anim move
local.trigger triggerable
local.trigger waittill trigger
local.switch anim move
local.trigger nottriggerable
wait 1
local.door movedown 128
wait 3
local.elevator loopsound Mec_ElevatorRun_01
local.elevator movedown 1498
local.elevator waitmove
local.elevator stoploopsound
wait 3
local.door moveup 128
wait 2
local.switch anim move
local.trigger triggerable
end
}
waitframe
}
end


Can someone please tell me all the possible things that could have gotten messed up?

Oh yah...and if anyone finds out what is wrong with that script, can you please tell me how I can add the following script to the last one...the script above is the script for the flak88, and the elevator...along with all the basic map stuff....the following script is for the Capture the documents script...it works fine alone...here it is:

// OBJ_Territory
// ARCHITECTURE: GoldenEye/Dragon
// SCRIPTING: GoldenEye/Dragon

main:


level waittill prespawn


exec global/DMprecache.scr
level.script = maps/obj/obj_territory.scr
exec global/ambient.scr


level waittill spawn


// Set the parameters for round based match


level.dmrespawning = 1
level.dmroundlimit = 15
level.clockside = allies


// level waittill roundstart // Comment out this line using '//' before it to be able to set the bomb when alone on the map ( just for testing )


thread desk_document_check // Start the win check thread for allies
level waittill allieswin // If the end of the match is reached, the Allies win


end

// Document checks

desk_document_check:

while(1)
{ $documents_trigger waittill trigger // Dont execute past this line until someone triggers the object
if (parm.other.dmteam == axis)
{ // parm.other is the triggerer ( testing here to ensure only axis can complete the ojective )
$documents hide // make the document graphix disappear
break // exit the while loop
}
waitframe // protection against making this thread use too much CPU
}
teamwin axis // make axis win the match
end


So if anyone can fix the first script and combine it with the second one so both objectives and the elevator all work...that would be great, thanks!

GoldenEye
Green Beret
Major General
Posts: 746
Joined: Mon Apr 19, 2004 12:21 pm
Contact:

Post by Green Beret »

only thing i see that might not let it execute,is at the top were it says
thread controls
i think it should be followed by end

i could be wrong.
Image
User avatar
bdbodger
Moderator
Posts: 2596
Joined: Tue Feb 25, 2003 7:34 am
Location: canada
Contact:

Post by bdbodger »

In your controls thread you have an odd number of brackets

while(1)
{
....
....
local.trigger triggerable
end
}
waitframe
}
end

for every { you need 1 } you have 2 }'s

also if you are going to have a while(1) loop don't have the word end inside the loop maybe take out the end and the } after the local.trigger triggerable line at the bottom of the thread
Image
Green Beret
Major General
Posts: 746
Joined: Mon Apr 19, 2004 12:21 pm
Contact:

Post by Green Beret »

lmao

good eye bd :wink:
Image
Goldeneye090
Colour Sergeant
Posts: 79
Joined: Mon May 10, 2004 10:11 pm

...

Post by Goldeneye090 »

How did I...But...Wo...Thanks a lot! It works again.

Do you know how to combine the two scripts so the documents work too? (The capture-the-documents script works successfully by itself)

So I need the following two scripts to be combined:

main:
level waittill prespawn

exec global/DMprecache.scr
level.script = maps/obj/obj_territory.scr
exec global/ambient.scr m4l1

exec global/door_locked.scr::lock

setcvar "g_obj_alliedtext1" "Destroy the Flak88"
setcvar "g_obj_alliedtext2" "Defend the stolen"
setcvar "g_obj_alliedtext3" "Documents"
setcvar "g_obj_axistext1" "Defend the Flakk88"
setcvar "g_obj_axistext2" "Retrieve the stolen"
setcvar "g_obj_axistext3" "Documents"
setcvar "g_scoreboardpic" "none"

level waittill spawn

thread controls
level.bomb_damage = 300
level.bomb_explosion_radius = 650
level.defusing_team = "axis"
level.planting_team = "allies"
level.targets_to_destroy = 1
level.dmrespawning = 1
level.dmroundlimit = 15
level.clockside = draw

// level waittill roundstart

$flak88_explosive1 thread global/obj_dm.scr::bomb_thinker
$flak88_explosive1 thread axis_win_timer
thread allies_win_bomb
end

axis_win_timer:
level waittill axiswin
end

allies_win_bomb:
while(level.targets_destroyed < level.targets_to_destroy)
waitframe
teamwin allies
end

controls:
local.light = $el
local.door = $ed
local.trigger = $et
local.switch = $es
local.elevator = $e
local.light bind local.elevator
local.door bind local.elevator
local.switch bind local.elevator
local.trigger bind local.elevator
local.elevator time 8

while(1)
{
local.trigger waittill trigger
local.switch anim move
local.trigger nottriggerable
wait 1
local.door movedown 128
wait 3
local.elevator loopsound Mec_ElevatorRun_01
local.elevator moveup 1498
local.elevator waitmove
local.elevator stoploopsound
wait 3
local.door moveup 128
wait 2
local.switch anim move
local.trigger triggerable
local.trigger waittill trigger
local.switch anim move
local.trigger nottriggerable
wait 1
local.door movedown 128
wait 3
local.elevator loopsound Mec_ElevatorRun_01
local.elevator movedown 1498
local.elevator waitmove
local.elevator stoploopsound
wait 3
local.door moveup 128
wait 2
local.switch anim move
local.trigger triggerable

waitframe
}
end


and

// OBJ_Territory
// ARCHITECTURE: GoldenEye/Dragon
// SCRIPTING: GoldenEye/Dragon

main:


level waittill prespawn


exec global/DMprecache.scr
level.script = maps/obj/obj_territory.scr
exec global/ambient.scr


level waittill spawn


// Set the parameters for round based match


level.dmrespawning = 1
level.dmroundlimit = 15
level.clockside = allies


// level waittill roundstart // Comment out this line using '//' before it to be able to set the bomb when alone on the map ( just for testing )


thread desk_document_check // Start the win check thread for allies
level waittill allieswin // If the end of the match is reached, the Allies win


end

// Document checks

desk_document_check:

while(1)
{ $documents_trigger waittill trigger // Dont execute past this line until triggered
if (parm.other.dmteam == axis)
{ // parm.other is the triggerer
$documents hide
break // exit the while loop
}
waitframe
}
teamwin axis
end


Oh yah...I also want it to be set where if the end of the match is reached, it's a draw...
level waittill allieswin // If the end of the match is reached, the Allies win

I wasn't sure if that line in the script should be changed to level waittill drawwin so I didn't take a chance...but I need to know every line that needs to be changed to make it a draw if the time runs out...Thanks again!

GoldenEye
User avatar
bdbodger
Moderator
Posts: 2596
Joined: Tue Feb 25, 2003 7:34 am
Location: canada
Contact:

Post by bdbodger »

As far as who wins when the clock runs out then here is your answer

level.clockside = allies // set to axis, allies, kills, or draw

As far as the documents part goes the most important thing is how the game gets to the line

teamwin axis

or

teamwin allies

As soon as your script executes either one of those lines then obviously one or the other team will win . So it is simple instead of this thread in the first part

axis_win_timer:
level waittill axiswin
end

use the documents thread instead .
Image
Post Reply