> Hi all, > I am running circle 3.1 with dg_scripts pl9, ascii pfiles, hedit, olc > 2.01, and a few other goodies. My problem is this. I added aedit to my > base and after a few problems everything worked well. Then I noticed that > all the socials were taking presidence over the main commands. I went back > into interpreter.c to see if I had indeed make a few mistakes, but there > was no problems. This is an example: > > I type l for look and I receive the laugh social. In fact, this problem pops up quite frequently. I don't even think there's a check to see if a given 'new' social is also a command (just imagine if your social was called 'look' or 'kill' !). Instead of having a fancy solution, I just fixed this the easy way. I opened up interpreter.c, located the command_interpreter() function, and found this bit of code: /* otherwise, find the command */ for (length = strlen(arg), cmd = 0; *cmd_info[cmd].command != '\n'; cmd++) if (!strncmp(cmd_info[cmd].command, arg, length)) if (GET_LEVEL(ch) >= cmd_info[cmd].minimum_level) break; I simply changed it to make sure that it would never hit socials until after everything else was checked; /* otherwise, find the command */ for (length = strlen(arg), cmd = 0; *cmd_info[cmd].command != '\n'; cmd++) if(complete_cmd_info[cmd].command_pointer != do_action && !strncmp(cmd_info[cmd].command, arg, length) if (GET_LEVEL(ch) >= cmd_info[cmd].minimum_level) break; /* it's not a 'real' command, so it's a social */ if(*complete_cmd_info[cmd].command == '\n') for (length = strlen(arg), cmd = 0; *cmd_info[cmd].command != '\n'; cmd++) if (complete_cmd_info[cmd].command_pointer == do_action && !strncmp(cmd_info[cmd].command, arg, length)) if (GET_LEVEL(ch) >= cmd_info[cmd].minimum_level) break; I make sure to check if the function is not the do_action (aka, social), and I do it first to cut down on the number of strncmps. For the same reason, I make sure to check the command_pointer first in the second loop, though we already know that no 'real' command will match. Hope this helps! PjD -- +---------------------------------------------------------------+ | FAQ: http://qsilver.queensu.ca/~fletchra/Circle/list-faq.html | | Archives: http://post.queensu.ca/listserv/wwwarch/circle.html | | Newbie List: http://groups.yahoo.com/group/circle-newbies/ | +---------------------------------------------------------------+
This archive was generated by hypermail 2b30 : 06/26/03 PDT