He creado un pickup que muestra un texdraw pero no desaparece
#1

Bueno, simplemente que he creado un pickup para que me aparezca un texdraw, va perfectamente salvo que no desaparece, es decir se queda ahн en la pantalla.

OnGameModeInit:

Код:
TextAlmacenYKZ = TextDrawCreate(10.000000, 143.000000, "Almacen Yakuza~n~~n~Usa el comando /almacen");
	TextDrawBackgroundColor(Textdraw0, 255);
	TextDrawFont(Textdraw0, 1);
	TextDrawLetterSize(Textdraw0, 0.469999, 1.000000);
	TextDrawColor(Textdraw0, -1);
	TextDrawSetOutline(Textdraw0, 1);
	TextDrawSetProportional(Textdraw0, 1);
	TextDrawUseBox(Textdraw0, 1);
	TextDrawBoxColor(Textdraw0, 255);
	TextDrawTextSize(Textdraw0, 220.000000, 0.000000);
	TextDrawSetSelectable(Textdraw0, 0);
OnPlayerPickUpPickup:


Код:
if(pickupid == pickup_AlmacenYKZ)
    {
    	TextDrawShowForPlayer(playerid,TextAlmacenYKZ);
En mi caso quiero que cuando se aleje desaparezca el texdraw.

Gracias!

P,D; Creo que el textdraw que he creado se pone en pantalla para todos cuando alguien pasa por el pickup, supongo que tengo que agregar el playerid.
Reply
#2

Usa IsPlayerInRangeOfPoint, establece un if de que si se aleja x distancia lo ocultas (TextDrawHideForPlayer)
Reply
#3

El tema de las coordenadas del IsPlayerInRangeOfPoint, con poner +1 a cada posiciуn yo creo que estб bien no?

Muchas gracias.

P,D; Creo que no hace falta, supongo que para йso estб el rango a poner.
Reply
#4

exacto, el rango es el que define la "posicion maxima" de la cual partiria a retornar 0 la funcion.

De nada
Reply
#5

seria mejor poner un timer que lo quite 10 segundos despues
Reply
#6

Gracias aunque sigue sin funcionar, de momento lo he hecho con un timer gracias a Alex pero si alguien tiene mбs soluciones que las ponga por aquн y pruebo a ver si funciona. No me importa poner un timer pero si es posible hacerlo cuando te alejas unos centнmetros del pickup pues mucho mejor.

Gracias a todos.
Reply
#7

Puedes usar la funcion OnPlayerUpdate y dentro usar IsPlayerInRangeOfPoint

PD: CUidado con esa funcion, es peligrosa si no esta bien optimizada
Reply
#8

Arreglado, muchas gracias chuso, si quieren saber como lo he solucionado...

Primero probй a usar un IsPlayerInRangeOfPoint con las coordenadas +3.0 (que serнa unos tres metros fuera del pickup) en ese caso si pasabas por ese rango se aplicaba la funciуn TextDrawHideForPlayer, pero no funcionу.

Despuйs pensбndolo un poco mejor lo que hize fue un IsPlayerInRangeOfPoint pero esta vez aplicaba el TextDrawShowForPlayer y sino aplicaba el TextDrawHideForPlayer

Me quedу asн y funcionу:

Код:
public OnPlayerUpdate(playerid)
{
	if(IsPlayerInRangeOfPoint(playerid, 0.3, 901.2394, -1203.4879, 16.9832)) // coordenadas del pickup
	{
	    TextDrawShowForPlayer(playerid, TDYakuza); // muestra el textdraw "TDYakuza"
	}
	else
	{
	    TextDrawHideForPlayer(playerid, TDYakuza); // oculta el textdraw "TDYakuza"
	}
	return 1;
}
El error estaba en que intentaba usar el IsPlayerInRangeOfPoint para ocultar.

Gracias a todos
Reply
#9

Me alegro de que haya salido bien si esta bien hecho el textdraw puede quedar algo muy guapo
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)