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

Wysłany: 2018-12-21, 15:56


Mikołajj







Wiek: 22
Na forum: 2885 dni
Posty: 303
Nick w MP: Mikołaj

Piwa: 132

Respekt: 91

Witam, ot?? robi?c skrypt na hud napotka?em na jeden problem. Chc? zrobi? health bar, kt?ry b?dzie si? rusza?. Tzn. je?eli graczowi np. doda HP to pasek si? uzupe?ni. Chodzi mi tutaj o rozwi?zanie z interpolateBetween, ?eby p?ynnie to wygl?da?o. Na ten moment zrobi?em takie co?:

addEventHandler("onClientRender"root, function()
    if getElementData(localPlayer"hud:life") == "1" then
        local health getElementHealth(localPlayer)*2.82
        dxDrawImage(scale(1626), scale(150), scale(294), scale(29), "files/lp_shadow.png"000tocolor(255255255255), true)
        dxDrawImage(scale(1632), scale(156), scale(health), scale(17), "files/lp.png"000tocolor(255255255255), true)
    else
        return
    end
end)

Kod na ten moment dzia?a, lecz chodzi mi o p?ynn? zmian? HP. Dok?adniej chodzi mi o przyk?ad jakiego? if, po kt?ry to si? wykona. Z g?ry dzi?ki.

Postaw piwo autorowi tego posta
 

 
Wysłany: 2018-12-21, 17:06


Dawcio77







Wiek: 22
Na forum: 3312 dni
Posty: 89
Nick w MP: cx_u

Piwa: 136

Respekt: 35,8

Moim pomys?em jest zrobic eventHandlera kt?rego by si? triggerowa?o przez skrypt na dodawanie hp.
Przyk?adowo:

start getTickCount()



addEventHandler("onClientRender"root, function()
    if getElementData(localPlayer"hud:life") == "1" then
        local health getElementHealth(localPlayer)*2.82
        now getTickCount()
        animka interpolateBetween(stare00nowe00, ( now start ) / (( start 2000 ) - start),"Linear")
        dxDrawImage(scale(1626), scale(150), scale(294), scale(29), "files/lp_shadow.png"000tocolor(255255255255), true)
        dxDrawImage(scale(1632), scale(156), scale(health), scale(17), "files/lp.png"000tocolor(255255255255), true)
    else
        return
    end
end)

function uzupelnijHP(arg1,arg2)
    -- arg 1 to stare hparg2 to nowe hp
    starenowe arg1arg2
    start getTickCount()
end

addEvent("uzupelnijHP",true)
addEventHandler("uzupelnijHP",root,uzupelnijHP)


Potem triggerujesz "uzupelnijHP", argument pierwszy ustaw przy pobieraniu hp przed uzupelnieniem, potem uzupelniasz i robisz argument 2 to "1000 - argument pierwszy"

Ustaw sobie jeszcze t? animke tam gdzie skalujesz

Nie wiem czy b?dzie dzia?a?, pisane na szybko ;p

Postaw piwo autorowi tego posta
 

 
Więcej szczegółów
Wystawiono 1 piw(a):
Mikołajj
Wysłany: 2018-12-21, 17:09


Mikołajj







Wiek: 22
Na forum: 2885 dni
Posty: 303
Nick w MP: Mikołaj

Piwa: 132

Respekt: 91

"Dawcio77" napisał/a:

Moim pomys?em jest zrobic eventHandlera kt?rego by si? triggerowa?o przez skrypt na dodawanie hp.
Przyk?adowo:

start getTickCount()



addEventHandler("onClientRender"root, function()
    if getElementData(localPlayer"hud:life") == "1" then
        local health getElementHealth(localPlayer)*2.82
        now getTickCount()
        animka interpolateBetween(stare00nowe00, ( now start ) / (( start 2000 ) - start),"Linear")
        dxDrawImage(scale(1626), scale(150), scale(294), scale(29), "files/lp_shadow.png"000tocolor(255255255255), true)
        dxDrawImage(scale(1632), scale(156), scale(health), scale(17), "files/lp.png"000tocolor(255255255255), true)
    else
        return
    end
end)

function uzupelnijHP(arg1,arg2)
    -- arg 1 to stare hparg2 to nowe hp
    starenowe arg1arg2
    start getTickCount()
end

addEvent("uzupelnijHP",true)
addEventHandler("uzupelnijHP",root,uzupelnijHP)


Potem triggerujesz "uzupelnijHP", argument pierwszy ustaw przy pobieraniu hp przed uzupelnieniem, potem uzupelniasz i robisz argument 2 to "1000 - argument pierwszy"

Ustaw sobie jeszcze t? animke tam gdzie skalujesz

Nie wiem czy b?dzie dzia?a?, pisane na szybko ;p


To ma sens lecz co gdy kto? naturalnie zyska HP? Wtedy animacji nie b?dzie. :/ Dzi?ki z g?ry.

Postaw piwo autorowi tego posta
 

 
Wysłany: 2018-12-21, 17:16


Dawcio77







Wiek: 22
Na forum: 3312 dni
Posty: 89
Nick w MP: cx_u

Piwa: 136

Respekt: 35,8

Musia?by? napisa? event kt?ry by pobiera? co kilkadziesiat ms hp i jak bedzie zmiana to animka ;p

Postaw piwo autorowi tego posta
 

 
Więcej szczegółów
Wystawiono 1 piw(a):
Mikołajj
Wysłany: 2018-12-21, 18:47


Mikołajj







Wiek: 22
Na forum: 2885 dni
Posty: 303
Nick w MP: Mikołaj

Piwa: 132

Respekt: 91

"Dawcio77" napisał/a:

Musia?by? napisa? event kt?ry by pobiera? co kilkadziesiat ms hp i jak bedzie zmiana to animka ;p

M?g?by? poda? przyklad? Bo mi nie wychodzi. :/

Postaw piwo autorowi tego posta
 

 
Wysłany: 2018-12-21, 21:10


Dawcio77







Wiek: 22
Na forum: 3312 dni
Posty: 89
Nick w MP: cx_u

Piwa: 136

Respekt: 35,8

Moze bardziej podziel si? tym, jak by mia? naturalnym sposobem si? uzupe?nia?, bo co? mi sie nie przypomina co leczy naturalnie

Postaw piwo autorowi tego posta
 

 
Wysłany: 2018-12-21, 22:59


Mikołajj







Wiek: 22
Na forum: 2885 dni
Posty: 303
Nick w MP: Mikołaj

Piwa: 132

Respekt: 91

"Dawcio77" napisał/a:

Moze bardziej podziel si? tym, jak by mia? naturalnym sposobem si? uzupe?nia?, bo co? mi sie nie przypomina co leczy naturalnie

Tutaj chodzi o og??. Tzn. o og?ln? animacj?. Mianowocie nawet gdy zabiera HP, np. przy spadni?ciu. Zapomnia?em o tym doda?, bo podawa?em przyk?ad.

Postaw piwo autorowi tego posta
 

 
Wysłany: 2018-12-22, 13:07


Dawcio77







Wiek: 22
Na forum: 3312 dni
Posty: 89
Nick w MP: cx_u

Piwa: 136

Respekt: 35,8

Przy spadni?ciu pomoze ci ta stronka:
https://wiki.multitheftauto.com/wiki/OnClientPlayerDamage

Dodajesz taki event, i wywolujesz funkcj? w tym evencie

Postaw piwo autorowi tego posta
 

 
Wysłany: 2018-12-22, 14:21


Mikołajj







Wiek: 22
Na forum: 2885 dni
Posty: 303
Nick w MP: Mikołaj

Piwa: 132

Respekt: 91

"Dawcio77" napisał/a:

Przy spadni?ciu pomoze ci ta stronka:
https://wiki.multitheftauto.com/wiki/OnClientPlayerDamage

Dodajesz taki event, i wywolujesz funkcj? w tym evencie


Chyba nie do ko?ca si? rozumiemy. Mi chodzi tylko o animacj? gdy ilo?? hp si? zmieni.

Postaw piwo autorowi tego posta
 

 
Wysłany: 2018-12-22, 16:14


Query

SyndicateMTA






Wiek: 24
Na forum: 3071 dni
Posty: 319
Nick w MP: Query

Piwa: 5257

Respekt: 141
Respekt: 141

ST4GE, sprawdzasz warunkiem czy hp sie zwiekszylo lub zmalalo, wtedy wykonujesz xd

Podpis
Postaw piwo autorowi tego posta
 

 
Wysłany: 2018-12-22, 16:50


Mikołajj







Wiek: 22
Na forum: 2885 dni
Posty: 303
Nick w MP: Mikołaj

Piwa: 132

Respekt: 91

"darecky02" napisał/a:

ST4GE, sprawdzasz warunkiem czy hp sie zwiekszylo lub zmalalo, wtedy wykonujesz xd

Ale nie wiem jak ten warunek zrobi?. Robi? co? takiego, lecz nie dzia?a:

addEventHandler("onClientRender"root, function()
    hp getElementHealth(localPlayer)
    setTimer(function()
        hp2 getElementHealth(localPlayer)
        if hp hp2 or hp hp2 then
            ah interPolateBetween(ah00ah200, (getTickCount() - tick/500"Linear")
        end
    end500)

    dxDrawImage(scale(1626), scale(150), scale(294), scale(29), "files/life_bg.png"000tocolor(255255255255), true)
    dxDrawImage(scale(1632), scale(156), scale(hp+(ah*2.82), scale(17), "files/life_lane.png"000tocolor(255255255255), true)
end)


Nie wiem, mo?e jestem u?omny. xD

Postaw piwo autorowi tego posta
 

 
Tagi: interpolatebetween
Anonymous





Na forum: 245 dni
Posty: 1



Anonymous Koniecznie zajrzyj na:






Skocz do:  
Wyświetl posty z ostatnich:   
GTAONLINE.PL » JĘZYKI PROGRAMOWANIA » LUA » interpolateBetween 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