TinTin++, skrypty do arkadii v.1.0

Forum techniczne Arkadii.
Anakreon
Posty: 36
Rejestracja: 20 lut 2012 14:29

Re: TinTin++, skrypty do arkadii v.1.0

Post autor: Anakreon »

Dzięki tego właśnie szukałem.

Pojawił się kolejny problem. Pracuję teraz nad czymś co będzie mi kolorowało mobki w zależności od ich siły i dało możliwość ataku na najsłabszego/najmocniejszego. Próbuję to osiągnąć używając #ACTION. Tyle, że jedna akcja uaktywnia się na linijkę tekstu. Czyli jak mam na jednej lokacji i silnego i słabego to koloruje mi tylko tego z niższym prioryty. Jakieś rozwiązanie oprócz rozdzielenia kolorwania od reszty? Może jest jakaś opcja w stylu keep evaluating?
Drakan
Posty: 28
Rejestracja: 15 sie 2011 12:53

Re: TinTin++, skrypty do arkadii v.1.0

Post autor: Drakan »

A ja mam pytanie chyba z dziedziny trudnych (jak dla mnie) :)

kiedys pod zmudem mialem taki skrypcik zalon:

#BUTTON 1 {Zaslonki ON} {#T- test} {Zaslonki OFF} {#T+ test} {} {1} {} {Size} {90} {23} {} {} {} {79} {15} {} {} "" {} {} {}
#ALIAS v1 {#var imie_pod_buttonem_1 %1}
#VAR imie_pod_buttonem_1 {drakana}
#BUTTON 3 {@imie_pod_buttonem_1} {zaslon @imie_pod_buttonem_1} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} "" {} {} {} {2}

jak napisac skryp tak bym z reki wprowadzal osobe do zalony pod jakis skrot (bo raczej buttony nie da sie pod tintinem zrobic)
plizz podpowiedzcie ;)
Dorien
Posty: 142
Rejestracja: 25 lip 2012 00:38

Re: TinTin++, skrypty do arkadii v.1.0

Post autor: Dorien »

do kolorowania uzywaj #hi lub #sub nie wyobrazam sobie jak to mozna zrobic #actionami? np:
#hi {gremlin} {<abd>}; #hi troll {<ebe>};
albo
#sub {gremin} {gremlin (-21.2%)};
#sub {troll} {troll (+17.56%)};

co do zaslon:

po pierwsze trzeba zrobic #actiona ktory wychwyci twoja druzyne,

Kod: Zaznacz cały

#action {Druzyne prowadzi %1 i oprocz ciebie {jest|sa} w niej jeszcze %3.} 

i inne tego typu akcje jak

#action {Przewodzisz druzynie, w ktorej oprocz ciebie jest jeszcze %1.}
#action {Druzyne prowadzi %1, zas ty jestes jej jedynym czlonkiem.}
po drugie taka akcja musi byc wywoływana po podlaczeniu sie/zaproszeniu do druzyny, i po trzecie musi zapamietywać imiona czlonkow druzyny w tabelce, do ktorej bedziemy miec dostep spod #foreach

teraz trzeba sie uporac z tym ze np jesli czlonkiem druzyny jest "Drakan", musimy zaslonic "Drakana" jezeli "Ralandil" to "Ralandila" a jezeli "Dorien" to "Doriena"

wiec zaczynamy od

Kod: Zaznacz cały

#foreach {$druzyna[]} {i}
{
  #nop najpier zauwazmy ze imiona w tabelce sa napisane duza litera
  #format {druzyn} {%l} {$druzyna[$i]};
  #nop odetnijmy ostatnia litere bo musimy ja sprawdzic, zauwazmy ze jak imie konczy sie na -i to odmiana bedzie na -iego np Bivi>Biviego, itd...

  #regexp {$druzyn} {^%*%.$} {#var imie &1;#var koncowka &2};
  #nop teraz trzeba sprawdzic:
  #switch {"$koncowka"}
  {
    #case {"i"} {#var k iego;#var zaslon $imie$k};
    #case {"y"} {#var k ego;#var zaslon $imie$k};
    #case {"a"} {#var k e;#var zaslon $imie$k};
    #case {"o"} {#var k a;#var zaslon $imie$k};
    #default {#var k a;#var zaslon $imie$k};
  };
  #nop i teraz wypadalo by pododawac macra np  ctrl+1 ctrl+2 itd...
  #line substitute {variables} {#macro {\c$i} {zaslon $zaslon}} ;
}
na koniec aby wszystko ladnie zespolic trzeba dodac #function ktore bedzie wyszukiwac osobe i wyswietlac przy niej skrot, mozna ladnie wplesc w suby do kondycji,

Kod: Zaznacz cały

#function {zaslony}
{
  #list {druzyna}{find}{%1}{i};
  #if {$i>0}
  {
    #return [Ctrl+$i];
  };
  #else {#return;}
}
i dalej juz chyba latwe kozystajac z przykladu subow Ralandila do kondycji

Kod: Zaznacz cały

#sub {^%5 jest w swietnej kondycji.}{[7][<020>#######<070>]@zaslony{%5} %5}
#sub {^%5 jest w dobrym stanie.}{[6][<020>######<070>-]@zaslony{%5} %5}
#sub {^%5 jest lekko rann{y|a}.}{[5][<030>#####<070>--]@zaslony{%5} %5}
#sub {^%5 jest rann{y|a}.}{[4][<030>####<070>---]@zaslony{%5} %5}
#sub {^%5 jest w zlej kondycji.}{[3][<010>###<070>----]@zaslony{%5} %5}
#sub {^%5 jest ciezko rann{y|a}.}{[2][<010>##<070>-----]@zaslony{%5} %5}
#sub {^%5 jest ledwo zyw{y|a}.}{[1][<010>#<070>------]@zaslony{%5} %5}

mam nadzeje ze sprawa z zaslonami jest wyjasniona :)
Awatar użytkownika
Ralandil
Posty: 231
Rejestracja: 02 sty 2012 13:07
Lokalizacja: Athel Loren

Re: TinTin++, skrypty do arkadii v.1.0

Post autor: Ralandil »

Anakreon:

Rozumiem, że utworzyłeś action na tekst:

Kod: Zaznacz cały

Wydaje ci sie, ze jestes znacznie silniejszy niz cichy zamyslony elf.
Wydaje ci sie, ze jestes zreczniejszy niz cichy zamyslony elf.  
Wydaje ci sie, ze jestes lepiej zbudowany niz cichy zamyslony elf.
Moim zdaniem łatwiej będzie przypisać trzy cyfry z przedziału <-5;5> do danej osoby niż bawić się z kolorami. Póżniej można je wyświetlić razem z kondycją. To można bardzo łatwo zrobić :)
Wyjaśnij tylko jedną rzecz. Jak sobie wyobrażasz tę "możliwość ataku na najsłabszego/najmocniejszego"?
Jeżeli wynikiem ma być utworzenie macra bądź aliasu ataku to musisz wiedzieć, że stosowanie takiego skryptu jest nielegalne!

Drakan:

Skrypt do zasłon jest dostępny w Arkdisku2011. Nie jest idealny ale dla początkujących będzie wystarczający.
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
Drakan
Posty: 28
Rejestracja: 15 sie 2011 12:53

Re: TinTin++, skrypty do arkadii v.1.0

Post autor: Drakan »

Dorien dzieki zabieram sie do pokumania tego :D

Ralandil - strona Arkdisku2011 lezy wiec nie mam szans obadania jak to wyglada :(
Awatar użytkownika
Ralandil
Posty: 231
Rejestracja: 02 sty 2012 13:07
Lokalizacja: Athel Loren

Re: TinTin++, skrypty do arkadii v.1.0

Post autor: Ralandil »

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
Drakan
Posty: 28
Rejestracja: 15 sie 2011 12:53

Re: TinTin++, skrypty do arkadii v.1.0

Post autor: Drakan »

Ralandil - dzieki !!
:D
Anakreon
Posty: 36
Rejestracja: 20 lut 2012 14:29

Re: TinTin++, skrypty do arkadii v.1.0

Post autor: Anakreon »

Przykład z tego co zacząłem robić:

Kod: Zaznacz cały

#nop MOCNE
#ACTION {%i{potezny wysoki fimir|%w %w troll|potezny jednooki mezczyzna}} {
	#HIGHLIGHT {%0} {<410>};
	#VAR {mm} {%0};
	#FORMAT {mm} {%l} {$mm};
	#IF {"$mm1" == "false"} {modmieniaj}
			}
następnie w przez alias odmienia mi się przeciwnik i tworzy się makro do ataku an mocnego mobka. Jednak jeśli jest to zbudowane w ten sposób to jeśli w jednym miejscu jest więcej niż jeden przeciwnik danego typu (w zasadzie to więcej niż jednego typu) to koloruje się tylko jeden (ten typ któremu przypisałem najwyższy pryiorytet.)

Przejrzałem zasady i nie znalazłem punktu zgodnie, z którym tego typu macro byłoby nielegalne. Możesz powiedzieć gdzie uzyskałeś taką informację?
Awatar użytkownika
Ralandil
Posty: 231
Rejestracja: 02 sty 2012 13:07
Lokalizacja: Athel Loren

Re: TinTin++, skrypty do arkadii v.1.0

Post autor: Ralandil »

Miałem na myśli sytuację kiedy skrypt pozwoli na ocene przeciwnej drużyny/grupy npcy i atak w ciągu ułamka sekundy na najsłabszego/najbardziej poranionego itp. Decyzje należy podejmować samemu, skrypt nie może robić tego za nas.

Wszystko sprowadza się do czasu reakcji. Jeśli jesteś w stanie te informacje przeczytać i zaakceptować to wtedy ok. Niepotrzebnie założyłem, że Twoje rozwiązanie będzie bardziej wyrafinowane. :oops: Do takiej formy jaką zaprezentowałeś nikt nie powinien się przyczepić.

Kod: Zaznacz cały

#ACTION {%i{potezny wysoki fimir|%w %w troll|potezny jednooki mezczyzna}}{bla bla bla}
W twoim przypadku będzie kolorować mobka, który pierwszy wystąpi na lokacji. Jeśli chcesz aby kolorowało "potezny wysoki fimir", wszystkie trolle i "potezny jednooki mezczyzna" to zastosuj suby

Kod: Zaznacz cały

#sub {potezny wysoki fimir}{<410>%0<070>}
#sub {%w %w troll}{<410>%0<070>}
#sub {potezny jednooki mezczyzna}{<410>%0<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
Anakreon
Posty: 36
Rejestracja: 20 lut 2012 14:29

Re: TinTin++, skrypty do arkadii v.1.0

Post autor: Anakreon »

myślałem o takim skrypcie jak mówisz, nawet bardziej rozbudowanym ale do tego przydałoby się podłączyć do klienta jakąś bazę danych i barać pod uwagę sprzęt i zawód, który posiadają przeciwnicy. Z mojego doświadczenia wynika, że porównywanie nie daje wiarygodnych wyników. Co do samego skryptu to można by go zrobić tak że w ładnej tabelce prezentowałby dane na podstawie, których można podjąć decyzję. Jednak jako mało zaawansowany użytkownik wolałem zacząć od czegoś prostszego ;)

Wydaje mi się, że użycie SUB będzie miało ten sam rezultat co HIGHLIGHT o ile wyciągnę to poza ACTION. Mnie bardziej zależy na tym żeby jednocześnie bindował mi się i słaby i mocny przeciwnik. Póki co binduje się tylko mocny bo wygląda na to że na jedną linię tekstu może działać tylko jeden ACTION.
ODPOWIEDZ