Добавлен Волчачка,
опубликован
Библиотека Lua-Warcraft3
Содержание:
Тип: Наработка
Классификация: Код
Платформа: WarCraft III, LUA, 1.31.x+
Описание:
Библиотека loader для save/load систем на Lua. Сделано с душой и любовью для программистов, коддеров-скриптовиков, и конечно же сверх-разумов. Покиньте JASSANIC, он тонет, пересядем на LUANIC!
Классификация: Код
Платформа: WarCraft III, LUA, 1.31.x+
Описание:
Библиотека loader для save/load систем на Lua. Сделано с душой и любовью для программистов, коддеров-скриптовиков, и конечно же сверх-разумов. Покиньте JASSANIC, он тонет, пересядем на LUANIC!
Ну, если вкратце: «Простенькая библиотека для save\load систем дя LUA WCIII»
Error func
function error(errstr)
print([[|cffcb0404ERROR:|r
|cffffcc00]]..errstr.."|r")
end
Заметка: Да-да, эта lib'а требует костыльную функцию error(), как и та прошлая UTF-8(tchar)
Список функций (Более подробный...)
loader.init()
loader.toint( str ) -- конветер кода в числа
loader.gen( num ) -- конвертер числа в код
loader.coding() -- преобразует числа в коды
loader.encoding() -- преобразует коды в числа
loader.gc( opt, ... ) -- если опт на тру, то обнуляет таблицу с числами, ... числа, которые вбиваете в таблицу или таблицу в таблицу.
loader.ga( astr. isAdd)
--[[ сгребает данных с чата, или можно вручную впрыснуть строку, где параметр isAdd позволяет пополнять таблицу, если astr == nil, то будет авто-сгребалка, которая будет игнорить первый параметр, который может быть -l1, -l2, -l3 или просто -l ]]--
loader.tabcpy(dest_table) -- копирует числа в таблицу
--[[Внимание:
модель таблицы должна быть такая: { size=0, numt ={} }
myTable = { size=0, numt ={} }
--]]
loader.zip_options(cc,...) --[[ просто типа упаковывает несколько чисел в одно, хорошо для опциональность ваших примочек = )
— сс число-фактор упаковки от 8 до 1000, можно и 0, но это будет плохо для вас. но рекоммендую вам минимум от 4, 8, на классически будет 16.
— ... список чисел, но не переусердствуйте с этим.
— loader.zip_options(32,16,12,31) => 32144
]]--
loader.unzip_options = function (cc,tb,nn) -- распаковывает несколько чисел из общей суммы ы
--[[ сс - фактор упаковывания
— tb таблица, в которую будем складывать полученные опции. Она должна быть, желательно пустой.
— nn число, которое является упаковкой
— loader.unzip_options(32,gt,32144) => 16 12 31
]]--
loader.pa(plr,str) -- просто сохраняет сгенерированные коды в файл, и да он их дели на -lx + 9 сегментов в данном случае
Save+
function loader_save()
if not LII then
loader.init()
LII = true
print("Инициализация погрузщика................ [ |cffFFF015СИСТЕМА|r | |cff03FF03ДА|r ]")
end
if udg_H ~= nil then
loader.gc(false, GetUnitTypeId(udg_H), GetItemTypeId(UnitItemInSlot(udg_H,0)), GetItemTypeId(UnitItemInSlot(udg_H,1)), GetItemTypeId(UnitItemInSlot(udg_H,2)), GetItemTypeId(UnitItemInSlot(udg_H,3)) )
loader.gc(true, GetItemTypeId(UnitItemInSlot(udg_H,4)), GetItemTypeId(UnitItemInSlot(udg_H,5)) )
loader.coding()
loader.pa(Player(0),"foo\\sexyworgeness.txt") -- На самом деле это эльфы, ахахаххахах
RemoveUnit(udg_H)
udg_H = nil
print("Герой был сохранён................ [ |cff03FF03ДА|r ]")
else
print("Герой был не сохранён................ [ |cffFF0303НЕУДАЧНО|r ]")
end
end
Load+
LGA = false
LGA_p = 0
function loader_load()
local ss = GetEventPlayerChatString()
if not LII then
loader.init()
LII = true
print("Инициализация погрузщика................ [ |cffFFF015СИСТЕМА|r | |cff03FF03ДА|r ]")
end
if udg_H == nil then
if not LGA and ss == "-load start" then
LGA = true
LGA_p = 0
print("Якорь погрузчика задействован................ [ |cff03FF03ДА|r ]")
elseif LGA and ss == "-load end" then
LGA = false
LGA_p = 0
local tt = {size=0,numt={}}
loader.encoding()
loader.tabcpy(tt)
udg_H = CreateUnit( Player(0), tt.numt[1], 0.0, 0.0, 90. )
if udg_H ~= nil then
for k = 2, 7 do
UnitAddItemToSlotById( udg_H, tt.numt[k], k-2 )
end
else
print("Загрузка героя................ [ |cffFF0303НЕУДАЧНО|r ]")
print("[|cffFF0303СООБЩ. ОШБ|r ]: Плохой код")
end
end
else
print("Загрузка героя................ [ |cffFF0303НЕУДАЧНО|r ]")
print("[|cffFF0303СООБЩ. ОШБ|r ]: Вы уже имеете героя в своё распоряжении")
end
end
function loader_put()
ss = GetEventPlayerChatString()
if ss ~= "-load start" and ss ~= "-load end" then
if LGA then
if LGA_p == 0 then
LGA_p = LGA_p + 1
loader.ga(nil)
else
loader.ga(nil,true)
LGA_p = LGA_p + 1
end
print(ss)
else
print("Погрузка аргументов................ [ |cffFF0303НЕУДАЧНО|r ]")
print("[|cffFF0303СООБЩ. ОШБ|r ]: вы не ввели -load start, но чтобы загрузить введите -load end")
end
end
end
Содержание
`
ОЖИДАНИЕ РЕКЛАМЫ...
Чтобы оставить комментарий, пожалуйста, войдите на сайт.
Отредактирован Волчачка
Если будешь тестировать это чудо, то не забудь сообщить об ошибках, только обновлю архив немного, там лишняя pow инициируется.
Отредактирован PT153
Отредактирован Волчачка
Обновление 0.5
Что сделано
Планируется (Если будет желание, то сделаем )