Z forum mudleta znaleziony skrypt do zmiany wszystkich napisów na mapie na jednakowy font i kolor, zachowujące rozmiar niezależnie od powiększenia mapy. Defaultowa mapa do skryptów Adremena wygląda jak wygląda w tej kwestii.
Skrypt uskuteczniony o aliasa (dzięki arim), przy pomocy którego można dodawać napisy na mapie bez męki jaką jest klikanie przez menusy w mudlecie. (napis pojawi się w bliskiej odległości od ustawionej lokacji na mapie skąd łatwo już go przemieścic).
Oczywiście przed wypróbowaniem zrobić kopie pliku mapy, ale powinno byc ok. Używam od tygodnia, wielce sobie chwale.
Skrypt do zmiany napisów i alias do jego wywoływania
Kod: Zaznacz cały
-------------------------------------------------
-- Put your Lua functions here. --
-- --
-- Note that you can also use external Scripts --
-------------------------------------------------
function labels()
local areas = {}
local arealabels = {}
local labelvalues = {}
local totallabel = 0
local areas = getAreaTableSwap()
local arearooms = {}
newlabels = {}
if areas ~= nill then
for i,v in pairs(areas) do
echo("------------------------\n")
cecho("Area "..i.." v "..v.."\n")
echo("------------------------\n")
arealabels = getMapLabels(i)
if arealabels ~= i then
for j,w in pairs(arealabels) do
totallabel = totallabel + 1
labelvalues = getMapLabel(i,j)
areaval = i
areatext = v
xval = labelvalues.X
yval = labelvalues.Y
zval = labelvalues.Z
tval = labelvalues.Text
-- hval = labelvalues.Height
-- wval = labelvalues.Width
cecho("Area "..i.." x "..xval.." y "..yval.." z "..zval.." "..tval.."\n")
cecho("<green>Add label "..i.."\n")
table.insert(newlabels,{ ["Label"] = totallabel,
["areaID"] = i,
["text"] = tval,
["posx"] = xval,
["posy"] = yval,
["posz"] = zval })
cecho("<red>Delete area"..i.." label "..j.."\n")
deleteMapLabel(i, j)
end --for
end--if
arearooms = getAreaRooms(i)
if arearooms[1] == nil then
echo("##################################\n")
echo("####### No rooms in Area "..i.." #####\n")
echo("##################################\n")
end--if
end --for
end --if
echo ("total "..totallabel)
for z = 1, #newlabels do
nareaID = newlabels[z].areaID
nposx = newlabels[z].posx
nposy = newlabels[z].posy
nposz = newlabels[z].posz
ntext = newlabels[z].text
createMapLabel(nareaID, ntext, nposx, nposy, nposz, 255, 255, 0, 0, 0, 0, 20, 9, false, true)
cecho("<cyan>Made label ("..nareaID..","..ntext..","..nposx..","..nposy..","..nposz..", 255, 255, 0, 0, 0, 0, 20, 10, false, true)\n")
end--for
end --function
Alias pattern
Body
createMapLabel(nareaID, ntext, nposx, nposy, nposz, 255, 255, 0, 0, 0, 0, 20, 9, false, true) ta linia odpowiada za kolor czcionki (pierwsze 3 liczby fg, nastepne 3 bg), rozmiar i powiększenie. Przy czym wielkość najlepiej regulować na ostatniej pozycji (9).
Alias do dodawania napisów z linii komend
Pattern:
Body:
Kod: Zaznacz cały
local curr_area_id = amap:get_area_id(amap.curr.area)
createMapLabel(curr_area_id, matches[2], amap.curr.x, -amap.curr.y, 0, 255, 255, 0, 0, 0, 0, 20, 9, false, true)