TinTin++, skrypty do arkadii v.1.0

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

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

Postautor: Eldakar » 12 maja 2017 16:22

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: 26
Rejestracja: 19 maja 2015 23:02

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

Postautor: Eldakar » 15 maja 2017 10:28

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: 140
Rejestracja: 25 lip 2012 00:38

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

Postautor: Dorien » 16 maja 2017 09:25

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: 26
Rejestracja: 19 maja 2015 23:02

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

Postautor: Eldakar » 16 maja 2017 10:16

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: 26
Rejestracja: 19 maja 2015 23:02

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

Postautor: Eldakar » 06 cze 2017 11:07

siemano,

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

Skellige
skellige.png
skellige.png (208.64 KiB) Przejrzano 1708 razy


Las przy kasztelu
las2.png
las2.png (168.29 KiB) Przejrzano 1708 razy


Gory, nad tym jeszcze pracuje, zeby po oczach tak nie dawalo
gory.png
gory.png (244.28 KiB) Przejrzano 1708 razy


Znaki zapytania oznaczaja lokacje, w ktorych nie mam shorta zapisanego.

Dorien
Posty: 140
Rejestracja: 25 lip 2012 00:38

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

Postautor: Dorien » 06 cze 2017 15:20

swietna robota, brawo :) szacun

fajna opcja byloby napisanie onlinowego edytora do map

Eldakar
Posty: 26
Rejestracja: 19 maja 2015 23:02

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

Postautor: Eldakar » 06 cze 2017 16:21

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

Postautor: Stellan » 12 cze 2017 11:03

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: 140
Rejestracja: 25 lip 2012 00:38

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

Postautor: Dorien » 12 cze 2017 15:46

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

Postautor: Stellan » 12 cze 2017 17:47

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.


Wróć do „Forum Techniczne”

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 1 gość