[MUD-Dev] Re: Re: World Event Model [Josh Rollyson]

Christoph Seifert seifert at ILP.Physik.Uni-Essen.DE
Wed Aug 9 11:22:45 CEST 2000


On Fri, 04 Aug 2000 19:40:42 -0700
Josh Rollyson <dinodrac at summit.magenet.com> wrote:
> Josh: 
> ...
> How are players fleeing, and the autoflee given to linkdead players handled,
> and does the flee command override pending combat activities?
> Also does your system dump spammed commands out of the event system?
> And can players do things like "keep trying to kick" ?
> 

The players are fleeing instantly (or not), using the (CircleMud?) flee
command  - this is due to the fact that the Event system was introduced
very late and there was no need yet to make it an event or all commands
even just for the sake of it.
Autoflee is still vanishing in the void. I can try to describe how I 
would make flee an event:
The flee event would have the flags movement, locked and mind. This
would forbid movements like kick or dance, because you are trying to run
away and you would not be able to do stuff which requires thought (mind)
like solving an equation, because you are in panic. The problem would
be,
that the flee command is not having any effect, if you are in the middle
of kicking your opponent (movement-locked).
Now dumping spammed commands is "easy" in the system RoM uses - if you
issue flee twice, the second flee will remove the first one (same event
name).
Commands which are overriden are removed as well, so there is no problem
with spamming the queue yet.
Players can't do something like "keep trying to kick" yet - this would
require some extra coding. I don't see the necessecity for the special
case of keep trying to kick, but it could be coded like this:
Generate a special event, which executes a command string say every
combat round - this way keep kicking could lead to creation of an event
which executes the kick command every combat round until the combat is
over. Keep here would be a command which parses the argument and
translates stuff like kicking to the kick command.

Of course it would make sense to add code for suspending events e.g.
make flee: movement | suspendable | mind event.
This would lead to the following behaviour after issuing "flee" as
example:
The fleeing person is in the middle of the kick, which is a locked
event. Thus flee can't override it. But because the flee event can be
suspended, it will be added and the suspended flag gets set + extra
handling in the scheduler.
Then the kick is finished and the suspended flee event will be be issued
(the case of having more than one suspended event queued is a bit tricky
and  requires some thoughts). The flight might not have been successful,
so the fleeing person still got the flee event. Then the fleeing person
could issue a bash command (movement) which suspends the flee event for 
a while to topple the opponent in order to have better chances for the
next attempt.
The flee event would be finished in the following cases:
- flight successful (changed room)
- fleeing person dead
- issue command "stop flight/fleeing" (using CommandInterpreter
  interface)

I will put some thoughts into designing suspended events, but this
should pretty much do it.

Christoph



_______________________________________________
MUD-Dev mailing list
MUD-Dev at kanga.nu
http://www.kanga.nu/lists/listinfo/mud-dev



More information about the mud-dev-archive mailing list