diff options
author | orwell <orwell@bleipb.de> | 2025-05-27 21:17:10 +0200 |
---|---|---|
committer | orwell <orwell@bleipb.de> | 2025-05-27 21:17:10 +0200 |
commit | 3470687be0af7254aca478ead1e9c72757edf070 (patch) | |
tree | 41781361c979cfda61a924d7471978037d68005e /ch_data/api.md | |
parent | 8506dd2825b715293138976a5ad1fa11a46206a7 (diff) | |
download | advtrains-cesky-hvozd.tar.gz advtrains-cesky-hvozd.tar.bz2 advtrains-cesky-hvozd.zip |
Add CH dependencies temporarily.cesky-hvozd
Before merge to master should remove them again and split out util functions (e.g. formspec lib)
Diffstat (limited to 'ch_data/api.md')
-rw-r--r-- | ch_data/api.md | 109 |
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. |