[Release] [Source] One Room Die Rise (Buyable Ending)
-
This post is deleted!
-
mikzy If your still interested in setting up spawnpoints manually I have a method you can use.
Download the _zm_gametype.gsc in my github: https://github.com/JezuzLizard/Recompilable-gscs-for-BO2-zombies-and-multiplayer/tree/master/patch_zm/maps/mp/gametypes_zm
Next look for the functions
onspawnplayer()
andget_player_spawns_for_gametype()
once you've found them look for the lines involving spawnpoints:spawnpoints[ spawnpoints.size ] = structs[ i ];
inonspawnplayer()
andplayer_spawns[ player_spawns.size ] = structs[ i ];
inget_player_spawns_for_gametype()
Now what you need to do is set
spawnpoints[ spawnpoints.size ] = yourCustomArrayOfSpawnpoints
for the initial spawn andplayer_spawns[ player_spawns.size ] = yourCustomArrayOfRespawnpoints
and next populateyourCustomArrayOfSpawnpoints
andyourCustomArrayOfRespawnpoints
with your own spawnpoints.To do that you need to follow this example:
yourCustomArrayOfSpawnpoints = []; yourCustomArrayOfSpawnpoints [ 0 ] = spawnstruct(); yourCustomArrayOfSpawnpoints [ 0 ].origin = ( -11196, -837, 192 ); yourCustomArrayOfSpawnpoints [ 0 ].angles = ( 0, -94, 0 ); yourCustomArrayOfSpawnpoints [ 0 ].radius = 32; yourCustomArrayOfSpawnpoints [ 0 ].script_int = 1; //this is used for spawn randomization and spawnpoint distance checking
To properly override the initial spawnpoints you need to find the code between the lines
if ( !isDefined( spawnpoint ) )
andif ( !isDefined( spawnpoints ) || spawnpoints.size == 0 )
and replace it with a for loop populatingspawnpoints[ spawnpoints.size]
with your custom spawpoints arrays values.To override the respawn points replace all the code in
get_player_spawns_for_gametype()
except for this linereturn player_spawns;
and again use a for loop to setplayer_spawns[ player_spawns.size ]
to each of your respawn points arrays values.For each spawnpoint you'll need to make you'll need to do spawnstruct() for each index of the array. Make sure you make at least 8 spawnpoints in total both initial spawn and respawn points. Otherwise since we're not using the original array whatsoever, since otherwise players might spawn normally, players will be forced spawned at 0, 0, 0 or not be able to spawn at all.
While _zm_gametype has been thoroughly tested it may still have some bugs depending on the map so use at your own risk. This is the only way to set actual spawn points without access to radiant. You could also use setOrigin to set the origin of the player but that method can't make use of the system that treyarch uses to to randomize spawns and prevent double spawns on the same place.
Finally, you need to compile _zm_gametype.gsc as _zm_gametype.gsc and place it in maps/mp/gametypes_zm. It will not work as intended otherwise. You'll know you did it right if the server says
parsing maps/mp/gametypes_zm/_zm_gametype.gsc
As for custom placed perks you can use _zm_perks here: https://github.com/JezuzLizard/Recompilable-gscs-for-BO2-zombies-and-multiplayer/tree/master/patch_zm/maps/mp/zombies With _zm_perks you can spawn in any number of perk and packapunch machines you just need to specify the data for the game to determine where to place them. Find
perk_machine_spawn_init()
and look for the linepos[ pos.size ] = structs[ i ];
replace all the code relating to the structs variable and instead just use a for loop to setpos[ pos.size ] to myCustomArrayOfPerkSpawns[ i ]
The data required for a perk to spawn is simply this:myCustomArrayOfPerkSpawns[ 0 ] = spawnstruct(); myCustomArrayOfPerkSpawns[ 0 ].origin = ( 5394, 6869, -23 ); myCustomArrayOfPerkSpawns[ 0 ].angles = ( 0, 90, 0 ); myCustomArrayOfPerkSpawns[ 0 ].model = "tag_origin"; myCustomArrayOfPerkSpawns[ 0 ].script_noteworthy = "specialty_weapupgrade";
Specialty and Model names for base perks
:::"specialty_quickrevive" "zombie_vending_quickrevive" "specialty_armorvest" "zombie_vending_jugg" "specialty_rof" "zombie_vending_doubletap2" "specialty_fastreload" "zombie_vending_sleight" "specialty_longersprint" "zombie_vending_marathon" "specialty_scavenger" "zombie_vending_tombstone" "specialty_weapupgrade" "p6_anim_zm_buildable_pap" "specialty_additionalprimaryweapon" "zombie_vending_three_gun" "specialty_deadshot" "zombie_vending_ads" "specialty_finalstand" "p6_zm_vending_chugabud"
:::
Replace the .model and .script_noteworthy values with the correct perk specialty and model for each perk you would like to spawn in. If you followed these steps correctly you should have perks spawning with the coordinates and angles you've specified. Do note since you've set the pos array to a totally new array without the original data you will have to add all of the perk spawns by hand. Of course you could also just manually add your perks to the pos array since it can accept duplicates.
Final word: You can modify quite a few other values and behaviors if you use my recompileable scripts project so if you ever find yourself limited and unable to modify something for whatever reason check and see if I've checked/fixed a script relevant to your current project. I'm open to requests for specific scripts if you need them to be checked, though I don't have enough time generally to debug them since that is a very time consuming activity. Feel free to contact me on discord if you have any questions: JezuzLizard#7864
-
-
This post is deleted!
-
Cahz Good job with this man
I don't have time to make it, but tomorrow i'll realse a custom game for MP -
If you wanted to override the mystery box to force it onto the rooftop, you could edit the _zm_magicbox.gsc file and override the array of chests already in on the map. I've already done the work for it, all you need to do is copy all the code from HERE and compile it as _zm_magicbox.gsc and place it inside your pluto file location t6r/data/maps/mp/zombies/_zm_magicbox.gsc
Shoutout JezuzLizard for all the recompile-able scripts