Data: You're gonna need to use a little C ability to solve this problem. It's really very easy and uses minimal C knowledge... ACMD(do_diagnose) ... What is that? Look in interpreter.h for the macro ACMD and you find this: #define ACMD(name) \ void (name)(struct char_data *ch, char *argument, int cmd, int subcmd) That means that ACMD(do_diagnose) is just: void do_diagnose(struct char_data *ch, char *argument, int cmd, int subcmd) Now, in programming C, you need to use all the arguments in a subroutine. So, you need to define who ch is, what the argument is, what the cmd number is, and what the subcmd number is. In this case, the argument is blank (to diagnose the person you're in combat with), the cmd should be 0, the subcmd should be 0. And who's the ch? The person who's doing the diagnosing in hit(), and that person is ch. [Note: the reason cmd and subcmd can be 0 is that if you look in ACMD(do_diagnose), int cmd and int subcmd aren't even used. So they can be anything, really.] So, instead of do_diagnose(victim), you need to do_diagnose(ch, "", 0, 0); Simple, when you know where to look. That's why I suggest looking at all the main files...the info is there. As a suggestion, don't put it in hit(). You'll get mega spammed with diagnoses if your mud does anything with multihit (multiattack). Put it at the end of perform_violence() or something. linc aka Aladdin of Eternity DikuMUD
This archive was generated by hypermail 2b30 : 12/07/00 PST