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

Wysłany: 2019-07-15, 17:04


Pyrek24







Wiek: 25
Na forum: 3438 dni
Posty: 546
Nick w MP: Pyrek

Piwa: 10

Respekt: 50

Witam jak zrobi? by nie klika? tylko przytrzyma? spacj? i samo tankuje ?

addEventHandler("onClientMarkerHit",resourceRoot,function(e)
    if e==localPlayer then
        if getElementData(source,"stacja"then
            if getElementType(e)=="player" then
                if getPedOccupiedVehicle(ethen
                    if getElementData(getPedOccupiedVehicle(e),"vehicle:fuel"then
                    addEventHandler("onClientRender",root,StacjaGui)
                    addEventHandler("onClientRender",root,PasekPaliwa)
                                                 Sx getTickCount()
                        bindKey("space","down",tankuj)
                    end
                end
            end
        end
    end
end)



Podpis
amta
Postaw piwo autorowi tego posta
 

 
Wysłany: 2019-07-15, 19:04


verius







Wiek: 24
Na forum: 3102 dni
Posty: 6
Nick w MP: Verius

Piwa: 1

Respekt: 50

Rozwi?za? jest kilka, my?l?, ?e naj?atwiejszym jest utworzenie timera, kt?ry b?dzie sprawdza? czy spacja jest klikni?ta i ewentualnie tankowa?.
Czyli zamiast bindKey utw?rz przyk?adowy timer:
 
setTimer(function()
   if getKeyState("space"then tankuj() end 
end,100,0)


Oczywi?cie po wyj?ciu z markera nale?y usun?? timer.
A tutaj pe?en kod:

local tankujTimer nil 
addEventHandler("onClientMarkerHit",root,function(e)
   if == localPlayer then 
      if getElementData(source"stacja"then 
         if getElementType(e) == "player" and getPedOccupiedVehicle(ethen 
            if getElementData(getPedOccupiedVehicle(e), "vehicle:fuel"then 
               addEventHandler("onClientRender",root,StacjaGui)
               addEventHandler("onClientRender",root,PasekPaliwa)
               Sx getTickCount()
               tankujTimer setTimer(function()
                  if getKeyState("space"then tankuj() end 
               end1000)
            end
         end
      end
   end
end)


Postaw piwo autorowi tego posta
 

 
Więcej szczegółów
Wystawiono 1 piw(a):
Pyrek24
Wysłany: 2019-07-15, 20:01


Hemoglobina

Tylko Hema






Wiek: 29
Na forum: 3397 dni
Posty: 89
Nick w MP: Answer

Piwa: 1386

Respekt: 90

Po co robi? timer i bindKey skoro u?ywa dw?ch funkcji w renderze?

Wrzu? do jednej z funkcji mniej wi?cej to co kolega wy?ej wys?a?.

Chodzi tutaj o


function PasekPaliwa()
   if getKeyState("space")  == true then
      ...
   end
end


Zamiast ... napisz sw?j kod odpowiedzialny za tankowanie czy tam zmian? pozycji lub poszerzenie paska.[/code]

Postaw piwo autorowi tego posta
 

 
Więcej szczegółów
Wystawiono 1 piw(a):
Pyrek24
Wysłany: 2019-07-15, 21:18


verius







Wiek: 24
Na forum: 3102 dni
Posty: 6
Nick w MP: Verius

Piwa: 1

Respekt: 50

"Hemoglobina" napisał/a:

Po co robi? timer i bindKey skoro u?ywa dw?ch funkcji w renderze?


Mi?dzy innymi po to, aby m?c bez wi?kszego problemu korygowa? pr?dko?? tankowania podczas przytrzymania spacji (w swoim przyk?adzie da?em interwa? czasowy 100ms, co mo?na zmieni? wed?ug swojego uznania). Ponadto render jest wykonywany 30-60 razy na sekund?, co po pierwsze - mo?e powodowa? natychmiastowe tankowanie do pe?na, co wed?ug mnie jest komiczne, a po drugie u kogo? kto ma 60fps tankowanie b?dzie szybsze ni? u tego co ma 30fps. Timery w pewnym stopniu niweluj? ten problem.
Wi?c po co utrudnia? sobie ?ycie i pakowa? wszystko w onClientRender, skoro r??nica wydajno?ciowa w takiej skali jest niezauwa?alna?

PS: je?eli funkcja zwraca warto?? bool, to nie ma potrzeby wykonywania warunku typu == true czy == false. Przynajmniej wed?ug mnie wygl?da to niechlujnie, ale no to zale?y od w?asnych upodoba?.

Postaw piwo autorowi tego posta
 

 
Wysłany: 2019-07-15, 22:44


Hemoglobina

Tylko Hema






Wiek: 29
Na forum: 3397 dni
Posty: 89
Nick w MP: Answer

Piwa: 1386

Respekt: 90

A od czego masz getTickCount?

Nie musia?e? pisa? po co ^^ to by?o pytanie retoryczne.

Wydaje mi si?, ?e kto? kto u?ywa rendera ma ?wiadomo?? co ile to si? wykonuje i jakie mog? by? skutki ?le napisanego kodu pod render.

I fakt rozwi?zanie, kt?re poda?e? jest w tym przypadku najprostsze.

Postaw piwo autorowi tego posta
 

 
Tagi: tankowanie
Anonymous





Na forum: 245 dni
Posty: 1



Anonymous Koniecznie zajrzyj na:






Skocz do:  
Wyświetl posty z ostatnich:   
GTAONLINE.PL » JĘZYKI PROGRAMOWANIA » LUA » Tankowanie Ten temat jest zablokowany bez możliwości zmiany postów lub pisania odpowiedzi

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