Portal SAMP
[Ajuda] Como remover essa textdraw - Versão de Impressão

+- Portal SAMP (https://portalsamp.com)
+-- Fórum: SA-MP (https://portalsamp.com/forumdisplay.php?fid=5)
+--- Fórum: Área de suporte (https://portalsamp.com/forumdisplay.php?fid=6)
+--- Tópico: [Ajuda] Como remover essa textdraw (/showthread.php?tid=544)



Como remover essa textdraw - LeleziiN - 23/12/2020

Bom fiz essa TextDraw para marca a distancia da pessoa para o Objeto, certo até tudo bem, mais queria saber como faço para remover essa TextDraw quando a pessoa sair da zona aonde a TextDraw se ativa com o comando.

Código:
DistanceTD[playerid] = CreatePlayerTextDraw(playerid, 87.333358, 317.573242, "Distanta_xxxM");
PlayerTextDrawLetterSize(playerid, DistanceTD[playerid], 0.363428, 1.297067);
PlayerTextDrawTextSize(playerid, DistanceTD[playerid], 0.000000, 111.000000);
PlayerTextDrawAlignment(playerid, DistanceTD[playerid], 2);
PlayerTextDrawColor(playerid, DistanceTD[playerid], -1);
PlayerTextDrawUseBox(playerid, DistanceTD[playerid], 1);
PlayerTextDrawBoxColor(playerid, DistanceTD[playerid], 112);
PlayerTextDrawSetShadow(playerid, DistanceTD[playerid], 0);
PlayerTextDrawSetOutline(playerid, DistanceTD[playerid], 1);
PlayerTextDrawBackgroundColor(playerid, DistanceTD[playerid], 189);
PlayerTextDrawFont(playerid, DistanceTD[playerid], 1);
PlayerTextDrawSetProportional(playerid, DistanceTD[playerid], 1);
PlayerTextDrawSetShadow(playerid, DistanceTD[playerid], 0);



RE: Como remover essa textdraw - LeleziiN - 23/12/2020

Bom já tentei de varias formas e sem êxito na formula.


RE: Como remover essa textdraw - Gustavo P - 23/12/2020

Não entendi muito bem, mas pelo que eu entendi, você vai ter que criar uma variavel global

new Float:pos[3][MAX_PLAYERS]

quando o cara dar o cmd e criar o textdraw, voce salva os valores

GetPlayerPos(playerid, Float:x, Float:y, Float:z)
pos[0][playerid] = Float:x;

depois criar uma função e um timer

SetTimerEx("ChecarArea", 1000, true, "d", playerid);

ChecarArea(playerid)
{
if(!IsPlayerInRangeOfPoint(playerid, Float:range,pos[0][playerid], pos[1][playerid], pos[2][playerid]))
return PlayerTextDrawHide(playerid, PlayerText:text);
}


RE: Como remover essa textdraw - LeleziiN - 23/12/2020

(23/12/2020 18:55)Gustavo P Escreveu: Não entendi muito bem, mas pelo que eu entendi, você vai ter que criar uma variavel global

new Float:pos[3][MAX_PLAYERS]

quando o cara dar o cmd e criar o textdraw, voce salva os valores

GetPlayerPos(playerid, Float:x, Float:y, Float:z)
pos[0][playerid] =  Float:x;

depois criar uma função e um timer

SetTimerEx("ChecarArea", 1000, true, "d", playerid);

ChecarArea(playerid)
{
    if(!IsPlayerInRangeOfPoint(playerid, Float:range,pos[0][playerid], pos[1][playerid], pos[2][playerid]))
        return PlayerTextDrawHide(playerid, PlayerText:text);

Assim amigo essa TextDraw é de uma profissão que criei, ai ela é para ajuda o jogador saber a distancia que ele está no objeto que tem que fazer a dinamica da profissão, mais não estou sabendo tirar ela quando o jogador sair da área exata da profissão.


RE: Como remover essa textdraw - LeleziiN - 29/12/2020

Podem mim ajuda pfvr?


RE: Como remover essa textdraw - NelsonC. - 30/12/2020

Vou estar deixando um código que fiz no meu gm antigo.

Código:
forward localcarregamento();
public localcarregamento() {
    foreach(new i: Player) {
        if(PlayerToPoint(i, 30.0, 1788.0253,-2066.2034,13.5825)) { // Transportador de Mercadoria
            TextDrawSetString(TextCarregamento, "~b~~h~~h~Area de Carregamento");
            TextDrawShowForPlayer(i, TextCarregamento);
            HideVelo[i] = 1;
        } else {
            TextDrawHideForPlayer(i, TextCarregamento);
            HideVelo[i] = 0;
        }
        if(PlayerToPoint(i, 30.0, 226.4612,1407.4763,10.5859)) { // Transportador de Combustivel
            TextDrawSetString(TextCarregamento, "~b~~h~~h~Area de Carregamento");
            TextDrawShowForPlayer(i, TextCarregamento);
            HideVelo[i] = 1;
        } else {
            TextDrawHideForPlayer(i, TextCarregamento);
            HideVelo[i] = 0;
        }
        if(PlayerToPoint(i, 30.0, 2003.2245,-2606.1133,13.5469)) { // Piloto
            TextDrawSetString(TextCarregamento, "~b~~h~~h~Area de Carregamento");
            TextDrawShowForPlayer(i, TextCarregamento);
            HideVelo[i] = 1;
        } else {
            TextDrawHideForPlayer(i, TextCarregamento);
            HideVelo[i] = 0;
        }
        if(PlayerToPoint(i, 30.0, -1111.2908,-1208.2714,129.2259)) {
            TextDrawSetString(TextCarregamento, "~b~~h~~h~Area de Carregamento"); // Transportador de Feno
            TextDrawShowForPlayer(i, TextCarregamento);
            HideVelo[i] = 1;
        } else {
            TextDrawHideForPlayer(i, TextCarregamento);
            HideVelo[i] = 0;
        }
    }
    SetTimer("CheckAreasServer", 1000, false);
    return true;
}


OnGameModeInit:
Código:
SetTimer("localcarregamento", 800, true);


Código:
stock PlayerToPoint(playerid, Float:radi, Float:x, Float:y, Float:z)
{
    if(IsPlayerConnected(playerid))
    {
        new Float:oldposx, Float:oldposy, Float:oldposz;
        new Float:tempposx, Float:tempposy, Float:tempposz;
        GetPlayerPos(playerid, oldposx, oldposy, oldposz);
        tempposx = (oldposx -x);
        tempposy = (oldposy -y);
        tempposz = (oldposz -z);
        if (((tempposx < radi) && (tempposx > -radi)) && ((tempposy < radi) && (tempposy > -radi)) && ((tempposz < radi) && (tempposz > -radi))){
            return true;
        }
    }
    return 0;
}



RE: Como remover essa textdraw - Pedro Gabriel Samp - 30/12/2020

(30/12/2020 15:57)NelsonC. Escreveu: Vou estar deixando um código que fiz no meu gm antigo.

Código:
forward localcarregamento();
public localcarregamento() {
    foreach(new i: Player) {
        if(PlayerToPoint(i, 30.0, 1788.0253,-2066.2034,13.5825)) { // Transportador de Mercadoria
            TextDrawSetString(TextCarregamento, "~b~~h~~h~Area de Carregamento");
            TextDrawShowForPlayer(i, TextCarregamento);
            HideVelo[i] = 1;
        } else {
            TextDrawHideForPlayer(i, TextCarregamento);
            HideVelo[i] = 0;
        }
        if(PlayerToPoint(i, 30.0, 226.4612,1407.4763,10.5859)) { // Transportador de Combustivel
            TextDrawSetString(TextCarregamento, "~b~~h~~h~Area de Carregamento");
            TextDrawShowForPlayer(i, TextCarregamento);
            HideVelo[i] = 1;
        } else {
            TextDrawHideForPlayer(i, TextCarregamento);
            HideVelo[i] = 0;
        }
        if(PlayerToPoint(i, 30.0, 2003.2245,-2606.1133,13.5469)) { // Piloto
            TextDrawSetString(TextCarregamento, "~b~~h~~h~Area de Carregamento");
            TextDrawShowForPlayer(i, TextCarregamento);
            HideVelo[i] = 1;
        } else {
            TextDrawHideForPlayer(i, TextCarregamento);
            HideVelo[i] = 0;
        }
        if(PlayerToPoint(i, 30.0, -1111.2908,-1208.2714,129.2259)) {
            TextDrawSetString(TextCarregamento, "~b~~h~~h~Area de Carregamento"); // Transportador de Feno
            TextDrawShowForPlayer(i, TextCarregamento);
            HideVelo[i] = 1;
        } else {
            TextDrawHideForPlayer(i, TextCarregamento);
            HideVelo[i] = 0;
        }
    }
    SetTimer("CheckAreasServer", 1000, false);
    return true;
}


OnGameModeInit:
Código:
SetTimer("localcarregamento", 800, true);


Código:
stock PlayerToPoint(playerid, Float:radi, Float:x, Float:y, Float:z)
{
    if(IsPlayerConnected(playerid))
    {
        new Float:oldposx, Float:oldposy, Float:oldposz;
        new Float:tempposx, Float:tempposy, Float:tempposz;
        GetPlayerPos(playerid, oldposx, oldposy, oldposz);
        tempposx = (oldposx -x);
        tempposy = (oldposy -y);
        tempposz = (oldposz -z);
        if (((tempposx < radi) && (tempposx > -radi)) && ((tempposy < radi) && (tempposy > -radi)) && ((tempposz < radi) && (tempposz > -radi))){
            return true;
        }
    }
    return 0;
}

Mano nmrl tu e foda toda hora ajudando os cara queria ser igual você soque não entendo muito de script


RE: Como remover essa textdraw - LeleziiN - 30/12/2020

(30/12/2020 15:57)NelsonC. Escreveu: Vou estar deixando um código que fiz no meu gm antigo.

Código:
forward localcarregamento();
public localcarregamento() {
    foreach(new i: Player) {
        if(PlayerToPoint(i, 30.0, 1788.0253,-2066.2034,13.5825)) { // Transportador de Mercadoria
            TextDrawSetString(TextCarregamento, "~b~~h~~h~Area de Carregamento");
            TextDrawShowForPlayer(i, TextCarregamento);
            HideVelo[i] = 1;
        } else {
            TextDrawHideForPlayer(i, TextCarregamento);
            HideVelo[i] = 0;
        }
        if(PlayerToPoint(i, 30.0, 226.4612,1407.4763,10.5859)) { // Transportador de Combustivel
            TextDrawSetString(TextCarregamento, "~b~~h~~h~Area de Carregamento");
            TextDrawShowForPlayer(i, TextCarregamento);
            HideVelo[i] = 1;
        } else {
            TextDrawHideForPlayer(i, TextCarregamento);
            HideVelo[i] = 0;
        }
        if(PlayerToPoint(i, 30.0, 2003.2245,-2606.1133,13.5469)) { // Piloto
            TextDrawSetString(TextCarregamento, "~b~~h~~h~Area de Carregamento");
            TextDrawShowForPlayer(i, TextCarregamento);
            HideVelo[i] = 1;
        } else {
            TextDrawHideForPlayer(i, TextCarregamento);
            HideVelo[i] = 0;
        }
        if(PlayerToPoint(i, 30.0, -1111.2908,-1208.2714,129.2259)) {
            TextDrawSetString(TextCarregamento, "~b~~h~~h~Area de Carregamento"); // Transportador de Feno
            TextDrawShowForPlayer(i, TextCarregamento);
            HideVelo[i] = 1;
        } else {
            TextDrawHideForPlayer(i, TextCarregamento);
            HideVelo[i] = 0;
        }
    }
    SetTimer("CheckAreasServer", 1000, false);
    return true;
}


OnGameModeInit:
Código:
SetTimer("localcarregamento", 800, true);


Código:
stock PlayerToPoint(playerid, Float:radi, Float:x, Float:y, Float:z)
{
    if(IsPlayerConnected(playerid))
    {
        new Float:oldposx, Float:oldposy, Float:oldposz;
        new Float:tempposx, Float:tempposy, Float:tempposz;
        GetPlayerPos(playerid, oldposx, oldposy, oldposz);
        tempposx = (oldposx -x);
        tempposy = (oldposy -y);
        tempposz = (oldposz -z);
        if (((tempposx < radi) && (tempposx > -radi)) && ((tempposy < radi) && (tempposy > -radi)) && ((tempposz < radi) && (tempposz > -radi))){
            return true;
        }
    }
    return 0;
}

Blz mano vou pega seu exemplo pra fazer o meu aqui e resolver o meu problema ok