#include <sys/types.h> #include <stdio.h> #include <string.h> #include <stdlib.h> #include "merc.h" #include "mob_cmds.h" #include "olc.h" #include "gquest.h" #include "gdl.h" const struct olc_cmd_type qedit_table[] = { /* { command function }, */ {"name", qedit_name}, {"rpname", qedit_rpname}, {"level", qedit_level}, {"new", qedit_new}, {"show", qedit_show}, {"?", show_help}, {NULL, 0} }; QUEST * quest_list; /* * do_qedit() * * Edits specific quest */ void do_qedit(CHAR_DATA * ch, char *argument) { QUEST *pQuest; char arg1[MIL]; char argall[MAX_INPUT_LENGTH],argone[MAX_INPUT_LENGTH]; bool found = FALSE; strcpy(arg1,argument); if(argument[0] != '\0') { /* Taken from do_help */ argall[0] = '\0'; while (argument[0] != '\0' ) { argument = one_argument(argument,argone); if (argall[0] != '\0') strcat(argall," "); strcat(argall,argone); } for ( pQuest = quest_list; pQuest; pQuest = pQuest->next ) { if ( is_name( argall, pQuest->name ) ) { ch->desc->pEdit=(void *)pQuest; ch->desc->editor= ED_QUEST; found = TRUE; return; } } } if(!found) { argument = one_argument(arg1, arg1); if(!str_cmp(arg1,"new")) { if (argument[0] == '\0') { stc("Qedit: qedit new <name\n", ch); return; } if (qedit_new(ch, argument) ) ch->desc->editor = ED_QUEST; return; } } send_to_char( "Qedit: No Default Quest\n\r", ch ); return; } /* * qedit_show() * * Displays the Quest's info */ QEDIT(qedit_show) { QUEST * quest; char buf[MSL * 2]; EDIT_QUEST (ch, quest); sprintf(buf, "Name: %s\n", quest->name); stc(buf, ch); sprintf(buf, "RP Name: %s\n", quest->long_name); stc(buf, ch); sprintf(buf, "Min_level %d\n", quest->min_level); stc(buf, ch); sprintf(buf, "Total Steps %d\n", quest->steps); stc(buf, ch); sprintf(buf, "Reward QPs: %d\n", quest->reward_qps); stc(buf, ch); sprintf(buf, "Reward Gold: %d\n", quest->reward_gold); stc(buf, ch); sprintf(buf, "Reward Obj: %d\n", quest->reward_obj); stc(buf, ch); send_to_char (buf, ch); return FALSE; } /* * qedit_name * * Edits Quest's Internal Name */ QEDIT(qedit_name) { QUEST *quest; EDIT_QUEST (ch, quest); if (IS_NULLSTR (argument)) { send_to_char ("Syntax: name <name>\n", ch); return FALSE; } free_string (quest->name); quest->name = str_dup (argument); send_to_char ("Quest's Internal name has been set.\n", ch); return TRUE; } /* * qedit_rpname * * Edits Quest's Player name */ QEDIT(qedit_rpname) { QUEST *quest; EDIT_QUEST (ch, quest); if (IS_NULLSTR (argument)) { send_to_char ("Syntax: rpname <name>\n", ch); return FALSE; } free_string (quest->long_name); quest->long_name = str_dup (argument); send_to_char ("Quest's Player seen name has been set.\n", ch); return TRUE; } /* * qedit_level * * Edits Quest's Min level to even get activated */ QEDIT(qedit_level) { QUEST *quest; int lev; EDIT_QUEST (ch, quest); if (IS_NULLSTR (argument) || !is_number (argument)) { send_to_char ("Syntax: level [-1..MAX_LEVEL]\n\r", ch); return FALSE; } lev = atoi (argument); if (lev < -1 || lev > MAX_LEVEL) { printf_to_char (ch, "Qedit: Level range between -1 and %d\n\r", LEVEL_HERO + 1); return FALSE; } quest->min_level = lev; send_to_char ("Minimum level for quest has been set.\n", ch); return TRUE; }