Bots in MH: first kill boss, then end

Tutorials and discussions about Mapping - Introduce your own ones!
Post Reply
User avatar
Barbie
Godlike
Posts: 2802
Joined: Fri Sep 25, 2015 9:01 pm
Location: moved without proper hashing

Bots in MH: first kill boss, then end

Post by Barbie »

As we still do not have a MonsterHunt section, I'll post it here:
How can I set up the map, so that bots "know" they first have to kill the last boss to enable the MonsterEnd trigger? Until now they just walk back and forth between MonsterEnd and closest PathNode.

(Current setup: MonsterEnd0.IntialState='OtherTriggerTurnsOn', MonsterEnd0.bInitialActive=False, MonsterEnd0.Tag='MonsterEnd', Boss.Event='MonsterEnd')
"Multiple exclamation marks," he went on, shaking his head, "are a sure sign of a diseased mind." --Terry Pratchett
Terraniux
Masterful
Posts: 717
Joined: Mon Jan 05, 2009 8:08 pm
Personal rank: Banished member

Re: Bots in MH: first kill boss, then end

Post by Terraniux »

The most easy way to do it, is to make an inevitable path, like a mover door that blocks untill the boss is killed. For example link a Titan to a dispatcher, when the boss is killed it will open the door.
Have a look in my MH-AdventureNight-final map, every boss is linked that way, since I don't do script ;)
This member can only post when permitted.
User avatar
sektor2111
Godlike
Posts: 6410
Joined: Sun May 09, 2010 6:15 pm
Location: On the roof.

Re: Bots in MH: first kill boss, then end

Post by sektor2111 »

You need a similar thing to my HuntNode, the rest is guessing, if you block path Bot won't even move from start to that area, only roaming for items, let Bot to race at end but block it if has an enemy (any creature) using SPECIALCOST. Exist HuntNode-s and examples in maps which I posted in random threads... That _SK map in which RedFist was fixing first geometry. Also some hunt node exist in that example DM-A_Mylevel or such which I posted to not share MyLevel.u crap files.

Edit > Alternate method is a "RangeNode" seeker in certain range is blocked if node did not received a trigger hit from killed boss. If node was triggered should not deny Pawns any more. I like to do such stuff, it's easy end efficient.
Red_Fist
Godlike
Posts: 2164
Joined: Sun Oct 05, 2008 3:31 am

Re: Bots in MH: first kill boss, then end

Post by Red_Fist »

I always use blocked paths for ,allow path, MH waypoints to guide path.

But in this case you need to make them go through the boss, to the open the exit, possibly turn off the monsterend, trigger it ON with the event from the boss.
Then they will never go to the end, till it's turned on.
Binary Space Partitioning
User avatar
Barbie
Godlike
Posts: 2802
Joined: Fri Sep 25, 2015 9:01 pm
Location: moved without proper hashing

Re: Bots in MH: first kill boss, then end

Post by Barbie »

Red_Fist wrote:Then they will never go to the end, till it's turned on.
Your bots are smarter than mine^^ (read first post).
"Multiple exclamation marks," he went on, shaking his head, "are a sure sign of a diseased mind." --Terry Pratchett
Red_Fist
Godlike
Posts: 2164
Joined: Sun Oct 05, 2008 3:31 am

Re: Bots in MH: first kill boss, then end

Post by Red_Fist »

Maybe, if you used two waypoints to set some order ,it will work ?
Binary Space Partitioning
User avatar
sektor2111
Godlike
Posts: 6410
Joined: Sun May 09, 2010 6:15 pm
Location: On the roof.

Re: Bots in MH: first kill boss, then end

Post by sektor2111 »

Red_Fist wrote:Maybe, if you used two waypoints to set some order ,it will work ?
So you think I was drunk or on drugs when I coded HuntNode? Okay, let's do a check at MH Bot mission code, perhaps someday you figure how do works and how messy can be BlockedPath if is not used wise in style AS-Mazon.
MonsterHunt.uc wrote:

Code: Select all

		if (NumPoints <= 0)
		{
			foreach AllActors( class'MonsterEnd', E )
			{
				if ( aBot.ActorReachable(E) )
					aBot.MoveTarget = E;
				else
					aBot.MoveTarget = aBot.FindPathToward(E);
				SetAttractionStateFor(aBot);
				return True;
			}
		}
The code is very raw (almost retarded) and If i translate it into some english it sounds like:
if NumPoints (waypoints) to visit is smaller or equal to 0 (zero). See all MonsterEnd types if are reachable Move there (to all of them :loool: ), else find path toward to these All ends and shake legs moving there (no check if path exist or not, just run like a dumbass) and no iterator break or a blocker if something valid is found just find path to all ends and run (Run where ? Doesn't matter just run). Also I did not see anything "enemy" related, so if Bot has enemy or not is only running to end firing and very few time is spent for fight - not a single time I witnessed Bot turning butt at a Titan which later was crushing it with rocks because idiot was busy to run at waypoint ignoring threat.
This garbage is running for years and nobody dared to slap it down.

Now... what I see Bot is not even interested if Is Active/Activatable/Inactive or such - yes, read well, this in MonsterHunt. If Bot has a "mission" nearby, simply set cost 10000 if that seeker has an enemy, that simple, the rest is spam, it doesn't work based on guessing, this is Bot Code and it reacts with some accuracy not based on stories. And based on my logic if you don't send Bot to End because it is inactive, where the heck will go Bot ? Roaming stupidly with no purpose ? How to find Boss around then if you don't send it in that direction ?

Edit:
Map which "3072" I'm doing, I can split it in 2 pieces: with MH raw Bot Support and other one with HuntNodes, then see if I'm bullshitting or not in what I'm saying, see in both of them Bot's combat style how do work and do not tell me that is nothing different. Else Map with HuntNodes can be screwed by anyone and enjoy retarded race to End ignoring Bosses. The only BlockedPath is at beginning before to encounter first monster until mission is broadcasted, during this time Bot will load some BioRifle and "another" enforcer + a few ammo for first battle. After broadcasting mission hunting way is open with a simple and relevant condition: YOU BOT seeker, if you have an enemy say bye to end - so kill that crap first - what else to do with an enemy if no way is open ( just load some health around, ammo and fight and fight ); this is the point of Not Racing only to End, and I'm talking like one who was rewriting some MH Bot controller nearby other things... but of course I won't stop you to fail with Bot even 10 years if this is important to waste time in Editor failing constantly.

So let's recall some features toward using default UT stuff for MH's Bot Pathing. MH is not a default UT stock (those are sucky too after all) - is a custom thing with custom Bugs, and custom Bugs need custom Fixes, so keep dreaming at default stock - is mainly useless against what MH controller does with Bot, the only better guide is MAP itself (one of my MA maps is fixing even HUD errors from MA game, yes, Non Stock fixes for Non Stock bugs).

Edit2:
MyLevel this pathnode and add it somewhere without to have other path lines to End (paths just passing through this point) cross roads, angle tunnels, small fields without other paths before End right 2-3 Nodes away from End or a such "heat" point. It will deviate seekers with an enemy.

Code: Select all

class HuntNode expands PathNode;

event PostBeginPlay()
{
	Super.PostBeginPlay();
	bSpecialCost=True;
}

event int SpecialCost(Pawn Seeker)
{
	local Bot B;

	B = Bot(Seeker);
	if ( !Seeker.bIsPlayer ) //Usual Monster Not allowed (- or Allowed - your option goes here - involve replication if it needs )
		return 100000000;
	if ( B == None ) //Human support - debugging purpose
		return 0;
	if ( B != None )
	{
		if ( B.Enemy == None ||( B.Enemy != None && !B.LineOfSightTo(B.Enemy))) //work here as need - distance, health, weapon rating, etc.
			return 0;
		else
			return 100000000;
	}
	return 100000000;
}
Use other non MH cubed map to compile this or use MH for coders/modders else it won't compile with common trash from MH servers.
Red_Fist
Godlike
Posts: 2164
Joined: Sun Oct 05, 2008 3:31 am

Re: Bots in MH: first kill boss, then end

Post by Red_Fist »

So are you saying my idea was correct ? via code ? hope I was :tu:

Because bots don't do a damn thing to end if it's OFF, BUT !, I thought after I used waypoints in a map, it made them not goto end, made me turn it OFF.

Because otherwise, they always want to exit, so triggering it forces the mapper to make it work.

I dunno but all I know is I HAD to use trigger the map end to make it work, and it did.
Last edited by Red_Fist on Sat Oct 29, 2016 4:01 am, edited 1 time in total.
Binary Space Partitioning
User avatar
Barbie
Godlike
Posts: 2802
Joined: Fri Sep 25, 2015 9:01 pm
Location: moved without proper hashing

Re: Bots in MH: first kill boss, then end

Post by Barbie »

Bots ignore the value of Monsterend.bInitiallyActive.
"Multiple exclamation marks," he went on, shaking his head, "are a sure sign of a diseased mind." --Terry Pratchett
Red_Fist
Godlike
Posts: 2164
Joined: Sun Oct 05, 2008 3:31 am

Re: Bots in MH: first kill boss, then end

Post by Red_Fist »

Barbie wrote:Bots ignore the value of Monsterend.bInitiallyActive.

News to me. it works like a champ.

Ahh, oh, I see, :oops:
Binary Space Partitioning
User avatar
sektor2111
Godlike
Posts: 6410
Joined: Sun May 09, 2010 6:15 pm
Location: On the roof.

Re: Bots in MH: first kill boss, then end

Post by sektor2111 »

Waypoints makes them to visit certain route first - (activating a button or such). If that route has been visited touched NONE will come there again IGNORING your boss if such thing is there, so again NOTHING integrated in MH works at this point, but NOTHNG. You can deviate bot to other route or a tunnel with a boss permanently by PROTECTING waypoint until Boss is eliminated else a simple touch done by a stupid bot will make other Bots to no longer go there again. What exactly you did not understand ? Once touched a WayPoint, that area is GOOD BYE, I was there, I have to see next point - adding more = previous discussion about order of touch = break Bot. This happens fast because... this is what Shrimp did, intelligent stupid race = MH Bot controller.

When you'll finish presumptions MyLevel Node which I posted and see how do it works. Else there is one added in a MyLevel section of forum, ready compiled for usage.
Post Reply