13 Feb, 2008, Vladaar wrote in the 1st comment:
Votes: 0
Hello,

I'm thinking of adding some random mob encounters for wilderness I have.

Adding the mobs isn't difficult, but I am wondering what is the best way to
get rid of them if 1) The player flees and doesn't re-engage, or 2) The mob kills the player.

I was going to have the mobs auto generate at a level or 2 higher then the player. I don't
want aggro mobs left to attack lower players though, and I don't want my memory maxed
out from massive mob increase.

Somebody suggested maybe a timer on mobs or something, what do you guys think?

Vladaar
13 Feb, 2008, Zeno wrote in the 2nd comment:
Votes: 0
1) Probably purge the mob on flee, seeing as how the player could probably run into another random encounter anyway.

2) Purge the mob, not sure if there would be a reason to keep the mob.
13 Feb, 2008, KaVir wrote in the 3rd comment:
Votes: 0
One possibility would be to generate the mob strength based on geographical location instead of player level. That way you wouldn't have to worry about players accidently stumbling across super-tough mobs, and could simply place the mobs on a vanish timer - if there are no players nearby for more than a certain period of time, the mob vanishes.
13 Feb, 2008, Vladaar wrote in the 4th comment:
Votes: 0
Well I guess I'm thinking a little final fantasy-ish. Mobs that randomly encounter on say a 15% chance that are a few levels higher then the player. Course these mobs would be auto created by the code, with no gear, or money on them. Because I still want players to seek out normal areas, and not just use wilderness to level in. Though doing it like that I maybe inviting people to bot away in my wildernesses.
Which isn't what I want.

I think I could put a wilderness flag on mobs, and then check them in update function if they aren't fighting free them. So that probably would be fairly easy to do. I probably now would just need to think how I want to do this, and not become the mud that everyone uses bots in to level up while they aren't logged on. Though, I find that bots happen just about on any game. Would be nice if I thought of some random things mobs did maybe that could get players killed if they weren't actually watching the game instead of botting with triggers.

Vladaar
13 Feb, 2008, syn wrote in the 5th comment:
Votes: 0
you could do it so that a character can only have like X random encounters per day/login

so that could be one way to limit botting of it. I would detail more, but the idea is simple and im exhausted hehe

-Syn
14 Feb, 2008, Tommi wrote in the 6th comment:
Votes: 0
Quote
Though, I find that bots happen just about on any game.


When i first started doing wilderness mobs that were random pops, within 3 days i had found 4 players out in the wilds going east, west and killing anything that spawned. The sad thing is that random encounters are the simplest of things to bot on.

Quote
you could do it so that a character can only have like X random encounters per day/login


If the overland is of limited importance to the overall structure of your game and only serves as space between zones then what syn suggested would be a simple fix to limit the boting opportunities to players.

I much prefer to see a wilderness thats chock full of creatures, landmarks, objects, i think its rather boring to enter the wilds map and see nothing but pretty sector colours and asci symbols. Currently my wilds has about 1500 monsters in it which equates to about 3 to 4 megs of memory, and when complete will contain about 4500 monsters. Every 30 minutes they are all extracted and reset, im still trying to figure out a way to only reset those that have been killed.
14 Feb, 2008, Guest wrote in the 7th comment:
Votes: 0
All random wilderness encounters in AFKMud and on Alsherok are given timers. When those timers expire, the mob is purged. I found rather quickly that letting a bunch of random mobs stick around while players ran themselves silly on the map left far too many of them in memory to handle.
14 Feb, 2008, Vladaar wrote in the 8th comment:
Votes: 0
Hrm,

What is the best way to get these mobs to attack the player that triggers them? I tried making the mobs aggressive, I've tried set_fighting, start_hating, and start_hunting. Nothing gets them to hit the player from start.
14 Feb, 2008, Darwin wrote in the 9th comment:
Votes: 0
Hmm… multi_hit?
14 Feb, 2008, Vladaar wrote in the 10th comment:
Votes: 0
How strange I am using this, but for some reason move_char isn't stopping me from moving away.

start_hating(mob, ch);
start_hunting(mob, ch);
char_to_room( mob, ch->in_room );
global_retcode = multi_hit(mob, ch, TYPE_UNDEFINED);
found_prey(mob, ch);

Exits: north east south west.

Vladaar::[3995/4114hp 2093/2093m 4022/4112mv][6/12/46]%tnl w
A human bandit misses you.
A human bandit misses you.
A human bandit misses you.
A human bandit says 'What do you want on your tombstone, Vladaar?'
A human bandit critically strikes you!
A human bandit misses you.
A human bandit bites you!
A human bandit's bite brushes you.
A human bandit misses you.



A human bandit misses you.
You journey upon a roadway.

A Roadway
This roadway crosses the landscape here, providing
an excellent place for travelers, armies, merchants
and wagons to traverse the wilderness.
14 Feb, 2008, Vladaar wrote in the 11th comment:
Votes: 0
ROFL OMG forgot to take nomob flags off rooms.
14 Feb, 2008, Vladaar wrote in the 12th comment:
Votes: 0
Bah that is still not it. I walk by them even after they hit me. This is a mortal that I am testing with. I even added a check at the top of move_char for fighting. :(

Margwa::[2697/3321hp 753/753m 1650/1700mv][41/1]%tnl e
A mindflayer's attack penetrates your armor, but only causes superficial damage.
A mindflayer's claws grazes you.
A mindflayer misses you.
A mindflayer's claws grazes you.
A mindflayer misses you.
Within a Forest
A forest of trees stands here, rising up into the
sky, sheltering the earth below; allowing an array
of wildlife to exist here.

Exits: north east west.
14 Feb, 2008, Tommi wrote in the 13th comment:
Votes: 0
Is your wilderness room flagged safe?

There are a number of issues i have had when dealing with overland mobs and i cant remember all of them. Make sure that the ch and mob are at the same co-ords, you might be hitting the ch while at different co-ords.

Quote
start_hating(mob, ch);
start_hunting(mob, ch);
char_to_room( mob, ch->in_room );
global_retcode = multi_hit(mob, ch, TYPE_UNDEFINED);


after char_to_room you need to set the x and y co-ords to be the same as the char, and flag the mobile as in the wilds. if you dont, the mob is in the virtual room and the char is at co-ords virtual room , the char then thinks its not in the same loction as the attacker and can move.
14 Feb, 2008, Vladaar wrote in the 14th comment:
Votes: 0
I am not using Samson's overland code. My wilderness maps are not really maps that you use a paint program for anything but more like the actual symbols autogenerated on demand dependent on what sector of room players are in. My wilderness itself is a 5000 vnum area. So mobs goto targets like normal code, no cooridnates needed. There is no safe flags. Just the code is a little screwy for some reason. It lets players walk a room away after they are attacked by mobs with multi_hit.

Vladaar
15 Feb, 2008, Tommi wrote in the 15th comment:
Votes: 0
Ok then set them to fighting before you actually call multi hit. that way they cannot move from th room they are both in.

char_to_room( mob, ch->in_room );
set_fighting(ch, mob)
global_retcode = multi_hit(mob, ch, TYPE_UNDEFINED);


Oh and BTW what wilderness code are you using? If public i wouldn't mind taking a look at it.
15 Feb, 2008, Vladaar wrote in the 16th comment:
Votes: 0
Well I think he my old coder Taon made a custom work of it, although I believe the secret is they manipulated some type of automapper code. Feel free to log on, and go east or west of Paleon you can quickly see what it is like. Type help wild, it will show you all the help files created for wilderness. I do not know if I set it up according to how he intended it to be, because he's gone for personal reasons. I am just setting it up how I think it would've been done. I don't have any prior experience with wilderness never played them before. Only caveat is if your under level 11 you wont get any random encountered wilderness mobs, and if you stay on the roads you wont trigger them either.

Vladaar
15 Feb, 2008, syn wrote in the 17th comment:
Votes: 0
No highway bandits? :*(

-Syn hehe, sounds cool Vlad!
15 Feb, 2008, Hades_Kane wrote in the 18th comment:
Votes: 0
We use random battles throughout much of our game, being Final Fantasy based.

So speaking from experience, if you open up random battles, you are likely asking for people to bot. Having the mobs load at near player level or above will mean that they will always be getting good exp for just walking around, but having them load low can become an annoyance for players who are actually going through. I've also found that when people decide to bot on random battles, they do tend to gravitate toward the lower (and thus easier) mobs. Loading them higher, ensuring they would be difficult, might be a better way to ensure that they felt the need to actually be at the computer, or risk dying, but again, that might become a big annoyance for people actually playing the game.

It's a difficult thing to try to figure out how you want to do it. We have all of our random mobs' levels based on the area they are in, so going through a low level will generate low mobs. We have something like mobs 15 levels under the player (it might be 10) give no exp, but still we catch people botting on them. I've been concerned loading randoms based on the character level will discourage people branching out and exploring, because they could just stick to their hometown and level outside of it all the way to max. Their skillset and EQ would suck, but it would still be possible.

Those are just some concerns, though.

In regards to loading… When the mobs are generated, the code places on them a 'purgeme' flag, and in the round update for our combat or char_update or something like that, if it runs across an NPC with the purgeme flag that isn't currently set to fighting, the mob purges itself. That sounds like the route you decided to take. We use it for other things too, so it's a pretty handy tool to have. I think I even made a mob command that sets it to themselves.

In regards to the actual loading, based on Final Fantasy, there is a chance for a normal attack (both NPC and PC are set to fight one another at the same time, along with both running a multi_hit toward one another), a pre-emptive attack (both are set to fight one another, but only the PC gets a multi_hit toward the mob, and the mob is hit with a lag to prevent it from attacking for a brief amount of time to represent the player getting one up), or a back attack (where the player has been snuck up on, both are set to fight one another, the player is hit with lag, and the mob is forced a multi_hit onto the player).

Of course, I'm outlining this from a ROM based MUD's perspective, so I don't know how valid it would be to your codebase, but that's how we go about it.

I hope it helps some, though.
15 Feb, 2008, syn wrote in the 19th comment:
Votes: 0
Yeah itll be like FF8 where you could max level 2 minutes into the game with the TREXs and then go play the card game right outside for the second best gear in the game.

-Syn, sorry for the useless post, I like what Hades_Kane listed as concerns.
16 Feb, 2008, Vladaar wrote in the 20th comment:
Votes: 0
Hades_Kane said:
We use random battles throughout much of our game, being Final Fantasy based.

So speaking from experience, if you open up random battles, you are likely asking for people to bot. Having the mobs load at near player level or above will mean that they will always be getting good exp for just walking around, but having them load low can become an annoyance for players who are actually going through. I've also found that when people decide to bot on random battles, they do tend to gravitate toward the lower (and thus easier) mobs. Loading them higher, ensuring they would be difficult, might be a better way to ensure that they felt the need to actually be at the computer, or risk dying, but again, that might become a big annoyance for people actually playing the game.

It's a difficult thing to try to figure out how you want to do it. We have all of our random mobs' levels based on the area they are in, so going through a low level will generate low mobs. We have something like mobs 15 levels under the player (it might be 10) give no exp, but still we catch people botting on them. I've been concerned loading randoms based on the character level will discourage people branching out and exploring, because they could just stick to their hometown and level outside of it all the way to max. Their skillset and EQ would suck, but it would still be possible.

Those are just some concerns, though.

In regards to loading… When the mobs are generated, the code places on them a 'purgeme' flag, and in the round update for our combat or char_update or something like that, if it runs across an NPC with the purgeme flag that isn't currently set to fighting, the mob purges itself. That sounds like the route you decided to take. We use it for other things too, so it's a pretty handy tool to have. I think I even made a mob command that sets it to themselves.

In regards to the actual loading, based on Final Fantasy, there is a chance for a normal attack (both NPC and PC are set to fight one another at the same time, along with both running a multi_hit toward one another), a pre-emptive attack (both are set to fight one another, but only the PC gets a multi_hit toward the mob, and the mob is hit with a lag to prevent it from attacking for a brief amount of time to represent the player getting one up), or a back attack (where the player has been snuck up on, both are set to fight one another, the player is hit with lag, and the mob is forced a multi_hit onto the player).

Of course, I'm outlining this from a ROM based MUD's perspective, so I don't know how valid it would be to your codebase, but that's how we go about it.

I hope it helps some, though.


Thanks for the tips Hades. I have had some players mention they will just level in the wilderness. So I will think of some ways to keep them going to regular areas too.

Vladaar
0.0/25