TinTin++, skrypty do arkadii v.1.0
Re: TinTin++, skrypty do arkadii v.1.0
Orror: Tak. Udostępniłem skrypt trzy strony wcześniej. Zerknij tutaj.
- Załączniki
-
- ocenazbroi.png (2.35 KiB) Przejrzano 3344 razy
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
TinTin++ Mud Client Manual
Re: TinTin++, skrypty do arkadii v.1.0
Wielkie dzięki.
Chciałbym zrobić coś podobnego dla broni. Zacząłem nawet w poniższy sposób:
Mocno testowych kilka linijek bez "{on|ona}", realnych wartości sprzętu itd. Chciałbym tylko zapytać czy jest to w miare sensowny pomysł? Czy nie zwolni pracy TinTina? Może można zrobić to o wiele prościej? Przepraszam za lamerskie pytania ale to mój pierwszy raz z #function.
Chciałbym zrobić coś podobnego dla broni. Zacząłem nawet w poniższy sposób:
Kod: Zaznacz cały
#action {Twoje doswiadczenie i umiejetnosci podpowiadaja ci, ze jak na %1 jest on %2 wywazony i %3 skuteczny.}
{
#math {sred} {(@wyw{%2} + @sku{%3}) / 2};
#showme {<030>@wyw{%2} % wywazenia i @sku{%3} % skutecznosci i $sred % sredniej}
}
#function {wyw}
{
#if {"%2"=="dosc dobrze"} {#return 64};
}
#function {sku}
{
#if {"%3"=="wyjatkowo"} {#return 91}
}
Re: TinTin++, skrypty do arkadii v.1.0
Ocenę broni mam zrobioną na subach, bo chciałem żeby podmiana działała też w innych sytuacjach, np. wypowiedź kupca co do przydatnosci broni.
Mogę przygotować odpowiedni #action z wyliczaniem średniej, ale wykorzystałbym komendy #switch i #case do przypisania odpowiednich wartości. Sądzę, że takie rozwiązanie będzie szybsze. Wkleję później.
Edycja:
#Action napisałbym tak:
Tylko trzeba się zdecydować na któryś z powyższych wariantów - albo suby albo ten action.
Kod: Zaznacz cały
#function {bardzo}
{
#if {"%0" == "bardzo"}{#return 11/14};#else {#if {"%0" == "dosc"}{#return 9/14};#else {#return 10/14};};
}
#function {kiepsko}
{
#if {"%0" == "bardzo"}{#return 4/14};#else {#return 5/14};
}
#function {zle}
{
#if {"%0" == "bardzo"}{#return 2/14};#else {#if {"%0" == "wyjatkowo"}{#return 1/14};#else {#return 3/14}};
}
#nop wywazenie broni:
#sub {\b{wyjatkowo|bardzo|} \bzle\b \bwywazon{y|a|e}\b}{%0 @zle{%1}}
#sub {\b{bardzo|} kiepsko wywazon{y|a|e}\b}{%0 @kiepsko{%1}}
#sub {\bprzyzwoicie\b \bwywazon{y|a|e}\b}{%0 6/14}
#sub {\bsrednio\b \bwywazon{y|a|e}\b}{%0 7/14}
#sub {\bniezle\b \bwywazon{y|a|e}\b}{%0 8/14}
#sub {\b{bardzo|dosc|} dobrze wywazon{y|a|e}\b}{%0 @bardzo{%1}}
#sub {\bdoskonale\b \bwywazon{y|a|e}\b}{%0 12/14}
#sub {\bperfekcyjnie\b \bwywazon{y|a|e}\b}{%0 13/14}
#sub {\bgenialnie\b \bwywazon{y|a|e}\b}{%0 14/14}
#nop skutecznosc broni:
#sub {\bkompletnie\b \bnieskuteczn{y|a|e}\b}{%0 1/14}
#sub {\bstrasznie\b \bnieskuteczn{y|a|e}\b}{%0 2/14}
#sub {\bbardzo\b \bnieskuteczn{y|a|e}\b}{%0 3/14}
#sub {\braczej\b \bnieskuteczn{y|a|e}\b}{%0 4/14}
#sub {\bmalo\b \bskuteczn{y|a|e}\b}{%0 5/14}
#sub {\bniezbyt\b \bskuteczn{y|a|e}\b}{%0 6/14}
#sub {\braczej\b \bskuteczn{y|a|e}\b}{%0 7/14}
#sub {\bdosyc\b \bskuteczn{y|a|e}\b}{%0 8/14}
#sub {\bcalkiem\b \bskuteczn{y|a|e}\b}{%0 9/14}
#sub {\bbardzo\b \bskuteczn{y|a|e}\b}{%0 10/14}
#sub {\bniezwykle\b \bskuteczn{y|a|e}\b}{%0 11/14}
#sub {\bwyjatkowo\b \bskuteczn{y|a|e}\b}{%0 12/14}
#sub {\bzabojczo\b \bskuteczn{y|a|e}\b}{%0 13/14}
#sub {\bfantastycznie\b \bskuteczn{y|a|e}\b}{%0 14/14}
Edycja:
#Action napisałbym tak:
Kod: Zaznacz cały
#action {Twoje doswiadczenie i umiejetnosci podpowiadaja ci, ze jak na %1 jest {on|ona} %2 wywazon{y|a} i %3.}{
#var {wywazenie}{%2};
#var {skutecznosc}{%3};
#switch {"$wywazenie"}{
#case {"wyjatkowo zle"}{#var {wywazenie}{0};};
#case {"bardzo zle"}{#var {wywazenie}{7.7};};
#case {"zle"}{#var {wywazenie}{15.4};};
#case {"bardzo kiepsko"}{#var {wywazenie}{23.1};};
#case {"kiepsko"}{#var {wywazenie}{30.8};};
#case {"przyzwoicie"}{#var {wywazenie}{38.5};};
#case {"srednio"}{#var {wywazenie}{46.2};};
#case {"niezle"}{#var {wywazenie}{53.8};};
#case {"dosc dobrze"}{#var {wywazenie}{61.5};};
#case {"dobrze"}{#var {wywazenie}{69.2};};
#case {"bardzo dobrze"}{#var {wywazenie}{76.9};};
#case {"doskonale"}{#var {wywazenie}{84.6};};
#case {"perfekcyjnie"}{#var {wywazenie}{92.3};};
#case {"genialnie"}{#var {wywazenie}{100};};
#default {#var {wywazenie}{0};};
};
#switch {"$skutecznosc"}{
#case {"kompletnie nieskuteczn{y|a|e}"}{#var {skutecznosc}{0};};
#case {"strasznie nieskuteczn{y|a|e}"}{#var {skutecznosc}{7.7};};
#case {"bardzo nieskuteczn{y|a|e}"}{#var {skutecznosc}{15.4};};
#case {"raczej nieskuteczn{y|a|e}"}{#var {skutecznosc}{23.1};};
#case {"malo skuteczn{y|a|e}"}{#var {skutecznosc}{30.8};};
#case {"niezbyt skuteczn{y|a|e}"}{#var {skutecznosc}{38.5};};
#case {"raczej skuteczn{y|a|e}"}{#var {skutecznosc}{46.2};};
#case {"dosyc skuteczn{y|a|e}"}{#var {skutecznosc}{53.8};};
#case {"calkiem skuteczn{y|a|e}"}{#var {skutecznosc}{61.5};};
#case {"bardzo skuteczn{y|a|e}"}{#var {skutecznosc}{69.2};};
#case {"niezwykle skuteczn{y|a|e}"}{#var {skutecznosc}{76.9};};
#case {"wyjatkowo skuteczn{y|a|e}"}{#var {skutecznosc}{84.6};};
#case {"zabojczo skuteczn{y|a|e}"}{#var {skutecznosc}{92.3};};
#case {"fantastycznie skuteczn{y|a|e}"}{#var {skutecznosc}{100};};
#default {#var {skutecznosc}{0};};
};
#math {sred}{($wywazenie + $skutecznosc) / 2};
#sh {<030>$wywazenie % wywazenia i $skutecznosc % skutecznosci i $sred % sredniej.<070>}
}
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
TinTin++ Mud Client Manual
Re: TinTin++, skrypty do arkadii v.1.0
Dzięki raz jeszcze. Z każdym następnym postem odkrywam nowe możliwości TinTina.
Co do powyższego kodu, wybieram opcję nr 2. Zastanawiam się też czy zamiast #switch i #case można użyć tylko #replace? Coś w stylu:
Jakich komend używać najmniej, tak ażeby nie zamulać klienta?
Co do powyższego kodu, wybieram opcję nr 2. Zastanawiam się też czy zamiast #switch i #case można użyć tylko #replace? Coś w stylu:
Kod: Zaznacz cały
#action {Twoje doswiadczenie i umiejetnosci podpowiadaja ci, ze jak na %1 jest {on|ona} %2 wywazon{y|a} blablabla.}
{
#var {wywazenie}{%2};
#replace {wywazenie} {wyjatkowo zle} {0};
#replace {wywazenie} {bardzo zle} {7.7};
itd.
Re: TinTin++, skrypty do arkadii v.1.0
Ogólnie im mniej skryptów tym lepiej, więc nie przesadzajmy. Przykładowo przy 1000 poleceń #action podobno już można zauważyć spowolnienie, a 20000 bardzo już zwolni. Jedynym rozwiązaniem jest ograniczenie ilości. Jest to szczególnie istotne ponieważ #action jest wykonywany w pierwszej kolejności na tekście przychodzącym, dopiero później mamy #gag, #highlight, #prompt i #substitute.
Dobrym rozwiązaniem będzie załączanie sobie niektórych rzeczy tylko w razie potrzeby. Na przykład zielnik to grubo ponad setka #subów więc nie ma sensu mieć ich załadowanych cały czas.
Odnośnie wpływu rodzaju komend to podejrzewam, że złożone konstrukcje warunkowe (#if) mogą znacznie zwalniać.
Wracając do omawianego skryptu to można wykorzystać #replace, ale trzeba zmienić kolejność.
Dobrym rozwiązaniem będzie załączanie sobie niektórych rzeczy tylko w razie potrzeby. Na przykład zielnik to grubo ponad setka #subów więc nie ma sensu mieć ich załadowanych cały czas.
Odnośnie wpływu rodzaju komend to podejrzewam, że złożone konstrukcje warunkowe (#if) mogą znacznie zwalniać.
Wracając do omawianego skryptu to można wykorzystać #replace, ale trzeba zmienić kolejność.
Kod: Zaznacz cały
...
#replace {wywazenie}{wyjatkowo zle}{0};
#replace {wywazenie}{bardzo zle}{7.7};
#replace {wywazenie}{niezle}{53.8};
#replace {wywazenie}{zle}{15.4};
#replace {wywazenie}{bardzo kiepsko}{23.1};
#replace {wywazenie}{kiepsko}{30.8};
#replace {wywazenie}{przyzwoicie}{38.5};
#replace {wywazenie}{srednio}{46.2};
#replace {wywazenie}{dosc dobrze}{61.5};
#replace {wywazenie}{bardzo dobrze}{76.9};
#replace {wywazenie}{dobrze}{69.2};
#replace {wywazenie}{doskonale}{84.6};
#replace {wywazenie}{perfekcyjnie}{92.3};
#replace {wywazenie}{genialnie}{100};
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
TinTin++ Mud Client Manual
Re: TinTin++, skrypty do arkadii v.1.0
jesli chodzi o bronie zbroje i ich statystykę to ja mam taki mały skrypcik:
bronie
proszę o ocenę jeśli ktoś spróbuje.
Podrawiam D.
bronie
proszę o ocenę jeśli ktoś spróbuje.
Podrawiam D.
Re: TinTin++, skrypty do arkadii v.1.0
i nowe pytanie i propozycja:
czy używacie/używaliście programu sublime text 2? do pisania skrypcików?
jeśli nie to polecam gorąco, http://www.sublimetext.com/
jeśli tak to czy zrobił ktoś syntax do skryptów tintina i czy mógłby się podzielić?
pozdrawiam D.
czy używacie/używaliście programu sublime text 2? do pisania skrypcików?
jeśli nie to polecam gorąco, http://www.sublimetext.com/
jeśli tak to czy zrobił ktoś syntax do skryptów tintina i czy mógłby się podzielić?
pozdrawiam D.
Re: TinTin++, skrypty do arkadii v.1.0
Nie taki mały ten skrypt. Testować nie będę, moje wynalazki w zupełności mi wystarczają. Do pisania skryptów używam niebieskiej rybki, czasem prosty leafpad lub nawet GNU Midnight Commander jak na shellu coś poprawiam. Gotowy syntax widziałem dla vima, ale można napisać własny, to nie jest wielka filozofia.
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
TinTin++ Mud Client Manual
Re: TinTin++, skrypty do arkadii v.1.0
Czy istnieje inna metoda niż np:
ażeby autoamatycznie włączać klasy? Sczególnie chodzi mi o usunięcie komendy #delay. Bez niej w wyżej podanej konstrukcji klient wysyła do muda "ocen %1" w ostatniej kolejnosci, gdy class jest już killed .
Kod: Zaznacz cały
#alias {ocen %1}
{
#class oceny read oceny.tin;
ocen %1;
#delay {1} {#class oceny kill};
}
Re: TinTin++, skrypty do arkadii v.1.0
Kod: Zaznacz cały
#alias {ocen %1}
{
#class oceny read oceny.tin;
ocen %1;
#delay {1} {#class oceny kill};
}
Kod: Zaznacz cały
#alias {&ocen %1}
{
#class oceny read oceny.tin;
ocen %1;
}
Kod: Zaznacz cały
#class oceny kill;
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
TinTin++ Mud Client Manual