Wysłany: 2018-12-21, 15:56
Mikołajj
Wiek: 22 Na forum: 2885 dni Posty: 303
Nick w MP: Mikołaj
Piwa : 132
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" , 0 , 0 , 0 , tocolor ( 255 , 255 , 255 , 255 ), true )
dxDrawImage ( scale ( 1632 ), scale ( 156 ), scale ( health ), scale ( 17 ), "files/lp.png" , 0 , 0 , 0 , tocolor ( 255 , 255 , 255 , 255 ), 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.
Wysłany: 2018-12-21, 17:06
Dawcio77
Wiek: 22 Na forum: 3312 dni Posty: 89
Nick w MP: cx_u
Piwa : 136
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 ( stare , 0 , 0 , nowe , 0 , 0 , ( now - start ) / (( start + 2000 ) - start ), "Linear" )
dxDrawImage ( scale ( 1626 ), scale ( 150 ), scale ( 294 ), scale ( 29 ), "files/lp_shadow.png" , 0 , 0 , 0 , tocolor ( 255 , 255 , 255 , 255 ), true )
dxDrawImage ( scale ( 1632 ), scale ( 156 ), scale ( health ), scale ( 17 ), "files/lp.png" , 0 , 0 , 0 , tocolor ( 255 , 255 , 255 , 255 ), true )
else
return
end
end )
function uzupelnijHP ( arg1 , arg2 )
-- arg 1 to stare hp , arg2 to nowe hp
stare , nowe = arg1 , arg2
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
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
"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 ( stare , 0 , 0 , nowe , 0 , 0 , ( now - start ) / (( start + 2000 ) - start ), "Linear" )
dxDrawImage ( scale ( 1626 ), scale ( 150 ), scale ( 294 ), scale ( 29 ), "files/lp_shadow.png" , 0 , 0 , 0 , tocolor ( 255 , 255 , 255 , 255 ), true )
dxDrawImage ( scale ( 1632 ), scale ( 156 ), scale ( health ), scale ( 17 ), "files/lp.png" , 0 , 0 , 0 , tocolor ( 255 , 255 , 255 , 255 ), true )
else
return
end
end )
function uzupelnijHP ( arg1 , arg2 )
-- arg 1 to stare hp , arg2 to nowe hp
stare , nowe = arg1 , arg2
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
To ma sens lecz co gdy kto? naturalnie zyska HP? Wtedy animacji nie b?dzie. Dzi?ki z g?ry.
Wysłany: 2018-12-21, 17:16
Dawcio77
Wiek: 22 Na forum: 3312 dni Posty: 89
Nick w MP: cx_u
Piwa : 136
Musia?by? napisa? event kt?ry by pobiera? co kilkadziesiat ms hp i jak bedzie zmiana to animka
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
"Dawcio77" napisał/a :Musia?by? napisa? event kt?ry by pobiera? co kilkadziesiat ms hp i jak bedzie zmiana to animka
M?g?by? poda? przyklad? Bo mi nie wychodzi.
Wysłany: 2018-12-21, 21:10
Dawcio77
Wiek: 22 Na forum: 3312 dni Posty: 89
Nick w MP: cx_u
Piwa : 136
Moze bardziej podziel si? tym, jak by mia? naturalnym sposobem si? uzupe?nia?, bo co? mi sie nie przypomina co leczy naturalnie
Wysłany: 2018-12-21, 22:59
Mikołajj
Wiek: 22 Na forum: 2885 dni Posty: 303
Nick w MP: Mikołaj
Piwa : 132
"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.
Wysłany: 2018-12-22, 13:07
Dawcio77
Wiek: 22 Na forum: 3312 dni Posty: 89
Nick w MP: cx_u
Piwa : 136
Wysłany: 2018-12-22, 14:21
Mikołajj
Wiek: 22 Na forum: 2885 dni Posty: 303
Nick w MP: Mikołaj
Piwa : 132
"Dawcio77" napisał/a :
Chyba nie do ko?ca si? rozumiemy. Mi chodzi tylko o animacj? gdy ilo?? hp si? zmieni.
Wysłany: 2018-12-22, 16:14
Query
SyndicateMTA
Wiek: 24 Na forum: 3072 dni Posty: 319
Nick w MP: Query
Piwa : 5257
ST4GE , sprawdzasz warunkiem czy hp sie zwiekszylo lub zmalalo, wtedy wykonujesz xd
Wysłany: 2018-12-22, 16:50
Mikołajj
Wiek: 22 Na forum: 2885 dni Posty: 303
Nick w MP: Mikołaj
Piwa : 132
"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 ( ah , 0 , 0 , ah2 , 0 , 0 , ( getTickCount () - tick / 500 , "Linear" )
end
end , 50 , 0 )
dxDrawImage ( scale ( 1626 ), scale ( 150 ), scale ( 294 ), scale ( 29 ), "files/life_bg.png" , 0 , 0 , 0 , tocolor ( 255 , 255 , 255 , 255 ), true )
dxDrawImage ( scale ( 1632 ), scale ( 156 ), scale ( hp +( ah * 2.82 ), scale ( 17 ), "files/life_lane.png" , 0 , 0 , 0 , tocolor ( 255 , 255 , 255 , 255 ), true )
end )
Nie wiem, mo?e jestem u?omny. xD
Tagi: interpolatebetween
Anonymous
Na forum: 245 dni
Posty: 1
Anonymous Koniecznie zajrzyj na: