Open pprraavv opened 6 years ago
Uzupełnię jeszcze opis o obejście małego problemu, na który natrafiłem rzeźbiąc w kolorach samodzielnie. Zauważyłem, że przy tej samej konfiguracji klient Webowy wyświetla inne kolory, Mudlet nieco inne. Dodatkowo dochodzi problem konwersji koloró ANSI (tu akurat jest komenda) i XTERM (???) na RGB.
Przy inicjacji można to ominąć stosując zamiast GMCP skrypt, który jednorazowo zmapuje ustawione kolory tak, jak widzi je Mudlet. Skrypt musi wysłać komendę kolory i wyłapać jak (w skali RGB) są widziane kolory przypisane potrzebnym linijkom (np.: jaki kolor ma zwrot "niskie zadane obrazenia")
Taką inicjację trzeba uruchamić po każdych modyfikacjach kolorów
Z tego co widze to feedTriggers(text)
nie dostarcza informacji, czy jakikolwiek z grupy triggerow odpalil. Nie widze prostego sposobu aby wykrywac, ktore teksty przychodzace w gmcp.msgs
sa rozpoznawalne, a ktore nie. Jakies pomysly?
Jeśli można po feedTriggers(text) sprawdzić pierwszy znak tego co triggery zwróciły, to pierwszy znak przemielonej przez triggery linijki mówi o tym, czy zastosowano gagi: jeśli linijka dotyczy walki (z gmcp) i a po feedTriggers jej pierwszy znak <>"[", to standardowe gagi nie zadziałały.
Jeśli nie można sprawdzać jak wygląda linijka po triggerach, to hm... może obejściem jest dopisanie do każdego triggera zerowanej przed feedTriggers(text) flagi (zagagowano=true)
Triggery to postprocessing, nie mozesz miec triggerow po triggerach... :)
Drugie rozwiazanie byc moze jest teoretycznym rozwiazaniem, ale obawiam sie wydajnosci tego. Niestety, tutaj chyba jedynym rozwiazaniem bedzie all or nothing. Czyli opcja, dzieki ktorej bedzie mozna wybierac czy gagowanie robic z tekstow, czy automatycznie z gmcp na podstawie wyluskiwanych kolorow.
Nie wiedziałem, że nie można mieć triggerów po triggerach. Ale zazwyczaj rzeczy niemożliwe są rozwiązywane przez osoby, które nie wiedzą że jest to niemożliwe, więc warto próbować. Skoro triggery są uruchamiane na końcu przetwarzania, to może odwrócić kolejność gagowania i:
Wiele broni ma unikalne opisy, które umykają skryptom przypisującym im liczbowe obrażenia [0/6], [3/6], itp. Wynika to głównie z tego, że często takie opisy nie zawierają zwrotów typu "lekko ranisz", przez co nie wiadomo jaką wartość [X/6] im przypisać. Inna sprawa, że takich broni jest dość dużo, i ciężko opisać wszystkie.
Furtkę do takiego uzupełniania bez indywidualnego wyciągania triggerów otwiera GMCP_msg. Można z stamtąd wyciągnąć linijki z tagami:
I jeżeli dla nich nie istnieją Triggery w katalogu gag, to zamiast pomijania opisów można: a) wersja uproszczona: przypisać im wartość [X/X] - gracz "wie ze coś sie dzieje", choć nie wie jak bardzo. b) wersja zaawansowana: można w uniwersalny sposób wyciągnąć przybliżoną siłę ciosu korzystając z... kolorowania(!)
Podejście b) jest bardziej skomplikowane, ponieważ wymaga:
Tym sposobem każdy nie opisany wcześniej cios można skategoryzować w trójstopniowej skali:
to samo można zrobić dla obrażeń zadanych:
Podsumowując: