MH-Vengeance - SOLVED

Tutorials and discussions about Mapping - Introduce your own ones!
Red_Fist
Godlike
Posts: 2166
Joined: Sun Oct 05, 2008 3:31 am

Re: MH-Vengeance

Post by Red_Fist »

I been doing stereo repair for a long time, and I get things that people do and change it from the original and I have to bring it back to start before you can actually fix it correctly.

Same for this, ALL levels should ONLY be made with stock bots for testing, no mutators, no physics changes built in. A very wrong way to map in my opinion. The default IS "UT" THEN add all that crap on servers later on.
Binary Space Partitioning
User avatar
sektor2111
Godlike
Posts: 6412
Joined: Sun May 09, 2010 6:15 pm
Location: On the roof.

Re: MH-Vengeance

Post by sektor2111 »

Red_Fist wrote:The default IS "UT" THEN add all that crap on servers later on.
Here you might be wrong. Not all Levels are the same to match mutators. Sometimes they get badly screwed making player to leave stage. Default Bot is TRASH, in case that you have failed what an Accessed None is = Bad Script. I lost my interested in running bad scripts for some months even years if memory doesn't cheat me. Map "was sucks" because Bot was pushing center doors ? Now they hunt Bosses because of MyLevel. I'm sorry to tell you but some people are interested in learning something and they enjoy "news".

Main trivia: MonsterHunt itself is a custom game-type, unfortunately the most of MH modders doesn't know what to do there - with a few exceptions (that's why I'm happy).

If controller has no A.I. or let me refrain, said A.I. controller from MH is generally crap, with lacks in features, why do I am supposed to not do anything for improving it? If you learn some stuff you might see world different.
I have added map into my play Multi MH and it works properly in MH and MH2 as well, to mention that I can compile MH stuff In Mylevel with no failures and making all game to run more properly.
Red_Fist
Godlike
Posts: 2166
Joined: Sun Oct 05, 2008 3:31 am

Re: MH-Vengeance

Post by Red_Fist »

I don't really know how it all works, but I think it's better for everyone to be on the same page while first making a map. Otherwise the results will be wrong per given ,non stock, change.

Like the prototype IS the game version 436, once everything works the SAME for everyone, then modify for non stock bots.

Two random people playing the same exact map had the bots running in place, there is no coincidence, and you can't blame it on the map or the player. or stock bots. The ONLY variable is using non default actors, not the original code, be it bad code or not.

So it makes things impossible to test, even though it worked perfectly when I moved that first stack of ammo, it had nothing to do with coding, default code or not. but we had different test results. confirmed by two different people.

I don't even know what a Mbot is, nor would I ever use them for making and especially "testing" a map.
Binary Space Partitioning
User avatar
sektor2111
Godlike
Posts: 6412
Joined: Sun May 09, 2010 6:15 pm
Location: On the roof.

Re: MH-Vengeance

Post by sektor2111 »

Red_Fist wrote:So it makes things impossible to test, even though it worked perfectly when I moved that first stack of ammo, it had nothing to do with coding, default code or not. but we had different test results. confirmed by two different people.
Not sure if you know that I know what I did there, purpose was LOAD STUPID AMMO It's not coding were you saying ?
Explanations - Bot - Roaming

Code: Select all

		if ( (!Level.Game.IsA('TeamGamePlus') || (TeamGamePlus(Level.Game).PriorityObjective(self) == 0))
			&& (InventorySpot(MoveTarget).markedItem != None)
			&& (InventorySpot(MoveTarget).markedItem.BotDesireability(self) > 0) )
		{
			if ( InventorySpot(MoveTarget).markedItem.GetStateName() == 'Pickup' )
				MoveTarget = InventorySpot(MoveTarget).markedItem;
			else if (	(InventorySpot(MoveTarget).markedItem.LatentFloat < 5.0)
						&& (InventorySpot(MoveTarget).markedItem.GetStateName() == 'Sleeping')	
						&& (abs(Location.Z - MoveTarget.Location.Z) < CollisionHeight)
						&& (VSize(Location - MoveTarget.Location + vect(0,0,1) * (MoveTarget.Location.Z - Location.Z)) < CollisionRadius * CollisionRadius) )
			{
				CampTime = FMin(5, InventorySpot(MoveTarget).markedItem.LatentFloat + 0.5);
				bCampOnlyOnce = true;
				Goto('Camp');
			}
		}
And Translation from UScript to some English.
If ( we have a NON TeamGamePlus or We have a Teamgameplus with no priority (not a flag carrier) and we have an InventorySpot with a Marked item (inventory/pickup) And I have some desireability (I don't have it or I have very few load - see AdjustDesireability ))
{
If (this inventory is in state Pickup -> MoveTarget is changed to Item and not InventorySpot (will bug me if locations are screwed because of geometry "ideas"));
else if (this Inventory which is my target is in state sleeping and less than 5seconds to respawn and is not that high);
I'm gonna Camp there around 5 to 0.5 seconds;
informing other functions about my camping...;
Execute code from Label Camp;
}
__
Aside MonsterHuntArena has a default respawntime = 3 seconds - I don't know what's the problem after all. Bot camping at spot ? Why does it run in place ? Sure - IT'S Stupid CODING :: TeamGamePlus - SetAttractionState()

Code: Select all

function SetAttractionStateFor(Bot aBot)
{
	if ( aBot.Enemy != None )
	{
		if ( !aBot.IsInState('FallBack') )
		{
			aBot.bNoClearSpecial = true;
			aBot.TweenToRunning(0.1);
			aBot.GotoState('FallBack','SpecialNavig');
		}
	}
	else if ( !aBot.IsInState('Roaming') )
	{
		aBot.bNoClearSpecial = true;
		aBot.TweenToRunning(0.1);
		aBot.GotoState('Roaming', 'SpecialNavig');
	}
}
Almost Everything in Level is UScript so yes it's coding. And Translation:
if (Bot have Enemy)
{
if (Bot is not is state Fallback (sort of retreating))
{
will not do special Clear - (some codes are based on this)
Will "tweenToRunning" - imagine camping now + Water - Yes they might get stuck in water at a moment sleep well with fishies.
Bot will go is state FallBack at Label <SpecialNavig>
}
}
else if (Bot is not Roaming)
{
...
...
Bot Go to State Roaming label SpecialNavig
}
}
So THEY DO RUN while camping in TEAMGAMEPLUS type having a child like MH - again MAP WAS functional, you all better learn something. Else MH in "Attack" order is pushing this constantly even <if MoveTarget == NONE> result "Attack" will run in place when no paths are available at a moment with any matter (thanks Shrimp) and even we don't have goals.
MBot is not that glad to have "push-ass" with no goal. So stay with Bot if you like morons.

EDIT:Somehow those flies might be lost at hunting enemy so I think some AIR Pathing might help them, or... Only a manta will use them ? I have them linked but I wanna see if some fly-monster can use them as long as they have "routes".
They look well linked somehow... :what:
[attachment=0]Air_Paths.PNG[/attachment]

Edit2: Of course... I figured that such paths needs some special NodeFlyBlocker else Bot will attempt to use that way too... LOL. So I think Fly doesn't have a joy but the rest of creatures are jumping down falling to death. Good to know...
Attachments
Air_Paths.PNG
Red_Fist
Godlike
Posts: 2166
Joined: Sun Oct 05, 2008 3:31 am

Re: MH-Vengeance

Post by Red_Fist »

The map needs a finer resolution for waypoints around the end.

My simple fix was to move the outside pair to the hallway, to first corner through the next hall.

So they go down one hall (with flies) then touch waypoint.
Then go BACK to other hall, all the way to the corner then to the JUMP waypoint.

I put it so they go back, then it needed more waypoints.
Then they go for the jump, all flies aren't killed, but they get through and kill them a lot.

I ended up at waypoint"11" by Door, (I Think ) , so it's needs more waypoints to work, not a big fix.
Last edited by Red_Fist on Thu Aug 18, 2016 6:24 am, edited 1 time in total.
Binary Space Partitioning
User avatar
sektor2111
Godlike
Posts: 6412
Joined: Sun May 09, 2010 6:15 pm
Location: On the roof.

Re: MH-Vengeance

Post by sektor2111 »

Finer resolution and protection. Player who doesn't know which Position is where, will mess Bot. Next Waypoint (any) it is recommended to not be allowed for visiting before a door open or a teleporter activated. If a MH maps has full Bot Support done properly, simply you have to cover them and not reversal for bad cases. One of maps badly messing at this point is MayanInvasion (even v2) having Waypoints into each-other and making life harder even for a "touch-protector" because it needs another special thing - amazingly who made it was writing tutorials for MH but he screwed up. Actually Bot job there is pretty challenging and not that easy. Even first Waypoint is almost Unreachable (at limit) - some attached Wapoints (a la MH2) at a moment were failing a good placement making map a lottery. Last MoverBridge has no paths so Bot will not end anything there. Indeed is a tutorial how to not do - and btw (to some dude) I'm not hunting bugs from others, they are showing them and the mostly looks like are done in purpose to annoy people with dumb configured stuff.
Red_Fist
Godlike
Posts: 2166
Joined: Sun Oct 05, 2008 3:31 am

Re: MH-Vengeance

Post by Red_Fist »

Just saying I got my bots going down each hallway. then make it to jump down,, simply by moving the existing waypoints.

However it took the ones bots needed later, needed more. add more waypoints for the end area.
Binary Space Partitioning
User avatar
sektor2111
Godlike
Posts: 6412
Joined: Sun May 09, 2010 6:15 pm
Location: On the roof.

Re: MH-Vengeance

Post by sektor2111 »

I think I was wrong previous title MayanFurryV2 (usually I'm not making efforts to recall trashes). Go and check yourself how goes Bot support if you allow an early touch to Waypoint and what means 2 or multiple such points placed into a single spot. IS NOT a good thing. Because MH code says (english not UScript):
See a waypoint unvisited and enabled being LastPosition + 1. Then nothing special goes to touch. At touch we have the code LastPosition is that old value LastPosition + 1 so Position target 2 becomes Position 3 and Wp with P2 goes visited and disabled at a SINGLE touch and nothing else is checked - simply disables it at as future WayPoint goal and increases Target number.

Real facts:
Position to visit is 2 but we are visiting 3. Then 3 went disabled and visited and LastPosition 2 increases 1 point at Game Target = 3. But 3 being already visited = LOLOL = KO = No Goal = BREAK = Idiot Bot. Yes, do more WayPoints than can be Touch by chance and see sudden effects... and it's about a simple math which seems that is putting people's mind on fog, I did not myLeveled those touchers around bosses just for fun, they are to prevent touching if boss is not dead, else bot moves away too fast Yes - Add more ? Sure... more chances to break up their attack with a nasty touch.
I was looking at that a long time before fixing it suspecting something wrong but... I did some logs in a recompiled controller helping to figure whatta fack was bullshitting and why because directly was challenging to see how do breaks. If you don't get all that, look at MH Source-Code MonsterWayPoint.uc and compare it with MH504 MonsterWaypoint.uc. 504 doesn't have it only wrapped but has a safe Node making Bot to Crawl around Waypoint which might not be found directly. That's why at a moment MHBotyman might not see WayPoint, but we might have Bots moving somewhere.
This Problem in default MH cannot be solved that easy. You need a sort of MHBot mutator guarding Waypoints to not be visited in other order than 1, 2, 3, etc., or by adding in map custom stuff for protection. And all that trash needed for protecting 503 is not needed in 504 which is not in attention because usually people are using only rammed stuff.

Aside, a real show can look as follows: A tunnel having 200 UU width and 10000 UU length. Playerstarts and a single line with PathNodes and a few Wapoints. Making bot to move and touch with any matter (increase collision how you like if needs), nothing else as goal on other side just Waypoints one by one until last PathNode. Start putting them as follows: Position 1, Position 2, Position 4, Position 3, Position 6, Position 5. All these goes on Path-Line. See what does Bot after visiting 4, and/or 6. Go figure. Such a scenario has been created not a single time - player being the ass breaking things.
Last edited by sektor2111 on Fri Aug 19, 2016 6:57 am, edited 2 times in total.
User avatar
EvilGrins
Godlike
Posts: 9731
Joined: Thu Jun 30, 2011 8:12 pm
Personal rank: God of Fudge
Location: Palo Alto, CA
Contact:

Re: MH-Vengeance

Post by EvilGrins »

sektor2111 wrote:I think I was wrong previous title MayanFurryV2 (usually I'm not making efforts to recall trashes).
Nope, right the 1st time. It was MayanInvasion · http://www.destinationunreal.com/module ... highlight=

Still hoping that guy comes back to fix it.
http://unreal-games.livejournal.com/
Image
medor wrote:Replace Skaarj with EvilGrins :mrgreen:
Smilies · viewtopic.php?f=8&t=13758
Red_Fist
Godlike
Posts: 2166
Joined: Sun Oct 05, 2008 3:31 am

Re: MH-Vengeance

Post by Red_Fist »

I am aware of, if waypoints get hit out of sequence, you just need to make the map accommodate it, so it can't happen.

The end section here needs work, it wasn't really supposed to be the exact way for the map to go, just ideas.
Binary Space Partitioning
User avatar
sektor2111
Godlike
Posts: 6412
Joined: Sun May 09, 2010 6:15 pm
Location: On the roof.

Re: MH-Vengeance

Post by sektor2111 »

@EG & RedFist
Here is an example heading to broken stuff MayanFuryV2.
[attachment=4]MF_00.JPG[/attachment]
Interesting but I'm not sure if are needed that many ammo spots. Some respawntime ? None idea ? Already I can imagine the rest... okay no imagination let's see...

[attachment=3]MF_01.JPG[/attachment]
Paths looks dropped like from a truck. That Waypoint...

[attachment=2]MF_02.JPG[/attachment]
Image of a shit soup with stuff all in one trash - Here Bot might go out of action. We have more that one WayPoint/Spot - THIS IS HOW to NOT DO. :wth:

[attachment=1]MF_03.JPG[/attachment]
If by chance fall here from pyramid will get some "rest". Um... no they don't need rest so they run in place there.

[attachment=0]MF_04.JPG[/attachment]
If by mistake Waypoints are passed VIA "CoverMe" for sure None A.I. can find that End.

Given fore mentioned reasons shown I have done some modifications at least to match 504 properly with an END that can be found using Paths...
In 2013 I was reading that MH tutorial and later finding this map I felt offended, and seriously made me angry. Even being a map with WayPoints and playing with Bot I deleted map instantly from server's repository and from redirect too.
Attachments
MF_04.JPG
MF_03.JPG
MF_02.JPG
MF_01.JPG
MF_00.JPG
Red_Fist
Godlike
Posts: 2166
Joined: Sun Oct 05, 2008 3:31 am

Re: MH-Vengeance

Post by Red_Fist »

"Image of a shit soup with stuff all in one trash"

LoL, well you have to stack waypoints, 2 are better than one right ? lolzzzzzzzzzz
Binary Space Partitioning
User avatar
sektor2111
Godlike
Posts: 6412
Joined: Sun May 09, 2010 6:15 pm
Location: On the roof.

Re: MH-Vengeance

Post by sektor2111 »

They were different = break. Okay, getting over Waypoints let's see Navigation part. Teleporter + Pathnode, PathNode + InventorySpot, as for other area None. I don't know what is the deal and story behind map but for sure that one is not for Off-Line playing with Bot. Sorry but I could not resist to show you what trashes have been added to MH. and this keeps going similar to a bad mental state:
[attachment=0]Making_Sure_About.JPG[/attachment]
This one made sure to not fail The End. I can imagine old MH code

Code: Select all

			foreach AllActors( class'MonsterEnd', E )
			{
				if ( aBot.ActorReachable(E) )
					aBot.MoveTarget = E;
				else
					aBot.MoveTarget = aBot.FindPathToward(E);
				SetAttractionStateFor(aBot);
				return True;
			}
I'm not curious how do works this in engine while 3 Bots are trying to find a path for all these "Ends".

Edit: Well, original seems without Ends but Teleporters for Next Level - interesting... but even that way there are not necessary so many... So looks like if I was missing through On-Line MH Servers I did not really lost anything. Okay it might be time to slow down digging in codes and doing some... "map"... depending on how much time I have available.
Anyway Vegeance which I'm using works well enough so I think the problem has been solved...
Attachments
Making_Sure_About.JPG
Last edited by sektor2111 on Sat Aug 20, 2016 9:49 pm, edited 1 time in total.
Red_Fist
Godlike
Posts: 2166
Joined: Sun Oct 05, 2008 3:31 am

Re: MH-Vengeance

Post by Red_Fist »

LoL, oh man, :barf:
Binary Space Partitioning
User avatar
Barbie
Godlike
Posts: 2808
Joined: Fri Sep 25, 2015 9:01 pm
Location: moved without proper hashing

Re: MH-Vengeance

Post by Barbie »

sektor2111 wrote:Well, original seems without Ends but Teleporters for Next Level
Ups, then that was caused by my Replace-Teleporter-With-URL-by-Monsterend code. :oops:
function FixTeleporterWithURL

Code: Select all

function bool FixTeleporterWithURL(Teleporter T, bool bForce, ELogType LogLevel) {
/*******************************************************************************
Returns TRUE if *T* was disabled, because it has a travelling URL. A MonsterEnd
is also spawned at *T*'s location.
If *bForce*, the teleporter is treated as if it has a travelling URL.

If URL contains the map itself, the teleporter is treated also.
*******************************************************************************/
local Actor MonsterEnd;
local int i;

	if ( ! bForce)
	{
		i = InStr(T.URL, "#");
		if (i < 0)
			Return false;

		// if (Caps(MapFileName) == Caps(Left(T.URL, i))) // teleports to the same map
		//	Return false;
	}
	// URL=LevelName#TeleporterName: Teleports to a different level. Found in MH-FissionSmelter, MH-NP04Hyperion, MH-DKdark, MH-Decks (same level).
	if (LogLevel >= LOG_Info)
		LogEx("FixTeleporterWithURL", T @ "has travelling URL '" $ T.URL $ "', disabling teleporter and spawning a MHEnd");
	T.URL = "";
	T.SetCollision(False, False, False);// don't replace to avoid error messages "destination not found" ingame
	T.bHidden = True;
	T.Disable('Touch');
	// put a MHEnd also at the same place:
	MonsterEnd = SpawnActor(MonsterEndClassNew, LogLevel, , , T.location);
	if (MonsterEnd != None)
	{
		MonsterEnd.SetCollisionSize(FMax(t.CollisionRadius, MonsterEnd.CollisionRadius), FMax(t.CollisionHeight, MonsterEnd.CollisionHeight));
		MonsterEnd.bHidden = False;
	}
	Return True;
}
"Multiple exclamation marks," he went on, shaking his head, "are a sure sign of a diseased mind." --Terry Pratchett
Post Reply