Ok, here goes. I have implemented a Flag system on my mud where every character has an array saved called quest_flags. As things happen, Flags are altered and/or checked to see if they have done certain things. I need a command to set specific Flags in the array. I'm so stupid when it comes to structures that I can't figure out my code for this. I do have three_arguments coded and it is working correctly. What I want to do is be able to type this -> flags <player_name> <flag number> <value> and have it set the appropriate value for the sed flag and the sed player. ** in structs.h ** struct player_special_data_saved { int quest_flags[100]; ** in utils.h ** #define CHECK_FLAGS(ch, i) CHECK_PLAYER_SPECIAL((ch), ((ch)->player_specials- >saved.quest_flags[(i)])) ** and the main beef ** ACMD(do_flags) { struct char_data *vict = NULL; int number, number2, number3; three_arguments(argument, buf, buf2, buf3); if (!*buf || !*buf2 || !buf3 || !isdigit(*buf2) || !isdigit(*buf3)) { send_to_char("Usage: flags <victim> <flag number> <flag value>\r\n", ch); return; } if ((number = atoi(buf)< 0) || (number2 = atoi(buf2) < 0) || (number3 = atoi(buf3) < 0)) { send_to_char("You can't use a negative number!\r\n", ch); return; } if (!(vict = get_player_vis(ch, buf, 0))) { send_to_char("There is no such player.\r\n", ch); return; } CHECK_FLAGS(buf, buf2) = buf3; sprintf(buf,"%s's Quest Flag %d is set at %d.\r\n",buf, buf2, buf3); send_to_char(buf, ch); } I get an error on the call to CHECK_FLAGS, and as I said before, I am still learning with the whole structures thing. The (I think) obvious problem is with buf not jiving with the char_data structure .Can someone help me out here? Corey Elliott strmchsr@arn.net +------------------------------------------------------------+ | 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 : 12/15/00 PST