2 magic bugs, during the warmup its ok, but after...plz hlp.


(pidprocess) #1

hi! Its my frirst “real” map, but i have 2 problems, since 2 weeks i become crazy!.!.
:banghead:
my map looks like mp_beech: 1destructible wall and documents who must be stolen.
During the warmup, all its ok, but when the game start the bugs apears:

1st bug: the dynamite icon on the commandmap turns like commandpost icon , the wall is destructible with a simple gun and the documents disapears on the table :???:

2nd bug: there is no respawn time on the screen and when i die, the game stops and return to main, an error box appears: couldn’t find a spawnpoint :bored:

i don’t know how much time i tried simple and more difficult maps with1wall or 1stealable objectice and i succeed but…i become realy mad… :beer:
Please help me…
thx.


(DAbell) #2

You are trying to do too much at once make a simple map with each aspect that you are trying to create in each, it will be far easier to find any bugs when your just working with one objective, you need to make sure that all your entities have the right scriptnames and targetnames and there are no spelling misteaks in the script. The amount of things that could be wrong is huge so you need to break it down and look at each part by itself and then combine them together when they all work.

I know this is a pain but it can be a long process compiling and testing a big map only to find it doesn’t work, keep it small and simple for starters.

<DJ>


(Loffy) #3

1st bug: You need a trigger_objective_info surrounding the wall. The wall must target it.
And DAbell has a good point.
Whenever I start a new map, I often make sure that all script and stuff is working before I proceed. In other words, just make a testmap first.
A testmap is a big box, with the essential files (like spawnoints), where you can run around in the game. If it works, you can move on and add studd (like the wall and the objective).
There are some really good tutorials out there.

EDIT: You can find a testmap here:

  1. Go to http://www.planetwolfenstein.com/4newbies/
  2. click on “Tutorials by Iffy” on the left side.
  3. Go to “Map In A Box A plug-and -play collection of entities, constructibles, destructibles, and spawn points + scripts that you can drop into your map, compile, and play. Version 3.”
  4. Download it and use it.
  5. make sure this testmap works perfect.
  6. Then (if you want to) you can expand this test map, i.e. add stuff and objectives and make it into your first real map.
    Good luck!

//Loffy


(pidprocess) #4

yeah! thanks you for try to help me! …but thats dosen’t works…
i made a test map box with objective and wall: all works correctly, but when i put into my map, all falls down…
i learn and follow many and many map design forums (usefull) i begin to know many things about mapping under gtkradiant, but thats dosen’t solve my problem…
I think (my oppinion) the bugs are linked btwn them (just my oppinion) because in the warmup all works.
Once again thanks you for try to help me!


(Loffy) #5

This sounds like you have forgotten to include a trigger_objective_info. Do you have one? And does the wall target it?
//Loffy

PS Could you post the script please?


(pidprocess) #6

I come back tomorrow and i will explain in more details my map
thanks
see u tomorrow!


(DAbell) #7

Hi pid

I though this sounded familiar to me this problem its because i had exactly the same problem.

The bad news no-one was ever able to solve my problem and i had to start again from scratch.

http://www.splashdamage.com/index.php?name=pnPHPbb2&file=viewtopic&t=6045&highlight=warm

Have a look and maybe someone new may have a look also and see the problem.

<DJ>


(pidprocess) #8

Hey! I’m back.
Now i describe in more details my map:

the wall have debris (func_static, targetname…), linked to the blow wall part (func_explosive, scriptname…), linked to trigger who cover the wall (trigger_objective_info, objflag…)

and the objectives: team_CTF_redflag( message, scriptname, model…), misc_commandmap_marker linked to trigger_objective_info who cover the team_CTF_redflag (customaxisimage, track…)

dont worry i retest and retest on simple map and that works…
here my script:
game_manager
{
spawn
{

	// Set the respawn times
            
            wm_set_round_timelimit  20
	wm_axis_respawntime	20
	wm_allied_respawntime	20
	wm_number_of_objectives 2
	
	// Axis control all objectives at the start (0 == AXIS, 1 == ALLIED)
	wm_objective_status		1	0	0	//SideWall
	wm_objective_status		1	1	0	//SideWall
	wm_objective_status		2	0	0	//DocStat
	wm_objective_status		2	1	0	//DocStat
	
	
	
	// Set Defending Team for SW Mode

	wm_set_defending_team	0

	// If the round timer expires, the Axis have won, so set the current winning team
	// Set the round winner:  0 == AXIS, 1 == ALLIED
	wm_setwinner 0

	// Accum #1 will be the state of objective number one
	accum 1 set 0
	
	

	
}

trigger objective1
{
	// Change the objective state internally, so UI can update, etc.
	// Allied takes control of objective #1
	wm_objective_status		1	0	2
	wm_objective_status		1	1	1

	// UI pop-up to alert players
	wm_announce	"The Sea Wall has been breached !"
}

trigger objective2
{
	// Change the objective state internally, so UI can update, etc.
	// Allied takes control of objective #1
	wm_objective_status		2	0	2
	wm_objective_status		2	1	1

	// Change the variable within the script so that we can check if someone wins the round
	accum 1 set 1

	// UI pop-up to alert players
	wm_announce	"Allies transmitted the documents!"

	// Call function to check if the round has been won
	trigger game_manager checkgame
}



trigger axis_object_stolen
{
	// Change the objective state internally, so UI can update, etc.
	// Allied have stolen the documents (0 == AXIS, 1 == ALLIED)
	wm_objective_status		2	0	2
	wm_objective_status		2	1	1

}

trigger axis_object_returned
{
	// Change the objective state internally, so UI can update, etc.
	// Axis have returned the documents (0 == AXIS, 1 == ALLIED)
	wm_objective_status		2	0	0
	wm_objective_status		2	1	0

	wm_teamvoiceannounce 0 "objective_axis_secured"
	wm_teamvoiceannounce 1 "objective_allies_lost"

}

trigger checkgame
{
	accum 1 abort_if_not_equal 1
	// Set the round winner:  0 == AXIS, 1 == ALLIED
	wm_setwinner 1
	wm_announce "Allied team transmit the War Documents!"
	wm_teamvoiceannounce 0 "objective_axis_lost"
	wm_teamvoiceannounce 1 "objective_allies_secured"

	wait 1500
	// End the round
	wm_endround
}

}

allied_obj1 //Sea wall breached.
{
spawn
{
wait 200

	constructible_class 3
}

death
{
	wm_announce	"The Sea Wall has been breached!"

	wm_teamvoiceannounce 0 "sidewall_axis_breach"
	wm_teamvoiceannounce 1 "sidewall_allies_breach"

	trigger game_manager objective1
}

}

transmitt //The war documents being transmitted.
{
spawn
{
wait 200
}

death
{
	wm_announce	"The Allies transmittet the Documents"
	trigger game_manager objective2
}

}
and the script works on a simple map too…

and i have an old map (the same , but not reduce in portals, not reduce in textures…not optimized) and she works!

HeAlP Me… :frowning:


(pidprocess) #9

EDIT: You can find a testmap here:

  1. Go to http://www.planetwolfenstein.com/4newbies/

Thanks but the link is broken…

And, i hope i not start my map from scratch… :frowning: :frowning: :frowning:


(]UBC[ McNite) #10

I don’t think you need to start your map from scratch.
But what I would recommend is:

Work on the broken things once at a time.
Means: delete all the stuff of the constructible out of the map (maybe export them first as a prefab so u can import them again later on), and all the spawns too (and everything else that doesnt work).

And the first thing you should fix is the spawnpoints. So get yourself some tutorials again on spawnpoints, and work out how the spawns work. You can use the goldrush-source too to compare those spawns with yours. Then just put 1 allies spawn into the map, compile, test. When it works… one for axis (and so on…)

To save a lot of time with all the necessary compiles: only do BSP and VIS stage, leave out the LIGHT stage. For testing the LIGHT is completely obsolete. (I recommend q3map2build by bobdev as a frontend, because u can easily switch the stages on and off.)


(pidprocess) #11

:banghead:
Thanks ]UBC[ McNite, i follow your advise (i deleted all objectives, spawnpoints blue and red, team_WOLF_objectives, even the scritpt_multiplayer and i put 1 blue and 1 red spawn whit their team_WOLF like goldrush), but the same error appears (“couldn’t find a spawnpoint” after the warmup when i die and no respawn time on screen)… :bored:

thanks again for your advise.
i belive more and more restart my map… :frowning:
I hope smbdy save my soul (or my brain) :smiley:


(Loffy) #12

If you check the script for goldrush, you will see that they have included a command “setautospawn” in the beginning of the script.
Maybe this is somehting that you need to add, to get rid of your error? Also insert the script_multiplayer in the map.

The description inside the team_wolf_objective, do you have that too?

(the “setautospawn” uses this name (the description) in the script).

//l.


(]UBC[ McNite) #13

Actually u dont need a setautospawn in the script… look at small boxmaps for example. I d rather say that you don’t check the necessary spawnflags in the properties of the spawns.
I m not sure but its something like startactive or so (i m not at home, i can look that up later). That setting will set the spawnpoint active and working right from the start. Also u need to check whether the naming in the 2 spawn-entities u need are the same. Again: look at the spawns in goldrush.

(I never told u to delete the script_multiplayer… just the objectives and spawns)

Can you plz post which keys/values you got in the spawns and wolf_objective?


(pidprocess) #14

Yeah! thanks
here the keys/values for spawn and wolf_objective

team_CTF_bluespawn:
“scriptname” “alliedspawn”
“targetname” “alliedspawn”
“spawnflags” “3” (invulnerable, startactive)
“angle” “180”
“origin” “424 -3064 80”

team_WOLF_objective:
“targetname” “alliedspawnblob”—>info_limbo_camera (all modes)
“description” “alliedspawnblob”
“spawnflags” “2” (defaut allies)
“origin” “424 -3016 88”

team_CTF_redspawn:
“targetname” “axisspawn”
“scriptname” “axisspawn”
“spawnflags” “3”
“angle” “180”
“origin” “8672 2096 432”

team_WOLF_objective:
“description” “axisspawnblob”
“targetname” “axisspawnblob”—>info…
“spawnflags” “1”
“origin” “8672 2152 440”

(i dont understand what refer the scriptname “axisspawn” or " alliedsapwn" in the script :???: )

And sure i not forgotten the script_multiplayer…


(Loffy) #15

Hi again!
i would give the team_wolf_objective the following keys/values:
team_WOLF_objective:
“scriptname” “alliedspawnblob”
“targetname” “alliedspawnblob”
“description” “Allied First Spawn”

team_WOLF_objective:
“scriptname” “axisspawnblob”
“targetname” “axisspawnblob”
“description” “Axis First Spawn”

Then add this to script:


game_manager 
{
	spawn
	{
		setautospawn "Axis First Spawn" 0
		setautospawn "Allied First Spawn" 1	
	}
}

You do not need this, but sooner or later you want to expand your maps and have more than 1 spawnpoint for a team. Then you need to know the command setautospawn.

About your next question:

… what refer the scriptname “axisspawn” or " alliedsapwn" in the script :???: )

The entities are given scriptnames and targetnames so that they can be manipulated via the script.
For example, in the future (your next map perhaps?), you might want to expand your maps and add a set of second spawn entities for the Allies.
The second set of spawn entities are set invisible when the game starts. Something like this in the script, when the game starts:


		// Hide 2nd spawn points
		setstate allied_second_spawn invisible	// Allied second spawn

This second spawn can later be activated, for example when flag is taken or a wall is dynamited.

Hm, I just realised that you might want to drop the “First”. I.e. change “Allied First Spawn”/“Axis First Spawn” to “Allied Spawn”/“Axis Spawn”, because you do not want to confuse your players. (“Eh, FIRST spawn, but where is the second?!?”)

//L.


(pidprocess) #16

Thanks Loffy, i try to place setautospawn with keys/values but when i launch the map, the game open a box: G_scripting setautospawn, couldn’t find a target :???:

WOLF_objective:

“scriptname” “alliedspawnblob”
“classname” “team_WOLF_objective”
“origin” “424 -3016 88”
“spawnflags” “2”
“description” “allied spawn”
“targetname” “alliedspawnblob”

and:

“scriptname” “axisspawnblob”
“classname” “team_WOLF_objective”
“origin” “8672 2152 440”
“spawnflags” “1”
“targetname” “axisspawnblob”
“description” “axis spawn”

and i put in the script:

game_manager
{
spawn
{
setautospawn “axis spawn” 0
setautospawn “allied spawn” 1

GGGrrrrrrrr!!! damn gtkradiant… :angry:


(Loffy) #17

Maybe you should add “wait 200” in that spawnscript, above the setautospawn commands?


game_manager 
{
	spawn
	{
		wait 200 // Waiting 200 milliseconds.
		// So the entities are in, before setautospawn  is executed.
		setautospawn "Axis First Spawn" 0
		setautospawn "Allied First Spawn" 1	
	}
}


(kamikazee) #18

It may even be wait 250, Gerbil once started a thread on this matter.Autospawn was run before the spawn positions themselves were put in by the game engine. Check here

(BTW: Don’t blame it on the map editor. :wink: )


(pidprocess) #19

Yeah Kamikazee, i put wait 250 in my script, so the map starts, but always the same problem: after the warmup when i die : couldn’t find a spawnpoint…
where provide that f***g bug!!! :frowning: :frowning: :frowning:


(kamikazee) #20

Do you have a info_player_deathmatch entity? Just a random thought…