Page 1 of 10

Splitting MonsterHunt packages?

Posted: Fri Dec 30, 2016 9:45 pm
by Higor
So I had this idea of splitting Monsterhunt in two packages.

One with all the mapping resources, and a dummy version of the MH gametype with the variables altered by these resources.
And one (coder-dependant) with the gametypes/extensions.

So mappers will have it easy and anyone willing to start modding MH won't have huge difficulties, with a sample package 'game' package to use as starting point for editing the mod.


EDIT:
Project at https://github.com/CacoFFF/MonsterHunt-Rebuild

Re: Splitting MonsterHunt packages?

Posted: Fri Dec 30, 2016 10:34 pm
by Chamberly
Sure. I'm up for it.

Any other?

Re: Splitting MonsterHunt packages?

Posted: Fri Dec 30, 2016 10:51 pm
by sektor2111
As you wish. However exist such things. I never have problem in doing MH mods and Mapping/Ruining/Fixing maps in the same time. Old version for coders allows everything Mapping/Modding(/Playing Off-Line). I can compile in Mylevel everything MH related in any MH map without a single failure (all right... syntax :omfg: sometimes... eh... rushing is not good).

Any MH mapper (advanced so to speak) should use that MH for coders because it doesn't hurt final map and allows modding MyLevel things - lol Shrimp :loool: .

Else we need a tutorial/explanations (in english not my rom-english) why these are needed because for sure a million of "mappers" have no clue what are we talking about here.
A full MH tutorial at UT99.org would be saving creating a mountain of shit called maps, but nobody bothered with such things because probably not even the dude writing a tutorial at Hermskii's forum did not have much clue about MH and nothing about MH and Bot. He promised some update which has never came out and that's why I did more research on my own (and I'm not that smart after all).

Right now I was thinking at a XC_MH_Actor meant to screw all that sh!t coming from Shrimp and quit usage of v504 (no longer needed) probably this is a future XC_Monsterhunt - a sort of actor mutator not a game-type.
However replication stuff I cannot be sure how to screw that - I think something is wrong there anyway and we might need some stuff (lag display, tickrate falling, generally some trash to help mapping/debuging).

Re: Splitting MonsterHunt packages?

Posted: Sun Jan 01, 2017 4:37 am
by Higor
Gonna setup a Git repo sometime next week then.
I think I'll put a very simple/basic version of the HUD in the mapper's build as well, this way modders will have it easier to implement hud enhancements.

Next important point then:
ScriptedPawn's are AlwaysRelevant'd in monsterhunt, which is way too hackish in my opinion, this could have easily been handled in InitGame by forcing bNoMonsters=False and then letting mutators handle monsters as usual.
The build should have the hack reverted and bNoMonsters forced to false instead.

Re: Splitting MonsterHunt packages?

Posted: Sun Jan 01, 2017 4:25 pm
by sektor2111
Higor wrote:Next important point then:
ScriptedPawn's are AlwaysRelevant'd in monsterhunt, which is way too hackish in my opinion, this could have easily been handled in InitGame by forcing bNoMonsters=False and then letting mutators handle monsters as usual.
Pretty insufficient. MonsterHunt versions generally have bNoMonsters=False but you might have some surprise. To clarify some retarded engine deals get MonsterHunt2v3 or something similar. Now load map Arden+fix1 or such and start 2 MH games: MH original and MH2V3 (V4) see how many monsters do you have in game; MH-Rook(AS)v3 = 4 cows or 2 pregnant cows are not born any more any baby ?; Jurrasic > where the hell are some Pteradactyls ? All shit (having a negative peripheralvision ?) seems to go in trash-box directly by engine - default Engine.
Solutions were lousy and useless as example: ForceMover - we might have a bunch of things triggered not only a stupid door which doesn't open because a crap is missing from game. And NO, they are not that relevant as do they look like. I head for a CheckReplacement boost quitting original AlwaysKeep because it's too strong and it did not allow me to do what I want with monsters. Also sometimes by simply pushing monster up and down you might save them from falling out of map - exception is some awesome HTD Level with 24 Mullogs into the void (low quality weed there).
Trivia: some of my MH2 types replacing crappy monsters was simply saving them from falling due to replacement automated relocation resulting as follows: not 545 Monsters, but 549 monsters because of... copy placed properly.
At this point I won't quit using CheckReplacement because I'm not a fan of crapping in game commands by player due to a bugged controller used for years.

Re: Splitting MonsterHunt packages?

Posted: Tue Jan 03, 2017 8:49 pm
by Terraniux
I'm not quite sure what you mean by splitting them. And what actual advantages it has. Can you give me an example of it?
Like in explorer / or a tiny package?

Since mapping for MH is my main skill, I still build every map from scratch and put the mutator manually in.


I don't get it.

Re: Splitting MonsterHunt packages?

Posted: Tue Jan 03, 2017 10:57 pm
by sektor2111
By using that package, mapper or modder will be able to setup MyLevel things which usually need some hacks to work, or using a proper MH package not that public used by almost all servers. That one is integrated with bugs on purpose to fail any MH compilation - so called mod protection. The fact is that a coder with a bit of skill can create a place-holder file for getting a MH mutator so Shrimp's solution was only a small delay for modding MH. Like MapVoteLA13 (another bugged package) sooner or later some dude will decompile the bad U file sharing "source" to other coders and then everyone will be more or less happy doing their own MH because original, with no offense is a sort of trash having not much deal with all Monsters. For me the most annoying thing was crapping out that melee damage byte making some monster to do 1 point damage - super duper monster, no wonder. All the time in the past I was running near a Brute legs firing weapon from a closer range without being damaged - regenerator gave me 7 health monster taking -1 health, advantage player at close combat - never dying in this case, and that thing was/is only a bug from how many they were/are.

Re: Splitting MonsterHunt packages?

Posted: Tue Jan 03, 2017 11:54 pm
by Higor
BTW, MonsterWaypoint event system's design is flawed and broken by default.
Should it be deprecated or fixed?

You saw more maps than I did so your call is better than mine.

========================
The purpose behind remaking the MH package isn't expansion, but actually making a proper base mod.
Take a long and detailed look at the conversion between SiegeUltimate (pre r13) into latest SiegeIV for an idea.

I'm talking of almost full rewrite with same functionality, while:
- Gaining ability to cleanly subclass/mod MH.
- Edit map code in Unreal Editor without MonsterHunt.u mojos.
- Network compatibility with old MonsterHunt.u packages (v1 ideally) so some clients running the base builds don't need to redownload.
- Finally bugfixed and optimized.
- Take full advantage of XC_Engine servers.

Re: Splitting MonsterHunt packages?

Posted: Wed Jan 04, 2017 1:10 am
by sektor2111
Higor wrote:BTW, MonsterWaypoint event system's design is flawed and broken by default.
See v504 Mh2 types (by me)... won't allow touch 3 before 1, and breaking the count. Old code can be patched VIA ReplaceFunction 8) .
Higor wrote:Should it be deprecated or fixed?
Siege uses that core replacing flag, Assault uses a FortStandard, for A.I. interest is... a PAWN. Let me guess, pawn can be hunted better... I think engine is dedicated to such jobs, a stupid keypoint means nothing. However... Bot uses a key point as a hold spot, then newer waypoints uses a safe Navigation point around and... I could see map which now works when in default MonsterHunt did not worked. MBot_D uses to jump if goal is a bit higher from ground, given first waypoint higher from MayanFuryv2, MBot_D doesn't have any issue in visiting such points, Problem comes randomly in MH2 when a Lever/Button might cover WayPoint's center making it unreachable if during combat Bot touched that Lever/Button; New WayPoint is preventing a touch by Bot with an Enemy so they won't run and gun but will fight with dedication around.
Else I could setup more intelligence for A.I. but already maps are insanely loaded and majority are utter trash. Nobody will say "Thanks for this controller". Fancy colors, retarded monsters, heavy weapons are nowadays goals for a more no skill fight...

Else for WayPoint's Event I don't see why we cannot use a default trigger - that one never failed - Shrimp was blabbering there, seriously for causing an event we can use a fake button and a trigger dispatching a few goodies without them, however that was operational I don't recall right now some maps but I see it working, it forces a button to react at Nearby Bot, not always Bot bumps a button closer, especially if is not in his way. Given the slow codes used in MH touching and bumping are getting more lazy. I'm telling you another sample: experiment with an IceSkaarj with rockets, alarmed and firing Birds in alarmpoint (State AlarmPaused, etc), check some of my MH2 (XC Server from Medor), MH504 and then MH503. Well, I'll except you from wasting time, MH503 is sh!t, that's the point here.
I'll setup a Level with crazy Skaarj and you might do some checks directly to say that I'm bullshitting or not.

Re: Splitting MonsterHunt packages?

Posted: Sat Jan 07, 2017 7:55 pm
by Higor
Alright, plot twist!

This will be like a game for anyone willing to participate, the mod will basically be rebuilt from scratch with the rules stated in the repo.
You may clone it and submit resources/classes as long as it fulfills the rules.
https://github.com/CacoFFF/MonsterHunt-Rebuild

Re: Splitting MonsterHunt packages?

Posted: Sat Jan 07, 2017 10:41 pm
by Chamberly
Nice. Yay for mutator!

Re: Splitting MonsterHunt packages?

Posted: Sun Jan 08, 2017 3:00 am
by Higor
Some notes:
- Monster, Hunter counting (as well as life limit) are checked on demand during the timer, not immediately after each related event, so these checks only occur as much as once per timer.
- MonsterWaypoint is now a Trigger that can be enabled when triggered, when visiting a MonsterWaypoint it's Event will be triggered. Works for all generic player types (Players, UT Bots, Unreal Bots, FerBotz), although maps made using this MonsterWaypoint as a trigger won't actually 'Trigger' stuff if said map is running on the old MH (just a reminder).
- MonsterBase mutator (the game's base mutator) properly denies game-breaking mutators and also applies some interesting changes/optimizations, the whole Unreal 1 weapon replacer can be tweaked or nullified and SCUBAGear won't auto-activate if it's not sitting underwater.
- Monster difficulty can go beyond 9 and is rescaled differently, since the code is generic it can affect other unknown monster if they also have common melee damage types.

Should I reskin monsters? I was thinking with S3TC skins as an addon for a very late development stage.
Also, score/damage as some mutators have wouldn't be a bad idea to have in default MH, with a defined score/damage ratio.

Re: Splitting MonsterHunt packages?

Posted: Sun Jan 08, 2017 11:25 am
by sektor2111
MonsterWayPoint in any old map it's not intended to be triggered - it is helping the BUTTON, also its designed to help Bot in pushing a button, Kardiologist was using this way but he forgot bTriggerOnceOnly and some BSP sh!t swallowing Pawns...
In MH504 I should add "Enemy" condition for Everyone for preventing a rushed Touch - I did not know that Player can hold an "Enemy" variable until I could see this later by accident.
That's the MH problem TOUCHING - also it should not happen 3 before 2 or 1 like in default 503 - simply a wrap sanity is very helpful and has no failure (MayanFurryVx) because some mappers added multiple WayPoints in area breaking attack and no path to end.
Aside, old MH mappers which are not using XCGE will use original way which is operational as it is (LiandriInvasion, Templar) with no flaws and not triggering anything. Else a map done this way I'm not sure how well will work in original MH in a simple server, probably heads to a broken thing and no one will care about.
Example of wrapping added and operational
Old Touch

Code: Select all

	if ( !bVisited && bEnabled && ( Other.IsA('PlayerPawn') || Other.IsA('Bot') ) )
	{
		if ((TriggerActor1 != None) && Other.IsA('Bot'))
		{
			if (TriggerActor1.IsA('Mover'))
				TriggerActor1.Bump(Other);
			TriggerActor1.Trigger(Self, Pawn(Other));
		}
		if ((TriggerActor2 != None) && Other.IsA('Bot'))
		{
			if (TriggerActor2.IsA('Mover'))
				TriggerActor2.Bump(Other);
			TriggerActor2.Trigger(Self, Pawn(Other));
		}
		if ((TriggerActor3 != None) && Other.IsA('Bot'))
		{
			if (TriggerActor3.IsA('Mover'))
				TriggerActor3.Bump(Other);
			TriggerActor3.Trigger(Self, Pawn(Other));
		}
		if ((TriggerActor4 != None) && Other.IsA('Bot'))
		{
			if (TriggerActor4.IsA('Mover'))
				TriggerActor4.Bump(Other);
			TriggerActor4.Trigger(Self, Pawn(Other));
		}
		if ((TriggerItem != None) && Other.IsA('Bot'))
		{
			if (TriggerItem.IsA('Mover'))
				TriggerItem.Bump(Other);
			TriggerItem.Trigger(Self, Pawn(Other));
		}
		MonsterHunt(Level.Game).LastPoint = Position;
		bVisited = True;
		bEnabled = False;
	}
And then in 504 a bit wrapped and more helpful

Code: Select all

	if ( !bVisited && bEnabled && ( Other.IsA('PlayerPawn') || (Other.IsA('Bot') && Bot(Other).Enemy == None ) ) )
	{
		if ( MonsterHunt(Level.Game).LastPoint + 1 == Position ) //Extreme rule - No more bullshit
		{
			if ((TriggerActor1 != None) && Other.IsA('Bot'))
			{
				if (TriggerActor1.IsA('Mover'))
					TriggerActor1.Bump(Other);
				TriggerActor1.Trigger(Self, Pawn(Other));
			}
			if ((TriggerActor2 != None) && Other.IsA('Bot'))
			{
				if (TriggerActor2.IsA('Mover'))
					TriggerActor2.Bump(Other);
				TriggerActor2.Trigger(Self, Pawn(Other));
			}
			if ((TriggerActor3 != None) && Other.IsA('Bot'))
			{
				if (TriggerActor3.IsA('Mover'))
					TriggerActor3.Bump(Other);
				TriggerActor3.Trigger(Self, Pawn(Other));
			}
			if ((TriggerActor4 != None) && Other.IsA('Bot'))
			{
				if (TriggerActor4.IsA('Mover'))
					TriggerActor4.Bump(Other);
				TriggerActor4.Trigger(Self, Pawn(Other));
			}
			if ((TriggerItem != None) && Other.IsA('Bot'))
			{
				if (TriggerItem.IsA('Mover'))
					TriggerItem.Bump(Other);
				TriggerItem.Trigger(Self, Pawn(Other));
			}
			MonsterHunt(Level.Game).LastPoint = Position;
			MonsterHunt(Level.Game).MHTarget = None;
			MonsterHunt(Level.Game).PointToTarget = None;
			bVisited = True;
			bEnabled = False;
			if ( MonsterHunt(Level.Game).bDumbDown )
			{
				if ( Other.IsA('Bot'))
					Bot(Other).SendTeamMessage(None, 'OTHER', 11, 15);
				BroadcastMessage("Position"@Position@has been visited.);
			}
		}
	}
And Bot won't run in place damaged by a wrong Touch, but can crawl around a button asking help if an evil Lever covered WayPoint (Position 7 - Demons][). A major change making maps to be done different will make every player loading Bots to see dumb things when original MH is used. Preventing touch is doable using something custom in MyLevel if needs, which doesn't affect any MH game-type (MH2 included). Just disabling/enabling touch for any keypoint in range and only helping old controller.

Monster Skill Problem
Well, original MH uses a fake skill, real ScriptedPawn Skill might go at 3 value, and then, at a real value 7 it won't aim enemy ever - code is crap unless you wanna hack aiming and rewriting aim skill based.

Real Needs ?
Pathing guide and a path checker something like "MHBotyMan4" but probably more professional. Movers recommendations and settings (No bullshit GRAB command crapping the game) - simply these "new mappers" have no clue what's going on with Bot stuff for MH. They only do trash Levels and if you look around on this forum, a genius recommended deleting InventorySpot because Inventory is path :loool: :chainsaw: - yes, read again, they are only crashing servers with their "intelligence".

Else I'm really curious about that hyper-pathing stuff which you were talking about...

Re: Splitting MonsterHunt packages?

Posted: Mon Jan 09, 2017 2:17 am
by Higor
Got a minimal playable build here (you can build as well with the code on Github)
Doesn't load in all maps due to lack of resources and classes but you can try on MH-SkaarjTower_Bot.

You may need to start the game using a command line but somehow it runs even smoother lol.
Check out the bot tasker (especially the function that sets the attraction).

Re: Splitting MonsterHunt packages?

Posted: Mon Jan 09, 2017 7:22 am
by sektor2111
For sure NOT this

Code: Select all

UIWeaponReplacement(6)="MonsterHunt.OLRajorjack"
:/
And then it's not a need to end game multiple times if 4 Pawns are under trigger - eh, some fine tuning is doable...
Shadow ? I have worked harder to find a route for bringing it to client :/. How does this work for 800 monsters in a server ? Too many actors in server after all... :/
Gonna compile this, I'm curious how many creatures are in some Level :| .
EDIT:
As expected and by default: Some Tentacles went to garbage objects too early = heading to broken maps > Arden+fix XX as known example:
[attachment=0]Missing_Monsters.jpg[/attachment]

And then:

Code: Select all

... CheckReplacement ...
if (ScriptedPawn(Other) != None)
{
    MH.SetPawnDifficulty(ScriptedPawn(Other)) //WITHOUT any stupid shadow and difficulty is already known from INI
    return /* VEEERY */ TRUE;
}
The most of my RESPECT toward games with Creatures goes to Sir with ID called CORE from ECOOP (and Loathsome) because there I have learned how to do some mooing at monsters in order to keep map action as original as possible, and then I have added some tuning - My Shadow track Monster if is Shrinking or Growing in size to match creature as much as possible + some timing fix - credits goes at Core too.
EXU - helping my brain in how to develop friendly creatures to each-other in order to not see Berserkers gay loving each-other, and tonguing themselves.

Edit:
Okay, I think I have to write a XC thing for Original MH - a sort of actor applying harder hits to controller and all classes doing sucks. It looks like something in 2 modules will be added in stage:
1) server-side spawner/replacer;
2) client stuff (boulders, rockets, etc.;
3) missing stuff - WeaponPowerUp, quadsh!t, etc.
Problem is HUD fixing, so I think I'm going to add a HUD accordingly...
Time to work...