Bouncing NPCs seem to only be a problem in zones where they start off in high locations (e.g., kelethin) or when the agro limit reaches 200 or so. The h (z?) coordinate doesnt' seem to work server side, or if it does, it isn't updating the #loc command. E.g., an orc oracle chases an elf slave into the water, promptly kills it, then swims back to home -- only gets stuck. Putting the client next to the orc, it is h:-37.5, whereas the mob has a h(z) of -61.
This example actually goes onto something I wanted to speak about today, which are the test results of yesterday.
Test Results
Permafrost
Goblins run through the maze looking for anything they can eat. As do the wolves (which oddly enough travel together in a pack, maybe b/c of their relative zone entry point nearness?). As does vox. Vox, unfortunately, gets stuck in the small tunnels. I should have tried changing her size, now that I think about it. I made a few sacrifices for her, but the goblins would come running up and KS from her.
Crushbone
The orcs took over the zone. Literally. Dvinn was quickly surrounded and killed on the bridge, while the slavers and others chased the slaves around until they were dead. Spawning an elf on the bridge results in a bunch of hungry orcs coming in after it.
GreaterFaydark
There is a problem with hoppers in this zone. The zone is so large that it is really difficult to tell what is going on. However, spawning a highelf in kelethin prompts the nearest wood elf to come near and kill it. I don't know the result of the orc/elf war. I have a feeling the elves won (what with all the decaying orc corpse messages :)
east commons
Spawned six liches (Miguel (sp) in a circle. I put then inside a bunch of human druid spawns named 'sacrifice'. When the liches got hungry, it turned into a royal rumble at the tunnel entrance. I let it run all night -- the liches appeared to have held out, although a couple did die somehow. I didn't note any zone hopping here.
All in all, I'd have to say it works.
There are some things that do need changed. For instance, all the NPCs are hardcoded as meat eaters which has a -2 penalty. They are also all hardcoded as meat. I'd like to just swap this out and make it dynamic, but I might wait until 2.7 for that to happen (what with all the new db changes coming). I'd also like to add a series of other properties for the mob, that way a mob may ignore faction, corpse, race, level (which gets interesting), checks before consuming something.
Then there is the next step. I'm torn if I want to work on the thief code (does pickpocket work yet?) or add in the next layer for the ai. With the thief code, I could flag mobs to come track you down if you have x amount of money, and attempt to pickpocket it from you. 'course, if they track you down and you're KOS, then they'd kill you too. The next layer of ai, which I might do if pickpocket isn't working, involves a slight reordering of some things.
For example, with level checks, an implied social order is created. I want to build off this some more. Given X, with 2Y (imagine X as the top node, 2Y as 2 nodes below) I want 2Y to take the kill and give a % of that kill to X, which would be their master. Then, if 2Y has contributed ($a) amount, then X will act as a kind of guardian for them. If 2Y(me) is in trouble, then X will come over and help.
Doesn't seem to be that difficult and may actually be better to do this first because then I could put in guild-code for thieves. If you pick on a thief and they're popular in the guild ($a), then the guild comes after you. I see in the code that it is possible to zone npcs across, or suggests that it is, so this shouldn't be very difficult either.
--MV
|