aboutsummaryrefslogtreecommitdiff
path: root/ch_data/api.md
diff options
context:
space:
mode:
Diffstat (limited to 'ch_data/api.md')
-rw-r--r--ch_data/api.md109
1 files changed, 109 insertions, 0 deletions
diff --git a/ch_data/api.md b/ch_data/api.md
new file mode 100644
index 0000000..05ca9cc
--- /dev/null
+++ b/ch_data/api.md
@@ -0,0 +1,109 @@
+# Veřejné funkce
+
+## Data
+
+ ch_data.online_charinfo[player_name]
+
+Tabulka neperzistentních dat pro danou postavu, která je ve hře. Musí obsahovat minimálně následující položky:
+
+* formspec_version : int : nejvyšší verze formspec podporovaná klientem; 0, pokud údaj není k dispozici
+* join_timestamp : int : časová známka vytvoření online_charinfo (vstupu postavy do hry), z get_us_time()
+* lang_code : string : jazykový kód (obvykle "cs")
+* news_role : string : co udělat po připojení (významy jednotlivých řetězců se mění)
+* player_name : string : přihlašovací jméno
+
+ ch_data.offline_charinfo[player_name]
+
+Tabulka perzistentních dat pro danou postavu. Vytváří se pro každou známou postavu. Musí obsahovat minimálně
+položky z ch_data.initial_offline_charinfo.
+
+ ch_data.initial_offline_charinfo
+
+Tabulka klíč/hodnota. Klíče specifikují klíče vyžadované v záznamech offline_charinfo. Hodnoty specifikují
+výchozí hodnoty těchto klíčů, které se buď doplní při načtení, pokud nejsou k dispozici, nebo se doplní
+při vytvoření nového záznamu offline_charinfo. Položky v této tabulce mohou být přepisovány z jiných
+módů, ale tyto změny se uplatní teprve při vytváření nových záznamů offline_charinfo.
+
+## Funkce
+
+ ch_data.get_flag(charinfo : table, flag_name : string, default_result : any) -> string or any
+
+Z daného charinfo (offline_charinfo) přečte znak odpovídající požadovanému příznaku. Není-li příznak
+dostupný, vrací default_result, popř. " ".
+
+ ch_data.get_flags(charinfo : table) -> table
+
+Z daného charinfo (offline_charinfo) přečte všechny příznaky a vrátí je ve formě tabulky.
+Vhodné pro dumpování.
+
+ ch_data.set_flag(charinfo, flag_name, value) -> bool
+
+V daném charinfo (offline_charinfo) nastaví hodnotu požadovaného příznaku. Pokud příznak neexistuje, vrátí false.
+
+ ch_data.get_joining_online_charinfo(player) -> table
+
+Volá se z callbacků on_joinplayer; vrátí ch_data.online_charinfo[player_name]. Pokud není, inicializuje jej.
+Může být použita víckrát po sobě.
+
+ ch_data.get_leaving_online_charinfo(player) -> table
+
+Volá se z callbacků on_leaveplayer; vrátí ch_data.online_charinfo[player_name] a vyřadí ho z tabulky.
+Pokud už bylo vyřazeno, vrátí poslední vyřazenou tabulku. To umožňuje pracovat s online daty postavy
+po celou dobu jejího odpojování.
+
+ ch_data.delete_offline_charinfo(player_name) -> bool, string
+
+Pokud postava není ve hře, smaže její ch_data.offline_charinfo[] se vším všudy a vrátí true.
+Pokud postava je ve hře, nebo její offline_charinfo neexistuje, vrátí false a chybovou zprávu.
+
+ ch_data.get_offline_charinfo(player_name) -> table
+
+Vrátí ch_data.offline_charinfo[player_name]. Pokud neexistuje, skončí s chybou.
+
+ ch_data.get_or_add_offline_charinfo(player_name) -> table
+
+Vrátí ch_data.offline_charinfo[player_name]. Pokud neexistuje, inicializuje nové.
+
+ ch_data.save_offline_charinfo(player_name) -> bool
+
+Uloží ch_data.offline_charinfo[player_name]. Vrátí false, pokud dané offline_charinfo neexistuje nebo je jméno postavy nepřijatelné.
+
+ ch_data.clear_help(player)
+
+Pro danou postavu smaže ch_data.online_charinfo[player_name].navody (perzistentně).
+
+ ch_data.should_show_help(player : PlayerRef, online_charinfo : table, item_name : string) -> table or nil
+
+Otestuje, zda podle online_charinfo má dané postavě být zobrazený v četu návod k položce daného názvu.
+Pokud ano, nastaví příznak, aby se to znovu již nestalo, a vrátí definici daného předmětu,
+z níž lze z položek description a _ch_help sestavit text k zobrazení. Jinak vrátí nil.
+
+ ch_data.nastavit_shybani(player_name : string, shybat : bool) -> bool
+
+Pro danou postavu perzistentně nastaví shýbání. (Volá ch_data.save_offline_charinfo().)
+
+# Příkazy v četu
+
+## /delete_offline_charinfo
+
+Syntaxe:
+
+``/delete_offline_charinfo Jmeno_postavy``
+
+Odstraní údaje o postavě uložené v systému ch_data. Postava nesmí být ve hře. Vyžaduje právo `server`.
+
+## /návodyznovu
+
+Syntaxe:
+
+``/návodyznovu``
+
+Smaže údaje o tom, ke kterým předmětům již byly postavě zobrazeny nápovědy, takže budou znovu zobrazovány nápovědy ke všem předmětům.
+
+## /shýbat
+
+Syntaxe:
+
+``/shýbat <ano|ne>``
+
+Trvale vypne či zapne shýbání postavy při držení Shiftu.