TinTin++, skrypty do arkadii v.1.0

Forum techniczne Arkadii.
Eldakar
Posty: 40
Rejestracja: 19 maja 2015 23:02

Re: TinTin++, skrypty do arkadii v.1.0

Post autor: Eldakar »

fajnie ze zrobiles znajdowanie mapki poza gmcp
ja do tego uzywam flag mappera , i trzymasz tez shorta zima/lato, bo na samych dostepnych wyjsciach sie za daleko nie pojedzie

a pozatym to wszyscy maja wszystko to samo :)
Eldakar
Posty: 40
Rejestracja: 19 maja 2015 23:02

Re: TinTin++, skrypty do arkadii v.1.0

Post autor: Eldakar »

to ja mam taki pomysl:

chcialbym zeby mapa wygladala w ten sposob http://imgur.com/a/Ps8Ce

i rozwiazanie, nad ktorym sie zastanawiam:
1. mam zapisane wszystkie shorty jako atrybuty pokojow
2. ustawiam wszystkie pokoje na statyczne
loop (1..1000000) #map at $a #map roomflag static on
3. dla kazdego pokoju, znajduje wszystkie wyjscia ktore nie sa wypelnione i koloruje je bazujac na shorcie pokoju
3.a loop (1..1000000) #map at $a (dig wszystko dookola)
3.b koloruje stworzone pokoje bazujac na shorcie pokoju w srodku (las = zielony /|\ na przyklad)
3.c dodaje atrybut nowo utworzonym pokojom (roomtype = 2)
4. dla kazdego pokoju roomtype = 2, powtarzam 3.a
4.b kopiuje roomsymbol z pokoju roomtype =2 na wszystkie zdigowane dookola
3.c jeszcze raz

powtarzam krok 4 N razy, zeby zapelnic mapke

taka mapa dzialalaby w trybie 'read', w trybie 'write' wracam do oryginalnej mapy.
Dorien
Posty: 142
Rejestracja: 25 lip 2012 00:38

Re: TinTin++, skrypty do arkadii v.1.0

Post autor: Dorien »

w wiekszosci nie da sie tego wykonac moim zdaniem, przynajmniej nie dla calej mapy, nie potrafie sobie wyobrazic jak miala by wygladac mapa miasta, co z nachodzacymi na siebie lokacjami? jakas tam mapa lasu pod novi ok, ale np masyw mahakamu raczej watpie
Eldakar
Posty: 40
Rejestracja: 19 maja 2015 23:02

Re: TinTin++, skrypty do arkadii v.1.0

Post autor: Eldakar »

cze

co do miast to mam dodatkowo GMCP label, mozliwe ze nie wezme ich pod uwage .

A w kwestii pokojow ktore sie nakladaja, juz rozwiazalem problem. W obecnej wersji skrypt wyszukuje wszystkie wyjscia , tworzy wyjscia tam gdzie ich nie bylo, a jesli dig zlinkowal do uprzednio stworzonego pokoju, usuwam link.

moim wiekszym problemem jest to, jak ukryc linki miedzy tymi 'ozdobnikami' a prawdziwa mapa.
jeden pomysl, ktory mi przychodzi do glowy, to skrypt z poziomu konsoli ktory te linki pousuwa (nie da sie z tego co sie orientuje w tintinie zrobic pokoju niezlikowanego, ktory nadal bedzie widoczny)

pokaze co juz mam (prosze nie brac pod uwage optymalizacji kodu!)

Kod: Zaznacz cały

#map read mapkatt.map
#map return
#map map

#nop prepare the map;
#loop {1} {60000} {a} {#map at {$a} {#map roomflag static off;#map set roomterrain org;#map set roomsymbol {<ffa>[ ]<088>}};};

#alias {dig_terrain}
{
	#nop argv1=roomID argv2=terraincode;
	#var roomsymbol {};
	#if {"%2" == "las"} {#var roomsymbol {<ABA><fca>YYY<088>}};
	#map at {%1} {#map get roomexits room_exits};
	#map goto %1;
#if {$room_exits[w] > 1} {} {#var tmpterrain {};#map dig w;#map move w;#map get roomterrain tmpterrain;#if {$tmpterrain == "org"} {#map unlink e both} {#map set roomterrain %2;#map set roomsymbol $roomsymbol};#map goto %1};
#if {$room_exits[nw] > 1} {} {#var tmpterrain {};#map dig nw;#map move nw;#map get roomterrain tmpterrain;#if {$tmpterrain == "org"} {#map unlink se both} {#map set roomterrain %2;#map set roomsymbol $roomsymbol};#map goto %1};
#if {$room_exits[sw] > 1} {} {#var tmpterrain {};#map dig sw;#map move sw;#map get roomterrain tmpterrain;#if {$tmpterrain == "org"} {#map unlink ne both} {#map set roomterrain %2;#map set roomsymbol $roomsymbol};#map goto %1};
#if {$room_exits[n] > 1} {} {#var tmpterrain {};#map dig n;#map move n;#map get roomterrain tmpterrain;#if {$tmpterrain == "org"} {#map unlink s both} {#map set roomterrain %2;#map set roomsymbol $roomsymbol};#map goto %1};
#if {$room_exits[ne] > 1} {} {#var tmpterrain {};#map dig ne;#map move ne;#map get roomterrain tmpterrain;#if {$tmpterrain == "org"} {#map unlink sw both} {#map set roomterrain %2;#map set roomsymbol $roomsymbol};#map goto %1};
#if {$room_exits[s] > 1} {} {#var tmpterrain {};#map dig s;#map move s;#map get roomterrain tmpterrain;#if {$tmpterrain == "org"} {#map unlink n both} {#map set roomterrain %2;#map set roomsymbol $roomsymbol};#map goto %1};
#if {$room_exits[se] > 1} {} {#var tmpterrain {};#map dig se;#map move se;#map get roomterrain tmpterrain;#if {$tmpterrain == "org"} {#map unlink nw both} {#map set roomterrain %2;#map set roomsymbol $roomsymbol};#map goto %1};
#if {$room_exits[e] > 1} {} {#var tmpterrain {};#map dig e;#map move e;#map get roomterrain tmpterrain;#if {$tmpterrain == "org"} {#map unlink w both} {#map set roomterrain %2;#map set roomsymbol $roomsymbol};#map goto %1};

}
edit, przyklad
generujac taka mapke:

Kod: Zaznacz cały

 LLL       ORG
  | \     /
  |  \   /
 LLL  ORG
  | \
  |  \
 LLL  LLL
moge podmienic LLL (las) i otoczenie tego stringa, na cos ala {<ABA> <088>} i usunac wszystkie linki dookola (takze umieszczajac <ABA> <088> zamiast linkow

Kod: Zaznacz cały

 LLLLLL    ORG
 LLLLLL  /
 LLL    /
 LLL  ORG
 LLLLLL
 LLLLLL
 LLLLLLLL
Eldakar
Posty: 40
Rejestracja: 19 maja 2015 23:02

Re: TinTin++, skrypty do arkadii v.1.0

Post autor: Eldakar »

siemano,

tak wyglada beta mojej mapki, duzo do zrobienia jeszcze...

Skellige
skellige.png
skellige.png (208.64 KiB) Przejrzano 10276 razy
Las przy kasztelu
las2.png
las2.png (168.29 KiB) Przejrzano 10276 razy
Gory, nad tym jeszcze pracuje, zeby po oczach tak nie dawalo
gory.png
gory.png (244.28 KiB) Przejrzano 10276 razy
Znaki zapytania oznaczaja lokacje, w ktorych nie mam shorta zapisanego.
Dorien
Posty: 142
Rejestracja: 25 lip 2012 00:38

Re: TinTin++, skrypty do arkadii v.1.0

Post autor: Dorien »

swietna robota, brawo :) szacun

fajna opcja byloby napisanie onlinowego edytora do map
Eldakar
Posty: 40
Rejestracja: 19 maja 2015 23:02

Re: TinTin++, skrypty do arkadii v.1.0

Post autor: Eldakar »

dzieki

nie jest to az tak skomplikowane, myslalem o tym samym, z kontekstu bazy danych przedmiotow. wyszukkiwarka przedmiotow z 'klikalnymi' lokacjami z poziomu web.

jedyny problem, ktory widze na pierwszy rzut oka, to jak renderowac mapke gdy nakladaja sie pomieszczenia - mozna by to rozwiazac w ten sposob, ze mapka wyswietlana na stronce, jest generowana z poziomu muda (service tintina -> php script)
do edycji, mozna by uzyc, czegos w rodzaju 'rozy wiatrow', zbierajac dane informacje o pokoju i mozliwosci stworzenia kierunkow.

jeszcze inne podejscie (bo jak rozumiem celem byloby posiadanie sharowanej mapy):
- mapka jest na centralnym serverze
- lokalny tintin ma tylko readonly cache
- tryb 'kreacji' pokoju z poziomu clienta - wysyla zapytanie do servera, czy dana lokacja jest edytowalna (lock/nolock - zeby wiecej niz jedna osoba nie probowala edytowac danego pokoju)
- dostajemy potwierdzenie stworzenia lokacji (ack create)
- server wysyla update mapy, kazdemu polaczonemu uzytkownikowi (sync)
Stellan
Posty: 33
Rejestracja: 02 kwie 2017 19:23

Re: TinTin++, skrypty do arkadii v.1.0

Post autor: Stellan »

Zastanawialiscie sie moze nad zaslonami myszka? Wiem, ze jest to mozliwe poprzez napisanie
odpowiednigo pluginu do np. Urxvt, ktory dziala troche jak URL launcher. W tym przypadku
klikniecie ciagu pasujacego do wzorca wykonywaloby tylko komende z jego uzyciem. Przydaloby sie tez
podpiac do tego menu kontekstowe z roznymi operacjami na danej zmiennej w stylu: zaslon zmienna,
przelam zmienna itd.
Dorien
Posty: 142
Rejestracja: 25 lip 2012 00:38

Re: TinTin++, skrypty do arkadii v.1.0

Post autor: Dorien »

z tego co mi wiadomo nie da sie zrobic klikalnych linkow w tintinie jako scrypt jedyna opcja to jakims nc komunikowac sie z zewnetrzna apka na dialogu czy innym ui
Stellan
Posty: 33
Rejestracja: 02 kwie 2017 19:23

Re: TinTin++, skrypty do arkadii v.1.0

Post autor: Stellan »

Wlasnie o tym pisze. W tym przypadku zewnetrzna apka jest okno terminala z wlaczonym netcatem jako serwer. Wtedy komunikacja miedzy takim oknem a sesja w tintinie to zwyczajne wpisanie komendy po ktorejs ze stron.
ODPOWIEDZ