Problema com textdraw
#1

Eu tento criar uma player textdraw, e quando escrever /teste ela aparece e fica clicavel, mas quando digito /teste ela nгo aparece, alguem pode me ajudar?
Код:
//Variaveis
new Logged[MAX_PLAYERS];
new pAdmin[MAX_PLAYERS];
new CheckpointsFix[2];
new TimersX[2];
new PlayerText:gText1[MAX_PLAYERS];
new PlayerText:gText2[MAX_PLAYERS];
//
//forwards
forward DestogglePlayerControllable(playerid);
//
main()
{
	print("\n----------------------------------");
	print("          Real City SAMP            ");
	print("----------------------------------\n");
}

public OnGameModeInit()
{
	SetGameModeText("RCS");
	Loadcheck();
	LoadTimers();
	CreateTextDraws();
	return 1;
}

CreateTextDraws(playerid)
{
gText1[playerid] = CreatePlayerTextDraw(playerid, 261.250000, 164.499984, "clicavel ussuario");
PlayerTextDrawLetterSize(playerid, gText1[playerid], 0.446249, 1.051666);
PlayerTextDrawAlignment(playerid, gText1[playerid], 1);
PlayerTextDrawColor(playerid, gText1[playerid], -16777814);
PlayerTextDrawSetShadow(playerid, gText1[playerid], 0);
PlayerTextDrawSetOutline(playerid, gText1[playerid], 1);
PlayerTextDrawBackgroundColor(playerid, gText1[playerid], 255);
PlayerTextDrawFont(playerid, gText1[playerid], 1);
PlayerTextDrawSetProportional(playerid, gText1[playerid], 1);
//PlayerTextDrawTextSize(playerid, gText1[playerid], 0.446249, 1.051666);
PlayerTextDrawSetSelectable(playerid, gText1[playerid], 1);

gText2[playerid] = CreatePlayerTextDraw(playerid, 266.875000, 211.166717, "clicavel senha");
PlayerTextDrawLetterSize(playerid, gText2[playerid], 0.443749, 1.022499);
PlayerTextDrawAlignment(playerid, gText2[playerid], 1);
PlayerTextDrawColor(playerid, gText2[playerid], -2139062017);
PlayerTextDrawSetShadow(playerid, gText2[playerid], 0);
PlayerTextDrawSetOutline(playerid, gText2[playerid], 1);
PlayerTextDrawBackgroundColor(playerid, gText2[playerid], 255);
PlayerTextDrawFont(playerid, gText2[playerid], 1);
PlayerTextDrawSetProportional(playerid, gText2[playerid], 1);
PlayerTextDrawTextSize(playerid, gText2[playerid], 0.443749, 1.022499);
PlayerTextDrawSetSelectable(playerid, gText2[playerid], 1);
return 1;
}
e o comando
Код:
	if(strcmp(cmd, "/teste", true) == 0)
	{
        PlayerTextDrawShow(playerid, gText1[playerid]);
        PlayerTextDrawShow(playerid, gText2[playerid]);
		SelectTextDraw(playerid, Vermelho);
		return 1;
	}
Reply
#2

@removido!, entendi errado a duvida.
Reply
#3

As Textdraws estгo em CreatePlayerTextDraw, e essa funзгo precisa do parвmetro "playerid"..
E a public OnGameModeInit() nгo possui este parвmetro, logo nгo esta criando as textdraws..
O melhor local pra colocar й no OnPlayerConnect, assim elas serгo criadas.

O seu comando /teste esta correto, sу isso que estava errado mesmo.

Код:
new PlayerText:gText1[MAX_PLAYERS];
new PlayerText:gText2[MAX_PLAYERS];

public OnPlayerConnect(playerid)
{
	CreateTextDraws(playerid);
	return 1;
}

CreateTextDraws(playerid)
{
	gText1[playerid] = CreatePlayerTextDraw(playerid, 261.250000, 164.499984, "clicavel ussuario");
	PlayerTextDrawLetterSize(playerid, gText1[playerid], 0.446249, 1.051666);
	PlayerTextDrawAlignment(playerid, gText1[playerid], 1);
	PlayerTextDrawColor(playerid, gText1[playerid], -16777814);
	PlayerTextDrawSetShadow(playerid, gText1[playerid], 0);
	PlayerTextDrawSetOutline(playerid, gText1[playerid], 1);
	PlayerTextDrawBackgroundColor(playerid, gText1[playerid], 255);
	PlayerTextDrawFont(playerid, gText1[playerid], 1);
	PlayerTextDrawSetProportional(playerid, gText1[playerid], 1);
	//PlayerTextDrawTextSize(playerid, gText1[playerid], 0.446249, 1.051666);
	PlayerTextDrawSetSelectable(playerid, gText1[playerid], 1);

	gText2[playerid] = CreatePlayerTextDraw(playerid, 266.875000, 211.166717, "clicavel senha");
	PlayerTextDrawLetterSize(playerid, gText2[playerid], 0.443749, 1.022499);
	PlayerTextDrawAlignment(playerid, gText2[playerid], 1);
	PlayerTextDrawColor(playerid, gText2[playerid], -2139062017);
	PlayerTextDrawSetShadow(playerid, gText2[playerid], 0);
	PlayerTextDrawSetOutline(playerid, gText2[playerid], 1);
	PlayerTextDrawBackgroundColor(playerid, gText2[playerid], 255);
	PlayerTextDrawFont(playerid, gText2[playerid], 1);
	PlayerTextDrawSetProportional(playerid, gText2[playerid], 1);
	PlayerTextDrawTextSize(playerid, gText2[playerid], 0.443749, 1.022499);
	PlayerTextDrawSetSelectable(playerid, gText2[playerid], 1);
	return 1;
}
Reply
#4

nгo tem necessidade de utilizar MAX_PLAYERS em PlayerText jб que й criada ao player conectar e destruнda ao desconectar.
Reply
#5

Quote:
Originally Posted by Whoo
Посмотреть сообщение
nгo tem necessidade de utilizar MAX_PLAYERS em PlayerText jб que й criada ao player conectar e destruнda ao desconectar.
Tem sim, pois a textdraw й mostrada apenas quando ele usa /teste, logo o /teste precisa saber qual o ID da textdraw a ser exibida, se nгo tiver o MAX_PLAYERS, ela se torna uma variбvel global, e creio que nгo seja isto que ele quer.

Nгo precisaria se ele estivesse usando a funзгo TextDrawCreate e fosse Text: ao invйs de PlayerText: ... Dai sim nгo precisaria do MAX_PLAYERS
Reply
#6

Quote:
Originally Posted by JeffSantos2
Посмотреть сообщение
Tem sim, pois a textdraw й mostrada apenas quando ele usa /teste, logo o /teste precisa saber qual o ID da textdraw a ser exibida, se nгo tiver o MAX_PLAYERS, ela se torna uma variбvel global, e creio que nгo seja isto que ele quer.

Nгo precisaria se ele estivesse usando a funзгo TextDrawCreate e fosse Text: ao invйs de PlayerText: ... Dai sim nгo precisaria do MAX_PLAYERS
nгo cara nada haver o que vocк falou, sabe o valor de MAX_PLAYERS ? ali vocк sу tem duas Textdraw nгo tem por que utilizar MAX_PLAYERS sу se vocк criar 1000 Textdraw que й impossнvel.

PHP код:
new PlayerText:gText1[2];
PlayerTextDrawShow(playeridPlayerTextgText1[0]);
PlayerTextDrawShow(playeridPlayerTextgText1[1]);
CreateTextDraws(playerid)
{
    
gText1[0] = CreatePlayerTextDraw(playerid261.250000164.499984"clicavel ussuario");
    
PlayerTextDrawLetterSize(playeridgText1[0], 0.4462491.051666);
    
PlayerTextDrawAlignment(playeridgText1[0], 1);
    
PlayerTextDrawColor(playeridgText1[0], -16777814);
    
PlayerTextDrawSetShadow(playeridgText1[0], 0);
    
PlayerTextDrawSetOutline(playeridgText1[0], 1);
    
PlayerTextDrawBackgroundColor(playeridgText1[0], 255);
    
PlayerTextDrawFont(playeridgText1[0], 1);
    
PlayerTextDrawSetProportional(playeridgText1[0], 1);
    
//PlayerTextDrawTextSize(playerid, gText1[0], 0.446249, 1.051666);
    
PlayerTextDrawSetSelectable(playeridgText1[0], 1);
    
gText1[1] = CreatePlayerTextDraw(playerid266.875000211.166717"clicavel senha");
    
PlayerTextDrawLetterSize(playeridgText1[1], 0.4437491.022499);
    
PlayerTextDrawAlignment(playeridgText1[1], 1);
    
PlayerTextDrawColor(playeridgText1[1], -2139062017);
    
PlayerTextDrawSetShadow(playeridgText1[1], 0);
    
PlayerTextDrawSetOutline(playeridgText1[1], 1);
    
PlayerTextDrawBackgroundColor(playeridgText1[1], 255);
    
PlayerTextDrawFont(playeridgText1[1], 1);
    
PlayerTextDrawSetProportional(playeridgText1[1], 1);
    
PlayerTextDrawTextSize(playeridgText1[1], 0.4437491.022499);
    
PlayerTextDrawSetSelectable(playeridgText1[1], 1);
    return 
1;

Reply
#7

Quote:
Originally Posted by Whoo
Посмотреть сообщение
nгo cara nada haver o que vocк falou, sabe o valor de MAX_PLAYERS ? ali vocк sу tem duas Textdraw nгo tem por que utilizar MAX_PLAYERS sу se vocк criar 1000 Textdraw que й impossнvel.

PHP код:
new PlayerText:gText1[2];
PlayerTextDrawShow(playeridPlayerTextgText1[0]);
PlayerTextDrawShow(playeridPlayerTextgText1[1]);
CreateTextDraws(playerid)
{
    
gText1[0] = CreatePlayerTextDraw(playerid261.250000164.499984"clicavel ussuario");
    
PlayerTextDrawLetterSize(playeridgText1[0], 0.4462491.051666);
    
PlayerTextDrawAlignment(playeridgText1[0], 1);
    
PlayerTextDrawColor(playeridgText1[0], -16777814);
    
PlayerTextDrawSetShadow(playeridgText1[0], 0);
    
PlayerTextDrawSetOutline(playeridgText1[0], 1);
    
PlayerTextDrawBackgroundColor(playeridgText1[0], 255);
    
PlayerTextDrawFont(playeridgText1[0], 1);
    
PlayerTextDrawSetProportional(playeridgText1[0], 1);
    
//PlayerTextDrawTextSize(playerid, gText1[0], 0.446249, 1.051666);
    
PlayerTextDrawSetSelectable(playeridgText1[0], 1);
    
gText1[1] = CreatePlayerTextDraw(playerid266.875000211.166717"clicavel senha");
    
PlayerTextDrawLetterSize(playeridgText1[1], 0.4437491.022499);
    
PlayerTextDrawAlignment(playeridgText1[1], 1);
    
PlayerTextDrawColor(playeridgText1[1], -2139062017);
    
PlayerTextDrawSetShadow(playeridgText1[1], 0);
    
PlayerTextDrawSetOutline(playeridgText1[1], 1);
    
PlayerTextDrawBackgroundColor(playeridgText1[1], 255);
    
PlayerTextDrawFont(playeridgText1[1], 1);
    
PlayerTextDrawSetProportional(playeridgText1[1], 1);
    
PlayerTextDrawTextSize(playeridgText1[1], 0.4437491.022499);
    
PlayerTextDrawSetSelectable(playeridgText1[1], 1);
    return 
1;

Se for fazer desse teu jeito ai, nгo й PlayerText: o mais correto, e sim Text: ... jб que й a mesma string na textdraw pra todos os players, entгo logo nгo precisa ser PlayerText: ...
Reply
#8

Quote:
Originally Posted by JeffSantos2
Посмотреть сообщение
Se for fazer desse teu jeito ai, nгo й PlayerText: o mais correto, e sim Text: ... jб que й a mesma string na textdraw pra todos os players, entгo logo nгo precisa ser PlayerText: ...
ai que vocк se engana pra que iria existir PlayerText se fosse necessбrio criar para todos os players com MAX_PLAYERS? PlayerText й criado para o player quando ele se conecta e destruido quando ele se desconecta.. logo cada player que se conecta й criado uma Textdraw para ele... se o PlayerText nгo fosse para esse fim logo nгo existiria o motivo dele existir..
Reply
#9

Ta ok, agora pensa na situaзгo, Eu entrei e sou id 0, criou a playertext e o gtext1[0] ficou com id x, dai vc entra com ID 1, e a gtext1[0] ficou com ID Y, estou certo?

Dai eu clico na minha playertext que tem ID X, e no ClickTextDraw, como vc vai checar o id da textdraw que ele clicou, nгo irб dar conflito?

Esse й o meu ver, eu posso estar errado, claro

Faz um teste prбtico, pra vc ver
Reply
#10

para de apertar a mesma tecla, vai afundar

Global TextDraw, sгo textdraw's que nгo mudam
PlayerTextDraw, Textdraw's para um jogador especifico

nunca q PlayerTD, vai virar global

wiki.sa-mp.com/wiki/MAX_PLAYERS
Para min o uso de MAX_PLAYERS, й essencial em qualquer tipo de textdraws, nunca tive problema com isso
e olha que mexo com textdraws a tanto tempo
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)