Re: Pick Lock /And Oasis Bug

From: Shane P. Lee (
Date: 11/22/00

-To Josh Smith-
It would seem that the game is rolling correctly, that is if you
are using the stock version of pick_lock. My suggestion would be
to lower the die throws by re-writing the 'int ok_pick' function
as follows:

int ok_pick(struct char_data *ch, obj_vnum keynum, int pickproof, int
  int percent;

  percent = number(1, 100); /* Changed from 1, 101, since 101 is
  always a complete failure. Nobody has a skill proficency of 101 */

  if (scmd == SCMD_PICK) {
    if (keynum < 0)
      send_to_char("Odd - you can't seem to find a keyhole.\r\n", ch);
    else if (pickproof)
      send_to_char("It resists your attempts to pick it.\r\n", ch);
    else if (percent > GET_SKILL(ch, SKILL_PICK_LOCK)) /* Now, players
    with SKILL_PICK_LOCK set at 100 will ALWAYS be able to pick
    the lock */
      send_to_char("You failed to pick the lock.\r\n", ch);
      return (1);
    return (0);
  return (1);

-To Lord Kyu-
Hrmm, I don't think this is a stock bug. Unless you hand-patched in
Oasis OLC and missed something, I would say that someone has been
messing with your boards.c or modify.c files. The error is generated
in modify.c, when the STRINGADD_ABORT hits the default case. I'm not
looking at the code right now, but I'd bet that the boards use
'case CON_EXDESC:'. Then again, maybe not.
Without more info, all I can say is that you might consider downloading
the OasisOLC patch again, and check for the modifications required
in these two files. Something got overlooked, or changed later.
Wait a second, now I'm looking at the code :P
Here is the playing_string_cleanup from stock:

void playing_string_cleanup(struct descriptor_data *d, int action)
  if (PLR_FLAGGED(d->character, PLR_MAILING)) {
    if (action == STRINGADD_SAVE && *d->str) {
      store_mail(d->mail_to, GET_IDNUM(d->character), *d->str);
      SEND_TO_Q("Message sent!\r\n", d);
    } else
      SEND_TO_Q("Mail aborted.\r\n", d);

   * We have no way of knowing which slot the post was sent to so we
can only give the message...
  if (d->mail_to >= BOARD_MAGIC) {
    Board_save_board(d->mail_to - BOARD_MAGIC);
    if (action == STRINGADD_ABORT)
      SEND_TO_Q("Post not aborted, use REMOVE <post #>.\r\n", d);

Be sure to check boards.c, and make sure that it's all stock as well. A
modified 'Board_save_board' could pose some problems.

Y'ur Obt. Svt,

Do You Yahoo!?
Yahoo! Shopping - Thousands of Stores. Millions of Products.

   | FAQ: |
   | Archives: |

This archive was generated by hypermail 2b30 : 04/11/01 PDT