,

Гильдия «Черамор»: Библиотека Lua-Warcraft3

» Раздел: WarCraft III

» Другое
function B2I(b)
return b and 1 or 0
end
-- Т.к. нет в LUA math.round(), nazarpunk запилил вот такой аналог
function math.round(n)
    return n % 1 >= 0.5 and math.ceil(n) or math.floor(n)
end
Мультидоска:
» Board.lua Alpha (Ведутся работы над ней)
Это всего лишь демо-код
Board {
    multiboard = nil,
    multiboarditem = nil,
    counter = nil,
    counter_rowsize = 0
}

function Board:Counters(rows,cols)
    self.counter = {}
    local fin = rows*cols
    self.counter_rowsize = rows
    for i=1, fin do
        self.counter[i] = 0
    end
end

function Board:Inc(row,col)
    local id = math.tointeger(self.counter_rowsize*row + col + 1 )
    self.counter[id] = self.counter[id] + 1
    self.multiboard = MultiboardGetItem( multiboard, row, col )
    MultiboardSetItemValue( self.multiboarditem, self.counter[id] )
    MultiboardReleaseItem( self.multiboarditem )
end

function Board:Dec(row,col)
    local id = math.tointeger(self.counter_rowsize*row + col + 1 )
    self.counter[id] = self.counter[id] - 1
    self.multiboard = MultiboardGetItem( multiboard, row, col )
    MultiboardSetItemValue( self.multiboarditem, self.counter[id] )
    MultiboardReleaseItem( self.multiboarditem )
end

function Board:GetCounter(row,col)
    local id = math.tointeger(self.counter_rowsize*row + col + 1 )
    return self.counter[id]
end

function Board:Text( row, col ,text )
    self.multiboard = MultiboardGetItem( multiboard, row, col )
    MultiboardSetItemValue( self.multiboarditem, value )
    MultiboardReleaseItem( self.multiboarditem )
end

function Board:Icon( row, col, path )
    self.multiboard = MultiboardGetItem( multiboard, row, col )
    MultiboardSetItemValue( self.multiboarditem, value )
    MultiboardReleaseItem( self.multiboarditem )
end

function Board:Style( row, col, swText, swIcon )
    self.multiboard = MultiboardGetItem( multiboard, row, col )
    MultiboardSetItemStyle(self.multiboarditem, swText, swIcon)
    MultiboardReleaseItem( self.multiboarditem )
end

function Board:Color( row, col, trgb )
    self.multiboard = MultiboardGetItem( multiboard, row, col )
    MultiboardSetItemValueColor(self.multiboarditem, tgrb.red, tgrb.green, tgrb.blue, 255)
    MultiboardReleaseItem( self.multiboarditem )
end

function Board:Width( row, col, size )
    self.multiboard = MultiboardGetItem( multiboard, row, col )
    MultiboardSetItemWidth( self.multiboarditem, size / 100 )
    MultiboardReleaseItem( self.multiboarditem )
end

function Board:create(o,rows,cols,title)
    o = o or {}
    rows = rows or 1
    cols = cols or 1
    titile = title or "Custom Multiboard"
    setmetatable(o, self)
    self.__index = self

    o.multiboard = CreateMultiboard()
    MultiboardSetColumnCount(o.multiboard, cols)
    MultiboardSetRowCount(o.multiboard, rows)
    MultiboardSetItemsStyle(o.multiboard, true, false)
    MultiboardSetItemsWidth(o.multiboard, 100 * 0.025)
    MultiboardDisplay(o.multiboard, true)
    MultiboardMinimize(o.multiboard, false)
 return o
end
» Мультидоска-Фрейм (Никто не брался)
Сводка: Ещё не решили делать доску, которая будет в корне отличаться от стандартной, где вы сможете объединять ячейки. Выравнивать ячейки как надо, не сбивая размеры и местоложения других, как это бывало в старой доске.
Работа со строками
» tchar.lua
Приспособил к WE: KingMaximax, предоставил NazarPunk
Автор скрипта: Неизвестен (Точный автор уж явно)
Скачайте общий архив LUAWELIB.zip, извлеки с него tchar.lua, затем откройте, пото скопируйте код в триггерный сценарий, который вы назовёте к примеру TCHAR или UTF, если не хотите архив качать, то скачивайте отдельно tchar.lua
ВНИМАНИЕ:
Этот код требует сл. костыля, который вы можете вставить в общий нестандартный сценарий, который открывается, когда вы щёлкаете по значку карты в триггерах.
function error(errstr)
  print([[|cffcb0404ERROR:|r
|cffffcc00]]..errstr.."|r")
end
» code
tchar.len()
tchar.sub()
tchar.reverse()
tchar.char()
tchar.unicode()
tchar.gensub()
tchar.byte()
tchar.find()
tchar.match()
tchar.gmatch()
tchar.gsub()
tchar.dump()
tchar.format()
tchar.lower()      
tchar.upper()  
tchar.rep()
tchar.replace()

Просмотров: 155

NazarPunk #1 - 1 неделю назад (отредактировано ) 2
Что за тупое именование функций NzrRound(n)? Назвали бы math.round и не мучались.
Писать EmmyDoc к аргументам и возвращаемым значениям признак хорошего тона, можете посмотреть как сделано здесь.
PT153 #2 - 6 дней назад (отредактировано ) 1
Что такое "сл." и где сам код?
прикреплены файлы
8gabriel8 #3 - 6 дней назад 0
Прикреплён же
PT153 #4 - 6 дней назад 0
Прикреплён же
Ну сейчас уже написано)
Скачайте общий архив LUAWELIB.zip, извлеки с него tchar.lua, затем откройте, пото скопируйте код в триггерный сценарий, который вы назовёте к примеру TCHAR или UTF, если не хотите архив качать, то скачивайте отдельно tchar.lua
Naadir #5 - 3 дня назад 0
PT153, походу "следующего".