Mappers' Corner Mappers and Modders

Go Back   Omnip)o(tentS Forums > SERVERS > Mappers' Corner
Reply
 
Thread Tools Display Modes
Old 12-24-2016, 03:56 PM   #21
Wormbo
Wormlike
 
Wormbo's Avatar
 
Join Date: Dec 2009
Posts: 907
Default
Reply With Quote


100 (base damage) + 2 (goop level) * 550 (damage) = 100 + 1100 = 1200

About the shaking: Apparently the amount of camera shaking on damage is only determined by the amount of damage. UnrealPlayer.NotifyTakeHit passes the raw amount via PlayerController.DamageShake to PlayerController.ClientDamageShake, where the value is directly translated into a camera shake magnitude and duration. Apparently the Badgertaur projectile includes a workaround that stops all view shaking after dealing damage and then applying a fixed "50 damage shake" instead.
Wormbo is offline  
Old 12-24-2016, 07:04 PM   #22
Lagzilla
Getting there...
 
Join Date: Jan 2011
Location: Chicago
Posts: 783
Default
Reply With Quote


Quote:
Originally Posted by Wormbo View Post
100 (base damage) + 2 (goop level) * 550 (damage) = 100 + 1100 = 1200

About the shaking: Apparently the amount of camera shaking on damage is only determined by the amount of damage. UnrealPlayer.NotifyTakeHit passes the raw amount via PlayerController.DamageShake to PlayerController.ClientDamageShake, where the value is directly translated into a camera shake magnitude and duration. Apparently the Badgertaur projectile includes a workaround that stops all view shaking after dealing damage and then applying a fixed "50 damage shake" instead.
Basically you are saying that you could update other damtypes with the badgertaur code to fix the screen roll?

Andrew
Lagzilla is offline  
Old 12-24-2016, 07:25 PM   #23
Anonymous[Lolz]
Getting there...
 
Anonymous[Lolz]'s Avatar
 
Join Date: Feb 2009
Location: New York State
Posts: 872
Default
Reply With Quote


No, it's in the projectile code.
Anonymous[Lolz] is offline  
Old 12-24-2016, 07:38 PM   #24
Lagzilla
Getting there...
 
Join Date: Jan 2011
Location: Chicago
Posts: 783
Default
Reply With Quote


Quote:
Originally Posted by Anonymous[Lolz] View Post
No, it's in the projectile code.
Yeah, extends from the omnitaur rocket projectile.

if (Pawn(Victims) != none && Pawn(Victims).Health > 0 && PlayerController(Pawn(Victims).Controller) != none)
{
PlayerController(Pawn(Victims).Controller).StopVie wShaking();
PlayerController(Pawn(Victims).Controller).DamageS hake(50);
}

Uncredited...

A
Lagzilla is offline  
Old 12-24-2016, 08:02 PM   #25
Anonymous[Lolz]
Getting there...
 
Anonymous[Lolz]'s Avatar
 
Join Date: Feb 2009
Location: New York State
Posts: 872
Default
Reply With Quote


we need to spaghetti code this into the bio projectile
Anonymous[Lolz] is offline  
Old 12-24-2016, 08:48 PM   #26
Lagzilla
Getting there...
 
Join Date: Jan 2011
Location: Chicago
Posts: 783
Default
Reply With Quote


Will take a bit of time since with all the renaming and whatnot that will need to be done to avoid conflicts. I will see if Castiel has any time to help.

Andrew
Lagzilla is offline  
Old 12-24-2016, 10:51 PM   #27
Terminator
Getting there...
 
Join Date: Apr 2011
Location: St. Louis, Missouri
Posts: 776
Default
Reply With Quote


Ok, to clarify.

Leviathan, Kraken, Tiamat.

The Leviathan will NOT take any extra damage from the bio gun. The bio damage mod does not work on the Leviathan. However, the bio tank secondary (or DD primary) will make the Leviathan screen roll/spin. Bio gun DD will NOT make the Leviathan's driver screen roll/spin.

The Tiamat will take extra damage from the bio gun. The bio damage mod does work on the Tiamat. The Bio tank secondary (or DD primary) will make the Tiamat screen roll/spin. Bio gun DD will make the Tiamat's driver screen roll/spin.

The Kraken will take extra damage from the bio gun. The bio damage mod does work on the Kraken. The bio tank secondary (or DD primary) will make the Kraken screen roll/spin. Bio gun DD will make the Kraken's driver screen roll/spin.

To sum it up. Bio gun DD will make the Tiamat/Kraken screen roll. It will NOT make the Leviathan screen roll. The bio tank will make the Leviathan, Kraken, Tiamat screens roll/spin.
Terminator is offline  
Old 12-25-2016, 03:56 AM   #28
Binger
.

 
Binger's Avatar
 
Join Date: Nov 2007
Posts: 2,281
Default
Reply With Quote


Quote:
Originally Posted by Terminator View Post
Ok, to clarify.

Leviathan, Kraken, Tiamat.

The Leviathan will NOT take any extra damage from the bio gun. The bio damage mod does not work on the Leviathan. However, the bio tank secondary (or DD primary) will make the Leviathan screen roll/spin. Bio gun DD will NOT make the Leviathan's driver screen roll/spin.

The Tiamat will take extra damage from the bio gun. The bio damage mod does work on the Tiamat. The Bio tank secondary (or DD primary) will make the Tiamat screen roll/spin. Bio gun DD will make the Tiamat's driver screen roll/spin.

The Kraken will take extra damage from the bio gun. The bio damage mod does work on the Kraken. The bio tank secondary (or DD primary) will make the Kraken screen roll/spin. Bio gun DD will make the Kraken's driver screen roll/spin.

To sum it up. Bio gun DD will make the Tiamat/Kraken screen roll. It will NOT make the Leviathan screen roll. The bio tank will make the Leviathan, Kraken, Tiamat screens roll/spin.
Awesome summary. Does the Bio Rifle even with DD and triple multipler really do that much damage?

I thought this spinning thing was only from Bio shots but you guys said that it happened with a hit from another Levi.

Quote:
Originally Posted by Anonymous[Lolz] View Post
we need to spaghetti code this into the bio projectile
Quote:
Originally Posted by Lagzilla View Post
Will take a bit of time since with all the renaming and whatnot that will need to be done to avoid conflicts. I will see if Castiel has any time to help.

Andrew
I can do this fairly quickly I think. I already have all the BioTank classes. The part I'm not sure about is how much of that function to include. There is more to it. Also what about this from the main Mino file. Seems similar from my non-code knowing perspective.

Code:
simulated function ReduceShake()
{
    local float ShakeScaling;
    local PlayerController Player;

    if (Controller == None || PlayerController(Controller) == None)
        return;

    Player = PlayerController(Controller);
    ShakeScaling = VSize(Player.ShakeRotMax) / 7500;

    if (ShakeScaling > 1)
    {
        Player.ShakeRotMax /= ShakeScaling;
        Player.ShakeRotTime /= ShakeScaling;
        Player.ShakeOffsetMax /= ShakeScaling;
    }
}
But are we sure that the "shake" is what's going on here? I thought it was more of a spin. I guess it could be a shake in only one axis that goes like 180 degrees then reverses. I seem to remember someone saying once that the spinning was the same camera effect that happens when a player gets killed, but that because the player didn't die it just keeps happening.

A somewhat related question...

When I want to get the class files for a vehicle embedded into a map, I open a map with it then copy the vehicle and open a very simple map with just stock assets. Then paste the vehicle into that map. Build, save, and close the editor. Then I open the editor and load the map and export all scripts from the actor browser. This gives me a myLevel folder with the class files for the vehicle. Also all the other stock classes that I just delete. Is there a better way to do that?

From there I change the name of the myLevel folder to whatever the vehicle file will be called then open all the classes and replace all instances of "myLevel" in the files with the new name. This can be done all at once with Notepad+. It's not quit that simple but close.
Binger is offline  
Old 12-25-2016, 04:28 AM   #29
Lagzilla
Getting there...
 
Join Date: Jan 2011
Location: Chicago
Posts: 783
Default
Reply With Quote


Here is the full function. That said, we would also need to make a new bio rifle to fix this right. There was rumors of a bio gun being worked on that shot team colored goo, may be nice to put it all together.

Code:
simulated function HurtRadius(float DamageAmount, float DamageRadius, class<DamageType> DamageType, float Momentum, vector HitLocation)
{
	local actor Victims;
	local float damageScale, dist;
	local vector dir;

	if (bHurtEntry)
		return;

	bHurtEntry = true;

	foreach VisibleCollidingActors(class 'Actor', Victims, DamageRadius, HitLocation)
	{
		// don't let blast damage affect fluid - VisibleCollisingActors doesn't really work for them - jag
		if(Victims != self && Hurtwall != Victims && Victims.Role == ROLE_Authority && !Victims.IsA('FluidSurfaceInfo'))
		{
			dir = Victims.Location - HitLocation;
			dist = FMax(1, VSize(dir));
			dir = dir / dist;

			damageScale = 1 - FMax(0, (dist - Victims.CollisionRadius) / DamageRadius);

			if (Instigator == None || Instigator.Controller == None)
				Victims.SetDelayedDamageInstigatorController(InstigatorController);
			if (Victims == LastTouched)
				LastTouched = None;

			Victims.TakeDamage(damageScale * DamageAmount, Instigator,
						Victims.Location - 0.5 * (Victims.CollisionHeight + Victims.CollisionRadius) * dir,
						(damageScale * Momentum * dir), DamageType);

			if (Pawn(Victims) != none && Pawn(Victims).Health > 0 && PlayerController(Pawn(Victims).Controller) != none)
			{
				PlayerController(Pawn(Victims).Controller).StopViewShaking();
				PlayerController(Pawn(Victims).Controller).DamageShake(50);
			}

			if (Vehicle(Victims) != None && Vehicle(Victims).Health > 0)
				Vehicle(Victims).DriverRadiusDamage(DamageAmount, DamageRadius, InstigatorController, DamageType, Momentum, HitLocation);

		}
	}

	if (LastTouched != None && LastTouched != self && LastTouched.Role == ROLE_Authority && !LastTouched.IsA('FluidSurfaceInfo'))
	{
		Victims = LastTouched;
		LastTouched = None;

		dir = Victims.Location - HitLocation;
		dist = FMax(1, VSize(dir));
		dir = dir / dist;

		damageScale = FMax(Victims.CollisionRadius / (Victims.CollisionRadius + Victims.CollisionHeight),
					1 - FMax(0, (dist - Victims.CollisionRadius) / DamageRadius));

		if (Instigator == None || Instigator.Controller == None)
			Victims.SetDelayedDamageInstigatorController(InstigatorController);

		Victims.TakeDamage(damageScale * DamageAmount, Instigator,
					Victims.Location - 0.5 * (Victims.CollisionHeight + Victims.CollisionRadius) * dir,
					(damageScale * Momentum * dir), DamageType);

		if (Pawn(Victims) != none && Pawn(Victims).Health > 0 && PlayerController(Pawn(Victims).Controller) != none)
		{
			PlayerController(Pawn(Victims).Controller).StopViewShaking();
			PlayerController(Pawn(Victims).Controller).DamageShake(50);
		}

		if (Vehicle(Victims) != None && Vehicle(Victims).Health > 0)
			Vehicle(Victims).DriverRadiusDamage(DamageAmount, DamageRadius, InstigatorController, DamageType, Momentum, HitLocation);
	}

	bHurtEntry = false;
}
Lagzilla is offline  
Old 12-25-2016, 04:54 AM   #30
Anonymous[Lolz]
Getting there...
 
Anonymous[Lolz]'s Avatar
 
Join Date: Feb 2009
Location: New York State
Posts: 872
Default
Reply With Quote


If you're doing this, please use the bio tank without the damn turret zoom lasers. Although, it can probably be transferred.
Anonymous[Lolz] is offline  
Old 12-25-2016, 10:06 AM   #31
Terminator
Getting there...
 
Join Date: Apr 2011
Location: St. Louis, Missouri
Posts: 776
Default
Reply With Quote


Quote:
Originally Posted by Binger View Post
Awesome summary. Does the Bio Rifle even with DD and triple multipler really do that much damage?

I thought this spinning thing was only from Bio shots but you guys said that it happened with a hit from another Levi.

Yeah, that's weird. It on the newer version of Severance, Tiamat on Tiamat. Lagzilla was deployed and I wasn't. He lined up his blast directly in front me and did about 3500 dmg and rolled my screen. After years of driving the Tiamat & Kraken, I've never seen that before. When both deployed, that has never happened.
Terminator is offline  
Old 12-25-2016, 10:09 AM   #32
Terminator
Getting there...
 
Join Date: Apr 2011
Location: St. Louis, Missouri
Posts: 776
Default
Reply With Quote


I just noticed that Hooverdam has a different version of the bio tank... It spawns at the same node as the Mantas. I wonder if we could try that bio tank against any of the three triplets just to see what happens.
Terminator is offline  
Old 12-26-2016, 01:17 AM   #33
Binger
.

 
Binger's Avatar
 
Join Date: Nov 2007
Posts: 2,281
Default
Reply With Quote


Quote:
Originally Posted by Terminator View Post
I just noticed that Hooverdam has a different version of the bio tank... It spawns at the same node as the Mantas. I wonder if we could try that bio tank against any of the three triplets just to see what happens.
I'm not sure people will go for that one. My guess is the primary would effect things the same but not the rapid fire single shot alt-fire.

Quote:
Originally Posted by Anonymous[Lolz] View Post
If you're doing this, please use the bio tank without the damn turret zoom lasers. Although, it can probably be transferred.
Good point. I don't like that zoom style. Any idea what maps the one with regular zoom is on? I'll hunt around for it.

Quote:
Originally Posted by Lagzilla View Post
Here is the full function. That said, we would also need to make a new bio rifle to fix this right. There was rumors of a bio gun being worked on that shot team colored goo, may be nice to put it all together.

Code:
simulated function HurtRadius(float DamageAmount, float DamageRadius, class<DamageType> DamageType, float Momentum, vector HitLocation)
{
    local actor Victims;
    local float damageScale, dist;
    local vector dir;

    if (bHurtEntry)
        return;

    bHurtEntry = true;

    foreach VisibleCollidingActors(class 'Actor', Victims, DamageRadius, HitLocation)
    {
        // don't let blast damage affect fluid - VisibleCollisingActors doesn't really work for them - jag
        if(Victims != self && Hurtwall != Victims && Victims.Role == ROLE_Authority && !Victims.IsA('FluidSurfaceInfo'))
        {
            dir = Victims.Location - HitLocation;
            dist = FMax(1, VSize(dir));
            dir = dir / dist;

            damageScale = 1 - FMax(0, (dist - Victims.CollisionRadius) / DamageRadius);

            if (Instigator == None || Instigator.Controller == None)
                Victims.SetDelayedDamageInstigatorController(InstigatorController);
            if (Victims == LastTouched)
                LastTouched = None;

            Victims.TakeDamage(damageScale * DamageAmount, Instigator,
                        Victims.Location - 0.5 * (Victims.CollisionHeight + Victims.CollisionRadius) * dir,
                        (damageScale * Momentum * dir), DamageType);

            if (Pawn(Victims) != none && Pawn(Victims).Health > 0 && PlayerController(Pawn(Victims).Controller) != none)
            {
                PlayerController(Pawn(Victims).Controller).StopViewShaking();
                PlayerController(Pawn(Victims).Controller).DamageShake(50);
            }

            if (Vehicle(Victims) != None && Vehicle(Victims).Health > 0)
                Vehicle(Victims).DriverRadiusDamage(DamageAmount, DamageRadius, InstigatorController, DamageType, Momentum, HitLocation);

        }
    }

    if (LastTouched != None && LastTouched != self && LastTouched.Role == ROLE_Authority && !LastTouched.IsA('FluidSurfaceInfo'))
    {
        Victims = LastTouched;
        LastTouched = None;

        dir = Victims.Location - HitLocation;
        dist = FMax(1, VSize(dir));
        dir = dir / dist;

        damageScale = FMax(Victims.CollisionRadius / (Victims.CollisionRadius + Victims.CollisionHeight),
                    1 - FMax(0, (dist - Victims.CollisionRadius) / DamageRadius));

        if (Instigator == None || Instigator.Controller == None)
            Victims.SetDelayedDamageInstigatorController(InstigatorController);

        Victims.TakeDamage(damageScale * DamageAmount, Instigator,
                    Victims.Location - 0.5 * (Victims.CollisionHeight + Victims.CollisionRadius) * dir,
                    (damageScale * Momentum * dir), DamageType);

        if (Pawn(Victims) != none && Pawn(Victims).Health > 0 && PlayerController(Pawn(Victims).Controller) != none)
        {
            PlayerController(Pawn(Victims).Controller).StopViewShaking();
            PlayerController(Pawn(Victims).Controller).DamageShake(50);
        }

        if (Vehicle(Victims) != None && Vehicle(Victims).Health > 0)
            Vehicle(Victims).DriverRadiusDamage(DamageAmount, DamageRadius, InstigatorController, DamageType, Momentum, HitLocation);
    }

    bHurtEntry = false;
}
Yeah, I got that. It's the same for the Mino. I'm just not sure if all of it is needed. That's a lot of code. I will add all of it to the two projectiles for the BioTank and we can test it on your server. If it works we can see about the Rifle.
Binger is offline  
Old 12-26-2016, 03:33 AM   #34
Anonymous[Lolz]
Getting there...
 
Anonymous[Lolz]'s Avatar
 
Join Date: Feb 2009
Location: New York State
Posts: 872
Default
Reply With Quote


Dria, MTMU, I think StarReach
Anonymous[Lolz] is offline  
Old 12-26-2016, 12:01 PM   #35
Lagzilla
Getting there...
 
Join Date: Jan 2011
Location: Chicago
Posts: 783
Default
Reply With Quote


Terminator and I created a loadout map yesterday and tried various things. All 5 variants of the Levi are effected.

-Levi
-Kraken
-Tiamat
-Mobile A-H Station (Perses)
-Shocker

We also tried the bio tank on Hoover with a levi. We could not get the bio tank on that map to do enough damage to create a problem, EXCEPT when I used double damage and the bio tank. We had roll at that point.

Also, tried with an ion painter, same issue.

Basically fixing this will possibly require re-coding of at least the following:
Bio Tank (Both)
Bio Riffle
Ion Painters (*Untested)
Fire Tank (*Untested)
Hurricane (*Untested)

I don't know if the biohound would have issues, it looks like max damage output is lower than 1200, around 313 points max, doubled still is too low, but may be worth testing.

Also, bio badger may need looking at.

Basically anything that with double damage or single shot can cause 1200HP of damage that has already not been coded with a work around.

Andrew
Lagzilla is offline  
Old 12-26-2016, 04:23 PM   #36
Binger
.

 
Binger's Avatar
 
Join Date: Nov 2007
Posts: 2,281
Default
Reply With Quote


Quote:
Originally Posted by Anonymous[Lolz] View Post
Dria, MTMU, I think StarReach
Cool thanks.

Quote:
Originally Posted by Lagzilla View Post
...Basically anything that with double damage or single shot can cause 1200HP of damage that has already not been coded with a work around.
You also have to consider vehicles that multiply the damage they take from other vehicles. Right?

Here is the BioTank with that code added to both projectiles. Will you test it, Lag? If it works there are some other things that I think should be changed, mostly with the laser turret.

That function, btw, comes from the stock Projectile class but with those added lines for shake, so it should be fine to add the whole function. I'm guessing it overrides the default one.

This is a very basic map which is only for testing. It's a DM map with the DM-Vehicle actor. The modded BioTank is embedded and there is one Tiamat which respawns almost instantly plus some double damage. If you could put it on your server and test it with another person that would be great, Lag. Let me know if you need me to help and we'll pick a time and get on TS. If you want to put it on the map you made for testing then, ofc, go ahead and do that.

https://www.dropbox.com/s/nofcdttchd...betaA.ut2?dl=0
Binger is offline  
Old 12-26-2016, 04:55 PM   #37
Lagzilla
Getting there...
 
Join Date: Jan 2011
Location: Chicago
Posts: 783
Default
Reply With Quote


Quote:
Originally Posted by Binger View Post
Cool thanks.



You also have to consider vehicles that multiply the damage they take from other vehicles. Right?

Here is the BioTank with that code added to both projectiles. Will you test it, Lag? If it works there are some other things that I think should be changed, mostly with the laser turret.

That function, btw, comes from the stock Projectile class but with those added lines for shake, so it should be fine to add the whole function. I'm guessing it overrides the default one.

This is a very basic map which is only for testing. It's a DM map with the DM-Vehicle actor. The modded BioTank is embedded and there is one Tiamat which respawns almost instantly plus some double damage. If you could put it on your server and test it with another person that would be great, Lag. Let me know if you need me to help and we'll pick a time and get on TS. If you want to put it on the map you made for testing then, ofc, go ahead and do that.

https://www.dropbox.com/s/nofcdttchd...betaA.ut2?dl=0
Ok, it's on the server and we tested it. Double damage primary fire did not cause screen roll, and it inflicted over 2000HP of damage. Secondary fire still caused screen roll, so I am wondering if the codes needs get stuck into the bAltFire code.

Thanks for doing this.

Andrew
Lagzilla is offline  
Old 12-26-2016, 05:43 PM   #38
Binger
.

 
Binger's Avatar
 
Join Date: Nov 2007
Posts: 2,281
Default
Reply With Quote


Quote:
Originally Posted by Lagzilla View Post
Ok, it's on the server and we tested it. Double damage primary fire did not cause screen roll, and it inflicted over 2000HP of damage. Secondary fire still caused screen roll, so I am wondering if the codes needs get stuck into the bAltFire code.

Thanks for doing this.

Andrew
Interesting. According to Term's post the DD primary fire was causing spin from the un-modded tank so the fix worked on that. I just checked and it doesn't look like I screwed anything up when adding it to the alt fire projectile.

I'm not sure what you mean by bAltFire code. That function comes from the default projectile code so I would guess that it needs to be in a projectile code and not the gun code. The alt fire projectile for the tank should be BioTankGlobBomb (AltFireProjectileClass=Class'BioTankII-betaA.BioTankGlobBomb') and I added it to that. I did it kind of quickly though so I'll check things over and see if I did it wrong. Here's the classes for BetaA.

https://www.dropbox.com/s/d5qpnlxeg2...betaA.zip?dl=0
Binger is offline  
Old 12-27-2016, 01:46 AM   #39
Binger
.

 
Binger's Avatar
 
Join Date: Nov 2007
Posts: 2,281
Default
Reply With Quote


Idk. I'm not a coder. Not sure what else to do.

Tonight on Minus-)o( in the Mino I got hit with a Bio Rifle DD alt-fire and it made my camera spin. I asked the gunner to take over but his camera was also spinning. It just seemed so wrong and stupid. I really hate that crap. I guess when someone created the Mino and added the 5x multiplier they didn't actually test it or just decided that it was fine.
Binger is offline  
Old 12-27-2016, 04:30 AM   #40
Anonymous[Lolz]
Getting there...
 
Anonymous[Lolz]'s Avatar
 
Join Date: Feb 2009
Location: New York State
Posts: 872
Default
Reply With Quote


Quote:
Originally Posted by Binger View Post
Idk. I'm not a coder. Not sure what else to do.

Tonight on Minus-)o( in the Mino I got hit with a Bio Rifle DD alt-fire and it made my camera spin. I asked the gunner to take over but his camera was also spinning. It just seemed so wrong and stupid. I really hate that crap. I guess when someone created the Mino and added the 5x multiplier they didn't actually test it or just decided that it was fine.
Does the Hoover mino also have the multiplier?
Anonymous[Lolz] is offline  
Reply


Go Back   Omnip)o(tentS Forums > SERVERS > Mappers' Corner

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -5. The time now is 11:10 AM.