Narmaniel, moge tylko zgadywac na podstawie tego co napisales co chcesz osiagnac ale:
1) Ta pusta linia przy wyswietlaniu w oknie wiadomosc wylapanych z gmcp to moim zdaniem:
Message with null data (null is a literal value of 4 characters):
SomePackage.Message null
2) Ten ostatni kawalek, w ktorym probujesz przefiltrowac wiadomosci gmcp pod katem tych zwiazanych z walka - ponownie, moim zdaniem najwygodniej by Ci bylo sprawdzac czy w tekscie jest Twoj przeciwnik i potem dalej obrabiac ten tekst wyciagajac dmg, bron, i hitlokacje.
Tak mniej wiecej wygladaloby to moim zdaniem,
#if (%match($msg.text, "<ESC>[0m<ESC>[35;1m(.*)<ESC>[0m", $kogo) != 0) {
kolejny match/regex na pozostale potrzebne Ci dane}
Generalnie jednak moim zdaniem walczysz z wiatrakami - owszem, gmcp ulatwia nieco wylapywanie linii z obrazeniami, ale tak czy inaczej bedziesz musial wlozyc mase pracy zeby uwzglednic wszystkie opisy zadawanych obrazen przez roznego rodzaju bronie...szkoda Twojego czasu.
Takim polrozwiazaniem byloby przypisanie w kolorowach unikalnych kolorow na :
* brak zadanych obrazen *
* niskie zadane obrazenia *
* srednie zadane obrazenia *
* wysokie zadane obrazenia *
i
* przeciwnik *
oraz stworzenie 4 ansi triggerow, ktore by wyswietlaly 4 rozne wiadomosci o tym jak duze kuku zrobiles przeciwnikowi