SwarmSpawn v2.0 - Final(Not)

Search, find and discuss about Mutators!
User avatar
sektor2111
Godlike
Posts: 6402
Joined: Sun May 09, 2010 6:15 pm
Location: On the roof.

Re: SwarmSpawn v2.0 - UT99 Preview Release II

Post by sektor2111 »

You can stop 10 seconds and think at a simple tech about spawner.
When a weapon or something is about to spawn with properties changed, these desired properties are changed BEFORE to see that thing showing up, it does spawn modified - changes goes with no backup. Next modified item class spawned by a monster is modified according to lasts properties assigned to that Item class. So SkaarjInfantry will have spawned Stinger changed. To summarize, results are based on your setup and how things get spawned nothing to blame at spawner. First Stinger modified will affect the Next stinger brought by SkaarjInfantry, because stinger class has been "virtually re-coded''.
User avatar
OjitroC
Godlike
Posts: 3601
Joined: Sat Sep 12, 2015 8:46 pm

Re: SwarmSpawn v2.0 - UT99 Preview Release II

Post by OjitroC »

sektor2111 wrote:You can stop 10 seconds and think at a simple tech about spawner.
When a weapon or something is about to spawn with properties changed, these desired properties are changed BEFORE to see that thing showing up, it does spawn modified - changes goes with no backup. Next modified item class spawned by a monster is modified according to lasts properties assigned to that Item class. So SkaarjInfantry will have spawned Stinger changed. To summarize, results are based on your setup and how things get spawned nothing to blame at spawner. First Stinger modified will affect the Next stinger brought by SkaarjInfantry, because stinger class has been "virtually re-coded''.
I think I get that. Does that explain, though, why the primary and alt projectiles of the Stinger seemed to vary from game to game, and why, in one test game, the Skaarj Gunner and Infantry didn't spawn with the weapons specified in the ini? Also does that explanation mean that changes to a weapon class specified in the ini will invariably afffect that weapon class in the map as well and that attempts to spawn two weapons of the same class but with different configuarions will fail?

Don't get me wrong - I am not seeking to criticise SwarmSpawn but merely seeking to understand how to successfully spawn certain classes of weapons (those that can be modified with this method) with altered projectiles; as well as, of course, dropping in various pawns to have some interesting, varied and fun games.
User avatar
sektor2111
Godlike
Posts: 6402
Joined: Sun May 09, 2010 6:15 pm
Location: On the roof.

Re: SwarmSpawn v2.0 - UT99 Preview Release II

Post by sektor2111 »

OjitroC wrote:the Skaarj Gunner and Infantry didn't spawn with the weapons specified in the ini?
It depends on what game were you playing. In default DM with no mutators you won't see any Eightball ever... What you need to know and others as well, you have basically a stupid thing running named DMMutator used in Botpack games due to "Weapons" deal. Draw a cube with Stinger and everything, save it as DM-MyHometest and do play a BotPack.DeathMatchPlus simple, I'll bet on 100$ that old wepsy are replaced (or doesn't exist) unless you screw them properly to bypass DMMutator.
That's why I'm using SwarmSpawner only for Monsters and other modification for my monsters in NsCTF, NsDM. It is good for things which are not double changed... if I have a Skaarj with Flak, that one won't be anything else than Mr. Flakson, as long as Spawner was preparing monster for the right job and not for two jobs.
I think I will create at a moment a sort of "IceSkaarj" which will get projectiles randomly firing all crap possible from an internal default list...
MrLoathsome
Inhuman
Posts: 958
Joined: Wed Mar 31, 2010 9:02 pm
Personal rank: I am quite rank.
Location: MrLoathsome fell out of the world!

Re: SwarmSpawn v2.0 - UT99 Preview Release II

Post by MrLoathsome »

Maybe this can explain it a bit.

Using the bSpawnOnce="True" option or a Qty=0 causes those settings to be applied
globally to the class itself before the item is spawned. (if it does get spawned...)

This will effect other actors of the exact same class in the level.

For the other cases, the settings just get applied directly to the spawned actor itself.

In cases where the SName variable being modified is a Class, such as the weapons, the global setting
for the Class itself will override any specific settings you place on the pawn itself.
It will appear to work according to the log, and the pawns copy of that variable will get changed, but it
is too late at that point. i.e. the Weapon or Skaarj has already been spawned with the item that was
currently set in the class before they were spawned.

(And of course this general rule does seem to get clobbered at times by some classes, depending upon what their code is doing..... :omfg: )

So for example with the Stingers. You can have the swarmspawner modify the projectiles, but if you want other Stingers on the same level
with different settings, then it is time to tweak those values in the code defaults itself and just compile yourself a new Stinger class for that projectile.

Then you could have SwarmSpawn spawning and adjusting them separately as they will be 2 different classes.

This explanation will either make things clearer, or more confusing. Not sure yet which..... :lol2:
blarg
User avatar
OjitroC
Godlike
Posts: 3601
Joined: Sat Sep 12, 2015 8:46 pm

Re: SwarmSpawn v2.0 - UT99 Preview Release II

Post by OjitroC »

MrLoathsome wrote:This explanation will either make things clearer, or more confusing. Not sure yet which..... :lol2:
That excellent explanation does make it a lot clearer now.
MrLoathsome
Inhuman
Posts: 958
Joined: Wed Mar 31, 2010 9:02 pm
Personal rank: I am quite rank.
Location: MrLoathsome fell out of the world!

Re: SwarmSpawn v2.0 - UT99 Preview Release II

Post by MrLoathsome »

Has anybody been trying out the Preview Release II version?

Think the core spawning code is optimized as much as I can get it. (Maybe...) It seems to be running fast.

Ran a test with 1 horde of 444 cows on DM-Barricade the other day.
It won't spawn that many in one pass on that map, but it kept trying until the whole
map was carpeted with cows. (Many fall off, it keeps trying to put them back next pass.)
Very little lag considering. It did not crash until there was an infinite loop error on the Nalicow
class itself in the CheckAttitudeTo() function. (That is Epics problem, not SwarmSpawners.... Keep Qty < 250)

Near as I can tell, the weird stuff I got in the Timer routine that attempts to add back any bSpawnOnce actors that
have "fallen out of the world" is working very well both on and offline.

For Preview Release III I am going to look at the following changes/additions:

1. Attempt to process Mutator class actors the same as any others, as far as enabling the application of the SSet0-SSet15 options
after the mutator class has spawned. Mutators might require a 2nd line to apply any extra options. Not sure on that, yet. Timing....
(Preview Release II was loading mutators as a special case in PostBeginPlay, and bypassing extra processing for that actor....)

2. Add an option for SwarmSpawn to replace 1 class with another.
Would add 2 new optional config vars for the swarminfo line. (bReplace, ReplaceClass)
If (bReplace="True") the class in SwarmClass[x] would replace whatever ReplaceClass actors might be in the level.
The SSet0-SSet15 options for a "Replace" line would be applied to the "new" replacement class.

Any bug reports or other feedback from those who have tried out Preview Release II would be helpful. 8)

*Edit. Change 1 looks like it will work, and can set a LifeSpan option on the mutator it loads.
I think this is very interesting.... That particular setting might have to be restricted to the last mutator you have
the spawner loading, but maybe not. More testing required to find out. :omfg: :wtf: 8)
blarg
User avatar
OjitroC
Godlike
Posts: 3601
Joined: Sat Sep 12, 2015 8:46 pm

Re: SwarmSpawn v2.0 - UT99 Preview Release II

Post by OjitroC »

MrLoathsome wrote:Has anybody been trying out the Preview Release II version?
Any bug reports or other feedback from those who have tried out Preview Release II would be helpful.
I've been running it for a while now (in DM/TDM) to spawn various weapons with modified projectiles, taking account of your comments and those from sektor2111, and sometimes to drop a few 'monsters' in - also used it to spawn sektor's scripted humans for the odd battle or two - have encountered no bugs - only have positive feedback, works well :gj:
User avatar
PVS
Novice
Posts: 16
Joined: Fri May 27, 2016 6:41 pm

Re: SwarmSpawn v2.0 - UT99 Preview Release II

Post by PVS »

With SwarmSpawn I add bots in UnrealShare.DeathmatchGame. I understand that this is not correct way, but another method currently not found. Experimentally, I picked up the following simple configuration for yourself for to add 4 bots in the game:
Spoiler
[SwarmSpawn.SS]
CheckRate=2
bDebugMode=False
bRandMode=False
SwarmInfo[0]=(SwarmClass="UnrealI.MaleOneBot",Qty=1,bSpawnOnce="True")
SwarmInfo[1]=(SwarmClass="UnrealI.MaleTwoBot",Qty=1,bSpawnOnce="True")
SwarmInfo[2]=(SwarmClass="UnrealShare.FemaleOneBot",Qty=1,bSpawnOnce="True")
SwarmInfo[3]=(SwarmClass="UnrealI.SkaarjPlayerBot",Qty=1,bSpawnOnce="True")
For the first time bots spawn without DispersionPistol, but they "think" that they have it, sometimes it looks very funny :) Аfter a bot will die, it respawn automatically and normally have DispersionPistol. I have quite a lot of testing and the SwarmSpawn is working well for me for this task in SP games and on the test server in an amount of about 30 Unreal DM-maps. I would like to ask a few questions:

1. Is possible to spawn with a time delay for my task? For example - second bot spawn across 2 seconds after the first bot, etc...
2. Maybe there is a way to set the bots name in my case? Now they all have the same name "Player".
3. If in idle state map not have free Spawnpoint ('fell out of the world') is there a possibility "Force" Spawn anyway? Or it is technically impossible to do?
RUSSIAN DESCENT OUTPOST
MrLoathsome
Inhuman
Posts: 958
Joined: Wed Mar 31, 2010 9:02 pm
Personal rank: I am quite rank.
Location: MrLoathsome fell out of the world!

Re: SwarmSpawn v2.0 - UT99 Preview Release II

Post by MrLoathsome »

This is something I will look into a bit this weekend. Messed with the code a bit earlier this week and seem to have made
progress with getting the thing to load mutators. It might require a few adjustments to spawn bots in a reliable way that will
work correctly, but not many I don't think.

Grabbed your sample ini file and will use that for initial testing.

Re: The questions:
1. Is possible to spawn with a time delay for my task? For example - second bot spawn across 2 seconds after the first bot, etc...
Not currently, or at least not a real good way, but there will be.
Going to try and add a SpawnDelay option for next release. It will only be an option for lines with bSpawnOnce="True".
2. Maybe there is a way to set the bots name in my case? Now they all have the same name "Player".
You might be able to do that already by adding something like: SSet0=(SName="PlayerReplicationInfo.PlayerName",SVal="Fred The Stupid Bot")
Haven't tried that yet, but that will be the 1st thing I do try when I get to working on this.
3. If in idle state map not have free Spawnpoint ('fell out of the world') is there a possibility "Force" Spawn anyway? Or it is technically impossible to do?

This issue is still being looked at. I think a few factors cause this, one of which is probably the way I am building the list of potential spawn locations.
Will be adjusting that code some in the hopes to reduce the frequency of things "falling out of the world". Number of spawn locations will be reduced as
a result, but it should still find plenty. Will have to search for some of Sektor's advice scattered about the forum regarding spawn locations etc.
I already have it avoiding spawning things on movers or in painzones etc, but recall reading some of his posts with related info I should review.

That last release actually has some new stuff in there to attempt to detect and "Force" a respawn, and from what I have seen in the logs during testing
it is working fairly well. But sometimes the 2nd attempt also falls out of the world...

Plan on moving that bit of code out of the main timer routine. Will have the initialization function(s) spawn a temporary actor that will be on it's own
little timer which will make multiple attempts to get the actor specified in your SwarmSpawn.ini added to the level. Then it will destroy itself.
This will only happen for actors with the bSpawnOnce="True" set. (Others will just get added back later anyway....)
blarg
User avatar
OjitroC
Godlike
Posts: 3601
Joined: Sat Sep 12, 2015 8:46 pm

Re: SwarmSpawn v2.0 - UT99 Preview Release II

Post by OjitroC »

PVS wrote:2. Maybe there is a way to set the bots name in my case? Now they all have the same name "Player".
As suggested by Sektor2111, you can also use

Code: Select all

SSet*=(SName="MenuName",SVal="Name") 
where * = the SSet number
User avatar
sektor2111
Godlike
Posts: 6402
Joined: Sun May 09, 2010 6:15 pm
Location: On the roof.

Re: SwarmSpawn v2.0 - UT99 Preview Release II

Post by sektor2111 »

You have PlayerReplicationInfo which probably spawns a bit later for that "player". Then you'll need some timing. So to speak if you want that, it's probably a need for other actor/mutator doing that job and sorting a name from a given list. Does it really worth such thing ?
User avatar
PVS
Novice
Posts: 16
Joined: Fri May 27, 2016 6:41 pm

Re: SwarmSpawn v2.0 - UT99 Preview Release II

Post by PVS »

Thanks OjitroC, but I think, that "MenuName" work only with SHuman bots by Sektor2111, I would like to use default bots and advisable old bots from Unreal.u/UnrealShare.u, because tested UnrealShare.DeathmatchGame mode for myself.

Tested a SSet0=(SName="PlayerReplicationInfo.PlayerName",SVal="Name") for to change bots spawn name - not work for me.
First try:
Spoiler
[SwarmSpawn.SS]
CheckRate=0.66
bDebugMode=True
bRandMode=False
SwarmInfo[0]=(SwarmClass="UnrealI.MaleOneBot",Qty=1,bSpawnOnce="True",SSet0=(SName="PlayerReplicationInfo.PlayerName",SVal="Kurgan (Bot)"))
SwarmInfo[1]=(SwarmClass="UnrealI.MaleTwoBot",Qty=1,bSpawnOnce="True",SSet0=(SName="PlayerReplicationInfo.PlayerName",SVal="Ash (Bot)"))
SwarmInfo[2]=(SwarmClass="UnrealShare.FemaleOneBot",Qty=1,bSpawnOnce="True",SSet0=(SName="PlayerReplicationInfo.PlayerName",SVal="Gina"))
SwarmInfo[3]=(SwarmClass="UnrealI.SkaarjPlayerBot",Qty=1,bSpawnOnce="True",SSet0=(SName="PlayerReplicationInfo.PlayerName",SVal="Skaarj"))

Log:
ScriptLog: SwarmSpawn: Begin PreCacheLists
ScriptLog: Swarm# 0 UnrealI.MaleOneBot
ScriptLog: SSet0 - Set UnrealI.MaleOneBot PlayerReplicationInfo.PlayerName Kurgan (Bot)
ScriptLog: Swarm# 1 UnrealI.MaleTwoBot
ScriptLog: SSet0 - Set UnrealI.MaleTwoBot PlayerReplicationInfo.PlayerName Ash (Bot)
ScriptLog: Swarm# 2 UnrealShare.FemaleOneBot
ScriptLog: SSet0 - Set UnrealShare.FemaleOneBot PlayerReplicationInfo.PlayerName Gina
ScriptLog: Swarm# 3 UnrealI.SkaarjPlayerBot
ScriptLog: SSet0 - Set UnrealI.SkaarjPlayerBot PlayerReplicationInfo.PlayerName Skaarj
ScriptLog: SwarmSpawn: End PreCacheLists
ScriptLog: .
ScriptLog: SwarmSpawn: Begin Init - Spawnpoint count: 138 Number Swarms: 4
ScriptLog: Swarm# 0 SSet0 - Attempting: Set UnrealI.MaleOneBot PlayerReplicationInfo.PlayerName Kurgan (Bot)
ScriptLog: SwarmSpawn: Swarm #0 UnrealI.MaleOneBot
ScriptLog: SwarmSpawn: - Pre-Spawn class default adjustment: Set UnrealI.MaleOneBot PlayerReplicationInfo.PlayerName Kurgan (Bot)
ScriptLog: SwarmSpawn: DmCurse.MaleOneBot0 spawned....
ScriptLog: Attempted settings: DmCurse.MaleOneBot0 PlayerReplicationInfo.PlayerName Kurgan (Bot)
ScriptLog: Actual values: DmCurse.MaleOneBot0 PlayerReplicationInfo.PlayerName
ScriptLog: .
ScriptLog: .
ScriptLog: Swarm# 1 SSet0 - Attempting: Set UnrealI.MaleTwoBot PlayerReplicationInfo.PlayerName Ash (Bot)
ScriptLog: SwarmSpawn: Swarm #1 UnrealI.MaleTwoBot
ScriptLog: SwarmSpawn: - Pre-Spawn class default adjustment: Set UnrealI.MaleTwoBot PlayerReplicationInfo.PlayerName Ash (Bot)
ScriptLog: SwarmSpawn: DmCurse.MaleTwoBot0 spawned....
ScriptLog: Attempted settings: DmCurse.MaleTwoBot0 PlayerReplicationInfo.PlayerName Ash (Bot)
ScriptLog: Actual values: DmCurse.MaleTwoBot0 PlayerReplicationInfo.PlayerName
ScriptLog: .
ScriptLog: .
ScriptLog: Swarm# 2 SSet0 - Attempting: Set UnrealShare.FemaleOneBot PlayerReplicationInfo.PlayerName Gina
ScriptLog: SwarmSpawn: Swarm #2 UnrealShare.FemaleOneBot
ScriptLog: SwarmSpawn: - Pre-Spawn class default adjustment: Set UnrealShare.FemaleOneBot PlayerReplicationInfo.PlayerName Gina
ScriptLog: SwarmSpawn: DmCurse.FemaleOneBot0 spawned....
ScriptLog: Attempted settings: DmCurse.FemaleOneBot0 PlayerReplicationInfo.PlayerName Gina
ScriptLog: Actual values: DmCurse.FemaleOneBot0 PlayerReplicationInfo.PlayerName
ScriptLog: .
ScriptLog: .
ScriptLog: Swarm# 3 SSet0 - Attempting: Set UnrealI.SkaarjPlayerBot PlayerReplicationInfo.PlayerName Skaarj
ScriptLog: SwarmSpawn: Swarm #3 UnrealI.SkaarjPlayerBot
ScriptLog: SwarmSpawn: - Pre-Spawn class default adjustment: Set UnrealI.SkaarjPlayerBot PlayerReplicationInfo.PlayerName Skaarj
ScriptLog: SwarmSpawn: DmCurse.SkaarjPlayerBot0 spawned....
ScriptLog: Attempted settings: DmCurse.SkaarjPlayerBot0 PlayerReplicationInfo.PlayerName Skaarj
ScriptLog: Actual values: DmCurse.SkaarjPlayerBot0 PlayerReplicationInfo.PlayerName
ScriptLog: .
ScriptLog: .
ScriptLog: SwarmSpawn: End Init - Number Active Swarms: 0
Second try:
Spoiler
[SwarmSpawn.SS]
CheckRate=0.66
bDebugMode=True
bRandMode=False
SwarmInfo[0]=(SwarmClass="UnrealI.MaleOneBot",Qty=0,bSpawnOnce="True",SSet0=(SName="PlayerReplicationInfo.PlayerName",SVal="Kurgan (Bot)"))
SwarmInfo[1]=(SwarmClass="UnrealI.MaleTwoBot",Qty=0,bSpawnOnce="True",SSet0=(SName="PlayerReplicationInfo.PlayerName",SVal="Ash (Bot)"))
SwarmInfo[2]=(SwarmClass="UnrealShare.FemaleOneBot",Qty=0,bSpawnOnce="True",SSet0=(SName="PlayerReplicationInfo.PlayerName",SVal="Gina"))
SwarmInfo[3]=(SwarmClass="UnrealI.SkaarjPlayerBot",Qty=0,bSpawnOnce="True",SSet0=(SName="PlayerReplicationInfo.PlayerName",SVal="Skaarj"))
SwarmInfo[4]=(SwarmClass="UnrealI.MaleOneBot",Qty=1,bSpawnOnce="True")
SwarmInfo[5]=(SwarmClass="UnrealI.MaleTwoBot",Qty=1,bSpawnOnce="True")
SwarmInfo[6]=(SwarmClass="UnrealShare.FemaleOneBot",Qty=1,bSpawnOnce="True")
SwarmInfo[7]=(SwarmClass="UnrealI.SkaarjPlayerBot",Qty=1,bSpawnOnce="True")

Log:
ScriptLog: SwarmSpawn: Begin PreCacheLists
ScriptLog: Swarm# 0 UnrealI.MaleOneBot
ScriptLog: SSet0 - Set UnrealI.MaleOneBot PlayerReplicationInfo.PlayerName Kurgan (Bot)
ScriptLog: Swarm# 1 UnrealI.MaleTwoBot
ScriptLog: SSet0 - Set UnrealI.MaleTwoBot PlayerReplicationInfo.PlayerName Ash (Bot)
ScriptLog: Swarm# 2 UnrealShare.FemaleOneBot
ScriptLog: SSet0 - Set UnrealShare.FemaleOneBot PlayerReplicationInfo.PlayerName Gina
ScriptLog: Swarm# 3 UnrealI.SkaarjPlayerBot
ScriptLog: SSet0 - Set UnrealI.SkaarjPlayerBot PlayerReplicationInfo.PlayerName Skaarj
ScriptLog: Swarm# 4 UnrealI.MaleOneBot
ScriptLog: Swarm# 5 UnrealI.MaleTwoBot
ScriptLog: Swarm# 6 UnrealShare.FemaleOneBot
ScriptLog: Swarm# 7 UnrealI.SkaarjPlayerBot
ScriptLog: SwarmSpawn: End PreCacheLists
ScriptLog: .
ScriptLog: SwarmSpawn: Begin Init - Spawnpoint count: 138 Number Swarms: 8
ScriptLog: Swarm# 0 SSet0 - Attempting: Set UnrealI.MaleOneBot PlayerReplicationInfo.PlayerName Kurgan (Bot)
ScriptLog: SwarmSpawn: Swarm #0 UnrealI.MaleOneBot
ScriptLog: SwarmSpawn: - Pre-Spawn class default adjustment: Set UnrealI.MaleOneBot PlayerReplicationInfo.PlayerName Kurgan (Bot)
ScriptLog: SwarmSpawn: DmCurse.MaleOneBot0 spawned....
ScriptLog: Attempted settings: DmCurse.MaleOneBot0 PlayerReplicationInfo.PlayerName Kurgan (Bot)
ScriptLog: Actual values: DmCurse.MaleOneBot0 PlayerReplicationInfo.PlayerName
ScriptLog: .
ScriptLog: Destroying: DmCurse.MaleOneBot0
ScriptLog: .
ScriptLog: Swarm# 1 SSet0 - Attempting: Set UnrealI.MaleTwoBot PlayerReplicationInfo.PlayerName Ash (Bot)
ScriptLog: SwarmSpawn: Swarm #1 UnrealI.MaleTwoBot
ScriptLog: SwarmSpawn: - Pre-Spawn class default adjustment: Set UnrealI.MaleTwoBot PlayerReplicationInfo.PlayerName Ash (Bot)
ScriptLog: SwarmSpawn: DmCurse.MaleTwoBot0 spawned....
ScriptLog: Attempted settings: DmCurse.MaleTwoBot0 PlayerReplicationInfo.PlayerName Ash (Bot)
ScriptLog: Actual values: DmCurse.MaleTwoBot0 PlayerReplicationInfo.PlayerName
ScriptLog: .
ScriptLog: Destroying: DmCurse.MaleTwoBot0
ScriptLog: .
ScriptLog: Swarm# 2 SSet0 - Attempting: Set UnrealShare.FemaleOneBot PlayerReplicationInfo.PlayerName Gina
ScriptLog: SwarmSpawn: Swarm #2 UnrealShare.FemaleOneBot
ScriptLog: SwarmSpawn: - Pre-Spawn class default adjustment: Set UnrealShare.FemaleOneBot PlayerReplicationInfo.PlayerName Gina
ScriptLog: SwarmSpawn: DmCurse.FemaleOneBot0 spawned....
ScriptLog: Attempted settings: DmCurse.FemaleOneBot0 PlayerReplicationInfo.PlayerName Gina
ScriptLog: Actual values: DmCurse.FemaleOneBot0 PlayerReplicationInfo.PlayerName
ScriptLog: .
ScriptLog: Destroying: DmCurse.FemaleOneBot0
ScriptLog: .
ScriptLog: Swarm# 3 SSet0 - Attempting: Set UnrealI.SkaarjPlayerBot PlayerReplicationInfo.PlayerName Skaarj
ScriptLog: SwarmSpawn: Swarm #3 UnrealI.SkaarjPlayerBot
ScriptLog: SwarmSpawn: - Pre-Spawn class default adjustment: Set UnrealI.SkaarjPlayerBot PlayerReplicationInfo.PlayerName Skaarj
ScriptLog: .
ScriptLog: SwarmSpawn: Swarm #4 UnrealI.MaleOneBot
ScriptLog: SwarmSpawn: DmCurse.MaleOneBot1 spawned....
ScriptLog: .
ScriptLog: SwarmSpawn: Swarm #5 UnrealI.MaleTwoBot
ScriptLog: SwarmSpawn: DmCurse.MaleTwoBot1 spawned....
ScriptLog: .
ScriptLog: SwarmSpawn: Swarm #6 UnrealShare.FemaleOneBot
ScriptLog: SwarmSpawn: DmCurse.FemaleOneBot1 spawned....
ScriptLog: .
ScriptLog: SwarmSpawn: Swarm #7 UnrealI.SkaarjPlayerBot
ScriptLog: SwarmSpawn: DmCurse.SkaarjPlayerBot0 spawned....
ScriptLog: .
ScriptLog: SwarmSpawn: End Init - Number Active Swarms: 0
I think, that something wrong there "Actual values: DmCurse.MaleOneBot0 PlayerReplicationInfo.PlayerName " not have "Name" itself. In the second attempt I have "Destroying: DmCurse.MaleOneBot0". In any case, I think that is wrong way.

One more observation: if trying to add bots in game via SwarmSpawn - I doubt, that they are "really bots" for the engine. Maybe it's the monsters or real players for the engine in this situation? :) For example, if starting UnrealShare.DeathmatchGame and for this game type in main UT.ini, in [UnrealShare.DeathMatchGame] section present this: "bNoMonsters=True" - SwarmSpawn not can spawn this "bots".

About "fell out of the world". On the U1 map DMLiberatiMei (in attachment) I have this situation:
Spoiler
[SwarmSpawn.SS]
CheckRate=2
bDebugMode=True
bRandMode=False
SwarmInfo[0]=(SwarmClass="UnrealI.MaleOneBot",Qty=1,bSpawnOnce="True")
SwarmInfo[1]=(SwarmClass="UnrealI.MaleTwoBot",Qty=1,bSpawnOnce="True")
SwarmInfo[2]=(SwarmClass="UnrealShare.FemaleOneBot",Qty=1,bSpawnOnce="True")
SwarmInfo[3]=(SwarmClass="UnrealI.SkaarjPlayerBot",Qty=1,bSpawnOnce="True")

Log:
ScriptLog: SwarmSpawn: Begin PreCacheLists
ScriptLog: Swarm# 0 UnrealI.MaleOneBot
ScriptLog: Swarm# 1 UnrealI.MaleTwoBot
ScriptLog: Swarm# 2 UnrealShare.FemaleOneBot
ScriptLog: Swarm# 3 UnrealI.SkaarjPlayerBot
ScriptLog: SwarmSpawn: End PreCacheLists
ScriptLog: .
ScriptLog: SwarmSpawn: Begin Init - Spawnpoint count: 48 Number Swarms: 4
ScriptLog: SwarmSpawn: Swarm #0 UnrealI.MaleOneBot
ScriptLog: SwarmSpawn: Swarm #1 UnrealI.MaleTwoBot
ScriptLog: SwarmSpawn: Swarm #2 UnrealShare.FemaleOneBot
ScriptLog: SwarmSpawn: Swarm #3 UnrealI.SkaarjPlayerBot
ScriptLog: SwarmSpawn: End Init - Number Active Swarms: 0
ScriptLog: SwarmSpawn: Post Init - Swarm #0 UnrealI.MaleOneBot Needs: 1
ScriptLog: SwarmSpawn: Attempting respawn of class UnrealI.MaleOneBot that 'fell out of the world'....
ScriptLog: SwarmSpawn: Post Init - Swarm #1 UnrealI.MaleTwoBot Needs: 1
ScriptLog: SwarmSpawn: Attempting respawn of class UnrealI.MaleTwoBot that 'fell out of the world'....
ScriptLog: SwarmSpawn: Post Init - Swarm #2 UnrealShare.FemaleOneBot Needs: 1
ScriptLog: SwarmSpawn: Attempting respawn of class UnrealShare.FemaleOneBot that 'fell out of the world'....
ScriptLog: SwarmSpawn: Post Init - Swarm #3 UnrealI.SkaarjPlayerBot Needs: 1
ScriptLog: SwarmSpawn: Attempting respawn of class UnrealI.SkaarjPlayerBot that 'fell out of the world'....
.... etc
ScriptLog: SwarmSpawn Post Init Aborting!!! One of your Zero Qty or bSpawnOnce classes will not spawn.
if I understand correctly - SwarmSpawn can not find a point for swap on this map? Also, I present on this map as a player and if I have time to find and pick up one item until the SwarmSpawn finishes its attempts to swap - all 4 bots spawn instantaneously at the same this "pick up point" and killing each other at the same time, sometimes one bot remained alive, it is happening very funny. For this reason, I earlier talked about the possibility spawn with time delay, order to the bot could get away from this dangerous spawn point :)
sektor2111 wrote:You have PlayerReplicationInfo which probably spawns a bit later for that "player". Then you'll need some timing. So to speak if you want that, it's probably a need for other actor/mutator doing that job and sorting a name from a given list. Does it really worth such thing ?
sektor2111, I have no doubt that this task is not interesting and that it is necessary to waste time. As I said above - I'm going this way just because I did not find another opportunity add bots in UnrealShare.DeathmatchGame (and any old game types which are still present in UT, and in fact - almost normal work). I believe, that the right way - to fix the current state for this old game types at the "root", I have no doubt that this is possible. Then there is no necessary to use SwarmSpawn for such an ordinary task - add bots to the game.

Guys, I can not very well write in English on technical topics, it is very difficult for me, sorry. If you do not understand something of what I wrote - you tell me, I'll try again...
Attachments
DMLiberatiMei.zip
(363.02 KiB) Downloaded 95 times
RUSSIAN DESCENT OUTPOST
User avatar
sektor2111
Godlike
Posts: 6402
Joined: Sun May 09, 2010 6:15 pm
Location: On the roof.

Re: SwarmSpawn v2.0 - UT99 Preview Release II

Post by sektor2111 »

Man, those are not monsters, are Pawns. They do have a PlayerReplicationInfo but it spawns a bit later. Then, if Pawn gets initialized too early, PlayerReplicationInfo did not spawn yet, SO IT DOES FAIL assigning PlayerName giving it a default "Player". Else their "configurator" actor might not be loaded, UT doesn't spawn it (I think I'm not mistaking), then they won't have a default value in config so they load a default PlayerReplicationInfo thing which is using to be "Player".
I'll do a small research and I'll try to find an answer more relevant as possible.
User avatar
PVS
Novice
Posts: 16
Joined: Fri May 27, 2016 6:41 pm

Re: SwarmSpawn v2.0 - UT99 Preview Release II

Post by PVS »

I think I understand what you mean.

Different theme, just like that, for the sake of experiment - now I tried spawn UT bots (for example BotPack.TMale1Bot, BotPack.TFemale1Bot) - they spawned without skins. While all 6 old bots from Unreal.u and UnrealShare.u - always have their normal skins. I wonder why?
RUSSIAN DESCENT OUTPOST
User avatar
heliumcat
Skilled
Posts: 185
Joined: Mon Apr 01, 2013 11:47 am

Re: SwarmSpawn v2.0 - UT99 Preview Release II

Post by heliumcat »

After playing around and having fun with version II of this mutator I got some mild questions about it.

I haven't been paying ultra close attention to this yet but when you play on random mode, does it go random straight away or does it first spawn swarm[0] and then start going random after that?

How do you spawn a weapon as if it's dropped and therefore not respawning every time at the same location after you've picked it up?
Post Reply