CMUD

Forum techniczne Arkadii.
Dogid
Posty: 136
Rejestracja: 26 lis 2010 17:48

Re: CMUD

Post autor: Dogid »

zony są tworzone po to aby była możliwość importu/exportu poszczegółnych 'części / krainek'.
np masz bissingen w jednej zonie, znika z mapy. poprostu kasujesz tę zonę a miejsce na trakcie gdzie był łączysz ze sobą.
z koleji pojawiło się coś innego, zmapował kumpel - ty importujesz tę nową zonę i nie musisz na własnej mapie rysować.

pomiędzy zonami masz normalne połączenia.
speedwalk jako ścieżka generowana przez klika na mapie - użyje właśnie aktualnej mapy. aby go uzyskać musisz mieć np. zone A w niej wejście/wyjście do B1 i powiązaną dalej C. Jeżeli chcesz zmienić B1 na B2.. zony zostają, trzeba z aliasa skasować roomlinki jakie masz pomiędzy A i B1 oraz B1 i C i na to miejsce zrobić A/B2 i B2/C.
Bazować będziesz pewnie musiał na ID lokacji wejścia/wyjścia z A, ID lokacji wejścia/wyjścia z B1 itp.
%roomlink
%maplocked

Na jakimś formum podają np... #CALL %maplocked(0);#CALL %roomlink(8199,E,8900)

nie testowane, sprawdź sam czy będzie działało.
wrzucasz w aliasy, oxen_noc, oxen_dzien i przełączasz na ścieżki w czasie dnia lub nocy.

zastosowanie #TE może się w prosty sposób przenosić pomiędzy 'zonami' - ale nie pozwoli ci na automatyczne generowanie ścieżki biegu
Awatar użytkownika
Galaeron
Posty: 24
Rejestracja: 23 cze 2011 17:22
Lokalizacja: Gdynia

Re: CMUD

Post autor: Galaeron »

Mam mały problem.
Po długiej przerwie na nowo zainstalowałem CMUDa, jednak brakuje mi kilku opcji z dawnych czasów.
W pisaniu tego wszystkiego zbyt dobry nie jestem więc liczę na odrobinę pomocy.

Potrzebuję pomocy w zapamiętywaniu imion NPCów.
Co relog muszę na nowo się przedstawiać.
Niestety nie wiem jak to zrobić, by działało poprawnie.

HELP!!!

Podbijam temat :/
Nie rozgryzłem tego do tej pory. Przewertowałem inne fora i nadal nic.
"Milcz i uspokój sie, mój wrogu. Mą ręką kieruje Przeznaczenie, a ty nie splamisz honoru, ulegając potężniejszemu przeciwnikowi."
Herk
Posty: 20
Rejestracja: 03 cze 2010 12:12

Re: CMUD

Post autor: Herk »

W taj chwili nie mam dostępu do cmuda ale może Cię naprowadzę;
- trzeba utworzyć multitrigger:
poziom1:
pattern: (*) przedstawia się jako:$
value: #VA kto_opis %1
poziom 2:
pattern: (*)
value: #VA kto_tytuł %1

Teraz za pomoca w/w zmiennych tworzysz suba, wyłapując przed tym pierwszy wyraz z @kto_tytul.
Proponuje podbindowac to pod jakiegos KEY'a i nim dopiero tworzyć SUBy.

To tak w teorii, gdyż nie mam klienta przed sobą.
Używając:
#file 1 przedstawieni.txt
#write 1 {@kto_opis - @kto_tytul - %date()}
#close 1
możesz zapisać każdego przedstawionego do pliku, domyślnie utworzy ci ten plik w katalogu sesji.
Możesz użyć też %roomvnum(), wtedy bedziesz mógł dodać ID lokacji, na której KTOŚ ci sie przedstawił.
Do odnalezienia w łatwy sposób czyli #TE IDlokacji, lub tez za pomocą funkcji, która zaznacza Ci ścieżkę z lokacji, w której się znajdujesz do lokacji docelowej (nie pamiętam nazwy).

EDIT:
Zmotywowałeś mnie do dokończenia skryptu, oto gotowiec:
LOGOWANIE PRZEDSTAWIONYCH

Kod: Zaznacz cały

<?xml version="1.0" encoding="ISO-8859-1" ?>
<cmud>
  <class name="Logowanie_przedstawionych">
    <trigger priority="12230">
      <pattern>^{>|> |}(*) przedstawia sie jako:$</pattern>
      <value>#IF (%word(%1,2)) {
#VAR ktos_log %1} {}</value>
      <trigger>
        <pattern>^(*).$</pattern>
        <value>#IF (@ktos_log) {
$tmp={@ktos_log "-" %1 ", ID_lokacji:" %roomvnum ; Time: %time(dd-mm-yy_hh:mm)}
#FILE 2 przedstawieni.txt
#WRITE 2 $tmp
#CLOSE 2
#VA przedstawieni_sub {%word(%1,1)}
#VA przedstawiony @ktos_log
#KEY CTRL-F4 {#EXE {
  #TRIGGER {@przedstawiony} {#SUB {@przedstawiony"("@przedstawieni_sub")"}} logowanie_przedstawionych/przedstawieni_suby}
  #KEY CTRL-F4 {%null} logowanie_przedstawionych
  #SA %ansi(yellow) "Utworzono SUB'a. Test: "%ansi(reset)@przedstawiony
  } logowanie_przedstawionych
#VAR ktos_log %null
#T- logowanie_przedstawionych/przedstawieni_suby 
#sa
#sa %ansi(11) "Dodano wpis do pliku przedstawieni.txt :"
#sa %ansi(11) $tmp
#sa
#sa
#sa %ansi(yellow)"ctrl+F4 -> Zapamietanie: "%ansi(reset)@przedstawiony" ("@przedstawieni_sub")"
#sa
#T+ logowanie_przedstawionych/przedstawieni_suby
} {}</value>
      </trigger>
    </trigger>
    <var name="ktos_log" usedef="true">
      <value>%null</value>
      <default>%null</default>
    </var>
    <alias name="ktop">
      <value>#IF (%1) {
#file 1 przedstawieni.txt
#gag
$dlug1=%repeat("-",((90-%len(%1)-21)/2))
#sa %ansi(10)$dlug1 WYNIKI WYSZUKIWANIA dla: %1 $dlug1
#sa 
$kto_wyniki=%grep(1,%1)
#forall $kto_wyniki {#sa %ansi(15)* %i}
#IF ($kto_wyniki) {} {#sa %ansi(11)Wyszukiwanie :Nie znaleziono dopasowan!}
#sa
#sa %ansi(10)%repeat("-",95) 
#close 1
#gag
} {
#sa
#sa %ansi(yellow)Nie okreslono frazy do wyszukania.
#sa
#sa Skladnia:
#sa "ktop azaghorn - wyszukuje wpisy z podana fraza"
#sa ktop tlusty ogr - wyszukuje wpisy z fraza _tlusty_ i/lub _ogr_
#sa "ktop" ~"tlusty ogr~" - wyszukuje wpisy z fraza _tlusty ogr_
}</value>
    </alias>
    <var name="przedstawieni_sub"/>
    <var name="przedstawiony"/>
    <macro key="CTRL-F4">
      <value>%null</value>
    </macro>
    <class name="przedstawieni_suby"/>
  </class>
</cmud>
Logowanie nie działa na postaciach przedstawionych (znanych z imienia).
Tworzenie SUBa po zatwierdzeniu KEYem.
Alias wyszukujący wpisy w dzienniku: "ktop", pozostała funkcjonalność widoczna przy przedstawieniu się <kogoś> .
Dziennik przedstawionych tworzony domyślnie w katalogu sesji.
Nie polecam tworzenia SUB'ów na graczach z uwagi na znany błąd cmuda/zmuda przy wielu SUBach w jednej linii.
Napisano i przetestowano w wersji CMUD v. 3.34.
Herk.
Awatar użytkownika
Galaeron
Posty: 24
Rejestracja: 23 cze 2011 17:22
Lokalizacja: Gdynia

Re: CMUD

Post autor: Galaeron »

Ooooo.

Wielkie dzięki xD!!! Takiej pomocy się nie spodziewałem.

Skończę pracę to przetestuję i ewentualnie dostosuję do swoich wymagań ;)

DZIĘKI!!!
"Milcz i uspokój sie, mój wrogu. Mą ręką kieruje Przeznaczenie, a ty nie splamisz honoru, ulegając potężniejszemu przeciwnikowi."
Awatar użytkownika
Kari
Posty: 24
Rejestracja: 14 kwie 2014 14:25

Re: CMUD

Post autor: Kari »

Hmmm... Mam problem. Skrypt chodzenia z druzyna niby dziala na 3.x ale na 2.x juz nie. Wie ktos co jest nie tak? x.x

Kod: Zaznacz cały

<?xml version="1.0" encoding="ISO-8859-1" ?>
<cmud>
  <trigger priority="17320" regex="true">
    <pattern>podazasz (?:skradajac sie )?za .+ (?:na|do|za) (.+)\.$</pattern>
    <value>$temp=%1
#sw ($temp)
  ("wyjscia") {$temp = wyjscie}
  ("zewnatrz") {$temp = wyjscie}
  ("drzwi") {$temp = drzwi}
#MOVE $temp</value>
  </trigger>
</cmud>
"...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...."
Herk
Posty: 20
Rejestracja: 03 cze 2010 12:12

Re: CMUD

Post autor: Herk »

Kod: Zaznacz cały

("wyjscia") {$temp = wyjscie}
zamień na

Kod: Zaznacz cały

("wyjscia") {$temp = "wyjscie"}
Analogicznie pozostałe przepisania do zmiennej.
Może to pomoże.


Herk.
Awatar użytkownika
Kari
Posty: 24
Rejestracja: 14 kwie 2014 14:25

Re: CMUD

Post autor: Kari »

Herk pisze:

Kod: Zaznacz cały

("wyjscia") {$temp = wyjscie}
zamień na

Kod: Zaznacz cały

("wyjscia") {$temp = "wyjscie"}
Analogicznie pozostałe przepisania do zmiennej.
Może to pomoże.


Herk.
W tych trzech tak pozmieniac?
"...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...."
Herk
Posty: 20
Rejestracja: 03 cze 2010 12:12

Re: CMUD

Post autor: Herk »

Tak.
Gleanevall
Posty: 258
Rejestracja: 13 sie 2011 21:08

Re: CMUD

Post autor: Gleanevall »

Mój przykład, jak wykorzystać oznaczone lokacje arki do znajdowania pozycji na mapie w cmudzie.

1. Odbieramy oznaczenia przesyłane przez GMCP. Tworzymy trigger i ustawiamy jego typ na GMCP.

Kod: Zaznacz cały

Pattern: room.info
Script:
#if (%pos("""map""",%0)) {
  Lokacja_id = %concat(%gmcp.data.map.name,"_",%gmcp.data.map.x,"_",%gmcp.data.map.y)
} {
  Lokacja_id = %null
}
2. Alias do zapisywania oznaczenia na naszej mapie.

Kod: Zaznacz cały

#if (@Lokacja_id) {
  #if (%roomflags() == @Lokacja_id) {
    #echo Jest juz takie oznaczenie.
  } {
    #call %maplocked(0)
    #call %roomflags( ,@Lokacja_id)
    #call %maplocked(1)
    #echo Oznaczylem @Lokacja_id.
  }
} {
  #echo Nie ma oznaczenia na Arkadii.
}
3. Alias do znalezienia pozycji.

Kod: Zaznacz cały

$lok = %null
#if (@Lokacja_id) {
  $lok = %mapquery(%concat("UserStr == '",@Lokacja_id,"'"))
}
#if (%numitems($lok) == 1) {
  #te $lok
}
To takie minimum, które już łatwo rozbudować. Np. na czas oznaczania wygodnie podpiąć 2 pod trigger na nazwę lokacji, 3 pod przycisk na ekranie.
Nadia

Re: CMUD

Post autor: Nadia »

Czy ma ktoś może przykładowego arkowego gauge (hp/mana/zmęczenie) i mógłby się podzielić? Próbuję stworzyć coś z zuggsoftową pomocą, ale zupełnie mi nie idzie :(
ODPOWIEDZ