diff --git a/_doc/HELP.md b/_doc/HELP.md index ccc86b2..864f2a2 100644 --- a/_doc/HELP.md +++ b/_doc/HELP.md @@ -12,8 +12,8 @@ ## Podstawowe ustawienia -Ww pliku {~/.tfrc} (skopiowanym z [tfrc](../tfrc)) należy ustawić podstawowe zmienne: schemat kolorów, typ klawiatury oraz ścieżkę do katalogu z logami. -Po pierwszym zalogowaniu się na daną powstać powstaje plik {~/.tf///.tf}, będący kopią [stdplayer.tf](../common/stdplayer.tf). W pliku tym należy ustawić kilka podstawowych zmiennych dotyczących ekwipunku itp. +W pliku {~/.tfrc} (skopiowanym z [tfrc](../tfrc)) należy ustawić podstawowe zmienne: schemat kolorów, typ klawiatury oraz ścieżkę do katalogu z logami. +Po pierwszym zalogowaniu się na daną powstać powstaje plik {~/.tf///.tf}, będący kopią [common/std/player.tf](../common/std/player.tf). W pliku tym należy ustawić kilka podstawowych zmiennych dotyczących ekwipunku itp. Oba pliki zawierają komentarze, co oznacza która zmienna i jakie wartości może przyjmować. ## Własne modyfikacje @@ -24,6 +24,7 @@ __UWAGA:__ Skrypty w katalogu {~/tf} nie powinny być zmieniane przez użytkowni | - | - | | `/alias pod podskocz` | - tworzy aliasa `pod` wykonującego _podskocz_ | | `/def pod = podskocz` | - tworzy komendę `/pod` wykonującą _podskocz_ | +| `/def pod2 = podskocz%; sp` | - tworzy komendę `/pod` wykonującą _podskocz_, a potem _sp_ (w TF-ie komendy rozdziela się sekwencją %;) | # Bindy @@ -31,15 +32,15 @@ __UWAGA:__ Skrypty w katalogu {~/tf} nie powinny być zmieniane przez użytkowni | | | - | - | -| `F1` - `F8` | - ustawiane przez użytkownika komendami `/f1`, `/f2`, ..., `/fn` | +| `F1` - `F8` | - ustawiane przez użytkownika komendami `/f1`, `/f2`, ..., `/f8` | | `F9` | - _zabij _ (ustawiany komendą `/cel`) | | `Esc + F9` | - _przelam obrone _ (ustawianego komendą `/cel`) | | `F10` | - _zabij _ (ustawiany komendą `/cel2`) | | `Esc + F10` | - _przelam obrone _ (ustawianego komendą `/cel2`) | | `F11` | - _przestan walczyc_ | -| `F12` | - autołazik (opisany w sekcji "Łazik") | -| `[` | - atak na wskazanego | -| `]` | - przelamanie wskazanego | +| `F12` | - następna lokacja (szerzej opisane w sekcji "Łazik") | +| `[` | - atak na cel ataku | +| `]` | - przelamanie celu ataku | ## Klawiatura numeryczna @@ -48,7 +49,7 @@ __UWAGA:__ Skrypty w katalogu {~/tf} nie powinny być zmieniane przez użytkowni | `/` | - normalne chodzenie | | `*` | - przemykanie | | `-` | - przemykanie z drużyną | -| `5` | - ruch łazika na kolejną lokację (opisany w sekcji "Łazik") | +| `5` | - następna lokacja (szerzej opisane w sekcji "Łazik") | | `+` | - _gora_ | | `.` | - _dol_ | | `Enter` | - _kondycja wszystkich_ | @@ -64,10 +65,10 @@ Klawisz odwrotnego apostrofu (\`) binduje się dynamicznie zależnie od tekstu o | | | - | - | -| __róża wiatrów__ | - pokazuje możliwe wyjścia z lokacji (innym kolorem zaznaczony jest kierunek, z którego przyszła postać | +| __róża wiatrów__ | - pokazuje możliwe wyjścia z lokacji (innym kolorem zaznaczony jest kierunek, z którego postać przyszła) | | __K:__ | - kondycja | | __Z:__ | - zmęczenie | -| __M:__ | - Mana | +| __M:__ | - mana | | __B:__ | - próba blokowania lub udane zablokowanie (zarówno przez siebie, jak i przeciwko sobie) | | __W:__ | - warning, na przykład ogłuszenie lub wytrącenie broni | | __R:__ | - kto aktualnie został wskazany jako rozkaz ataku | @@ -77,7 +78,8 @@ Klawisz odwrotnego apostrofu (\`) binduje się dynamicznie zależnie od tekstu o | __Weapon:__ | - status broni (przyjmuje wartości (off/ON/ERR) | | __Cover:__ | - gotowość do zasłony lub czas pozostały do następnej próby | | __Order:__ | - gotowość do wydania rozkazu lub czas pozostały do nastepnej próby | -| __Mail:__ | - status poczty (przyjmuje wartości MAIL dla jednego listu lub MULTI dla kilku) | +| __Aggro:__ | - ilość postaci koncentrujących się na walce z postacią (odświeżane przy sprawdzaniu kondycji) | +| __Mail:__ | - status poczty (NEW - jeden list, NEW+ - więcej listów, READ - list do odczytania lokalnie, SEND - list oczekuje na wysłanie, SYNC - w trakcie aktualizacji (przez zwierzątko pocztowe) | | __Warn:__ | - ostrzeżenie, np. o walce bez broni | | __/__ | - zabici przez siebie / polegli w ogóle od zalogowania | @@ -97,14 +99,20 @@ Klawisz odwrotnego apostrofu (\`) binduje się dynamicznie zależnie od tekstu o | `/glow ` | - włącza kolorowanie aż do nastepnego `/reload` lub `/unglow` | | `/unglow ` | - wyłącza kolorowanie +## Statystyki + +| | +| `/exp` | - medytuje, ocenia cechy i wstaje (__UWAGA:__ nie odpowiadam za dokładność licznika ;-) | +| `/zabici` | - pokazuje statystyki zabitych przez siebie i innych | +| `/postepy` | - pokazuje czas osiągnięcia kolejnych postępów oraz ilość zabitych przez siebie/przez wszystkich w tym momencie | + ## Ogólne | | | - | - | -| `/f1 ` - `/f8 ` | - binduje klawisze `f1` - `F8` pod wskazane komendy | +| `/f1 ` - `/f8 ` | - binduje klawisze `F1` - `F8` pod wskazane komendy | | `/kowal` | - rozpoczyna naprawę broni i zbroi | | `/poczta` | - wyświetla informacje o otrzymanych listach i/lub wiadomościach | -| `/exp` | - medytuje, ocenia cechy i wstaje | ## Bojowe @@ -115,7 +123,6 @@ Klawisz odwrotnego apostrofu (\`) binduje się dynamicznie zależnie od tekstu o | `/cel2 ` | - analogicznie do `/cel `, drugi cel ataku | | `/am` | - wyświetla dostępne tryby ataku oraz informuje o aktualnie ustawionym | | `/am ` | - ustawia tryb ataku o danym numerze | -| `/zabici` | - pokazuje statystyki zabitych przez siebie i innych | ## Poruszanie się @@ -129,18 +136,19 @@ Klawisz odwrotnego apostrofu (\`) binduje się dynamicznie zależnie od tekstu o | | | - | - | | `/op` | - zagląda do pojemnika (plecaka, torby, sakwy itp. - rozpoznawane automatycznie przy zakładaniu) | -| `/dp ` | - wkłada do pojemnika | | `/zp ` | - wyjmuje z pojemnika | +| `/dp ` | - wkłada do pojemnika | | `/np` | - _napelnij plecak_ (lub inny pojemnik) | -| `/sd` | - zdejmuje wszystkie zbroje i wkłada je do pojemnika | | `/sz` | - wyjmuje wszystkie zbroje z pojemnika i zakłada je | -| `/bd` | - opuszcza broń i chowa ją do pojemnika lub pochwy (zależnie od ustawień w pliku postaci) | +| `/sd` | - zdejmuje wszystkie zbroje i wkłada je do pojemnika | | `/bz` | - wyjmuje broń z pojemnika lub pochwy (zależnie od ustawień w pliku postaci) i dobywajej | +| `/bd` | - opuszcza broń i chowa ją do pojemnika lub pochwy (zależnie od ustawień w pliku postaci) | +| `/szz` | - wyjmuje sztylet i dobywa go (dla zawodów bez broni ciętych noszących sztylet dodatkowo | +| `/szd` | - opuszcza sztylet i chowa go (dla zawodów bez broni ciętych noszących sztylet dodatkowo | | `/dw ` | - wkłada do (pierwszego) woreczka | | `/zw ` | - wyjmuje z (pierwszego woreczka)| | `/d2w` - `/d8w` | - analogicznie do `/dw`, dla drugiego - ósmego woreczka | | `/z2w` - `/z8w` | - analogicznie do `/zw`, dla drugiego - ósmego woreczka | -| `/wycen ` | - wycenia wszystkie w sklepie i pokazuje podsumowany zysk w najwyższych możliwych nominałach | | `/ocenkamienie` | - ocenia kamienie i wyświetla ich szacowaną wartość w najwyższych możliwych nominałach | # Schematy kolorów @@ -163,11 +171,11 @@ Mechanizm list służy do kolorowaia imion i/lub opisów innych postaci (oczywi # Łazik -Klawisz `5` na klawiaturze numerycznej powoduje ruch o jedną lokację - na lokacjach z dwoma wyjściami pójdzie w stronę, z której postać nie przyszła (przydatne na traktach - można klikać co żądany czas `5` zamiast wpisywać kierunki). Inicjowany na lokacji z więcej niż dwoma wyjściami nie robi nic. +Klawisze `5` na klawiaturze numerycznej oraz `F12` na zwykłej powodują ruch o jedną lokację - na lokacjach z dwoma wyjściami pójdzie w stronę, z której postać nie przyszła (przydatne na traktach - można klikać klawisz zamiast wpisywać kierunki). Inicjowany na lokacji z więcej niż dwoma wyjściami nie robi nic. Chodzenie w ten sposób uwzględnia tryb chodzenia (zwykłe/przemykanie/przemykanie z drużyną). # Drużyna Przy zmianie drużyny (dołączanie, opuszczanie, zmiana przywódcy, przekazanie itp.) należy wcisnąć kombinację klawiszy `Control + d`. Dzięki temu podczas wywołania komendy _kondycja wszystkich_ przy członkach drużyny pojawią się klawisze przypisane do danej osoby (z zakresu f1 - f8). Wciśnięcie kombinacji `Esc + ` będzie próbowało daną osobę zasłonić. -__UWAGA:__ skryptowi do odmiany daleko do doskonałości. Trzeba dopisywać wyjątki - póki co staram się wpisywać je globalnie (docelowo będzie to przeniesione do plików prywatnych w katalogu _~/.tf_), dlatego najlepiej będzie przypadki do dopisania [zgłosić](https://bitbucket.org/ftpd/tf-scripts/issues) - skorzystają na tym wszyscy użytkownicy skryptów. +__UWAGA:__ skryptowi do odmiany daleko do doskonałości. Czasami w pliku {~/.tf//exceptions.tf} trzeba sobie dopisać wyjątek. Przykładowe znajdują się w [common/std/exceptions.tf](../common/std/exceptions.tf) i są kopiowane do {~/.tf} podczas pierwszego uruchomienia skryptów. diff --git a/_doc/pasek.png b/_doc/pasek.png index 4e4f964..654642e 100644 Binary files a/_doc/pasek.png and b/_doc/pasek.png differ diff --git a/common/array.tf b/common/array.tf deleted file mode 100644 index f4aa734..0000000 --- a/common/array.tf +++ /dev/null @@ -1,200 +0,0 @@ -/def ustaw_indeksy = \ - /for i 1 (rozmiar_tablicy_druzyna) /use_index druzyna $$[{i}]%;\ - /for i 1 (rozmiar_tablicy_druzyna_bie) /use_index druzyna_bie $$[{i}] - -/def rozmiar_tablicy = \ - /if ({#} < 1) \ - /echo Musisz podac nazwe zmiennej!%;\ - /echo Na przyklad : /rozmiar_tablicy druzyna%;\ - /return %;\ - /endif %;\ - /if (if_array_exists({1})) \ - /let PomocniczaZmienna=$(/eval /echo %%_array_%{1})%;\ - /let tab=$[replace("|", " ", {PomocniczaZmienna})]%;\ - /set rozmiar_tablicy_%{1}=$(/policz_tablice %{tab})%;\ - /else \ - /echo Nie ma takiej zmiennej '%{1}'. %;\ - /endif - -/def use_index = \ - /if ({#} != 2) \ - /echo You must specify the name of an array, and number of index, which you want to check. %;\ - /return %;\ - /endif %;\ - /if (if_array_exists({1})) \ - /let rozmiar_tablicy=$(/policz_tablice $[replace("|", " ", $(/eval /echo %%_array_%{1}))])%;\ - /uzyj_indeksu %{2} %{1} $[replace("|", " ", $(/eval /echo %%_array_%{1}))]%;\ - /else \ - /echo There is no array with name '%{1}'!%;\ - /endif - -/def uzyj_indeksu = \ - /let _nr=%{1}%;\ - /let _ta=%{2}%;\ - /shift %{1}%;\ - /shift %;\ - /set __%{_ta}_pozycja_%{_nr}=%{1} -/if ($(/list mesg) =~ NULL) \ - /def mesg = \ - /if (!getopts("iw", "")) /return 0%%;/endif %%;\ - /if ({opt_i}) \ - /test echo(strcat("@{BCgreen}####@{n}", " @{Cyellow}", {*}), "", 1) %%;\ - /elseif ({opt_w}) \ - /test echo(strcat("@{BCgreen}####@{n}", " @{BCred}", {*}), "", 1) %%;\ - /else \ - /test echo(strcat("@{BCgreen}####@{n}", " ", {*}), "", 1) %%;\ - /endif %;\ -/endif - -/set biblioteka_tablic_wersja=1.1 -/set last_update_tablicy=2005-10-04 - -/def podziel_linie = \ - /let string=%{1}%;\ - /let dlugosc=%{2}%;\ - /if (strlen(str) > {dlugosc}) \ - /mesg -w String ma wiecej znakow niz okreslona ich dlugosc. %;\ - /return %;\ - /endif %;\ - /let dlugosc_bez=$[{dlugosc} - strlen(string)]%;\ - /let dlugosc_bez_podzial=$[expr({dlugosc_bez} / 2)]%;\ - /let string_koncowy=|$[strrep(" ", {dlugosc_bez_podzial})]%{string}$[strrep(" ", {dlugosc_bez_podzial})]|%;\ - /echo -p @{Cgreen}%{string_koncowy} - -/def ?array = /array_help - -/def array_help = \ - /echo -p @{Cgreen}+$[strrep("-", 78)]+ %;\ - /test podziel_linie("Biblioteka tablic do TF'a, by volus", 78)%;\ - /test podziel_linie(strcat("Version ", biblioteka_tablic_wersja), 78)%;\ - /test podziel_linie(strcat("Ostatnia aktualizacja biblioteki: ", last_update_tablicy), 78)%;\ - /echo -p @{Cgreen}|$[strrep(" ", 78)]| %;\ - /echo -p @{Cgreen}|$[strrep(" ", 78)]| %;\ - /echo -p @{Cgreen}| * /add_array nazwa elem1 elem2 elem3 elem4 ... |%;\ - /echo -p @{Cgreen}| Tworzy tablice nazwana 'nazwa' z elementow 'elem1 elem2' itp. |%;\ - /echo -p @{Cgreen}|$[strrep(" ", 78)]| %;\ - /echo -p @{Cgreen}| * /add_index nazwa elem1 elem2 elem4 elem4 ... |%;\ - /echo -p @{Cgreen}| Dodaje element(y) do tablicy 'nazwa' |%;\ - /echo -p @{Cgreen}|$[strrep(" ", 78)]| %;\ - /echo -p @{Cgreen}| * /sizeof_array nazwa |%;\ - /echo -p @{Cgreen}| Zwraca ilosc elementow tablicy 'nazwa' |%;\ - /echo -p @{Cgreen}|$[strrep(" ", 78)]| %;\ - /echo -p @{Cgreen}| * /check_index nazwa nr_indeksu |%;\ - /echo -p @{Cgreen}| Zwraca wartosc 'nr_indeksu' z tablicy 'nazwa' |%;\ - /echo -p @{Cgreen}|$[strrep(" ", 78)]| %;\ - /echo -p @{Cgreen}| * /member_array elem tablica |%;\ - /echo -p @{Cgreen}| Sprawdza, czy 'elem' jest elementem tablicy 'tablica' |%;\ - /echo -p @{Cgreen}+$[strrep("-", 78)]+ - -/def if_array_exists = \ - /if ($(/listvar -s ogolne_%{*})) \ - /result 1%;\ - /endif - -/def add_array = \ - /if ({#} < 2) \ - /mesg -i Musisz podac nazwe tablicy i przynajmniej jeden jej element %;\ - /mesg -i Np: /add_array druzyna jarek marek franek%;\ - /return %;\ - /endif %;\ - /if (regmatch("[()|]", {*})) \ - /mesg -i Nazwa tablicy oraz elementy nie moga miec w sobie znakow '(', ')', oraz '|'.%;\ - /mesg -w Uwaga! 1 element liczony jest jako 1 wyraz, liczba badz litera!%;\ - /mesg -w Wiec spacja liczona jest jako koniec elementu tablicy.%;\ - /return %;\ - /endif %;\ - /set _array_%{1}=$[replace(" ", "|", {-1})]| - -/def add_index = \ - /if ({#} < 2) \ - /mesg -i Musisz podac nazwe tablicy i przynajmniej jeden jej element do dodania.%;\ - /mesg -i Np: /add_index druzyna krzysztof%;\ - /mesg -i Doda 'krzysztof' do tablicy 'druzyna'%;\ - /return %;\ - /endif %;\ - /if (regmatch("[()|]", {*})) \ - /mesg -i Nazwa tablicy oraz elementy nie moga miec w sobie znakow '(', ')', oraz '|'.%;\ - /return %;\ - /endif %;\ - /if (if_array_exists({1})) \ - /set _array_%{1}=$(/eval /echo %%_array_%{1})$[replace(" ", "|", {-1})]|%;\ - /else \ - /mesg -w Tablica '%{1}' nie istnieje!%;\ - /endif - -/def sizeof_array = \ - /if ({#} < 1) \ - /mesg -i Musisz podac nazwe tablicy.%;\ - /mesg -i Np: /sizeof_array druzyna%;\ - /return %;\ - /endif %;\ - /if (if_array_exists({1})) \ - /let PomocniczaZmienna=$(/eval /echo %%_array_%{1})%;\ - /let tab=$[replace("|", " ", {PomocniczaZmienna})]%;\ - /let wynik=$(/policz_tablice %{tab})%;\ - /mesg -i Tablica '%{1}' ma %{wynik} elementow. %;\ - /else \ - /mesg -w Nie ma tablicy nazwanej '%{1}'. %;\ - /endif - -/def policz_tablice = \ - /let k_z=0%;\ - /while ({#}) \ - /test ++k_z%;\ - /shift %;\ - /done %;\ - /result %{k_z} - -/def check_index = \ - /if ({#} != 2) \ - /mesg -i Musisz podac nazwe tablicy oraz numer indeksu, jaki mam sprawic. %;\ - /mesg -i Jesli podasz indeks '0', Wyswietle wszystkie elementy. %;\ - /return %;\ - /endif %;\ - /if (if_array_exists({1})) \ - /let rozmiar_tablicy=$(/policz_tablice $[replace("|", " ", $(/eval /echo %%_array_%{1}))])%;\ - /if ({2} < 0) \ - /mesg -w Indeks musi byc wiekszy od 0. Jesli chcesz abym wyswietlil wszystkie elementy %;\ - /mesg -w Podaj 0 jaki drugi argument%;\ - /return %;\ - /elseif ({2} != 0 & {2} > {rozmiar_tablicy}) \ - /mesg -w Indeks wykracza poza tablice! Ta tablica ma %{rozmiar_tablicy} elementow!%;\ - /return %;\ - /endif%;\ - /if ({2} == 0) \ - /pokaz_wszystkie_indeksy_tablicy $[replace("|", " ", $(/eval /echo %%_array_%{1}))]%;\ - /else \ - /pokaz_indeks %{2} %{1} $[replace("|", " ", $(/eval /echo %%_array_%{1}))]%;\ - /endif %;\ - /else \ - /mesg -w Nie ma takiej tablicy '%{1}'!%;\ - /endif - -/def pokaz_wszystkie_indeksy_tablicy = \ - /let i_t=0%;\ - /while ({#}) \ - /test ++i_t%;\ - /echo %{i_t}: %{1}%;\ - /shift %;\ - /done - -/def pokaz_indeks = \ - /let _nr=%{1}%;\ - /let _ta=%{2}%;\ - /shift %{1}%;\ - /shift %;\ - /echo %{1} %;\ - /echo Index %{_nr} of an array '%{_ta}' is '%{1}' - -/def member_array = \ - /let _ind=%{1}%;\ - /let _arr=%{2}%;\ - /if (if_array_exists(_arr)) \ - /if (regmatch(substr(_ind, "\|"), _arr)) \ - /mesg -i %_ind jest elementem tablicy '%_arr'. %;\ - /else \ - /mesg -w %_ind nie jest elementem tablicy '%_arr'! %;\ - /endif %;\ - /else \ - /mesg -w Tablica '%_arr' nie istnieje!%;\ - /endif diff --git a/common/misc.tf b/common/util.tf similarity index 100% rename from common/misc.tf rename to common/util.tf