Portal SAMP
[Ajuda] sistema de casa - 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] sistema de casa (/showthread.php?tid=1800)



sistema de casa - Smith - 01/11/2021

galera estou com um bug no meu sistema de casa os pickups estao bugado so aparece o pickup da ultima casa comprada ou criada os outros pickups e 3dtextlabel criado some e o dono da casa nao conssegue entra na casa o sistema de salvamento esta tudo certo acredito que seja o carregamento alguem me ajuda? tipo tem 3 casa criada mas so mostra o pickup eo texto da ultima casa criada ou comprada
Código:
stock LoadHouse(houseid)
{
    new Casa[50];
    format(Casa, sizeof(Casa), "Casas/%d.ini", houseid);
    if(DOF2_FileExists(Casa))
    {
        new string[600];
        if(DOF2_GetInt(Casa, "TemDono") == 0)
        {
            new Float:X, Float:Y, Float:Z;
            X = DOF2_GetFloat(Casa, "iconX");
            Y = DOF2_GetFloat(Casa, "iconY");
            Z = DOF2_GetFloat(Casa, "iconZ");
            PickHouse[houseid] = CreatePickup(1273, 1, X, Y, Z);
            format(string, sizeof(string), "{0000FF}Casa a Venda\n\n{0000FF}ID: {FFFFFF}%d\n{0000FF}Valor: {FFFFFF}%d\n{0000FF}/comprarcasa", houseid, DOF2_GetInt(Casa, "Valor"));
            TextInfo[houseid] = Create3DTextLabel(string,0xFFFFFFAA,X, Y, Z+0.75, 20.0,0);
        }
        else
        {
            new Float:X, Float:Y, Float:Z;
            X = DOF2_GetFloat(Casa, "iconX");
            Y = DOF2_GetFloat(Casa, "iconY");
            Z = DOF2_GetFloat(Casa, "iconZ");
            PickHouse[houseid] = CreatePickup(1272, 1, X, Y, Z);
            format(string, sizeof(string), "{0000FF}Dono: {FFFFFF}%s\n{0000FF}ID: {FFFFFF}%d\n{0000FF}Ultimo Login: {FFFFFF}%d/%d/%d", DOF2_GetString(Casa, "Dono"), houseid, DOF2_GetInt(Casa, "pDia"), DOF2_GetInt(Casa, "pMes"), DOF2_GetInt(Casa, "pAno"));
            TextInfo[houseid] = Create3DTextLabel(string,0xFFFFFFAA,X, Y, Z+0.75, 20.0,0);
        }
    }
    return 1;
}



RE: sistema de casa - k2bi_YT - 01/11/2021

Não há nada para ser alterado em seu codigo, talvez não está sendo utilizado corretamente como foi programado.
Espero que você esteja usando a função LoadHouse "parcialmente", no caso de um comando, compra de algo ou algo do tipo.
Caso seja quando o servidor iniciar, "não está correto" o seu codigo.

As alterações que fiz, foi apenas para deixar mais "limpo" seu codigo.
Código PHP:
stock LoadHouse(houseid)
{
    new 
Casa[50];
    
format(Casasizeof(Casa), "Casas/%d.ini"houseid);
    new 
string[600];
    if(
DOF2_FileExists(Casa))
    {
        new 
Float:XFloat:YFloat:Z;   
        if(
DOF2_GetInt(Casa"TemDono") == 0)
        {
            
PickHouse[houseid] = CreatePickup(127323XYZ);
            
format(stringsizeof(string), "{0000FF}Casa a Venda\n\n{0000FF}ID: {FFFFFF}%d\n{0000FF}Valor: {FFFFFF}%d\n{0000FF}/comprarcasa"houseidDOF2_GetInt(Casa"Valor"));
        }
        else
        {
            
PickHouse[houseid] = CreatePickup(127223XYZ);
            
format(stringsizeof(string), "{0000FF}Dono: {FFFFFF}%s\n{0000FF}ID: {FFFFFF}%d\n{0000FF}Ultimo Login: {FFFFFF}%d/%d/%d"DOF2_GetString(Casa"Dono"), houseidDOF2_GetInt(Casa"pDia"), DOF2_GetInt(Casa"pMes"), DOF2_GetInt(Casa"pAno"));

        }
        
DOF2_GetFloat(Casa"iconX");
        
DOF2_GetFloat(Casa"iconY");
        
DOF2_GetFloat(Casa"iconZ");
        
TextInfo[houseid] = Create3DTextLabel(string,0xFFFFFFAA,XYZ+0.7520.0,0);
        return 
1;
    }
    else
    {
        
format(stringsizeof string"Casa %d nãoé invalida ou não foi criada!"houseid);
        
SendClientMessageToAll(-1string);
        print(string);
    }
    return 
1;




RE: sistema de casa - MrThúúG - 02/11/2021

Código PHP:
static stock LoadHouse()
{
    new 
Casa[50];
    new 
string[300];
    new 
houseid 0;
    while(
houseid sizeof(Casa))
    {        
        
format(Casasizeof(Casa), "Casas/%d.ini",houseid);
        if(
DOF2_FileExists(Casa))
        {            
            new 
Float:XFloat:YFloat:Z;
            if(
DOF2_GetInt(Casa"TemDono") == 1)
            {                
                
PickHouse[houseid] = CreatePickup(1272,23,X,Y,Z);
                
format(stringsizeof(string), "{0000FF}Dono: {FFFFFF}%s\n{0000FF}ID: {FFFFFF}%d\n{0000FF}Ultimo Login: {FFFFFF}%d/%d/%d"DOF2_GetString(Casa"Dono"), houseidDOF2_GetInt(Casa"pDia"), DOF2_GetInt(Casa"pMes"), DOF2_GetInt(Casa"pAno"));
            }
            else
            {                
                
PickHouse[houseid] = CreatePickup(1318,23,X,Y,Z);
                
format(stringsizeof(string), "{0000FF}Casa a Venda\n\n{0000FF}ID: {FFFFFF}%d\n{0000FF}Valor: {FFFFFF}%d\n{0000FF}/comprarcasa"houseidDOF2_GetInt(Casa"Valor"));
            }
            
DOF2_GetFloat(Casa"iconX");
            
DOF2_GetFloat(Casa"iconY");
            
DOF2_GetFloat(Casa"iconZ");
            
TextInfo[houseid] = Create3DTextLabel(string,0xFFFFFFAA,XYZ+0.7520.0,0);
        }
        else
        {            
            
printf("Casa %d é invalida ou não foi criada!"houseid);
        }
        
houseid++;
    }
    return 
houseid;