Zaloguj się by uzyskać pełen dostęp. Nie masz jeszcze konta? Założ je już teraz w kilka sekund.

Wysłany: 2020-09-30, 12:36


Lucky!!! :)







Wiek: 20
Na forum: 2372 dni
Posty: 121
Nick w MP: Lucky

Piwa: 1163

Respekt: 50

Witam, chcia?bym zapyta?, jak? funkcj? mo?na wy??czy? dzia?anie markera powy?ej nim, poniewa? stawiam marker, np. w kordach 0,0,0, to w kordach 0,0,10 on nadal dzia?a, co zrobi?, aby tak nie by?o?

Daje piwka za pomoc! :D

Postaw piwo autorowi tego posta
 

 
Wysłany: 2020-09-30, 13:28


kamison

Przyszły programista .lua






Wiek: 25
Na forum: 3302 dni
Posty: 391
Nick w MP: kamison

Piwa: 594

Respekt: 205,3
Respekt: 205,3Respekt: 205,3

Postaw piwo autorowi tego posta
 

 
Wysłany: 2020-09-30, 15:48


Lucky!!! :)







Wiek: 20
Na forum: 2372 dni
Posty: 121
Nick w MP: Lucky

Piwa: 1163

Respekt: 50

Niestety nie dzia?a ;[

[ Dodano: 2020-09-30, 15:59 ]
Prosi?bym o pomoc :c

Postaw piwo autorowi tego posta
 

 
Wysłany: 2020-09-30, 16:19


kamison

Przyszły programista .lua






Wiek: 25
Na forum: 3302 dni
Posty: 391
Nick w MP: kamison

Piwa: 594

Respekt: 205,3
Respekt: 205,3Respekt: 205,3

Przyk?ad podaje, a ty powiedz co chcesz zrobi? to ma by? samolot, skok, auto czy o co chodzi?

addEventHandler("onMarkerHit",function(el,dim)
 if getElementType(el) == "player" then
  if isPedOnGround(elthen
   outputChatBox("Jeste? na ziemi wchodz?c w marker!")
  else
   outputChatBox("Nie oszukuj! Musisz wej?? w marker, a nie skaka?!")
  end
 end

 if getElementType(el) == "vehicle" then
  if isVehicleOnGround then
   outputChatBox("Brawo, wjecha?e? autem w marker stoj?c na ziemi!")
  else
   outputChatBox("Musisz by? na ziemi wje?dzaj?c w marker, nie mo?esz przeskakiwa?!")
  end
 end
end)


Postaw piwo autorowi tego posta
 

 
Wysłany: 2020-09-30, 16:21


Maniekxx

Amator






Wiek: 24
Na forum: 2894 dni
Posty: 232
Nick w MP: Maniekxx

Piwa: 225

Respekt: 110
Respekt: 110

Ostrzeżeń: 20%
Najprawdopodobniej tworzysz marker po stronie klienta, wtedy w?a?nie wyst?puje taki defekt. Aby go wyeliminowa?, w evencie 'onClientMarkerHit' pobierz pozycje markeru, oraz gracza.

getElementPosition(source)
getElementPosition(localPlayer)

Potem wystarczy ?e por?wnasz ostatni argument tych funkcji (czyli 3) i sprawdzisz czy wysoko?? gracza nie jest wy?sza od wysoko?ci markeru. Mniej wi?cej tak:


    local pos_marker = {getElementPosition(source)}
    local pos_player = {getElementPosition(localPlayer)}
    
    if pos_player [3] + pos_marker [3] or pos_player [3] - pos_marker [3then return end


[ Dodano: 2020-09-30, 16:24 ]
kamison, Przeczytaj dok?adniej to co napisa? u?ytkownik, chodzi mu o to ?e gdy gracz wejdzie w marker powy?ej niego, to przypisany do niego event si? aktywuje. Nawet je?li b?dzie 100 metr?w nad nim.

Postaw piwo autorowi tego posta
 

 
Wysłany: 2020-09-30, 16:35


Lucky!!! :)







Wiek: 20
Na forum: 2372 dni
Posty: 121
Nick w MP: Lucky

Piwa: 1163

Respekt: 50

Powiesz co ?le zrobi?em?

addEventHandler("onClientMarkerHit"resourceRoot, function(elmd)
if not md then return end
if not getElementData(el"player:faction"then return end
if getPedOccupiedVehicle(elthen
if getPlayerName(getVehicleController(getPedOccupiedVehicle(el))) == getPlayerName(elthen
if isCursorShowing el then return end
getElementPosition(source)
getElementPosition(localPlayer)
local pos_marker = {getElementPosition(source)}
local pos_player = {getElementPosition(localPlayer)}
if pos_player [3] + pos_marker [3] or pos_player [3] - pos_marker [3then return end
addEventHandler("onClientRender"getRootElement(), guia)
showCursor(truefalse)
showeded false
end
end
end)


Postaw piwo autorowi tego posta
 

 
Wysłany: 2020-09-30, 17:18


kamison

Przyszły programista .lua






Wiek: 25
Na forum: 3302 dni
Posty: 391
Nick w MP: kamison

Piwa: 594

Respekt: 205,3
Respekt: 205,3Respekt: 205,3

"Maniekxx" napisał/a:

Najprawdopodobniej tworzysz marker po stronie klienta, wtedy w?a?nie wyst?puje taki defekt. Aby go wyeliminowa?, w evencie 'onClientMarkerHit' pobierz pozycje markeru, oraz gracza.

getElementPosition(source)
getElementPosition(localPlayer)

Potem wystarczy ?e por?wnasz ostatni argument tych funkcji (czyli 3) i sprawdzisz czy wysoko?? gracza nie jest wy?sza od wysoko?ci markeru. Mniej wi?cej tak:


    local pos_marker = {getElementPosition(source)}
    local pos_player = {getElementPosition(localPlayer)}
    
    if pos_player [3] + pos_marker [3] or pos_player [3] - pos_marker [3then return end


[ Dodano: 2020-09-30, 16:24 ]
kamison, Przeczytaj dok?adniej to co napisa? u?ytkownik, chodzi mu o to ?e gdy gracz wejdzie w marker powy?ej niego, to przypisany do niego event si? aktywuje. Nawet je?li b?dzie 100 metr?w nad nim.


Poda?em taki przyk?ad bo z innym problemem do tej pory si? nie spotka?em, co nie zmienia faktu, ?e te funkcje kt?re poda?em dzia?aj? poprawnie w przyk?adzie.
Gdyby pytania na tym forum by?y konstuowane w poprawny spos?b to by?oby ?atwiej. Przyk?ad?
Cze??, co zrobi? ?eby marker nie "dzia?a?" powy?ej 10 jednostek tylko od 0 do 10?
By?oby o wiele pro?ciej, pozdrawiam.

Podpis
Coś tam kiedyś robiłem.

DC: kamison_.
Postaw piwo autorowi tego posta
 

 
Wysłany: 2020-09-30, 17:19


Maniekxx

Amator






Wiek: 24
Na forum: 2894 dni
Posty: 232
Nick w MP: Maniekxx

Piwa: 225

Respekt: 110
Respekt: 110

Ostrzeżeń: 20%
W 7 oraz 8 linijce wstawi?e? niezdefiniowan? funkcj? (nie potrzebujesz jej tam)

[ Dodano: 2020-09-30, 17:26 ]
kamison, Rozumiem ?e chcia?e? pom?c i bardzo dobrze. Funkcje kt?re poda?e? te? zosta?y podane w prawid?owy oraz zrozumia?y spos?b wraz z przyk?adem. Gracz napisa? ?e szuka funkcji odpowiedzialnej za wy??czenie tego defektu, jednak z tego co wiem to nie ma takiej funkcji (je?li jest to prosz? mnie poprawi?). Ja poda?em mu instrukcje warunkow? na zasadzie kt?rej mo?e zablokowa? ten b??d. Gdyby by?a taka funkcja i wiedzia?bym jak ona si? nazywa to z pewno?ci? bym tutaj z niej skorzysta?. R?wnie? pozdrawiam.

Postaw piwo autorowi tego posta
 

 
Wysłany: 2020-09-30, 17:38


Lucky!!! :)







Wiek: 20
Na forum: 2372 dni
Posty: 121
Nick w MP: Lucky

Piwa: 1163

Respekt: 50

Czyli co mog? zrobi?, aby to naprawi?, bo chyba ?le to robi??

addEventHandler("onClientMarkerHit"resourceRoot, function(elmd)
if not md or el~=localPlayer then return end
if not getElementData(el"player:faction"then return end
if getPedOccupiedVehicle(elthen
if getPlayerName(getVehicleController(getPedOccupiedVehicle(el))) == getPlayerName(elthen
if isCursorShowing el then return end
local pos_marker = {getElementPosition(source)}
local pos_vehicle = {getElementPosition(el)}
if pos_vehicle [3] + pos_marker [3] or pos_vehicle [3] - pos_marker [3then return end
addEventHandler("onClientRender"getRootElement(), guia)
showCursor(truefalse)
showeded false
end
end
end)


Postaw piwo autorowi tego posta
 

 
Wysłany: 2020-09-30, 17:42


Maniekxx

Amator






Wiek: 24
Na forum: 2894 dni
Posty: 232
Nick w MP: Maniekxx

Piwa: 225

Respekt: 110
Respekt: 110

Ostrzeżeń: 20%
Kod kt?ry Ci poda?em blokuje aktywowanie eventu je?li gracz jest wy?ej od markera o 2 jednostki. Teraz pytanie do Ciebie. Chcesz zablokowa? to w taki spos?b ?e gracz nie mo?e znajdowa? si? nad marker nawet o par? minimetr?w. Czy mo?e znajdowa? si? tylko odrobin? nad nim?

Postaw piwo autorowi tego posta
 

 
Wysłany: 2020-09-30, 17:43


Lucky!!! :)







Wiek: 20
Na forum: 2372 dni
Posty: 121
Nick w MP: Lucky

Piwa: 1163

Respekt: 50

Nie mo?e by? milimetr nad markerem.

Postaw piwo autorowi tego posta
 

 
Wysłany: 2020-09-30, 17:59


Maniekxx

Amator






Wiek: 24
Na forum: 2894 dni
Posty: 232
Nick w MP: Maniekxx

Piwa: 225

Respekt: 110
Respekt: 110

Ostrzeżeń: 20%
Tak to musi wygl?da?:

addEventHandler("onClientMarkerHit"resourceRoot, function(elmd)
if not md or el~=localPlayer then return end

local pos_marker = {getElementPosition(source)}
local pos_player = {getElementPosition(localPlayer)}

if pos_player [3] + pos_marker [3] or pos_player [3] - pos_marker [3then return end
outputChatBox("* Znajdujesz si? w markerze")
end)


Postaw piwo autorowi tego posta
 

 
Wysłany: 2020-09-30, 18:12


Lucky!!! :)







Wiek: 20
Na forum: 2372 dni
Posty: 121
Nick w MP: Lucky

Piwa: 1163

Respekt: 50

[lua]
addEventHandler("onClientMarkerHit", resourceRoot, function(el, md)
if not md or el~=localPlayer then return end
local pos_marker = {getElementPosition(source)}
local pos_player = {getElementPosition(localPlayer)}
if pos_player [3] + 1 < pos_marker [3] or pos_player [3] - 1 > pos_marker [3] then return end
if not getElementData(el, "player:faction") then return end
if getPedOccupiedVehicle(el) then
if getPlayerName(getVehicleController(getPedOccupiedVehicle(el))) == getPlayerName(el) then
addEventHandler("onClientRender", getRootElement(), guia)
showCursor(true, false)
showeded = false
end
end
end)
[lua]

Wci?? nie dzia?a :c

Postaw piwo autorowi tego posta
 

 
Wysłany: 2020-09-30, 18:19


Maniekxx

Amator






Wiek: 24
Na forum: 2894 dni
Posty: 232
Nick w MP: Maniekxx

Piwa: 225

Respekt: 110
Respekt: 110

Ostrzeżeń: 20%
Nie mog?em w to uwierzysz, i sam to sprawdzi?em. U mnie wszystko jest w porz?dku. mo?liwe ?e jaka? instrukcja blokuje Ci wykonanie si? eventu. Sprawd? w /debugscript 3 czy nie wyst?puj? jakie? b??dy. Lub do ka?dej instrukcji warunkowej dopisz outputChatBox() kt?ry wy?wietli si? gdy instrukcja si? nie spe?ni np:


if getElementData(player,"player:faction"then --[[reszta kodu--]] else outputChatBox("B??D!"end


Postaw piwo autorowi tego posta
 

 
Wysłany: 2020-09-30, 19:29


Lucky!!! :)







Wiek: 20
Na forum: 2372 dni
Posty: 121
Nick w MP: Lucky

Piwa: 1163

Respekt: 50

B?edu nie ma, a nie dzia?a :c

[ Dodano: 2020-09-30, 19:34 ]
Masz jakiego? discorda, tam b?dzie ?atwiej si? dogadac?

Postaw piwo autorowi tego posta
 

 
Tagi: markery :: powetrzu
Anonymous





Na forum: 245 dni
Posty: 1



Anonymous Koniecznie zajrzyj na:






Skocz do:  
Wyświetl posty z ostatnich:   
GTAONLINE.PL » JĘZYKI PROGRAMOWANIA » LUA Odpowiedz do tematu

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
Dodaj temat do Ulubionych
Wersja do druku