Mappers' Corner Mappers and Modders

Go Back   Omnip)o(tentS Forums > SERVERS > Mappers' Corner
Reply
 
Thread Tools Display Modes
Old 03-10-2019, 08:06 PM   #1
Mailbox
Still Just Registered

 
Join Date: Sep 2016
Posts: 167
Default The return of Crusha / UltimateMappingTools2?
Reply With Quote


Hi everyone,

Just making this thread to mark the return of Crusha K. Rool! He is now regularly playing on the CEONSS server again.

Also, while chatting with him, I let him know of the UltimateSpawner netplay bugs that have been experience in ONS-ArcticJunkYard-V3m, which he seemed to be unaware of. He also stated his desire to make a sequel to his UltimateMappingTools package. I'm interested in seeing where he goes with it.
Mailbox is offline  
Old 03-10-2019, 09:44 PM   #2
Binger
.

 
Join Date: Nov 2007
Posts: 2,482
Default
Reply With Quote


Good news! He's done a lot for the community.
Binger is offline  
Old 03-13-2019, 10:04 AM   #3
Carpe Diem
seize this !! .l..

 
Carpe Diem's Avatar
 
Join Date: Apr 2006
Location: Vancouver
Posts: 7,686
Default
Reply With Quote


Quote:
Originally Posted by Binger View Post
Good news! He's done a lot for the community.

QFT
__________________
Black holes are where God divided by 0. - Steven Wright






Carpe Diem is offline  
Old 03-23-2019, 06:30 PM   #4
Crusha K. Rool
Crocodile | Map-Modder
 
Crusha K. Rool's Avatar
 
Join Date: Aug 2009
Posts: 709
Default
Reply With Quote


If you have any known issues, feel free to post them.

So far my plans are to clean up the old code that I still have lying around and never released so that I can at least get a V2 version out. That requires some renaming of things, since I can't re-use the same package name for a .u file that I already released in the past.
I haven't done anything in UnrealScript for quite some time and may be a bit rusty, but I hope I'll manage. Perhaps I will even get a fresh look at things now that I have matured as a software developer in general.

V2 was nearly feature complete back then. The only thing that was really holding me back in the past was that I wanted to have a nice particle effect for defusing an Ons Orb, but had no experience whatsoever about how to go about those, since the built-in editor for particles is actually broken and produces code that causes crashes in Linux.

Part of the cleanup will also include getting rid of some third party stuff in the tools that I included for convenience but never really planned to support. In the end, it just makes updates more complicated and gives more room for potential conflics with the original packages (the more mature software developer in me realizes that big monolithic code base are actually a Bad Thing™). If a mapper wants to make use of those things, they should just use the original package instead.
To be more specific: I plan to remove the Dynamic Weather and the Teamspecific Actors stuff in V2. The few pieces that I cherry-picked from Wormbo and the Jailbreak mod will remain.


Originally I planned to also come up with a more dynamic scripting system that would at least allow mappers to do some of the stuff that UE3 offers with Kismet (though granted without the fancy UI). But I don't even know if that would actually work (in a performant manner) and alas shoving as much into one package as possible is a Bad Thing™, so I'd rather get the finished stuff out now and make an entirely separate package for the other stuff if that need should ever arise.


Once it's out, I might modify one or two of my old maps to make use of the new stuff and to act as an example.

I've been bouncing ideas for new gameplay concepts in ONS ever since, but whether I will ever get to actually try them out is a different story. Unfortunately the Unreal Editor seems to have some issues with new Windows / graphics cards versions that make working with them quite an annoyance.


I also plan to put the code on GitHub once the release is done, for several reasons:
- If the purpose of a property or feature is unclear, savvy people can just check the original source code to find out.
- The code won't be lost in case my PC dies. (I actually have it mirrored on another machine, but better safe than sorry)
- If someday I really should no longer be active in this community for good, then someone else might pick up things where I left them. Though it would be nice if they asked first.
Crusha K. Rool is offline  
Old 03-26-2019, 01:25 PM   #5
Mailbox
Still Just Registered

 
Join Date: Sep 2016
Posts: 167
Default
Reply With Quote


Thanks for following up, Crusha!

I'm not at my UT computer at the moment, so I may not be 100% on the ball with what I say here.

Note that all of these issues are on netplay on the OMNI server only, which also runs the ONSPlus and EvenMatch mutators. On a local listen host without those mods, these issues don't manifest.

When playing ONS-ArcticJunkYard-V3m, which uses the UltimateONSFactory, I've found the following issues:

* UltimateONSFactory.RadarTextureRotationOffset value defaults to 0 on clients, even if it was set to a non-zero value.
* I'm not sure if I set up the parameters wrong, but when I had a single-team vehicle spawn setup with bUseStaticTeams enabled, it worked fine locally, but did not spawn anything for anyone in a majority of matches in netplay. When I disabled it, it worked fine locally, but acted as a regular spawner in netplay. Now, for both I was using a setup that only populated one of VehicleListBlue or VehicleListRed. I'm not sure if that caused any issues.

Looking forward to seeing the code on GitHub! Thanks for coming back!
Mailbox is offline  
Old 03-28-2019, 04:39 PM   #6
Crusha K. Rool
Crocodile | Map-Modder
 
Crusha K. Rool's Avatar
 
Join Date: Aug 2009
Posts: 709
Default
Reply With Quote


For the time being, I put the mutator on GitHub that plays announcements when players get 15 kills with weapons other than Flak Cannon and Shock Combo.
https://github.com/CrushaKRool/ut2k4...n-achievements

Omni tested it in the past and allegedly it had a bad impact on server performance. I'll try to rework it a bit, if only as excercise to get familiar with UnrealScript again after all those years.
Crusha K. Rool is offline  
Old 03-28-2019, 04:50 PM   #7
Enyo
Getting there...

 
Enyo's Avatar
 
Join Date: Apr 2015
Posts: 538
Default
Reply With Quote


Hey Crusha, welcome back! What name are you playing under?

While you're re-acquainting with UnrealScript, would you be interested in seeing what it takes to change the default scoring for a regulation round win from two points to one? It's something we've talked about doing and making matches a best of three win, which only makes sense if we can get the regulation win down to one point.
Enyo is offline  
Old 03-29-2019, 02:50 PM   #8
Miauz55555
I'm a cute Cat.
 
Miauz55555's Avatar
 
Join Date: Apr 2016
Posts: 210
Default
Reply With Quote


Quote:
Originally Posted by Enyo View Post
Hey Crusha, welcome back! What name are you playing under? [...]
Isn't that obvious?
Schnappi Das Kleine Krokodil
https://www.youtube.com/watch?v=Oe3FG4EOgyU


Verzeihung Crusha, aber seine Frage war zu verlockend. =D
__________________

DiscordServer; SteamGroup; WebSite
Miauz55555 is offline  
Old 03-29-2019, 03:10 PM   #9
Enyo
Getting there...

 
Enyo's Avatar
 
Join Date: Apr 2015
Posts: 538
Default
Reply With Quote


Quote:
Originally Posted by Miauz55555 View Post
Isn't that obvious?
Schnappi Das Kleine Krokodil
https://www.youtube.com/watch?v=Oe3FG4EOgyU


Verzeihung Crusha, aber seine Frage war zu verlockend. =D
Ses Video.
Enyo is offline  
Old 03-31-2019, 07:23 AM   #10
Crusha K. Rool
Crocodile | Map-Modder
 
Crusha K. Rool's Avatar
 
Join Date: Aug 2009
Posts: 709
Default
Reply With Quote


Quote:
Originally Posted by Enyo View Post
Hey Crusha, welcome back! What name are you playing under?

While you're re-acquainting with UnrealScript, would you be interested in seeing what it takes to change the default scoring for a regulation round win from two points to one? It's something we've talked about doing and making matches a best of three win, which only makes sense if we can get the regulation win down to one point.
Still going by the same name as back then: [GSPB]Crusha.T32
I usually don't play on Omni, since the ping halfway around the world is just too high, but you can sometimes find me on CEONSS in the evening (~21 PM UTC+2). That GameTracker banner in my signature is actually linked to that account and should show if I am online.

As for the scoring: the score is added in ONSOnslaughtGame.MainCoreDestroyed(). Depending on the bOverTime property, it will add either 1 or 2 to the current score of that team. Can't really overwrite that part without creating an entire new gametype.

The only chance might be to create a specific GameRules class that can be added as ServerActor and which hooks into the process of checking whether the game ended. I might be able to just reduce the score by 1 if it's not overtime in order to "normalize" the amount. I just need to check if that function gets called anywhere else, since that could mean that I would be reducing the score more than once.
Crusha K. Rool is offline  
Old 03-31-2019, 11:01 AM   #11
Crusha K. Rool
Crocodile | Map-Modder
 
Crusha K. Rool's Avatar
 
Join Date: Aug 2009
Posts: 709
Default
Reply With Quote


Okay, I think I got a working Mutator/ServerActor for this. It got a little hacky because CheckScore() is indeed called every time an objective gets destroyed, including power nodes. There was no way of checking what was damaged immediately before that call, so I am now checking if the power core of the opposing team (opposing to the player who scored the objective) has <= 0 HP left. If it does, then I take that as indication that the game ended and reduce the score by 1 if it's still regular time.

If the function gets called without any information about the player who scored an objective, then I simply check both teams individually and reduce the score if only one of them destroyed the enemy core. (This scenario should never occur in practice, especially not outside of overtime with its core drain. Also, draws are not a thing in ONS, so that's not really a case to look out for.)
Even with core drain, it should still pass the last player who damaged the core as parameter. If nobody ever directly damaged the core, this would be in place to handle that. But the function won't even try to do anything in overtime, so that's not really an issue.

The only way I could think of to destroy a core before overtime without direct damage would be to use some script, for example from the Onslaught Specials. But perhaps even those scripts will pass some player reference as instigator of the damage event along.

Will upload a first release for testing tomorrow, if you are interested.
Crusha K. Rool is offline  
Old 03-31-2019, 11:16 AM   #12
Enyo
Getting there...

 
Enyo's Avatar
 
Join Date: Apr 2015
Posts: 538
Default
Reply With Quote


Quote:
Originally Posted by Crusha K. Rool View Post
Okay, I think I got a working Mutator/ServerActor for this. It got a little hacky because CheckScore() is indeed called every time an objective gets destroyed, including power nodes. There was no way of checking what was damaged immediately before that call, so I am now checking if the power core of the opposing team (opposing to the player who scored the objective) has <= 0 HP left. If it does, then I take that as indication that the game ended and reduce the score by 1 if it's still regular time.

If the function gets called without any information about the player who scored an objective, then I simply check both teams individually and reduce the score if only one of them destroyed the enemy core. (This scenario should never occur in practice, especially not outside of overtime with its core drain. Also, draws are not a thing in ONS, so that's not really a case to look out for.)
Even with core drain, it should still pass the last player who damaged the core as parameter. If nobody ever directly damaged the core, this would be in place to handle that. But the function won't even try to do anything in overtime, so that's not really an issue.

The only way I could think of to destroy a core before overtime without direct damage would be to use some script, for example from the Onslaught Specials. But perhaps even those scripts will pass some player reference as instigator of the damage event along.

Will upload a first release for testing tomorrow, if you are interested.
Wow, thats awesome, thanks Crusha! Yes, please... are you going to post a link for download or are you uploading to a test server? Mailbox/Carpe, any way we could set up a test environment to see if this works? May be the solution weve been looking for.
Enyo is offline  
Old 04-01-2019, 12:24 PM   #13
Crusha K. Rool
Crocodile | Map-Modder
 
Crusha K. Rool's Avatar
 
Join Date: Aug 2009
Posts: 709
Default
Reply With Quote


Attached the .u file to this post. This is a pre-release version for testing.

I did some quick testing yesterday on a different machine and it worked fine in the scenarios I tested (overtime and regular time, and with bots who destroyed some other objectives aside from the core). I just don't want to call it an official release yet in case I still need to change something.

That's why you can find the code here, but not any relase yet.
Attached Files
File Type: zip OnslaughtScoreNormalizer.zip (3.0 KB, 0 views)

Last edited by Crusha K. Rool; 04-27-2019 at 06:41 AM..
Crusha K. Rool is offline  
Old 04-01-2019, 01:21 PM   #14
Binger
.

 
Join Date: Nov 2007
Posts: 2,482
Default
Reply With Quote


Does this work in Instant Action? It's not showing in the mutator list for Onslaught. I put OnslaughtScoreNormalizer.u in my system folder.
Binger is offline  
Old 04-01-2019, 04:16 PM   #15
Crusha K. Rool
Crocodile | Map-Modder
 
Crusha K. Rool's Avatar
 
Join Date: Aug 2009
Posts: 709
Default
Reply With Quote


Seems like I forgot to add the .ucl file, which is required for a mutator to show up in the menu. Added it now to the zip in the post above.
Crusha K. Rool is offline  
Old 04-27-2019, 06:43 AM   #16
Crusha K. Rool
Crocodile | Map-Modder
 
Crusha K. Rool's Avatar
 
Join Date: Aug 2009
Posts: 709
Default
Reply With Quote


Updated the Zip again. Looking at the code again, I noticed that I seem to have forgotten a check to make sure that the score is only modified when the core is destroyed, not when a node is destroyed (although I am sure to have checked that during my testing and didn't find any oddities). But better safe than sorry.
Crusha K. Rool 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 12:15 AM.