Thursday, 21-Sep-2017  00:00:00
Enhanced Coop  
[ New messages · Members · Forum rules · Search · RSS ]
Page 1 of 3123»
Forum moderator: MrLoathsome 
Forum » Map Packs, Mods & Mutators » Mutators » Mods, Monsters, ect (Different things for debates)
Mods, Monsters, ect
NelsonaDate: Saturday, 01-Jun-2013, 9:39 AM | Message # 1
Lieutenant colonel
Group: Checked
Messages: 122
Awards: 0
Reputation: 0
Status: Offline
Let's talk about common things for monsters, Bots, different A.I. tricks here to not bug other threads. Is not a need, but I think this in way is better to have A.I. discutions in a single place.

Message edited by Nelsona - Saturday, 01-Jun-2013, 9:54 PM
 
NelsonaDate: Saturday, 01-Jun-2013, 9:48 AM | Message # 2
Lieutenant colonel
Group: Checked
Messages: 122
Awards: 0
Reputation: 0
Status: Offline
Now I start with my last toy Domination Order "Search and Destroy". In my madness I set Bot Leader to SPEAK such order to other Bots (as human). I have 2 Things: 1) Good 2) Goes bad.

1) Bot will send order for attack to other Bots using voice as human - Works for sure, as I saw this more than 3 times and looks exactly as a human leader;

2) Sadly - some Epic code mess ? - Doesn't have a right Index for Domination in Bot case (other bug more exactly) and our Leader will still Speak "Assault the Base" even I can Speak "Search and Destroy". I wanna see if in CTF is not the same problem.

I wanna see if I can do a reindex of ChallengeVoicePack according to game-type...
 
NelsonaDate: Saturday, 01-Jun-2013, 10:11 PM | Message # 3
Lieutenant colonel
Group: Checked
Messages: 122
Awards: 0
Reputation: 0
Status: Offline
Skaarj subject

Yeah bIsPlayer is not called "false" very soon - you said never, I say hmmm....
Tracking lines and recalling my hunting missions I remember 2 freaks: SkaarjSniper, SkaarjOfficer(in MH messed by Shrimp who replaced Razorjack with an unexistent "OLRajorjack" wrong typed)
Others like Gunners Troopers Infantry acted just with delay. Things were bad at adding tick and/or timer and that's all about weaponry.
Now, as I saw, Weapon in state idle (whatever idle) is calling Pawn(Owner).SwitchtoBestWeapon or like this - in that function is called ChangedWeapon() and the desired variable.
Next Equation is lotery - When weapon is going to that state to trigger pawn correctly or it won't go soon ? Eh, some of them gone from F5 view, others not.
For ammo,
1) Well I couldn't see many Skaarj out of ammo - first because weapon changed must have the same ammo as original - recommended. I modified a map giving to Officer directly OLRazorJack (having original ammo) they were armed well. I started an UTCoop session later in the same map. Problem - UTCoop has a child of DMMutator replacing all old ammo and other old things. You don't wanna see what happened at Skaarj's Locations wink .

2) I set a "rifle" for some SkaarjSniper - Local Practice Session - I checked things by curiosity (adding 2 Bots): cheatview SkaarjSniper - behindview 0 wink .


Message edited by Nelsona - Saturday, 01-Jun-2013, 10:12 PM
 
MrLoathsomeDate: Sunday, 02-Jun-2013, 9:09 AM | Message # 4
Lieutenant colonel
Group: Moderators
Messages: 150
Awards: 0
Reputation: 0
Status: Offline
I did some testing with detailed logging on this the other night.
Results explain several things.

I now know under what conditions the skaarj end up with bIsPlayer=True and
also when it gets set to False as it should.

Several things can happen when adding the Weapon carrying skaarj to a game.

1.   All goes well.  Skaarj has his gun and bIsPlayer gets set to false.

2.   The gun fails to spawn.  (variable myWeapon in the Trooper state code.)
bIsPlayer remains true in this case.

3.   The gun does actually spawn, but the Skaarj fails to pick it up.
bIsPlayer remains true in this case.   And you get the guns scattered about the map...

Now if  2 or 3 happens, and the weaponless skaarj wanders around and runs across a gun AFTER it has
spawned, you will end up with a skaarj who does have a gun.

but bIsPlayer remains true.....

My tests confirm what you observed regarding the Skaarj and Ammo.    The code does seem to keep it at default
weapon level.   I did actually see them get more ammo if they happened to run over some ammo or another of the
same type of weapon, but the never dropped below the default ammo amount.

I can't seem to actually ever recall seeing a Skaarj throw a weapon.    I was guessing about that and am pretty sure I was wrong.  (not 100% sure....LOL)

I haven't looked at UTCoop or anything else while working on this.   That becomes problematic as a number of 3rd party mods/mutators try various things
themselves attempting to correct these issues.

I am pretty sure that extending the Trooper classes is not the best way to approach this.  Many have tried that in the past without any success that I know of.

As my test results show, the spawning of the gun is complicating things, and then the failure of the troopers to pickup the weapon when it does
spawn, but only sometimes, complicates things further.

This needs to be fixed by the code that is adding the Skaarj to the game.    This code needs to be placed in gametype(s) that fixes all the other
various errors caused by ScriptedPawns that are added to UT games.  These gametypes will have an updated version of the SwarmSpawner
code built right into them.   The spawner needs to be integrated into the gametypes themselves, in order to fully implement Team Game support
for scriptedpawns.
So that is where I am gonna put it. tongue

The fix also needs to happen only once, when the Skaarj is spawned.

I have been down this road before, when I was working on the BadNews! mutator re-write.   I tried a LOT of things before I finnaly
just took all the Troopers out of the mutator entirely.    And trying to check all the pawns, and fix any broken troopers in a mutator, is
really just a horrible way to do it.   Especially since it doesn't seem to work,  at least any way I have tried so far.

I have done lots of things, that spawn stuff....    Sometimes, things just don't spawn, for so many reasons that are buried deep in the
code and dependent upon so many conditions that there is no good way to do anything without checking to make sure your current
actor has actually spawned first.     The Trooper code is lacking in this respect if you ask me....

Current Plan for the Troopers:

BRUTE FORCE!!!!!!

Several ways I might do this.   Going to try them all and depending upon what works, try to come up with an optimal final method.

1.    Spawn the skaarj as usual.   Do a check to see if skaarj has a weapon.    If not, destroy the bastard and try again.

2.    Spawn the skaarj as usual.   Do a check to see if skaarj has a weapon.    If not, check to see if TheSkaarj.myWeapon spawned or not.
If it hasn't, try to spawn it again, and give it to the skaarj.

3.    Spawn the skaarj as usual.   Do a check to see if skaarj has a weapon.    If not, spawn another instance of the same weapon class very
close to the same location.   Use SetLocation() to drop the skaarj right on top of the new weapon, or get the skaarj holding the weapon somehow.
Manually call the ChangedWeapon() function for that skaarj to get bIsPlayer set false.   (Or try to force that also if still True at this point....)

If any of this works, there will be an update to the SwarmSpawner mutator first, and then the BP5 (Mega stuff) gametypes will be updated.


Moo

 
MrLoathsomeDate: Sunday, 02-Jun-2013, 9:18 AM | Message # 5
Lieutenant colonel
Group: Moderators
Messages: 150
Awards: 0
Reputation: 0
Status: Offline
Quote (Nelsona)
Now I start with my last toy Domination Order "Search and Destroy". In my madness I set Bot Leader to SPEAK such order to other Bots (as human). I have 2 Things: 1) Good 2) Goes bad.1) Bot will send order for attack to other Bots using voice as human - Works for sure, as I saw this more than 3 times and looks exactly as a human leader;

2) Sadly - some Epic code mess ? - Doesn't have a right Index for Domination in Bot case (other bug more exactly) and our Leader will still Speak "Assault the Base" even I can Speak "Search and Destroy". I wanna see if in CTF is not the same problem.

I wanna see if I can do a reindex of ChallengeVoicePack according to game-type...

I have also noticed that, but haven't looked into it at all.   If I recall correctly, the Search and Destroy order will work in practice games, but not on a Multiplayer game.
Made a note to try and include that fix if it can be easily adjusted at the gametype level.

Thanks again for the feedback.

Also, I have been following on and off a couple of other threads you have at other sites regarding many of these ScriptedPawn/MH/Gametype level problems
we have all been looking at and various observations regarding UT.

Good work there.   If any of the info GoPostal or myself have provided assisted you with that, it might be cool if you mentioned it.


Moo

 
MrLoathsomeDate: Sunday, 02-Jun-2013, 9:36 AM | Message # 6
Lieutenant colonel
Group: Moderators
Messages: 150
Awards: 0
Reputation: 0
Status: Offline
More stray thoughts regarding bIsPlayer for the Monsters.

The way I am planning on implementing Team support for the monsters
is going to bypass completely any need for that to be set True.

It is going to be easy to add the check for Team and tweak the code I have in
the MegaDomination/MegaTDM code for that.

Current version has the monsters attacking Players, Bots, ControlPoints and Higors Botz.
But there is no reference to Botz in the source..... wink

It will be a minor thing to adjust that so monsters will attack other monsters who
are not on the same team.   And ignore Player/Bots who are on the same team.

Worst thing that will happen if you use a 3rd party mutator to add even more monsters
to your games, is that they might get attacked by all monsters.
If the 3rd party mutator you use has an option to set the monsters Team variable, then things
should work perfect.

By integrating the spawner code itself into the gametype, this should enable
the ability to have players/monsters/bots all on the same team if desired.
Or a team of players. a team of bots, and 1, 2 or 3 teams of only monsters.
Or whatever mix you can think of.

Users/admins will be able to configure any setup they want in any combo they can
think of.   *Maybe.  There may be some restrictions.    I am only half-way there with this Big Plan (5).

If you look at the source for ScriptedPawn, there are bits that reference bIsPlayer, but I strongly suspect
lots of that is broken.

If I did decide to try and fix the ScriptedPawn class itself, the first thing I would try to do is rip all references to bIsPlayer right
out of there.

But I won't do that, as I am gonna fix all those issues without touching it.

When I get done with this, MH3 should be extending class BP5.DeathMatchPlus.


Moo

 
NelsonaDate: Sunday, 02-Jun-2013, 10:26 AM | Message # 7
Lieutenant colonel
Group: Checked
Messages: 122
Awards: 0
Reputation: 0
Status: Offline
Brute force for Troopers might be good. Ehe... I quited calling "MyWeapon" or "WeaponType". Various maps and various "ideeas" craps the mostly, brought as different ScriptedPawn (aka Monsters subclasses of some "WeaponHolders")

I found pawns from whatever SevenB or Xidia, Yoshis, "Genest" all kind of messed pawns (missing animations, missing codes). Some of them copied a bit trooper code but... a few really RAN OUT OF AMMO indeed, doesn't matter their internal code to load constantly weapon - they did not loaded anything, which is sick and stupid for a package released for public. There is some code to automatically modify weapon-type, if weapon-type was modified and ammo is generated for old weapon then I'm not surprised to see them locked. Later, taking some hit they hang in that "TakeHit" animation without to move but they can fire from that position looking as manure. Once server crashed (was a lag attack or I did not used UCC in that session or those pawns are really craps - log said something about Engine.Pawn.xxxx performed too slow or something like this - strange error indeed). I was thinking to do a timer for them too, but I think they deserve 0 efforts since there are a few maps using them a la "Liandri" ect, MH-Guardia (ported brainless from Assault) which doesn't have a native MH Bot Support but somehow almost works in my version of MH (as MH-Overlord). For AS-Frigate, if I want a MH version I ought to modify it myself as I did with MH-Mazon (some dude wanted popularity but developed a crap). In my MH version Bots are destroying chains (a stupid trick but works) and are attacking until end - guards are patrolling area as defenders and the Crystal must be attacked with a heavy balistic gun a la RocketLauncher being guarded by Tentacles with heavy projectiles.

But let's return to A.I. subject. Noticing various classes (not only Troopers) I debated problem simply checking them for weapon. New Weapon with net code the mostly is using the same ammo-type so should not be a problem if their code is not addressing directly weapon-class.
Cloning all stuff properly sometimes need a bunch work or need really nothing. Let's see. TrueYoshis (I don't know author's I.Q. for that class) have a nasty meleedamage - need people to play against 2 such freaks. Their weapon, cough, is a dumb one with an insane damage but 0 Net Code. Do I need to recreate their Weapon for On-Line Play because need help to defend them ? I guess not. But I'm returning to the replacement call:

Code
if (other.class == class 'oldclass')

vs

if (other.isa('oldclass'))


This time I don't have any crap in any game because "ISA" works for sure attacking all bad subclasses re-arming pawn with Net Weapon even is acting different from Original - original being out of logic at SP chapter.


Message edited by Nelsona - Monday, 03-Jun-2013, 0:24 AM
 
NelsonaDate: Sunday, 02-Jun-2013, 10:45 AM | Message # 8
Lieutenant colonel
Group: Checked
Messages: 122
Awards: 0
Reputation: 0
Status: Offline
Another kind of story - "Monster Cheater". Some of them as we know have a certain ReducedDamageType or something like this. Also because of some less logic from maps I heavily decided to get rid of these "features", is simple, I don't want to recode a heavy attraction code to make bot to change weapon in attack because this monster is taking 0 damage - heck.

In other ideea a friend noticed me about some Sliths dying corroded (I can see all mesages including deliberated self kills - just to do fixes), LOL. No answer, just another question from me: Why in a damage zone which kills hunters pretty fast we need another threat since is a bad zone anyway ? Ta, daa... Let them die happy because they have errors, LOL. Mercenary entered in invulnerability in dead zone having -11 health (happens rarely but was very nasty - I operated problem manually as admin - how about a normal player ?) this pawn never lost shield hunting people all the time like using a "god" cheat. These small flaws are history for the moment. If will appear other dumb ideeas I think I'll try to work with arrays and states. - status[1] = S.GetStateName(). If status[1] == 'invulnerable' or other string - do some fix.
More time I pushed pawns from outside - I don't like this ... but this is a need to do.
 
MrLoathsomeDate: Sunday, 02-Jun-2013, 3:49 PM | Message # 9
Lieutenant colonel
Group: Moderators
Messages: 150
Awards: 0
Reputation: 0
Status: Offline
This will indeed be "pushing the pawns from the outside", but if it works, it will be the way to do it.

You were on the right track, but doomed to fails for tech reasons.   That Skaarj code is messed up.

If this works the way I want, you will be able to add any of those pawns to the games, and the issues will
have been fixed without any changes to the various pawns.   Other that issues caused by problems in the
new pawns themselves.

Look very close at any code before you assume it is good.   3rd party mods/muts/pawns and Epic code.
Look at all of it.

I have modified mutators, that had huge amounts of code in them, with linked lists, and stacks and pushing and
pulling, and all the cool stuff they teach you.  And NONE of the code that they had, that would be running in a timer
or tick function, was doing anything useful.   In ever case where I ran across this sort of thing, I was able to duplicate
the same functionality, with just a minimal amount of code.

Compare the original BadNews. or MoreGore, or TWT_Zombies source code to what I released.

If I do make this plan work, it will not include any code that is pointless and does nothing.

I should sleep now.   Will try to post something interesting soon.


Moo

 
gopostalDate: Sunday, 02-Jun-2013, 5:46 PM | Message # 10
Private
Group: Checked
Messages: 19
Awards: 0
Reputation: 0
Status: Offline
Quote (MrLoathsome)
If I do make this plan work, it will not include any code that is pointless and does nothing.
This is why I love you.

I've been reading this with great interest. I hope you get it sussed out because I'm going nuts trying to fix my trooper classes on the coop server.
 
NelsonaDate: Monday, 03-Jun-2013, 0:00 AM | Message # 11
Lieutenant colonel
Group: Checked
Messages: 122
Awards: 0
Reputation: 0
Status: Offline
Gopo, do basic fix as in MH, I noticed your timer in coop. If you have timer, troubles are gone - including Trooper attacking itself... There is a function to arm player in Botpack, done by Epic. I'm not really using that (is for enforcer and/or a single weapon) for more weapons, A.I. will return rateself accesed none. I have a small sequence as server-side modified after another mutator which is using a list with weapons. I don't have any A.I. error at this subject.

Code
newWeapon = Spawn(WeaponClass,Pawn.Owner,Pawn.Tag,Pawn.Location,Pawn.Rotation);
    if( newWeapon != None )
    {
       newWeapon.RespawnTime = 0.0;
       newWeapon.bHeldItem = True;
       newWeapon.GiveTo(Pawn);
       newWeapon.SetSwitchPriority(Pawn);
//      newWeapon.WeaponSet(Pawn); //I don't need this
//      newWeapon.AmbientGlow = 0; //Already set by GiveTo
//      Pawn.PendingWeapon = None; //Not necessary - Lines removed letting Pawn to check inventory as he wants and to switch according to combat situation
       if ( !newWeapon.IsA('ImpactHammer') && !newWeapon.IsA('Translocator') )
       {
          newWeapon.GiveAmmo(Pawn);
          newWeapon.AmmoType.AmmoAmount = newWeapon.AmmoType.MaxAmmo/4; //a bit more than default
       }
    }
 
NelsonaDate: Monday, 03-Jun-2013, 0:22 AM | Message # 12
Lieutenant colonel
Group: Checked
Messages: 122
Awards: 0
Reputation: 0
Status: Offline
Bot and orders

In the new controller I quited ideea to make Bot Leader to act as human because he say always at begining "Assault the base". If I give attack order, my voice sounds like "Search and Destroy". But I simply set them to freelance not cover rewriting and overiding TeamGamePlus default rules - I don't need default rules. Leader is attacking, others are attacking as well but without so high intensity, they tends to collect ammo and weapons more than Leader which is very interested about mission collecting only nearby inventories. Having in hands a new controller I can guide them as I want. You know what I'm wander ? I want to know those paramaters (is hard for me to fully understand them) is about GameThreat and PriorityObjective. I did something but I guess I still need small tunes. What can I say ? Suprisingly a few maps which were assumed messed for default MH, in my version somehow works - slowly but I have better results.
In fact my problem is another. Triggering A.I. to be more convinced in their actions. Example: In DM-Deck16 they are very intended to get that shieldbelt placed over acid (noob players are falling) is a nasty position for a novice. You see, Bot medium skilled can manage that. If I put some Waypoint specific for MH like that, I'm absolutely sure they won't be interested. Traveling for nothing is the mostly rejected. Native code of pawn is more powerfull than external code pushing it to a keypoint. For this reason I think I'll rework again A.I. controller. I have to prepare a few crappy maps and I think I'll setup something like an inventory to involve desire versus enemy.

I want to work a code translated like this: If exist an enemy-monster and enemy-monster has an event - is a priority - desire to advance = 0. If not exist any enemy in a closer range (1500-1800 ?) desirability will be 2.5 at once with Attraction code. For some stupid ammo or an armor Bot will go over a rope. For a keypoint is not taking any risk even with the same path that's why I want to call native pawn code else A.I. will be still messed.


Message edited by Nelsona - Monday, 03-Jun-2013, 0:31 AM
 
NelsonaDate: Monday, 03-Jun-2013, 1:02 AM | Message # 13
Lieutenant colonel
Group: Checked
Messages: 122
Awards: 0
Reputation: 0
Status: Offline
Monster Teaming

Looking at ScriptedPawn code I needed a few things:

1) TeamTag - is a string - creatures having this Tag will attempt to be a team, but they first are doing a check: Leader. If they don't have a leader Tag wil be '' (null) and bye teaming. Reinforcing teaming in the function meant to power-up monsters I saw doubled things. Very late I noticed this issue where is coming from. They spawned and were teamed fast - later their code rejected teaming and I reinforced a power-up at once with teaming a second time. Resulted randomly in pawns partially enhanced;
2) Finally (I have to work a special credit window for LOATHSOME) I was inspired to another work by mr. Dummy.
Map is loaded - actors are checked (checkreplacement AlwaysKeep relevancy ect). I power them up but not teaming (removed code in other section). I setup a Leader (in state GameEnded) a bit later - after PostBeginPlay in first second of timer. Good... During this time bad pawns from maps are replaced. After setting up the Leader I'm declaring a variable to true - if this variable is true replacing pawns is stopped (is a problem when some special spawners start messing up their internal counters). Also in PostBeginPlay all Factories intended to spawn craps are fixed. Example: Stupid ideea to spawn LeglessKrall - has no logic, is not for combat, is a kind of Carcass-Pawn but some guys need a tutorial, eh. Also SkaarjBerserker is a bug not a Pawn (as I noticed). I have other one cloning data from Old Pawn from map (I found a solution to clone even his name), skin, ect. This replacement is mad as original pawn but won't crash server (I strongly tested it).

If monsters spawned later have a teamtag - if they discover that Leader will act as team without rejection. But always exist bugs, they sometimes tends to be pissed off by others (bad attitude code) and I set some values in alwayskeep to not be changed. Also a version of SYF is meant to keep things properly. Monsters from a team if they are even the same class will attack player like mads. That's why Fuzz noticed a different "game feeling".


Message edited by Nelsona - Monday, 03-Jun-2013, 7:26 PM
 
gopostalDate: Tuesday, 04-Jun-2013, 3:24 PM | Message # 14
Private
Group: Checked
Messages: 19
Awards: 0
Reputation: 0
Status: Offline
Nels, I do have the timer in the coop, but the troopers still have weapon spawns where they start. I think it's the replacement code (again). I'm just going to have to rewrite the entire damn thing I think.
 
NelsonaDate: Tuesday, 04-Jun-2013, 7:55 PM | Message # 15
Lieutenant colonel
Group: Checked
Messages: 122
Awards: 0
Reputation: 0
Status: Offline
Also could be a small flaw at ShouldRespawn or something called outside of Botpack. Weapon spawned by Skaarj assumed holded tends to respawn in infinite not a single time. Even with this, Skaarj is unarmed. I think you have to use that MH thing and deal with his weapon a bit later with timer. Is good to see them throwing VISIBLE weapons, somewhere Remote_Role looks altered like a weapon used from a package existent only in server not in client - works but invisible as Skaarj case.

Now I have in head more solutions (I picked one, simple or complicated as it is). But there are (I guess) even more solutions.

1) You can leave replacements alone - no replacement. In timer check pawns (in coop aren't so many) if a pawn is armed player, monster, just give it the alias not before to destroy that mess holded (modify pickupMeassageclass - people are fooled about good weapons). I modified that message and now all craps picked up are showed like ammo from Botpack. Big White message at bottom of screen - better than those small letters in top and amo rescaled properly - (10 times normal ammo should be good for MH and 3 times for Coop ?);

2) Replacements restricted a la MH, but destroy later weapon holded and pass a good one;

3) Maybe you can scan weapon if is closer to a pawn in CheckReplacement - give that weapon to pawn forced and/or call touch directly. Also complete the deal with class later;

4) Some spirit whisper at my ear about something: bWeaponStay - I guess in Skaarj's case is false and some bRotatingPickup=True - Get these to a check and see if helps to deal with them.

Add or rework takeDamage - if (Instigatedby == Victim) (after checking != none and ScriptedPawn class)  ScriptedPawn(Victim).Enemy = none; ScriptedPawn(Victim).OldEnemy = None; ScriptedPawn(Victim).Hated = none; ScriptedPawn(Victim).bHunting = False; maybe ScriptedPawn(Victim).bCanBePissed = False; and any whatever thing to block a stupid self-attack (I don't recall now the map(s) were 2 as I saw playing a few minutes only).
PreventDeath can be used for fake drops. Look something simple:

Code
function bool PreventDeath (Pawn Killed, Pawn Killer, name DamageType, Vector HitLocation)
{

    if ( Killed != none )
    {
       if (Killer != none || Killer == None || Killed == Killer )
          DiscardInventory(Killed); //Simple bullshit without bHeldItem stupidity for everybody
    }

    if (NextMutator != None)
           return NextMutator.PreventDeath(Killed,Killer,DamageType,HitLocation);
    return false;
}

//Later others

function DiscardInventory (Pawn Other)
{
    local Actor dropped;
    local Inventory Inv;
    local class<Weapon> Initial1;
    local class<Weapon> Initial2;

    if (Other != none)
    {
//do not call DropWhenKilled - is already called, trust me.
    Inv=Other.Inventory;
    Loop1:
       if ( Inv != None )
       {
          if ( Inv.IsA('Weapon') )
          {
             if ( (Inv.Class != Level.Game.BaseMutator.MutatedDefaultWeapon()) && ((Weapon(Inv).AmmoType == None) || (Weapon(Inv).AmmoType.AmmoAmount > 0)) && Weapon(Inv).bCanThrow)
             {
                if (Inv.class != class'MHDispersionPistol' /*&& Inv.Class != class'DoubleEnforcer'*/) //Doh... Modify as you think  OLDPistol or others
                DropWeapon(Other,Inv);
             }
          }
          Inv.Destroy();
          Inv=Inv.Inventory;
          goto Loop1;
           }
       }
}

function DropWeapon (Pawn Other, Inventory Inv)
{
    local Inventory DropInv;
    local int DropPitch;
    local int DropYaw;
    local Rotator DropRot;

    DropInv=Spawn(Inv.Class,,,Other.Location);
    if ( DropInv == None )
       return;
    DropRot=Other.ViewRotation;
    DropPitch=Rand(32768);
    DropYaw=Rand(65536);
    DropRot.Pitch=DropPitch;
    DropRot.Yaw=DropYaw;
    Weapon(DropInv).bWeaponStay = false;
    DropInv.Velocity=vector(DropRot) * (Rand(250) + 250);
    DropInv.RespawnTime=0.00;
    DropInv.BecomePickup();
    DropInv.NetPriority = 1.400000;
    DropInv.NetUpdateFrequency = 10.000000;
    DropInv.RemoteRole = ROLE_DumbProxy;
    DropInv.SetPhysics(PHYS_Falling);
    DropInv.bCollideWorld=True;
    DropInv.GotoState('Pickup','dropped');
}
 
MrLoathsomeDate: Thursday, 06-Jun-2013, 3:42 PM | Message # 16
Lieutenant colonel
Group: Moderators
Messages: 150
Awards: 0
Reputation: 0
Status: Offline
You are over-thinking it.

The key is in the timing of when then things happen...

Many of the errors you are chasing, vanish once the Troopers get the weapon assigned correctly.

The Skaarj will be dropping their weapons just like a normal player when they are killed.
Or not.   I am going to make the weapon drop optional via config var.

Most of the code you just posted, is trying to fix errors regarding a weapon that shouldn't have been there in the
first place.

The code I have ATM that seems  to be fixing the Troopers weapons issue, is much shorter than that.

This will all be part of the next BP5 update.   Once I release that, I will try to update this thread with details
regarding what I did to try and fix the Troopers weapons.


Moo

 
NelsonaDate: Friday, 07-Jun-2013, 9:23 PM | Message # 17
Lieutenant colonel
Group: Checked
Messages: 122
Awards: 0
Reputation: 0
Status: Offline
I just have my observations. Racing through game-types (NsCTF, MH2_NS_Vx, MonsterHunt, x Coop games) I have a few thoughts:
- a simple BaseMutator will deal pretty well with these armed pawns - even if some accesed nones are shown;
- starting with a Tick or a Timer in purpose to make tunes, fixes - already pawns start to mess up weaponry;
- if we have a messed mutator and/or pawn have or not have picked up weapon - that weapon will be altered being invisible when a Player got it - Some replication or owner crappy bug boosted by bad pawn codes.
- For DMMutator simple done by Epic, even summoning armed monsters things are going enough well - no trouble as I can see - a single time a ripper dropped by a SkaarjOfficer killed, was bugged developing insane fire sound frequency - I wasn't ready with logs so I cannot explain what happened;
- PickupLog or LogPickup I cannot recall well this chapter since I give up to useless mad things - Skaarj, Timers, Stats, Weapons, cannot make a good soup as I've seen until this moment because timer alter monster if is not restrictive, fixing monster will do crappy logs because we have a player without a NAME, is just a wild freak undescribed nowhere.

Default MonsterHunt somehow can deal with Skaarj, not always but in big parts - doesn't have anything special. F5 view bug is often at SkaarjSniper indeed and randomly at others. Good, a coop server done by other dude triggered me to test it. Heck... was almost a clone of MH with UTJMHxxx (any mess). Gunner throwed weapon when died and I got some ... (I cannot see anything) ammo presented in HUD value = INF, yep read again string was "INF" not 12 or 40 or 56 or any number. That server is down at this moment - bug removed VIA server stopped, LOL.

As described by LoathSome we can speak about timing. A Heavy regen Timer is simply alter timing slowing down some executions, as long as we have those "old Weapons" crappy works of course calling external routines, a lot of calls to external default properties holded by a dummy mutator, what should I expect from game then ? Walking through those remakes I was sometimes disgusted about a few deals, I don't have a lot of experience with weapons stuff but even a kid can see nasty things. No other comments, just my thoughts. Botpack has examples that can be enhanced and well developed not reinventing useless stuff.

I was curious about news from War_Master but he seems to get vanished last time - I wanted to see his experience in dealing with monsters but maybe he is not so friendly speaking about sharing knowledge. No problem then.

Other subject
Recoding replacements for default Stock Monsters I saw more things looking stupid. I saw in more states the same idiotic call to "attacking" when "Enemy.Health<=0". I'm not surprised about that Infinite Recursion Call - critical bla bla Exiting.
I saw bug "bored fly" as I called it, also VictoryDance has no logic. Enemy was killed - maybe is monster and is destroyed - go to enemy.location and dance - LOL, what enemy ? And I still have to dig ScriptedPawn tracking a few things.
 
NelsonaDate: Saturday, 08-Jun-2013, 8:25 AM | Message # 18
Lieutenant colonel
Group: Checked
Messages: 122
Awards: 0
Reputation: 0
Status: Offline
Quote (Nelsona)
I'm not surprised about that Infinite Recursion Call - critical bla bla Exiting.

In fact ... fix to myself .. was about a Runaway Loop detected Old State... New state ... ect.


Message edited by Nelsona - Saturday, 08-Jun-2013, 8:25 AM
 
MrLoathsomeDate: Saturday, 08-Jun-2013, 10:05 AM | Message # 19
Lieutenant colonel
Group: Moderators
Messages: 150
Awards: 0
Reputation: 0
Status: Offline
Many, if not most of these issues and errors are all cascading from just a few bugs and poor coding choices made by Epic.

If you can track down the root problem of a specific error, and find a way to fix it, large numbers of other errors will just disappear.

Best to focus hard on 1 little bit of code at a time, until you find the section that is the root cause of the problem.

I am about to make a new post with details regarding the SkaarjTroopers and what I have done to fix those problems.
Take a look at that for an example of how fixing the root cause of a problem can fix many other related errors.


Moo

 
NelsonaDate: Wednesday, 12-Jun-2013, 7:39 PM | Message # 20
Lieutenant colonel
Group: Checked
Messages: 122
Awards: 0
Reputation: 0
Status: Offline
Other pawn problems (except bIsPlayer).

I setup a few lines meant to bring some features for different pawns. For normal movers things are OK, at least I have a fix when stays opened if pawn instigator is dead. Something is messed in UnTouch call or Untrigger when pawn is killed and is destroyed (or supposed to be destroyed).

My problem comes at TriggerControl movers (normal doors) which remains opened forever if pawn instigator is killed into the Radius of door's trigger. I'm looking for a solution, a fast code to remove this destroyed instigator from keeping door opened forever (as I saw, it won't be closed) I think function UnTouch is another thing forgotten when pawn is vanished.

My first target is at prevent death - I wanna see if a foreach added won't affect speed. I want to check pawn location if is in a trigger radius to call UnTouch if is possible.

I listen if you have some thoughts.


Message edited by Nelsona - Wednesday, 12-Jun-2013, 7:40 PM
 
MrLoathsomeDate: Thursday, 13-Jun-2013, 6:23 AM | Message # 21
Lieutenant colonel
Group: Moderators
Messages: 150
Awards: 0
Reputation: 0
Status: Offline
I have not done much with triggers  or movers.  (yet....)

But your plan sounds good.  Preventdeath would be the good place to check that.

Just try radiusactors check for triggers around the location of the dead monster.


Moo

 
NelsonaDate: Thursday, 13-Jun-2013, 7:20 AM | Message # 22
Lieutenant colonel
Group: Checked
Messages: 122
Awards: 0
Reputation: 0
Status: Offline
I've been thinking at this check but I wanted to hear your opinion. I recalled a situation in your BP5 server, 2 Skaarj attempted to run at their ControlPoint, their route passing through a lift... well, nothing happened just infinite attempts. As in Survival by TheDane, these common movers should be activated by monsters too or else will remain isolated, player will win game because of this issue gaining an advantage. In my CTF, if monster is geting mad at me, will hunt me down the mostly all time.
I said the mostly because of dealing with less good paths. Monster being bigger will deny following small places to not be stucked. Is good but let's say could be better to not see doors rammed by a monster who died there.


Message edited by Nelsona - Thursday, 13-Jun-2013, 7:20 AM
 
MrLoathsomeDate: Thursday, 13-Jun-2013, 7:44 AM | Message # 23
Lieutenant colonel
Group: Moderators
Messages: 150
Awards: 0
Reputation: 0
Status: Offline
Ha.   Very good.

Trying to figure a way to trigger lifts etc for the monsters, is on my list for the BP5 gametypes.

I think it can be done fairly easily, but I just haven't gotten that far yet.

Some of this stuff requires a LOT of testing.   A whole lot.   Insane amounts of testing.

Fixing maps with bad pathing is a whole different and even more complicated issue.
(But it is also on the list, a bit farther down....)


Moo

 
NelsonaDate: Thursday, 13-Jun-2013, 6:34 PM | Message # 24
Lieutenant colonel
Group: Checked
Messages: 122
Awards: 0
Reputation: 0
Status: Offline
Quote (MrLoathsome)
Trying to figure a way to trigger lifts etc for the monsters, is on my list for the BP5 gametypes.

Just Pawn_Proximity if Mover.Tag = Trigger.Tag && !Mover.bTriggerOnceOnly && !Trigger.bTriggerOnceOnly - done via PostBeginPlay().

Quote (MrLoathsome)
Fixing maps with bad pathing is a whole different and even more complicated issue.

Directly using game I'm not sure. With Editor... might be a great job.
 
MrLoathsomeDate: Friday, 14-Jun-2013, 8:53 AM | Message # 25
Lieutenant colonel
Group: Moderators
Messages: 150
Awards: 0
Reputation: 0
Status: Offline
Thanks.   I will be trying that out at some point here.

Moo

 
Forum » Map Packs, Mods & Mutators » Mutators » Mods, Monsters, ect (Different things for debates)
Page 1 of 3123»
Search:

Copyright MyCorp © 2017
Powered by uCoz