Sziasztok!
Csináltam a GameMode-mbe, hogy Egy zöld progress bar legyen a HP helyén. Ez jól mûködik, ha megy az életem, csökken a p.b. értéke. De azt is megcsináltam, hogy ha x és x között van az életed, akkor változzon a szine narancssárgára, de ez valamiért nem akar mûködni... :(
Itt a kód:
public OnPlayerUpdate(playerid)
{
new Float:hp;
new Bar:hpbar;
GetPlayerHealth(playerid, hp);
SetProgressBarValue(hpbar, hp);
if(GetPlayerHealth(playerid, hp) < 80 && GetPlayerHealth(playerid, hp) > 60)
{
SetProgressBarColor(hpbar, COLOR_GREEN);
}
else if(GetPlayerHealth(playerid, hp) < 60 && GetPlayerHealth(playerid, hp) > 30)
{
SetProgressBarColor(hpbar, COLOR_ORANGE);
}
else if(GetPlayerHealth(playerid, hp) < 30 && GetPlayerHealth(playerid, hp) > 1)
{
SetProgressBarColor(hpbar, COLOR_RED);
}
UpdateProgressBar(hpbar);
return 1;
}
Segitene valaki ebben?
public OnPlayerUpdate(playerid)
{
new Float:hp;
new Bar:hpbar;
GetPlayerHealth(playerid, hp);
SetProgressBarValue(hpbar, hp);
if(GetPlayerHealth(playerid, hp) < 80 && GetPlayerHealth(playerid, hp) > 60)
{
SetProgressBarColor(hpbar, COLOR_GREEN);
}
else if(GetPlayerHealth(playerid, hp) < 60 && GetPlayerHealth(playerid, hp) > 30)
{
SetProgressBarColor(hpbar, COLOR_ORANGE);
}
else if(GetPlayerHealth(playerid, hp) < 30 && GetPlayerHealth(playerid, hp) > 1)
{
SetProgressBarColor(hpbar, COLOR_RED);
}
UpdateProgressBar(hpbar);
return 1;
}
A GetPlayerHealth nem tér vissza értékkel, hanem a második argumentumban megadott változóba teszi az értéket. (nekem is gondot szokott okozni, elég hülyén van megoldva...)
így jó lesz:
public OnPlayerUpdate(playerid)
{
new Float:hp;
new Bar:hpbar;
GetPlayerHealth(playerid, hp);
SetProgressBarValue(hpbar, hp);
if(hp < 80 && hp > 60)
{
SetProgressBarColor(hpbar, COLOR_GREEN);
}
else if(hp < 60 && hp > 30)
{
SetProgressBarColor(hpbar, COLOR_ORANGE);
}
else if(hp < 30 && hp > 1)
{
SetProgressBarColor(hpbar, COLOR_RED);
}
UpdateProgressBar(hpbar);
return 1;
}
és egy tanács... OnPlayerUpdate-be ne tegyél progressbar-os dolgokat :D néhány ember után akkora lesz a lag, hogy csak na. Tegyed át inkább egy timerbe.. ;)