[CF-Devel] Proposal: jobs

crossfire-devel-admin at archives.real-time.com crossfire-devel-admin at archives.real-time.com
Tue Aug 5 02:21:56 CDT 2003


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.

---
Tim Rightnour <
     
     root at garbled.net
     
     >
NetBSD: Free multi-architecture OS 
     
     http://www.netbsd.org/
     
     
NetBSD supported hardware database: 
     
     http://mail-index.netbsd.org/cgi-bin/hw.cgi
     
     

_______________________________________________
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