I think my friend has found a bug in the wiznet command. Specifically, when you use the #level option, it will truncate the first character of the string that you wished to send. For example: > wiznet #34 ABCDEF sends out the string "BCDEF" I think I've found the actual bug and put together a fix for it. The problem seems to be located in act.wizard.c at the following line: half_chop(++argument, buf1, argument); My newbie guess is that the problem is some sort of side effect caused by using both argument and ++argument in the call. The 3rd argument is what is finally output to players. The 1st argument just shifts the string to remove the starting '#' character. My "newbie" fix follows: in variable declarations for ACMD(do_wiznet) add the following: char* temp; /* Temp variable to fix bug in Case '#': - DVT */ Next, in case '#' change if (is_number(buf1)) { half_chop(++argument, buf1, argument); level = MAX(atoi(buf1), LVL_IMMORT); if (level > GET_LEVEL(ch)) { send_to_char("You can't wizline above your own level.\r\n", ch); return; } to be if (is_number(buf1)) { temp = argument; temp++; /* half_chop(++argument, buf1, argument); Old version - DVT */ half_chop(temp, buf1, argument); level = MAX(atoi(buf1), LVL_IMMORT); if (level > GET_LEVEL(ch)) { send_to_char("You can't wizline above your own level.\r\n", ch); return; } This change appears to fix the problem, but I'd love some feedback from some C gurus. Is the fix a "good" fix or do I not seem to have a grasp on the REAL problem. I am not a proficient C programmer by any means. It took me a while just to get Xxgbd running to try and debug the problem. :-) Let me know what you pros think. Thanks, -=- Dan Toft PS Thanks to my friend Dave who actually spooted the problem!
This archive was generated by hypermail 2b30 : 12/07/00 PST