Пример #1
0
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);
  }
}
Пример #2
0
// 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;
    }
}
Пример #3
0
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;
}