POLL: Considering changes to NPC Move( )

Here you can post threads requesting help on the official POL Ultima Online Emulator Core 097.
Note: Core 097 is no longer officially supported.

Moderator: POL Developer

Post Reply

How do you think NPCs should behave?

As they do now, where Move( ) will only change facing if a direction different than the current facing is supplied.
2
14%
I'd like to see a seperate Face( ) function that only changes the facing, and for Move( ) to move the NPC regardless of the current facing direction.
9
64%
I don't care either way, but I'd like to see a photo of Austin in bikini briefs included in the 098 distro.
3
21%
 
Total votes: 14

Luth
Grandmaster Poster
Posts: 200
Joined: Mon Jan 30, 2006 8:10 am
Contact:

POLL: Considering changes to NPC Move( )

Post by Luth » Sun Apr 06, 2008 7:06 pm

I'm considering a change to NPCs and I wanted to get user feedback before I go and change anything. As things currently stand, "Movement" is defined as either a change in facing or position. For Frozen and Paralyzed, this makes perfect sense and should not be changed. However, it leads to some peculiar behaviors. For instance, if an NPC is facing NW and the script tells it to Move( N ), the NPC will not walk north, but will only face that direction. This is commonly seen in Move( ) where a direction is not passed in, but rather a bounding box. NPCs will "sit and spin" 7 times out of 8, and only move forward if the Random Direction it chooses happens to match its original facing direction. Needless to say, this doesn't do much to give the illusion of "life" to our NPCs. ;-)

Many of us have scripted around this issue with little jobbies like this:

Code: Select all

var dir := RandomInt( 8 );
npc.facing := dir;
Move(dir);
or worse if they are to be constrained in bounding boxes.

So what I propose is to separate "Movement" (except in the previously mentioned Frozen and Paralyzed states) into two functionalities: Face( ) and Move( ). Face( ) will only ever adjust the NPCs facing attribute (exactly like altering npc.facing directly). Move( ) would cause the NPC to change location, regardless of its previous facing direction. In the above example, Move( N ) would cause the NPC to walk one space north, adjusting his facing in the process, even though he was facing NW before.

The other devs will be giving me feedback on the issue, and letting me know any technical reasons for or against the change that I may be unaware of, but I'd also like you, the users, to provide feedback as well. So please take a second, cast a vote, and leave a comment or question if you are so inclined.

Cheers. :cool:

User avatar
Madman
POL Developer
Posts: 62
Joined: Sun Feb 05, 2006 7:20 pm

Post by Madman » Sun Apr 06, 2008 7:25 pm

I think this is a good idea. I find it unlikely that it would break many scripts- how many people are using Move to change facing only? (Which I suppose is what this poll hopes to find out.) And in the meantime it makes the behavior more like what is probably expected.

User avatar
ncrsn
Grandmaster Poster
Posts: 255
Joined: Fri Feb 10, 2006 12:15 am

Post by ncrsn » Mon Apr 07, 2008 2:40 am

Separating facing from movement is a good idea. I can not think of any reason why it shouldn't have been like that all the time.

Pierce
Forum Regular
Posts: 420
Joined: Thu Feb 02, 2006 8:33 am

Post by Pierce » Mon Apr 07, 2008 3:42 am

That's a good idea. I personally have another suggestion for general npc movement, but i'll put that into the feature suggestion forum later.

User avatar
Madman
POL Developer
Posts: 62
Joined: Sun Feb 05, 2006 7:20 pm

Post by Madman » Mon Apr 07, 2008 2:22 pm

ncrsn wrote:Separating facing from movement is a good idea. I can not think of any reason why it shouldn't have been like that all the time.
I'm not sure, not speculation is that it was set up this way back before there was write access to .facing.

Ok, that doesn't answer the question of why it wasn't seperated at the time. I really have no idea. :)

BELL
Journeyman Poster
Posts: 68
Joined: Tue Apr 22, 2008 6:09 am

Post by BELL » Wed Apr 23, 2008 6:35 pm

Code: Select all

var dir := RandomInt( 8 );
npc.template := :brainAI:Austin;
npc.usebikini := true;
npc.facing := dir;
Move(dir);
:)

Post Reply