Uniwersalne zapytania (nie dotyczace konkretnego klienta)

Forum techniczne Arkadii.
Awatar użytkownika
Herenvarno
Posty: 809
Rejestracja: 09 mar 2010 11:22

Uniwersalne zapytania (nie dotyczace konkretnego klienta)

Post autor: Herenvarno »

Witam.
Niekiedy niektorzy z nas programuja w miare dobrze w swoich klientach, lecz czasami zdarza sie tak, ze mimo swej wiedzy (mniejszej lub wiekszej) trafiaja na cos, czego nie potrafia rozgryzc, czasami jest to zwykle "polecenie" przeslane do Arki (ktore byloby kluczowe do rozwiazania sprawy) a czasami problem wymaga niestandartowego podejscia do tematu (np policzenie linijek wierszy przychodzacych z muda)

Mam pytanie, skierowane do "kombinujacych" na skryptach, a dotyczacych informacji zawartych w opisie lokacji.

Mianowicie, Chcialbym "wylapac" na "krotkich opisach SHORT nazwy lokacji,
Czy wedle waszej wiedzy jest mozliwe "wyliczenie" ktora linijka tekstu z arki to SHORT (zakladajac ze poruszam sie zarowno po bezdrozach/traktach, jak tez w terenach wsi i miast)

Na poczatku pomyslalem sobie tak: poruszam sie jakims traktem, przychodzi mi zwrotna informacja "ruszasz niespiesznie na zachod", kolejna linijka tekstu przychodzaca z muda to wlasnie tenze SHORTcik.
Wiec wylapanie tutaj tego tekstu nie bedzie problemem, jednak wchodzac juz do miasta, poginamy sobie bez zwrotnej informacji o predkosci marszu , wiec nie ma od czego policzyc ktora linijka tekstu odpowiada za nazwe lokacji.

Koncepcja druga: policzyc linijki od dolu, zaczynajac liczenie od "dolu" opisu lokacji
1 wylapuje "jest tu osiem wyjsc"
2 tekst o linijke wyzej na zdrowy rozum to poszukiwany short.

I wszystko sie zgadza, o ile na tej lokacji nie stoi jakis np. Zapluty pijaczek.
Lub nie lezy jakas pusta flaszencja po trunku godnym krolow. itp.

Czy macie jakas propozycje co do "szablonu" pozwalajacego wychwytywac nieszczesny krotki opis lokacji? (oczywiscie nie wymagajacy "zerknij" "sp" tylko dzialajacy bezblednie po wejsciu na lokacje samotnie lub z druzyna.

Za pomysly z gory dziekuje.
Nie każdy jest mile widziany w moim domu. Gdybym wszystkich traktował jednakowo, nikogo nie wyróżniłbym!
Awatar użytkownika
Merkava
Posty: 258
Rejestracja: 28 lis 2011 15:09

Re: Uniwersalne zapytania (nie dotyczace konkretnego klienta

Post autor: Merkava »

Jedyne rozwiązanie jakie przychodzi mi do głowy, a którego jeszcze sam nie wypróbowałem, to wykorzystanie opcji kolory krótkich opisów lokacji zrobienie skryptów wrażliwych na nie. Z tego co widziałem jest to możliwe w CMUDzie, ale (jeszcze) nie wiem jak. :)

Gdy ktoś napisze skrypt do cmuda tagujący lokacje wg kolorów - prosze o kontakt!

Dla jasności: piszę o CMUDzie i tej metodzie, bo moim zdaniem nie da się tego zrobić inaczej. Zadziwiająco często, nawet przy minimalnych lagach, w trakcie mapowania między komendę ruchu a odpowiedź MUDa wtrącał się jakiś emot lokacji lub NPCa rujnując starannie pisany mapper... Biorac pod uwagę ile linijek może, ale nie musi być przed, po i pomiedzy nazwa lokacji a wyjściami, nie mam pomysłu jak to zrobic bez korzystania z oznaczenia linijki nazwy lokacji przez kolory MUDa.

edit: No chyba że chcesz napisać słownik wszystkich mozliwych nazw lokacji i wykorzystywać go jako pattern... Ale też nie, bo jestem prawie pewien że istnieją lokacje o nazwie takiej, jak itemy widoczne w zerknij innych lokacji. (jakiś 'Wielki glaz.' czy coś podobnego)
Awatar użytkownika
Irelia
Posty: 55
Rejestracja: 18 lut 2013 10:26
Lokalizacja: Kraków

Re: Uniwersalne zapytania (nie dotyczace konkretnego klienta

Post autor: Irelia »

W Zmudzie

#sh %roomname()
#sh %roomdesc()

Obrazek
Irelia, Niesmiala Pakerka z Miejskiej Silowni, czlowiek.
Gleanevall
Posty: 258
Rejestracja: 13 sie 2011 21:08

Re: Uniwersalne zapytania (nie dotyczace konkretnego klienta

Post autor: Gleanevall »

Dokładnie, trigger reagujący na arkowe kolory, to chyba najprostszy, a na pewno zawsze skuteczny sposób. Tylko tu problem znowu jest zależny od klienta, bo nie każdy tak umie.

Jak to zrobić w cmudzie:
W nowym triggerze zaznacz opcje ANSI trigger.
Skopiuj kolorową linijkę z arki i wklej w patternie - wstawią się też kody koloru.
Dopasuj trigger, np. dla 'kolor krotki opis noca ciemnocyjanowy' pattern to ^{> |}%e[36m(*)%e[0m$
Oznaczyć linijkę dla mappera można przez #tag name
Awatar użytkownika
Herenvarno
Posty: 809
Rejestracja: 09 mar 2010 11:22

Re: Uniwersalne zapytania (nie dotyczace konkretnego klienta

Post autor: Herenvarno »

Hmm, no to takie jeszcze jedno pytanie które plącze mi się wśród dogorywających szarych komórek.

Założyłem stronkę WWW, która obsługuje bazę danych SQL.
Stronka tematycznie nie jest powiazana z zadnym MUDem.
Tak sie sklada ze server tej strony zostawia mi jeszcze spore moce obliczeniowe.

Jako ze jestem czlowiekiem ktory zaspokaja rozne swoje abstrakcyjne potrzeby programowania, wpadlem na pomysl, by wykorzystac server SQL
do przetworzenia kilkunastu tysiecy danych (bez potrzeby obciazania niepotrzebnymi procesami wlasnego PC).

Dane ktore podlegaja obrobce:
Sa to dane pochodzace z mojego mappera,
BD uzupelniana jest w nastepujacy sposob -

1 - Nazwa lokacji
2 - pozycja na mapperze (dlugosc/szerokosc/wysokosc) lokacji
3 - kierunki wyjsc i polaczenia z sasiednimi lokacjami
4 - rodzaj sciezki (las/miasto/gory/woda/itp)

Wynik koncowy obrobki:
Utworzenie uksztaltowania terenu calego znanego mi swiata Arkadii ( kontur 3D).

Co potrafie zrobic:
1 - wszelkie dane moge wprowadzac "recznie" do bazy danych, wiec tu nie ma zadnego problemu
2 - proces wprowadzania danych recznie jest żmudny, wiec chcialbym go zautomatyzowac by skrocic czas wprowadzania danych.
3 - wszelkie dane dotyczace "mappera" tj: dane ktore wymienilem powyzej
sa zapisane w pliku o rozszerzeniu XML.
4 - jestem w stanie "wymusc" na moim kliencie wysylania dowolnie sformatowanego ciagu znakow na wskazany port.
5 - klient ma domyslnie posluzyc jako "Translator" mapy na jezyk SQL

Czego nie umiem zrobic (Brak wiedzy):
1 - nie wiem czy jest mozliwosc wykonania polaczenia ze zdalna BD SQL przy wykorzystaniu klienta (sugestie mile widziane)
2 - jesli opcja "1" nie jest mozliwa, chetnie poznalbym opinie w jaki inny sposob mozna umiescic taki ogrom danych bez przepisywania wszystkiego recznie.

Na czym "pracuje":
W chwili obecnej na potrzeby wlasne uzywam w domku Wingroze XP Professional.
Nie każdy jest mile widziany w moim domu. Gdybym wszystkich traktował jednakowo, nikogo nie wyróżniłbym!
Awatar użytkownika
Merkava
Posty: 258
Rejestracja: 28 lis 2011 15:09

Re: Uniwersalne zapytania (nie dotyczace konkretnego klienta

Post autor: Merkava »

Nie mam pojęcia o bazach danych, ale zobacz w dokumentacji CMUDa 3.34 bo zdaje się obsługuje... ew zapytaj na forum Zugga. Oni tam CMUDa do wszystkiego wykorzystują, najrzadziej chyba do mudów. ;)
Gleanevall
Posty: 258
Rejestracja: 13 sie 2011 21:08

Re: Uniwersalne zapytania (nie dotyczace konkretnego klienta

Post autor: Gleanevall »

Teraz ten topic kompletnie przechodzi na tematykę ściśle związaną z klientem. ;) Też lubię grzebać w Cmudzie, to się wypowiem. Widzę takie podejścia, od najbardziej polecanych:
1. Mapę cmuda można skonwertować do zmudowej, która jest plikiem mdb i można ją otworzyć w Accesie. Jej schemat jest chyba na tyle prosty, żeby łatwo wyciągnąć, co potrzebujesz.
2. Z klienta wygenerować plik z SQLem (przecież setki tysięcy INSERTów to nic nadzwyczajnego, ani żaden 'ogrom danych').
3. Postawić prosty pliczek php na tym serwerze wstawiający dane przesłane metoda post albo get. Z aktualnej wersji CmudaPro wysyłamy to używając %url. To na pewno będzie długo trwało.
Pisz, jak chcesz któryś punkt omówić.
Awatar użytkownika
Marcinson
Posty: 47
Rejestracja: 13 lut 2009 03:02
Kontakt:

Re: Uniwersalne zapytania (nie dotyczace konkretnego klienta

Post autor: Marcinson »

Wiele klientów obsługuje bazy danych, aczkolwiek do tego co piszesz klient mudowy nie jest w ogóle potrzebny...

Jeżeli cały problem polega na sparsowaniu pliku XML i załadowania go do jakiejśtam zdalnej bazy, to w zasadzie każdy język skryptowy to zrobi z łatwością. Twój hosting na pewno dysponuje jakimiś wynalazkami typu PHP, Python, Ruby czy Lua.

W przypadku gdy jednak chcesz to zadanie koniecznie spiąć z mudem, to polecam albo już wymienionego CMUDa, albo (i to nawet bardziej) MUSH Clienta.

Jakby co tutaj znajdziesz dokumentację dotyczącą łączenia się z różnymi bazami danych:
http://mushclient.com/forum/?id=5983 - MySQL
http://mushclient.com/forum/?id=6324 - przez driver ODBC (czyli w zasadzie dowolna baza)
Awatar użytkownika
Herenvarno
Posty: 809
Rejestracja: 09 mar 2010 11:22

Re: Uniwersalne zapytania (nie dotyczace konkretnego klienta

Post autor: Herenvarno »

Dziękuje za pomoc.. :D
Informacje okazaly sie jak najbardziej przydatne.
Po prawdzie mój klient to nie CMUD ani ZMUD, lecz ważny był dla mnie sam pomysł wykonania.

Gleanevall okazał się najbliższy optymalnemu rozwiązaniu (że tez sam wcześniej na to nie wpadłem żeby klient przerobił mi plik XML na PHP z zapytaniami SQL :D, pomroczność jasna jakaś, czy coś w tym stylu :D )

W każdym bądź razie dziękuje Wszystkim za szybka odpowiedz, niektóre proponowane przez Was rozwiązania okazały się przydatne w innych kwestiach (mam nadzieje ze inni tez na tym skorzystają)

PS.
Bawił się ktoś z Was może klientem "MM 2k6" ?? Chciałbym nieco popróbować dosiąść tego starego wałacha i ewentualnie "podpytać" w przypadku napotkania ewentualnych niezrozumiałych dla mnie zastosowań.
Nie każdy jest mile widziany w moim domu. Gdybym wszystkich traktował jednakowo, nikogo nie wyróżniłbym!
Awatar użytkownika
Kari
Posty: 24
Rejestracja: 14 kwie 2014 14:25

Re: Uniwersalne zapytania (nie dotyczace konkretnego klienta

Post autor: Kari »

Hmmm... Jest moze jakis program oddzielny do robienia map do MUD'owych klientow typu zMUD,cMUD? Bo tam dosc ciezko mi sie operuje, a takto bym sobie raz na jakis czas otworzyla oddzielny program (jakbym np. juz nie grala) i rysowala sobie kolejne lokacje x.x
"...But now the rains weep o'er his hall,
With no one there to hear.
Yes now the rains weep o'er his hall,
And not a soul to hear...."
ODPOWIEDZ