[CF-Devel] Proposal: jobs

crossfire-devel-admin at archives.real-time.com crossfire-devel-admin at archives.real-time.com
Wed Aug 6 00:18:13 CDT 2003


I do think that it is worth working on just to improve the
options/capabilities for mapmakers making quests...  This is a often
requested feature actually - a quest system.  I really like the idea of the
Job/quest object - although I think it would be something that would be part
of a map set (a .qst file?) being that it would have to be map dependent.  I
really enjoy stressing that the arches and the maps and the server packages
should operate as modularly as possible.  I realize this complicates things
a bit - but with two map sets and the possibility of custom mapsets, these
mini quests should go with the maps rather than the arches.  If you consider
the lore field in the map header as requiring some sort of 'load process' to
generate book content from the maps - perhaps this could be extended to read
in these 'jobs' as well.

- trivial but worth mentioning I thinkthat you should not be too specific on
the usage commands so that any object could serve as a 'board' (a talking
dog or a shop keeper for example) - especially when developing the commands
for the interface.

>
     
     
     >
     
      Another idea.. but this one I've actually got partially working in code..
     
     >
     
     
     >
     
      Basically, jobs.  Similar to quests, but of a less sweeping nature.
     
     >
     
     
     >
     
      In a nutshell.. the game will have a collection of little jobs for the
     
     player
>
     
      to perform.  There will be a board in town, where players read the board,
     
     and
>
     
      accept a job.  A job can be something simple, like "bring me a gold
     
     dagger".
>
     
      The player reads the job description, and accepts the job. The board marks
     
     that
>
     
      job as [ACCEPTED], so nobody else can take it.  The player can only take
     
     one
>
     
      job at a time.  Now the player finds a gold dagger, and comes back to the
     
     >
     
      board.  He "completes" the job, with a command, and the board acknowledges
     
     that
>
     
      he has completed the job, and marks it [OPEN] again for other players.  If
     
     the
>
     
      player cannot complete the job, he can give up.
     
     >
     
     
     >
     
      Jobs will have an exp stat, and a value, so a reward can be exp, or
     
     monetary in
>
     
      nature.  Perhaps if you fail to complete a job, it will give you a penalty
     
     of
>
     
      1/10th the exp of the job.  A job could have a timelimit, after which, it
     
     will
>
     
      expire, charge the player the exp penalty, and return to an open status.
     
     Jobs
>
     
      can only be performed by a player once each.
     
     >
     
     
     >
     
      Implementation details:
     
     >
     
     
     >
     
      A new object type, JOB.  This object contains data on the job, such as
     
     reward,
>
     
      object required, name of creature you have to kill, or whatever.
     
     >
     
     
     >
     
      These jobs are placed inside a "board" object.  The board object is a
     
     simple
>
     
      object that can be used for other things than just the job system.  When a
     
     >
     
      player applies the board, he sees the contents of the board, or in the
     
     case of
>
     
      jobs, the individual jobs that are available.
     
     >
     
     
     >
     
      A player can get details of a job by typeing "checkboard 1" Which will
     
     give him
>
     
      the details on job number 1 on the board.
     
     >
     
     
     >
     
      A player can accept a job with "accept_job 1".  This will mark the job as
     
     >
     
      accepted on the board, and give the player a copy of the job object.
     
     >
     
     
     >
     
      A player can complete the job with "complete_job 1". This doles out the
     
     reward,
>
     
      marks the job open on the board, and complete in his inventory.
     
     >
     
     
     >
     
      A player can giveup a job with "abort_job 1".  Same deal.
     
     >
     
     
     >
     
      A player can look at his job status, with "jobs".  This will tell him
     
     about the
>
     
      job he is currently tasked to complete.  It might also tell him about jobs
     
     he
>
     
      has allready completed.
     
     >
     
     
     >
     
      A sample job object:
     
     >
     
     
     >
     
      Object job1
     
     >
     
      name Retrive a mithril dagger
     
     >
     
      type 101
     
     >
     
      msg
     
     >
     
      I am in need of a mithril dagger,
     
     >
     
      without one, I cannot hope to regain
     
     >
     
      my family honor.
     
     >
     
      endmsg
     
     >
     
      level 3  <- suggested level for job
     
     >
     
      food 1   <- unique identifier, or jobnumber.
     
     >
     
      exp 500  <- Exp reward
     
     >
     
      value 1000 <- monetary reward
     
     >
     
      other_arch dagger     <- what the job expects
     
     >
     
      materialtype mithril  <- it wants the dagger to be mithril
     
     >
     
      end
     
     >
     
     
     >
     
      A "kill this person" job could be done with:
     
     >
     
     
     >
     
      other_arch man  <- the archtype of the target
     
     >
     
      slaying Bob  <- the op->name of the target
     
     >
     
      title The Dork  <- the title of the target.
     
     >
     
     
     >
     
      A simple check can be placed in the kill routine, so when a monster is
     
     killed,
>
     
      it checks the player's job inventory, and looks for a job matching that
     
     monster.



_______________________________________________
crossfire-devel mailing list
     
     crossfire-devel at lists.real-time.com
     
     
     https://mailman.real-time.com/mailman/listinfo/crossfire-devel
     
     
    


More information about the crossfire mailing list