Stránka 1 z 2

Výmena knihy za knihu v command blocku

Napsal: 09 lis 2015, 07:34
od ZionZangar
Server: 82.208.17.24:27582

Ahoj všichni
potřeboval bych poradit s problémem výměny itemu (podepsané knihy) v command blocku

Jde mi o tuto situaci:
hráč si vyzvedl podepsanou knihu s instrukcemi co má dělat a souřadnicemi místa kde má odevzdat tuto knihu a za ní dostane podepsanou knihu novou, z dalšími instrukcemi a souřadnicemi nového místa (cíle)

- jde mi o to jak tyto knihy vyměnit (to že mu jí pomocí command give dam vím)
- potřebuji aby výměna proběhla pouze v případě že dotyčný má knihu (např.) č. 2 za kterou dostane knihu č. 3 a tak dále
- v případě že nebude mít správnou knihu aby mu to například napsalo : Smolík, nemáš správnou knihu, asi jsi vynechal stanoviště :-)
- potřebuji to speciálně pro knihy kvůli složitějším instrukcím

Děkuji za rady a typy
P.S. ty command blocky bych bral raději než nějaký plugin a navíc bych se chtěl vyvarovat redstounu (s ním vůbec neumím)

Re: Výmena knihy za knihu v command blocku

Napsal: 09 lis 2015, 10:58
od Hanakocz
Přes commandy by to nejspíš šlo, ale když jsem se snažil naposledy u Plooooooooogera, tak jeho server odmítl dělat to samé, jak se chovaly commandbloky v singleplayeru. Takže.....nemusí to být jednoduché.
Nicméně pokud s těmi knihami jsou v prostoru, kde není přístup ke kovadlině, tak se to dá udělat přes LOCK tagy, nicméně ne vždy bude vanilla způsob zcela bezpečný. Problém tam je hlavně v tom, že ne všechny způsoby respektujou správné NBT tagy (ale i na to jsem teď viděl VELMI pěkný fígl!), takže kdyby se mi chtělo(když budu mít večer čas), můžu zkusit něco zkonstruovat (nejlépe rovnou na serveru, je k tomu ale potřeba /gm 1 a /op ), zvlášť proto, že je často třeba i trocha toho redstonu, který u takových věcí je dost zásadní.

Re: Výmena knihy za knihu v command blocku

Napsal: 09 lis 2015, 13:14
od ZionZangar
Koukám že vše je daleko složitější než si představuji :-)

budu asi potřebovat nejprve vysvětlit základní pojmy jako:
- co jsou tagy NBT
- co přesně znamená LOOTS TABLES

zmiňované forum jsem pročítal a také jsem tomu moc nerozuměl :-)
nicméně chápu li to správně bez těch vyhazovacích děr a redstone to nepůjde
myslel jsem že to půjde nějak takto: give kniha id3 pokud uz je kniha id2 - clear kniha id2

Re: Výmena knihy za knihu v command blocku

Napsal: 09 lis 2015, 13:39
od Hanakocz
Ok, tak nejdřív teorie pro samostudium, s tím se dá začít už teď:)
NBT je zkratka Named Binary Tag, tedy jde o parametry a jejich hodnoty. gól je v tom, že všechna data v Minecraftu jsou tak uložená, mají nějakou strukturu a všechny části (server, klient, atd) ví, jaká data očekávat a jak je číst.
Třeba tu si můžeš prohlédnout strukturu dat o hráči: http://minecraft.gamepedia.com/Player.dat_format , bloky, předměty atd jsou uloženy podobně.

Jde o to, že pokud dokážeš tato data číst a upravovat, tak můžeš v Minecraftu změnit skoro cokoliv. Tedy....zase v rámci mezí, ale dá se s tím dělat opravdu velká množina věcí, o kterých se ti ani nesnilo.

Jde o to, že i kniha má nějak omezené, jaké tagy může mít a co v nich.
http://minecraft.gamepedia.com/Player.d ... tten_Books

author: The author of the written book.

title: The title of the written book.

pages: The list of pages in the book.
Víceméně se to eliminuje na tyto tři, tudíž musíš knihu rozlišit podle autora a názvu. Další problém je, že ne všechny příkazy dokážou rozlišit víc, než základní ID.

LOOTS TABLES by zase měly ukládat věci, jako co mobové dropujou, co je v dungeon chestkách atp.

Ještě si nastuduj, co jsou scoreboards , taky je budeme potřebovat. http://minecraft.gamepedia.com/Scoreboard A pokročilou syntaxi příkazů, hlavně target selectory: http://minecraft.gamepedia.com/Commands

Teď jdu na oběd, pak do školy a večer na to můžeme kouknout.

Re: Výmena knihy za knihu v command blocku

Napsal: 09 lis 2015, 14:19
od Dart
Myslim, ze by stacil udelat prikaz, ten napises do command blocku, ktery ten prikaz spusti a nasledne checkne inventar hrace, vymeni knihy atd. Je to jeden prikaz a jedna podminka v Jave, nevim proc z toho delat vedu.

Driv sem chtel taky vse resit pres command bloky, ale kdyz sem si udelal test + sem zkusil MobArenu pomoci command bloku bralo to vic CPU nez sam plugin na MobArenu, ktery neni naroubovany na miru, jako command bloky.

Re: Výmena knihy za knihu v command blocku

Napsal: 10 lis 2015, 06:46
od ZionZangar
Hanako diky za materiál ke studiu :-) byl podnětný i když pro mě hodně matoucí, ale učím se ;-)

každopádně pokud to bude jen trochu možné chtěl bych zůstat u co nejednoduší varianty viz Darkuv návrh, přeci jen by místa výměn knih měla být dost mobilní a pouze dočasná.

v příkazu clear jsem vyčetl porovnání s hodnotou 0 což by mohlo být to co potřebujme k určení zda kniha je ta správná (asi by stačilo porovnat jen název knihy) pak sebrat s inventáře a vložit knihu novou. Teda zatím čistá teorie :-D

Darku můžeš svou teorii více rozvést???

Re: Výmena knihy za knihu v command blocku

Napsal: 10 lis 2015, 12:02
od Hanakocz
Darkova teorie je na bázi jednoduchého pluginu, který to bude mít zabudované v sobě a ty jen uděláš příkaz.
Chtěl jsem se na to včera kouknout, ale na serveru nidko nebyl a byl zamčený, tak jsem to zas vypnul a šel dál hrát tanky :D
Tak jsou rámcově 2 možnosti. Buď knihu na nějakém místě upustit na zem a zabít ji (/kill @e[type=Item ... ] , enbo ji smazat z inventáře pomocí /clear. Ta citlivost na data je ale důležitá, protože ne u všech příkazů je to stejné a je třeba to dotestovat, já si to z hlavy nepamatuju (a jak jsem říkal, na jednom serveru se mi to chovalo jinak, než na singlu)

Re: Výmena knihy za knihu v command blocku

Napsal: 11 lis 2015, 13:15
od Dart
V prvni rade by chtelo se naucit cist, nejsem Dark ale Dart

Pro studium jak vytvorit plugin muzes pouzit napriklad tento tutorial: https://www.spigotmc.org/wiki/creating- ... n-eclipse/ nebo si vygoogli nejake video nevim co ti vic vyhovuje.

Az budes psat logiku toho pluginu ve tvem pripade vyuzijes tyto dokumentace:
https://hub.spigotmc.org/javadocs/bukki ... Inventory()
https://hub.spigotmc.org/javadocs/bukki ... Stack.html
a Interface "BookMeta"

Nebo nekoho slusne popros pripadne nabidni nejakou financni odmenu a jiste ti takovy plugin udelaji.

Re: Výmena knihy za knihu v command blocku

Napsal: 11 lis 2015, 14:21
od marty_
mne to taky zaujalo... darte ty bys to dokazal? samozrejme za odmenu?

Re: Výmena knihy za knihu v command blocku

Napsal: 12 lis 2015, 08:38
od ZionZangar
:-) Darte OK už komolit nebudu ..... ale Dark je taky hezké ;-)

tak a zpět k věci

Darte díky za materiál ke studiu .....

Každopádně toto potřebuji pro jeden event, který se možná už nebude opakovat a proto jsem hledal co nejednodušší variantu a navíc jsem chtěl aby to byl elegantní :-) nicméně obě varianty řešení jsou v tuto chvíli pro mě náročné na učení a tak to budu muset vyřešit jinak. Holt jim všechny knihy zůstanou v inventáři až do konce eventu a pak je odevzdají až na konci všechny najednou.

Hanako i tobě díky za materiál :-) studovat budu určitě ...