Zdecydowanie jest to regresja, naprawione w 3.15, ktore wyjdzie dzisiaj/jutro.
Mudlet 3.* - skrypty + mapper
Re: Mudlet 3.* - skrypty + mapper
Skrypty 3.15
Aktualizacja do wersji 3.15. Zawiera poprawki do obslugi broni, mozliwosc uzywania wiekszej liczby temp bindow, oraz inne poprawki.
Zostaly rowniez ustandaryzowane makra w pojemnikach i pojemnikach na bron, takze niektorzy z was beda musieli sobie zaktualizowac konfiguracje w pliku imie.txt
Pomoce zostaly zaktualizowane:
pojemniki
bronie, tarcze i zbroje
Cala lista zmian jest tutaj
AKTUALIZACJA
zaktualizowany plik imie.txt w paczce zip oraz tutaj. Nie ma w nim zmian koniecznych do dzialania na 3.15.
Aktualizacja: '/aktualizuj_skrypty'.
Tutaj jest pełna paczka: Skrypty 3.15
W razie jakichkolwiek problemow zapraszam na discorda na kanal #mudlet. Jest nas tam sporo i wielu z nas moze pomoc w razie jakichkolwiek problemow. Mozna tez pisac w tym temacie.
Aktualizacja do wersji 3.15. Zawiera poprawki do obslugi broni, mozliwosc uzywania wiekszej liczby temp bindow, oraz inne poprawki.
Zostaly rowniez ustandaryzowane makra w pojemnikach i pojemnikach na bron, takze niektorzy z was beda musieli sobie zaktualizowac konfiguracje w pliku imie.txt
Pomoce zostaly zaktualizowane:
pojemniki
bronie, tarcze i zbroje
Cala lista zmian jest tutaj
AKTUALIZACJA
zaktualizowany plik imie.txt w paczce zip oraz tutaj. Nie ma w nim zmian koniecznych do dzialania na 3.15.
Aktualizacja: '/aktualizuj_skrypty'.
Tutaj jest pełna paczka: Skrypty 3.15
W razie jakichkolwiek problemow zapraszam na discorda na kanal #mudlet. Jest nas tam sporo i wielu z nas moze pomoc w razie jakichkolwiek problemow. Mozna tez pisac w tym temacie.
Re: Mudlet 3.* - skrypty + mapper
Howgh!
Wykorzystując to, że jest to mój pierwszy post po długiej nieaktywności puszczę oczko do tych, którzy mnie może jeszcze pamiętają - dosyć długo zajmowałem się skryptami do zMUDa jeszcze na forum twoj.net pod nickiem Delwing
Anyway! Jako, że zMUD i cMUD nie bardzo się do czegokolwiek dzisiaj nadają mój wybór padł na Mudlet, między innymi dzięki obszernej paczce Adremena.
No ale wiadomo, każdy lubi dostosować pewne rzeczy pod siebie, i fajnie byłoby, żeby dało się wpiąć swoją funkcjonalność w istniejące skrypty, a z drugiej strony sensownie byłoby mieć możliwość dalszego aktualizowania skryptów. Do rzeczy!
Zrobiłem sobie mały, oddzielny "highlighter" do mapy, który chcę wywołać, za każdym gotoRoom i doSpeedWalk
Poniżej skrypt:
Czyli właściwie przypisujemy oryginalną funkcję pod naszą zmienną, a oryginalną referencję wskazujemy na naszą funkcję, w której wywołujemy oryginalną funkcję, przy czym przed i po możemy wywołać jeszcze nasz kod.
No i teraz te funkcje z Higlightera mozna sobie dodać pod przyciski, triggery i tak dalej.
Jak widzicie jakieś błędy, bzdury dajcie znać, dopiero się uczę w temacie Mudletowego API, a z LUA większą styczność miałem z 10 lat temu
Wykorzystując to, że jest to mój pierwszy post po długiej nieaktywności puszczę oczko do tych, którzy mnie może jeszcze pamiętają - dosyć długo zajmowałem się skryptami do zMUDa jeszcze na forum twoj.net pod nickiem Delwing
Anyway! Jako, że zMUD i cMUD nie bardzo się do czegokolwiek dzisiaj nadają mój wybór padł na Mudlet, między innymi dzięki obszernej paczce Adremena.
No ale wiadomo, każdy lubi dostosować pewne rzeczy pod siebie, i fajnie byłoby, żeby dało się wpiąć swoją funkcjonalność w istniejące skrypty, a z drugiej strony sensownie byłoby mieć możliwość dalszego aktualizowania skryptów. Do rzeczy!
Zrobiłem sobie mały, oddzielny "highlighter" do mapy, który chcę wywołać, za każdym gotoRoom i doSpeedWalk
Poniżej skrypt:
Kod: Zaznacz cały
if Highlighter == nil then
Highlighter = {
currentHighlight = {},
highlightedRooms = {},
}
end
function Highlighter:do_highlight(roomId)
Highlighter:cancel_all_highlights()
Highlighter.roomId = roomId
local path = getPath(amap.curr.id, roomId)
self.currentHighlight = speedWalkPath
for i=1,table.size(self.currentHighlight) do
highlightRoom(tonumber(self.currentHighlight[i]), 255, 255, 255, 0, 0, 0, 0.75, 255, 255)
table.insert(self.highlightedRooms, tonumber(self.currentHighlight[i]))
end
cecho("Odleglosc: " .. table.size(self.currentHighlight) .. "\n")
end
function Highlighter:cancel_highlight()
for i=1,table.size(self.currentHighlight) do
unHighlightRoom( tonumber(self.currentHighlight[i]) )
end
self.currentHighligh = {}
end
function Highlighter:cancel_all_highlights()
for i=1,table.size(self.highlightedRooms) do
unHighlightRoom( tonumber(self.highlightedRooms[i]) )
end
self.highlightedRooms = {}
end
function Highlighter:rehighlight(roomId)
if Highlighter.roomId ~= nil then
Highlighter:cancel_all_highlights()
Highlighter:do_highlight(Highlighter.roomId)
end
end
if realGoToRoom == nil then
realGoToRoom = gotoRoom
gotoRoom = function(roomId)
Highlighter:do_highlight(roomId)
realGoToRoom(roomId)
end
registerAnonymousEventHandler("amapWalkerFinished", function() Highlighter:cancel_all_highlights() end)
end
if realdoSpeedWalk == nil then
realdoSpeedWalk = doSpeedWalk
doSpeedWalk = function()
Highlighter:do_highlight(speedWalkPath[table.size(speedWalkPath)])
realdoSpeedWalk()
end
end
No i teraz te funkcje z Higlightera mozna sobie dodać pod przyciski, triggery i tak dalej.
Jak widzicie jakieś błędy, bzdury dajcie znać, dopiero się uczę w temacie Mudletowego API, a z LUA większą styczność miałem z 10 lat temu
Delwing
Re: Mudlet 3.* - skrypty + mapper
Skrypt do łatwej aktualizacji opisu lokacji (np. sklep, kowal itd) (baza skrypty Adremena)
Alias pattern:
Kod:
Wpisujemy np.
Do opisu lokacji zapiszę się wszystko co przyleci do nas z Arkii w ciągu sekundy (można to zmniejszyć, zwiększyć albo sparametryzować ewentualnie).
Dla mnie good enough, żeby się z tym nie szarpać za bardzo.
Alias pattern:
Kod: Zaznacz cały
^/capture (.*)$
Kod: Zaznacz cały
local capturedLines = {}
local descriptionLine = ""
send(matches[2])
local trigger = tempRegexTrigger("^(.*)$", function() table.insert(capturedLines , matches[2]) end)
tempTimer(1, function()
killTrigger(trigger)
for k,v in pairs(capturedLines ) do
descriptionLine = descriptionLine .. v .. "\n"
end
amap.db:set_desc(nil, descriptionLine)
end)
Kod: Zaznacz cały
/capture przejrzyj
Dla mnie good enough, żeby się z tym nie szarpać za bardzo.
Ostatnio zmieniony 07 sty 2020 00:12 przez Dargoth, łącznie zmieniany 2 razy.
Delwing
Re: Mudlet 3.* - skrypty + mapper
Skrypt przypominając o zostawionej broni w stojaku
Tutaj zmieniam scripts.utils.execute_functional, żeby móc nie tylko wysłać komendę, ale wywołać jeszcze callback przy wciśnięciu binda, który sobie rejestruję.
@Adremen, może by dodać opcję właśnie rejestrowania bind_functional z callbackiem opcjonalnym.
Trigger z patternem (nie dam sobie głowy uciąć, że jest uniwersalny, w Zamku Sigmara na pewno działa)
Pattern:
Code:
Skrypt:
Tutaj zmieniam scripts.utils.execute_functional, żeby móc nie tylko wysłać komendę, ale wywołać jeszcze callback przy wciśnięciu binda, który sobie rejestruję.
@Adremen, może by dodać opcję właśnie rejestrowania bind_functional z callbackiem opcjonalnym.
Trigger z patternem (nie dam sobie głowy uciąć, że jest uniwersalny, w Zamku Sigmara na pewno działa)
Pattern:
Kod: Zaznacz cały
^Wkladasz (.*) do (.*) stojaka na bron\.$
Kod: Zaznacz cały
WeaponReminder:register()
Kod: Zaznacz cały
if realExecuteFunctional == nil then
realExecuteFunctional = scripts.utils.execute_functional
scripts.utils.execute_functional = function()
realExecuteFunctional()
if scripts.utils.functionalCallback ~= nil then
scripts.utils.functionalCallback()
scripts.utils.functionalCallback = nil
end
end
end
function scripts.utils.bindFunctionalCallback(command, silent, callback)
scripts.utils.bind_functional(command, silent)
scripts.utils.functionalCallback = callback
end
if WeaponReminder == nil then
WeaponReminder = {}
end
function WeaponReminder:register()
if WeaponReminder.handler then
killAnonymousEventHandler(WeaponReminder.handler)
end
WeaponReminder.handler = registerAnonymousEventHandler("amapNewLocation", WeaponReminder.remind)
WeaponReminder.roomId = amap.curr.id
end
function WeaponReminder:remind(roomId)
if WeaponReminder.roomId == roomId then
cecho("<red>Nie zapomnij broni!")
scripts.utils.bindFunctionalCallback("wez bronie ze stojaka", false, function() killAnonymousEventHandler(WeaponReminder.handler) end)
end
end
Delwing
Re: Mudlet 3.* - skrypty + mapper
Witam,
przerósł mnie temat. Po paru latach chce sobie pobiegać, ściągnąłem klienta ale mapper nie chce ze mną gadać.
Jak wlacze opcje zaladuj mape pojawia sie:
> /zaladuj_mape
[ OK ] - Map loaded successfully (0s).
[ ALERT ] - At least one thing was detected during that last map operation
that it is recommended that you review the most recent report in
the file:
"C:/Users/User/.config/mudlet/profiles/Arkadia/log/errors.txt"
- look for the (last) report with the title:
"Loading map(1) "C:/Users/User/.config/mudlet/profiles/Arkadia/map_master3.dat" at 2020-
01-11T09:10:29 report".
(skrypty): Mapa zaladowana
i owszem pojawia się okienko mapy, nawet mogę sobie wybrać lokalizacje ale tylko, ze niezależnie od tego jaka lokalizacje wybiorę i tak w okienku mapy mam napis " No map or not valid position" a faktycznej mapy brak.
Jak wpisze pobierz mape mam
/pobierz_mape
[ OK ] - Map loaded successfully (0s).
[ ALERT ] - At least one thing was detected during that last map operation
that it is recommended that you review the most recent report in
the file:
"C:/Users/User/.config/mudlet/profiles/Arkadia/log/errors.txt"
- look for the (last) report with the title:
"Loading map(1) "C:/Users/User/.config/mudlet/profiles/Arkadia/map_master3.dat" at 2020-
01-11T09:20:14 report".
(skrypty): Mapa zaladowana
Ktos może pomoc i powiedzieć gdzie mam błąd ?
Z góry dzięki
Creslin
PS
od razu powiem, ze wiek mnie już szarpnął także jeśli jest taka możliwość to prosiłbym o maksymalnie łopatologiczne wyjaśnienie
przerósł mnie temat. Po paru latach chce sobie pobiegać, ściągnąłem klienta ale mapper nie chce ze mną gadać.
Jak wlacze opcje zaladuj mape pojawia sie:
> /zaladuj_mape
[ OK ] - Map loaded successfully (0s).
[ ALERT ] - At least one thing was detected during that last map operation
that it is recommended that you review the most recent report in
the file:
"C:/Users/User/.config/mudlet/profiles/Arkadia/log/errors.txt"
- look for the (last) report with the title:
"Loading map(1) "C:/Users/User/.config/mudlet/profiles/Arkadia/map_master3.dat" at 2020-
01-11T09:10:29 report".
(skrypty): Mapa zaladowana
i owszem pojawia się okienko mapy, nawet mogę sobie wybrać lokalizacje ale tylko, ze niezależnie od tego jaka lokalizacje wybiorę i tak w okienku mapy mam napis " No map or not valid position" a faktycznej mapy brak.
Jak wpisze pobierz mape mam
/pobierz_mape
[ OK ] - Map loaded successfully (0s).
[ ALERT ] - At least one thing was detected during that last map operation
that it is recommended that you review the most recent report in
the file:
"C:/Users/User/.config/mudlet/profiles/Arkadia/log/errors.txt"
- look for the (last) report with the title:
"Loading map(1) "C:/Users/User/.config/mudlet/profiles/Arkadia/map_master3.dat" at 2020-
01-11T09:20:14 report".
(skrypty): Mapa zaladowana
Ktos może pomoc i powiedzieć gdzie mam błąd ?
Z góry dzięki
Creslin
PS
od razu powiem, ze wiek mnie już szarpnął także jeśli jest taka możliwość to prosiłbym o maksymalnie łopatologiczne wyjaśnienie
Re: Mudlet 3.* - skrypty + mapper
Zaloguj się, wejdź na Arce gdzieś, gdzie jest GMCP, czyli trakt lub miasto. Wpisz /zlok.
Szybszą odpowiedź dostać możesz na naszym discordzie, tutaj: https://discord.gg/SYeCfP
Szybszą odpowiedź dostać możesz na naszym discordzie, tutaj: https://discord.gg/SYeCfP
Re: Mudlet 3.* - skrypty + mapper
Jako, że mapper otwiera się i tak ręcznie, co jest bezsensem troszkę, że nie da (albo nie wiem jak), żeby otworzył się sam...
Ja sobie dodałem do skryptów coś takiego (czyli odpalamy mapper PO zalogowaniu i mamy z głowy).
Od razu też zoom ustawiam sobię taki jak mi wygodniej.
Ja sobie dodałem do skryptów coś takiego (czyli odpalamy mapper PO zalogowaniu i mamy z głowy).
Kod: Zaznacz cały
registerAnonymousEventHandler("mapOpenEvent", function()
expandAlias("/zlok")
setMapZoom(35)
end)
Delwing
Re: Mudlet 3.* - skrypty + mapper
Dzięki za pomoc.
Działa.
Działa.
Re: Mudlet 3.* - skrypty + mapper
Witam,
mam problem ze zmianą plecaka na torbę, w pliku imie.txt zmieniam ustawienia z 1 na 2, niestety dalej chce używać mi w plecaka.
Oczywiście po zmianie ładuję plik z imieniem.
-- Domyslne pojemniki do monet (money), kamieni (stones), jedzenia (food),
-- i wszystkiego innego (other)
--
-- Dozwolone wartosci:
-- - 1 (to jest "plecak")
-- - 2 (to jest "torba")
-- - 3 (to jest "worek")
-- - 4 (to jest "sakiewka")
-- - 5 (to jest "mieszek")
-- - 6 (to jest "sakwa")
-- - 7 (to jest "wor")
scripts.inv["money_bag"] = 2
scripts.inv["stones_bag"] = 2
scripts.inv["food_bag"] = 2
scripts.inv["other_bag"] = 2
mam problem ze zmianą plecaka na torbę, w pliku imie.txt zmieniam ustawienia z 1 na 2, niestety dalej chce używać mi w plecaka.
Oczywiście po zmianie ładuję plik z imieniem.
-- Domyslne pojemniki do monet (money), kamieni (stones), jedzenia (food),
-- i wszystkiego innego (other)
--
-- Dozwolone wartosci:
-- - 1 (to jest "plecak")
-- - 2 (to jest "torba")
-- - 3 (to jest "worek")
-- - 4 (to jest "sakiewka")
-- - 5 (to jest "mieszek")
-- - 6 (to jest "sakwa")
-- - 7 (to jest "wor")
scripts.inv["money_bag"] = 2
scripts.inv["stones_bag"] = 2
scripts.inv["food_bag"] = 2
scripts.inv["other_bag"] = 2