On Fri, 15 Aug 1997, Snow Man wrote: > I have added the autoquest code for the circlemud that was posted on > the list a while back.. yet I can not get it to work... I have added all > there is plus! I goto type medit (mob number) and I goto the mob_flags > and MOB_QUESTMASTER and MOB_QUEST arent on the list yet there in the > code.. the code compiles fine... --- From a previous post: --- Date: Wed, 2 Jul 1997 15:32:28 -0600 (CST) From: Eduo - Tempus Fugit Pseudo Admin <mud@sparc.ciateq.conacyt.mx> To: Alex <fletcher@cspo.queensu.ca> Subject: Quest code additions. Hiya! I was segint he quest code in the snippets page and saw it missed some instructions: Let's see... This is all you need to get the autoquest system to compile, you still need to create 5 objects rewards 1250, 1251, 1252, 1253 and 1254 and also 5 quest items 1256, 1257, 1258, 1259 and 1260. Create a mob and flag it MOB_QUESTMASTER and flag some mobs around your world MOB_QUEST and you are all ready to go :) Makefile -------- Under "OBJFILES =" add: + quest.obj and under # Dependencies for the object files (automagically generated with # gcc -MM) + quest.obj: quest.c conf.h sysdep.h structs.h utils.h handler.h interpreter.h comm.h db.h + $(CC) -c $(CFLAGS) quest.c Comm.c ------ In "void heartbeat" add the following line to be called each minute: + quest_update(); // LJ autoquest Fight.c ------- Under /* External structures */ add: + extern struct index_data *mob_index; /* LJ autoquest */ In "void damage" right after: = if (GET_POS(victim) == POS_DEAD) { add: + if (PLR_FLAGGED(ch,PLR_QUESTOR) && IS_NPC(victim)) { /* LJ autoquest */ + if (GET_QUESTMOB(ch) == GET_MOB_VNUM(victim)) { + send_to_char("You have almost completed your QUEST!\n\r",ch); + send_to_char("Return to the questmaster before your time runs out!\n\r",ch); + GET_QUESTMOB(ch) = -1; + } + } Structs.h --------- Add new player flag: + #define PLR_QUESTOR (1 << XX) /* LJ autoquest */ Add 2 new mob flags: + #define MOB_QUESTMASTER (1 << XX) /* LJ autoquest */ + #define MOB_QUEST (1 << XX) /* LJ autoquest */ In "struct player_special_data_saved" add: + struct char_data *questgiver; /* LJ autoquest */ replace 5 int spares with: + int questpoints; /* LJ autoquest */ + int nextquest; /* LJ autoquest */ + int countdown; /* LJ autoquest */ + int questobj; /* LJ autoquest */ + int questmob; /* LJ autoquest */ Utils.h ------- Add somewhere: + #define GET_QUESTMOB(ch) ((ch)->player_specials->saved.questmob) /* LJ autoquest */ + #define GET_QUESTOBJ(ch) ((ch)->player_specials->saved.questobj) /* LJ autoquest */ + #define GET_QUESTGIVER(ch) ((ch)->player_specials->saved.questgiver) /* LJ autoquest */ + #define GET_COUNTDOWN(ch) ((ch)->player_specials->saved.countdown) /* LJ autoquest */ + #define GET_NEXTQUEST(ch) ((ch)->player_specials->saved.nextquest) /* LJ autoquest */ + #define GET_QUESTPOINTS(ch) ((ch)->player_specials->saved.questpoints) /* LJ autoquest */ act.infomative.c ---------------- Under /* extern variables */ add: + extern struct index_data *mob_index; /* LJ autoquest */ In "void list_one_char" after the part with: = if (IS_AFFECTED(ch, AFF_DETECT_ALIGN)) { = if (IS_EVIL(i)) = strcat(buf, "(Red Aura) "); = else if (IS_GOOD(i)) = strcat(buf, "(Blue Aura) "); = } add: + if (IS_NPC(i) && GET_QUESTMOB(ch) == GET_MOB_VNUM(i)) /* LJ autoquest */ + strcat(buf, "(TARGET) "); interpreter.c ------------- Under /* prototypes for all do_x functions. */ add: + ACMD(do_autoquest); /* LJ autoquest */ In the "Master Command list" add: + { "autoquest", POS_STANDING, do_autoquest, 0, 0 }, /* LJ autoquest */ +------------------------------------------------------------+ | Ensure that you have read the CircleMUD Mailing List FAQ: | | http://democracy.queensu.ca/~fletcher/Circle/list-faq.html | +------------------------------------------------------------+
This archive was generated by hypermail 2b30 : 12/08/00 PST