New Spawns

Post your scripting questions / solutions here

Moderator: Moderators

Post Reply
mffpetergriffin
Sergeant
Posts: 64
Joined: Sat Jan 26, 2008 4:53 pm
Contact:

New Spawns

Post by mffpetergriffin »

I have been looking for a while for topics for this and I'm sure I have found some that are perfect but just didn't realize it. I don't know what to be looking for specifically. I am new to scripting but I'm trying to put new spawn points in the coutyard of Stali. It doesn't matter if they are Allies, Axis, or DM. I know how to get coordinates and all that but I don't know what to put in to create new ones, I only know how to blocks ones that are already there. I also know how to create things like crates using:

Code: Select all

 local.fix1 = spawn script_model model model modes/static/indycrate.tik origin (coordinates) angle (...) 
Can someone just give me an example of what to put in the scr file to create a bunch of spawns?
Thank you so much!!
User avatar
ViPER
General
Posts: 1058
Joined: Fri Jan 14, 2005 5:48 pm
Location: California
Contact:

Post by ViPER »

here-

Code: Select all

level.dm = spawn info_player_deathmatch origin ( 2210.613 -1383.666 -359.875 ) angle ( 355.479 )
level.allied = spawn info_player_allied origin ( 2930.617 621.450 -430.525 ) angle ( 241.798 )
level.axis = spawn info_player_axis origin ( 2930.617 621.450 -430.525 ) angle ( 241.798 )

mffpetergriffin
Sergeant
Posts: 64
Joined: Sat Jan 26, 2008 4:53 pm
Contact:

Post by mffpetergriffin »

How does this look? It doesn't load right so nothing is different when I start up a server running Stali.

Code: Select all

// STALINGRAD
// ARCHITECTURE: ZIED, POWZER
// SCRIPTING: POWZER

main:

// set scoreboard messages
setcvar "g_obj_alliedtext1" "Stalingrad"
setcvar "g_obj_alliedtext2" ""
setcvar "g_obj_alliedtext3" ""
setcvar "g_obj_axistext1" ""
setcvar "g_obj_axistext2" ""
setcvar "g_obj_axistext3" ""

setcvar "g_scoreboardpic" "mohdm6"

	// call additional stuff for playing this map round based is needed
	if(level.roundbased)
		thread roundbasedthread
exec maps/mapfixes/Spawnspots/spawnspots_dm7.scr::ffa

	level waittill prespawn
	
	//*** Precache Dm Stuff
	exec global/DMprecache.scr

	exec global/door_locked.scr::lock
	level.script = maps/dm/mohdm6.scr
	exec global/ambient.scr mohdm6
	
	level waittill spawn

end

//-----------------------------------------------------------------------------

roundbasedthread:

	// Can specify different scoreboard messages for round based games here.

	level waitTill prespawn

	level waittill spawn

	// set the parameters for this round based match
	level.dmrespawning = 0 // 1 or 0
	level.dmroundlimit = 5 // round time limit in minutes
	level.clockside = kills // set to axis, allies, kills, or draw

	level waittill roundstart

end


blocks:


local.fix1 = spawn script_model model models/static/indycrate.tik origin (-67.16 -279.35 -153) angle (90)
local.fix1 = spawn script_model model models/static/indycrate.tik origin (-67.16 -279.35 -106) angle (90)
local.fix1 = spawn script_model model models/static/indycrate.tik origin (-67.16 -279.35 -59) angle (90)
local.fix1 = spawn script_model model models/static/indycrate.tik origin (388.16 510.65 -153) angle (270)
local.fix1 = spawn script_model model models/static/indycrate.tik origin (388.16 510.65 -106) angle (270)
local.fix1 = spawn script_model model models/static/indycrate.tik origin (388.16 510.65 -59) angle (270)
local.fix1 = spawn script_model model models/static/indycrate.tik origin (761.21 15.84 -153) angle (0)
local.fix1 = spawn script_model model models/static/indycrate.tik origin (761.21 15.84 -106) angle (0)
local.fix1 = spawn script_model model models/static/indycrate.tik origin (761.21 15.84 -59) angle (0)
local.fix1 = spawn script_model model models/static/hedgehog.tik origin (119 100 -153) angle (0)
level.dm = spawn info_player_deathmatch origin (500 495 -134) angle (315)
level.dm = spawn info_player_deathmatch origin (164 487 -109) angle (225)
level.dm = spawn info_player_deathmatch origin (161 -10 -138) angle (225)
level.dm = spawn info_player_deathmatch origin (-777 -235 -121) angle (45)
level.dm = spawn info_player_deathmatch origin (-611 929 -142) angle (270)
level.dm = spawn info_player_deathmatch origin (-764 696 -142) angle (270)
level.dm = spawn info_player_deathmatch origin (-573 568 -142) angle (270)
level.dm = spawn info_player_deathmatch origin (-672 175 -130) angle (0)
level.dm = spawn info_player_deathmatch origin (-531 240 -130) angle (0)
level.dm = spawn info_player_deathmatch origin (-530 3 -144) angle (0)
level.dm = spawn info_player_deathmatch origin (-332 95 -142) angle (0)
level.dm = spawn info_player_deathmatch origin (-318 476 -142) angle (270)
level.dm = spawn info_player_deathmatch origin (136 85 31) angle (180)
level.allied = spawn info_player_allied origin (500 473 -134) angle (315)
level.allied = spawn info_player_allied origin (133 492 -109) angle (225)
level.allied = spawn info_player_allied origin (130 -5 -138) angle (225)
level.allied = spawn info_player_allied origin (-723 -233 -125) angle (45)
level.axis = spawn info_player_axis origin (500 454 -134) angle (315)
level.axis = spawn info_player_axis origin (175 462 -109) angle (225)
level.axis = spawn info_player_axis origin (172 -35 -138) angle (225)
level.axis = spawn info_player_axis origin (-723 -233 -125) angle (45)



thread blockingSpawnpoints
end

blockingSpawnpoints:
thread blockSpawnPoint (-1152 8 512) //South Building
thread blockSpawnPoint (-1152 -32 512)
thread blockSpawnPoint (-1152 -72 512)
thread blockSpawnPoint (-964 -168 262)
thread blockSpawnPoint (-964 -184 262)
thread blockSpawnPoint (-964 -192 262)
thread blockSpawnPoint (-1136 784 512)
thread blockSpawnPoint (-1136 816 512)
thread blockSpawnPoint (-1136 817 512)
thread blockSpawnPoint (-1136 785 512)
thread blockSpawnPoint (-1136 848 512)
thread blockSpawnPoint (-1136 849 512)
thread blockSpawnPoint (-964 -168 262)
thread blockSpawnPoint (-964 -184 262)
thread blockSpawnPoint (-964 -192 262)
thread blockSpawnPoint (-420 -845 288) //East Building
thread blockSpawnPoint (-422 -809 288)
thread blockSpawnPoint (-422 -809 288)
thread blockSpawnPoint (-408 -808 48)
thread blockSpawnPoint (-408 -768 48)
thread blockSpawnPoint (-400 -720 48)
thread blockSpawnPoint (-484 -610 48)
thread blockSpawnPoint (-484 -570 48)
thread blockSpawnPoint (-484 -530 48)
thread blockSpawnPoint (-586 -614 48)
thread blockSpawnPoint (-618 -614 48)
thread blockSpawnPoint (-650 -614 48)
thread blockSpawnPoint (-632 -610 288)
thread blockSpawnPoint (-632 -578 288)
thread blockSpawnPoint (-664 -586 288)
thread blockSpawnPoint (-336 -556 -147)
thread blockSpawnPoint (-336 -524 -147)
thread blockSpawnPoint (-336 -492 -147)
thread blockSpawnPoint (448 -160 48) //Locker Room
thread blockSpawnPoint (240 -136 -136)//Boiler Room
thread blockSpawnPoint (240 -104 -136)
thread blockSpawnPoint (240 -72 -136)
thread blockSpawnPoint (1072 608 314) //North Roof
thread blockSpawnPoint (1040 608 314)
thread blockSpawnPoint (1008 608 314)
thread blockSpawnPoint (248 944 528) //West Building
thread blockSpawnPoint (248 992 528)
thread blockSpawnPoint (248 1040 528)
thread blockSpawnPoint (-312 896 528)
thread blockSpawnPoint (-312 936 528)
thread blockSpawnPoint (-312 984 528)
thread blockSpawnPoint (-408 991 528)
thread blockSpawnPoint (-448 991 528)
thread blockSpawnPoint (-488 991 528)
thread blockSpawnPoint (-432 911 288)
thread blockSpawnPoint (-432 919 288)
thread blockSpawnPoint (-432 935 288)
thread blockSpawnPoint (-280 904 288)
thread blockSpawnPoint (-280 936 288)
thread blockSpawnPoint (-280 968 288)
thread blockSpawnPoint (236 984 288)
thread blockSpawnPoint (236 992 288)
thread blockSpawnPoint (236 1008 288)
thread blockSpawnPoint (244 984 48)
thread blockSpawnPoint (244 992 48)
thread blockSpawnPoint (244 984 48)
thread blockSpawnPoint (-312 960 48)
thread blockSpawnPoint (-312 928 48)
thread blockSpawnPoint (-312 896 48)
thread blockSpawnPoint (-432 911 48)
thread blockSpawnPoint (-432 919 48)
thread blockSpawnPoint (-432 935 48)
thread blockSpawnPoint (-400 792 -136)
thread blockSpawnPoint (-400 824 -136)
thread blockSpawnPoint (-400 856 -136)
thread blockSpawnPoint (418 871 -136)
thread blockSpawnPoint (418 839 -136)
thread blockSpawnPoint (418 807 -136)

end
User avatar
ViPER
General
Posts: 1058
Joined: Fri Jan 14, 2005 5:48 pm
Location: California
Contact:

Post by ViPER »

I see two things -

1. what's this?

Code: Select all

exec maps/mapfixes/Spawnspots/spawnspots_dm7.scr::ffa 
do you intend to exec something that looks like it is for Algiers?

2. You did not thread "blocks" from the main.

add this just before end

Code: Select all

thread blocks
mffpetergriffin
Sergeant
Posts: 64
Joined: Sat Jan 26, 2008 4:53 pm
Contact:

Post by mffpetergriffin »

the exec maps thing goes with another group of files that someone put together for this type of thing. I did forget to change the map name though.
User avatar
ViPER
General
Posts: 1058
Joined: Fri Jan 14, 2005 5:48 pm
Location: California
Contact:

Post by ViPER »

oops, thread blocks just before spawn, not end
Tazz
Second Lieutenant
Posts: 155
Joined: Fri Feb 16, 2007 1:29 pm
Contact:

Post by Tazz »

also at the bottom u have this

Code: Select all

blockingSpawnpoints: 
thread blockSpawnPoint (-1152 8 512) //South Building 
thread blockSpawnPoint (-1152 -32 512) 
thread blockSpawnPoint (-1152 -72 512) 
thread blockSpawnPoint (-964 -168 262) 
thread blockSpawnPoint (-964 -184 262) 
thread blockSpawnPoint (-964 -192 262) 
thread blockSpawnPoint (-1136 784 512) 
thread blockSpawnPoint (-1136 816 512) 
thread blockSpawnPoint (-1136 817 512) 
thread blockSpawnPoint (-1136 785 512) 
thread blockSpawnPoint (-1136 848 512) 
thread blockSpawnPoint (-1136 849 512) 
thread blockSpawnPoint (-964 -168 262) 
thread blockSpawnPoint (-964 -184 262) 
thread blockSpawnPoint (-964 -192 262) 
thread blockSpawnPoint (-420 -845 288) //East Building 
but u have no blockSpawnPoint script in there...u have it threaded but i dont see where it points to....u need the blockSpawnPoint script
mffpetergriffin
Sergeant
Posts: 64
Joined: Sat Jan 26, 2008 4:53 pm
Contact:

Post by mffpetergriffin »

I just got that off of another script I saw somewhere around here. I have no idea what I am doing with it. We got the Stali map working so I started messing with Destroyed Village. I have come to the conclusion that no matter what I do, nothing works. I can't seem to find a good example of the three main objectives I want to learn. Here is what I want to do thus far through scripting:
1. Block off an area of a map using clip brushes and/or various models (I know how to script models but not clips and getting either of them to work is likely another challenge)
2. Block original spawns
3. Creat new spawns in the area I am sectioning off.

I know how to get coordinates, however, the angles throw me off. I can get specific information through radiant after placing something where I want it. That will give me the angle like 180, 90, 225, etc. But when I type coord in console i get the three numbers for angles. I also get this when I rotate something in radiant. I do not know how to use this in the script. I only know the original (coordinates) angle (one number here)...or maybe three there too?

I am probably biting off way more than I can chew as a beginner scripter but it's bugging me that I can't get anything to show up lol.
Tazz
Second Lieutenant
Posts: 155
Joined: Fri Feb 16, 2007 1:29 pm
Contact:

Post by Tazz »

here look at this script...it is staligrad with spawn blocks in the boiler meaning u cant spawn there.......then theres are triggers that take ur weapons from u when u enter the boiler doors making that area BASH only then i have items spawned in there for a walkway...they r just cratelids in a row.....that should cover most of what u want....the triggers are just invisible boxes that do something like a clip only NOT solid.....then u will see the whole spawnblock script....i got the coords from a buddy that got them from the .map file heres the script

Code: Select all

                                                                     
                                                                     
                                                                     
                                             


main:

// set scoreboard messages
setcvar "g_obj_alliedtext1" "Stalingrad"
setcvar "g_obj_alliedtext2" ""
setcvar "g_obj_alliedtext3" ""
setcvar "g_obj_axistext1" "modded by"
setcvar "g_obj_axistext2" "[MFD]Tazz"
setcvar "g_obj_axistext3" ""

setcvar "g_scoreboardpic" "mohdm6"



	switch (waitthread global/libmef/util.scr::get_gametype)
	{
		case "ctf":
		case "ftctf":
			thread setup_randomized_ctf_bases
			break

		case "ft":
		case "rbm":
			waitthread global/libmef/spawn.scr::spawnblock_begin
			break

		case "dem":
		case "ftdem":
			waitthread setup_dem_bases
			break
	}



	waitthread teletrig
	waitthread teletrig1


//-----------------------------------------------------------------------------
	level waittill prespawn
//-----------------------------------------------------------------------------


	
	local.fix1 = spawn script_model model models/static/cratelid2.tik origin ( -185 423 324 ) angle ( 270 )
	local.fix1 = spawn script_model model models/static/cratelid2.tik origin ( -185 398 324 ) angle ( 270 )
	local.fix1 = spawn script_model model models/static/cratelid2.tik origin ( -185 373 324 ) angle ( 270 )
	local.fix1 = spawn script_model model models/static/cratelid2.tik origin ( -185 348 324 ) angle ( 270 )
	local.fix1 = spawn script_model model models/static/cratelid2.tik origin ( -185 323 324 ) angle ( 270 )
	local.fix1 = spawn script_model model models/static/cratelid2.tik origin ( -185 423 324 ) angle ( 270 )
	local.fix1 = spawn script_model model models/static/cratelid2.tik origin ( -185 298 325 ) angle ( 270 )
	local.fix1 = spawn script_model model models/static/cratelid2.tik origin ( -185 273 325 ) angle ( 270 )
	local.fix1 = spawn script_model model models/static/cratelid2.tik origin ( -185 248 325 ) angle ( 270 )
	local.fix1 = spawn script_model model models/static/cratelid2.tik origin ( -185 223 326 ) angle ( 270 )
	local.fix1 = spawn script_model model models/static/cratelid2.tik origin ( -185 198 326 ) angle ( 270 )
	local.fix1 = spawn script_model model models/static/cratelid2.tik origin ( -185 173 326 ) angle ( 270 )
	local.fix1 = spawn script_model model models/static/cratelid2.tik origin ( -185 148 327 ) angle ( 270 )
	local.fix1 = spawn script_model model models/static/cratelid2.tik origin ( -185 148 327 ) angle ( 270 )
	local.fix1 = spawn script_model model models/static/cratelid2.tik origin ( -185 123 327 ) angle ( 270 )
	local.fix1 = spawn script_model model models/static/cratelid2.tik origin ( -185 98 328 ) angle ( 270 )
	local.fix1 = spawn script_model model models/static/cratelid2.tik origin ( -185 73 328 ) angle ( 270 )
	local.fix1 = spawn script_model model models/static/cratelid2.tik origin ( -185 48 328 ) angle ( 270 )
	local.fix1 = spawn script_model model models/static/cratelid2.tik origin ( -185 23 329 ) angle ( 270 )
	local.fix1 = spawn script_model model models/static/cratelid2.tik origin ( -185 -2 329 ) angle ( 270 )
	local.fix1 = spawn script_model model models/static/cratelid2.tik origin ( -185 -27 329 ) angle ( 270 )
	local.fix1 = spawn script_model model models/static/cratelid2.tik origin ( -185 -52 330 ) angle ( 270 )
	local.fix1 = spawn script_model model models/static/cratelid2.tik origin ( -185 -77 330 ) angle ( 270 )
	local.fix1 = spawn script_model model models/static/cratelid2.tik origin ( -185 -102 330 ) angle ( 270 )
	local.fix1 = spawn script_model model models/static/cratelid2.tik origin ( -185 -127 331 ) angle ( 270 )
	local.fix1 = spawn script_model model models/static/cratelid2.tik origin ( -185 -152 331 ) angle ( 270 )
	local.fix1 = spawn script_model model models/static/cratelid2.tik origin ( -185 -177 331 ) angle ( 270 )
	local.fix1 = spawn script_model model models/static/bshelf-tall-thin.tik origin ( -600 -699 272 ) angle ( 360 )
	local.fix1 = spawn script_model model models/static/bshelf-tall-thin.tik origin ( -600 -731 272 ) angle ( 360 )
	local.fix1 = spawn script_model model models/static/bshelf-tall-thin.tik origin ( -600 -763 272 ) angle ( 360 )
	local.fix1 = spawn script_model model models/static/cratelid2.tik origin ( 875 50 45 ) setsize ( -5 -85 -85 ) ( 5 85 85 )


local.clip = spawn script_object 
local.clip.origin = ( 875 65 30 ) 
local.clip.angles = ( 0 0 0) 
local.clip setsize ( -85 -125 -5 ) ( 85 125 5 ) 
local.clip solid 
local.clip nodamage

local.static = spawn script_model 
local.static model "static/cratelid2.tik" 
local.static.origin = ( 875 65 25 ) 
local.static.angles = ( 0 0 0 ) 
local.static.scale = 12.0

local.trig = spawn trigger_multiple 
local.trig.origin = ( 872 190 -75 )  
local.trig setsize ( -82 -5 -60 ) ( 82 5 60 ) 
local.trig setthread Trigger1 

local.trig2 = spawn trigger_multiple 
local.trig2.origin = ( 66 -535 -75 ) 
local.trig2 setsize ( -35 -25 -45 )( 35 25 45 ) 
local.trig2 setthread Trigger2 

local.trig3 = spawn trigger_multiple 
local.trig3.origin = ( 124 103 -67) 
local.trig3 setsize ( -85 -45 -100 )( 85 45 100 ) 
local.trig3 setthread Trigger3 

local.trig4 = spawn trigger_multiple 
local.trig4.origin = ( 315 111 300) 
local.trig4 setsize ( -35 -25 -45 )( 35 25 45 ) 
local.trig4 setthread Trigger4 
 

	
	//*** Precache Dm Stuff
	exec global/DMprecache.scr

	exec global/door_locked.scr::lock
	level.script = maps/dm/mohdm6.scr
	exec global/ambient.scr mohdm6

exec global/spin.scr
exec global/burn.scr
thread blockingSpawnpoints


//-----------------------------------------------------------------------------
	level waittill spawn
//-----------------------------------------------------------------------------



	if (level.mef_baseversion == "sh" || level.mef_baseversion == "bt")
	{
		$world commanddelay 0 farclipoverride -1
	}

end



blockingSpawnpoints://this is the spawnblock all the way down
thread blockSpawnPoint ( 240 -72 -136 ) //these 3 in boiler room
thread blockSpawnPoint ( 240 -136 -136 )
thread blockSpawnPoint ( 240 -104 -136 )
thread blockSpawnPoint ( 848 -48 -136 ) //axis these 3 near bash room inside trigger
thread blockSpawnPoint ( 912 -48 -136 ) //allied
thread blockSpawnPoint ( 880 -48 -136 ) //ffa spawn
end


blockSpawnPoint local.o://this is still part of spawnblock
local.trig = spawn trigger_multiple
local.trig.origin = local.o
local.trig setsize ( -2 -2 -2 ) ( 2 2 1 )
local.trig wait 0.2
local.trig delay 0.0
local.trig.dummy = spawn fx/dummy.tik
local.trig.dummy.origin = local.o
local.trig.dummy setsize ( -2 -2 -1 ) ( 2 2 1 )
local.trig.dummy solid 
local.trig setthread doSpawnPointBlock
end

doSpawnPointBlock: //this is the ACTUAL spawnblock
local.player = parm.other
self.dummy notsolid
while (local.player istouching self)
waitframe
wait 1
self.dummy solid
end

	Trigger1: //this is a trigger to take weapons
local.player=parm.other 
local.player takeall 
local.player item weapons/silencedpistol.tik 
local.player ammo pistol 0 
local.player useweaponclass pistol //this gives u the pistol back
end 

Trigger2: 
local.player=parm.other 
local.player takeall 
local.player item weapons/silencedpistol.tik 
local.player ammo pistol 0 
local.player useweaponclass pistol 
end 

Trigger3: 
local.player=parm.other 
local.player takeall 
local.player item weapons/silencedpistol.tik 
local.player ammo pistol 0 
local.player useweaponclass pistol 
end 

Trigger4: 
local.player=parm.other 
local.player takeall 
local.player item weapons/silencedpistol.tik 
local.player ammo pistol 0 
local.player useweaponclass pistol 
end 

teletrig:
local.smoke1 = spawn script_model model "static/corona_reg.tik"
local.smoke1 origin ( -1051 502 130 )
local.smoke1 light 1 1 1 5 // r g b radius  
local.smoke1 scale .05
local.smoke1 notsolid
local.trig = spawn trigger_multiple
local.trig.origin = ( -1051 502 100 )//this is where u teleport from
local.trig setsize ( -10 -5 -10 ) ( 10 5 10)
local.trig targetname port
$port setthread teleport
end
teleport:
self waittill trigger
local.player = parm.other
local.player tele ( -959 -42 131 )//this is where u teleport to

teletrig1:
local.smoke1 = spawn script_model model "static/corona_reg.tik"
local.smoke1 origin ( -994 90 130 )
local.smoke1 light 1 1 1 25 // r g b radius  
local.smoke1 scale 1
local.smoke1 notsolid
local.trig = spawn trigger_multiple
local.trig.origin = ( -994 90 105 )
local.trig setsize ( -10 -10 -10 ) ( 10 10 10)
local.trig targetname port1
$port1 setthread teleport1
end
teleport1:
self waittill trigger
local.player = parm.other
local.player tele ( -771 -222 -50 )

end




//-----------------------------------------------------------------------------


setup_dem_bases:
	level.mef_settings["ticktime"] = 60

	if (level.mef_gametype == "dem")
	{
		level.mef_settings["respawn"] = 1
	}

	waitthread global/libmef/util.scr::read_gametype_settings

	if (level.mef_gametype == "ftdem" || !level.mef_settings["respawn"])
	{
		waitthread global/libmef/spawn.scr::spawnblock_begin

		if (level.mef_alliedspawnregion == "se")
		{
			local.seteam = "allies"
			local.nwteam = "axis"
		} else
		{
			local.seteam = "axis"
			local.nwteam = "allies"
		}
	} else
	{
		local.seteam = "both"
		local.nwteam = "both"
	}
	
//      -- Base Locations --
//                                                  Team         Coordinates          Angle Description
//                                                  ======       ==================== ===== ===========================================
	waitthread global/libmef/bases.scr::addbase local.seteam " -898  904  496.13    -90 South Bldg Top Level"
	waitthread global/libmef/bases.scr::addbase local.seteam "-1164 -872  272.13     45 South Bldg Staircase"
	waitthread global/libmef/bases.scr::addbase local.seteam " -959  904  256.13    -90 South Bldg Bottom Level"
	waitthread global/libmef/bases.scr::addbase local.nwteam "  379  447  408.13     90 West Bldg Mid Stairs"
	waitthread global/libmef/bases.scr::addbase local.seteam " -108 -624   32.13     90 East Bldg Bottom Level"
	waitthread global/libmef/bases.scr::addbase local.seteam " -103 -624  272.13     90 East Bldg Top Level"
	waitthread global/libmef/bases.scr::addbase local.nwteam "  -39  840   32.13    -90 West Bldg First Floor South Side"
	waitthread global/libmef/bases.scr::addbase local.nwteam "  752  467   32.13   -180 West Bldg First Floor North Side Balcony"
	waitthread global/libmef/bases.scr::addbase local.nwteam "  -82  865  272.13    -90 West Bldg Second Floor South Side"
	waitthread global/libmef/bases.scr::addbase local.nwteam "  752  468  272.13   -180 West Bldg Second Floor North Side Balcony"
	waitthread global/libmef/bases.scr::addbase local.nwteam " -224  585  512.13      0 West Bldg Third Floor South Side"
	waitthread global/libmef/bases.scr::addbase local.nwteam "  928  557  512.13    180 West Bldg Third Floor North Side"
	waitthread global/libmef/bases.scr::addbase local.nwteam "  339  563 -151.88     90 West Bldg Staircase Bottom"
	waitthread global/libmef/bases.scr::addbase both         "  673  160 -151.88    -90 Boiler Room"
	waitthread global/libmef/bases.scr::addbase both         "  223 -129   32.13      0 Locker Room"
	waitthread global/libmef/bases.scr::addbase both         " 1259 -363  304.13    145 North-East Roof Corner"
	waitthread global/libmef/bases.scr::addbase both         "  176 -240 -115.00    145 Courtyard North Side"
	waitthread global/libmef/bases.scr::addbase both         " -784  148 -145.22      0 Courtyard South Side"
end


setup_randomized_ctf_bases:
	waitthread global/libmef/util.scr::read_gametype_settings

	if (level.mef_gametype == "ftctf" || !level.mef_settings["respawn"])
	{
		waitthread setup_nonrespawn_ctf_bases
		end
	}

	// lists the possible base locations for the map
	level.ctf_spots[0]  = waitthread new_ctf_spot "1132 -368 304.13 90" "NR"  // North Roof
	level.ctf_spots[1]  = waitthread new_ctf_spot "-1164 301 496.13 0"  "S3"  // South Bldg 3rd Floor
	level.ctf_spots[2]  = waitthread new_ctf_spot "-1164 467 256.13 0"  "S2"  // South Bldg 2nd Floor
	level.ctf_spots[3]  = waitthread new_ctf_spot "-553 -872 272.13 90" "ED"  // East Bldg Dresser
	level.ctf_spots[4]  = waitthread new_ctf_spot "-132 -624 272.13 90" "E2"  // East Bldg 2nd Floor
	level.ctf_spots[5]  = waitthread new_ctf_spot "-107 -624 32.12 90"  "E1"  // East Bldg 1st Floor
	level.ctf_spots[6]  = waitthread new_ctf_spot "176 656 512.13 180"  "W3S" // West Bldg 3rd Floor South Side
	level.ctf_spots[7]  = waitthread new_ctf_spot "829 1088 512.13 -90" "W3N" // West Bldg 3rd Floor North Side
	level.ctf_spots[8]  = waitthread new_ctf_spot "-512 699 272.13 0"   "W2S" // West Bldg 2nd Floor South Side
	level.ctf_spots[9]  = waitthread new_ctf_spot "829 1088 272.14 -90" "W2N" // West Bldg 2nd Floor North Side
	level.ctf_spots[10] = waitthread new_ctf_spot "-512 697 32.13 0"    "W1S" // West Bldg 1st Floor South Side
	level.ctf_spots[11] = waitthread new_ctf_spot "829 1088 32.13 -90"  "W1N" // West Bldg 1st Floor North Side
	level.ctf_spots[12] = waitthread new_ctf_spot "646 -186 32.13 90"   "B"   // Boiler Room

	for (local.i = 0; local.i < level.ctf_spots.size; local.i++)
	{
		level.ctf_spotlu[level.ctf_spots[local.i].abbr] = level.ctf_spots[local.i]
	}

	// determines which base locations can be selected along with the given base
	level.ctf_spotcomps["NR"]     = "S3"::"S2"::"ED"::"E2"::"W3S"::"W2S"::"W1S"
	level.ctf_spotcomps["S3"]     = "E2"::"W3N"::"W2S"::"W2N"::"B"
	level.ctf_spotcomps["S2"]     = "E2"::"E1"::"W2S"::"W2N"::"W1S"::"W1N"::"B"
	level.ctf_spotcomps["ED"]     = "W3S"::"W3N"::"W2S"::"W2N"::"W1S"::"W1N"::"B"
	level.ctf_spotcomps["E2"]     = "W3S"::"W3N"::"W2S"::"W2N"::"W1S"::"W1N"
	level.ctf_spotcomps["E1"]     = "W1S"::"W1N"::"B"
	level.ctf_spotcomps["W3S"]    = "W1N"::"B"
	level.ctf_spotcomps["W3N"]    = "W1S"::"W1N"::"B"
	level.ctf_spotcomps["W2S"][1] = "B"
	level.ctf_spotcomps["W2N"][1] = "B"
	level.ctf_spotcomps["W1S"][1] = "B"
	level.ctf_spotcomps["W1N"][1] = "B"

	// determines which spawns are disabled for the given base
	// prevents the opposing team from spawning near a team's base
	level.ctf_spotspawn["NR"]  = "NR,W3N"
	level.ctf_spotspawn["S3"]  = "S3,SST"
	level.ctf_spotspawn["S2"]  = "S3,S2,SSB"
	level.ctf_spotspawn["ED"]  = "SST,SSB,ES2"
	level.ctf_spotspawn["E2"]  = "E2,ES2"
	level.ctf_spotspawn["E1"]  = "E1,E1B,ES1"
	level.ctf_spotspawn["W3S"] = "S3,W3SB,W3S,W3N"
	level.ctf_spotspawn["W3N"] = "W3SB,W3S,W3N"
	level.ctf_spotspawn["W2S"] = "W2SB,W2S,W2N"
	level.ctf_spotspawn["W2N"] = "W2SB,W2S,W2N"
	level.ctf_spotspawn["W1S"] = "W1SB,W1S,W1N"
	level.ctf_spotspawn["W1N"] = "W1SB,W1S,W1N"
	level.ctf_spotspawn["B"]   = "B,CS"

	local.spotconfigs = waitthread enumerate_spot_configs level.ctf_spots level.ctf_spotcomps
	local.spotconfig = local.spotconfigs[randomint(local.spotconfigs.size)]

	if (randomint(2) == 0)
	{
		local.alliedspot = local.spotconfig[0]
		local.axisspot = local.spotconfig[1]
	} else
	{
		local.alliedspot = local.spotconfig[1]
		local.axisspot = local.spotconfig[0]
	}
	
	level.ctf_settings["alliedbase"] = local.alliedspot.pos
	level.ctf_settings["axisbase"] = local.axisspot.pos
	
	level waittill prespawn

	waitthread global/libmef/spawn.scr::close_spawns (waitthread global/libmef/spawn.scr::define_spawnregion "axis" level.ctf_spotspawn[local.alliedspot.abbr])
	waitthread global/libmef/spawn.scr::close_spawns (waitthread global/libmef/spawn.scr::define_spawnregion "allies" level.ctf_spotspawn[local.axisspot.abbr])
end


new_ctf_spot local.pos local.abbr:
	local.ent = spawn Listener
	local.ent.pos = local.pos
	local.ent.abbr = local.abbr
end local.ent


enumerate_spot_configs local.spots local.spotconfigs:
	local.result[0] = NIL
	local.k = 0
	for (local.i = 0; local.i < local.spots.size; local.i++)
	{
		local.spotname = local.spots[local.i].abbr
		local.spotconfig = local.spotconfigs[local.spotname]
		for (local.j = 1; local.j < (local.spotconfig.size + 1); local.j++)
		{
			local.result[local.k][0] = local.spots[local.i]
			local.result[local.k][1] = level.ctf_spotlu[local.spotconfig[local.j]]
			local.k++
		}
	}
end local.result


setup_nonrespawn_ctf_bases:
	waitthread global/libmef/spawn.scr::spawnblock_begin
	
	if (level.mef_alliedspawnregion == "se")
	{
		local.seteam = "allies"
		local.nwteam = "axis"
	} else
	{
		local.seteam = "axis"
		local.nwteam = "allies"
	}

	waitthread global/libmef/bases.scr::addbase local.seteam "-553 -872 272.13 90" // East Bldg Dresser
	waitthread global/libmef/bases.scr::addbase local.seteam "-132 -624 272.13 90" // East Bldg 2nd Floor
	waitthread global/libmef/bases.scr::addbase local.seteam "-107 -624 32.12 90"  // East Bldg 1st Floor

	waitthread global/libmef/bases.scr::addbase local.nwteam "829 1088 512.13 -90" // West Bldg 3rd Floor North Side
	waitthread global/libmef/bases.scr::addbase local.nwteam "-512 699 272.13 0"   // West Bldg 2nd Floor South Side
	waitthread global/libmef/bases.scr::addbase local.nwteam "829 1088 272.14 -90" // West Bldg 2nd Floor North Side
	waitthread global/libmef/bases.scr::addbase local.nwteam "-512 697 32.13 0"    // West Bldg 1st Floor South Side
	waitthread global/libmef/bases.scr::addbase local.nwteam "829 1088 32.13 -90"  // West Bldg 1st Floor North Side
end




let me know if u have anymore ?'s or problems with the spawnblock
SilentAngel
Captain
Posts: 239
Joined: Wed Mar 12, 2008 8:27 pm

Post by SilentAngel »

guys how can I show images in a replay? I've found new objects that I want to spown but I don't know the name of them...
however I give you a link to donload these images because I don't know how show pictu in here! :-P
this one should be a sort of big axie: http://www.box.net/shared/vbml8zbocw
this one should be a sort of laser: http://www.box.net/shared/1loer2m04o


I hope some of you know these objects! ty :wink:
Tazz
Second Lieutenant
Posts: 155
Joined: Fri Feb 16, 2007 1:29 pm
Contact:

Post by Tazz »

this one right here http://www.box.net/shared/vbml8zbocw u could just use a cratelid and scale it up to be a top of a lean to but u will have to put a clip around it to make it appear solid so u could walk on it if thats what ur wanting....also r u scripting in Sh or AA?
Bjarne BZR
Site Admin
Posts: 3298
Joined: Wed Feb 05, 2003 2:04 pm
Location: Sweden
Contact:

Post by Bjarne BZR »

No experience in creating new ones, but moving existing ones is no problem.

Look at the code in the The Hunt anti grenade-spam mod, it uses a form of teleporting from the original spawn points to new locations. This is done so fast that the player never knows he or she was teleported.
Admin .MAP Forums
Image
Head above heels.
Rookie One.pl
Site Admin
Posts: 2752
Joined: Fri Jan 31, 2003 7:49 pm
Location: Nowa Wies Tworoska, Poland
Contact:

Post by Rookie One.pl »

:shock:

Bjarne.

Is.

Alive!
Admin
Image
Image
Honour guide me.

here's my stuff - inequation.org | here's where I work - thefarm51.com
User avatar
bdbodger
Moderator
Posts: 2596
Joined: Tue Feb 25, 2003 7:34 am
Location: canada
Contact:

Post by bdbodger »

Spring must be here some of the animals are coming out of hibernation . :) Good to see you back Bjarne BZR
Image
Bjarne BZR
Site Admin
Posts: 3298
Joined: Wed Feb 05, 2003 2:04 pm
Location: Sweden
Contact:

Post by Bjarne BZR »

He he, hi guys. Just popped in for a quick spin and could not resist answering a thread when I realized I actually still understood some scripting after all these years ;)

Now stop hogging this guys thread with greetings and :shock: :s

:)
Admin .MAP Forums
Image
Head above heels.
Post Reply