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.
Na téhle stránce 5 částí
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.countzdaily.quests(výchozí 3) amonthly.countzmonthly.quests(výchozí 3). Quest padá tak často, jak říká jehoweight; 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ásmutime-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.goalsplatí při určitém počtu dní; sestreak.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é |:
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í
#/questsvypíš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ý (skupinadefault)./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.