Wysłany: 2016-04-07, 13:40
amama5
Wiek: 39 Na forum: 4745 dni Posty: 57
Nick w MP: kamiloooswas
Piwa : 2
Witam mam problem z przechowalnia, ot?? nie zapisuje mi paliwa i przebiegu. Pr?bowa?em na wiele sposob?w lecz nie dzia?a
Licze na pomoc
--[[
Code by Riot
]]
-- SQL LITE
handler = dbConnect ( "sqlite" , "przechowywalnia.db" )
dbExec ( handler , "CREATE TABLE IF NOT EXISTS `przechowywalnia` (`id` INTEGER, `model` INTEGER, `wlasciciel` INTEGER)" )
dbExec ( handler , "CREATE TABLE IF NOT EXISTS `puszkodzenia` (`id` INTEGER, `hp` INTEGER, `p0` INTEGER, `p1` INTEGER, `p2` INTEGER, `p3` INTEGER, `p4` INTEGER, `p5` INTEGER, `p6` INTEGER)" )
function onStartPrzechowywalnia ()
-- marker
local maly = createMarker ( - 100.38 , 1051.10 , 19.87 - 0.9 , "cylinder" , 1.4 , 36 , 255 , 0 , 85 )
addEventHandler ( "onMarkerHit" , maly , onPrzechowywalniaHit )
local przecho = createBlip (- 96.87 , 1040.83 , 19.87 , 35 )
duzy = createMarker (- 96.87 , 1040.83 , 19.87 - 0.9 , "cylinder" , 8 , 0 , 133 , 99 , 80 )
end
addEventHandler ( "onResourceStart" , getResourceRootElement ( getThisResource ()), onStartPrzechowywalnia )
function onPrzechowywalniaHit ( hitElement )
if getElementType ( hitElement ) == "player" then
local acc = getPlayerAccount ( hitElement )
if acc then
local veh = getPedOccupiedVehicle ( hitElement )
if not veh then
local login = getAccountName ( acc )
local query = dbQuery ( handler , "SELECT * FROM przechowywalnia WHERE wlasciciel='" .. login .. "'" )
local result , rows = dbPoll ( query , - 1 )
triggerClientEvent ( hitElement , "showPrzechowywalniaGUI" , root , result or {})
end
end
end
end
addEvent ( "onPrzywrocPojazdZPrzechowywalni" , true )
addEventHandler ( "onPrzywrocPojazdZPrzechowywalni" , getRootElement (),
function( id )
local query = dbQuery ( handler , "SELECT * FROM przechowywalnia WHERE id='" .. id .. "'" )
local result , rows = dbPoll ( query , - 1 )
if #result > 0 then
dbExec ( handler , "DELETE FROM przechowywalnia WHERE id='" .. id .. "'" )
-- tworze pojazd
local x , y , z = getElementPosition ( duzy )
local zrob = exports . systempojazdow : stworzPojazd ( id , x , y , z + 2 )
if zrob then
setVehicleDamage ( zrob )
warpPedIntoVehicle ( source , zrob )
else
outputChatBox ( "#919191[#CC0000ERROR#919191]Podane auto #CC0000nie istnieje#919191." , source , 255 , 255 , 255 , true )
end
dbExec ( handler , "DELETE FROM puszkodzenia WHERE id='" .. id .. "'" )
else
outputChatBox ( "#919191[#CC0000ERROR#919191]Podane auto #CC0000nie istnieje #919191ju? w przechowywalni." , source , 255 , 255 , 255 , true )
end
end )
function czyPojazdJestWPrzechowywalni ( id )
local query = dbQuery ( handler , "SELECT * FROM przechowywalnia WHERE id='" .. id .. "'" )
local result , rows = dbPoll ( query , - 1 )
if #result > 0 then
return true
else
return false
end
end
-- ##
timery = {}
function onPrzechoVehExit ( player , seat )
if seat == 0 then
local id = getElementData ( source , "car_id" )
if id then
if isElementWithinMarker ( source , duzy ) then
timery [ id ] = setTimer ( oddajPojazdDoPrzechowywalni , 50 , 1 , source , player , id , true )
end
end
end
end
addEventHandler ( "onVehicleExit" , getRootElement (), onPrzechoVehExit )
function oddajPojazdDoPrzechowywalni ( veh , player , id , bool )
if isElement ( veh ) then
local acc = getPlayerAccount ( player )
if acc then
local wlasciciel = getElementData ( veh , "car_owner" )
local model = getElementModel ( veh )
dbExec ( handler , "INSERT INTO przechowywalnia VALUES('" .. id .. "', '" .. model .. "', '" .. wlasciciel .. "')" )
--<< zniszczenia
local hp , p0 , p1 , p2 , p3 , p4 , p5 , p6 = getVehicleDamage ( veh )
dbExec ( handler , "INSERT INTO puszkodzenia VALUES('" .. id .. "', '" .. hp .. "', '" .. p0 .. "', '" .. p1 .. "', '" .. p2 .. "', '" .. p3 .. "', '" .. p4 .. "', '" .. p5 .. "', '" .. p6 .. "')" )
--
if isElement ( player ) then
if bool then
outputChatBox ( "#919191Tw?j pojazd #FF9D00" .. getVehicleName ( veh ).. " #919191zosta? umieszczony w przechowywalni." , player , 255 , 255 , 255 , true )
else
outputChatBox ( "#919191Odda?e? pojazd #FF9D00" .. getVehicleName ( veh ).. " #919191do przechowywalni." , player , 255 , 255 , 255 , true )
end
end
destroyElement ( veh )
end
end
end
function komendaDlaAdmina ( player )
local acc = getPlayerAccount ( player )
if acc then
local login = getAccountName ( acc )
if isObjectInACLGroup ( "user." .. login , aclGetGroup ( "RCON" )) then
local veh = getPedOccupiedVehicle ( player )
if veh then
local id = getElementData ( veh , "car_id" )
if id then
oddajPojazdDoPrzechowywalni ( veh , player , id )
end
end
end
end
end
addCommandHandler ( "oddajauto" , komendaDlaAdmina )
function komendaDlaAdmina2 ( player )
local acc = getPlayerAccount ( player )
if acc then
local login = getAccountName ( acc )
if isObjectInACLGroup ( "user." .. login , aclGetGroup ( "Supporter" )) then
local veh = getPedOccupiedVehicle ( player )
if veh then
local id = getElementData ( veh , "car_id" )
if id then
oddajPojazdDoPrzechowywalni ( veh , player , id )
end
end
end
end
end
addCommandHandler ( "oddajauto" , komendaDlaAdmina2 )
function onPrzechoVehEnter ( player , seat )
if seat == 0 then
local id = getElementData ( source , "car_id" )
if id then
if isTimer ( timery [ id ]) then
killTimer ( timery [ id ])
end
end
end
end
addEventHandler ( "onVehicleEnter" , getRootElement (), onPrzechoVehEnter )
function komendaDlaAdmina3 ( player )
local acc = getPlayerAccount ( player )
if acc then
local login = getAccountName ( acc )
if isObjectInACLGroup ( "user." .. login , aclGetGroup ( "Admin2" )) then
local veh = getPedOccupiedVehicle ( player )
if veh then
local id = getElementData ( veh , "car_id" )
if id then
oddajPojazdDoPrzechowywalni ( veh , player , id )
end
end
end
end
end
addCommandHandler ( "oddajauto" , komendaDlaAdmina3 )
--<< Zapis i ustawianie uszkodzen w pojezdzie
function getVehicleDamage ( veh )
local id = getElementData ( veh , "car_id" )
if id then
save = {}
local hp = getElementHealth ( veh )
for i = 0 , 6 do
local panel = getVehiclePanelState ( veh , i )
save [ i ] = panel
end
local p0 , p1 , p2 , p3 , p4 , p5 , p6 = save [ 0 ], save [ 1 ], save [ 2 ], save [ 3 ], save [ 4 ], save [ 5 ], save [ 6 ]
save = nil
return hp , p0 , p1 , p2 , p3 , p4 , p5 , p6
end
end
function setVehicleDamage ( veh )
local id = getElementData ( veh , "car_id" )
if id then
local query = dbQuery ( handler , "SELECT * FROM puszkodzenia WHERE id='" .. id .. "'" )
local result , rows = dbPoll ( query , - 1 )
if #result > 0 then
local hp , p0 , p1 , p2 , p3 , p4 , p5 , p6 = result [ 1 ]. hp , result [ 1 ]. p0 , result [ 1 ]. p1 , result [ 1 ]. p2 , result [ 1 ]. p3 , result [ 1 ]. p4 , result [ 1 ]. p5 , result [ 1 ]. p6
save = {}
save = { p0 , p1 , p2 , p3 , p4 , p5 , p6 }
for i = 0 , 6 do
setVehiclePanelState ( veh , i , save [ i + 1 ])
end
setElementHealth ( veh , hp )
save = nil
end
end
end
Oczywi?cie za pomoc stawiam i
Więcej szczegółów
Wystawiono 1 piw(a):mariuszszok95
Wysłany: 2016-04-07, 13:52
AteX
Wiek: 26 Na forum: 4015 dni Posty: 927
Nick w MP: #AteX
Piwa : 8360
Nie zapisuje paliwa i przebiegu, bo w skrypcie go nie ma.
Wysłany: 2016-04-07, 13:53
amama5
Wiek: 39 Na forum: 4745 dni Posty: 57
Nick w MP: kamiloooswas
Piwa : 2
AteX ,
a jak go tam doda??
Wysłany: 2016-04-07, 13:58
AteX
Wiek: 26 Na forum: 4015 dni Posty: 927
Nick w MP: #AteX
Piwa : 8360
"amama5" napisał/a :AteX ,
a jak go tam doda??
Pobierasz elementdaty pojazdu z paliwem i przebiegiem. Dodajesz zapisywanie ich do bazy danych w funkcji oddajPojazdDoPrzechowywalni i nast?pnie musisz doda? odczytywanie ich z bazy danych w funkcji onPrzywrocPojazdZPrzechowywalni. Musisz utworzy? jeszcze kolumny z paliwem i przebiegiem.
Wysłany: 2016-04-07, 14:00
amama5
Wiek: 39 Na forum: 4745 dni Posty: 57
Nick w MP: kamiloooswas
Piwa : 2
AteX , Jestem amatorem i nie wiem o co chodzi
Wysłany: 2016-04-07, 14:04
AteX
Wiek: 26 Na forum: 4015 dni Posty: 927
Nick w MP: #AteX
Piwa : 8360
Z takim podej?ciem to nigdy nie b?dziesz wiedzia? o co chodzi . Proponuj? przeanalizowa? kod, poczyta? o potrzebnych funkcjach na wiki, pr?bowa? co? napisa? metod? pr?b i b??d?w. Je?eli co? nie b?dzie dzia?a? to tutaj na pewno jak nie ja to pomo?e kto? inny.
Więcej informacji znajdziesz w Wikipedii MTA: dbExec
Albo poczytaj m.in te? poradnik o bazach danych.
http://gtao.pl/tut-poradn...te-vt102403.htm
Wysłany: 2016-04-07, 14:07
amama5
Wiek: 39 Na forum: 4745 dni Posty: 57
Nick w MP: kamiloooswas
Piwa : 2
AteX ,
Ehh pr?bowa?em w ten spos?b:
dbExec ( handler , "CREATE TABLE IF NOT EXISTS `przechowywalnia` (`id` INTEGER, `model` INTEGER, `wlasciciel` INTEGER, `przebieg` FLOAT, `paliwo` FLOAT)" )
dbExec ( handler , "INSERT INTO przechowywalnia VALUES('" .. id .. "', '" .. model .. "', '" .. wlasciciel .. "', '" .. przebieg .. "', '" .. paliwo .. "')" )
Wysłany: 2016-04-07, 14:09
AteX
Wiek: 26 Na forum: 4015 dni Posty: 927
Nick w MP: #AteX
Piwa : 8360
Nie jest ?le, brakuje ci jeszcze tylko zmiennych przebieg i paliwo i zapis b?dzie gotowy, oraz skrypt musi utworzy? now? baz? danych z tymi kolumnami.
Wysłany: 2016-04-07, 14:10
amama5
Wiek: 39 Na forum: 4745 dni Posty: 57
Nick w MP: kamiloooswas
Piwa : 2
AteX ,
Usuno?em baze danych i zrestartowa?em ale niestety b??d by? z tym
'"..przebieg.."' , '"..paliwo.."' ) ")
PS. Nie wiem co to s? te zmienne xD
Wysłany: 2016-04-07, 14:12
AteX
Wiek: 26 Na forum: 4015 dni Posty: 927
Nick w MP: #AteX
Piwa : 8360
Ostatnio zmieniony przez AteX 2016-04-07, 14:13, w całości zmieniany 2 razy
Wysłany: 2016-04-07, 14:13
amama5
Wiek: 39 Na forum: 4745 dni Posty: 57
Nick w MP: kamiloooswas
Piwa : 2
AteX ,
Nie wiem co dalej Nie rozumiem ;c
[ Dodano : 2016-04-07, 14:43 ]
AteX ,
A nie m?g? by? mi kodu wys?a?? bo przeczyta?em i nadal nie wiem o co chodzi
Tagi: przechowalnia
Anonymous
Na forum: 245 dni
Posty: 1
Anonymous Koniecznie zajrzyj na: