TinTin++, skrypty do arkadii v.1.0
-
- Posty: 3
- Rejestracja: 10 maja 2015 20:51
Re: TinTin++, skrypty do arkadii v.1.0
Dzięki Ralandil, działa.
Re: TinTin++, skrypty do arkadii v.1.0
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."
Re: TinTin++, skrypty do arkadii v.1.0
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..
}
Re: TinTin++, skrypty do arkadii v.1.0
zgodnie z wieściami próbuję włączyć co nieco w GMCP ale chyba cos robie nie tak
po czyms takim powinienem miec conieco tutaj:
niestety nic nie ma przy debug telenet on nawet ma ktos jakiś pomysł?
Kod: Zaznacz cały
#send {$IAC$SB$GMCP Core.Supports.Set [ "Char", "Room", "Objects" ] $IAC$SE\}
Kod: Zaznacz cały
#EVENT {IAC SB GMCP objects.nums IAC SE}{
#var objects {%0};
}
Re: TinTin++, skrypty do arkadii v.1.0
znalazlem błąd, był w spacji prawidłowo powinno wygladać tak:
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.
Kod: Zaznacz cały
#send {$IAC$SB$GMCPCore.Supports.Set [ "Char", "Room", "Objects" ]$IAC$SE\}
- 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.
Re: TinTin++, skrypty do arkadii v.1.0
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.
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.
Re: TinTin++, skrypty do arkadii v.1.0
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."
Re: TinTin++, skrypty do arkadii v.1.0
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.
D.
Re: TinTin++, skrypty do arkadii v.1.0
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.