void editQuestStrn(const char *strn) { ulong numb; dikuMob *mob; usint ch; char outstrn[512]; // get the number section if (!strlen(strn)) { editQuestPrompt(); return; } numb = atoi(strn); mob = findMob(numb); if (!mob) { sprintf(outstrn, "\nCorresponding mob type (#%d) not found.\n\n", numb); _outtext(outstrn); return; } else { if (!mob->questPtr) { displayColorString( "\n&+cThis mob has no quest info - create some (&+Cy/N&n&+c)? "); do { ch = toupper(getkey()); } while ((ch != 'Y') && (ch != 'N') && (ch != K_Enter)); if (ch != 'Y') { displayColorString("No&n\n\n"); return; } else displayColorString("Yes&n\n"); mob->questPtr = createQuest(); if (!mob->questPtr) return; // error // mob->questPtr->mobNumb = mob->mobNumber; } editQuest(mob->questPtr, mob->mobShortName, mob->mobNumber, mob, TRUE); } }
// Mobへのダメージ void hitMob(uchar x, uchar y, uchar val){ mob_t *m; findMob(x, y, &m); if(m->hp <= val){ m->hp = 0; deadMob(m); }else{ m->hp -= val; m->knockback = KNOCKBACK; } }
void deleteQuestUser(const char *args) { dikuMob *mob; long numb; char strn[256]; if (!strlen(args)) { deleteQuestUserPrompt(); return; } if (!strnumer(args)) { displayColorString( "&n\nError in input - specify vnum of mob to delete quest from.\n\n"); return; } numb = atoi(args); mob = findMob(numb); if (!mob) { sprintf(strn, "\nMob type #%d not found.\n\n", numb); _outtext(strn); return; } if (!mob->questPtr) { sprintf(strn, "\nMob type #%d has no quest info.\n\n", numb); _outtext(strn); return; } deleteQuest(mob->questPtr); mob->questPtr = NULL; sprintf(strn, "\nMob type #%d's quest info deleted.\n\n", numb); _outtext(strn); madeChanges = TRUE; }