I reformatted the spec_proc a bit for better readability. Everything I tried to dublicate the error failed. Actually I downloaded the snippet and just after that, everything worked like a charm. SPECIAL(trainer) { if (IS_NPC(ch) || !CMD_IS("train")) return 0; one_argument(argument, arg); if (!*arg) { [snip] sprintf(buf + strlen(buf),"You have %d training session%s.\r\n", GET_TRAINING(ch), (GET_TRAINING(ch) == 1) ? "" : "s"); send_to_char(buf,ch); return 1; } if (GET_TRAINING(ch) <= 0) { send_to_char("You do not seem to be able to train now.\r\n", ch); return 1; } if (!strcmp(arg,"hit")) { GET_TRAINING(ch) -=1; GET_MAX_HIT(ch) +=5; } else if (!strcmp(arg,"mana")) // instead of: else if (strcmp(arg, "mana")==0) - they both work, though. { [snip] } else { send_to_char("Train what?\r\n",ch); sprintf(buf, "The arg was: %s\r\n", arg); send_to_char(buf, ch); return 1; } send_to_char("You train for a while...\r\n",ch); return 1; } Whatley wrote: > And if you have trains all it does is go directly to the invalid arg statement, > if you have no trains it give you the GET_TRAINS <= 0 message. It doesn't make much sense to me, that the proc should go to the invalid arg statement, unless you've got an extra { to match the } before the else. If I were you I'd check my brackets. Welcor +------------------------------------------------------------+ | Ensure that you have read the CircleMUD Mailing List FAQ: | | http://qsilver.queensu.ca/~fletchra/Circle/list-faq.html | +------------------------------------------------------------+
This archive was generated by hypermail 2b30 : 04/10/01 PDT