Problema..Progress bar y textdraw..
#1

Bueno estoy harto de un problema que tengo con las progress bar y los textdraws D: el problema es el siguiente:

Tengo una sola progress en mi gm(me gustarнa agregar mas pero es otro tema) Tengo tres textdraws creados y no hay problema todo funciona de maravilla ,el problema es que si agrego un textdraw mas se caga todo y no funciona mas la progress bar .Yo tengo entendido que esto sucede cuando tienes muchos textdraws pero yo solo tengo 4 y no quiero hacer el tutorial en SendClientMessage xD quiero utilizar textdraw pero tambiйn quiero usar progress bar(eh visto gm que tienen progress bar y muchos mas textdraws que yo la verdad no comprendo)


Alguien sabria decirme a que puede deberse o si les paso y saben alguna soluciуn?

Muchнsimas gracias..
Reply
#2

hey amigo a mi me pasa lo mismo! hablemos por privado... saludos
Reply
#3

Mmm muy raro eso.. Pues yo te recomendaria usar un streamer para textdraws saludos
Reply
#4

ya se lo que es... mira yo puse esto en public OnGameModeInit()
for(new i = 0; i<MAX_PLAYERS; i++)
{
Titulo[i] = TextDrawCreate(49.000000, 131.000000, "Titulo");
TextDrawBackgroundColor(Titulo[i], 255);
TextDrawFont(Titulo[i], 2);
TextDrawLetterSize( Titulo[i], 0.310000, 1.79999;
TextDrawColor(Titulo[i], -1);
TextDrawSetOutline(Titulo[i], 0);
TextDrawSetProportional(Titulo[i], 1);
TextDrawSetShadow(Titulo[i], 1);

Linea1[i] = TextDrawCreate(50.000000, 156.000000, "Linea 1");
TextDrawBackgroundColor(Linea1[i], 255);
TextDrawFont(Linea1[i], 2);
TextDrawLetterSize(Linea1[i], 0.259999, 1.29999;
TextDrawColor(Linea1[i], -1);
TextDrawSetOutline(Linea1[i], 0);
TextDrawSetProportional(Linea1[i], 1);
TextDrawSetShadow(Linea1[i], 1);



Linea2[i] = TextDrawCreate(50.000000, 176.000000, "Linea 2");
TextDrawBackgroundColor(Linea2[i], 255);
TextDrawFont(Linea2[i], 2);
TextDrawLetterSize(Linea2[i], 0.259999, 1.29999;
TextDrawColor(Linea2[i], -1);
TextDrawSetOutline(Linea2[i], 0);
TextDrawSetProportional(Linea2[i], 1);
TextDrawSetShadow(Linea2[i], 1);

Linea3[i] = TextDrawCreate(50.000000, 195.000000, "Linea 3");
TextDrawBackgroundColor(Linea3[i], 255);
TextDrawFont(Linea3[i], 2);
TextDrawLetterSize(Linea3[i], 0.259999, 1.29999;
TextDrawColor(Linea3[i], -1);
TextDrawSetOutline(Linea3[i], 0);
TextDrawSetProportional(Linea3[i], 1);
TextDrawSetShadow(Linea3[i], 1);

Linea4[i] = TextDrawCreate(50.000000, 213.000000, "Linea 4");
TextDrawBackgroundColor(Linea4[i], 255);
TextDrawFont(Linea4[i], 2);
TextDrawLetterSize(Linea4[i], 0.259999, 1.29999;
TextDrawColor(Linea4[i], -1);
TextDrawSetOutline(Linea4[i], 0);
TextDrawSetProportional(Linea4[i], 1);
TextDrawSetShadow(Linea4[i], 1);

Linea5[i] = TextDrawCreate(50.000000, 232.000000, "Linea 5");
TextDrawBackgroundColor(Linea5[i], 255);
TextDrawFont(Linea5[i], 2);
TextDrawLetterSize(Linea5[i], 0.259999, 1.29999;
TextDrawColor(Linea5[i], -1);
TextDrawSetOutline(Linea5[i], 0);
TextDrawSetProportional(Linea5[i], 1);
TextDrawSetShadow(Linea5[i], 1);

Linea6[i] = TextDrawCreate(50.000000, 251.000000, "Linea 6");
TextDrawBackgroundColor(Linea6[i], 255);
TextDrawFont(Linea6[i], 2);
TextDrawLetterSize( Linea6[i], 0.259999, 1.29999;
TextDrawColor(Linea6[i], -1);
TextDrawSetOutline(Linea6[i], 0);
TextDrawSetProportional(Linea6[i], 1);
TextDrawSetShadow(Linea6[i], 1);

Linea7[i] = TextDrawCreate(50.000000, 269.000000, "Linea 7");
TextDrawBackgroundColor( Linea7[i], 255);
TextDrawFont( Linea7[i], 2);
TextDrawLetterSize( Linea7[i], 0.259999, 1.29999;
TextDrawColor( Linea7[i], -1);
TextDrawSetOutline( Linea7[i], 0);
TextDrawSetProportional( Linea7[i], 1);
TextDrawSetShadow( Linea7[i], 1);

Linea8[i] = TextDrawCreate(50.000000, 288.000000, "Linea 8");
TextDrawBackgroundColor( Linea8[i], 255);
TextDrawFont( Linea8[i], 2);
TextDrawLetterSize( Linea8[i], 0.259999, 1.29999;
TextDrawColor( Linea8[i], -1);
TextDrawSetOutline( Linea8[i], 0);
TextDrawSetProportional( Linea8[i], 1);
TextDrawSetShadow( Linea8[i], 1);

Linea9[i] = TextDrawCreate(50.000000, 308.000000, "Linea 9");
TextDrawBackgroundColor( Linea9[i], 255);
TextDrawFont( Linea9[i], 2);
TextDrawLetterSize( Linea9[i], 0.259999, 1.29999;
TextDrawColor( Linea9[i], -1);
TextDrawSetOutline( Linea9[i], 0);
TextDrawSetProportional( Linea9[i], 1);
TextDrawSetShadow( Linea9[i], 1);
}y se me bugean las barras... es raro !
Reply
#5

MAX_PLAYERS o_O en OnGameModeInit no tiene players. OnGameModeInit y es llamado una sola vez, cuando es encendido el servidor.
Reply
#6

Quote:
Originally Posted by bytytus
Посмотреть сообщение
MAX_PLAYERS o_O en OnGameModeInit no tiene players. OnGameModeInit y es llamado una sola vez, cuando es encendido el servidor.
solo esta haciendo un ciclo para que a cada player se le sea asignado un texto de los 9 que tiene y los esta creando 1 sola vez como dices tu solo se llama OnGameModeInt...

en cuanto al tema yo pienso que hagan el teste en un lvdm sin modificar (solo con los textos claro) aver si no te da problema
Reply
#7

No es necesario crear un textdraw para cada player si el Textdraw es estatico es decir si es solo texto que no va a cambiar solo crйalo una vez.
Reply
#8

Quote:
Originally Posted by bytytus
Посмотреть сообщение
MAX_PLAYERS o_O en OnGameModeInit no tiene players. OnGameModeInit y es llamado una sola vez, cuando es encendido el servidor.
Estбs confundido, si es llamado una sola vez, mejor aun.
Tal como los puso йl, creas todos los TextDraws de golpe. Por algo tienen NombreTextDraw[var_loop]. El var_loop indica la ID del jugador al que pertenecerб. Cuando un jugador se conecte, imagнnate que el jugador de la ID 5. Entonces, se lo mostramos el TextDraw correspondiente. TextDrawShowForPlayer(playerid, NombreTextDraw[playerid]);, como playerid equivale a 5 serнa un: TextDrawShowForPlayer(playerid, NombreTextDraw[5]); El tiene MAX_PLAYERS, crearнa 500 TextDraws de cada uno. Tambiйn aclaro, que no tienen que usarse de esa forma obligatoriamente.
Quote:
Originally Posted by iKeN
Посмотреть сообщение
No es necesario crear un textdraw para cada player si el Textdraw es estatico es decir si es solo texto que no va a cambiar solo crйalo una vez.
Si no muestra datos del jugador, podrнan ser estбticos. Aquн no muestran, pero hay un problema.
Que pasarнa, si hay 2 o mбs jugadores en el tutorial al mismo tiempo. Si son globales, estбticos como tu dijiste y les cambiamos el texto, probablemente el jugador que este empezando el tutorial verб lo que estб viendo el jugador que va por la mitad del tutorial, y viceversa.

@mercuryblade69:
El loop, estб bien. Pero se podrнa mejorar y no crear TextDraws que no necesitemos. Podrнas hacerlo asн:
pawn Код:
new total = GetMaxPlayers();
for(new p = 0; p <= total; p++)
{
    NombreTextDraw[p] = TextDrawCreate(............);
}
__________________________________________
Ahora, respecto al tema.
Es raro, a mi tambiйn me pasу hace tiempo.
Prueba como dijo mercuryblade69, probablemente se estйn mezclando o algo. Y prueba crear la barra para cada jugador en OnPlayerConnect.
pawn Код:
new Bar:NombreBarra[MAX_PLAYERS];

public OnPlayerConnect(playerid)
{
    NombreBarra[playerid] = CreateProgressBar(..................);
    return 1;
}
//---No olvides de destruirla en OnPlayerDisconnect. || DestroyProgressBar(NombreBarra[playerid]);
Saludos!
Reply
#9

Quote:
Originally Posted by Shiny_David
Посмотреть сообщение
Mmm muy raro eso.. Pues yo te recomendaria usar un streamer para textdraws saludos
Hay streamer para textdraw? o.O perdуn mi ignorancia no sabia que existнa xd


Quote:
Originally Posted by irinel1996
Посмотреть сообщение
Estбs confundido, si es llamado una sola vez, mejor aun.
Tal como los puso йl, creas todos los TextDraws de golpe. Por algo tienen NombreTextDraw[var_loop]. El var_loop indica la ID del jugador al que pertenecerб. Cuando un jugador se conecte, imagнnate que el jugador de la ID 5. Entonces, se lo mostramos el TextDraw correspondiente. TextDrawShowForPlayer(playerid, NombreTextDraw[playerid]);, como playerid equivale a 5 serнa un: TextDrawShowForPlayer(playerid, NombreTextDraw[5]); El tiene MAX_PLAYERS, crearнa 500 TextDraws de cada uno. Tambiйn aclaro, que no tienen que usarse de esa forma obligatoriamente.

Si no muestra datos del jugador, podrнan ser estбticos. Aquн no muestran, pero hay un problema.
Que pasarнa, si hay 2 o mбs jugadores en el tutorial al mismo tiempo. Si son globales, estбticos como tu dijiste y les cambiamos el texto, probablemente el jugador que este empezando el tutorial verб lo que estб viendo el jugador que va por la mitad del tutorial, y viceversa.

@mercuryblade69:
El loop, estб bien. Pero se podrнa mejorar y no crear TextDraws que no necesitemos. Podrнas hacerlo asн:
pawn Код:
new total = GetMaxPlayers();
for(new p = 0; p <= total; p++)
{
    NombreTextDraw[p] = TextDrawCreate(............);
}
__________________________________________
Ahora, respecto al tema.
Es raro, a mi tambiйn me pasу hace tiempo.
Prueba como dijo mercuryblade69, probablemente se estйn mezclando o algo. Y prueba crear la barra para cada jugador en OnPlayerConnect.
pawn Код:
new Bar:NombreBarra[MAX_PLAYERS];

public OnPlayerConnect(playerid)
{
    NombreBarra[playerid] = CreateProgressBar(..................);
    return 1;
}
//---No olvides de destruirla en OnPlayerDisconnect. || DestroyProgressBar(NombreBarra[playerid]);
Saludos!
Irinel te amo jaja ok no .Eres el mejor ! no me funciono porque no vi lo de loop

pawn Код:
new total = GetMaxPlayers();
for(new p = 0; p <= total; p++)
{
    NombreTextDraw[p] = TextDrawCreate(............);
}
Cuando hice el loop de esa manera funciono genial! Gracias a todos

Solucionado.
Reply
#10

Claro, bueno... a mi me costo darme cuenta, pero tiene mucha lуgica como aclaran arriba, pero esta forma
new total = GetMaxPlayers();
for(new p = 0; p <= total; p++)
{
NombreTextDraw[p] = TextDrawCreate(............);
} es la mбs correcta, es super raro lo que me paso a mi y al chico -[R]hysi-, pues esto se deberнa a un bug asн como cuando haces un sistema de gasolina y velocнmetro en textdraw y cuando estas en un auto aparece todo eso y suponte no se si conocen /cnn que es un comando para dar un mensaje a todo el servidor, bueno se bugea y se desaparece debido a los textdraw que van variando, son cosas que mas adelante deberнan arreglarlas... pero en fin solo debemos acomodar todo como corresponde, chicos muchas gracias por su aclaraciуn.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)