PDA

View Full Version : How do add custom spawnpoints to a map?



agribilos
18th March 2021, 18:53
Hi
As you can tell from the title i'm trying to add custom spawnpoints to a map.


spawnpointname = "mp_dm_spawn";
spawnpoints = getentarray(spawnpointname, "classname");

spawnpoints[spawnpoints.size] = spawnStruct();
spawnpoints[spawnpoints.size-1].origin = (1234 ,2068, 324);
spawnpoints[spawnpoints.size-1].classname = "mp_dm_spawn";
spawnpoints[spawnpoints.size-1].angles = (0, 300, 0);

spawnpoints[spawnpoints.size] = spawnStruct();
spawnpoints[spawnpoints.size-1].origin = (2262 ,2835, 106);
spawnpoints[spawnpoints.size-1].classname = "mp_dm_spawn";
spawnpoints[spawnpoints.size-1].angles = (0, 210, 0);

I want to know if this is the propper way to do it. The code above is added to mp_mapname.gsc Also if there is a way to delete spawnpoints.


for( i = 0 ; i < spawnpoints.size ; i++ )
{
if( isSubStr( spawnpoints[i].classname , "mp_dm_spawn" ) )
spawnpoints[i] delete();

}
I tried adding this before adding my custom spawn points because i wanted to see if they work but then the server skips the map and goes to the next. So i guess the spawnpoints are not added...
Please help

IzNoGoD
18th March 2021, 20:01
You dont get an entity using spawnstruct. Gotto spawn(), but you cant spawn something with a custom classname.

As such, maybe try moving your existing spawnpoints? Also, you could just hijack the calls to the function that gets you a spawnpoint (spawnlogic.gsc iirc)

agribilos
18th March 2021, 20:51
Hmm ok so I will try that. Thanks

agribilos
18th March 2021, 21:12
Ok it worked!!! First i put all the current map spawnpoints in an array with
level.customspawns = getentarray(spawnpointname, "classname");

Then i added my custom spawnpoints as

level.customspawns[level.customspawns.size] = spawnStruct();
level.customspawns[level.customspawns.size-1].origin = (1234 ,2068, 324);
level.customspawns[level.customspawns.size-1].classname = "mp_dm_spawn";
level.customspawns[level.customspawns.size-1].angles = (0, 300, 0);

level.customspawns[level.customspawns.size] = spawnStruct();
level.customspawns[level.customspawns.size-1].origin = (2262 ,2835, 106);
level.customspawns[level.customspawns.size-1].classname = "mp_dm_spawn";
level.customspawns[level.customspawns.size-1].angles = (0, 210, 0);
In dm.gsc (or any gametype) at spawnplayer()


if(isdefined(level.customspawns))
spawnpoint = maps\mp\gametypes\_spawnlogic::getSpawnpoint_DM(le vel.customspawns);

else
spawnpoint = maps\mp\gametypes\_spawnlogic::getSpawnpoint_DM(sp awnpoints);