Portal SAMP
[Ajuda] Ajuda em um bug - 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] Ajuda em um bug (/showthread.php?tid=1269)



Ajuda em um bug - kabulosoogeteam - 08/06/2021

coloquei um sistema de garagem que tem aqui no forum 
so que quando eu entro com veiculo na garagem fica de boas eu estaciono ele ta e ok 
so que quando eu saio do servidor e volto eu entro na garagem ele some porque a garagem ta em um mundo virtual
e mudo virtual que eu coloquei carro troca ai e como se nao tivesse nada no outro tem como resolver isso ?

Código:
new string[64];
        for(new g=0; g<MAX_GARAGENS; g++)
        {
            if(PlayerToPointa(3.0, playerid, Garagem[g][cnX], Garagem[g][cnY], Garagem[g][cnZ]))
            {
                if(Garagem[g][cnLock] == 0)
                {
                    if(Deletado[g] == false)
                    {
                        if(GetPlayerState(playerid) == PLAYER_STATE_ONFOOT)
                        {
                            SetPlayerPos(playerid, COORDENADASGARAGEM);
                            SetPlayerVirtualWorld(playerid, g+10);
                            SetPlayerInterior(playerid, 0);
                            //TogglePlayerControllable(playerid,0);
                            //SetTimerEx("entradainteriordescongelar", 8000, 0, "i", playerid);
                            format(string, sizeof(string), "Bem Vindo a Garagem %d.", g);
                            SendClientMessage(playerid, COR_SUCESSO, string);
                        }
                        else
                        {
                            if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
                               {
                                if(Garagem[g][cnCar] <= MAX_CARS)
                                {
                                      for(new i = 0; i < MAX_PLAYERS; i++)
                                    {
                                        new tmpcar = GetPlayerVehicleID(playerid);
                                        if(IsPlayerInVehicle(i, tmpcar))
                                        {
                                            SetPlayerVirtualWorld(i, g+10);
                                            SetPlayerInterior(playerid, 0);
                                            Garagem[g][cnCar] ++;
                                            SetVehicleVirtualWorld(tmpcar, g+10);
                                            SetVehiclePos(tmpcar, COORDENADASGARAGEM);
                                            //TogglePlayerControllable(playerid,0);
                                            //SetTimerEx("TempoEvento", 8000, 0, "i", playerid);
                                            format(string, sizeof(string), "Bem Vindo a Garagem %d.", g);
                                            SendClientMessage(i, COR_SUCESSO, string);
                                        }
                                    }
                                }


esse codigo de entrar na garagem


RE: Ajuda em um bug - ipsLuan - 08/06/2021

Você pode fazer a verificação se o jogador está no mesmo mundo virtual da garagem.

Código PHP:
if(GetPlayerVirtualWorld(playerid) == Garagem[g][vwGaragem]) 



RE: Ajuda em um bug - kabulosoogeteam - 09/06/2021

mais como ? sou meio noob com virtual world


RE: Ajuda em um bug - ipsLuan - 09/06/2021

Assim como você define a posição das garagens, você deve definir o ID do mundo virtual de cada uma.


RE: Ajuda em um bug - kabulosoogeteam - 10/06/2021

ata acho que entendi vlw


RE: Ajuda em um bug - kabulosoogeteam - 10/06/2021

para mim nao ficar criando muitos topico mas alguem pode me dizer oque ta errado ?

Código:
public OnGameModeInit()
{
    Dinheirosujo[0] = TextDrawCreate(563.600097, 101.146598, "Dinheiro Sujo:");
TextDrawLetterSize(Dinheirosujo[0], 0.400000, 1.600000);
TextDrawAlignment(Dinheirosujo[0], 3);
TextDrawColor(Dinheirosujo[0], 16777215);
TextDrawSetShadow(Dinheirosujo[0], 1);
TextDrawSetOutline(Dinheirosujo[0], 1);
TextDrawBackgroundColor(Dinheirosujo[0], 255);
TextDrawFont(Dinheirosujo[0], 1);
TextDrawSetProportional(Dinheirosujo[0], 1);
TextDrawSetShadow(Dinheirosujo[0], 1);

Dinheirosujo[1] = TextDrawCreate(568.399963, 101.893333, "1000000");
TextDrawLetterSize(Dinheirosujo[1], 0.400000, 1.600000);
TextDrawAlignment(Dinheirosujo[1], 1);
TextDrawColor(Dinheirosujo[1], 16711935);
TextDrawSetShadow(Dinheirosujo[1], 1);
TextDrawSetOutline(Dinheirosujo[1], 1);
TextDrawBackgroundColor(Dinheirosujo[1], 255);
TextDrawFont(Dinheirosujo[1], 1);
TextDrawSetProportional(Dinheirosujo[1], 1);
TextDrawSetShadow(Dinheirosujo[1], 1);

}


Código:
public OnPlayerUpdate(playerid)
{
    new string[32];
format(string, sizeof(string), "%i", pInfos[playerid][pDSujo]);
PlayerTextDrawSetString(playerid, Dinheirosujo[1] ,string );
return 1;
}


o valor nao quer mudar nao sei porque


RE: Ajuda em um bug - xbruno1000x - 10/06/2021

(10/06/2021 03:27)kabulosoogeteam Escreveu: para mim nao ficar criando muitos topico mas alguem pode me dizer oque ta errado ?

Código:
public OnGameModeInit()
{
    Dinheirosujo[0] = TextDrawCreate(563.600097, 101.146598, "Dinheiro Sujo:");
TextDrawLetterSize(Dinheirosujo[0], 0.400000, 1.600000);
TextDrawAlignment(Dinheirosujo[0], 3);
TextDrawColor(Dinheirosujo[0], 16777215);
TextDrawSetShadow(Dinheirosujo[0], 1);
TextDrawSetOutline(Dinheirosujo[0], 1);
TextDrawBackgroundColor(Dinheirosujo[0], 255);
TextDrawFont(Dinheirosujo[0], 1);
TextDrawSetProportional(Dinheirosujo[0], 1);
TextDrawSetShadow(Dinheirosujo[0], 1);

Dinheirosujo[1] = TextDrawCreate(568.399963, 101.893333, "1000000");
TextDrawLetterSize(Dinheirosujo[1], 0.400000, 1.600000);
TextDrawAlignment(Dinheirosujo[1], 1);
TextDrawColor(Dinheirosujo[1], 16711935);
TextDrawSetShadow(Dinheirosujo[1], 1);
TextDrawSetOutline(Dinheirosujo[1], 1);
TextDrawBackgroundColor(Dinheirosujo[1], 255);
TextDrawFont(Dinheirosujo[1], 1);
TextDrawSetProportional(Dinheirosujo[1], 1);
TextDrawSetShadow(Dinheirosujo[1], 1);

}


Código:
public OnPlayerUpdate(playerid)
{
    new string[32];
format(string, sizeof(string), "%i", pInfos[playerid][pDSujo]);
PlayerTextDrawSetString(playerid, Dinheirosujo[1] ,string );
return 1;
}


o valor nao quer mudar nao sei porque


Você não mostrou a parte onde seta dinheiro sujo para o player.

Não utilize essa public onplayerupdate, ela é chamada milhares de vezes por segundos e pode afetar o desempenho do seu gamemode no host.


Você usou uma textdraw global com PlayerTextDrawSetString. Só se utiliza essa função em player textdraws.
Use TextDrawSetString -> https://open.mp/pt/docs/scripting/functions/TextDrawSetString


RE: Ajuda em um bug - ipsLuan - 10/06/2021

Use PlayerTextDraw ao invés de TextDraw.


RE: Ajuda em um bug - kabulosoogeteam - 10/06/2021

vlw galera