ProgressBar doesn't appear on Server
#1

Hi, I did a little ProgressBar to put on my server, I put everything in the GM in place and all well done, but when I enter the server the bar doesnґt show up.
I have a ProgressBar to appear within the "OnPlayerConnect". I am not using Includes PrgressBar.
I have the same script in another gamemode and it workґs correctly.
I alredy tried to put the "CreateProgressBar" in "OnPlayerConnect" but doesnґt show up.


Код:
//Variable:
new Bar:TestBar[MAX_PLAYERS];

//OnGameModeInit:
TestBar[i] = CreateProgressBar(488.00, 404.00, 145.50, 9.19, 16711776, 100.0);

//OnPlayerConnect:
SetProgressBarValue(TestBar[playerid],50.0);
ShowProgressBarForPlayer(playerid,TestBar[playerid]);
Reply
#2

Do you have the ProgressBar.inc?
Reply
#3

so actualy, you don't have the include, so you're tried to do it on your own and failed... right?
Why don't you get the include, to ease your job?
Or if you want, ...watch more carefull to the original creator's progressbar, and try to take it as an example...
Reply
#4

PHP код:
new Bar:TestBar[MAX_PLAYERS];
//OnGameModeInit:
TestBar[playerid] = CreateProgressBar(488.00404.00145.509.1916711776100.0);//Shouldn't it be playerid?
//OnPlayerConnect:
SetProgressBarValue(TestBar[playerid],50.0);
ShowProgressBarForPlayer(playerid,TestBar[playerid]); 
Reply
#5

no, because those are the coordonates of the Progress bar, ( x, y) i mean on the screan...
Reply
#6

Quote:
Originally Posted by XStormiest
Посмотреть сообщение
no, because those are the coordonates of the Progress bar, ( x, y) i mean on the screan...
What??

PHP код:
new Bar:TestBar[MAX_PLAYERS];
//OnGameModeInit:
TestBar[playerid] = CreateProgressBar(488.00404.00145.509.1916711776100.0);//Shouldn't it be playerid?
//I changed [playerid].
//OnPlayerConnect:
SetProgressBarValue(TestBar[playerid],50.0);
ShowProgressBarForPlayer(playerid,TestBar[playerid]); 
Reply
#7

Basically i have the same thing in the gamemode, whereґs the script, and like i said previously in the other gm this is working correctly.

Код:
//Defines:

#define MAX_BARS				(MAX_TEXT_DRAWS / 3)
#define INVALID_BAR_ID			(Bar:-1)
#define pb_percent(%1,%2,%3,%4)	((%1 - 6.0) + ((((%1 + 6.0 + %2 - 2.0) - %1) / %3) * %4))

//enum:

enum e_bar
{
	Float:pb_x,
	Float:pb_y,
	Float:pb_w,
	Float:pb_h,
	Float:pb_m,
	Float:pb_v,
	Text:pb_t1,
	Text:pb_t2,
	Text:pb_t3,
	pb_color,
	bool:pb_created
}

static Bars[MAX_BARS][e_bar];

//and the rest....

stock Bar:CreateProgressBar(Float:x, Float:y, Float:width=55.5, Float:height=3.2, color, Float:max=100.0)
{
	new
		barid;

	for(barid = 0; barid < sizeof Bars; ++barid)
		if(!Bars[barid][pb_created]) break;

	if(Bars[barid][pb_created] || barid == sizeof Bars)
		return INVALID_BAR_ID;

	new Text:in_t = Bars[barid][pb_t1] = TextDrawCreate(x, y, "_");
	TextDrawUseBox		(in_t, 1);
	TextDrawTextSize	(in_t, x + width, 0.0);
	TextDrawLetterSize	(in_t, 1.0, height / 10);
	TextDrawBoxColor	(in_t, 0x00000000 | (color & 0x000000FF));

	in_t = Bars[barid][pb_t2] = TextDrawCreate(x + 1.2, y + 2.15, "_");
	TextDrawUseBox		(in_t, 1);
	TextDrawTextSize	(in_t, x + width - 2.0, 0.0);
	TextDrawLetterSize	(in_t, 1.0, height / 10 - 0.35);
	TextDrawBoxColor	(in_t, (color & 0xFFFFFF00) | (0x66 & ((color & 0x000000FF) / 2)));

	in_t = Bars[barid][pb_t3] = TextDrawCreate(x + 1.2, y + 2.15, "_");
	TextDrawTextSize	(in_t, pb_percent(x, width, max, 1.0), 0.0);
	TextDrawLetterSize	(in_t, 1.0, height / 10 - 0.35);
	TextDrawBoxColor	(in_t, color);

	Bars[barid][pb_x] = x;
	Bars[barid][pb_y] = y;
	Bars[barid][pb_w] = width;
	Bars[barid][pb_h] = height;
	Bars[barid][pb_m] = max;
	Bars[barid][pb_color] = color;
	Bars[barid][pb_created] = true;
	return Bar:barid;
}

stock DestroyProgressBar(Bar:barid)
{
	if(barid != INVALID_BAR_ID && Bar:-1 < barid < Bar:MAX_BARS)
	{
		if(!Bars[_:barid][pb_created])
			return 0;

		TextDrawDestroy(Bars[_:barid][pb_t1]);
		TextDrawDestroy(Bars[_:barid][pb_t2]);
		TextDrawDestroy(Bars[_:barid][pb_t3]);

		Bars[_:barid][pb_t1] = Text:0;
		Bars[_:barid][pb_t2] = Text:0;
		Bars[_:barid][pb_t3] = Text:0;
		Bars[_:barid][pb_t4] = Text:0;
		Bars[_:barid][pb_t5] = Text:0;
		Bars[_:barid][pb_t6] = Text:0;
		Bars[_:barid][pb_t7] = Text:0;
		Bars[_:barid][pb_t8] = Text:0;
		Bars[_:barid][pb_t9] = Text:0;
		Bars[_:barid][pb_t10] = Text:0;
		Bars[_:barid][pb_x] = 0.0;
		Bars[_:barid][pb_y] = 0.0;
		Bars[_:barid][pb_w] = 0.0;
		Bars[_:barid][pb_h] = 0.0;
		Bars[_:barid][pb_m] = 0.0;
		Bars[_:barid][pb_v] = 0.0;
		Bars[_:barid][pb_color] = 0;
		Bars[_:barid][pb_created] = false;
		return 1;
	}
	return 0;
}

stock ShowProgressBarForPlayer(playerid, Bar:barid)
{
	if(IsPlayerConnected(playerid) && barid != INVALID_BAR_ID && Bar:-1 < barid < Bar:MAX_BARS)
	{
		if(!Bars[_:barid][pb_created])
			return 0;

		TextDrawShowForPlayer(playerid, Bars[_:barid][pb_t1]);
		TextDrawShowForPlayer(playerid, Bars[_:barid][pb_t2]);
		TextDrawShowForPlayer(playerid, Bars[_:barid][pb_t3]);
		return 1;
	}
	return 0;
}

stock HideProgressBarForPlayer(playerid, Bar:barid)
{
	if(IsPlayerConnected(playerid) && barid != INVALID_BAR_ID && Bar:-1 < barid < Bar:MAX_BARS)
	{
		if(!Bars[_:barid][pb_created])
			return 0;

		TextDrawHideForPlayer(playerid, Bars[_:barid][pb_t1]);
		TextDrawHideForPlayer(playerid, Bars[_:barid][pb_t2]);
		TextDrawHideForPlayer(playerid, Bars[_:barid][pb_t3]);
		return 1;
	}
	return 0;
}

stock SetProgressBarValue(Bar:barid, Float:value)
{
	if(barid == INVALID_BAR_ID || Bar:MAX_BARS < barid < Bar:-1)
		return 0;

	if(Bars[_:barid][pb_created])
	{
		value =
			(value < 0.0) ? (0.0) : (value > Bars[_:barid][pb_m]) ? (Bars[_:barid][pb_m]) : (value);

		TextDrawUseBox(Bars[_:barid][pb_t3], value > 0.0);

        Bars[_:barid][pb_v] = value;

		TextDrawTextSize(Bars[_:barid][pb_t3],
			pb_percent(Bars[_:barid][pb_x], Bars[_:barid][pb_w], Bars[_:barid][pb_m], value), 0.0);

		return 1;
	}
	return 0;
}

stock Float:GetProgressBarValue(Bar:barid)
{
	if(barid == INVALID_BAR_ID || Bar:MAX_BARS < barid < Bar:-1)
		return INVALID_BAR_VALUE;

	if(Bars[_:barid][pb_created])
		return Bars[_:barid][pb_v];

	return INVALID_BAR_VALUE;
}

stock SetProgressBarMaxValue(Bar:barid, Float:max)
{
	if(barid == INVALID_BAR_ID || Bar:MAX_BARS < barid < Bar:-1)
		return 0;

	if(Bars[_:barid][pb_created])
	{
		Bars[_:barid][pb_m] = max;
		SetProgressBarValue(barid, Bars[_:barid][pb_v]);
		return 1;
	}
	return 0;
}

stock SetProgressBarColor(Bar:barid, color)
{
	if(barid == INVALID_BAR_ID || Bar:MAX_BARS < barid < Bar:-1)
		return 0;

	if(Bars[_:barid][pb_created])
	{
		Bars[_:barid][pb_color] = color;
		TextDrawBoxColor(Bars[_:barid][pb_t1], 0x00000000 | (color & 0x000000FF));

		TextDrawBoxColor(Bars[_:barid][pb_t2],
			(color & 0xFFFFFF00) | (0x66 & ((color & 0x000000FF) / 2)));

		TextDrawBoxColor(Bars[_:barid][pb_t3], color);
		return 1;
	}
	return 0;
}

stock ShowProgressBarForAll(Bar:barid)
{
	#if defined _foreach_included
	foreach(Player, i)
	#else
	for(new i = 0; i < MAX_PLAYERS; ++i)
		if(IsPlayerConnected(i))
	#endif
	{
		ShowProgressBarForPlayer(i, barid);
	}
	return 1;
}

stock HideProgressBarForAll(Bar:barid)
{
	#if defined _foreach_included
	foreach(Player, i)
	#else
	for(new i = 0; i < MAX_PLAYERS; ++i)
		if(IsPlayerConnected(i))
	#endif
	{
		HideProgressBarForPlayer(i, barid);
	}
	return 1;
}

stock UpdateProgressBar(Bar:barid, playerid=INVALID_PLAYER_ID)
{
	if(playerid == INVALID_PLAYER_ID)
	{
		return ShowProgressBarForAll(barid);
	} else {
		return ShowProgressBarForPlayer(playerid, barid);
	}
}
Reply
#8

and i suppose you do DestroyBar in OnPlayerDisconnect.

If you create the bar in OnGameModeInit and the player disconnect the bar for the id will never exists.

In OnPlayerConnect create and show the bar.
Reply
#9

Quote:
Originally Posted by ReVo_
Посмотреть сообщение
and i suppose you do DestroyBar in OnPlayerDisconnect.

If you create the bar in OnGameModeInit and the player disconnect the bar for the id will never exists.

In OnPlayerConnect create and show the bar.
But i put in "OnPlayerConnect" and do not show.
Reply
#10

Coords and size are correct?
Reply


Forum Jump:


Users browsing this thread: 5 Guest(s)