Temnițele instanțiate (dungeon-ul de grup)
Dungeon-uri cu instanță proprie pentru fiecare grup (max 4): mobi scalați cu numărul de jucători, checkpoint-uri, revive automat din comă, pauză când toți sunt offline și persistență peste restart.
Dungeon-uri cu instanță proprie pentru fiecare grup (max 4): mobi scalați cu numărul de jucători, checkpoint-uri, revive automat din comă, pauză când toți sunt offline și persistență peste restart.
Toate instanțele trăiesc într-o SINGURĂ dimensiune dedicată (lostcube:dungeon, void); fiecare instanță primește un PLOT reciclabil, distanțat la 4096 de blocuri de celelalte. Harta (template-ul de structură) se citește ASINCRON și se plasează PE FELII din tick — serverul nu îngheață la crearea unei instanțe.
INTRAREA: prin portalurile din lumea normală — când te apropii, primești caseta „vrei să intri?” (caseta se re-armează doar dacă pleci din rază și revii). Liderul intră cu toată CEATA lui (max 4 jucători). Mobii instanței sunt SCALAȚI cu numărul de jucători (modificator pe viață/atac). Anti-spam: 10s cooldown la intrare.
PE PARCURS: checkpoint-uri care se declanșează o singură dată (rază 3 blocuri). Serverul folosește COMĂ în loc de moarte: dacă pici în comă în dungeon, după 5 secunde ești reînviat automat și teleportat la ultimul checkpoint; dacă RENUNȚI la comă (moarte reală), ieși din instanță. La deconectare ai o grație de 5 minute; membrii offline la închiderea instanței sunt întorși la locul lor la reconectare.
FINALUL: moartea BOSS-ului (marcat cu tag dedicat) completează instanța — cuferele de loot gated pe boss se deblochează (cu marcaje glowing), pornește ceremonia LOOT CRATE-urilor, iar punctul de IEȘIRE de final se activează abia acum (stă în camera boss-ului — nu te întreabă nimic în toiul luptei). Există și un punct de PLECARE liber lângă intrare, pentru cine a intrat din greșeală. Instanța mai rămâne 2 minute după victorie, apoi se curăță. Timeout = eșec.
PAUZA și PERSISTENȚA: când NICIUN membru nu mai e online, timerul îngheață (instanța intră în pauză cu timpul RĂMAS salvat). Instanțele active și cele completate se scriu pe disc (config/lostcube/dungeon_instances.json, la ~60s și la oprirea serverului) și se RESTAUREAZĂ după restart cu ACELAȘI id, în pauză — primul membru care se reconectează o repornește de la ultimul checkpoint. Mobii nu se re-invocă: sunt exact unde erau, în chunk-urile plotului.
#Cifre
- grup max 4 jucători
- ploturi la 4096 blocuri distanță
- checkpoint pe rază de 3 blocuri
- revive din comă după 5s
- grație 5 min la deconectare
- instanța rămâne 2 min după victorie
- cooldown intrare 10s
- salvare pe disc la ~60s
#Taste
| Tastă | Ce face |
|---|---|
F (în panoul de dungeon, tab-ul HARTA) | — |
#Comenzi
| Comandă | Ce face | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| `/dungeon <enter <id> \ | leave \ | panel \ | tool \ | mod <mod> \ | pos1 \ | pos2 \ | save <id> <nume...> \ | cancel \ | list \ | portals \ | mob ... \ | gate ... \ | reload \ | abandon>` | Temnițele instanțiate: jucătorii intră și ies din hărți; staff-ul capturează hărți, administrează mobii, cuferele și portalurile. Jucători: enter <id> intră în temnița aleasă (prin DungeonRouter, exact ca portalul), leave iese. Staff: panel deschide Panoul Temnițelor; tool dă bagheta; mod <mod> schimbă modul baghetei; pos1/pos2 fixează colțurile zonei de capturat; save <id> <nume> capturează zona ca StructureTemplate (max 2048×320×2048 și 1.500.000 de blocuri volum — plafon ca template-ul să rămână încărcabil) plus dungeon.json cu pozițiile relative; la suprascriere PĂSTREAZĂ reglajele făcute din panou (matricele de loot, numele cuferelor, tier-ul ancorelor, timeout, maxDeaths); primul cufăr devine „Cufărul Principal" cu cerință de boss. cancel golește sesiunea baghetei; list arată hărțile + instanțele active (stare, membri, morți); portals listează portalurile; reload recitește hărțile + portalurile; abandon abandonează instanța curentă. mob list/add <id> [boss]/move <nr>/remove <nr>/tp <nr>/boss <nr>/spawn <id>/restore <harta> administrează ancorele de mobi din harta în care STAI (restore readuce harta din backup). gate create <harta> [id] creează un portal la picioarele tale cu fața spre tine; gate <id> skin\ | culoare <skin>, scale <0.25..12>, yaw <±360>, yoffset <±32>, radius <1..16>, face (îl întoarce spre tine), stil gate\ | vortex, move (îl mută la tine), name <text>/noname, toggle (activare), tp, delete — toate se salvează în portals.json și se resincronizează live. |
#Subcomenzi pentru /dungeon
/dungeon abandon— Abandonezi instanța de dungeon în care ești (DungeonInstanceManager.abandon) — unealtă de staff. [staff (op ≥2 sau rang Helper+)]/dungeon cancel— Golește sesiunea baghetei tale (poziții, ancore, cufere marcate). [staff (op ≥2 sau rang Helper+)]/dungeon enter <id>— JUCĂTORI: intri în dungeonul dat prin DungeonRouter — exact drumul pe care îl face și portalul (instanțiere, membri, checkpoint-uri). id = id-ul hărții (autocomplete)/dungeon gate create <harta> [pid]— Creează un PORTAL NOU la picioarele tale, cu fața rotită automat spre tine, legat de harta dată. Fără [pid] id-ul portalului se generează liber; cu [pid] îl alegi tu (eșuează dacă există deja sau dacă harta nu există). Salvează în portals.json + resincronizează toți jucătorii. harta = id-ul hărții țintă (autocomplete); pid (opțional) = id-ul portalului [staff (op ≥2 sau rang Helper+)]/dungeon gate <id> culoare <skin>— Alias RO pentru „skin” — „culoarea portalului” e chiar skinul porții; același handler. id = portalul; skin = varianta de culoare [staff (op ≥2 sau rang Helper+)]/dungeon gate <id> delete— Șterge portalul din registru + resincronizează toți jucătorii. [staff (op ≥2 sau rang Helper+)]/dungeon gate <id> face— Orientează poarta cu FAȚA spre tine (poarta are o față: vârtejul luminos stă în fața fundalului întunecat; de pe partea greșită vezi spatele). Cere un jucător; din consolă eșuează cu mesaj. [staff (op ≥2 sau rang Helper+)]/dungeon gate <id> move— Mută portalul la picioarele tale, inclusiv în altă dimensiune (portalMoveHere). [staff (op ≥2 sau rang Helper+)]/dungeon gate <id> name <text…>— Setează numele plutitor de deasupra porții (afișat și în caseta de intrare). id = portalul; text = numele (text liber) [staff (op ≥2 sau rang Helper+)]/dungeon gate <id> noname— Șterge numele plutitor al porții (îl setează gol). [staff (op ≥2 sau rang Helper+)]/dungeon gate <id> radius <val>— Raza de declanșare a portalului (de la ce distanță te prinde intrarea). id = portalul; val = 1.0..16.0 (blocuri) [staff (op ≥2 sau rang Helper+)]/dungeon gate <id> scale <val>— Scara porții (mărimea vizuală), reglată live și salvată în portals.json. id = portalul; val = 0.25..12.0 [staff (op ≥2 sau rang Helper+)]/dungeon gate <id> skin <skin>— Schimbă LIVE skinul (varianta de culoare) al porții „The Origin Gate” a portalului: base, astral, chaos, solar, void, ember, frost, toxic, rose, gold, shadow, sculk, verdant, blood, storm, amethyst, pearl. Se salvează + sync imediat. id = portalul (autocomplete); skin = numele variantei (autocomplete; nume necunoscut → base) [staff (op ≥2 sau rang Helper+)]/dungeon gate <id> stil <stil>— Stilul vizual al porții: „gate” (cu ramă) sau „vortex” (doar vârtejul — designul „bila de portal”). id = portalul; stil = gate | vortex [staff (op ≥2 sau rang Helper+)]/dungeon gate <id> toggle— Activează/dezactivează portalul (un portal dezactivat nu mai teleportează). [staff (op ≥2 sau rang Helper+)]/dungeon gate <id> tp— Te teleportează la portalul dat. [staff (op ≥2 sau rang Helper+)]/dungeon gate <id> yaw <val>— Rotația porții în grade — reglaj manual când „face” nu nimerește orientarea dorită. id = portalul; val = -360..360 (grade) [staff (op ≥2 sau rang Helper+)]/dungeon gate <id> yoffset <val>— Decalajul pe verticală al porții față de blocul de ancoră. id = portalul; val = -32..32 (blocuri) [staff (op ≥2 sau rang Helper+)]/dungeon leave— JUCĂTORI: părăsești instanța curentă prin DungeonRouter (aterizezi la punctul de ieșire al hărții)./dungeon list— Listează hărțile salvate (id, nume, ancore, checkpoint-uri, cufere, timeout, maxDeaths) și instanțele ACTIVE (hartă, plot, stare, membri, morți). [staff (op ≥2 sau rang Helper+)]/dungeon mob add <id>— Adaugă o ancoră de mob la picioarele tale în instanța în care stai (prin DungeonPanelService.anchorAdd — aceeași acțiune ca din panou). id = specia din MobCatalog (autocomplete, fără mobii externi) [staff (op ≥2 sau rang Helper+)]/dungeon mob add <id> boss— Ca „mob add”, dar ancora e marcată de la început ca BOSS. id = specia din MobCatalog [staff (op ≥2 sau rang Helper+)]/dungeon mob boss <nr>— Comută marcajul de BOSS al ancorei cu numărul dat. nr = numărul ancorei (de la 1) [staff (op ≥2 sau rang Helper+)]/dungeon mob list— Listează ancorele de mobi ale hărții în care STAI (instanță activă), numerotate 1..N, cu numele mobului, poziția relativă și marcajul de boss. Cere să fii într-o instanță. [staff (op ≥2 sau rang Helper+)]/dungeon mob move <nr>— Mută ancora cu numărul dat LA PICIOARELE tale (anchorMove). nr = numărul ancorei din „mob list” (de la 1) [staff (op ≥2 sau rang Helper+)]/dungeon mob remove <nr>— Șterge ancora cu numărul dat. nr = numărul ancorei (de la 1) [staff (op ≥2 sau rang Helper+)]/dungeon mob restore <harta>— Restaurează definiția hărții date din backupul .bak (DungeonMaps.restoreFromBackup); raportează câte ancore a recuperat și resincronizează panoul. harta = id-ul hărții de restaurat [staff (op ≥2 sau rang Helper+)]/dungeon mob spawn <id>— Spawnează imediat un mob din catalog lângă tine, în instanță (test rapid, prin DungeonPanelService.mobSpawn). id = specia din MobCatalog (autocomplete) [staff (op ≥2 sau rang Helper+)]/dungeon mob tp <nr>— Te teleportează la ancora cu numărul dat. nr = numărul ancorei (de la 1) [staff (op ≥2 sau rang Helper+)]/dungeon mod <mod>— Schimbă MODUL baghetei de dungeon pentru sesiunea ta: entry (intrarea), checkpoint, mob (ancoră de mob), loot (cufăr), exit (ieșirea de final), leave (punctul de părăsire), portal (plasare portal), portal_move (poziționare fină a unui portal existent), spawn_exit (unde aterizezi în lumea normală la ieșire). mod = entry | checkpoint | mob | loot | exit | leave | portal | portal_move | spawn_exit (autocomplete) [staff (op ≥2 sau rang Helper+)]/dungeon panel— Deschide Panoul Temnițelor (interfața de administrare a hărților, cuferelor, ancorelor și portalurilor). [staff (op ≥2 sau rang Helper+)]/dungeon portals— Listează toate portalurile de dungeon: id, harta țintă, poziția, raza și dacă sunt dezactivate. [staff (op ≥2 sau rang Helper+)]/dungeon pos1— Setează PRIMUL colț al zonei de capturat la poziția ta (în sesiunea baghetei, per dimensiune). [staff (op ≥2 sau rang Helper+)]/dungeon pos2— Setează AL DOILEA colț al zonei de capturat la poziția ta. [staff (op ≥2 sau rang Helper+)]/dungeon reload— Reîncarcă de pe disc hărțile de dungeon (DungeonMaps) și portalurile (DungeonPortalStore); raportează numerele. [staff (op ≥2 sau rang Helper+)]/dungeon save <id> <nume…>— Capturează zona pos1–pos2 într-un StructureTemplate (cu entități; blocurile structure_void sunt excluse) și scrie template.nbt + dungeon.json cu pozițiile RELATIVE la colțul minim. Limite: 2048×320×2048 și max 1.500.000 de blocuri. Cere intrarea (entry) setată; punctele din afara zonei sunt sărite și numărate. La SUPRASCRIERE păstrează reglajele făcute din panou (matricele de loot, numele cuferelor, tier-ul ancorelor, timeout, maxDeaths). id = [a-z0-9_-]{1,48}; nume = numele afișat al hărții (text liber) [staff (op ≥2 sau rang Helper+)]/dungeon tool— Îți dă Bagheta de dungeon (unealta cu care marchezi în teren intrarea, checkpoint-urile, mobii, cuferele etc.). [staff (op ≥2 sau rang Helper+)]