Forum techniczne Arkadii.
Ralandil
Posty: 231 Rejestracja: 02 sty 2012 13:07
Lokalizacja: Athel Loren
Post
autor: Ralandil » 02 gru 2012 10:50
Anakreon:
Możesz pokolorować stosując
highlight lub
sub . Różnica polega jedynie na kolejności w jakiej tintin wykona dane polecenie na tekście przychodzącym. Hierarchia wygląda następująco:
Istnieje też możliwość nadania koloru poprzez
action :
Kod: Zaznacz cały
#action {potezny jednooki mezczyzna}{
#echo {<110>potezny jednooki mezczyzna<070>};
#line gag
}
Na jedną linię tekstu może działać tylko jeden
action . Na przykład:
Kod: Zaznacz cały
#action {test1}{#sh jeden}
#action {test2}{#sh dwa}
Jeśli tekst przychodzący będzie wyglądał tak:
lub
To pokaże jeden.
Tintin wszystkie
action ustawia w kolejności alfabetycznej.
Athel Loren shall not suffer the presence of Men, nor Orcs, nor Dwarfs, nor Beastmen. If a foe takes a single step upon such sacred soil, they shall not take another.
TinTin++ Mud Client Manual
Dorien
Posty: 142 Rejestracja: 25 lip 2012 00:38
Post
autor: Dorien » 04 gru 2012 10:56
Anakreon:
Cos kombinowalem z tym co chcesz zrobic i zrobilem cos co mysle moze ci sie przydac i byc rozbudowane do tego co chcesz wkleje caly kod bez wyjasnien bo nie mam czasu troche pisac teraz...
Kod: Zaznacz cały
#event {RECEIVED OUTPUT}
{
#if {$wojna==1}
{
#var enemx {%0};
#replace enemx {.} {;};
#list enemx create {$enemx};
#list enemx size v;
#math ve {$v-1};
#var enemxx {$enemx[$ve]};
#regexp {$enemxx} {{Nosisz|wody|Jestes|delikatnie|list|echo|cieci|podmokl|odbija|chichoc|trzask|kierunku|Zabiles|monet|Uspokajasz|jest|walczysz|uchwytny|powoli|podaza|przybywa|dochodzi|udaje|otwier|uderza|unik|przemyka|powstan|medytacje|Kiedy|lamp|wyjscia|widoczne|Zakladasz|Opuszczasz|Dobywasz|Juz|postepy|plecak|zamyka|rani|muska|sapie |rowniez|radoscia|trafi|tobie|Atakujesz|Walczysz|pisk|zakasuje|umyka|daje|Ciemn|ciemnosci|dotknelo |spoglada |upadlo |wrecza |nasuwa|wciska|skory |spadl|masakruj|bierze|zalogowac|zadnej |glosne |hosta|Witaj|:}} {#nop} {
#line gag;
#replace {enemxx} {{, | i }} {;};
#list enemy create {$enemxx};
#delay {0.01} {
#var i 0;
#foreach {$enemy[]} {tt}
{
#var gg {$enemy[$tt]};
#replace gg { } {;};
#list ggg create {$gg};
#switch {"$ggg[1]"}
{
#case {"dwa"} {#var ret 2};
#case {"dwie"} {#var ret 2};
#case {"Dwie"} {#var ret 2};
#case {"dwaj"} {#var ret 2};
#case {"trzy"} {#var ret 3};
#case {"cztery"} {#var ret 4};
#case {"piec"} {#var ret 5};
#case {"szesc"} {#var ret 6};
#case {"siedem"} {#var ret 7};
#case {"osiem"} {#var ret 8};
#case {"dziewiec"} {#var ret 9};
#case {"dziesiec"} {#var ret 10};
#case {"jedenascie"} {#var ret 11};
#case {"dwanascie"} {#var ret 12};
#case {"trzynascie"} {#var ret 13};
#case {"czternascie"} {#var ret 14};
#case {"pietnascie"} {#var ret 15};
#case {"szesnascie"} {#var ret 16};
#case {"siedemnascie"} {#var ret 17};
#case {"osiemnascie"} {#var ret 18};
#case {"dziewietnascie"} {#var ret 19};
#case {"dwadziescia"} {#var ret 20};
#case {"wielu"} {#var ret {N}};
#default {#regexp {$ggg[1]} {%d} {#var ret {&1};}};
};
#if {$ret>0}
{
#var {zz} {$ret x $ggg[2] $ggg[3] $ggg[4] $ggg[5]};
#math i {$i+$ret};
};
#elseif {"$ret"=="N"}
{
#var {zz} {N x $ggg[2] $ggg[3] $ggg[4] $ggg[5]};
};
#else
{
#var {zz} {1 x $enemy[$tt]};
#math i {$i+1};
};
#regexp {$enemy[$tt]} {{cialo|Cialo|sterta}} {#var opcje {[ob cialo]}} {
#regexp {$enemy[$tt]} {{gremlin|stworek|chobold}} {#var opcje {[zabij $liczebniki[$i] $stwory[&1]]}} {#var opcje {}};
};
#format {line} {%s %+20s} {$zz} { $opcje};
#echo $line;
};
};
};
};
}
#var stwory
{
{gremlin}{gremlina}
{stworek}{stworka}
{chobold}{chobolda}
};
#var liczebniki
{
{1}{pierwszego}
{2}{drugiego}
{3}{trzeciego}
{4}{czwartego}
};
#macro {\e[21~}
{
#if {$wojna==1}
{
#sh {<030>WROGI : F10 : OFF<088>};
#var wojna 0;
};
#else
{
#sh {<030>WROGI : F10 : ON<088>};
#var wojna 1;
}
}
uwazajcie z tym kodem ktokolwiek go bedzie uzywac, przy masowych walkach moze spowolnic nieco prace tintina o kilka milisekund
F10 wlacza i wylacza
jak ulepszysz kod to przeslij prosze
Pozdrawiam, D.
Załączniki
Efekt dzialania wojna.png (8.22 KiB) Przejrzano 3416 razy
Ostatnio zmieniony 04 gru 2012 11:08 przez
Dorien , łącznie zmieniany 1 raz.
Drakan
Posty: 28 Rejestracja: 15 sie 2011 12:53
Post
autor: Drakan » 04 gru 2012 11:03
Witajcie
Staralem sie uruchomic ten skrypcik ale cosik mi nie wychodzi, wywala mi:
Zabiles $kill potworow.
Czy może jest w kodzie jakiś blad?
Kod: Zaznacz cały
#act {Zabiles %1 %2 %3.}
{
#math {kill} {$kill+1};
#var mob %3;
#math {count[$mob][cnt]} {$count[$mob][cnt]+1};
}
#al {rip}
{
#showme { Potwor Ile };
#showme {-----------------------------};
#var total 0;
#foreach {$count[]} {mob}
{
#echo {$mob $count[$mob][cnt]};
#math {total} {$total+$count[$mob][cnt]};
}
#showme {-----------------------------};
#echo { Total $total };
}
#al kill {#echo {Zabiles $kill potworow.}}
Dorien
Posty: 142 Rejestracja: 25 lip 2012 00:38
Post
autor: Dorien » 04 gru 2012 11:14
Drakan:
Kod: Zaznacz cały
#macro {\cl}
{
#if {$lo==1}
{
#var lo 0;#sh <030>[Ctrl+L] Zbieraj monety 0;
};
#elseif {$lo==2}
{
#var lo 1;#sh <030>[Ctrl+L] Zbieraj monety i kamienie 1;
};
#elseif {$lo==3}
{
#var lo 2;#sh <030>[Ctrl+L] Zbieraj wszystko 2;
};
#else
{
#var lo 3;#sh <030>[Ctrl+L] Brak akcji 3;
};
}
#ACTION {Zabil{e|a}s %0.}
{
#if {$lo==0} {#macro {\cz} {wez monety z ciala};#var loopis {WEZ MONETY}};
#if {$lo==1} {#macro {\cz} {wez monety z ciala;wez kamienie z ciala};#var loopis {WEZ MONETY I KAMIENIE}};
#if {$lo==2} {#macro {\cz} {wez wszystko z ciala};#var loopis {WEZ WSZYSTKO}};
#showme {<ffa>$loopis Z CIALA [Ctrl+Z]<088>};
#math {kill} {$kill+1};
#variable ofi %0;
#replace ofi { } {;};
#list ofiara {create} {$ofi};
#list ofiara {size} {v};
#variable mob {$ofiara[$v]};
#math {count[Ty][$mob][cnt]} {$count[Ty][$mob][cnt]+1};
}
#ALIAS {rip}
{
#showme { Potwor Ty };
#showme {-------------------------------};
#variable total 0;
#foreach {$count[Ty][]} {mob}
{
#math {total} {$total+$count[Ty][$mob][cnt]}
};
#foreach {$count[Ty][]} {mob}
{
#format proc[$mob] %d;
#math {proc[$mob]} {(($count[Ty][$mob][cnt] + 0.00) / $total) * 100};
#format {line} {%+12s %+10s %+7s} {$mob} {$count[Ty][$mob][cnt]} {$proc[$mob]};
#echo {$line};
};
#showme {-------------------------------};
#format {tot} {%+12s %+10s %+7s} {Total:} {$total} {100};
#echo {$tot}
}
CTRL+L zmienia domyslnie co wyjmujemy z ciala za pomoca skrotu
Jesli nie dziala prawdopodobnie masz juz #action na ^Zabiles np zbierajacy kase z ciala? (nielegalne)
zamiast kill sprobuj aliasu rip, i zaktualizuj tintina to versji 2.00.8.
Pozdrawiam D
Załączniki
Efekt u mnie rip tt.png (9.28 KiB) Przejrzano 3414 razy
Orror
Posty: 40 Rejestracja: 12 lut 2012 19:59
Post
autor: Orror » 17 gru 2012 14:53
Zastanawiam się czy w Wintinie ++ jest możliwość zmiany rozmiaru czcionki tylko w oknie z mapą (stworzonego komendą #split)?
Ralandil
Posty: 231 Rejestracja: 02 sty 2012 13:07
Lokalizacja: Athel Loren
Post
autor: Ralandil » 17 gru 2012 22:28
Orror:
Nie da się tego zrobić. Czcionkę możesz zmienić jedynie dla całego okna.
Zatem jedynie rozwiązanie to osobne okno. Można to łatwo zrobić pod linuksem. Wystarczy event MAP ENTER ROOM i polecenie #map map {<x>x<y>} {filename} {a} . Później poprzez tail -fs 0.1 map.txt zrzucamy sobie mapkę na osobny terminal, w którym ustawiamy czcionkę jaką chcemy.
Nie wiem jak to zrobić pod windowsem. Nawet nie mam go zainstalowanego u siebie więc ciężko mi to sprawdzić.
Athel Loren shall not suffer the presence of Men, nor Orcs, nor Dwarfs, nor Beastmen. If a foe takes a single step upon such sacred soil, they shall not take another.
TinTin++ Mud Client Manual
Orror
Posty: 40 Rejestracja: 12 lut 2012 19:59
Post
autor: Orror » 21 gru 2012 17:19
Fakt, Tintin++ na Windowsie nie pokazuje pełni swoich możliwości.
Przy okazji, jako totalny laik w kwestii pisania skryptów, ogólnie programowania naskrobałem coś takiego:
Kod: Zaznacz cały
#action {Masz nowa poczte od %1.}
{
#format {poczta} {Poczta od %1 o godz. %t} {%H:%M:%S};
#list {infob} {add} {$poczta};
#echo {{<169>%h} {1}} { Poczta - Shift + F10 };
#delay {5} {#sh {} {1}};
}
#action {Na twoim ramieniu niespodziewanie wyladowal bialy golab pocztowy.}
{
#format {golab} {Golab o godz. %t} {%H:%M:%S};
#list {infob} {add} {$golab};
#echo {{<169>%h} {1}} { Golab - Shift + F10 };
#delay {5} {#sh {} {1}};
}
#action {%1 peka!}
{
#format {peka} {%1 peka o godz. %t} {%H:%M:%S};
#list {infob} {add} {$peka};
#echo {{<169>%h} {1}} { Fajans - Shift + F10 };
#delay {5} {#sh {} {1}};
}
#action {%1 rozpada sie!}
{
#format {rozpad} {%1 rozpada sie o godz. %t} {%H:%M:%S};
#list {infob} {add} {$rozpad};
#echo {{<169>%h} {1}} { Fajans - Shift + F10 };
#delay {5} {#sh {} {1}};
}
#macro {\e[21;2~}
{
#sh {<acf>##################### 5 ostatnich zdarzen #####################};
#sh {<169> 1. - $infob[-1]};
#sh {<169> 2. - $infob[-2]};
#sh {<169> 3. - $infob[-3]};
#sh {<169> 4. - $infob[-4]};
#sh {<169> 5. - $infob[-5]};
#sh {<acf>###############################################################};
}
Wiem wygląda to amatorsko, wręcz śmiesznie ale podczas zaspamowanych walk może czasem pomóc.
Ostatnio zmieniony 21 gru 2012 19:48 przez
Orror , łącznie zmieniany 2 razy.
Ralandil
Posty: 231 Rejestracja: 02 sty 2012 13:07
Lokalizacja: Athel Loren
Post
autor: Ralandil » 21 gru 2012 19:09
Orror:
Można dodać sobie jeszcze sygnał dźwiękowy:
lub wykorzystać powiadamianie w dymku (jeżeli wykorzystujemy środowisko graficzne):
Przepraszam, że rzucam rozwiązania pod linuksem.
Athel Loren shall not suffer the presence of Men, nor Orcs, nor Dwarfs, nor Beastmen. If a foe takes a single step upon such sacred soil, they shall not take another.
TinTin++ Mud Client Manual
Orror
Posty: 40 Rejestracja: 12 lut 2012 19:59
Post
autor: Orror » 21 gru 2012 19:18
Oj to ja przepraszam, że publikuję coś tak banalnego. Tylko taki sposób wymyśliłem na Windę.
Muszę jeszcze rozkminić jak "wyrównać" godziny aby były pod sobą.
Ralandil
Posty: 231 Rejestracja: 02 sty 2012 13:07
Lokalizacja: Athel Loren
Post
autor: Ralandil » 21 gru 2012 21:32
Orror:
Godziny można łatwo wyrównać.
Kod: Zaznacz cały
#action {Masz nowa poczte od %1.}
{
#format {nadawca}{%-12s}{%1};
#format {poczta} {Poczta od $nadawca o godz. %t} {%H:%M:%S};
...
}
Athel Loren shall not suffer the presence of Men, nor Orcs, nor Dwarfs, nor Beastmen. If a foe takes a single step upon such sacred soil, they shall not take another.
TinTin++ Mud Client Manual