Message 783 on *RPG-News (#9551): Date: Thu May 4 14:25:30 1995 PDT From: Jamethiel (#91447) To: *RPG-News (#9551) and Grand_Master (#2693) Subject: Dealing with Death Presently, when a RPG character dies, their doll is immediately recycled. This has a number of disadvantages: 1) When a player dies due to a bug, we can't ressurect 'em 2) Alaria and things like her have to use LOTS of quota in order to remember people's stats 3) When a player dies, their "misc_notes" property, etc. gets lost 4) When someone starts a brand-new character, their new character can't do the puzzles that their dead one did, simply because there is no way for the puzzle to distinguish between a new character and a ressurected old one. I think the reason for the system being the way it is is simply that it was written when quota was in objects, not bytes, so they wanted to reduce the number of objects lying around. Instead, when a RPG character dies, why don't we simply mark the doll as "dead", but keep it around for a few days, in case it gets resurrected? That would solve all the above problems. It doesn't look to me as if the coding to do this would be too horrible, and I'll even volunteer to do it all, if the G_Ms promise to install it if I do it. Thanks, -- Slither -------------------------- Message 784 on *RPG-News (#9551): Date: Sun May 7 02:17:56 1995 PDT From: abstract (#94368) To: *RPG-News (#9551) Subject: Why? For #4412:dispose.... it calls the RPG recycler (#4489). Why can't GMs access the recycle? ie Why can't GMs recycle (useless) daggers, staff and stuff, which are created when @grab-ed (or taken). #4489:_recycler checks if the this is ok_to_recycle...ie If it has verbs and stuff which will return 0 (I think it was) if it did, preventing the recycling of the stuff. So why can only G_M recycle? Especially since us GMs can't mess up on recycling...it checks (trust_to_recycle) if your a G_M... thing is, why don't you trust us if we can't recycle thing with verbs/properties? abstract (wondering...cuz there's tonne of junk out there..waiting to be recycled...) -------------------------- Message 785 on *RPG-News (#9551): Date: Sun May 7 03:00:51 1995 PDT From: abstract (#94368) To: *RPG-News (#9551) and *RPG-Stuph (#21259) Subject: CLAIM YOUR STUFF!!!!!!!!! SWEEPING now does NOT care if stuff is on you, if your home or whatever. IT does NOT matter. The ONLY things that won't be swept are CLAIMED items... Be warned. If anything is missing, I guess that's too bad. a) You were told to claim all you stuff b) You should have cliamed it abstract (flames/comments/etc. don't go to me. They go to *RPG-stuph) PS This may not stay the same.. but probably will. -------------------------- Message 786 on *RPG-News (#9551): Date: Sun May 7 05:42:47 1995 PDT From: abstract (#94368) To: *RPG-News (#9551) Subject: Sweeping... Some problems: (Dunno where it's called from so I'll just tell ya what's wrong) Stuff like restoration stuff (Paula's shop, Prui's stuff) get's swept. It's not a weapon, and yet it was swept (they go for 100 gold.. why should they be claimed?) With claiming... when someone buys something they have actually 'claimed it' automatically. Why must they @clain stuff like armulets and other bought stuff? (I guess it's for the ease of programming and to save ticks). If it isn't automatically claimed (not risking sweeping, and even if it is) 21 objects does seem like a low number. Players may have ball of brightnesses, picks, halbreds, amulets of whatever, katanas, that kinda stuff... and it would probably total to more than 21 objects. Sweeping is to prevent hoarding right? Players who aren't horading still lose their stuff (because no one told them they would be swpet, and if if someone did, they may not have been able to claim all the stuff. abstract -------------------------- Message 787 on *RPG-News (#9551): Date: Mon May 8 04:29:40 1995 PDT From: Grand_Master (#2693) To: *rpg-development (#20779) and *RPG-News (#9551) Subject: recycler and reaper changes I changed the `vacuum cleaner' some to attempt to take out some old cruft and clean up a bit (no pun intended :) ... check out in_use_test and reap_test ... they should replace reap and in_use. in_use no longer saves things that are registered as protected or in dumps with Harvey at the DEP, so you HAVE to claim stuff or set .unique on a thing you create via the grabber to make sure it is not reaped nightly. I changed #4489 (the recycler) to allow GMs to _recycle things that the vacuum cleaner (#10161) considers killable anyway. The changes are in #4489:_recycle and #4489:trust_to_recycle. Finally, I set the #74.max_claims to 31 at the suggestion of abstract, who said that players are finding 21 too few items what with all the little bits they want to have around. Fine with me. Btw, check out #10161:in_use_test in particular to see if there are any other conditions under which you'd like to have a piece of equips `in_use' and thus not reapable. dr -------------------------- Message 788 on *RPG-News (#9551): Date: Mon May 8 06:04:21 1995 PDT From: abstract (#94368) To: *RPG-News (#9551) Subject: #4489:_recycle() hhmm..something's funny about it. I can @grab something and #4489:_recycle(x)... and it'll recycle. But if I find some useless RPG thing lying around (greaves) I try it, and it gives me E_PERM.... I can't seem to recycle things I haven't @grab-ed.. I dunno what's the problem, I'd look into if if I didn't have to idle... abstract -------------------------- Message 789 on *RPG-News (#9551): Date: Mon May 8 09:22:50 1995 PDT From: Prui (#90864) To: *RPG-Stuph (#21259) and *RPG-News (#9551) Subject: Paula's wares I've made a slight modification to Paula. Now, when you buy a specialty item (i.e. magic armour, potion, amulet, or (coming soon) helium balloon) it is automatically claimed for you and flagged as unique. This should prevent the sweeping of any of these items. Please let me know if anyone runs into any problems with this. Thanks! Prui -------------------------- Message 790 on *RPG-News (#9551): Date: Mon May 8 11:31:52 1995 PDT From: Jamethiel (#91447) To: darkrider (#7003) and *RPG-News (#9551) Subject: Reaping of objects Might I suggest that the decision to reap everything that wasn't claimed was a bit hasty? First of all, there are still some problems with claims (though less than before). Secondly, it doesn't seem reasonable to reap things that actually are on players -- the players are penalized for carrying things already because of weight. Thirdly, it makes things a lot more irritating for players. Before you could largely ignore claims except when trying to save certain items -- now you always have to worry about every single object you ever pick up. Its darn annoying! How about going back to not reaping from players, at least? -- Slither -------------------------- Message 791 on *RPG-News (#9551): Date: Mon May 8 18:34:33 1995 PDT From: darkrider (#7003) To: *RPG-News (#9551) Subject: Claiming and Reaping Well, ok, I am back in the seat because Profane lost his net access, so I can't contact him and ask what he was intending. I changed the recycler to reap thing that weren't claimed, thinking that people had enough warning and that it was time for the code to work. The numbers:\ Grand_Master quota used before reap: 8,129,854 Grand_Master quota used after reap : 7,375,135 The whole idea of claiming stuff is to give us a cheat-free and obvious way to figure out what stuff is cruft, so that we can recycle useless stuff (or hoarded stuff) and be good LambdaCitizens. I am attempting to get Grand_Master's usage under 7 meg under the next few weeks, so if something is wrong, SPEAK UP. It may not have been perfect (I lost my ball of brightness :( ) but we saved 750k! Obviously, saving space is pointless if the game is no longer fun to play, or players are unhappy for legitimate reasons of playability (versus greed). So give me any suggestions you think prudent (like the raising of claimed things to 31 from 21, which every player I talked to thought was cooler), and we can kick em around. dr -------------------------- Message 792 on *RPG-News (#9551): Date: Mon May 8 20:11:38 1995 PDT From: G8keeper (#61219) To: *RPG-News (#9551) Subject: Hmmm Okay, so I think I finally found out why Sir Oftswing kept showing up empty handed. I thought it was related to the weird .mine problems we've been having, and it was in a way, but also not. I'm posting here because some of you might have a similar problem. Sir Oftswing has a custom :act and :duty. His :duty does a pass(@args) in the middle of the verb, so it has been written dependent on the values before and after the pass(@args), specifically the .mine list. Similarly, the :act verb has been programmed to rely on Sir Oftswing being fully dutied and ready to fight. What I found was this: #259:duty calls :go_home to put the freshly dutied monster where he belongs. But my duty isn't done yet. It needs to do some stuff after #259:duty is done. #259:go_home moves the monster, and guess what? The RPG exit and RPG room that he belongs in calls :invite, which calls :act. Aha. :act is making assumptions that aren't true and the whole thing dies in traceback. So he is dutied somewhat, but not fully. Anyway, I fixed this on Sir Oftswing by moving the code after the :pass(@args) elsewhere (:set_mine, FYI). I figured you all might benefit from this finding too..That :act gets called on monsters in the middle of being dutied... G8keeper [Dred] -------------------------- Message 793 on *RPG-News (#9551): Date: Mon May 8 20:18:29 1995 PDT From: Jamethiel (#91447) To: *RPG-News (#9551) and GameMaster (#58390) Subject: Claim bug I figured out why monsters were getting already claimed items, and people were getting things on their claimed lists that they never saw before. Type ;;for x in (#52766.dispenses) if (valid(x.claimed_by)) player:tell(tostr(x)+" "+tostr(x.claimed_by)); endif; endfor Some of the generic items are out, being used by players. When a player names or claims the generic, suddenly *poof* they name or claim a LOT of other things! -- Slither -------------------------- Message 794 on *RPG-News (#9551): Date: Tue May 9 11:01:36 1995 PDT From: Jamethiel (#91447) To: Grand_Master (#2693) and *RPG-News (#9551) Subject: Fixed claims of generic things I fixed the problem with RPG Generics being used by players, and thus messing up claims and such. I went through every object the RPG dispenser dispenses, and if the generic was claimed by someone, I did the following: -- Made a replacement object of the same kind as the generic -- Claimed the replacement by person who claimed the generic -- Moved the replacement to where the generic was -- Unclaimed the generic -- moved the generic to a container of mine (#96498) As long as the generics are kept out of players hands, things should be fine. If you want one of the generics that I moved, feel free to take it, but just don't let players mess with them! -- Slither -------------------------- Message 795 on *RPG-News (#9551): Date: Tue May 9 11:30:54 1995 PDT From: Jamethiel (#91447) To: Grand_Master (#2693) and *RPG-News (#9551) Subject: Bug with monsters Btw, this weekend there were a whole bunch of living monsters trapped in the cemetary. This included a whole troop of kobolds, which made the caves rather quiet. I rescued them all, but don't know how they happened to get there. My FO #88856 now warns if this happens again. -- Slither -------------------------- Message 796 on *RPG-News (#9551): Date: Mon May 15 07:33:22 1995 PDT From: Profane (#30788) To: *RPG-News (#9551) Well, yah, I 'spose I should've announced to the LRPG community at large that I will not have more than sporadic net access for quite some time to come.. Re: sweeping, the system dr implented (where you MUST claim something) was the other option I was considering (from the system I had implented), but then I kind of wipmed out and decided to keep all that dump and stuff-on-players-being-protected cruft. darkrider just has bigger cojones than I do, I guess :) I support eliminating 750K worth of cruft. Yummy. Back when I became a G_M, His Eminence was hovering around 9.5M.. I think what we need to do is come up with some in-character rationale for this claiming tho.. It'd be much easier to pass off on the poor saps, er, players that way. -Profane -------------------------- Message 797 on *RPG-News (#9551): Date: Wed May 17 14:34:34 1995 PDT From: Jamethiel (#91447) To: Moriah (#50459), Grand_Master (#2693), Prui (#90864), and *RPG-News (#9551) Subject: Bugs with claiming and shopkeeping I just found related problems with shopkeeping and claiming. When a player sells a claimed object to a shopkeeper, what happens to it is determined by the verb #8085:destroy, which unfortunately is unreadable, so I can't tell exactly what happens. Effectively, though, it seems that the object ends up in #-1, and stays there forever and is never swept. The reason that is never swept is because the sweeper NEVER will sweep an object which is claimed. So, fix number one is that shopkeepers should, whatever else they do, clear the claims of anything that they buy. The second problem is due to #10161:in_use_test. I would suggest the following fixes: 1. after line 6, add the code if (!valid(where)) return 0; endif (This will make anything in the void be not in use.) 2. Move the code in lines 7-16 to after line 30. This will do two things. Firstly, it will make the comment in the code true: things in a deadly location WILL be destroyed. Secondly, it will fix an additional bug. The way it is, a monster's equipment will be destroyed if the equipment happens to be claimed by someone without a doll, which is obviously bad. 3. Change the call to in_use_test in #10161:killable (line 13) to pass in the cemetery as a deadly location. This means that stuff in the cemetery will be swept, even if claimed, except if it is inside a monster. -- Slither -------------------------- Message 798 on *RPG-News (#9551): Date: Wed May 17 15:39:33 1995 PDT From: darkrider (#7003) To: *RPG-News (#9551) Subject: Done. OK, I did everything Slither asked except for passing the cemetery as a death area for weapons. The only think I saw in there when I looked didn't look killable, but I could be wrong, and I can always make the change later. So as it stands, ANY $local.rpg.thing that is stuffed in #-1 (and owned by G_M) will get reaped. If you notice any discrepency, gimme a call. The reap occurs every morning at 5am LMST, when lag is blessedly low. dr -------------------------- Message 799 on *RPG-News (#9551): Date: Thu May 18 13:06:54 1995 PDT From: Jamethiel (#91447) To: *RPG-News (#9551) and Grand_Master (#2693) Subject: Bug with monster's equipment disappearing found I have good news and bad news. The good news is that I've tracked down the bug that was causing monster's equipment to disappear now and then. The bad news is that any equipment that disappeared is now GONE -- there is no trace of it in the .mine lists, so people will have to go through all their monsters and fix them up with the proper equipment. Ouch! Quite simply, the new sweeping method broke monsters check_mine/set_mine code. What happens is this: When a monster tries to equip itself, it calls #259:check_mine(). At the start of this code, this.mine will contain a list of the equipment the monster USED to have. Check_mine goes through this list one piece at a time. If the piece is unique, the monster grabs it back. If it isn't unique, then it clones a copy of it. So, if the monster used to have a dagger, then its .mine list will have the old daggers object number in it. Check_mine will notice that the old dagger wasn't unique, so will make a copy of it. But wait! The old dagger was there a long time ago -- how do we know that it hasn't been recycled, or anything like that? Well, the answer USED to be that the monster's :set_mine verb would put the old dagger on the sweeper's .protected list, which would keep the sweeper from destroying it. Unfortunately, the new sweeper ignores the .protected list. Oops! So, the old object in the .mine list might no longer be there. This might cause the monster to create a totally random thing, or, more likely, just cause it to remove the invalid object from its .mine list. End result: not only does the monster not have that equipment, but the fact that it used to is lost. (Note: Another bug here is that when a monster clones an item, it will duplicate the .claimed_by property too...so that whoever claims the equipment off a monster will keep claiming every similar piece from then on. So, once upon a time The_Emerald_Dragon claimed a vambrace from Scara, and now has claimed many many many vambraces....) One solution would be to make the sweeper respect the .protected field again, and to correct the cloning code. However, I think that this would be the wrong thing to do. The .protected thing is ugly, and assumes that the only thing that could possible recycle an object is the sweeper, which is a really bad thing. (That means that shopkeepers can't recycle things, for instance!). I think the proper solution would be to make .mine list into two lists. The first list would hold the numbers of the unique objects that the monster wants to grab back every time. The second list would hold generics of which children should be made. Then we wouldn't need to fiddle around with .protected lists, etc, and there wouldn't be any assumptions made about the sweeper. I could write up the new code, if people would like. -- Slither -------------------------- Message 800 on *RPG-News (#9551): Date: Thu May 18 13:16:32 1995 PDT From: Dred (#49925) To: *RPG-News (#9551) Since when did the sweeper start ignoring .protected? It looked like it was always checking it to me...And who did that? That was pretty silly, if someone changed it... -------------------------- Message 801 on *RPG-News (#9551): Date: Thu May 18 13:48:08 1995 PDT From: Jamethiel (#91447) To: Dred (#49925) and *RPG-News (#9551) The code that the sweeper now uses is #10161:in_use_test -- note the absence of .protected checks. This is the same change that made the sweeper ignore dump sites, and whether objects were being carried by players. -- Slither -------------------------- Message 802 on *RPG-News (#9551): Date: Thu May 18 17:46:27 1995 PDT From: StarDancer (#82267) To: Jamethiel (#91447), *RPG-News (#9551), and Grand_Master (#2693) Subject: Re: Bug with monster's equipment disappearing found I *would* like to remind people of messages 776 and 778, which do *'zackly* what Slither/Jamethiel suggests doin. I *don* wanna flame Slither, but I posted those 2 messages back in April 29, 1995. --->Cori -------------------------- Message 803 on *RPG-News (#9551): Date: Fri May 19 05:35:50 1995 PDT From: abstract (#94368) To: *RPG-News (#9551) Subject: Monsters not responding... For some reason, monsters like Mushi and Paula don't respond to all players... -------------------------- Message 804 on *RPG-News (#9551): Date: Fri May 19 07:35:57 1995 PDT From: Quisinart (#63546) To: *RPG-News (#9551) Subject: Possible occasional problem? In #259:deposit_loot, lines 9-13, it calls :keep_at_death for every item carried by the monster without checking to see if that verb exists. This isn't a problem if the monster is carrying only children of #517 (Generic LRPG Thing) but if somehow it comes to be carrying something else, there would be a traceback and the death wouldn't complete... I assume its possible for a player to give a monster any object w/out a :keep_at_death verb, which would cause this problem to occur. Its probably not an important problem, but seems simple enough to fix and may be something that has occurred before. Quisinart -------------------------- Message 805 on *RPG-News (#9551): Date: Sun May 21 21:32:28 1995 PDT From: Quisinart (#63546) To: *RPG-News (#9551) Subject: Monsters attacking when other monsters are attacked... I remember when the kobolds, imps, and demons (who seem to be in #-1 a lot) used to all attack when one of their number was attacked. It doesn't seem to be happening now, and I"m not sure why, unless it was the changes to :invite/etc... I've tried the code for the kobolds and imps and neither work (for my dwarves anyway...) It seems the problem is - the person gets put in the monster's .aggressor list, but the monster never attacks unless it is attacked - its :act verb never gets called. Has anyone looked at this code recently, or anyone want to take a look and give me some ideas? I tried calling :act in :notify_attack and started getting tracebacks... and don't have time to experiment for a while now... The way the kobold's verb works seems like a good feature to add to #259 - so monsters can be grouped and will defend other monsters in their groups... I'm adding the code to my dwarves - the generic is #79797, the generic kobold is #2804. Thanks for any help. Quisinart -------------------------- Message 806 on *RPG-News (#9551): Date: Wed May 24 15:38:41 1995 PDT From: TWIST (#37972) To: *RPG-News (#9551) Subject: hey.. could someone set #10898 to +r ? TWIST -------------------------- Message 807 on *RPG-News (#9551): Date: Thu May 25 02:29:04 1995 PDT From: abstract (#94368) To: *RPG-News (#9551) Subject: hey.. Could we also discuss how to lower G_Ms lag? The @gmq was up to 10 minutes delayed yesterday... We could set_task_perms() some of the stuff to another character... but would need wizperms (right?). Anyway... maybe we should think of some way of lowering the lag... abstract -------------------------- Message 808 on *RPG-News (#9551): Date: Sun May 28 08:37:20 1995 PDT From: Jamethiel (#91447) To: *RPG-News (#9551) Subject: Mine lists revisited As everyone knows by now, the current system monsters use to determine how they should equip themselves, using the .mine list, is broken. I'm currently working on re-writing the system, and am trying to break as little of other people's code as possible (hopefully none). The current system allows monsters to create generic equipment and automatically set various properties on the equipment. This means that a monster can always be carrying a generic sword named, for instance, `Human-bane'. The question is, is anyone using this ability, or does anyone want to in the future? I can support it, and, in fact, already have written the code to do so. The price is that one of the properties that one would set to tell a monster what to get would have to be a tad more complicated. Specifically, if one wanted the monster to get a generic thing1 and a generic thing2, one would have to set a certain property to {{thing1},{thing2}}, instead of {thing1,thing2}. Would this be too confusing for people? -- Slither -------------------------- Message 809 on *RPG-News (#9551): Date: Sun May 28 19:53:59 1995 PDT From: Jamethiel (#91447) To: *RPG-News (#9551) Subject: Proposed new handling of .mine lists I've written new code to handle .mine lists, which should solve the problems we've been having. Before installing it, I thought I'd present it here for comments, to try to minimize the chance of disasters. There are two new properties on the generic monster #259: .generic_equipment .special_equipment Each of them is a list of objects. The generic equipment list should be a list of generics, new children of which will be made each time the monster is dutied. The special equipment list should be a list of objects which the monster should make sure it has each time it is dutied. Ie, any unique items, or things like natural weapons which should never be moved away at all. The verbs :set_generic_equipment and :set_special_equipment set the appropriate list. The verbs :make_generic_equipment and :make_special_equipment do what is necessary to prepare the appropriate kind of stuff. That is, make new generic equipment, and return any special equipment. The proposed replacements for the verbs :set_mine and :check_mine are in :set_mine(new) and :check_mine(new). Please, let me know ASAP if there are any possible problems with any of this. If there are none, I'll replace :set_mine and :check_mine with the new versions soon (perhaps Tuesday), and write a verb on a FO to convert monsters from the old system to the new one. -- Slither -------------------------- Message 810 on *RPG-News (#9551): Date: Sun May 28 20:51:55 1995 PDT From: Hobo (#19845) To: *RPG-News (#9551) Subject: mine The problem I have with separate lists is that, the way MOO handles properties, you're adding the at least length of both new properties to the size of every descendant. ;length("generic_equipment") + length("special_equipment") -> 34 Ok, maybe that doesn't seem like much. Actually, maybe it isn't. Maybe I'm too anal about these things. Anyway, it might add up to 34k in the long run, which I guess isn't a whole lot. Do it if it works, Slither. -Quinn -------------------------- Message 811 on *RPG-News (#9551): Date: Mon May 29 08:12:58 1995 PDT From: Jamethiel (#91447) To: *RPG-News (#9551) Subject: FO to help with .mine list conversions I've made a FO to help people convert their monsters to the new (proposed) system. On FO #60425, there is a command @convert-minelist. Its usage is @convert-minelist for which will look at the monsters .mine list, and try to set the generic_equipment and .special_equipment properties appropriately. It will tell you what it did with everything on the .mine list, and tries to be careful to avoid junk. Naturally, you can only convert monsters that you control. It will complain if you try to convert a monster which has already been converted, but there is an option to force it to do the conversion regardless. Again, let me know if there are any problems, either with the FO or with the proposed new system. -- Slither -------------------------- Message 812 on *RPG-News (#9551): Date: Tue May 30 06:45:17 1995 PDT From: Quisinart (#63546) To: *RPG-News (#9551) Subject: problem with #328:storm There is a problem in this verb when you attack a monster and it casts a storm. It notifies the room of the spell cast in lines 14, 19, and 23, by using area:announce(). The code for area:announce in my room is #49444:announce this none this 1: return this:announce_all_but({player}, @args); So basically, when I attack a monster, everyone in the room except _me_ will see the text for the storm that was called up, when it should be everyone but the monster. I think this has been noticed with the Priest of the Rose as well as my monster. The fix is to do s/area:announce(/area:announce_all_but({by},/14,19,23 - basically remove the call to area:announce and replace it with a call to announce_all_but since #328:storm actually knows who shouldn't see the text. Quisinart -------------------------- Message 813 on *RPG-News (#9551): Date: Tue May 30 07:32:20 1995 PDT From: Dred (#49925) To: *RPG-News (#9551) and Slither (#86740) Subject: New mine In general, I think this two property system will work out better in the long run despite the small size increase. So, I say go for it. I didn't look too closely at the code, but I did notice this: #259:make_generic_equipment this none this ... 12: for parent in (this.generic_equipment) 13: if ($recycler:valid(parent)) 14: new = recycler:_create(parent); 15: if (valid(new)) 16: new.name = parent.name; 17: new:moveto(this); Hmm. I don't know if any RPG parents have the word "generic" in them, but I wouldn't be surprised if they did. It would be kind of strange to have monsters carrying around `generic' weapons. I've noticed that you are -always- creating new kids every time. Is this necessary? The old code checked to see if current kids still existed that weren't in use, and simply grabbed those instead of making new children (and bloating the db). I think that should remain. Also, you posted earlier about the fact that currently weapons are cloned so that they can be given custom names and property settings. You talked about an associated list to do this. How about simply checking the current .mine list, finding out if a kid still exists, grabbing it if it is free (as above), cloning it if it isn't, and if you can't find one (it got recycled or something weird), make a fresh one as you have it now. Dred -------------------------- Message 814 on *RPG-News (#9551): Date: Tue May 30 10:38:18 1995 PDT From: Jamethiel (#91447) To: Dred (#49925), *RPG-News (#9551), and Slither (#86740) Subject: Re: New mine Dred raises a bunch of interesting issues. First of all, I should note that the trial code I put up didn't use the association list idea for generics that I had talked about earlier. This, of course, is still an option. As you probably all have noticed, I am trying to get the .mine list problem solved ASAP, because GMs with popular monsters are being forced to fix their monsters every time they log on, and monsters are continually losing things, or creating garbage items. Dred writes "I don't know if any RPG parents have the word "generic" in them, but I wouldn't be surprised if they did." Actually, there are no generics with the word generic. This is because of an oddity in the way the RPG works. Basically, any object whose name is different from its parent's name is considered to be a unique object. (!!) This is the only reason that money isn't reaped -- "$51 silver pieces" doesn't have the same name as the parent. It is also the reason that swords named "staff" (created by the broken .mine system) never get reaped. Personally, I think this is a bad thing -- it makes it really hard to tell the difference between a generic and a child. Also, it feels like an ugly hack. I would like to change this, but don't want to cause any reaping disasters. If we change this, and go with the association list idea, then names would be handled more sensibly. For now, though, copying the name of the generic onto the child is actually what is necessary. Dred suggests that we retain the code that tries to grab any generic items from the old .mine list that still exist, and try to re-use them. There are a couple of reasons why I didn't put this into my proposed code: -- Firstly, there is the problem that the item might have been recycled and re-used, which the old code handled VERY badly. (In fact, one of the kobolds at one time insisted on stealing one of my database objects!) -- Secondly, what tends to happen is that a player kills a monster, takes some of the loot, and starts to trundle off to sell it. Before the player gets there, the monster births, and steals the item back! At the moment the only thing the player can do about this is to go around claiming everything in sight instantly upon killing a monster, which the players really hate! Perhaps some really clever code could help here, but it seems hard. I suspect that the cost of having some unnecessary objects made would be made up for by the fact that shopkeepers can start aggressively recycling things, and that the sweeps would catch most of the remaining items. Finally, Dred suggests that monsters could -- grab any unused old equipment -- if that fails, clone the used old equipment, -- if that fails, make new fresh stuff The thing here is that I really hate the cloning process, which tends to be very error-prone. What I think would happen here is that a monster would have its nicely customized equipment for a while, until it happened to get trashed at the wrong moment, and then after it will have a plain copy of the generic, which isn't what the GM wanted. I'm hoping to have a system whereby a GM can set a monster up, and then ignore it for a year and find thing exactly as they were set up to be. Anyway, those are the issues, and my take on them. In summary, this is what it seems like: -- right now, copying the name of the generic onto the children is necessary, but it seems like a good thing to change the way uniqueness is handled. -- making the generic_equipment list include an association list for customization purposes would be flexible, but at the moment nobody is making use of it. Is it going to be too hard for most GMs to manage? If we change the uniqueness code, being able to set the name of the child would be nice. -- cloning existing objects seems to me to be a really bad idea. -- grabbing old but unused things from the old .mine list seems to be hard to do properly, without really irritating people. Any suggestions? Thanks again for the input! -- Slither -------------------------- Message 815 on *RPG-News (#9551): Date: Tue May 30 12:57:51 1995 PDT From: Jamethiel (#91447) To: *RPG-News (#9551) and Dred (#49925) Subject: Bug found in old check_mine code The old check_mine() code was supposed to cause monsters to re-use any pieces of generic equipment that weren't being used elsewhere. Unfortunately, this code was never being called! This is because the set_mine code put every generic item on the .protected list, and anything on that list is automatically considered in use, and so wouldn't be picked up by the monster. *sigh* -- Slither -------------------------- Message 816 on *RPG-News (#9551): Date: Wed May 31 18:18:22 1995 PDT From: Jamethiel (#91447) To: *RPG-News (#9551) Subject: Automatic Conversion of monster's .mine lists I went through all of the monsters that haven't been converted yet to the new system, and converted them. The log of the results is on #66037. I then took the liberty of removing the exits and rooms from the equipment lists of the following monsters: #2805 (Large dark kobold) #72522 (Jeeves) #93561 (Annoying Little Kobold) #31945 (Balam) #5285 (Barrow Wraith) #28540 (Raf) #5027 (Aria) Of course, lots of monsters need to be fixed manually, and there are no records of what equipment they are supposed to have. -- Slither -------------------------- Message 817 on *RPG-News (#9551): Date: Thu Jun 1 13:08:18 1995 PDT From: Jamethiel (#91447) To: *RPG-News (#9551) Subject: New equipment code As you might have already noticed from *rpg-dev, I've installed the new equipment code on the generic monster. Since it didn't seem to do anything less well than the code that was in use before, there didn't seem to be any reason to hold off on it. Feel free to suggest improvements in it, and, of course, report any bugs! -- Slither -------------------------- Message 818 on *RPG-News (#9551): Date: Sun Jun 4 21:48:04 1995 PDT From: StarDancer (#82267) To: *RPG-News (#9551) Subject: Suggestion to fix t-b from #74:encumbrance #3669:has_callable_verb, line 6: Task ran out of ticks .. called from #74:encumbrance (this == #72053), line 3 .. called from #74:invite (this == #72053), line 8 .. called from #74:attack (this == #67379), line 74 Ta fix the above t-b I suggest makin #74:encumbrance -d an makin the followin changes: @prog #74:encumbrance ":encumbrance() -> Total encumbrance of this character. Usually [0..10]."; char = this.character; if (((info = char:encumbrance()) != E_VERBNF) && info[1].owner in $local.rpg.gms) return info; elseif (!(strength = this.str)) return 0; elseif (typeof(this.weight) == NUM) return this.weight / strength; else return (this.weight = $local.rpg:weight(char, this) + strength / 2) / strength; endif "Quinn 21-AUG-93 0706: Hacked to return character:encumbrance if exists and is owned by a GM."; "Profane 2/5/95 13:48EST - fixed use of `STR' as a variable name."; <-insert period here $object_utils:has_callable_verb(char, "encumbrance" takes 205 ticks, but (info = char:encumbrance()) != E_VERBNF 'd only take 3. That otta be 'nuff ta keep the verb from tickin out. -------------------------- Message 819 on *RPG-News (#9551): Date: Mon Jun 5 04:15:05 1995 PDT From: StarDancer (#82267) To: *RPG-News (#9551) Subject: Recycler burp I got the following traceback this morning when I birthed Monty: ecycler:_create() resuming... ecycler:_create() suspending... ecycler:_create() resuming... ecycler:_create() suspending... ecycler:_create() resuming... ecycler:_create() suspending... ecycler:_create() resuming... #149:E_PERM, line 2: Permission denied .. called from #149:raise, line 1 .. called from #4455:_recycle, line 5 .. called from #4489:_recycle, line 9 .. called from #4489:_create, line 23 .. called from #52766:create, line 6 .. called from #52766:request grab, line 13 .. called from #1871:duty, line 3 .. called from #259:birth (this == #1871), line 20 .. called from built-in function pass() .. called from #618:birth (this == #1871), line 7 (End of traceback) This *mite* be the burp that makes monsters lose stuff. ---Cori -------------------------- Message 820 on *RPG-News (#9551): Date: Mon Jun 5 07:41:16 1995 PDT From: Jamethiel (#91447) To: StarDancer (#82267) and *RPG-News (#9551) Subject: Re: Recycler burp The rpg-recycler failing is caused by grandmaster getting an object without a .object_size property. This prevents all building by G_M until the object is found and destroyed. I think the reason that this occasionally happens to G_M is because of a bug in $building_utils, which I've reported. -- Slither -------------------------- Message 821 on *RPG-News (#9551): Date: Tue Jun 6 08:01:39 1995 PDT From: Jamethiel (#91447) To: *RPG-News (#9551) Subject: Sweeping changes A while ago, the sweeping policy was being discussed, and the question of whether it should be changed to -- claimed objects shouldn't be swept, and -- objects carried by a RPG player shouldn't be swept The players have been asking for this, since they hate the micro-management of having to type additional commands to claim things constantly. I propose to implement this, and lower the limit on the number of things people can have claimed to compliment this. (And as a piece of information, there is a command on my GM FO "@hoarders" which shows how many people are keeping large amounts of stuff) Any opinions? -- Slither -------------------------- Message 822 on *RPG-News (#9551): Date: Wed Jun 7 09:00:41 1995 PDT From: Jamethiel (#91447) To: *RPG-News (#9551) Subject: Verb to help setting equipment There is a new command on my GM FO (#60425) @show-equip on This shows what equipment the monster is dutied with according to the .generic_equipment and .special_equipment lists. (Any equipment added by other, specialized verbs isn't shown, of course). The command also tells you if either of these lists looks wierd, just in case you make a mistake setting the lists, or an object gets recycled. Specifically, at the moment it will tell you if there's an invalid object on the lists, if a generic piece of equipment is neither fertile or grabbable, or if a specialized piece of equipment isn't an RPG object. Hope this is useful! -- Slither -------------------------- Message 823 on *RPG-News (#9551): Date: Sat Jun 10 08:15:34 1995 PDT From: Quisinart (#63546) To: *RPG-News (#9551) Subject: Things to think about... say First, there's a traceback: #259:make_generic_equipment (this == #4049), line 15: Type mismatch I'm pretty sure it has to do with the $recycler bug G_M is trying to compensate for, but I figured I'd point it out - its causing all the monsters to stay in the cemetary after rebirth. Secondly, it was pointed out ot me that my dwarves are attacking much more than they can be attacked. I'm sorry, but the :invite and related code has not worked for a year at least. (Though - I can understand why _ I can barely make heads or tails of it I was thinking, though - players have a limit on how often they can attack monsters (from .last_attacked_time) - I was wondering if it would be possible to add this to monsters in some way as well... Maybe it should only apply when :attack is called directly from some verb not exactly in the combat sequence (for example, my dwarves call it from :notify attack, though I have it limited that the verb can only be running one at a time...) Another problem with :invite... I was fighting Grak and hit him with slow spells - yet he still attacked me once for every time I attacked him. That should _not_ be happening, and is how I _know_ :invite and related verbs does not work. They don't seem to be taking slowness into account. I'll probably look into these problems a bit, but figured if anyone else was interested in looking into them, go ahead - can't hurt. Quis -------------------------- Message 824 on *RPG-News (#9551): Date: Sat Jun 10 08:30:03 1995 PDT From: Quisinart (#63546) To: *RPG-News (#9551) Subject: Birth problem Actually, G_M has another object with .object_size nonexistant... -------------------------- Message 825 on *RPG-News (#9551): Date: Sat Jun 10 08:33:55 1995 PDT From: Quisinart (#63546) To: *RPG-News (#9551) G_M -------------------------- Message 826 on *RPG-News (#9551): Date: Sat Jun 10 08:35:13 1995 PDT From: Quisinart (#63546) To: *RPG-News (#9551) and Grand_Master (#2693) Subject: birth problem #89427 has no .object_size property and is owned by G_M -------------------------- Message 827 on *RPG-News (#9551): Date: Sat Jun 10 12:50:14 1995 PDT From: Jamethiel (#91447) To: *RPG-News (#9551) and Quizno (#56054) Subject: Objects with no .object_size property I've modified rpg.recycler:_create so that it will automatically recycle any objects with no .object_size property, so in the future things won't have to remain broken until a G_M happens to notice. There is a definite bug in $building_utils:recreate, which results in these bad objects being created if a task runs out of ticks at the wrong moment. I've reported this, but it hasn't been fixed yet. Since the wizards usually are quite quick to respond to bug reports, probably there's some complications involved. I've put suspend_if_needed's in appropriate places in the rpg recycler's code, and this should help. The other question is, why are we getting so many of these bad objects now? I think this is because of shopkeepers and the improved sweeping/mine code. Before, almost everything that was sold in a shop was from a monster, and so was protected from sweeping. The shopkeepers then would toss everything into #-1. Now, they can recycle things, and so do (which is what should happen). Unfortunately, I can't read the code, but I would guess that shopkeepers never suspend_if_needed before recycling. This means that stuff is recycled by processes which are about to run out of ticks, and so trigger the bug in $building_utils. *sigh* -- Slither -------------------------- Message 828 on *RPG-News (#9551): Date: Tue Jun 13 07:55:54 1995 PDT From: Quisinart (#63546) To: *RPG-News (#9551) Subject: #79797.notify_attack_forkbomb Ok, anyone want to help me out with this? Bits sent me mail that this had forked off 166 tasks - I'd like to know exactly how it could do that. The code relevent to this question is lines 31-39 I have no problem fixing it - I just have no clue what could cause the problem. How exactly does the fork run once it has already forked? Doesn't the if in line 31 prevent that? The code in question is: 31: if (!$code_utils:task_valid(this.attack_task)) 32: fork(0) 33: this.attack_task = task_id(); 34: if (this.location == target.location) 35: doll:attack(target, doll:wielding()); 36: endif 37: this.attack_task = 0; 38: endfork 39: endif I assume the problem is because doll:attack forks each time ths is called? That's the only thing I can think of... maybe the verb should be :notify_aggression - but I've noticed that monsters don't attack unless you attack them (I think Slither's trying to figure out how to fix all that, but could be wrong ;) ) Any comments? :) Quis How big a problem would it be to add task-tracking code to the RPG? Seems like it would be a good idea, though possibly difficult... -------------------------- Message 829 on *RPG-News (#9551): Date: Tue Jun 13 08:11:33 1995 PDT From: StarDancer (#82267) To: Quisinart (#63546) and *RPG-News (#9551) Subject: Re: #79797.notify_attack_forkbomb I'm not sure how much help this is gonna be, but I notice that a *lot* a critters seem ta be callin verbs on your Generic Dwarf. You mite wanna keep a log a who/what's callin that verb a yours. I've noticed somethin similar with #1871:announce_death, as I'll get messages evry now an then 'bout somebody killin somethin that's nowhere *near* my Python. Hope that 'least gives ya someplace ta start. --->Cori -------------------------- Message 830 on *RPG-News (#9551): Date: Tue Jun 13 09:00:07 1995 PDT From: Jamethiel (#91447) To: Quisinart (#63546), *RPG-News (#9551), and Bits (#101609) Subject: Re: #79797.notify_attack_forkbomb (I am sending a copy of this message to Bits, in case they are interested. Thanks for your efforts!) The code in question is: 31: if (!$code_utils:task_valid(this.attack_task)) 32: fork(0) 33: this.attack_task = task_id(); .... 37: this.attack_task = 0; 38: endfork 39: endif The problem here is rather a subtle one, and one that's really hard to test for. What happens is that this.attack_task is tested in line 31, but is only set INSIDE the fork. So, when this verb is executed, it finds this.attack_task is invalid, and forks. Now, if the verb is executed again, before the forked task runs, then this.attack_task will still be invalid, and it will fork a second time. Oops! Normally this kind of problem is hard to observe, because forked tasks usually execute soon after they are created, so the window of opportunity is small. Unfortunately, Grandmaster sometimes gets really lagged (possibly because of this type of problem), which allows for the possibility of fork-bombing. The solution is to make sure that this.attack_task is set immediately upon forking, like follows: if (!$code_utils:task_valid(this.attack_task)) fork newtask (0) this.attack_task = 0; endfork this.attack_task = newtask; endif I'll start @grep-ing through the RPG, looking for similar problems. -- Slither -------------------------- Message 831 on *RPG-News (#9551): Date: Tue Jun 13 09:04:11 1995 PDT From: Dred (#49925) To: Quisinart (#63546) and *RPG-News (#9551) Subject: Re: #79797.notify_attack_forkbomb > I have no problem fixing it - I just have no clue what could cause > the problem. How exactly does the fork run once it has already > forked? Doesn't the if in line 31 prevent that? > The code in question is: > 31: if (!$code_utils:task_valid(this.attack_task)) > 32: fork(0) > 33: this.attack_task = task_id(); > 34: if (this.location == target.location) > 35: doll:attack(target, doll:wielding()); > 36: endif > 37: this.attack_task = 0; > 38: endfork > 39: endif Okay, the problem is this: if this verb is called many times, as is the case, but none of those forks manage to run due to lag, then `this.attack_task' is never set to task_id(). So the !$code_utils:task_valid will always be true until at least -one- of those who knows how many forks runs. The key to solving this is to remember that the code after the endfork is run -before- the fork. So what you do is this: if (!$code_utils:task_valid(this.attack_task)) fork tid (0) this.attack_task = 0; endfor this.attack_task = tid; endif That way, .attack_task is assuredly set immediately after the fork is created but before it runs. No matter when that fork eventually runs, no new ones will be created until it -does- run and sets .attack_task back to 0. Dred -------------------------- Message 832 on *RPG-News (#9551): Date: Wed Jun 14 12:16:28 1995 PDT From: Quisinart (#63546) To: *RPG-News (#9551) Subject: Giving monsters items It seems silly to be able to give a monster a couple of suits of armour to burden them so they are easy to fight. I'm looking at my Sparhawk monster and he's carrying three suits of chainmail, and some other items... Maybe someone shoulld look into (yes, I know - why don't I do it ;) I will, but won't have achance til this weekend... someone else may feel like it before) should look into modifying this so monsters can't be given objects once they've passed a certain encumbrance level (possibly limit the types of items as well - seems silly to give a monster a couple suits of chainmail.. not all of them will be dumb enough to carry them around... so maybe the determination could be based on intelligence as well as weight..) I'm rambling, so I'll stop... -------------------------- Message 833 on *RPG-News (#9551): Date: Wed Jun 14 12:22:34 1995 PDT From: Quisinart (#63546) To: *RPG-News (#9551) Subject: birth I also note that rebirthing a monster that was already alive grabbed additional items and equipped the monster with those, but didn't move the original ones to the cemetary or anywhere else - leading to my noticing the overloading in the first place... -------------------------- Message 834 on *RPG-News (#9551): Date: Wed Jun 14 14:24:26 1995 PDT From: Hahndo-Pakchi (#98723) To: Grand_Master (#2693) and *RPG-News (#9551) Subject: RE Combat and Grand_Master's queue While the following verb is wizard-owned, and should therefor place all tasks on the owner's queue, none the less, I reccommend the following changes: @prog #7680:tell2 if (typeof(set_task_perms(this.owner)) == ERR) return E_PERM; endif if (this.tell_forward != {}) for q in (this.tell_forward) q:tell($string_utils:pronoun_sub(this.echo_prefix_msg, this), @args); endfor endif if (this.listen_actions != {} || this.listen_actions != "") text = tostr(@args); for q in (this.listen_actions) if (y = $string_utils:match_string(text, q[1])) fork (0) comm = q[2][random(length(q[2]))]; if (typeof(y) == LIST) for w in (y) comm = strsub(comm, "%" + tostr(w in y), w); endfor endif this:do(comm, @q[3..length(q)]); return; endfork endif endfor endif "StarDancer Jun 14 14:17:17 1995 PDT -- added if statements to avoid processing empty lists/strings"; <-- insert period here This should speed up :tell processing on monsters. It may also be advisable to use a parent other than the generic puppet for the generic monster. >GB -------------------------- Message 835 on *RPG-News (#9551): Date: Thu Jun 15 08:43:43 1995 PDT From: Dred (#49925) To: Alikai (#98723), Grand_Master (#2693), and *RPG-News (#9551) Subject: Re: RE Combat and Grand_Master's queue > While the following verb is wizard-owned, and should therefor > place all tasks on the owner's queue, none the less, I reccommend > the following changes: > > @prog #7680:tell2 [...] > if (this.tell_forward != {}) > for q in (this.tell_forward) [...] > endfor > endif > if (this.listen_actions != {} || this.listen_actions != "") > text = tostr(@args); > for q in (this.listen_actions) [...] > endfor > endif > "StarDancer Jun 14 14:17:17 1995 PDT -- added if statements to > avoid processing empty lists/strings"; > <-- insert period here > > This should speed up :tell processing on monsters. It may also I don't think this is going to help any. In fact, it will add ticks. Consider this series of experiments: >;;d={}; for f in (d) me:tell("Test"); endfor => 0 [used 5 ticks, 0 seconds.] >;;d={}; if (d != {}) for f in (d) me:tell("test"); endfor endif => 0 [used 6 ticks, 0 seconds.] >;;d={1}; for f in (d) me:tell("Test"); endfor Test => 0 [used 165 ticks, 0 seconds.] >;;d={1}; if (d != {}) for f in (d) me:tell("test"); endfor endif test => 0 [used 167 ticks, 0 seconds.] Note that with that if statement in there, we're actually adding a tick if the list is empty, and two if it isn't. An extra tick or two isn't normally a big deal, but since the idea is to reduce ticks, I don't see any advantage to changing. Also considering that :tell needs to be as lean as possible. You just have to remember that the for-endfor construct acts exactly like an if-endif when the set to loop through is empty. Control just drops to the next statement after the endfor. > be > advisable to use a parent other than the generic puppet for the > generic monster. Maybe so, though I expect that we're so enmeshed with the generic puppet that to extract it from the hierarchy would leave us with a terrible mess. Dred -------------------------- Message 836 on *RPG-News (#9551): Date: Thu Jun 15 20:46:57 1995 PDT From: StarDancer (#82267) To: Grand_Master (#2693) and *RPG-News (#9551) Subject: New verb for handling damage on the Voodoo doll After messin 'round with difrent weapons an spells, I finely reelized that none a the damage verbs I know 'bout rilly do what I wannem to. Ta get the efx I want, all I need from a damage verb is ta know where the target got hit, an how bad. The rest I c'n do for myself. F'rinstance, now matter how much damage ya do with a firebolt, your target is *never* anythin but lightly toasted. IMO, a firebolt otta toast, singe, broil, or char the target. You c'd also get more intrestin efx with your stun messages too. @verb #74:"hit_result" this none this rx @prog #74:hit_result "(NUM dam, NUM pen, [OBJ whoby], [OBJ weapon])"; "returns 0 if there's no effect, or returns a list of the following values:"; "bad => a number from 0 (the attack bounced off this.character's armor) to 5 (he's dead, Jim)"; "place_name => a string indicating where this.character got hit."; "stun => 1 if this.character got stunned, 0 if not." if (!$local.rpg:trust()) return E_PERM; elseif (this.end <= 0) return 0; endif whoby = (la = length(args)) > 2 ? args[3] | $nothing; weapon = la > 3 ? args[4] | $nothing; dam = args[1]; me = this.character; pen = args[2]; bad = 0; stun = 0; shock = #19835; if (dam <= 0) return 0; endif "...hacked to use hit_location_names 11-MAR-93 quinn..."; places = this:hit_location_names(); loc = {1, 2, 2, 3, 3, 4, 5, 6, 6, 7, 7}[random(11)]; place_name = places[loc]; "Quinn 11-AUG-93 0958: Hacked to send attacked and weapon to :armour."; dam = (dam - this:armour(pen, loc, whoby, weapon, dam)) / this.size; if (dam <= 0) return {bad, place_name, stun}; endif this.inj = this.inj + dam; if (!(bad = 2 * dam / this.end)) bad = 1; elseif (bad == 1) bad = 2; elseif (bad < 4) bad = 3; else bad = 4; endif try = $local.rpg:resolve(me, shock, -{0, 10, 0, 20, 20, 20, 20}[loc]); if (try > -2 * this.end) return {bad, place_name, stun}; elseif (try > -4 * this.end - {20, 40, 50, 80, 80, 55, 55}[loc]) this.act = this.act - 20; if (this.act < -20) this.act = -20; endif stun = 1; return {bad, place_name, stun}; else bad = 5; this:die(whoby); return {bad, place_name, stun}; endif "This verb is intended to eventually replace :receive_damage_passed_messages."; "As is, the aforementioned verb does not properly handle lightning or firebolts,"; "strangulation, (as in 'fangs and crushing coils', object #906) cones of frost,"; "(remember the wyverns?) or any other situation where one wishes to indicate"; " severity and/or a stun result in an unconventional manner."; <- insert period here I don like usin a hard-coded # inna verb, but I can't think a a way ta fix it, so I set a variable so's people who gotta read the verb 'll know what #19835's s'posed ta be. Anyway you sh'd know where ta send comments etc. 8} --->Cori -------------------------- Message 837 on *RPG-News (#9551): Date: Fri Jun 16 06:53:33 1995 PDT From: Quisinart (#63546) To: *RPG-News (#9551) Subject: re: :receive_damage_passed_messages This verb displays messages based on the current injury level of the target - it most certainly display more than just that the target was lightly toasted from a firebolt - I've seen every message displayed. You seem to be asking for it to be changed to display a message dependant on the amount of damage the attack does - but this will be misleading to people. For example, say I can take twice asmuch damage as someone else before dying. If a firebolt hits the other person, they may be stuned by the bolt - but ifI get hit by one of the sam damage, it was the equivalent of half the power - doesn't make sense for me to be stunned for whatever reason (maybe I'm twice as big) - I should just be lightly toasted. The verb does handle the attacks you mention, just in a different way than I think you expect. I also notice your change doesn't display the messages - this is a bad thing, since quite a few attacks (and special attacks/ways to receive damage) would need to be modified... Maybe suggesting a new :receive_damage_??? verb instead to do what you Quis -------------------------- Message 838 on *RPG-News (#9551): Date: Sun Jun 18 08:57:35 1995 PDT From: Jamethiel (#91447) To: *RPG-News (#9551) and *RPG-Stuph (#21259) Subject: Sweeping won't affect stuff one is carrying Due to popular demand, object sweeping has been modified so that objects that one is carrying (or which are in something that one is carrying) won't be swept. In other words, things won't be swept if they are claimed, or if they are being carried by a player. So, you needn't worry about armor that you are wearing vanishing, etc. To compensate, the number of claims that one can have is being lowered -- initially to 21. This is being done nicely -- if you are over the new limit you just won't be able to claim anything more, nothing will be taken. There are only a few people who this'll affect. Thanks to all of those who made suggestions! -- Jamethiel -------------------------- Message 839 on *RPG-News (#9551): Date: Thu Jun 22 13:22:23 1995 PDT From: Jamethiel (#91447) To: *RPG-News (#9551) Subject: Change in uniqueness One little known fact about the RPG is that any RPG item whose name differs from its parent's name is considered to be unique, which means it will never be reaped. Thus, for instance, object #77814 is a leather jacket which is named "longbow" (don't ask me why), and will hang around forever. I don't see any reason that all objects which a different name from their parent should be considered unique, and can think of several reasons why it shouldn't be so. (For one thing, it is certainly un-intuitive!) Therefore, I propose to change this. A new version of $local.rpg.vacuum:unique is :unique(new). Any dissenting voices? Since I don't know why this was done in the first place, I want to be careful. For informational purposes, a list of the 67 items which were unique under the old system, and wouldn't be under the new is on note #86203. The note lists each such object, and its parent. Notice that these objects won't be swept if the change were made -- they would just be eligible to be swept if they weren't on a monster or player, or claimed, etc. Thanks! -- Slither -------------------------- Message 840 on *RPG-News (#9551): Date: Thu Jun 22 19:46:28 1995 PDT From: Slither (#86740) To: *RPG-News (#9551) Subject: Change in *rpg-news This newsgroup is now usable by Grandmasters. (So if you want to talk about grandmasters behind their backs, don't do it here. *grin*) -- Slither -------------------------- Message 841 on *RPG-News (#9551): Date: Thu Jun 22 19:56:06 1995 PDT From: Slither (#86740) To: *RPG-News (#9551) and *rpg-development (#20779) Subject: Changes to Secure Exits, Generic Dispensors, and the Initiation Room New property: $local.rpg.exit This has the value of the "Secure Exit". The Secure Exit's :move verb has been changed to be really secure -- now it does not allow anything to use it which isn't in its source. #1387.unique has been set to 1 -- this makes all dispensers unique. The initiation room has been made Bits-proof. Before, it assumed that anyone who wasn't female was male. Now, it handles other genders reasonably politely. -- Slither -------------------------- Message 842 on *RPG-News (#9551): Date: Fri Jun 23 20:45:12 1995 PDT From: Quisinart (#63546) To: *RPG-News (#9551) Subject: Full plate armour Its strange how Full plate offers so much better protection to players, doesn't degrade, and weighs _less_ that platemail. WTF? (Also much more popular... where are they all getting it?) -------------------------- Message 843 on *RPG-News (#9551): Date: Sat Jun 24 10:57:43 1995 PDT From: Slither (#86740) To: *RPG-News (#9551) Subject: Re: Full plate armour I think the Full Plate Armour is coming from the Wizard's Ghost -- could be wrong, though. -- Slither -------------------------- Message 844 on *RPG-News (#9551): Date: Sun Jun 25 12:15:37 1995 PDT From: Jamethiel (#91447) To: *RPG-News (#9551) Subject: Secure exits, re-visited As I've said in previous messages, I've been working on making the RPG's secure exit really secure. Before, it would let players use the exit if the exit's SOURCE would allow the player to move there! This allowed players to use these exits to teleport out of an RPG area without any insanity penalty. The natural problem, of course, is whether or not other RPG code depends upon the "Secure Exit" not being very secure. Unfortunately, there is some such code. The Skill Based Router (#566) decides to move players through one of two exits, depending upon the result of a skill check. Unfortunately, some of the exits used this way have non-sense .source properties, which broke the modified Secure Exit. So, right now I've made an exception in $local.rpg.exit:move to allow such uses of #566 by. This, however, is rather ugly, and it would be better if the .source property of the exit would point to the location that the player is in, if possible. It would be nice if the owners of these exits could change the .source property. Also, if you know of anything that depends upon insecure Secure Exits, let me know! -- Slither -------------------------- Message 845 on *RPG-News (#9551): Date: Sun Jun 25 12:29:39 1995 PDT From: Frobno (#49397) To: *RPG-News (#9551) Subject: skill-based routers I agree completely with the concerns Slither raised about skill-based routers. The problem I've had with them is that the bad values in the .source and .dest props make the mapping scheme my monster class uses break. "You know, that gives me a related notion. Would it be feasible to have a comprehensive, regularly updated database of all "official" RPG rooms..perhaps with a zonal subsystem. I don't just mean a list of all kids of $local.rpg.dungeon, but a db that represents areas which are in regular use and connect in a meaningful way. If the RPG is a virtual Delos, knowing where people and things are based on zones and rooms could be very useful. --Frobno -------------------------- Message 846 on *RPG-News (#9551): Date: Mon Jun 26 06:49:17 1995 PDT From: Grand_Master (#2693) To: Isagi (#21077) and *RPG-News (#9551) Subject: problem Isagi's Voodoo Doll (#77370) is currently storing about a meg of statistical info in its .misc_notes property. The length of the property is only 4, but at least one list is really huge, making this the 5th biggest object in LambdaMOO. The property and quota used is Grand_Master's. Isagi last connected 2 months ago. In principle, I would like to mail the contents of this property to Isagi before clearing it, but I'm unwilling to send a meg of junk through LambdaMOO's mail system. Also, I assume Isagi has a background task running that will call :write_misc_note if left unchecked. Therefore, I intend to clear this property without notice very soon and deny Isagi write permission. --------- Miles -------------------------- Message 847 on *RPG-News (#9551): Date: Mon Jun 26 18:16:23 1995 PDT From: StarDancer (#82267) To: Grand_Master (#2693), Isagi (#21077), and *RPG-News (#9551) Subject: Re: problem Isagi hasn logged on 'cause 'bout 2 months ago Dred changed his password. I'm not 'bout ta make any comment on Dred's actions, but as far as I know Isagi hasn been able ta connect when Dred's on-line, and Isagi told me via E-mail that Dred hasn replied ta any of Isagi's E-mail. I rilly dunno if I otta get involved or not, 'cause I dunno a lot 'bout what led up ta Isagi losin access ta LambdaMOO. An tho Isagi *is* a friend a mine I dunno what, if any, action I should take. --->Cori -------------------------- Message 848 on *RPG-News (#9551): Date: Mon Jun 26 19:55:28 1995 PDT From: Slither (#86740) To: Frobno (#49397) and *RPG-News (#9551) Subject: Database of rpg rooms Frobno suggested creating a database of RPG rooms, keeping track of areas which are in use, and their connections, etc. It seems to me that it wouldn't be too hard to get a reasonable map of RPG rooms by starting at a few public rooms, and following exits to get to other rooms. You most definately don't want to give away any puzzles, but if you start with only public rooms, and use $no_one:call_verb to call each rooms :obvious_exits() verb, and allow GMs to keep certain places unlisted, I don't see any problems. Keeping track of the amount of use each room gets would be harder. Modifying the generic RPG room to do it would be annoying. Maybe @rpg could be modified so it updates the usage stats when it is called? *shrug* What other data would you like to be kept? -- Slither -------------------------- Message 849 on *RPG-News (#9551): Date: Mon Jun 26 21:59:39 1995 PDT From: Miles (#50636) To: *RPG-News (#9551) and *Wizard-List (#6428) Subject: Isagi Isagi is a fine programmer; his code even has a touch of brilliance about it. I would like to remain hopeful that whatever problems he is currently experiencing can be resolved. -------------------------- Message 850 on *RPG-News (#9551): Date: Tue Jun 27 11:02:05 1995 PDT From: StarDancer (#82267) To: *RPG-News (#9551) Subject: Missile Weapons Anyway, I'd like ta fix the missile-weapons so's they need ammo an work somethin like their RL counter-parts. Quinn's gotta generic ammo objec, which I think I'll use, or maybe I otta make a couple kids a #52018. The player's also gonna need a quiver, 'cause a bundle a arrows 'll have ta be onna ground or inna quiver, for reasons I won go inta here. The other change I wanna make is ta not 'low an X-Bow ta be re-loaded while a player's in combat. OTOH, it'd pack a *lot* more punch. So I'd like *some* kinda feedback, an I *do* wanna mention that arrows & crossbow bolts sh'd *only* be 'vailable from shopkeepers --->Cori -------------------------- Message 851 on *RPG-News (#9551): Date: Tue Jun 27 11:28:53 1995 PDT From: StarDancer (#82267) To: *RPG-News (#9551) Subject: RE: Missile Weapons I was lookin 'round, an found that Quinn has *already* made a better missile weapon. I dunno why he hasn gotten 'round ta puttin it inta use, 'cause it looks *rilly* good ta me. --->Cori -------------------------- Message 852 on *RPG-News (#9551): Date: Tue Jun 27 15:21:06 1995 PDT From: Frobno (#49397) To: *RPG-News (#9551) Subject: mapping/rooms db I had in mind some sort of centralized way of putting all actively-used RPG rooms that comprise the RPG "world" in a db. Clusters of related rooms could be placed in a higher-level container representing a "zone." This would provide GMs with a tool to determine where players or objects are within the RPG world, and make doing room and zone-dependent events more unified. Like, for instance, local weather patterns..magic effects..areas that are the "lair" of certain creatures, and so forth. In MOOs that are organized to be zone-oriented from the ground up, the room objects are actually INSIDE zone objects rather than being within $nothing, but we don't have that luxury here. My Soma monster class uses a rudimentary map object I created so it can walk around from place to place, but I think having a central object..say $local.rpg.world or something, would be better. We'd have to make something so that when GMs have a set of rooms completed and want to link them in, they can do so easily. Also, the RPG clock might have a program check the integrity of the rooms/exits every so often. OR, here's another idea..make a generic $zone class that can only be created by GMs, and have them put whatever rooms they consider one "unit" into them..then have some basic verb tools available for GMs to access data. --Frobno *sigh* I actually made a zone class many many months ago, but deleted it when I switched my mapping scheme. Oh, well, I suppose I could make it again... -------------------------- Message 853 on *RPG-News (#9551): Date: Wed Jun 28 06:17:27 1995 PDT From: abstract (#94368) To: *RPG-News (#9551) Subject: Monsters living in the cemetary... About that problem, I (think I) have found a way to stop them from staying there... if monsters are detected as living in the cemetary, the cemetary should have a verb which will rrun 'birth' on the monsters, moving them back to where they should be. (ie It moves the living dead back to where they should be living) About Ashler having a claimed RPG object not on the doll's list... well, I can't figure that one out... abstract -------------------------- Message 854 on *RPG-News (#9551): Date: Wed Jun 28 18:50:30 1995 PDT From: Slither (#86740) To: abstract (#94368) and *RPG-News (#9551) Subject: Re: Monsters living in the cemetary... Alas, the way monsters manage to become living but residing in the cemetery is because the ressurection process ran birth on them, but the birth failed halfway. So, calling birth a second time on the monster probably won't do anything more. (And we really should fix whatever it is that's causing the problem in the first place!) Oh, well.... -- Slither -------------------------- Message 855 on *RPG-News (#9551): Date: Wed Jun 28 21:19:46 1995 PDT From: Quisinart (#63546) To: *RPG-News (#9551) Subject: Re: Monsters living in the cemetary... I've been able to birth the monsters when they're alive and still in the cemetary - when I check their location they are where they're supposed to be... Or could this be because forked tasks have less ticks o work with than those run from the command line? (Is this true? I thought it was...) -------------------------- Message 856 on *RPG-News (#9551): Date: Wed Jun 28 21:48:25 1995 PDT From: Slither (#86740) To: Quisinart (#63546) and *RPG-News (#9551) Subject: Re: Monsters living in the cemetary... Yeah, forked tasks have less ticks, which could be why that happens. Certainly is odd, though! (I've seen the same thing with that silly goblin) -- Slither -------------------------- Message 857 on *RPG-News (#9551): Date: Sun Jul 2 18:47:26 1995 PDT From: StarDancer (#82267) To: *RPG-News (#9551) Subject: Some random thoughts/ideas On Tue Jun 27, Frobno wrote > I had in mind some sort of centralized way of putting all > actively-used RPG rooms that comprise the RPG "world" in a > db. Clusters of related rooms could be > placed in a higher-level container representing a "zone." This > would provide GMs with a tool to determine where players or > objects are within the RPG world, > and make doing room and zone-dependent events more unified. We've all had folx askin us how do ya get ta be a GM, an I thot % Activity in world LambdaMOO we otta try givin these folx somethin ta do ta show that they're rilly intrested in makin stuff an not jus the power, so 1 job we c'd give a would-be GM is collectin the info Frob mentioned an makin a map, or even a set a maps. > Like, for instance, local weather patterns.. I've made a copy a Archer's Weather room, and I'm gonna be linkin it to my pirate Area, so's alla rooms in that area 're gonna have the same weather. Archer's due ta be reaped soon, so's anybody intrested in takin it over? It's gotta few bugs, but'd be rilly good for settin up weather patterns. Rite now I don have the quota or the time ta take it over. 'Nother prollem we got is dox. There *rilly* isn much 'vailable, s'pecially for Ahabs, or regexps. Players 're sorta used ta goin on quests so's havin a would-be GM write a book on what alla stuff does an how ta use it'd be *rilly* nice ta have. As for security vs whatever, I *would* like ta remind the rest a you that Miles nominated me for GM 'cause a my project to make squats grab their owner's stuff if/when they got killed. I hadda scrap that projec 'cause I didn have enuff quota, an I wannit ta get on with my Kraken project (which I didn have enuff quota for either.) Anyway, enuff babbling. 8} --->Cori -------------------------- Message 858 on *RPG-News (#9551): Date: Sun Jul 2 20:58:42 1995 PDT From: StarDancer (#82267) To: *RPG-News (#9551) Subject: A progress report, sort of... If any a you are intrested, you are welcome ta visit the pirate area which my 2nd char, Alikai owns. It's *far* from complete, but any ideas or suggestions 'd be welcome. I'd prefer that ideas or suggestions be backed by actul code, and/or lists a possible msgs... Rooms: Bloody Stump Tavern #47775 Most a the work here's been done on Patch, Bull, an the Parrot, (you can't kill the Cockatoo, but you *can* kill the Parrot ) Pirate's Cove #52041 Fixed the :swim verb, but a lot of the places this room used to connect to are missing. Lost Sea #2775 Removed redundant verbiage, time of day messages are working, but weather isn't, ...yet. Lost Undersea #37304 Is now parent to Lost sea, streamlined direction verbs, move forked tasks to :pulse() verb. King's Galleon #64127 Un-messed with so far. Galley #36185 See above. Gaming Hall #66017 Formerly Carved hall, now contains a (working) target board, an a non-working Pool-table. Sunken Ship #66744 see King's Galleon Common Room #22482 see King's Galleon Light House #16379 Here to replace the original Light House which is now gone. Needs *mucho* work. Intresting objecs: Target Board #65730 Mosta the code taken from Og's archery target, but I've addit a few tweaks here an there... Generic RPG Ring #50421 This is all verbs @copied by Dalf from generic middle-earth jewelry by meteor (#45743) this and all it's kids (ring of Water-Breathing, Spell-Storing, Protection) seem ta be mosly @copied verbs. can't *quite* bring myself ta trash 'em, but if anybody else wants 'em... Aquarium #17765 I suggest goin ta The Drawing Room (#56651), an seeing it for yourself... If anybody's intrested inna tour, please lemme know... --->Cori -------------------------- Message 859 on *RPG-News (#9551): Date: Sun Jul 2 21:31:01 1995 PDT From: StarDancer (#82267) To: Grand_Master (#2693) and *RPG-News (#9551) Subject: Suggestion for Generic money object I keep hearin complaints 'bout how confusin money is ta deal with, (*I* 'plained 'bout it a long time back.) an here's what I did with my Aquarium: #17765:examine_verbs this none this 1: what = dobjstr; 2: vrbs = {}; 3: for vrby in (this.obvious_verbs) 4: vrbs = {@vrbs, $string_utils:substitute(vrby, {{"%", what}})}; 5: endfor 6: return {"Obvious verbs:", @vrbs}; #17765.obvious_verbs => {" feed in %", " stare at %"} For obvious reasons I suggest puttin the list on $local.rpg, 'cause we got *lots* a money objs out there, so the verb'd look like this: @prop #46.money_verbs {" g*et/t*ake/getsome from %", " g*et/t*ake/getall %", " d*rop/th*row/dropsome from %", " d*rop/th*row/dropall %", " gi*ve/ha*nd/handsome from %"} ;#46.money_verbs = {@#46.money_verbs, " gi*ve/ha*nd/handall % to ", " gi*ve/ha*nd % to ", " g*et/t*ake %", " claim %", " unclaim %", " d*rop/th*row %", " help %"} @verb #5700:examine_verbs tnt rx @prog #5700:examine_verbs what = dobjstr; vrbs = {}; for vrby in ($local.rpg.money_verbs) vrbs = {@vrbs, $string_utils:substitute(vrby, {{"%", what}})}; endfor return {"Obvious verbs:", @vrbs}; -------------------------- Message 860 on *RPG-News (#9551): Date: Mon Jul 3 01:00:41 1995 PDT From: Frobno (#49397) To: *RPG-News (#9551) Subject: of maps and zones... My basic idea for a zone system is like this: A zone object is a container (actually, a kid of $room ), into which other room objects are placed instead of going to $nothing. Exits will continue to go to $nothing, however. Additionally, a zone object will be nestable, so you may define sub-zones or super-zones as you please. Each GM wishing to make an area would create a zone, then put the appropriate, related rooms into it. These could then be placed into the all-encompassing RPG zone controlled by G_M. All of this provides several benefits. Things like magic forests with special healing properties not found in other places are easily done. Moving weather patterns might be created. Mystical places where magic might operate differently would be a snap. Why, you may ask, should a zone be a kid of $room? The answer is that we can also create a special class of exits to represent inter-zonal travel. Such exits would be the framework of the topology. --Frobno -------------------------- Message 861 on *RPG-News (#9551): Date: Tue Jul 11 18:09:49 1995 PDT From: Slither (#86740) To: *RPG-News (#9551) Subject: Apology for being quiet Sorry, folks, for not responding quickly to some of the recent discussions of things like zones -- my thesis defense is on the 21st, so expect me to be more brain-damaged than usual for the next two weeks! -- Slither -------------------------- Message 862 on *RPG-News (#9551): Date: Wed Jul 12 07:35:28 1995 PDT From: Grand_Master (#2693) To: *RPG-News (#9551) Subject: [Profane (#30788): Taking over some of my stuff] Date: Wed Jul 12 07:31:17 1995 PDT From: Profane (#30788) To: *rpg-development (#20779) Subject: Taking over some of my stuff Hey, since I have access only once in a blue moon, and it seems my MOOfu stuff is quite broken, would anyone care to take it over and maintain/fix it? Free quota to cover the objects included. I'll forward all my mail about the problems to ya. Hopefully it won't be too difficutl to decipher my code. Please MOOmial response, I'll get back to you when I can. -Profi -------------------------- Message 863 on *RPG-News (#9551): Date: Sun Jul 16 16:34:31 1995 PDT From: Moriah (#50459) To: *RPG-News (#9551) Subject: shopkeepers, destroy, and suspending >Now, they can recycle >things, and so do (which is what should happen). Unfortunately, I >can't read the code, but I would guess that shopkeepers never >suspend_if_needed before recycling. This means that stuff is recycled by >processes which are about to run out of ticks, and so trigger the bug >in $building_utils. *sigh* > > -- Slither -------------------------- Err...... it does Slither.. it calls this:s_i_n(); just before it calls this.dispenser:destroy(); Back when I was writing the shopkeeper, Quinn suggested (rather strongly) that I keep the destroy verb !r for safety reasons. So I have. I guess you'll just have to take my word for it, Or get a wiz to check it for you .. -M Ps. s_i_n() is my own suspend_if_needed verb that is a bit more rigorous than the commonly used version. -------------------------- Message 864 on *RPG-News (#9551): Date: Sun Jul 16 16:56:19 1995 PDT From: Slither (#86740) To: *RPG-News (#9551) and Moriah (#50459) Subject: shopkeepers, destroy, and suspending *nod* I wrote that a long time ago, when you had not logged onto the MOO for a long time. Remember, I talked to you about it when you did log in that time? -- Slither -------------------------- Message 865 on *RPG-News (#9551): Date: Sun Jul 23 13:14:56 1995 PDT From: Quinn (#19845) To: *RPG-News (#9551) Subject: New @set-mine Hacked a new #5011:@set-mine that knows about the new equipment stuff. -------------------------- Message 866 on *RPG-News (#9551): Date: Sun Jul 30 15:38:24 1995 PDT From: anj (#59447) To: *RPG-News (#9551) Subject: two things. i'll chase dred around to find out what's going on with isage, though i think it may have had something to do with his rl brother abusing izzy's gm perms. 2. @peek 110 on *rs. -------------------------- Message 867 on *RPG-News (#9551): Date: Mon Jul 31 15:10:49 1995 PDT From: Slither (#86740) To: *RPG-News (#9551) Subject: Automatically reaping unused dolls One of my long-term goals is to make the RPG run as automatically as possible. This will not only make less work for the G_Ms, but keep things from self-destructing if no G_Ms happen to be around for awhile. One of the things that currently is being done manually is destroying the dolls of players that haven't RPGed in a long time. This has to be done at some point, since each RPG player uses up objects (all the RPG things that they claim, hold, etc), and we don't want the RPG to eat up quota. Right now, theres a command that allows a grandmaster to reap all the dolls of players who haven't RPGed in 3 months, and its done whenever it seems appropriate. Instead, I propose the following: -- remind all the players that if they haven't RPGed in a long time (4 months?) that their dolls will be reaped unless they let a GM know that they are on vacation or something and their stuff should be kept -- make a FO command that would let GMs protect a player from having their doll destroyed for a time -- automatically have the sweep remove dolls that haven't been used for 5 months -- in September, when students are back at school, remind everyone again, and set the sweep to remove dolls that have been idle 4 months How does this sound to everyone? -- Slither (a.k.a. Snare-of-Souls) -------------------------- Message 868 on *RPG-News (#9551): Date: Thu Aug 10 20:12:41 1995 PDT From: abstract (#94368) To: *RPG-News (#9551) Subject: Poltergiests Okay, my idea is to have poltergiests running around and messing things up... and maybe even putting them back to normal. I'd get them to break things, move money around and the like. That way I can get the ghost equiptment working again.. etc. Any comments on what I'm about to do? abstract -------------------------- Message 869 on *RPG-News (#9551): Date: Fri Aug 11 14:18:10 1995 PDT From: anj (#59447) To: *RPG-News (#9551) Subject: poltergeists and the ghost equipment. i presume by ghost equpment, you're talking about ghostbusters? if so, how are you going to get the stuff working if it's owned by someone else? specifically, john constantine. he's still around. maybe if you write hwith what you plan to do he'll @offer stuff to you. i think you'd have to have it pretty well planned out, though. -------------------------- Message 870 on *RPG-News (#9551): Date: Fri Aug 11 19:42:12 1995 PDT From: abstract (#94368) To: *RPG-News (#9551) Well... J_C's stuff isn't finished yet... it may be easier to start from scratch... maybe I'll get the rooms from J_C.. but the equiptment's not done... probably easier to start from scratch. -------------------------- Message 871 on *RPG-News (#9551): Date: Fri Aug 11 20:43:12 1995 PDT From: abstract (#94368) To: *RPG-News (#9551) Someone been dropping money or something? Daniel_M says there was an error... and he's ended up with a TON of money... -------------------------- Message 872 on *RPG-News (#9551): Date: Fri Aug 11 20:45:19 1995 PDT From: abstract (#94368) To: *RPG-News (#9551) oops..forgot to include how much he's got... 24484851 coppers. Says it just appeared... -------------------------- Message 873 on *RPG-News (#9551): Date: Sat Aug 12 14:40:52 1995 PDT From: Slither (#86740) To: *RPG-News (#9551) Subject: Ghostbusters, money, etc Hmmm....John Constantine's Ghostbuster's area had all the equipment made up at one point -- I remember having great fun chasing ghosts through the mansion and trapping 'em. I, at least, would really like to see it back! I haven't heard anything about money magically appearing -- any information that anyone has would be appreciated! -- Slither -------------------------- Message 874 on *RPG-News (#9551): Date: Sat Aug 12 19:43:20 1995 PDT From: Slither (#86740) To: *RPG-News (#9551) Subject: Protecting players from being reaped As discussed earlier, I want to automate the destroying of the dolls of people who haven't RPGed in a long time. Since nobody objected, I went ahead and implemented a database of people who should be made immune from this reaping (people who are on vacation or some such). The verbs that do this are described in article 200 on *rpg-dev. Since I'm sure nobody wants to use them directly, I made a less hostile interface on my GM FO (#60425). The commands are the following: @rpg-reap-protect for -- Protects the player "pc" for not less than "months" months. It'll ask for a line of input, in case there is something special you wish to explain about it. @unrpg-reap-protect -- removes the protection for the player @show-rpg-reap-protected [pc] -- If no argument is given, shows every player who is protected from reaping, how long they are protected for, and how long they haven't been RPGing for. If a player is given, shows info just for that player, and any notes, etc, that were given about the protection. Yeah, I know, the command names are long. I couldn't think of shorter names that were unambigous. As usual, comments are welcome! If there are no concerns, I'll remind players that they should tell a GM if they're going to be away for a long time and want their character saved, give people time to tell us about it, and then start clearing all those dolls who have been sitting there unused for a very very long time. -- Slither -------------------------- Message 875 on *RPG-News (#9551): Date: Sat Aug 12 22:25:24 1995 PDT From: StarDancer (#82267) To: Slither (#86740) and *RPG-News (#9551) Subject: Re: Protecting players from being reaped What 'bout usin a * or maybe a short alias onna verbs? Tho it prolly isn rilly needit 'cause I don think anybody'll be usin 'em a lot. --->Cori -------------------------- Message 876 on *RPG-News (#9551): Date: Sun Aug 13 22:17:10 1995 PDT From: abstract (#94368) To: *RPG-News (#9551) Subject: Re: Protecting players from being reaped > @rpg-reap-protect for Anything wrong with @rrp as a shorter alias? > @unrpg-reap-protect @urp ? > @show-rpg-reap-protected [pc] @srrp ? I dunno... call me too lazy to type it all out :) abstract -------------------------- Message 877 on *RPG-News (#9551): Date: Sun Aug 13 23:40:53 1995 PDT From: StarDancer (#82267) To: abstract (#94368) and *RPG-News (#9551) Subject: Re: Protecting players from being reaped >> @unrpg-reap-protect > @urp ? Umm, I think we *rilly* otta come up with 'nother more 'propriate verb for @urp , too bad our monsters don eat or anythin. --->Cori -------------------------- Message 878 on *RPG-News (#9551): Date: Wed Aug 16 09:20:19 1995 PDT From: Bleys (#49925) To: *RPG-News (#9551) Subject: This is ridiculous So I've gotten bitten by the RPG but lately, and have been having fun trying to get Ghrask (great opponent, Frobno!) ever since he teleported in and started attacking me. No complaints. I think this is way cool. However, I can't go more than a few minutes without having mongo traceback spewed at me. I know I'm not alone. Lots of people have complained about this. So I've been studying this traceback. There are two types: Task ran out of ticks and Too many verb calls. In either traceback, I can look through and see one really big problem: invite and act. They get called entirely too many times. I attack, my doll calls :attack, which calls the opponent doll's :invite and :act, which calls that doll's :hit_aggressor, then :attack, and then AGAIN, my doll's :invite, then :act, then :hit_aggressor, then :attack and then AGAIN my opponent doll's :invite, :act, and so on and so on. When does it end? I admit, I haven't traced through the code, just looked at the traceback. And then there are spells and storm blastfork's traceback which are just as long, and still calling :invite and :act. And I'll bet you lots of money that those two verbs are entirely too tick costly on top of the fact that they are the single most called verbs in the RPG. This really needs to be looked into. I suggest a single :attack, :invite, and :act sequence for each opponent on any command line call such as a strike with a weapon, a spellcasting, movement, etc. This is off the top of my head... I suppose some monsters have multiple attacks, and should have them, but that can be handled on their single :act call. It shouldn't be calling :invites all the time. Dred/Bleys -------------------------- Message 879 on *RPG-News (#9551): Date: Wed Aug 16 20:06:40 1995 PDT From: Slither (#86740) To: Dred (#49925) and *RPG-News (#9551) Subject: Re: This is ridiculous *nod* I agree with Dred/Bleys. Remember when you'd type "hit ", and only one round of combat would occur, instead of now, when you get a whole series of attacks? I think that's the same problem as what Dred noticed, and last time I looked through the code, I concluded that the problem was probably due to the code suspending too often. What happens, I think, is that it suspends and then when it wakes up gets confused, and starts a whole flurry of attacks. Another problem is that the combat sequence involves a lot of communication between different objects, and a bunch of things end up being re-computed by different objects. If I could, I'd make it so that for each combat just one object was in charge of deciding whose turn it is to attack. Of course, it is hard to tell how many changes are possible without breaking all of the existing RPG code. I'm going on a trip next week, and will take with me printouts of the combat code to read on the plane. I'll see what I can come up with. -- Slither -------------------------- Message 880 on *RPG-News (#9551): Date: Thu Aug 17 06:53:50 1995 PDT From: Quisinart (#63546) To: *RPG-News (#9551) Subject: Silly spell idea Ok, I had an idea for a silly spell, but figured I'd mention it anyway - maybe someone will like it enough t oimplement it, or will htink of a better idea from it :) Basically, the spell would be 'flirt' - i.e. 'flirt with flug'. I'm still debating whether it should only work on creatures of a different gender, or not - but it seems it could be quite funny if it worked on the same gender too... Of course, the characters' genders would affect the power of the spell, and so probably would appearance... The result would be dependant on success or failure. On success, it would be similar to the ghouls' paralysis plus pacify - the creature would sheathe their weapons and be unable to attack for a while. On a failure, but not a terrible failure (maybe a slight success -> slight failure range) nothing would happen. On a terrible failure (came up with the worst pick-up line of the decade) the target could fall over laughing and be unable to attack, _or_ the target could get a free attack (slap) at the caster. What do people think? :) Quisinart -------------------------- Message 881 on *RPG-News (#9551): Date: Thu Aug 17 08:11:28 1995 PDT From: StarDancer (#82267) To: Quisinart (#63546) and *RPG-News (#9551) Subject: Re: Silly spell idea I *love* it! The code part's easy enuff, but you got any more ideas for the sfx, Quis? --->Cori -------------------------- Message 882 on *RPG-News (#9551): Date: Fri Aug 18 02:36:45 1995 PDT From: abstract (#94368) To: *RPG-News (#9551) Subject: Multiple calling of :act() Actually.. I'm not sure but I believe once you attack, the monster will also call eir :act() verb. When one fights a monster, they will defend and fight back When they attack you, you defend and may fight back... That's the reason for the multiple verb calls, without them, the RPG gets unrealistic cuz you don't fight with each other, only fighting against the monster. -------------------------- Message 883 on *RPG-News (#9551): Date: Fri Aug 18 03:45:59 1995 PDT From: abstract (#94368) To: *RPG-News (#9551) Subject: #82:wield There's a bug in the code. Players can wield a katana in 1 hand, then wield another in 2. (Using 3 hands). This is one example.. People can just wield things, and wield more having more hands than 2. The bug lies between lines 18-22 I think. Will look into it myself tomorrow. We'll see if anyone can beat me to identifying it :) abstract -------------------------- Message 884 on *RPG-News (#9551): Date: Tue Aug 22 20:08:38 1995 PDT From: Frobno (#49397) To: *RPG-News (#9551) Subject: to Dred re: verb calls Hmm. Yes, I've noticed the too many verb calls traceback a few times myself, but never really tried to figure out what was causing it. I thought it might be due to weapon message announcements, since all that gets pretty hairy. There's definitely some sort of bad recursion (er, unintentional, that is) going on somewhere. Both Ghrask and Nazhk have a :savage() verb they use which sometimes causes multiple initial swings, but I think I have them suspend between swings for the RPG's "long enough" period so they don't stack up too much. I also take Ghrask and Nazhk offline sometimes when lag gets up, because all of their walking around and general trouble-making calls for some spammy verbs..alas. On the bright side, I added a check at the beginning of their :behave verbs for general lag and RPG lag so they are inert during bad spells. --Frobno (adding another gerbil and treadmill to Pavel's computer) -------------------------- Message 885 on *RPG-News (#9551): Date: Sun Aug 27 23:54:56 1995 PDT From: abstract (#94368) To: *RPG-News (#9551) Subject: err.. Who's been fiddling with Daniel_M's stats? I checked the death logs (after smelling something fishy about his stats) and he last died on August 27, Sunday. @stats shows that his magic stat is 181! And all others are... uh.. very low. GMs shouldn't be fiddling with other characters stats... abstract -------------------------- Message 886 on *RPG-News (#9551): Date: Mon Aug 28 00:55:05 1995 PDT From: abstract (#94368) To: *RPG-News (#9551) Subject: Found the problem. Okay, it was my fault, I forgot that players could move objects (I don't have any idea why this is allowed but claimed object can be moved around) and programed a special weapon (which he has) to alter stats. He moved the weapon off him without unwield-ing the weapon and getting his stats 'corrected' My fault. My apologies. Two things have come up now. 1) What to do with his stats. 2) How come players can move stuff around? I take it's because players need to ask for stuff from their squat, and it needs to be moved from the squat, but I'l pretty sure players shouldn't be able to move things off them and onto their squat. Maybe a check of the objects location would be in order... I dunno, I could be wrong, didn't look at the code... abstract -------------------------- Message 887 on *RPG-News (#9551): Date: Mon Aug 28 18:30:55 1995 PDT From: anj (#59447) To: *RPG-News (#9551) and abstract (#94368) Subject: re:daniel_m not quite your fault. actually, i'd just read that miles had been playing with something at 2 in the am and had made some changes he wasn't sure about...if people got funny tracebacks, to let him know, etc...that he was already getting some small complaints. i was working on a bench that gives you damage when you get pushed off, had my endurance set to 0 and was almost killed by it...mod_att("inj", 4)... so when danm paged me with he'd just gotten killed when he wasn't even injured before by spotlite, i talked with spotlite briefly and decided to redo dan...letting miles know... i did not, however, set his magic to 181...i saw it on his stats but thought it was some kind of related bug...set his magic to 2...so either he's found a cheat...or you're right, abstract, about the moving the weapons without slinging it. if you(plural) think i should undo dan, i'll do it and deal with him as i have to. -------------------------- Message 888 on *RPG-News (#9551): Date: Tue Aug 29 01:49:20 1995 PDT From: abstract (#94368) To: *RPG-News (#9551) Subject: Daniel_M (Again) Okay, he's killed 3 different players today, and I'm not sure, is this too much? He's killed: CptMN, Swatfoot and violeta. I witnessed (the end of) the killing of violeta. Is player killing allowed? (CptMN was, fyi, a *new* RPG player who was intrroduced to the RPG today, and was killed. abstract () -------------------------- Message 889 on *RPG-News (#9551): Date: Tue Aug 29 19:25:57 1995 PDT From: anj (#59447) To: *RPG-News (#9551) it seems way too much to me, especially since i asked him, as i was redoing his stats, to not go around killing players.-( -------------------------- Message 890 on *RPG-News (#9551): Date: Tue Aug 29 22:44:16 1995 PDT From: abstract (#94368) To: Grand_Master (#2693) and *RPG-News (#9551) Subject: Alright. Who removed #61176:set_condition ? I've been looking for tracetracks recently, and found tonnes of them, this is one of them. #61176:set_condition, line 9: Verb not found. -------------------------- Message 891 on *RPG-News (#9551): Date: Wed Aug 30 05:54:03 1995 PDT From: abstract (#94368) To: *RPG-News (#9551) removed = altered something in -------------------------- Message 892 on *RPG-News (#9551): Date: Wed Aug 30 15:26:07 1995 PDT From: anj (#59447) To: *RPG-News (#9551) how is that 100154, parented to an rpg object, is owned by a non gm? -------------------------- Message 893 on *RPG-News (#9551): Date: Thu Aug 31 00:15:00 1995 PDT From: abstract (#94368) To: *RPG-News (#9551) You can see how to expoit this hole in #94368:rskip (Bradley's verb). Oh, and the check should be this.SlipOwner && $local.rpg.gms. (Forgot that bit ;) ) -------------------------- Message 894 on *RPG-News (#9551): Date: Thu Aug 31 00:18:08 1995 PDT From: abstract (#94368) To: *RPG-News (#9551) Subject: [abstract (#94368): The slips from Cog.] Date: Thu Aug 31 00:12:10 1995 PDT From: abstract (#94368) To: Quinn (#19845) and *RPG-Stuph (#21259) Subject: The slips from Cog. You gotta add a 'caller == this.