RE: [newbie] comparing names

From: Guilbault, Brian (AUBURNHILL!IRVINAH1!BGUILBAU@takata.attmail.com)
Date: 12/10/96


>i want to compare GET_NAME(ch) with the name (not alias) of a object, in
>this case a corpse. i am thinking of a quick for loop, checking all the
>objects in a room to see if they are: 1) the corpse of GLOK, 2) a corpse.
>can anyone help me with this loop?


The corpse check is the easy part. Here's what I do:

if (GET_OBJ_TYPE(obj) == TYPE_CPNTAINER && GET_OBJ_VAL(obj, 3) == 1) {
  // insert your code here
}

Now the comparing thing is a little more difficult. What I did is make
a new int value in the object structures called obj->owner. I made a
macro in utils.h so that I can use GET_OWNER(obj) to get the value there.
This allows me to do things like this:

if (GET_OBJ_TYPE(obj) == TYPE_CPNTAINER && GET_OBJ_VAL(obj, 3) == 1) {
  if (GET_OWNER(obj) != GET_IDNUM(ch) && GET_OWNER(obj) != -1) {
    send_to_char("Corpse looting is NOT allowed\r\n", ch);
    return;
  }
}

This will check if the corpse is the owner's and if it isn't then it won't
let them get it. You also have to do something similar in perform_get_from_
container so that they can't type "get sword corpse" or something like that.
Also the -1 is an NPC's corpse which they SHOULD be able to get...see below.

And one more thing. In void make_corpse you'll have to actually set the
owner field. I do something like this:

if (!IS_NPC)
  GET_OWNER(corpse) = GET_IDNUM(ch);
else GET_OWNER(corpse) = -1;


Hope that helps you. I don't have a morgue, but I have anti corpse-looting
code. Mine is more complex because I have OUTLAWs who are allowed to loot
other outlaws, etc. I plan to expand this so that players can "trust" 
another
player to get their corpse.

  -Brian

+----------------------------------+
| Please reply to guil9964@gmi.edu |
+----------------------------------+


+-----------------------------------------------------------+
| Ensure that you have read the CircleMUD Mailing List FAQ: |
|   http://cspo.queensu.ca/~fletcher/Circle/list_faq.html   |
+-----------------------------------------------------------+



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