diff --git a/arkadia/stats.tf b/arkadia/stats.tf index b3e888f..a1eb0a8 100644 --- a/arkadia/stats.tf +++ b/arkadia/stats.tf @@ -201,3 +201,226 @@ wspaniale|\ gigantyczne|\ niebotyczne + +; by Ingwar +/def staty_old = \ + /quote -S -decho !cechy -tf %{ogolne_cechy_rasa} \ + %{ogolne_cechy_cecha1} %{ogolne_cechy_cecha2} %{ogolne_cechy_cecha3} %{ogolne_cechy_cecha4} %{ogolne_cechy_cecha5} %{ogolne_cechy_cecha6} \ + %{ogolne_cechy_brak1} %{ogolne_cechy_brak2} %{ogolne_cechy_brak3} %{ogolne_cechy_brak4} %{ogolne_cechy_brak5} %{ogolne_cechy_brak6} + +/def exp = \ + /_cechy_trigs + +/def _cechy_trigs = \ + /purge _cechy_set_* %;\ + /rstart -1 2 /purge _cechy_set_* %;\ + /def -p5 -t'*Jestes *{krasnoludem,|krasnoludka,}*' _cechy_set_race_1=/set ogolne_cechy_rasa 1 %;\ + /def -p5 -t'*Jestes *{elfka,|elfem,}*' _cechy_set_race_2=/set ogolne_cechy_rasa 2 %;\ + /def -p5 -t'*Jestes *{mezczyzna,|kobieta,}*' _cechy_set_race_3=/set ogolne_cechy_rasa 3 %;\ + /def -p5 -t'*Jestes *{halflingiem,|halflinka,}*' _cechy_set_race_4=/set ogolne_cechy_rasa 4 %;\ + /def -p5 -t'*Jestes *{gnomem,|gnomka,}*' _cechy_set_race_5=/set ogolne_cechy_rasa 5 %;\ + /def -p5 -t'*Jestes *{ogrem,|ogrzyca,}*' _cechy_set_race_6=/set ogolne_cechy_rasa 6 %;\ + /def -p5 -t'*Jestes *{polelfem,|polelfka,}*' _cechy_set_race_7=/set ogolne_cechy_rasa 7 %;\ + %;\ + /def -p4 -t' slabiutk' _cechy_set_str_1=/set ogolne_cechy_cecha1 1 %;\ + /def -p4 -t' watl' _cechy_set_str_2=/set ogolne_cechy_cecha1 2 %;\ + /def -p5 -t' slab' _cechy_set_str_3=/set ogolne_cechy_cecha1 3 %;\ + /def -p4 -t' krzepk' _cechy_set_str_4=/set ogolne_cechy_cecha1 4 %;\ + /def -p4 -t' siln' _cechy_set_str_5=/set ogolne_cechy_cecha1 5 %;\ + /def -p4 -t' mocn' _cechy_set_str_6=/set ogolne_cechy_cecha1 6 %;\ + /def -p4 -t' potezn' _cechy_set_str_7=/set ogolne_cechy_cecha1 7 %;\ + /def -p4 -t' mocarn' _cechy_set_str_8=/set ogolne_cechy_cecha1 8 %;\ + %;\ + /def -p4 -t' nieskoordynowan' _cechy_set_dex_1=/set ogolne_cechy_cecha2 1 %;\ + /def -p4 -t' niezreczn' _cechy_set_dex_2=/set ogolne_cechy_cecha2 2 %;\ + /def -p4 -t' niezgrabn' _cechy_set_dex_3=/set ogolne_cechy_cecha2 3 %;\ + /def -p4 -t' sprawn' _cechy_set_dex_4=/set ogolne_cechy_cecha2 4 %;\ + /def -p4 -t' zwinn' _cechy_set_dex_5=/set ogolne_cechy_cecha2 5 %;\ + /def -p4 -t' zreczn' _cechy_set_dex_6=/set ogolne_cechy_cecha2 6 %;\ + /def -p4 -t' gibk' _cechy_set_dex_7=/set ogolne_cechy_cecha2 7 %;\ + /def -p4 -t' akrobatyczn' _cechy_set_dex_8=/set ogolne_cechy_cecha2 8 %;\ + %;\ + /def -p4 -t' cherlaw' _cechy_set_con_1=/set ogolne_cechy_cecha3 1 %;\ + /def -p4 -t' rachityczn' _cechy_set_con_2=/set ogolne_cechy_cecha3 2 %;\ + /def -p4 -t' mizern' _cechy_set_con_3=/set ogolne_cechy_cecha3 3 %;\ + /def -p4 -t' dobrze zbudowan' _cechy_set_con_4=/set ogolne_cechy_cecha3 4 %;\ + /def -p4 -t' wytrzymal' _cechy_set_con_5=/set ogolne_cechy_cecha3 5 %;\ + /def -p4 -t' tward' _cechy_set_con_6=/set ogolne_cechy_cecha3 6 %;\ + /def -p4 -t' muskularn' _cechy_set_con_7=/set ogolne_cechy_cecha3 7 %;\ + /def -p4 -t' atletyczn' _cechy_set_con_8=/set ogolne_cechy_cecha3 8 %;\ + %;\ + /def -p4 -t' bezmysln' _cechy_set_int_1=/set ogolne_cechy_cecha4 1 %;\ + /def -p4 -t' tepa| tepy' _cechy_set_int_2=/set ogolne_cechy_cecha4 2 %;\ + /def -p4 -t' ograniczon' _cechy_set_int_3=/set ogolne_cechy_cecha4 3 %;\ + /def -p4 -t' pojetn' _cechy_set_int_4=/set ogolne_cechy_cecha4 4 %;\ + /def -p4 -t' inteligentn' _cechy_set_int_5=/set ogolne_cechy_cecha4 5 %;\ + /def -p4 -t' bystr' _cechy_set_int_6=/set ogolne_cechy_cecha4 6 %;\ + /def -p4 -t' blyskotliw' _cechy_set_int_7=/set ogolne_cechy_cecha4 7 %;\ + /def -p4 -t' genialn' _cechy_set_int_8=/set ogolne_cechy_cecha4 8 %;\ + %;\ + /def -p4 -t' glupi' _cechy_set_wis_1=/set ogolne_cechy_cecha5 1 %;\ + /def -p4 -t' zacofan' _cechy_set_wis_2=/set ogolne_cechy_cecha5 2 %;\ + /def -p4 -t' niewyksztalcon' _cechy_set_wis_3=/set ogolne_cechy_cecha5 3 %;\ + /def -p4 -t' wyksztalcon' _cechy_set_wis_4=/set ogolne_cechy_cecha5 4 %;\ + /def -p4 -t' madr' _cechy_set_wis_5=/set ogolne_cechy_cecha5 5 %;\ + /def -p4 -t' uczon' _cechy_set_wis_6=/set ogolne_cechy_cecha5 6 %;\ + /def -p4 -t' oswiecon' _cechy_set_wis_7=/set ogolne_cechy_cecha5 7 %;\ + /def -p4 -t' wszechwiedzac' _cechy_set_wis_8=/set ogolne_cechy_cecha5 8 %;\ + %;\ + /def -p4 -t'tchorzliw' _cechy_set_dis_1=/set ogolne_cechy_cecha6 1 %;\ + /def -p4 -t'strachliw' _cechy_set_dis_2=/set ogolne_cechy_cecha6 2 %;\ + /def -p4 -t'niepewn' _cechy_set_dis_3=/set ogolne_cechy_cecha6 3 %;\ + /def -p4 -t'zdecydowan' _cechy_set_dis_4=/set ogolne_cechy_cecha6 4 %;\ + /def -p4 -t'odwazn' _cechy_set_dis_5=/set ogolne_cechy_cecha6 5 %;\ + /def -p4 -t'dzieln' _cechy_set_dis_6=/set ogolne_cechy_cecha6 6 %;\ + /def -p4 -t'nieugiet' _cechy_set_dis_7=/set ogolne_cechy_cecha6 7 %;\ + /def -p4 -t'nieustraszon' _cechy_set_dis_8=/set ogolne_cechy_cecha6 8 %;\ + %;\ + /def -p5 -t'ze bardzo duzo ci brakuje' _cechy_set_brak_1=/set cechy_brakuje 5%%;/_cechy_liczenie %;\ + /def -p5 -t'ze duzo ci brakuje' _cechy_set_brak_2=/set cechy_brakuje 4%%;/_cechy_liczenie %;\ + /def -p5 -t'ze troche ci brakuje' _cechy_set_brak_3=/set cechy_brakuje 3%%;/_cechy_liczenie %;\ + /def -p5 -t'ze niewiele ci brakuje' _cechy_set_brak_4=/set cechy_brakuje 2%%;/_cechy_liczenie %;\ + /def -p5 -t'ze bardzo niewiele ci brakuje' _cechy_set_brak_5=/set cechy_brakuje 1%%;/_cechy_liczenie %;\ + /def -p5 -t'epicka' _cechy_set_brak_6=/set cechy_brakuje 9%%;/_cechy_liczenie %;\ + /def -p5 -t'nadludzk' _cechy_set_brak_7=/set cechy_brakuje 10%%;/_cechy_liczenie %;\ + %;\ + /set cechy_brakuje 0 %;\ + /set cechy_licznik 0 %;\ + /if ({ogolne_cechy_rasa}=~NULL) \ + /send spojrz na siebie %;\ + /endif %;\ + /send cechy %;\ + /send usiadz %;\ + /send medytuj %;\ + /send ocen sile %;\ + /send ocen zrecznosc %;\ + /send ocen wytrzymalosc %;\ + /send ocen inteligencje %;\ + /send ocen madrosc %;\ + /send ocen odwage %;\ + /send powstan + +/def _cechy_liczenie=\ + /test ++cechy_licznik %;\ +; /purge _cechy_set_* %;\ + /if ({cechy_brakuje}==9 | {cechy_brakuje}==10) \ + /set ogolne_cechy_cecha%{cechy_licznik} %{cechy_brakuje} %;\ + /set ogolne_cechy_brak%{cechy_licznik} 0 %;\ + /else \ + /set ogolne_cechy_brak%{cechy_licznik} %{cechy_brakuje} %;\ + /endif %;\ + /if ({cechy_licznik}==6) \ + /repeat -0 1 /staty %;\ + /unset cechy_licznik %;\ + /unset cechy_brakuje %;\ + /purge _cechy_set_* %;\ + /endif + +/def _cechy_poziom_one = \ + /eval /return {$[{1} + 1]} + +/def _cechy_poziom = \ + /let _opis=$[_cechy_poziom_one({1}, \ + 'kompletnego zoltodzioba.', \ + 'stawia pierwsze kroki.', \ + 'jeszcze niewiele widzial.', \ + 'niewiele wie o swiecie.', \ + 'niedoswiadczonego.', \ + 'widzial juz to i owo.', \ + 'pewnie stapa po swiecie.', \ + 'niejedno widzial.', \ + 'swoje przezyl.', \ + 'doswiadczonego.', \ + 'wiele przeszedl.', \ + 'widzial kawal swiata.', \ + 'bardzo doswiadczonego.', \ + 'zwiedzil caly swiat.', \ + 'wielce doswiadczonego.', \ + 'widzial i doswiadczyl wszystkiego.', \ + 'osobe owiana legenda.')] %;\ + /return strcat("Wygladasz na ", _opis, " (", {1}, "/17)") + + +/def _cechy_licz = \ + /let _poziom=%{1} %;\ + /let _brakuje=%{2} %;\ + /if (_poziom == 10) \ + /let _punkty=160 %;\ + /elseif (_poziom == 9) \ + /let _punkty=136 %;\ + /else \ + /let _punkty=$[((_poziom - 1) * 17) + ((5 - _brakuje) * 3) + ((5 - _brakuje + 1) / 2)] %;\ + /endif %;\ + /return %{_punkty} + +/def _cechy = \ + /let _str=$[_cechy_licz(ogolne_cechy_cecha1, ogolne_cechy_brak1)] %;\ + /let _dex=$[_cechy_licz(ogolne_cechy_cecha2, ogolne_cechy_brak2)] %;\ + /let _con=$[_cechy_licz(ogolne_cechy_cecha3, ogolne_cechy_brak3)] %;\ + /let _int=$[_cechy_licz(ogolne_cechy_cecha4, ogolne_cechy_brak4)] %;\ + /let _wis=$[_cechy_licz(ogolne_cechy_cecha5, ogolne_cechy_brak5)] %;\ + /let _dis=$[_cechy_licz(ogolne_cechy_cecha6, ogolne_cechy_brak6)] %;\ + /let _sum=$[_str + _dex + _con + _int + _wis + _dis] %;\ + /let _avg=$[_sum / 6] %;\ + /let _avg_c=$[(_str + _dex + _con) / 3] %;\ + /let _avg_nc=$[(_int + _wis + _dis) / 3] %;\ + /let _div=48 %;\ + /let _need=$[_div - mod(_sum-5, _div)] %;\ + /let _need_p=$[trunc(_need / 3.5)] %;\ + /let _level=$[trunc((_sum-5)/ _div) + 1] %;\ + /let _szer=$[80 / 6 - 2] %;\ + /test echo(strcat(" ", strrep("_", {_szer} * 6 + 11), " ")) %;\ + /test echo(strcat("/ ", pad(_cechy_poziom({_level}), -({_szer} * 6 + 1)), " \\\\")) %;\ + /test echo(strcat("+", strrep("-", {_szer} * 6 + 11), "+")) %;\ + /test echo(pad("|", 0, \ + "Sila", {_szer}, " |", 0, \ + "Zrecznosc", {_szer}, " |", 0, \ + "Wytrzymalosc", {_szer}, "|", 0, \ + "Inteligencja", {_szer}, "|", 0, \ + "Madrosc", {_szer}, " |", 0, \ + "Odwaga", {_szer}, " |", 0)) %;\ + /test echo(pad("|", 0, \ + _str, {_szer}, " |", 0, \ + _dex, {_szer}, " |", 0, \ + _con, {_szer}, " |", 0, \ + _int, {_szer}, " |", 0, \ + _wis, {_szer}, " |", 0, \ + _dis, {_szer}, " |", 0)) %;\ + /test echo(strcat("+", strrep("-", {_szer} * 6 + 11), "+")) %;\ + /test echo(pad("| ", 0, \ + "Srednia statow: ", 0, \ + _avg, 3, \ + ", statow bojowych: ", 0, \ + _avg_c, 3, \ + ", statow niebojowych: ", 0, \ + _avg_nc, 3, \ + ".", 0, "|", 10)) %;\ + /test echo(pad("| ", 0, \ + "Wspolczynniki boj/nboj: ", 0, \ + $[(1.0 * _avg_c) / _avg_nc], -23, \ + "|", 30)) %;\ + /test echo(pad("| ", 0, \ + "Masz aktualnie conajmniej: ", 0, \ + _sum, 3, \ + " punktow, czyli: ", 0, \ + $[trunc(_sum / 3.33)], 3, \ + " podpoziomow.", 0, "|", 14)) %;\ + /test echo(pad("| ", 0, \ + "Do nastepnego poziomu brakuje ci: ", 0, \ + _need, 2, \ + " punktow, czyli: ", 0, \ + _need_p, 2, \ + " podpoziomow.", 0, "|", 9)) %;\ + /test echo(strcat("+", strrep("-", {_szer} * 6 + 11), "+")) %;\ + /test echo(pad("| ", 0, \ + "Informacje dodatkowe: ", 0, \ + "|", 55)) %;\ + /test echo(pad("| ", 0, \ + "Hitpoints: ", 0, \ + $[_con * 20 - 100], 4, \ + ", Mana: ", 0, \ + $[_int * 10], 4, \ + ", Fatigue: ", 0, \ + $[_con + 50], 3, \ + ".", 0, "|", 35)) %;\ + /test echo(strcat("+", strrep("-", {_szer} * 6 + 11), "+")) diff --git a/common/start.tf b/common/start.tf index 07336cf..9aa9851 100644 --- a/common/start.tf +++ b/common/start.tf @@ -21,7 +21,8 @@ /require alias.tf /set alias new -/load array.tf +/load util.tf + /load binds.tf /load colorscheme.tf /load combat.tf @@ -30,7 +31,6 @@ /load lists.tf /load mail.tf /load map.tf -/load misc.tf /load movement.tf /load odmiana.tf /load people.tf diff --git a/common/stats.tf b/common/stats.tf index 6f231fb..a958b1e 100644 --- a/common/stats.tf +++ b/common/stats.tf @@ -163,7 +163,6 @@ /_postepy_zanotuj %{__index}%;\ /_sub %__index/15 - /def _postepy_zanotuj = \ /let __postep=%{1}%; \ /if ({__postep}>{_postepy_current})\ diff --git a/common/util.tf b/common/util.tf index fb0bcad..cdeef6d 100644 --- a/common/util.tf +++ b/common/util.tf @@ -1,14 +1,4 @@ -/def exp = \ - usiadz %;\ - medytuj %;\ - ocen sile %;\ - ocen zrecznosc %;\ - ocen wytrzymalosc %;\ - ocen inteligencje %;\ - ocen madrosc %;\ - ocen odwage %;\ - powstan - +; by Ingwar /def -i pid_of = \ /quote -S \ /eval /let pid_czego=`"/@ps -r" %%;\ @@ -22,3 +12,205 @@ /def rstop = \ /kill $(/pid_of %{*}) + +; by Koris? +/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