Progress bar
#1

how to give value to bar, and check it that may some functions?
dont refer me here but this dont say me much.
Reply
#2

pawn Код:
SetProgressBarValue(barid, GetProgressBarValue(barid)+value); // To increase the value
pawn Код:
GetProgressBarValue(barid); // To get the current value
Reply
#3

okay, so can i get value, for example 10? concr if i got 10 value, give me given weapn?
Reply
#4

I didn't understand that very well but I'll try to describe it all in a little code
pawn Код:
SetProgressBarValue(barid, 25); // Now the value is 25
SetProgressBarValue(barid, GetProgressBarValue(barid)+10); // Now the value will be 25+10=35
new Float:Value = GetProgressBarValue(barid); // That will return 35 ( Value = 35 )
Reply
#5

what happened?

Код:
public OnGameModeInit()
{
    new Bar:tired = CreateProgressBar(500.00, 103.00, 105.50, 4.50, -202116097, 100.0);

	return 1;
}

new TTired[MAX_PLAYERS];

public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
    TTired[playerid] = SetTimerEx("Tired", 9000, true, "i", playerid);
    return 1;
}

public OnPlayerExitVehicle(playerid, vehicleid)
{
    KillTimer(TTired[playerid]);
    return 1;
}

forward Tired();
public Tired()
{
    SetProgressBarValue(Bar:tired, GetProgressBarValue(barid)+1);
}
Код:
warning 204: symbol is assigned a value that is never used: "tired"
error 017: undefined symbol "tired"
Reply
#6

Here you go, Just improved/fixed it for you..
pawn Код:
new Bar:tired[MAX_PLAYERS] = {INVALID_BAR_ID, ...};
new TTired[MAX_PLAYERS];

public OnPlayerConnect(playerid)
{
    tired[playerid] = CreateProgressBar(500.00, 103.00, 105.50, 4.50, -202116097, 100.0);
    return 1;
}

public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
    ShowProgressBarForPlayer(playerid, tired[playerid]);
    TTired[playerid] = SetTimerEx("Tired", 9000, true, "i", playerid);
    return 1;
}

public OnPlayerExitVehicle(playerid, vehicleid)
{
    KillTimer(TTired[playerid]);
    return 1;
}

forward Tired(playerid);
public Tired(playerid)
{
    SetProgressBarValue(tired[playerid], GetProgressBarValue(tired[playerid])+1);
    return 1;
}
Note: I don't suggest using OnPlayerExitVehicle because :
1. OnPlayerEnterVehicle is called when a player starts to enter a vehicle, meaning the player is not in vehicle yet at the time this callback is called."
2. OnPlayerExitVehicle Not called if the player falls off a bike or is removed from a vehicle by other means such as using SetPlayerPos.

And use OnPlayerStateChange instead
Another code using "OnPlayerStateChange"
pawn Код:
new Bar:tired[MAX_PLAYERS] = {INVALID_BAR_ID, ...};
new TTired[MAX_PLAYERS];

public OnPlayerConnect(playerid)
{
    tired[playerid] = CreateProgressBar(500.00, 103.00, 105.50, 4.50, -202116097, 100.0);
    return 1;
}

public OnPlayerStateChange(playerid, newstate, oldstate)
{
    if(newstate == PLAYER_STATE_DRIVER || newstate == PLAYER_STATE_PASSENGER) // Player entered a vehicle as a driver or a passenger
    {
        ShowProgressBarForPlayer(playerid, tired[playerid]);
        TTired[playerid] = SetTimerEx("Tired", 9000, true, "i", playerid);
    }
    else if(oldstate == PLAYER_STATE_DRIVER || oldstate == PLAYER_STATE_PASSENGER) // Player Exited a vehicle and he  was a driver or a passenger
    {
        KillTimer(TTired[playerid]);
    }
    return 1;
}

forward Tired(playerid);
public Tired(playerid)
{
    SetProgressBarValue(tired[playerid], GetProgressBarValue(tired[playerid])+1);
    return 1;
}
Reply
#7

wait. when player join to the game, progress be create. thats wrong, becas thats be to many.
Reply
#8

anyone help me?
Reply
#9

So when you want to create it ?
Reply
#10

i seems in ongamemodeinit, but i cant suppose.
Sooo.. if this bar is create when player join to the server, so i have to destroy it when hes disconnected. right?
Reply


Forum Jump:


Users browsing this thread: 3 Guest(s)