[Problema] Ocultar TextDraws
#1

Buenas Noches, SA-MP.
Creo el siguiente tema, dado que, programando unos TextDraws para mi Servidor, me encuentro con un problema al a hora de Ocultarlos. El TextDraw es el Siguiente:


Al Entrar en un Pickup de determinado Negocio o Casa (el server es RolePlay), se ejecutaba un GameTextForPlayer, pero para hacerlo mбs prolijo y elegante decidн ponerle un TextDraw, el problema es que cuando le seteo un Timer para que se valla, supongamosle de 3 segundos, si paso mas de 3 segundos encima del Pickup, el TextDraw empieza a titilar constantemente hasta que salga del Pickup. Si vuelvo a entrar al Pickup sigue titilando.

Si pueden ayudarme, mucho mejor, utilizй el buscador pero no encontrй nada respecto a mi duda (aunque haya 2400 temas de TextDraw).
En caso de que ya exista el tema, les agradecerнa me pasen el Thread para solucionarlo.

Saludos!
Reply
#2

Una y otra y otra vez, en vez de crear tanto server de RP te recomiendo que te unas a uno y mas cuando no puedes ni ocultar un textdraw es un consejo...
Reply
#3

tira el codigo de este pickup. asi te vamos a poder ayudar mas facilmente dado q es un error de scripteo de algo q se te paso chequear.
Reply
#4

Quote:
Originally Posted by SeQualX
Посмотреть сообщение
Una y otra y otra vez, en vez de crear tanto server de RP te recomiendo que te unas a uno y mas cuando no puedes ni ocultar un textdraw es un consejo...
Gracias por tu comentario, me ayudo bastante.. -.-'. Si vengo a pedir ayuda es para aprender y progresar, no para escuchar a alguien que me diga que deje de hacer X tarea por ignorancia. No todos nacen sabiendo.

Quote:

tira el codigo de este pickup. asi te vamos a poder ayudar mas facilmente dado q es un error de scripteo de algo q se te paso chequear.

Quote:

for(new h = 0; h < sizeof(HouseInfo); h++)
{
if(PlayerToPoint(7.0, i, HouseInfo[h][hEntrancex], HouseInfo[h][hEntrancey], HouseInfo[h][hEntrancez]))
{
if(HouseInfo[h][hOwned] == 1)
{
if(HouseInfo[h][hRentabil] == 0)
{
//format(string, sizeof(string), "~w~Dueno de la casa~n~~b~%s~w~~n~Nivel: %d",HouseInfo[h][hOwner],HouseInfo[h][hLevel]);
format(string, sizeof(string), "~w~Propietario: %s~n~Nivel: %d~n~Costo: $%d.",HouseInfo[h][hOwner],HouseInfo[h][hLevel],HouseInfo[h][hValue]);
}
else
{
//format(string, sizeof(string), "~w~Dueno de la casa~n~~b~%s~w~~n~Renta: ~r~$%d ~w~~n~Nivel: %d~n~~w~Escriba ~g~/rcuarto~w~ para rentar este cuarto",HouseInfo[h][hOwner],HouseInfo[h][hRent],HouseInfo[h][hLevel]);
format(string, sizeof(string), "~w~Propietario: %s~n~Nivel: %d~n~Costo: $%d.~n~~y~Renta~w~: $%d.",HouseInfo[h][hOwner],HouseInfo[h][hLevel],HouseInfo[h][hValue],HouseInfo[h][hRent]);
}
//GameTextForPlayer(i, string, 5000, 3);
ActualizarTextoTutoEx(i,string,4000)
return 1;
}
else
{
//format(string, sizeof(string), "~y~Propiedad en Venta~n~~g~Info: ~w~%s ~n~~g~Costo: ~w~$%d~n~~g~ Nivel: ~w~%d~n~~g~/comprarcasa~w~ para comprar",HouseInfo[h][hDiscription],HouseInfo[h][hValue],HouseInfo[h][hLevel]);
format(string, sizeof(string), "~g~Casa en Venta~n~~w~Descripcion: %s~n~Nivel: %d~n~Costo: ~r~$%d~w~.",HouseInfo[h][hDiscription],HouseInfo[h][hLevel],HouseInfo[h][hValue]);
}
//GameTextForPlayer(i, string, 5000, 3);
ActualizarTextoTutoEx(i,string,4000)
return 1;
}
}

Es un pedazo del Cуdigo, que creo que es eso lo que pedis -.-, si necesitas otra cosa porfavor decime.
El ActualizarTextoTutoEx proviene de un Include programado por, si no mal recuerdo, GROVE4l, yo agarrй dicho Include y lo customizй un poco para que de el resultado de la imagen que se ve arriba.
Lo cual seria:
Quote:

TextoTuto69[playerid] = TextDrawCreate(22.000000,158.000000,"Texto del Tutorial~n~Lee el Include de ~g~grove4l~w~para mas~n~info");
TextDrawBackgroundColor(TextoTuto69[playerid], 255);
TextDrawFont(TextoTuto69[playerid], 1);
TextDrawLetterSize(TextoTuto69[playerid], 0.500000, 1.200000);
TextDrawColor(TextoTuto69[playerid], -1);
TextDrawSetOutline(TextoTuto69[playerid], 0);
TextDrawSetProportional(TextoTuto69[playerid], 1);
TextDrawSetShadow(TextoTuto69[playerid], 1);
TextDrawUseBox(TextoTuto69[playerid], 1);
TextDrawBoxColor(TextoTuto69[playerid], 255);
TextDrawTextSize(TextoTuto69[playerid], 183.000000, 0.000000);
return 1;

stock ActualizarTextoTutoEx(playerid,NuevoTexto[],Tiempo)
{
TextDrawSetString(TextoTuto69[playerid],NuevoTexto);
TextDrawShowForPlayer(playerid,TextoTuto69[playerid]);
SetTimerEx("ChauText",Tiempo,0,"d",playerid);
return 1;
}
public ChauText(playerid)
{
TextDrawHideForPlayer(playerid,TextoTuto69[playerid]);
return 1;
}

Reply
#5

por lo q pude ver, el error esta en el timer.
lo que podes hacer, es hacer una sentencia if, para ver si el timer esta on o no, y en base a eso mostraras o no el textdraw.

Nota: los codigos pawn, ponelos entre [pawn*] y [/pawn*] (sin los '*')
Reply
#6

El problema es que OnPlayerPickupPickUp es llamado cada ~2500ms si estas en йl, por lo tanto se te mostrarб y creara el timer cada 2 segundos mбs o menos, y termina en ese resultado..

El problema de los pickups es que no tienen una funcion OnPlayerUnpickupPickUp, entonces por eso te conviene usar IsPlayerInRangeOfPoint.

Te explico mбs o menos:

Creas el icono, pero que no tenga efecto(creo que es el tipo 1), y despuйs usas IsPlayerInRangeOfPoint, si estб adentro del rango, le mostras el texdraw, y si no estб en el rango, lo ocultas.

Saludos.
Reply
#7

Quote:
Originally Posted by the_chaoz
Посмотреть сообщение
por lo q pude ver, el error esta en el timer.
lo que podes hacer, es hacer una sentencia if, para ver si el timer esta on o no, y en base a eso mostraras o no el textdraw.

Nota: los codigos pawn, ponelos entre [pawn*] y [/pawn*] (sin los '*')
Problema Solucionado

Gracias por tomarse su tiempo...

Saludos!
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)