[Ajuda] TextDraw Criando Outra em cima da mesma.
#1

Estava criando uma textdraw, ..., usei 'TextDrawSetString' em uma certa text, quando eu conecto ela fica normal atualizando as areas, mais quando algum outro player conecta, buga e cria Outra text em cima da mesma...

Cod:
pawn Код:
static
    Text:Localidades[MAX_PLAYERS]
;

//OnGameModeInit
timerspeedo[i]  = SetTimerEx("Speedo",500, true, "i", i);

//OnPlayerDisconnect
for(new i; i < MAX_PLAYERS;i++){
    TextDrawHideForPlayer(playerid, Localidades[playerid]);
    TextDrawDestroy(Localidades[playerid]);
}

//OnPlayerSpawn
for(new i; i < MAX_PLAYERS;i++){
    TextDrawShowForPlayer(playerid, Localidades[playerid]);
}

//Speedo
GetPlayer2DZone(playerid, zone, MAX_ZONE_NAME);
format(sstring,sizeof(sstring),"~w~%s", zone); //Sstring jб foi criada.
TextDrawSetString(Localidades[playerid], sstring);
TextDrawShowForPlayer(playerid, Localidades[playerid]);

//Stock GetPlayer2DZone
stock GetPlayer2DZone(playerid, zoneada[], len)
{
    GetPlayerPos(playerid, x, y, z);
    for(new i = 0; i != sizeof(gSAZones); i++ )
    {
        if(x >= gSAZones[i][SAZONE_AREA][0] && x <= gSAZones[i][SAZONE_AREA][3] && y >= gSAZones[i][SAZONE_AREA][1] && y <= gSAZones[i][SAZONE_AREA][4])
        {
            return format(zoneada, len, gSAZones[i][SAZONE_NAME], 0);
        }
    }
    return 0;
}
Obrigado :/
Reply
#2

Exclua esses loops ae.

--

Tenta destruir e criar denovo a text quando ele mudar de бrea.
Reply
#3

Jeito Correto Abraзo

pawn Код:
new Text:Localidades[MAX_PLAYERS];

//OnGameModeInit
SetTimer("Speedo", 500, true);

//OnPlayerDisconnect
    TextDrawHideForPlayer(playerid, Localidades[playerid]);

//OnPlayerSpawn
    TextDrawShowForPlayer(playerid, Localidades[playerid]);

//Speedo
public Speedo()
{
foreach(Player, i)
{
new zoneada[ MAX_ZONE_NAME ];
GetPlayer2DZone(i, zoneada, MAX_ZONE_NAME);
format(sstring,sizeof(sstring),"~w~%s", zoneada); //Sstring jб foi criada.
TextDrawSetString(Localidades[i], sstring);
TextDrawShowForPlayer(i, Localidades[i]);
}
}

//Stock GetPlayer2DZone
stock GetPlayer2DZone(playerid, zoneada[], len)
{
new Float:x;
new Float:y;
new Float:z;
GetPlayerPos(playerid, x, y, z);
for(new i = 0; i != sizeof(gSAZones); i++ )
{
if(x >= gSAZones[i][SAZONE_AREA][0] && x <= gSAZones[i][SAZONE_AREA][3] && y >= gSAZones[i][SAZONE_AREA][1] && y <= gSAZones[i][SAZONE_AREA][4])
{
return format(zoneada, len, gSAZones[i][SAZONE_NAME], 0);
}
}
return 0;
}
Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)