CMUD
Re: CMUD
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
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
Re: CMUD
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.
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."
Re: CMUD
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
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.
- 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>
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.
Re: CMUD
Ooooo.
Wielkie dzięki xD!!! Takiej pomocy się nie spodziewałem.
Skończę pracę to przetestuję i ewentualnie dostosuję do swoich wymagań
DZIĘKI!!!
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."
Re: CMUD
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...."
With no one there to hear.
Yes now the rains weep o'er his hall,
And not a soul to hear...."
Re: CMUD
Kod: Zaznacz cały
("wyjscia") {$temp = wyjscie}
Kod: Zaznacz cały
("wyjscia") {$temp = "wyjscie"}
Może to pomoże.
Herk.
Re: CMUD
W tych trzech tak pozmieniac?Herk pisze:zamień naKod: Zaznacz cały
("wyjscia") {$temp = wyjscie}
Analogicznie pozostałe przepisania do zmiennej.Kod: Zaznacz cały
("wyjscia") {$temp = "wyjscie"}
Może to pomoże.
Herk.
"...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...."
With no one there to hear.
Yes now the rains weep o'er his hall,
And not a soul to hear...."
-
- Posty: 258
- Rejestracja: 13 sie 2011 21:08
Re: CMUD
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.
2. Alias do zapisywania oznaczenia na naszej mapie.
3. Alias do znalezienia pozycji.
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.
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
}
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.
}
Kod: Zaznacz cały
$lok = %null
#if (@Lokacja_id) {
$lok = %mapquery(%concat("UserStr == '",@Lokacja_id,"'"))
}
#if (%numitems($lok) == 1) {
#te $lok
}