0 Üye ve 1 Ziyaretçi konuyu incelemekte.
local tablo = { { id = 411, pos = {0, 0, 0}, rot = {0, 0, 0}, color = {255, 255, 255} }, }local arabalar = {}function arabaOlustur(id, x, y, z, rx, ry, rz, r, g, b) local i = (#arabalar)+1 if not arabalar[i] then arabalar[i] = {} end arabalar[i] = createVehicle(id, x, y, z, rx, ry, rz) setVehicleColor(arabalar[i], r, g, b)endfor i, v in ipairs(tablo) do arabaOlustur(v.id, v.pos[1], v.pos[2], v.pos[3], v.rot[1], v.rot[2], v.rot[3], v.color[1], v.color[2], v.color[3])end
Fark ne? Kodlocal tablo = { { id = 411, pos = {0, 0, 0}, rot = {0, 0, 0}, color = {255, 255, 255} }, }local arabalar = {}function arabaOlustur(id, x, y, z, rx, ry, rz, r, g, b) local i = (#arabalar)+1 if not arabalar[i] then arabalar[i] = {} end arabalar[i] = createVehicle(id, x, y, z, rx, ry, rz) setVehicleColor(arabalar[i], r, g, b)endfor i, v in ipairs(tablo) do arabaOlustur(v.id, v.pos[1], v.pos[2], v.pos[3], v.rot[1], v.rot[2], v.rot[3], v.color[1], v.color[2], v.color[3])end
Burada anlatılmak istenen bi tabloya 3 5 değer girip bu değerler ile araç oluşturmak değil. Videoyu izlersen anlarsın.Video düzenlenerek daha kısa ve öz bir hale getirilebilirdi. Her neyse içerik olarak güzel bi video olmuş. Eline sağlık.
Anlatılmak isteneni anladım zaten ben burda farkı sordum (Neden buna ihtiyaç duyulacağını), Kötü birşey söylemedim her lafa atlama.
database = setmetatable({}, { __newindex = function(t, k, v) if type(v) == 'function' then rawset(t, k, v) return end v[2] = 'database/storage/'..k..'.db'; v.dbElement = Connection(unpack(v)) rawset(t, k, v) end})function database:pull(name, isElement) if isElement then return self[name].dbElement or false end return self[name] or falseendfunction database:create(name, credentials, callback) self[name] = self[name] or credentials or error('Beklenmedik bir hata oluştu') --> if not connection then create new connection to /storage/[...].db local __assign = self[name]; --> declare variable function __assign:build(n, t) --> for create tables inside; n = n or error('Args error!') t = t or error('Args error!') local queryString = 'CREATE TABLE IF NOT EXISTS ? (' local sortColumns = {} table.foreach(t, function(col, row) if next(t, col) == nil then queryString = queryString .. ' ? ' .. row .. ');' else queryString = queryString .. ' ? ' .. row .. ',' end table.insert(sortColumns, col) end) self.dbElement:query( function(qh, err) local res, _, err = qh:poll(0) end, self.dbElement:prepareString(queryString, n, unpack(sortColumns)) return self end function __assign:query(string, args, callback) self.dbElement:query( function(qh, err) local res, rows, err = qh:poll(0) callback(res, rows, err) end, self.dbElement:prepareString(string, unpack(args)) ) end if callback then return callback(self[name].dbElement) endreturn self[name]end
--> Create's database connection & creation with table database:create('internal', {"sqlite"}, false) :build('coins', { ['rowid'] = 'INTEGER PRIMARY KEY AUTOINCREMENT', ['accName'] = 'TEXT NOT NULL', ['amount'] = 'INTEGER NOT NULL' }) :build('skinlist', { ['rowid'] = 'INTEGER PRIMARY KEY AUTOINCREMENT', ['accName'] = 'TEXT NOT NULL', ['skins'] = 'TEXT NOT NULL' }) internal = database:pull('internal') internal:query('SELECT * FROM skinlist WHERE accName = ?', {account:getName()}, function(res, rows, err) pl:setData('w:skinlist', res, false) triggerClientEvent(pl, 'onClientPlayerWeaponsLoaded', pl, res) end)
shaders = setmetatable({}, { __newindex = function(t, k, v) if type(v) == 'function' then rawset(t, k, v) return end v.shader = DxShader('dist/shader.fx') rawset(t, k, v) end})function shaders:create(element) self[element] = self[element] or {} or error('Somethings went wrong') local __assign = self[element]; function __assign:setValue(...) self.shader:setValue(...) return self end function __assign:render() self.shader:applyToWorldTexture(element) end function __assign:pause() endreturn self[element]endfunction shaders:pull(element) return self[element]end--Shaders:create(localPlayer.vehicle)