loffys_ctf_prefab 2


(Loffy) #1

Yes, it is version 2 now! (Toss away that earlier version - it had a major problem; it was playable but worthless because the counters didn’t work.) Thanks Berzerkr!

I begin to understand what Drakir ment with there is never a final version…

Map here:
http://www.etmaps-test.de/etmaps/maps/loffys_ctf_prefab2.rar

Mirror: http://www.pcgamemods.com/4
(loffys_ctf_prefab2)

Early 1942 and the crazy scientist/warlord known as Loffy has created a crackpot battle arena in the stratosphere (at the so called sockz-space-level altitude). His mad idea, for this ultimate total-ownage-arena, is for each team of uber-soldiers to collect flags. It’s sick, yes, but Axis and Allies are forced to comply and to start fighting in this prefab-nightmare.

The team that capture the most flags will win.

The teams will get longer respawn-times when they capture flag number 2, 4 and 6 (15, 20 and 25 seconds respawn-time respectively).

The map is made primarely for 6 vs. 6 games.

FIGHT!

// Loffy


(MadJack) #2

You sure look like you’re having a ton of fun making those Loffy :smiley:

Keep it up :smiley: :smiley:


(Loffy) #3

Hallo MadJack! I just spoke with the space-scientist/warlord, and he forgot to tell you guys that the pk3 includes the .map-file - hence the odd title “_prefab” - for other mappers to use as much as they like.
// L.


(Genesis) #4

lol… n1 m8!


(DG) #5

ms paint owns whatever your using for jpg filesize.

btw does including the .map increase the .pk3 filesize much or not?

ps. uk mirror


(MadMaximus) #6

hi loffy, ive tried darji and i like it, nice looking map, large and all. i luv the large maps and especially ctf maps, but just like in your pre-fab here, wouldn’t it be easier to have a single team_CTF_redflag/blueflag entity instead of group of them?

like a single team_CTF_blueflag with a count of 8 and all other stuff controlled with the script?

just curious…


(Loffy) #7

Genesis, glad you like it! It started as a pure prefab, with the essential entities from a previous and much bigger map I made (Darji). But then I kept adding stuff, and eventually it was a “real” map - again. The skybox is Sock’s, from his homepage (http://www.planetquake.com/simland/pages/skybox/strato.htm).
DG, you’re right - I totally forgot to compress those old images! They are fixed/compressed now, and much smaller. Thanks! The inclusion of the .map-file does not increase the .pk3 filesize so much. The file is a txt-file, basically, and very compressable. Thanks for the mirror!
MadMaximus, what you are describing is also possible. However, that design will make it possible for a team to steal and hold 2 or more flags at the same time. Compare with the gold on goldrush. There is of course nothing wrong with that, but I wanted a design that was similar to traditional ctf-style of play.
// Loffy

EDIT (to Red*Uk, below): Thanks for your interest! I know there are quakers and ut:ers out there, who enjoy ctf very much, and I hope the map will be good enuff. However, and I stress this, I would like to see other mappers use the script and stuff and make better ctf-style maps based on this prefab. Rock on!


(Red*Uk) #8

nice one loffy , u know i been waiting for this one :wink:
Also curious to what Mad said above.

Edit: looking at the script from Lanz ctf he calls up the gold count of 3 from team_ctf_blue, the model is also specified there too so i think it wouldnt take much to alter/combine both :wink:


(MadMaximus) #9

well, the challenge is on!!! lol

ive done some experimenting and its more than possible, and with one CTF flag entity per team and a simple script to control it all, and i’ll explain how…

i made a ctf_redflag with a count of 8 and had that target a target_print for a test, works fine… so i changed the target_print to a target_script_trigger so that when the axis flag was taken, it would cause the target_script_trigger to call my axis_flag_stolen routine, in that routine i would setstate the ctf_redflag entity invisible and the trigger_flagonly_multiple also invisible, so that if the axis had the flag, they couldnt cap til theirs was returned…

in theory it should have worked… if the allies captured a flag, 7 still left in the count, the flagpole would dissapear until they brought the flag to their trigger_flagonly_multiple and in the death routine there, i would simply setstate the axis ctf_redflag and flagonly_multiple back to default to start it over again… problem was,

once i gave a targetname to the ctf_redflag or blueflag entity, they would not spawn in the game… setstate them default in the game_manager would not work also, but the alertentity did, so i just alertentitied them once and once only, and the setsate invis/default worked from there on.

then i noticed something that wasn’t documented in the def file for the ctf_red and blue, they actually call trigger routines by default when an object is stolen or returned… so i didnt need to have them target a target_script_trigger at all… just added some routines to the ctf targetname/scriptname routines i made… and bam… it works… perfect classic ctf, one flag only for either team, only can be captured one at a time and not again until it has either been capt’d or returned.

here’s an example of my team_CTF_blueflag entity and its key/vaules, ( i’ll use your flag model since it looks so kewl… )


"classname" "team_CTF_blueflag"
"origin" "-766 0 28"
"scriptname" "allied_flag"
"targetname" "allied_flag"
"angle" "360"
"model" "models/mapobjects/darjimodels/flag_allies.md3"
"message" "the Flag"
"count" "8"

EDIT: added the trigger_flagonly_multiple entity key/values for the axis, used in the script below…


"classname" "trigger_flagonly_multiple"
"scriptname" "axis_cap_flag"
"targetname" "axis_cap_flag"
"spawnflags" "2"

and a smidget of the script i tested it with, just the allied stuff, the axis would have identical routines.


//
// ctf test - enemy territory
//
// experimenting with the undocumented trigger functions the
// team_ctf_redflag and team_ctf_blueflag have.
//

game_manager
{
	spawn
	{
      wait 200  // EDIT:need a wait here...
		alertentity allied_flag	// reveal the flag to start with, setstate invisble and default
						  // will work from here on.
	}
	trigger axis_captd		// axis captured a flag so update the count here and check if they win.
	{
		accum 1 inc 1		  // and so on
		accum 1 trigger_if_equal 8 game_manager axis_win
	}
	trigger axis_win
	{
		// usual stuff... axis won here..
		// blah
		// blah
		// blah
		
		wm_setwinner 0	// axis win...
		wm_endround
	}
}

allied_flag
{
	trigger stolen	// a flag was taken by the axis horde....
	{
		setstate allied_flag invisible  // hide the team_CTF_blueflag entity
		setstate allies_cap_flag invisible  // hide the allies trigger_flagonly_multiple
	}

	trigger returned	// flag was dropped and timed out or an allied player touched it....
	{
		setstate allied_flag default  // flagpole comes back, no change in count,
		setstate allies_cap_flag default  // trigger_flagonly_multiple back also.
	}
}

axis_cap_flag	// axis have transported the allied flag and made it back to their flagpole.

{
	death
	{
		wm_announce "the Axis have Captured the Flag!!!"

		setstate allied_flag default  //  flag comes back minus 1 count,
		setstate allies_cap_flag default  // trigger_flagonly_multiple back also.

		trigger game_manager axis_captd  // go update the axis flag captured counter.
	}
}

and i have now deleted my team_CTF_blueflag and team_CTF_redflag definitions and replaced them with thse updated ones i made which are more descriptive, people don’t need to do this, but i update mine when i get/find more information on them.

My updated DEF’s


/*QUAKED team_CTF_redflag (1 0 0) (-16 -16 -16) (16 16 16)
-------- KEYS --------
"count"		number of times this entity will spawn objects
"model"		Set model to display in game
"message"		Name of object in game (ex: the Radar Parts)
"scriptname"	name used for scripting purposes
"targetname"	name of this entity, see NOTES below
-------- SPAWNFLAGS --------
(none)
-------- NOTES --------
Used for dual objectives in ET.
If a targetname is used, then it needs an initial alertentity to spawn it in the game, setstate invisible and default will
work on it after.

will call the following trigger routines if they exist, depending on state. for example if this entity has the following setup,

----EXAMPLE ONLY----
KEY		VALUE

scriptname	redflag
targetname	redflag

when they occur, the following routines would be called in the redflag script area,
trigger stolen	   - object was stolen.
trigger returned - object was returned.

----END EXAMPLE----

addtionally it would call the following routines in the game_manager if they existed,
trigger axis_object_stolen	- object was stolen.
trigger axis_object_returned	- object was returned.
*/

/*QUAKED team_CTF_blueflag (0 0 1) (-16 -16 -16) (16 16 16)
-------- KEYS --------
"count"		number of times this entity will spawn objects
"model"		Set model to display in game
"message"		Name of object in game (ex: the Radar parts)
"scriptname"	name used for scripting purposes
"targetname"	name of this entity, see NOTES below
-------- SPAWNFLAGS --------
(none)
-------- NOTES --------
Used for dual objectives in ET.
If a targetname is used, then it needs an initial alertentity to spawn it in the game, setstate invisible and default will
work on it after.

will call the following trigger routines if they exist, depending on state, for example if this entity has the following setup,

----EXAMPLE ONLY----
KEY		VALUE

scriptname	blueflag
targetname	blueflag

when they occur, the following routines would be called in the blueflag script area,
trigger stolen	   - object was stolen.
trigger returned - object was returned.

----END EXAMPLE----

addtionally it would call the following routines in the game_manager if they existed,
trigger allied_object_stolen		- object was stolen.
trigger allied_object_returned	- object was returned.
*/

so now both sides have one flag only, if an opposing team member takes a flag, no other flag will spawn until they have either captured it, or it was returned and the count on the CTF flag entity would stay the same or continue on down until all the 8 flags were captured.

at least this is what i have come up with…

:smiley:

EDIT: i cleaned up some of my remarks in the script above, it confused me a bit… also i named the trigger calls wrong, they are RETURNED and not RETURN in the def’s i listed… sorry if this confused anyone. my bad…

FURTHER EDIT: not to steal your thunder loffy, the prefab is a good one… i just thought there was a different way to do it with one flag only.


(Loffy) #10

Hey, cool stuff! Nice work!
// Loffy


(JIM_BOB7813) #11

Kool! ET needs some more small-ctf maps!

Respect for including the .map, its very brave.

I have a question… How did you get such a sharp edge on this light?

I see the worldspawn lightmapscale, but wow! :banana:


(ChiemseeMan) #12

Hi Loffy, is it Beta 2 or Final 2 ?


(Loffy) #13

JIM_BOB7813, the trick is to select the wall and to make it a func_group. Then add key/value _lightmapscale/0.0625 to that func_group. That will force the compiler (q3map2 - thanks ydnar!) to create sharp-looking shadows with high detail. In fact, you can set key/value _lightmapscale/0.0625 on everything! But the compiling-process will take a very long time, and it will create large pk3-files. It might not even work on slow computers with low RAM-memory.
Hi ChiemseeMan! This is final 2. (I like your avatar!)
// Loffy


(joop sloop) #14

did you func_grouped the wall where the shadow falls on or the bars that make the shadow?


(Loffy) #15

Hi j.s., yes the wall.
Have a look at this part of the map. Here the white walls are all one func_group with _lightmapscale/0.0625:

In short: every wall that receives cool shadows is turned into a func_group with a low _lightmapscale-value. (It doesn’t have to be 0.0625; it can be 0.25, for example, because that will look cool too.
// Loffy


(JIM_BOB7813) #16

I know about the func_group thing, but the screen with the light coming through the grating looked so good, I thought you made it manually (playing with the lightmap targas). :smiley:

Thanks for the clarification, Loffy.


(MadMaximus) #17

on some further investigation, adding a “spawnflags 2” to the CTF_blueflag/redflag entity will make it spin as in quake 3 style ctf… it appears to continue to spin while held, even though i can’t verify that since you dont see it… but when its droppped, it doesnt spin, but faces the angle of its last spinning orientation.

so it spins where the team_CTF entity is originally placed, but only there. i made an animating flag for a test… just bob’s up and down, but can’t get that to work within the entity at all… animates as a misc_gamemodel only… would have looked nice though if it did spin an bob up and down, but at least it will spin.


(capslock trojan) #18

where not worthy where not worthy :notworthy: :notworthy: :notworthy: :notworthy: :notworthy: :notworthy: :notworthy: :notworthy: :notworthy: :notworthy: :notworthy: :notworthy: :notworthy: :notworthy: :notworthy: :notworthy: :notworthy: :notworthy: :notworthy: :notworthy: v


(deej) #19

well the map is now hosted on our 27778 server so if you want to play it connect to fragland.org:27778!

I luv the “waaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa” R.I.P. touch :smiley:

EDIT: forgot to say: “and vote for the Loffy campaign” :moo:


(S.S.Heirpie) #20

Hey glad you put enough spawn points in, its a great maps for 40 players!!!, come play some time you know where we are…:slight_smile: