Posiadam oto taki kodzik, chcia?bym aby otwiera?a si? brama, gdy wejd? i gdy wejd? nast?pnym razem to dopiero si? zamyka. Fanciak napisa?, abym zdefiniowa? "brama.otwarta" aby mia?a si? do czego odnie??, lecz ja nie do ko?ca wiem co mam zrobi?. Ucz? si? lua od kilku dni, wi?c nie ogarniam niekt?rych rzeczy. Prosi?bym o jak najszybsz? pomoc, poniewa? chc? zobaczy? jak taki kod ma wygl?da?. Stawiam skrzynie
brama = createObject(3089, -1543.2890625, 713.802734375, 29.567188262939, 0, 0, 0)
marker = createMarker (-1603.2890625, 713.802734375, 29.567188262939, 'cylinder', 3, 100, 100, 255)
zamknieta = true
function bramaotwarta()
if zamknieta then
moveObject(brama, 3000, -1603.2890625, 713.802734375, 29.567188262939)
zamknieta = not zamknieta
end
end
addEventHandler("onMarketHit", marker, bramaotwarta)
function bramazamknieta()
if not zamknieta then
moveObject(brama, 3000, -1603.2890625, 713.802734375, 29.567188262939, 0, 0, 0)
zamknieta = not zamknieta
end
end
addEventHandler("onMarketHit", marker, bramazamknieta)
Da?em takie oto losowe koordynaty, brama po "zamkni?ciu" nie wraca na miejsce, lecz da?em aby przesuwa?a si? w miejsce, w kt?rym stoj?. Dalej nic ;C
Problem masz z tymi koordynatami. W funkcji moveObject 1 argument to objekt, 2 to czas - te 2 masz dobrze. 3, 4 i 5 to x y z DOK?D ma brama si? przemie?ci?. Natomiast od 6 do 8 to elementy rotacji (o jaki k?t ma si? obroci?...).
Problem masz z tymi koordynatami. W funkcji moveObject 1 argument to objekt, 2 to czas - te 2 masz dobrze. 3, 4 i 5 to x y z DOK?D ma brama si? przemie?ci?. Natomiast od 6 do 8 to elementy rotacji (o jaki k?t ma si? obroci?...).
Dalej nic :C Pom??
Powstawia?em ca?kiem nowe koordynaty, rotacje i nic.. :C
Mozesz uzyc setElementData a przy otwieraniu/zamykaniu dac if getElementData, poprobuj i daj kod.
setElementData jest wolniejsze od wewn?trznej pami?ci Lua. On b?dzie korzysta? z danych bramy tylko w tym zasobie i tylko po jednej stronie, wi?c setElementData nie jest mu potrzebne.
Kod:
local gateState = {}
local gate = {}
gate.object = createObject(3089, -1543.2890625, 713.802734375, 29.567188262939, 0, 0, 0)
gate.marker = createMarker (-1603.2890625, 713.802734375, 29.567188262939, 'cylinder', 3, 100, 100, 255)
addEventHandler('onMarkerHit', gate.marker, function()
if not gateState[source] then
moveObject(gate.object, 3000, -1603.2890625, 713.802734375, 29.567188262939)
gateState[source] = true
end
end)
addEventHandler('onMarkerLeave', gate.marker, function()
if gateState[source] then
moveObject(gate.object, 3000, -1603.2890625, 713.802734375, 29.567188262939)
gateState[source] = false
end
end)
Popatrzcie na nazwy waszych event?w i zobaczycie dlaczego wam nie dzia?a?o.
Wg mnie boolean m?wi?cy o tym, czy brama jest otwarta czy nie, nie jest potrzebny.
[ Komentarz dodany przez: DestroY: 2015-09-18, 23:15 ]
"chcia?bym aby otwiera?a si? brama, gdy wejd? i gdy wejd? nast?pnym razem to dopiero si? zamyka"
brama = createObject(3089, -1543.2890625, 713.802734375, 29.567188262939, 0, 0, 0)
marker = createMarker (-1603.2890625, 713.802734375, 29.567188262939, 'cylinder', 3, 100, 100, 255)
zamknieta = true
function bramaotwarta()
if zamknieta then
moveObject(brama, 3000, -1603.2890625, 713.802734375, 29.567188262939)
zamknieta = not zamknieta
end
end
addEventHandler("onMarketHit", marker, bramaotwarta)
function bramazamknieta()
if not zamknieta then
moveObject(brama, 3000, -1603.2890625, 713.802734375, 29.567188262939, 0, 0, 0)
zamknieta = not zamknieta
end
end
addEventHandler("onMarketHit", marker, bramazamknieta)
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