A question from apex

From: Stefan Rensing (rensing@uhura.biologie.uni-freiburg.de)
Date: 05/03/95

Forwarded message:

(so don't reply to me, ok :) ? )

> From robink@htsa.hva.nl Tue May  2 22:51 MET 1995

[stuff deleted]

> ****************************************************************************
> I just joined the mailing list less than two weeks ago..
> I never thought i needed help, how wrong can people be.. :)
> Some time ago i started rewriting the summon spell. I thought it would be
> much cooler if people, instead of setting a flag, people could choose on the
> fly if they wanted to be summoned or not. So i implemented portals.
> First, let me explane some things..
> Normally if you want to summon a friend, you told him to put the summon
> protection off, and you summoned him. (He suddenly arrives)
> Now my idee :
> You want to summon someone, you type : cast 'summon' target
> than the program createds a portal in your room (exit) and a portal in the
> room of your target (entrance)
> people can look through (in) the portals, and see the other side...
> and the 'summoned' one can type 'enter' and he will enter the portal and
> arrive on the other side.. the nice thing is that you don't have to enter the
> portal.. or evenn that someone else enters it..
> (I saw the idee on an other mud, called Dragons legends and Lore)
> Now, almost everything works ok, you can cast , the program makes the portals
> if you don't enter, the portals will disappear after some time.. (like corpses)
> people can enter the portal.. and the portals will be removed if used.
> BUT, if someone is standing on the wrong side (the exit) and types 'enter'
> he will arrive at the exit room (so actually he didn't go anywhere) and the
> portals disappear.
> I used objects for this idea.. one obj (let's say nmr #20) is the entrance
> #define PORTAL_IN_OBJ_NMR = 20
> and an other is the exit (let's say #21)
> #define PORTAL_IN_OBJ_NMR = 21
> and i added a new item type.. ITEM_PORTAL
> (I define these in the file : structs.h)
> so i rewrote ACMD(do_enter) in act.movement.c and added this somewhere...
> but somehow, the person who typed enter can still enter a portal_out
> could someone help me with this, and explane why it went wrong.. 
> /* try to locate a portal_in */
> for (obj = world[ch->in_room].contents; obj; obj = obj->next) {
>   if ((GET_OBJ_TYPE(obj) == ITEM_PORTAL) && (GET_OBJ_VNUM(obj) == PORTAL_IN_OBJ_NMR)) {
>     enter_portal(ch, obj); /* perform actual transportation */
>     return;
>   }
> }
> Whaaaaaaaaaaaaa....
> (*** THIS IS A CRY FOR HELP !! *** :)
> -------------------------------------------------------------------------------
> Apex,Implementor of The Neverlands : mark.htsa.hva.nl 4000
> Electronic Mail : robink@htsa.hva.nl
> -------------------------------------------------------------------------------

This archive was generated by hypermail 2b30 : 12/07/00 PST