Re: NODROP

From: Mike Stilson (mike@velgarian.sytes.net)
Date: 09/25/02


On Wed, Sep 25, 2002 at 04:43:37PM -0700, George Greer wrote:
>On Fri, 20 Sep 2002, Mike Stilson wrote:
>
>>I think what he's talking about it this scenario:
>>You have a NODROP item.
>>There's a box (container in room)
>>You type: "put cursedcrap box"
>>Player B can now: "get cursedcrap box".
>>
>>since it does allow you to put cursed items into containers, and flags
>>them, but doesn't check that the container is in your inventory only.
>
>So something like this:
>
>Index: act.item.c
>===================================================================
>RCS file: /home/circledb/.cvs/circle/src/act.item.c,v
>retrieving revision 1.51
>diff -u -p -r1.51 act.item.c
>--- act.item.c  9 Apr 2002 14:12:15 -0000       1.51
>+++ act.item.c  25 Sep 2002 23:42:25 -0000
>@@ -66,6 +66,8 @@ void perform_put(struct char_data *ch, s
> {
>   if (GET_OBJ_WEIGHT(cont) + GET_OBJ_WEIGHT(obj) > GET_OBJ_VAL(cont, 0))
>     act("$p won't fit in $P.", FALSE, ch, obj, cont, TO_CHAR);
>+  else if (OBJ_FLAGGED(obj, ITEM_NODROP) && cont->in_room != NOWHERE)
>+    act("You can't get $p out of your hand.", FALSE, ch, obj, NULL, TO_CHAR);
>   else {
>     obj_from_char(obj);
>     obj_to_obj(obj, cont);

Pretty much exactly what I did (AFAIR, there's a lot of changes around
there.  Before I started using bitkeeper for it and had nice detailed
changelogs) and it fixed it just fine.

>George Greer

-me

--
   +---------------------------------------------------------------+
   | FAQ: http://qsilver.queensu.ca/~fletchra/Circle/list-faq.html |
   | Archives: http://post.queensu.ca/listserv/wwwarch/circle.html |
   | Newbie List:  http://groups.yahoo.com/group/circle-newbies/   |
   +---------------------------------------------------------------+



This archive was generated by hypermail 2b30 : 06/25/03 PDT