Portal SAMP
[Ajuda] DOF2 Bugando - 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] DOF2 Bugando (/showthread.php?tid=2945)



DOF2 Bugando - BrunoHenriqueC - 31/10/2022

Criei um sistema de criar casas, mas meu dof2 esta bugando e criando MAX_CASAS

#define MAX_CASAS 100

ai ele cria 100 casas, alguem ajuda ai


RE: DOF2 Bugando - xbruno1000x - 31/10/2022

Ué, mas se o MAX_CASAS está definido como 100, qual o erro dele criar 100 casas? Provavelmente tem algum looping criando todas de uma vez.


RE: DOF2 Bugando - Luiz - 31/10/2022

Você está verificando se a casa não é inválida no loop de criação das casas? Se não tiver uma verificação, ele vai criar 100 casas, até mesmo as que não estão setadas.


RE: DOF2 Bugando - BrunoHenriqueC - 01/11/2022

Código:
stock CriarCasasEx()
{
    new casas;
    for(new casaid = 0; casaid < MAX_CASAS; casaid++)
  {
        new Arquivo[ 200 ], NomeStatus[ 20 ], textlabel[ 250 ], NomeAluguel[ 20 ];
    format(Arquivo, sizeof(Arquivo), "LHouse/Casas/Casa %d.txt", casaid);
if(DOF2_FileExists(Arquivo))
{
            CasaI[casaid][Preco] = DOF2_GetInt(Arquivo, "Preço");
            CasaI[casaid][AluguelAtivado] = DOF2_GetInt(Arquivo, "AluguelAtivado");
            CasaI[casaid][CasaX] = DOF2_GetFloat(Arquivo, "PosX");
            CasaI[casaid][CasaY] = DOF2_GetFloat(Arquivo, "PosY");
            CasaI[casaid][CasaZ] = DOF2_GetFloat(Arquivo, "PosZ");
            CasaI[casaid][IntX] = DOF2_GetFloat(Arquivo, "InteriorX");
            CasaI[casaid][IntY] = DOF2_GetFloat(Arquivo, "InteriorY");
            CasaI[casaid][IntZ] = DOF2_GetFloat(Arquivo, "InteriorZ");
            CasaI[casaid][VirtualWorld] = DOF2_GetInt(Arquivo, "VirtualWorld");
            CasaI[casaid][Interior] = DOF2_GetInt(Arquivo, "Interior");
            CasaI[casaid][Status] = DOF2_GetInt(Arquivo, "Status");
            CasaI[casaid][AluguelAtivado] = DOF2_GetInt(Arquivo, "AluguelAtivado");
            CasaI[casaid][AluguelPreco] = DOF2_GetInt(Arquivo, "AluguelPreço");
        format(CasaI[casaid][Dono], 24, DOF2_GetString(Arquivo, "Dono"));
            format(CasaI[casaid][Locador], 24, DOF2_GetString(Arquivo, "Locador"));
            if(CasaI[casaid][Status] == 1) NomeStatus = "Trancada";
            else if(CasaI[casaid][Status] == 0) NomeStatus = "Destrancada";
            if(CasaI[casaid][AluguelAtivado] == 1) NomeAluguel = "Ativado";
            else if(CasaI[casaid][AluguelAtivado] == 0) NomeAluguel = "Desativado";
            casas++;
            printf("|========================= CASA %d ========================", casaid);
            printf("|                                                        ");
            printf("| X:                    %f.                    ", CasaI[casaid][CasaX]);
            printf("| Y:                    %f.                    ", CasaI[casaid][CasaY]);
            printf("| Z:                    %f.                      ", CasaI[casaid][CasaZ]);
            printf("| IntX:                  %f.                    ", CasaI[casaid][IntX]);
            printf("| IntY:                  %f.                    ", CasaI[casaid][IntY]);
            printf("| IntZ:                  %f.                    ", CasaI[casaid][IntZ]);
            printf("| VirtualWorld:          %d                                ", CasaI[casaid][VirtualWorld]);
            printf("| Interior:              %d                                ", CasaI[casaid][Interior]);
            printf("|                                                        ");
            printf("| Aluguel:              %s                      ", NomeAluguel);
            printf("| Status:                %s                        ", NomeStatus);
            printf("|                                                        ");
            printf("| Dono:                  %s                          ", CasaI[casaid][Dono]);
            printf("| Locador:              %s                          ", CasaI[casaid][Locador]);
            printf("|                                                        ");
            new StringLog[ 700 ];
            format(StringLog, sizeof(StringLog), "-------- A CASA DE ID %d FOI CRIADA COM SUCESSO! --------", casaid);
            EscreverLog(LogSystem, StringLog);
            if(!strcmp(CasaI[casaid][Dono], "Ninguem", true))
            {
        PickupEntradaCasa[casaid] = CreateDynamicPickup(1273, 1, CasaI[casaid][CasaX], CasaI[casaid][CasaY], CasaI[casaid][CasaZ]);
                PickupSaidaCasa[casaid] = CreateDynamicPickup(1318, 1, CasaI[casaid][IntX], CasaI[casaid][IntY], CasaI[casaid][IntZ]);
        MapIconCasa[casaid] = CreateDynamicMapIcon(CasaI[casaid][CasaX], CasaI[casaid][CasaY], CasaI[casaid][CasaZ], 31, -1, -1, 0, -1, 100.0);
                format(textlabel, sizeof(textlabel), TextCasaVenda, CasaI[casaid][Dono], CasaI[casaid][Preco], NomeStatus, casaid);
                LabelCasa[casaid] = CreateDynamic3DTextLabel(textlabel, -1, CasaI[casaid][CasaX], CasaI[casaid][CasaY], CasaI[casaid][CasaZ], 20.0);
            }
            else
        {
                if(CasaI[casaid][AluguelAtivado] == 1)
                {
            PickupEntradaCasa[casaid] = CreateDynamicPickup(1272, 1, CasaI[casaid][CasaX], CasaI[casaid][CasaY], CasaI[casaid][CasaZ]);
                    PickupSaidaCasa[casaid] = CreateDynamicPickup(1318, 1, CasaI[casaid][IntX], CasaI[casaid][IntY], CasaI[casaid][IntZ]);
                    MapIconCasa[casaid] = CreateDynamicMapIcon(CasaI[casaid][CasaX], CasaI[casaid][CasaY], CasaI[casaid][CasaZ], 32, -1, -1, 0, -1, 100.0);
                    format(textlabel, sizeof(textlabel), TextCasaAluguel, CasaI[casaid][Dono], CasaI[casaid][Locador], CasaI[casaid][AluguelPreco], NomeStatus, casaid);
                    LabelCasa[casaid] = CreateDynamic3DTextLabel(textlabel, -1, CasaI[casaid][CasaX], CasaI[casaid][CasaY], CasaI[casaid][CasaZ], 20.0);
                }
                else
                {
            PickupEntradaCasa[casaid] = CreateDynamicPickup(1272, 1, CasaI[casaid][CasaX], CasaI[casaid][CasaY], CasaI[casaid][CasaZ]);
                    PickupSaidaCasa[casaid] = CreateDynamicPickup(1318, 1, CasaI[casaid][IntX], CasaI[casaid][IntY], CasaI[casaid][IntZ]);
                    MapIconCasa[casaid] = CreateDynamicMapIcon(CasaI[casaid][CasaX], CasaI[casaid][CasaY], CasaI[casaid][CasaZ], 32, -1, -1, 0, -1, 100.0);
                    format(textlabel, sizeof(textlabel), TextCasa, CasaI[casaid][Dono], NomeAluguel, NomeStatus, casaid);
                    LabelCasa[casaid] = CreateDynamic3DTextLabel(textlabel, -1, CasaI[casaid][CasaX], CasaI[casaid][CasaY], CasaI[casaid][CasaZ], 20.0);
                }
            }
            Iter_Add(Casas, casaid);
        }
    }
    if(casas == 0)
    {
        printf("|======================== LHOUSE =========================");
        print("|                                                        ");
        print("| ATENÇÃO: Não foi detectado nenhuma casa criada.        ");
        print("| Para criar uma, logue no servidor, entre na RCON        ");
        print("| e digite /criarcasa.                                    ");
        print("|                                                        ");
    }
    else
    {
        printf("|======================== LHOUSE =========================");
        printf("|                                                        ");
        printf("| Foram criadas %d casas.                                  ", casas);
        printf("|                                                        ");
    }
    return 1;
}

[hr]
Public OnfilterScriptInit
{
    CriarCasasEx();
    return 1;
}


BEM RESOLVI, NÃO SEI COMO EU JURO, MAS TA RESOLVIDO OBRIGADO A TODOS!!