STYGION Dokumentace Hledat v dokumentaci

Denní a měsíční questy

Každý hráč si vylosuje vlastní denní a měsíční questy z tvých poolů, jeden denně vymění, staví sérii a dostane odměnu, kterou nastavíš. Novinka v 0.3, ve výchozím stavu vypnuto.

Keystone 0.2.8 Aktualizováno 4 min čtení
Na téhle stránce 5 částí
  1. Jak to funguje
  2. Jak napsat quest
  3. Příkazy a oprávnění
  4. S klientskou částí
  5. API a události

Denní a měsíční questy

Novinka v 0.3, modul quests, ve výchozím stavu vypnutý (rozdává věci). Všechno se nastavuje v quests.toml (a v Nastavení v editoru); nic není přibité k jednomu serveru: výchozí pooly jsou čistě vanilla.

Jak to funguje

#
  • Každý hráč si vylosuje vlastní questy: daily.count z daily.quests (výchozí 3) a monthly.count z monthly.quests (výchozí 3). Quest padá tak často, jak říká jeho weight; včerejší questy se vrací, jen když je v poolu málo jiných.
  • Nový den questů začíná v reset-at (výchozí 00:00) v pásmu time-zone (prázdné = pásmo serveru); nový měsíc v tu hodinu 1. dne v měsíci.
  • /quests reroll <id> vymění jeden nesplněný quest za jiný, rerolls-per-daykrát za den questů (výchozí 1, 0 vypne).
  • Kdo splní všechny questy dne nebo měsíce, dostane navíc daily.all-done / monthly.all-done.
  • Série: den se počítá, když jsou splněné všechny denní questy (streak.counts = all) nebo aspoň jeden (any). Vynechaný den sérii vynuluje. streak.goals platí při určitém počtu dní; se streak.repeat (výchozí zapnuto) znovu na každém násobku (7, 14, 21 …).
  • Postup a splněné questy jsou v databázi serveru a přežijí restart; nic se nevyplatí dvakrát.

Jak napsat quest

#

Jeden řádek na quest v daily.quests nebo monthly.quests, části oddělené |:

Kód
id=ores | title=[en]Mine 16 ores[cs]Vytěž 16 rud | goal=mine #c:ores 16 | reward=item minecraft:diamond 2; keys 1 | reward-text=2 diamanty a klíč | icon=minecraft:iron_ore | weight=2

Povinné je jen id (jedno slovo) a goal. title a reward-text můžou mít části [en]…[cs]…; bez title se ukáže cíl, jak je napsaný, bez icon se ikona vybere podle cíle, bez reward-text odměny popíše Keystone sám. Řádek, který nejde přečíst, se vypíše do logu a přeskočí.

Cíle

Cíl Co počítá Jak
mine <id|#tag|*> <n>, kill … vytěžené bloky, zabité moby hned, z vlastních událostí Keystone
place <id|#tag|*> <n> položené bloky až blok vydrží anti-farm.window (viz níž)
vote [n] hlasy (modul votes) hned; hlas, když hráč není online, se započítá a vyplatí při dalším připojení
biome <id|#tag|*> [n] různé biomy, ve kterých hráč stál podle pozice hráče, každých look-every (10 s)
dimension <id> že tam byl stejně
craft, use, eat, pickup, break <id|#tag|*> <n> vlastní statistiky hry rozdíl od chvíle, kdy hráč quest dostal
walk, swim, boat, minecart, horse, fly <bloky> uražená vzdálenost stejně
fish <n>, trade <n>, play <minuty|2h> chycené ryby, obchody s vesničany, odehraný čas stejně
stat <kategorie>/<id> <n> jakákoli statistika, kterou hra vede stejně

Statistiky se čtou ze souboru hry každých stats-every (30 s) mimo vlákno serveru; hra ten soubor zapisuje při ukládání, takže u hráče online se zpožďují až o jeden autosave.

Proti farmení. Položený blok se do questu započítá, až vydrží anti-farm.window (výchozí 30 minut); když ho hráč rozbije dřív, nezapočítá se nikdy. Rozbití bloku stejného druhu, který hráč v tom chunku nebo v sousedním během okna položil, není těžba, takže písek, který spadl, nebo blok posunutý pístem je pořád jeho; bloky, které padají nebo se mění v jiné (anti-farm.loose: písek, štěrk, betonový prášek a beton, kovadliny …; id, #tagy nebo *_přípona), se berou jako jeden druh. Nic se nezapomíná, aby se udělalo místo: hráč s víc než anti-farm.most (4096) čekajícími bloky nedostane za stavění ani těžbu nic, dokud okno neuplyne. 0 jako okno celé hlídání vypne.

Odměny, spojené ; (stejná slova platí v daily.all-done, monthly.all-done a streak.goals, tam jedna odměna na řádek):

Odměna Co udělá
item <id> <n> itemy, zapsané jako pro /give
keys <n> klíče k bednám (modul crates)
xp <n> / xp <n>L body zkušeností / levely
rank <skupina> for 7d skupina na dobu (bez for natrvalo)
perk <výhoda> for 1d výhoda na dobu
badge <id> odznak (modul badges)
message <text> řádek do chatu
/<příkaz> jakýkoli příkaz za konzoli; {player} je jméno hráče

Řádek série: days=7 | reward=keys 2; xp 500 | reward-text=2 klíče k bedně.

Příkazy a oprávnění

#
  • /quests vypíše tvoje questy do chatu; s klientskou částí Keystone otevře obrazovku questů. /quests reroll <id>. Oprávnění keystone.quests, má ho každý (skupina default).
  • /keystone quests reset <hráč> dá hráči nové questy a vrátí mu přelosování. Oprávnění keystone.quests.admin.

S klientskou částí

#

Klientská část kreslí obrazovku questů a prvek HUD a ukáže upozornění, když je quest splněný. Stav dostává pod quests.state (když se pohne postup, nejvýš jednou za 2 vteřiny, a po připojení) a posílá quests.reroll; HUD čte quests a quests.resets (hodnoty HUD). Všechno se řídí oprávněním keystone.quests. Hráč bez klientské části nic nepřijde: chat řekne totéž.

API a události

#

GET /v1/quests (scope players.read): pooly, čas resetu, přelosování a odměny za sérii; s ?player= questy, postup a sérii jednoho hráče. Doplňky slyší QuestCompleted (hráč, id questu, daily nebo monthly) až po předání odměny.

Texty jsou v jazykových souborech pod quests.*; upravíš je na obrazovce Languages v editoru.

Pomohla vám tahle stránka?

Otevře panel zpětné vazby s touhle stránkou v příloze. Přistane do jedné fronty se vším ostatním.