Re: Mudlet 3.* - skrypty + mapper
: 01 sty 2020 20:14
Oficjalne forum Arkadii, polskiego MUD-a, tekstowej gry fabularnej.
https://arkadia.rpg.pl/forum/
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
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
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
Kod: Zaznacz cały
registerAnonymousEventHandler("mapOpenEvent", function()
expandAlias("/zlok")
setMapZoom(35)
end)