Cze??. Przerobi?em troch? Tw?j kod, sprawd? powoli co si? w nim po kolei dzieje, por?wnaj z Twoim etc. Nie testowa?em jak co?. Nie chce mi si? po kolei opowiada? co zmieni?em itd (moze pozniej, nie teraz), jak masz jakie? w?tpliwo?ci, pytania to pisz. W funkcjach nie dawa?em przy niektorych zmiennych 'local', poniewa? te zmienne ju? istniej? w tej funkcji (z argument?w) i tylko zmieniam ich warto??.
Komenda:
local function getValidVehicleModels()
local validVehicles = { }
local invalidModels = {
['435']=true, ['449']=true, ['450']=true, ['537']=true,
['538']=true, ['569']=true, ['570']=true, ['584']=true,
['590']=true, ['591']=true, ['606']=true, ['607']=true,
['608']=true
}
for i=400, 609 do
if ( not invalidModels[tostring(i)] ) then
table.insert ( validVehicles, i )
end
end
return validVehicles
end
local function toboolean(number)
if number >= 1 then
return true
else
return false
end
return false
end
local validTable = getValidVehicleModels()
addCommandHandler("veh", function(plr, com, model, owner, temp, rejka, r, g, b)
if tonumber(model) then
model = tonumber(model)
else
model = getVehicleModelFromName(model)
end
if validTable[model] then
owner = owner or "Publiczny"
rejka = rejka or false
r = r or 0
g = g or 0
b = b or 0
temp = tonumber(temp) or 1
local veh = stworzPojazd(model, plr.position.x, plr.position.y, plr.position.z, plr.rotation.x, plr.rotation.y, plr.rotation.z, owner, toboolean(temp), rejka, r, g, b)
plr:warpIntoVehicle(veh)
if veh:getData("uid") then
outputChatBox("* Utworzono "..veh.name.." o UID: "..veh:getData("uid")..".", plr)
else
outputChatBox("* Utworzono "..veh.name..".", plr)
end
else
outputChatBox("/"..com.." [Nazwa lub ID] ([W?a?ciciel] [Tymczasowy 0-1] [Rejestracja] [R] [G] [B]", plr)
end
end)
Funkcja na tworzenie pojazdu:
function stworzPojazd(model, x, y, z, rx, ry, rz, owner, temp, rejka, r, g, b)
if model and x and y and z and owner then
if owner ~= "Publiczny" then
owner = exports.hl_core:findPlayer(owner)
end
if not rejka then
rejka = exports.hl_core:generateString(8)
end
local veh = Vehicle(model, x, y, z, rx or 0, ry or 0, rz or 0)
veh:setPlateText(rejka)
veh:setColor(r, g, b)
if not temp then
saveVehicle(veh)
local que = executeSQLQuery("SELECT uid FROM hl_pojazdy ORDER BY uid DESC") --nie lepiej na w?asnym pliku .db lub MySQL?
pojazd:setData("uid", que[1].uid)
end
return veh
else
outputDebugString("POJAZDY: Nie podano wszystkich argument?w")
end
end
Pozwolilem sobie pisa? obiektowo, w meta.xml musisz doda?:
<oop>true</oop>
Jak pisa?em wcze?niej - nie testowa?em. Poza tym jest p??no troch? teraz wi?c mo?esz napotka? w kodzie jakie? #fucklogic etc.
Daj zna? czy dzia?a
3 linijka (uwaga, g?upie pytania):
- Czy masz zas?b "hl_pojazdy" i czy jest uruchomiony?
- Czy ten zas?b jest widziany dla MTA? (wiesz, mo?e ?le co? w meta.xml)
- Czy w meta.xml masz wyeksportowan? funkcj? stworzPojazd?
Tworzenie bazy: autoincrement w sqlite (w tagach jest co? o Androidzie, nie wiem czy b?dzie dzia?a? na MTA)
AUTOINCREMENT W MTA dzia?a jak najbardziej, sam stosuje to do kont.
Czy masz zas?b "hl_pojazdy" i czy jest uruchomiony? - no to jest oczywiste, co nie?
Czy ten zas?b jest widziany dla MTA? (wiesz, mo?e ?le co? w meta.xml) - tak, poniewa? dzia?a komenda /veh kt?ra jest bezpo?rednio w poje?dzie.
Czy w meta.xml masz wyeksportowan? funkcj? stworzPojazd? - tak, ni?ej w jaki spos?b j? eksportuj?. By? mo?e jest co? ?le, ale ze smoothMoveCamera nie ma problem?w.
Nie możesz pisać nowych tematów Nie możesz odpowiadać w tematach Nie możesz zmieniać swoich postów Nie możesz usuwać swoich postów Nie możesz głosować w ankietach