UT2U1 - Loathsomes UT Tweak - v2.0 Final

Search, find and discuss about Mutators!
JackGriffin
Godlike
Posts: 3774
Joined: Fri Jan 14, 2011 1:53 pm
Personal rank: -Retired-

Re: UT2U1 -Unreal Actors in UT games..... Alpha/Beta/Test

Post by JackGriffin »

Let's rock the coopgame3. Tell me what needs fixed, I'll just start over.
So long, and thanks for all the fish
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: UT2U1 -Unreal Actors in UT games..... Alpha/Beta/Test

Post by MrLoathsome »

Well I have determined what was causing that error in the coop games.
It was running, but didn't seem to be actually hijacking the basemutator position.
Am a bit surprised it didn't break my coop servers completely, but I think I know why.

Short answer is just don't run this mutator with coopgame2.

I may look at doing a separate version of this specifically for oldskool & coopgame2
but that might take a bit of doing. Need to finish up a few other little things
before I look at that too close.

Will update the readme file for this thing and get an actual release version compiled and posted probably later this evening.

**EDIT

Post 1 updated with RC2 download for this.
blarg
[]KAOS[]Casey
Average
Posts: 30
Joined: Fri Mar 30, 2012 7:56 pm

Re: UT2U1 - Loathsomes UT Tweak

Post by []KAOS[]Casey »

Just letting you guys know that you don't need to recode Unreal 1 weapons at all. The replication isn't broken at all. The problem is in ServerMove.

I didn't even know this was a problem for UT, honestly, I would have thought by now someone would have figured it out.

SkaarjTroopers also were not designed to use TournamentWeapon, so without subclassing them they probably will not ever use them properly.

I've wrote something that allows for use of unreal 1 weapons with the basemutator change, and that replaces your playerclass. I'll have a mod out that works with the bare minimum requirements in a day or so.

Keep in mind, I have zero knowledge of UT beyond that oldskool is legendary trash and ruined UT experience for me forever. I do not know if there are any custom anticheat gametypes or gametypes at all that change the playerclasses.

At the very least, what I will provide will mimic U1 UnrealShare.Coopgame down to the letter, except that you are on a TournamentPlayer instead of UnrealIPlayer. Although I could do UnrealIPlayer as well, like I said, I don't know what is/isn't working in UT, as I hail from Unreal, not UT.

Tell me what is/isn't working and/or requests and I'll try to fulfill them.

tl;dr I can run unrealshare.coopgame as a tournamentplayer and play unreal1 coop unmodified with stock maps without changing anything other than your playerclass and the base mutator.

edit:

By the way, this method should allow every unreal 1 weapon mod to work on UT.
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: UT2U1 - Loathsomes UT Tweak

Post by MrLoathsome »

Interesting.

The OLweapons classes must fix that ServerMove issue. Haven't even looked at those, just know they will work for players online.
Recoding the weapons is NOT on my list, as the default ones work fine for everything offline, and it is easy enough to replace them with the
OLweapons or olweaps or other various fixed weapons classes that have been done before.

Re: The troopers. They can indeed Use Tournament weapons, or any other weapon class pretty much. I have them now doing so both on and offline with zero problems.
They have "issues" with the redeemer, but that could be easily fixed by making a new basic redeemer class that made alt fire do the same thing as primary.

This mutator may fix the the trooper gun issue in some cases, but what I will release soon in the next SwarmSpawner update, will fix the trooper gun issues in almost any
situation.

This thing seems to be working with everything except for the OldSkool coopgame2.
It does work fine with the Oldskool mutator in reg UT games, just not with coopgame2.

If you have something that does that better than Oldskool did, I think that would deserve its own thread.

I would be very interested to see what you have done there. No doubt a few others here would be as well.

What you are describing sounds like the exact fix I was thinking of for this to support coopgame2.
Since both grab BaseMutator, your coopgame fix, or any coopgame fix would be one of the few things that UT2U1 won't work with.
But this would not be needed for coopgames anyway, so that detail is a non-issue. Coopgame fix needs to be separate from this. No choice.

What I have for this atm is so short and sweet, RC2 is I think the final version.

It is only 64 lines of source code, including comments and blank lines....

Is your coopgame fix written in such a way that it might work with gametype controllers that extend coopgame2 without changing them at all?
i.e. can it just be slipped into an existing install, and replace the dependencys on oldskool altogether?

My method allows every default U1 and UT weapon to work in UT, in any combination you wish. Players can have ALL of the UT guns and ALL of the Unreal guns
in their inventory at the same time.

If your project also works with all default and other gametypes that are not replacing BaseMutator, and rips out that horror in DMMuator then
we have been working on the same thing, and you are ahead of me a bit. That would also be quite remarkable since you haven't looked at UT at all.

If your project only does this for coopgame, well damn. Great timing and we should release them side by side.

This is released. Fire up a thread and show us something.
Last edited by MrLoathsome on Fri Jun 14, 2013 4:10 pm, edited 4 times in total.
blarg
Higor
Godlike
Posts: 1866
Joined: Sun Mar 04, 2012 6:47 pm

Re: UT2U1 - Loathsomes UT Tweak

Post by Higor »

Jack, if you're going for coopgame3, count me in.
I started both FerBotz and my old coop game at the same time way back and I feel I should have done more about it, as my post hinted, I can contribute with some interesting stuff (that code is ancient btw).
JackGriffin
Godlike
Posts: 3774
Joined: Fri Jan 14, 2011 1:53 pm
Personal rank: -Retired-

Re: UT2U1 - Loathsomes UT Tweak

Post by JackGriffin »

I don't want to lose track of the subject of this thread but I will add that I probably won't work on coop game for UT unless Loath needs direct testing for something. Yesterday I finished installing an Unreal server with the latest 227 version running JGrass. Provided I can get PCube's blessing to develop forward on his controller I'll be moving full-time to there. You have no idea how incredible it was to be walking around the Rikers while everything worked and there weren't hundreds of log line errors. 227 allows a great deal of functionality with much that is better than UT. I always fought the move but seeing how flawless the server runs out-of-the-box and how advanced the state of game development is, it's just the obvious choice for me. Coopgame2 needs several days of intense bug hunting and a couple of weeks of server testing to work out what I already have working in Unreal without any replacement code to wade through. There is actually a robust community still there so questions get answered as many people are old time developers.

This fix suite that Loath has crafted shouldn't be lost in the 'does it work in coopgame2' discussion. There are (were) only 2 servers running that anyway in the entire UT landscape and I'm closing one of them. The VAST majority of servers will benefit from this, one only needs to test stock bots and monsters with this mod on and with it off. There is a very obvious increase in speed/aggression/intelligence so Loath is onto something much more than cosmetic. I hope people pay attention to what he is doing.
So long, and thanks for all the fish
User avatar
papercoffee
Godlike
Posts: 10443
Joined: Wed Jul 15, 2009 11:36 am
Personal rank: coffee addicted !!!
Location: Cologne, the city with the big cathedral.
Contact:

Re: UT2U1 - Loathsomes UT Tweak

Post by papercoffee »

JackGriffin wrote:There is a very obvious increase in speed/aggression/intelligence so Loath is onto something much more than cosmetic.
That's what I meant in my early post ...This "side effect" is awesome! Even when you doesn't have to play with the old unreal weapons.
I got yesterday some tough CTF matches against my customized bots ...it was so intense that I couldn't catch breath between the attack waves. They split up and tried to corner me pretty fast because they could calculate my escape rout with the flag much faster then before.

:gj: Mr Loathsome
User avatar
Dr.Flay
Godlike
Posts: 3347
Joined: Thu Aug 04, 2011 9:26 pm
Personal rank: Chaos Evangelist
Location: Kernow, UK
Contact:

Re: UT2U1 - Loathsomes UT Tweak

Post by Dr.Flay »

Thanks for sticking your head in the door Casey :D
I figured you and Dots would be interested in this.

Good-God peeps, we have a real think-tank going on here :tu:
[]KAOS[]Casey
Average
Posts: 30
Joined: Fri Mar 30, 2012 7:56 pm

Re: UT2U1 - Loathsomes UT Tweak

Post by []KAOS[]Casey »

I don't even know where to get a "good" version of olskool to test it. I guess i'll just find a random one on google and see if coopgame2 messes with the mutator
Higor
Godlike
Posts: 1866
Joined: Sun Mar 04, 2012 6:47 pm

Re: UT2U1 - Loathsomes UT Tweak

Post by Higor »

Tip:

Code: Select all

function PostBeginPlay()
{
	MyGame = DeathMatchPlus(Level.Game);
	Super.PostBeginPlay();
	Level.Game.BaseMutator = Self;  // NEVER do this, unless you are Loathsome
}
Target DMMutator specifically, and allow other mutators that spawn before this one or even alter the BaseMutator var.

Code: Select all

//We don't necessarily have to be the Base Mutator
function PostBeginPlay()
{
	local Mutator M;
	MyGame = DeathMatchPlus(Level.Game);

	//Base mutator is DMMutator
	if ( DMMutator(Level.Game.BaseMutator) != none )
	{
		//If there's no other mutator at the moment, tell DMMutator to add us after it to prevent the level from having no BaseMutator
		M = Level.Game.BaseMutator;
		if ( M.NextMutator == none )
			M.AddMutator(self);
		Level.Game.BaseMutator = M.nextMutator;
		M.Destroy(); //now GTFO
	}
	//DMMutator isn't base mutator... maybe you installed something i made lol
	else
	{
		//Don't rearrange list, let the foreign base stay base and just unhook DMMutator
		For ( M=Level.Game.BaseMutator ; M!=none ; M=M.nextMutator )
			if ( DMMutator(M.nextMutator) != none )
			{
				M.nextMutator.LifeSpan = 1; //GTFO... in 1 second (because i don't want to reference you here)
				M.nextMutator = M.nextMutator.nextMutator;
				break;
			}
	}
}
Just in case, because we're meddling too much with the mutator chain: (also, another GTFO to DMMutator)

Code: Select all

function AddMutator(Mutator M)
{
	if ( M.IsA('DMMutator') )
		M.Destroy(); //NOPE
	else if ( M != self )
		Super.AddMutator(M);
}
[]KAOS[]Casey
Average
Posts: 30
Joined: Fri Mar 30, 2012 7:56 pm

Re: UT2U1 - Loathsomes UT Tweak

Post by []KAOS[]Casey »

A quick test shows it works okay with oldskool. Oldskool is basically obsolete with this though, since you can just run unrealshare.coopgame. It looks like I also need to fix the transporter in ExtremeDGen, but I might pack it with the map I made to replace it for 227, since the broken pathing will crash the server with bots/monsters. But, I could just be whatever.

Either way, this sorta breaks the decal changes oldskool put in since I have to kill its checkreplacement functionality. This isn't meant to fix oldskool anyway, this is it's own thing. Meant to provide U1 weapons in all gametypes at the most minimal changes. If someone wants to mod in decals later, fine, but I'm gonna ship it as 1:1 to U1 as possible, like it should've been to begin with. Although there are some changes you can't fix without modding the scriptedpawns, such as them being able to see through movers with FastTrace, etc.
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: UT2U1 - Loathsomes UT Tweak

Post by MrLoathsome »

Good info there Higor.

I was sort of wondering if anybody was going to mention that issue, since this does sort of
violate the cardinal rule of maintaining the mutator chain.

While it does seem to be working fine as is, I will update it again very soon to include those bits
you posted just since they should be there, and might correct any issues that are happening with this
that nobody has noticed yet.

@ Casey.

Since this thing will only work in gametypes that have the Botpack.DMMutator as BaseMutator it will not function
with coopgame2 since that is using Oldskool.spoldskool as its BaseMutator.

I contacted AFcore, who is the guy that wrote the Ecoop gametype(s) I run on my coop servers, to ask him about this.
Turns out he did a similar thing for that, which bypasses both the issues in DMMutator and spoldskool.
He has that so it is not even dependent on Oldskool anymore. Just left it on the server due to some other
packages we still use that have dependency's on it.

It will probably be 2 or 3 days before I do the update on this, just to see if anybody reports any horrible errors or problems
while testing this.

So far, I quite like the feedback on this little thing. 8)
blarg
User avatar
UnrealGGecko
Godlike
Posts: 2900
Joined: Wed Feb 01, 2012 11:26 am
Personal rank: GEx the Gecko
Location: Kaunas, Lithuania
Contact:

Re: UT2U1 - Loathsomes UT Tweak

Post by UnrealGGecko »

That's because you have an awesome thingy running here! :gj:

btw, did you check your sites guestbook? :P
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: UT2U1 - Loathsomes UT Tweak

Post by MrLoathsome »

Well thanks.

And also thanks for the comment you left in the guestbook there.
I haven't looked at that part of my site in 3 years. LOL

Forgot that was where the author of the original BadNews mutator tracked me down and ripped into me for
re-writing his mod. :omfg: :satan:

*Edit - Just had a major DERP moment.

Thinking about some of my own posts there, and at the ecoop site.
While I was slowly figuring things out, I stated that I would have to do a whole separate project to fix coopgame2. DERP!!!!!!

LOL. Wait a minute.... That has been done I think. It might already be running on 2 servers for over 5 years.
I even know where those servers are physically located.

IN MY HOUSE !!! :loool:

AFcore's incredible Ecoop does EXACLTY what is needed to fix coopgame2. It replaces it. It is "Enhanced coopgame3 plus plus" basically.

I think part of my brain locked up for a while there. I blame several days of staring at Epic and Oldskool source
code for that. (While I was first looking at the Troopers weapon fix, and then what I stumbled onto with UT2U1)

Also, a note regarding the ecoop website. AFcore set that whole thing up for me. I am admin there, but had little to do with that.

I think that was part of the deal we made back then. He would whip up a website for me, and I would let him test this new coop gametype
he had done on my servers.

Another part of that deal, was that Ecoop is still a private/unreleased project. Thought I would mention that before anybody asks for it.
blarg
[]KAOS[]Casey
Average
Posts: 30
Joined: Fri Mar 30, 2012 7:56 pm

Re: UT2U1 - Loathsomes UT Tweak

Post by []KAOS[]Casey »

Too lazy to make my own thread. Besides, this really isn't fully featured. I don't really have the time to make a fully featured anything for UT since I have no base code to work with. Either way, the code itself should prove interesting. I don't care how you use it, just make sure to credit []PCube[] for the servermove thing. I wouldn't really consider this a release or competition but a different method. {I didn't even open Loathsomes' file to see how it worked}

Well, I mostly finished what I said I'd do. http://www.klankaos.com/NewSchool.zip

What this does do:
Replaces TournamentPlayers with classes that can use non-tournament weapons.
Fixes fly/ghost->walk bugs such as falling to ground after walk and no bSimFall updates.
Skips Endgame.unr
Fixes ExtremeDGen Transporter, or alternatively skip it through ini config because it can crash if you're running monster spawners.
In subclasses of UnrealGameinfo, autoactivate is turned off since you can see you inventory {You can override for botpack gametypes}
Should allow full functionality of all Unreal1 weapon mods to work.
Make oldskool look like bloated trash

What this does not do:
Fix level blocks in stock maps, fix TournamentWeapon issues with SkaarjTroopers.
Does not fix no music turning back into menu music.
Give icons to TournamentWeapons on UnrealHUD.
Those should be done in a gametype or something like DZMapM{ Don't ask me if DZMapM works on UT. If it doesn't, I'll see if Zombie can't give me a list of his mutator changes.

Usage: map.unr?mutator=NewSchool.NSBaseMutator

If you have any problems, tell me. The ini has a few minor configurable options, like nuking the base mutator in case a particular gametype is problematic. Custom gametypes that replace playerpawns will break this and will not work. Just steal the fix from the code and put it in other stuff.

If I get unlazy I'll add in UnrealIplayer equvilants, but for now it's tournamentplayer only. You can use Unrealshare.coopgame for the original{nearly, obviously.} U1 Coop experience with little to no hacks as possible.
</hijack>
Post Reply