Page 1 of 1
Spawning spawn points...
Posted: Fri Jan 28, 2005 6:12 pm
by Rookie One.pl
Hi,
Has anyone ever tried to spawn spawnpoints (info_player_whatevers) via script? I'm trying to force the allies to spawn at the mosque and the axis at the square:
Code: Select all
makeSpawnpoints:
removeclass info_player_axis
removeclass info_player_allied
local.ent = spawn info_player_axis origin ( 848 -1120 40 ) angle 90
local.ent = spawn info_player_axis origin ( 1400 -32 24 ) angle 180
local.ent = spawn info_player_axis origin ( 192 1824 -136 ) angle 315
local.ent = spawn info_player_axis origin ( 320 1784 -136 ) angle 270
local.ent = spawn info_player_axis origin ( 464 1832 -136 ) angle 270
local.ent = spawn info_player_axis origin ( 192 1672 -136 ) angle 0
local.ent = spawn info_player_axis origin ( 400 1680 -136 ) angle 270
local.ent = spawn info_player_axis origin ( 552 1632 -136 ) angle 225
// 8 spawnpoints
local.ent = spawn info_player_axis origin ( 568 1512 -136 ) angle 180
local.ent = spawn info_player_axis origin ( 296 1552 -136 ) angle 315
local.ent = spawn info_player_axis origin ( 1360 -96 24 ) angle 180
local.ent = spawn info_player_axis origin ( 1384 -176 24 ) angle 180
local.ent = spawn info_player_axis origin ( 1296 -160 24 ) angle 180
local.ent = spawn info_player_axis origin ( 752 -1160 40 ) angle 180
local.ent = spawn info_player_axis origin ( 1344 -1136 24 ) angle 90
local.ent = spawn info_player_axis origin ( 1424 -1112 24 ) angle 135
// 16 spawnpoints
local.ent = spawn info_player_allied origin ( -2936 1632 284 ) angle 45
local.ent = spawn info_player_allied origin ( -2944 3624 284 ) angle 270
local.ent = spawn info_player_allied origin ( -3056 2440 64 ) angle 0
local.ent = spawn info_player_allied origin ( -3064 2896 64 ) angle 315
local.ent = spawn info_player_allied origin ( -2856 2512 64 ) angle 45
local.ent = spawn info_player_allied origin ( -3032 2600 64 ) angle 315
local.ent = spawn info_player_allied origin ( -2856 2872 64 ) angle 0
local.ent = spawn info_player_allied origin ( -3088 2744 64 ) angle 0
// 24 spawnpoints
local.ent = spawn info_player_allied origin ( -2824 2640 64 ) angle 45
local.ent = spawn info_player_allied origin ( -2824 2640 64 ) angle 315
local.ent = spawn info_player_allied origin ( -2584 3624 284 ) angle 270
local.ent = spawn info_player_allied origin ( -3296 3624 284 ) angle 270
local.ent = spawn info_player_allied origin ( -3560 3296 276 ) angle 315
local.ent = spawn info_player_allied origin ( -3512 3104 276 ) angle 0
local.ent = spawn info_player_allied origin ( -3568 2752 276 ) angle 0
local.ent = spawn info_player_allied origin ( -3304 2168 276 ) angle 45
// 32 spawnpoints
end
And all I get is 16 lines of "unknown class info_player_axis" and 16 lines of "unknown class info_player_allied". And the original spawn points still work...

Posted: Fri Jan 28, 2005 7:12 pm
by G3mInI
The reason you are getting the errors is from these two lines....
removeclass info_player_axis
removeclass info_player_allied
That is not the actual classname for player entities and I have already tried to block spawns with the removeclass command but it does not work. You must physically block spawn points with a model.
I will post code from my Southern France custom spawns. First you must block the original spawn points. I find using the wooden bucket is great becasue a player can walk right over it without having to jump or walk around. It will place little wooden buckets wherever there was an original spawn. I call these two threads before level waittill prespawn. First the block spawns thread and the new spawns thread.
Here is the code for southern france:
Code: Select all
block_original_spawns:
local.blockspawn = spawn script_model model static/woodbucket.tik origin ( 976 -528 0 )
local.blockspawn = spawn script_model model static/woodbucket.tik origin ( 976 -592 0 )
local.blockspawn = spawn script_model model static/woodbucket.tik origin ( 896 -584 0 )
local.blockspawn = spawn script_model model static/woodbucket.tik origin ( 912 -96 0 )
local.blockspawn = spawn script_model model static/woodbucket.tik origin ( 912 -56 0 )
local.blockspawn = spawn script_model model static/woodbucket.tik origin ( 992 -48 0 )
local.blockspawn = spawn script_model model static/woodbucket.tik origin ( 992 -104 0 )
local.blockspawn = spawn script_model model static/woodbucket.tik origin ( 1064 -552 256 )
local.blockspawn = spawn script_model model static/woodbucket.tik origin ( 1104 -544 256 )
local.blockspawn = spawn script_model model static/woodbucket.tik origin ( 1144 -552 256 )
local.blockspawn = spawn script_model model static/woodbucket.tik origin ( 976 184 384 )
local.blockspawn = spawn script_model model static/woodbucket.tik origin ( 784 792 384 )
local.blockspawn = spawn script_model model static/woodbucket.tik origin ( 816 792 384 )
local.blockspawn = spawn script_model model static/woodbucket.tik origin ( 848 792 384 )
local.blockspawn = spawn script_model model static/woodbucket.tik origin ( 1104 672 384 )
local.blockspawn = spawn script_model model static/woodbucket.tik origin ( 1128 640 384 )
local.blockspawn = spawn script_model model static/woodbucket.tik origin ( 1176 672 384 )
local.blockspawn = spawn script_model model static/woodbucket.tik origin ( 1672 912 222 )
local.blockspawn = spawn script_model model static/woodbucket.tik origin ( 1234 1566 384 )
local.blockspawn = spawn script_model model static/woodbucket.tik origin ( 1194 1566 384 )
local.blockspawn = spawn script_model model static/woodbucket.tik origin ( 1178 1334 384 )
local.blockspawn = spawn script_model model static/woodbucket.tik origin ( 914 1334 384 )
local.blockspawn = spawn script_model model static/woodbucket.tik origin ( 1450 2174 512 )
local.blockspawn = spawn script_model model static/woodbucket.tik origin ( 1450 2214 512 )
local.blockspawn = spawn script_model model static/woodbucket.tik origin ( 1506 2606 384 )
local.blockspawn = spawn script_model model static/woodbucket.tik origin ( 1514 2678 384 )
local.blockspawn = spawn script_model model static/woodbucket.tik origin ( 1514 2742 384 )
local.blockspawn = spawn script_model model static/woodbucket.tik origin ( 1378 2710 672 )
local.blockspawn = spawn script_model model static/woodbucket.tik origin ( 1354 2526 672 )
local.blockspawn = spawn script_model model static/woodbucket.tik origin ( 50 2958 256 )
local.blockspawn = spawn script_model model static/woodbucket.tik origin ( -262 1414 48 )
local.blockspawn = spawn script_model model static/woodbucket.tik origin ( -214 1430 48 )
local.blockspawn = spawn script_model model static/woodbucket.tik origin ( -286 1238 48 )
local.blockspawn = spawn script_model model static/woodbucket.tik origin ( -1262 1862 104 )
local.blockspawn = spawn script_model model static/woodbucket.tik origin ( -1206 1110 12 )
local.blockspawn = spawn script_model model static/woodbucket.tik origin ( -1174 1062 12 )
local.blockspawn = spawn script_model model static/woodbucket.tik origin ( -702 350 -16 )
local.blockspawn = spawn script_model model static/woodbucket.tik origin ( -670 350 -16 )
local.blockspawn = spawn script_model model static/woodbucket.tik origin ( -646 310 328 )
local.blockspawn = spawn script_model model static/woodbucket.tik origin ( -806 374 328 )
local.blockspawn = spawn script_model model static/woodbucket.tik origin ( -774 374 328 )
local.blockspawn = spawn script_model model static/woodbucket.tik origin ( -214 1230 384 )
local.blockspawn = spawn script_model model static/woodbucket.tik origin ( -262 1230 384 )
local.blockspawn = spawn script_model model static/woodbucket.tik origin ( -326 1238 384 )
local.blockspawn = spawn script_model model static/woodbucket.tik origin ( 578 1574 384 )
local.blockspawn = spawn script_model model static/woodbucket.tik origin ( 610 1526 384 )
local.blockspawn = spawn script_model model static/woodbucket.tik origin ( -814 -394 48 )
local.blockspawn = spawn script_model model static/woodbucket.tik origin ( -846 -346 48 )
local.blockspawn = spawn script_model model static/woodbucket.tik origin ( -926 -290 48 )
local.blockspawn = spawn script_model model static/woodbucket.tik origin ( -926 94 96 )
local.blockspawn = spawn script_model model static/woodbucket.tik origin ( -966 102 96 )
local.blockspawn = spawn script_model model static/woodbucket.tik origin ( -1262 -18 128 )
local.blockspawn = spawn script_model model static/woodbucket.tik origin ( -1270 30 128 )
local.blockspawn = spawn script_model model static/woodbucket.tik origin ( -1294 86 128 )
local.blockspawn = spawn script_model model static/woodbucket.tik origin ( -1502 302 168 )
local.blockspawn = spawn script_model model static/woodbucket.tik origin ( -1502 478 168 )
local.blockspawn = spawn script_model model static/woodbucket.tik origin ( -1054 662 168 )
local.blockspawn = spawn script_model model static/woodbucket.tik origin ( -1022 662 168 )
local.blockspawn = spawn script_model model static/woodbucket.tik origin ( -830 350 -16 )
local.blockspawn = spawn script_model model static/woodbucket.tik origin ( -862 350 -16 )
end
new_spawns:
local.newspawnallied = spawn info_player_allied origin ( 848 2640 400 ) angle 270
local.newspawnallied = spawn info_player_allied origin ( 784 2640 400 ) angle 270
local.newspawnallied = spawn info_player_allied origin ( 880 2544 400 ) angle 270
local.newspawnallied = spawn info_player_allied origin ( 816 2544 400 ) angle 270
local.newspawnallied = spawn info_player_allied origin ( 752 2544 400 ) angle 270
local.newspawnallied = spawn info_player_allied origin ( 880 2448 400 ) angle 270
local.newspawnallied = spawn info_player_allied origin ( 816 2448 400 ) angle 270
local.newspawnallied = spawn info_player_allied origin ( 752 2448 400 ) angle 270
local.newspawnallied = spawn info_player_allied origin ( 848 2352 400 ) angle 270
local.newspawnallied = spawn info_player_allied origin ( 784 2352 400 ) angle 270
local.newspawnallied = spawn info_player_allied origin ( 720 2352 400 ) angle 270
local.newspawnallied = spawn info_player_allied origin ( 656 2352 400 ) angle 270
local.newspawnallied = spawn info_player_allied origin ( 592 2352 400 ) angle 270
local.newspawnallied = spawn info_player_allied origin ( 528 2352 400 ) angle 270
local.newspawnallied = spawn info_player_allied origin ( 464 2352 400 ) angle 270
local.newspawnallied = spawn info_player_allied origin ( 400 2352 400 ) angle 270
local.newspawnallied = spawn info_player_allied origin ( 336 2352 400 ) angle 270
local.newspawnallied = spawn info_player_allied origin ( 272 2352 400 ) angle 270
local.newspawnallied = spawn info_player_allied origin ( 208 2352 400 ) angle 270
local.newspawnallied = spawn info_player_allied origin ( 144 2352 400 ) angle 270
local.newspawnallied = spawn info_player_allied origin ( 80 2352 400 ) angle 270
local.newspawnallied = spawn info_player_allied origin ( 16 2352 400 ) angle 270
local.newspawnallied = spawn info_player_allied origin ( -48 2352 400 ) angle 270
local.newspawnallied = spawn info_player_allied origin ( -112 2352 400 ) angle 270
local.newspawnallied = spawn info_player_allied origin ( -176 2352 400 ) angle 270
local.newspawnallied = spawn info_player_allied origin ( -240 2352 400 ) angle 270
local.newspawnallied = spawn info_player_allied origin ( -304 2352 400 ) angle 270
local.newspawnallied = spawn info_player_allied origin ( -368 2352 400 ) angle 270
local.newspawnallied = spawn info_player_allied origin ( -432 2352 400 ) angle 270
local.newspawnallied = spawn info_player_allied origin ( -496 2352 400 ) angle 270
local.newspawnallied = spawn info_player_allied origin ( -560 2352 400 ) angle 270
local.newspawnallied = spawn info_player_allied origin ( -624 2352 400 ) angle 270
local.newspawnaxis = spawn info_player_axis origin ( 368 -416 32 ) angle 90
local.newspawnaxis = spawn info_player_axis origin ( 304 -416 32 ) angle 90
local.newspawnaxis = spawn info_player_axis origin ( 240 -416 32 ) angle 90
local.newspawnaxis = spawn info_player_axis origin ( 176 -416 32 ) angle 90
local.newspawnaxis = spawn info_player_axis origin ( 112 -416 32 ) angle 90
local.newspawnaxis = spawn info_player_axis origin ( 976 -336 32 ) angle 90
local.newspawnaxis = spawn info_player_axis origin ( 912 -336 32 ) angle 90
local.newspawnaxis = spawn info_player_axis origin ( 848 -336 32 ) angle 90
local.newspawnaxis = spawn info_player_axis origin ( 784 -336 32 ) angle 90
local.newspawnaxis = spawn info_player_axis origin ( 720 -336 32 ) angle 90
local.newspawnaxis = spawn info_player_axis origin ( 656 -336 32 ) angle 90
local.newspawnaxis = spawn info_player_axis origin ( 592 -336 32 ) angle 90
local.newspawnaxis = spawn info_player_axis origin ( 528 -336 32 ) angle 90
local.newspawnaxis = spawn info_player_axis origin ( 464 -336 32 ) angle 90
local.newspawnaxis = spawn info_player_axis origin ( 400 -336 32 ) angle 90
local.newspawnaxis = spawn info_player_axis origin ( 336 -336 32 ) angle 90
local.newspawnaxis = spawn info_player_axis origin ( 272 -336 32 ) angle 90
local.newspawnaxis = spawn info_player_axis origin ( 208 -336 32 ) angle 90
local.newspawnaxis = spawn info_player_axis origin ( 144 -336 32 ) angle 90
local.newspawnaxis = spawn info_player_axis origin ( 80 -336 32 ) angle 90
local.newspawnaxis = spawn info_player_axis origin ( 16 -336 32 ) angle 90
local.newspawnaxis = spawn info_player_axis origin ( -48 -336 32 ) angle 90
local.newspawnaxis = spawn info_player_axis origin ( -112 -336 32 ) angle 90
local.newspawnaxis = spawn info_player_axis origin ( -176 -336 32 ) angle 90
local.newspawnaxis = spawn info_player_axis origin ( -240 -336 32 ) angle 90
local.newspawnaxis = spawn info_player_axis origin ( -304 -336 32 ) angle 90
local.newspawnaxis = spawn info_player_axis origin ( -368 -336 32 ) angle 90
local.newspawnaxis = spawn info_player_axis origin ( -432 -336 32 ) angle 90
local.newspawnaxis = spawn info_player_axis origin ( -496 -336 56 ) angle 90
local.newspawnaxis = spawn info_player_axis origin ( -560 -336 56 ) angle 90
local.newspawnaxis = spawn info_player_axis origin ( -624 -336 56 ) angle 90
local.newspawnaxis = spawn info_player_axis origin ( -688 -336 56 ) angle 90
end
If you copied and pasted that into the southern france dm map (mohdm1.scr), it would have allies all spawn on one side of the map and axis all on the other. The reason I do 32 for each is because our server (Area51) is a 40 man server so I make sure to cover the possiblity of 32 players on one side.
Peace out,
G3mInI
Posted: Fri Jan 28, 2005 7:31 pm
by Rookie One.pl
That's weird... Wouldn't result in an error or a player stuck in a bucket model?

Anyway, I'm going to give it a try...
Posted: Sat Jan 29, 2005 1:36 am
by Rindog
Here's how I block spawns. They are invisible and the players can run right through them. I have a mod that's a MAM addon but it is useful without MAM. It's got a lot of the original spots for most of the stock maps for all three games.
http://rindog.com/index.php?module=get_dload&ID=8
Code: Select all
spawn_block_trigger local.origin:
local.trig = spawn trigger_multiple
local.trig.origin = local.origin
local.trig setsize ( -4 -4 -4 ) ( 4 4 4 )
local.trig wait 0.2
local.trig delay 0.0
local.trig setthread global/global_spawn.scr::spawn_block_trigger_thread
local.trig.dummy = spawn fx/dummy.tik
local.trig.dummy.origin = local.origin
local.trig.dummy setsize ( -1 -1 -1 ) ( 1 1 1 )
local.trig.dummy solid
end
spawn_block_trigger_thread:
local.player = parm.other
self.dummy notsolid
while (local.player istouching self)
{
wait .1
}
wait 1
self.dummy solid
end
Posted: Sat Jan 29, 2005 5:50 am
by G3mInI
Well heck. I am definitely going to give this a whirl. I was trying to figure out how to do invisible blockers but just gave up on it. Guess I should have asked in here a year ago

I am assuming the global_spawn.scr is where all the coordinates reside for the stock map spawn points ?
Peace out,
G3mInI
Posted: Sat Jan 29, 2005 7:04 am
by Rookie One.pl
I guess global_spawn.scr is his own script...
<EDIT>There's one thing which bothers me... The local.trig.dummy should be spawned BEFORE calling global/global_spawn.scr::spawn_block_trigger_thread or you may get a 'NIL listener' error if the forementioned thread is called fast enough.

I think you should just move the line to the bottom of the thread:
Code: Select all
spawn_block_trigger local.origin:
local.trig = spawn trigger_multiple
local.trig.origin = local.origin
local.trig setsize ( -4 -4 -4 ) ( 4 4 4 )
local.trig wait 0.2
local.trig delay 0.0
local.trig.dummy = spawn fx/dummy.tik
local.trig.dummy.origin = local.origin
local.trig.dummy setsize ( -1 -1 -1 ) ( 1 1 1 )
local.trig.dummy solid
local.trig setthread global/global_spawn.scr::spawn_block_trigger_thread
end
spawn_block_trigger_thread:
local.player = parm.other
self.dummy notsolid
while (local.player istouching self)
{
wait .1
}
wait 1
self.dummy solid
end
This is a bit more reliable.

</EDIT>
Posted: Sat Jan 29, 2005 4:52 pm
by Rindog
Good point on the "nil listener"! Never considered it. Never had a problem. But you are right, the potenial is there.
Actually, each map has a seperate file for the original spawns and ones that I have added. Download my mod and take a look at it. I just copied parts of it to show you my method.
Posted: Sat Jan 29, 2005 4:58 pm
by Rookie One.pl
Thanks a lot, that'll save me a lot of work.

Permission to use it?

Posted: Sat Jan 29, 2005 5:36 pm
by Rindog
If that was a question, then yes. My disclaimer in the mod lets you use it how you want. Credit would be nice, but I'm not really concerned with that either. It's a community mod and without the community, this mod might not have been possible.
Posted: Sat Jan 29, 2005 5:40 pm
by Rookie One.pl
Thanks.
Could you reply to my PM? Which models are for which team?

Posted: Sat Jan 29, 2005 5:45 pm
by Rindog
Sorry, didn't see the PM. Yes the german_elite_officer is axis and russian_crazy_boris is allied, and the german_scientist represents ffa spawnspots.
Posted: Sat Jan 29, 2005 7:31 pm
by Rookie One.pl
Rindog, have you made this for Spearhead? Because in Allied Assault it just doesn't work.

I get loads of 'test' in console which is activated when I touch the spawn point, but there are some spawns where it isn't activated at all... I think I'll try spawning the wooden bucket and hiding it.
<EDIT>Oh, hardfishingdammit, my bad!!! I moved the thread call
before level waittill prespawn and now I have my own spawns!!! Thanks, Rindog!!!

:D:D</EDIT>