* Iden med uppdrag Ett uppdrag är en liten gåta, ett litet mysterium som skall lösas. Uppdragsmekanismen har en hel del positiva effekter på spelet: - Uppdragen tvingar spelaren utforska större delar av världen. - Uppdragen minskar, eller i alla fall skyler över och får spelaren att bortse från, det systematiska dödandet som spelarna annars är beroende av att genomföra. - Man omöjliggör, nästan helt, för de som gör automatiska program som springer om kring och dödar, att ta sig ända upp till toppen. Fördelarna för de enskilda magikerna förknippade med att göra ett uppdrag är lika uppenbara: - Man kan locka in personer i sitt eget område. - Man får bättre återkoppling från spelarna. * Hur mekanismen fungerar Uppdragsmekanismen fungerar så att spelaren har en sträng som håller reda på vilka uppdrag han har löst. Alla uppdrag måste ha ett unikt namn och vi har därför valt konventionen att alla magiker använder sitt namn som identifierare till hans uppdrag. I spelaren kan man bara komma åt denna strängen med hjälp av 2 funktioner: set_quest och query_quest. (status)this_player()->set_quest(string magikernamn) markerar ett uppdrag med namnet magikernamn såsom löst hos spelaren. Den returnerar 1 om det är första gången som spelaren löst uppdraget och 0 om han har löst det innan. Om den returnerar 0 så sker ingen ändring av själva strängen. (status)this_player()->query_quests(string magikernamn) returnerar sant (1) om spelaren har löst det uppdrag som magikern magikernamn har gjort och falskt (0) annars. (string)this_player()->query_quests() returnerar hela strängen i obearbetat format (används bara för att få en status på spelaren). * Hur man gör ett uppdrag Bestäm först hur du vill att uppdraget skall vara utformat. Ideerna här är att du skall göra något som passar in med ditt område eller kanske med din personlighet. Iden skall, för att det skall gå att genomföra, innehålla information om: - Vad som skall utföras av spelaren för att få uppdraget godkänt! - Vad spelaren får för ledtrådar längs vägen (ända från Äventyrarnas klubb.) När du gjort det så långt så kodar du alla rum och saker som behövs för att man skall genomföra uppdraget. Prova själv uppdraget så att alla delar är möjliga och låt om möjligt någon annan magiker gå igenom och ge sina ideer på det hela. Stoppa in anropet till funktionen this_player()->set_quest(dittnamn) i rätt objekt och prova igen. Låt nu någon Ärkemagiker gå igenom alla delar av ditt uppdrag och ge ideer och synpunkter. När du åtgärdat dessa synpunkter så godkänner ärkemagikerna uppdraget genom att skapat en fil /doc/uppdrag/dittnamn med din beskrivning av ideen med uppdraget så är det godkänt och då är det dags att skapa själva uppdragsobjektet. I väntan på att uppdraget ska bli godkänt kan du låta registrera det som ett pyssel. Se vidare i /doc/build/pyssel. * Själva uppdragsobjektet Uppdragsobjektet är det objekt som innehåller information om uppdraget. Det skapar du genom att göra ett objekt som ärver /obj/uppdrag och sätter namn, kort beskrivning och ledtråd. Se exempel i /doc/exempel/uppdragsobjekt. Obs! Uppdragsobjektet ska inte längre flyttas till uppdragsrummet. * Annat Vill du göra flera uppdrag så stäm av det hela med en Ärkemagiker först. (Det är ett absolut krav att du skall ha ett fungerande uppdrag som du fått beröm för för att du skall få tillstånd att göra ett till.) För att undvika att det blir för många uppdrag kan det komma att bli aktuellt att ta bort gamla (eller dåliga) uppdrag. Dessa kommer då automatiskt att omvandlas till pyssel och spelarna kommer ej längre att behöva lösa dem för att bli magiker.