09/08/2023 18:50
(09/08/2023 18:29)Walkerxinho7 Escreveu:(09/08/2023 18:26)White_Blue Escreveu:Certo, irei corrigir, valeu White.(09/08/2023 18:03)Walkerxinho7 Escreveu:(09/08/2023 17:56)White_Blue Escreveu:(09/08/2023 17:44)MarcosBrazz Escreveu:O segundo parametro de TextDrawHideForPlayer pede uma variavel com a tag Text:, logo a variavel usada (do loop) tem que conter Text:Código PHP:for(new Text:text; Text:text < MAX_TEXT_DRAWS; Text:text ++)
TextDrawHideForPlayer(playerid, Text:text);
Não havia percebido que ele estava usando o loop para definir a variável, mas não entendo o por quê.
Qual o motivo para isso? Por que apenas não declarar uma variável global? O loop 'for' é um laço de repetição, não uma palavra-chave para definir variáveis.
Exemplo:
Código PHP:new Text:text; // Supondo que seja apenas uma textdraw, afinal, a variável do loop não é uma array. Portanto, sequer precisa usar um loop para manipular a textdraw
public OnGameModeInit() {
text = TextDrawCreate(240.0, 580.0, "Bem-vindo ao meu servidor SA-MP!");
return 1;
}
public OnPlayerConnect(playerid) {
TextDrawShowForPlayer(playerid, text);
return 1;
}
CMD:escondertextdraw(playerid) {
TextDrawHideForPlayer(playerid, text);
return 1;
}
O código acima não necessita de um loop, assim poupando processamento, pois no contexto do código que você forneceu, não faz o menor sentido usar um loop.
Esse loop remove todas as textdraws que for "Text" da tela do player.
Se a ideia é esconder todas as textdraws contidas em uma array, você está incorreto do mesmo jeito. Você está definindo uma variável local chamada text, se já existe uma variável global com esse nome você receberia um erro.
Se você deseja remover todas as textdraws associadas à variável o correto seria:
Código PHP:for(new i = 0; i < sizeof(text); i++) /* O breakpoint assume o valor da variável text, assim criando um número de repetições de acordo com o valor de itens da array. */ {
TextDrawHideForPlayer(playerid, text[i]); // Supondo que text seja uma array com diversas células, caso contrário, não há a menor necessidade de usar um loop se for só uma textdraw.
}
Fico feliz por ter ajudado.
Não estou disponível para realizar serviços relacionados ao SA-MP e não costumo responder a mensagens privadas, a menos que estejam relacionadas à moderação do fórum.