someone submitted something along the lines of this to the circle list a fair while ago what he wrote is as follows (I hope it's of some use to you) > 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; > } > } > I think it's a good idea what do ppl think? may be an idea to do it as a diff spell so that summon is still there for summoning npc's so spell portal perhaps? Tim can be reached via computer technology at: e-mail: lostsoul@city.ac.uk (df109@city.ac.uk), lostsoul@mono.org or lostsoul@spodbox.linux.org.uk (MIME) "Blood, sweat and tears, really don't matter. Just the things that you do, in this garden" On Tue, 3 Oct 1995, Glenn Campbell wrote: > Im looking to code a spell in Circle 3.00 that will allow a caster to create > a temporary portal to another > room in the mud. The syntax would be something like cast 'spellname' <mob> > or cast 'spellname' <pcname>. I am planning on setting it up so the pcs will > simply type somethink like "enter portal" and they will come out in the > other room. IF anyone has coded something similar to this I would be really > interested in how you did it. I am beating my head against the wall thinking > of ways to do it. > ________________________________________________________________________(_) > (_) Glenn Campbell Voice:902-564-3660 (136) | > | | Computer Systems Specialist Fax:902-562-6113 | > | | Canadian Coast Guard College Voice Mail:902-565-6563 (20 seconds) | > | |________________________________________________________________________) > (_) >
This archive was generated by hypermail 2b30 : 12/07/00 PST