1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
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.
|