[MUD-Dev] Containing automation?

Wayne Pearson wpearson at verity.com
Mon Jul 26 13:28:59 New Zealand Standard Time 1999

||  "Koster, Raph" wrote:
||  > A more advanced form of this mined memory in order to get data the user
||  > wouldn't normally have, in order to generate a packet using a wedge. For
||  > example, when you target something, you send back a packet with the id# of
||  > the object being targeted with the mouse on your screen and the id of the
||  > particular targeting you were doing (eg, targeting with a fireball,
||  > targeting with an arrow, whatever). Players used this to spam the server
||  > with fireball targeting without actually having received the prompt to
||  > target first--without mousing over and clicking on them. Essentially a
||  > quickie hotkey instatarget. A semaphore fixed this, but when you consider
||  > the zillions of places where you need to set up semaphores, it's easy to see
||  > why it was missed.
||  How did a semaphore fix that? 
||  Do you mean that you returned an ID provided by the server, or do you mean
||  that you counted the number of received requests, queing of requests or
||  something else?
||  --
||  Ola

One old, similar bug in UO involved selling items:

When selling items, a packet is sent to the server saying "sell X, Y and Z".
The server accepted this, since it had provided a list of items to choose from.
However, if dozens of these packets were sent rapidly, the server would decide
that they were all valid, and give you money that it shouldn't, essentially
selling the same items more than once.

This was likely fixed by raising a semaphore saying "I'm currently processing
a sale, and until I'm done moving inventory about, I won't process others."
Once the items are removed from the user, the semaphore is removed, and 
subsequent faked packets would fail, since X, Y, and Z don't belong to the
user anymore.

Of course, I'm not a UO developer, but this is the way I can see it working.

I think the idea of 'location' in general has been semaphored in UO;  if
someone grabs an item, a flag is set so no one else (even someone trying
at the same time) can grab it.  The second user's client may have thought
that you grabbed it at first (until the server denied the request due to
the semaphore).  Unfortunately, it can be overdone, as is the case when
a user moves his own belongings too quickly;  a semaphore seems to get
stuck on an item, and reconnecting is the only way to clear this.
(The "You cannot pick that up" bug, Raph.  *:^) )

Wayne Pearson				wpearson at verity.com

MUD-Dev maillist  -  MUD-Dev at kanga.nu

More information about the MUD-Dev mailing list