[Circle] more debate

From: Chi Hoai Tran (necro@progsoc.uts.edu.au)
Date: 11/05/96


  Someone raised an interesting point - in the docs it does actually
state that you must know C or else you should stop at this point.
  I believe in this strongly - that is why when I give out tips, I
merely give a general guideline which should be no trouble at all for
an average C coder.  Anyways, if you think you can run a mud without
that much knowledge of C - go for it.  BUT, if you have mudders like
what we get on Dark Realms, you will be in BIG trouble.  They are the
reasons I can give out how to dupe eq recipes *grin*.  No matter
how many backdoors etc I close off, those mudders find more ways to
crash the mud.
  Now, if you had minor knowledge of C, how would you prevent them
from constantly crashing your mud and actually gloating in front of 
you?  I actually had one major tiff with a mudder who constantly
crashed the mud, to the point that I had to ban all new characters
for a time just to FIND that damn bug he was abusing.  Suffice to say,
I found it eventually, but I would NOT have found it had I been a newbie
coder and I did not know much about CircleMUD code.
  My advice to you - spend hours and hours on the code, just reading
it before you even think about putting the mud up, but then again,
you might not be fortunate (?) enough to have the same mudders as mine.

ObCIRCLE:
To learn more about mob spec_procs, look at castles.c, although the
do_gen_comm calls wont work because they are mobs - hence, it
becomes obsolete and a waste of memory! (Well, for gossips, and shouts
etc anyways)

For any linked lists, DO NOT USE the following formats (unless you
are absolutely sure you know what you are doing)
  for (vict = world[ch->in_room].peoples;vict; vict = vict->next_in_room)

instead, use this :-
  for (vict = world[ch->in_room].peoples;vict; vict = next_vict) {
    next_vict = vict->next_in_room;
  }


WHY?  I will give you an example :-

  say,a dragon breathes on a group of players (yeah, our dragons do
breathe *heh*), and one of the players dies.  That player gets
transferred to room 3001, and then the FOR loop continues, with
the next victim being vict = vict->next_in_room, ie, the next
person in ROOM 3001!!! Not the next person in the original room!
  I need not explain why the second example overcomes this



Horus, Dark Realms ---> ftoomsh.progsoc.uts.edu.au 5000


+-----------------------------------------------------------+
| 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