Aktualny stan pracy:
- Mam już całe wsparcie do specjalnych przejść, włącznie z bramami, przez które nie jest się w stanie przejść przed poprzedzającą akcją (np 'zastukaj we wrota'). Łazik również zaimplementowałem, który działa na tyle inteligentnie, że wyżej wspomniane przejścia rozpoznaje, rozpoznaje też specjalne przejścia pomiędzy lokacjami. Tzn, jeśli idziemy z miasta A do miasta B i na drodze są dwie bramy to wykona odpowiednią komendę i przez nie przejdzie.
- Odnajdowanie się wciąż tylko na podstawie GMCP, ale myślę nad dodaniem tego: Na podstawie ostatniej znanej lokacji, znajdź najbliższą w tym obszarze, która ma wyjścia jak te, na której obecnie postać stoi.
Problem robi się o wiele bardziej skomplikowany gdy postać pojawia się w lokacjach bez wyjścia ('Ciemny bor.'). Tutaj myślałem nad robieniem hasha lokacji z jej obszarem, np: 'Ciemny bor - Wyzima', ale to też wydaje się być niewystarczające, bo będzie 'n' lokacji 'Ciemny bor - Wyzima'.
Chwilowo dodam chyba tylko odnajdowanie się na lokacjach najbliższych, w których są widoczne miejsca.
- Obecnie jestem na etapie selekcjonowanie regexpów do drużynowego śledzenia. Śledzenie standardowych kierunków to banał, zastanawiam się nad właściwą konfiguracją przejść specjalnych ('Xxx and yyy podazaja do otworu'). Najlepsze co mi przychodzi do głowy to
fuzzy matching wyjść, które będzie dopasowywało aproksymacyjnie specjalne wyjście: 'Xxx and yyy przeczołgują się pod pniem', przejscie to 'pien', więc dopasowanie 'pniem' z 'pien' da odpowiednio dużą wartość i to zostanie wykonane.
Bardziej banalnym rozwiązaniem byłoby, gdy po prostu nie widząc normalnego przejścia wykonuję specjalne przejście z tej lokacji. To rozwiązanie dotyczy wyłącznie założenia, że z każdej lokacji jest wyłącznie jedno specjalne wyjście (także bardzo ryzykowne i w części przypadków nieprawidłowe).
- Kolorowanie lokacji itp itd - tym się jeszcze w ogóle nie zajmowałem, bo to bardziej kosmetyka.
Aktualnie /mapper wygląda tak:
Chodzik automatycznie rozpoznający komendę i wykonujący ją z opóźnieniem:
http://i.imgur.com/OAM4UFs.png
Uwagi co jeszcze byłoby przydatne bardzo mile widziane.