TinTin++, skrypty do arkadii v.1.0

Forum techniczne Arkadii.
Luchtenger
Posty: 3
Rejestracja: 10 maja 2015 20:51

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

Post autor: Luchtenger »

Dzięki Ralandil, działa.
Migr
Posty: 37
Rejestracja: 30 kwie 2015 18:26

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

Post autor: Migr »

Tak z ciekawości, w jaki sposób macie zrobiony trigger na wrogów? Coś w stylu #action {%i{ wrog1|wrog2}}, czy też łapiecie cały output #eventem {received line} i dalej szukacie regexpem linię z opisami postaci na lokacji?
"Twoj nos atakuje won kiszonej kapusty."
Dorien
Posty: 142
Rejestracja: 25 lip 2012 00:38

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

Post autor: Dorien »

recived line dziala zawolno i przymula skrypty wtedy kiedy nie trzeba w trakcie walki kiedy najwiecej sie wywala dlatego u mnie jest tylko

Kod: Zaznacz cały

#ac {%0 przybyw{a|aja}{.| z | ze }} {
	i tutaj juz szukam..
}
Dorien
Posty: 142
Rejestracja: 25 lip 2012 00:38

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

Post autor: Dorien »

zgodnie z wieściami próbuję włączyć co nieco w GMCP ale chyba cos robie nie tak

Kod: Zaznacz cały

        #send {$IAC$SB$GMCP Core.Supports.Set [ "Char", "Room", "Objects" ] $IAC$SE\} 
po czyms takim powinienem miec conieco tutaj:

Kod: Zaznacz cały

#EVENT {IAC SB GMCP objects.nums IAC SE}{
	#var objects {%0};
}
niestety nic nie ma przy debug telenet on nawet ma ktos jakiś pomysł?
Dorien
Posty: 142
Rejestracja: 25 lip 2012 00:38

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

Post autor: Dorien »

znalazlem błąd, był w spacji prawidłowo powinno wygladać tak:

Kod: Zaznacz cały

#send {$IAC$SB$GMCPCore.Supports.Set [ "Char", "Room", "Objects" ]$IAC$SE\} 
co do samego GMCP to nie działa on zbyt dobrze,
- objects.data nie zawiera avatar które bylo w opisie
- objects.data zawiera avatar dopiero po odpytaniu, i posiada wartosc niezgodna z rzeczywistoscia (dla kobiety bez opisu mam wartosc true)
- objects.data nie wysyła aktualnej tablicy istot ale sama aktualizacje czyli mamy 3 osoby w lokacji i mamy 3 osoby w tablicy ktos wchodzi i mamy na lokacji 4 osoby, a w tablicy jedną nowa.
- obejrzyj ob123 nie działa.
- object.data nie jest za każdym razem przesyłane, nie jest przesyłane w przypadku pustego pokoju lub gdy szybko zmienimy otoczenie czyli np jest w pokoju 3 osoby, wychodzimy do pustego pokoju i mamy zaktualizowany tylko objects.nums a objects.data pozostaje bez zmian.
- messages type comm i emotes działa ok czysty txt jest w kolumnie text, natomiast dla commbat text jest pusty a jego zawartość jest wywalana do consoli.
Awatar użytkownika
Rafgart
Posty: 970
Rejestracja: 09 lut 2009 10:10

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

Post autor: Rafgart »

Objects.data zawiera zmieniajace sie parametry, liste postaci zawiera Objects.nums. Po wejsciu do pustego pokoju dostaniesz tylko Objects.num z twoja postacia, bo zmienila sie lista postaci, a parametry nie.
Dane sa wysylane z minimalnym opoznieniem w celu ich buforowania i ograniczenia mozliwosci wykorzystania ich np do autopogoni. Dlatego jak szybko przebiegniesz przez lokacje, to nic nie dostaniesz.
Avatar jest znacznikiem twojej postaci. Jako ze jest to niezmienne, to nie dostaniesz go w kolejnych pakietach objects.data. Odpytanie muda przesyla wszystkie dane, wiec tam bedzie.
Nie ob123 tylko ob_123.
Dorien
Posty: 142
Rejestracja: 25 lip 2012 00:38

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

Post autor: Dorien »

i wszystko jasne :), dzięki
Migr
Posty: 37
Rejestracja: 30 kwie 2015 18:26

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

Post autor: Migr »

Wymyślił ktoś lepszy sposób na obsługę "objects" z gmcp, niż ten podany poniżej? Całość jest ciągle pozbawiona wodotrysków i wyświetla kondycję w oknie konsoli na Linuxie z odpalonym netcatem.

Kod: Zaznacz cały

#event {IAC SB GMCP objects.nums IAC SE} 
{
#var {obnu} {%0};
#forall {$obda2[]} 
 {
 #list {obnu} find {&0} {vfob};
 #if {"$vfob" == "0"} 
  {
  #unvar {obda2[&0]}
  }
 };
_gmcp
}

#event {IAC SB GMCP objects.data IAC SE} 
{
#var {obda} {%0};
#list {numwrog} clear;
#list {nwrog} clear;
#foreach {$obda[]} {vob} 
 {
 #forall {$obda[$vob][]} 
  {
  #var {obda2[$vob][&0]} {$obda[$vob][&0]};
  }
 };
_gmcp
}

#alias {_gmcp} 
{
#foreach {$obda2[]} {fod} 
 {
 #if {"$obda2[$fod][avatar]" == "true"} 
  {
  #var {obda2[$fod][desc]} {Ty}
  };
 #if {"$obda2[$fod][team]" == "false"} 
  {
  #list {numwrog} add {$fod};
  #var {obda2[$fod][nr]} {(&{numwrog[]})};
  }; 
 #if {"$obda2[$fod][attack_num]" != "false"} 
  {
  #list {nwrog[${obda2[$fod][attack_num]}]} add {$obda2[$fod][desc]};
  };
 };
#gmcp #send {\\\033c};
#forall {$obda2[]} 
 {
 #if {"$nwrog[&0]" == "" && "$obda2[&0][avatar]" == "true"} 
  {
  #gmcp {#send {\033[1;34m@fgmhp{$obda2[&0][hp]} Ty}};
  };
 #elseif {"$nwrog[&0]" != "" && "$obda2[&0][avatar]" == "true"}
  {
  #gmcp {#send {\033[1;34m@fgmhp{$obda2[&0][hp]} Ty \033[1;31m<-&nwrog[&0][%*]- $nwrog[&0][%*]}}
  };
 #elseif {"$nwrog[&0]" == "" && "$obda2[&0][team]" == "true"} 
  {
  #gmcp {#send {\033[1;34m@fgmhp{$obda2[&0][hp]}@fzas{$obda2[&0][desc]} $obda2[&0][desc]}};
  };
 #elseif {"$nwrog[&0]" == "" && "$obda2[&0][team]" == "false"} 
  {
  #gmcp {#send {\033[1;31m@fgmhp{$obda2[&0][hp]} $obda2[&0][nr] $obda2[&0][desc]}}
  };
 #elseif {"$nwrog[&0]" != "" && "$obda2[&0][team]" == "true"}
  {
  #gmcp {#send {\033[1;34m@fgmhp{$obda2[&0][hp]}@fzas{$obda2[&0][desc]} $obda2[&0][desc] \033[1;31m<-&nwrog[&0][%*]- $nwrog[&0][%*]}}
  };
 #elseif {"$nwrog[&0]" != "" && "$obda2[&0][team]" == "false"}
  {
  #gmcp {#send {\033[1;31m@fgmhp{$obda2[&0][hp]} $obda2[&0][nr] $obda2[&0][desc] \033[1;34m<-&nwrog[&0][%*]- $nwrog[&0][%*]}}
  };
 };
}
"Twoj nos atakuje won kiszonej kapusty."
Dorien
Posty: 142
Rejestracja: 25 lip 2012 00:38

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

Post autor: Dorien »

Wiecie może czy w terminalu (tt/tf) można zrobić w jakiś sposób klikalny event ? tak jak zrobil to Cedrin w zmudzie? napewno jest to możliwe bo inne aplikacje terminalowe obsługują myszkę, pytanie czy komuś udało się to zaskryptować?

D.
Muli
Posty: 6
Rejestracja: 19 sty 2016 20:41

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

Post autor: Muli »

Nie mam teraz na to zbyt wiele czasu, ale z tego co widzialem najszybciej da sie to zrobic w Terminatorze piszac odpowiedni plugin. Cos w stylu kontekstowego menu za pomoca ktorego wysylasz komende netcatem do glownego okna. Kombinowalbym w ten sposob.
ODPOWIEDZ