SA-MP Forums Archive
[Ajuda] Problema com Loop - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Português/Portuguese (https://sampforum.blast.hk/forumdisplay.php?fid=34)
+---- Thread: [Ajuda] Problema com Loop (/showthread.php?tid=617478)



Problema com Loop - FernandoDutra - 21.09.2016

Oi gente, tudo bem? Entгo, hoje eu reparei em uma coisa, em uma Gamemode que estou fazendo do zero, que, na funзгo para carregar arquivos criados, ele cria meio que um fantasma, e creio que seja problema com o loop.

Caso nгo tenha entendido, exemplo:

Existe um arquivo "A" criado bonitinho na pasta "Fulando", porйm, ao ligar o servidor, aparece que foram carregados 2 arquivos.

Alguйm poderia me ajudar? E se nгo tiverem muito ocupados, poderia me explicar ou passar um tуpico explicando as funзхes do Loop.

PHP код:
stock GetHouses()
{
    new 
file[60];
    for(new 
1sizeof(HouseInfo) ; i++)
    {
         
format(file,sizeof(file), "Houses/%i.ini",i);
           if(!
DOF2_FileExists(file)) return i;
    }
    return -
1;

Observaзгo: Essa funзгo, й utilizada para a criaзгo/carregamento de arquivos das casas.
ObservaзгoІ: Caso precisem do outro cуdigo de carregamento, pois nele, tambйm se utiliza um loop me digam, mais creio que seja nessa stock que passei para vocкs.


Respuesta: Problema com Loop - SammyJ - 21.09.2016

estб funзгo

PHP код:
stock GetHouses()
{
    new 
file[60];
    for(new 
1sizeof(HouseInfo) ; i++)
    {
         
format(file,sizeof(file), "Houses/%i.ini",i);
           if(!
DOF2_FileExists(file)) return i;
    }
    return -
1;

ele vai fazer um loop para saber se o arquivo existe, ou seja, no primeiro aquivo que ele encontrar que exista ele vai retornar o valor "i" e vai parar o loop.

Poste o carregamento das casas!


Re: Respuesta: Problema com Loop - FernandoDutra - 21.09.2016

Quote:
Originally Posted by Glederson_dom
Посмотреть сообщение
estб funзгo

PHP код:
stock GetHouses()
{
    new 
file[60];
    for(new 
1sizeof(HouseInfo) ; i++)
    {
         
format(file,sizeof(file), "Houses/%i.ini",i);
           if(!
DOF2_FileExists(file)) return i;
    }
    return -
1;

ele vai fazer um loop para saber se o arquivo existe, ou seja, no primeiro aquivo que ele encontrar que exista ele vai retornar o valor "i" e vai parar o loop.

Poste o carregamento das casas!
PHP код:
stock LoadHouses()
{
    new 
id GetHouses();
    for(new 
1idi++)
    {
        new 
file[80];
        
format(filesizeof(file), Housesi);
        if(
DOF2_FileExists(file))
        
format(HouseInfo[i][Owner], 200"%s"DOF2_GetString(file"Owner"));
        
format(HouseInfo[i][Adress], 200"%s"DOF2_GetString(file"Adress"));
        
HouseInfo[i][Owned] = DOF2_GetInt(file"Owned");
        
HouseInfo[i][Price] = DOF2_GetInt(file"Price");
        
HouseInfo[i][EnterX] = DOF2_GetFloat(file"EnterX");
        
HouseInfo[i][EnterY] = DOF2_GetFloat(file"EnterY");
        
HouseInfo[i][EnterZ] = DOF2_GetFloat(file"EnterZ");
        
HouseInfo[i][EnterA] = DOF2_GetFloat(file"EnterA");
        
HouseInfo[i][ExitX] = DOF2_GetFloat(file"ExitX");
        
HouseInfo[i][ExitY] = DOF2_GetFloat(file"ExitY");
        
HouseInfo[i][ExitZ] = DOF2_GetFloat(file"ExitZ");
        
HouseInfo[i][ExitA] = DOF2_GetFloat(file"ExitA");
        
HouseInfo[i][EnterInt] = DOF2_GetInt(file"EnterInt");
        
HouseInfo[i][EnterVW] = DOF2_GetInt(file"EnterVW");
        
HouseInfo[i][ExitInt] = DOF2_GetInt(file"ExitInt");
        
HouseInfo[i][ExitVW] = DOF2_GetInt(file"ExitVW");
        
HouseInfo[i][Locked] = DOF2_GetInt(file"Locked");
        if(
HouseInfo[i][Owned])
        {
            
HouseInfo[i][PickupID] = CreatePickup(12721HouseInfo[i][ExitX], HouseInfo[i][ExitY], HouseInfo[i][ExitZ], 0);
            
HouseInfo[i][Owned] = 1;
        }
        else
        {
            
HouseInfo[i][PickupID] = CreatePickup(12731HouseInfo[i][ExitX], HouseInfo[i][ExitY], HouseInfo[i][ExitZ], 0);
            
HouseInfo[i][Owned] = 0;
        }
    }
    
printf("Fort Carson Roleplay - Casas Carregadas %d"id);
    return 
1;

Tб aqui amigo! Entгo, o carregamento tem que comeзar do ID 1 atй o ID da ultima casa criada.


Respuesta: Problema com Loop - SammyJ - 21.09.2016

Essa funзгo retornara quantos arquivos estiver na pasta Houses.
PHP код:
stock GetHouses()
{
    new
        
file[60], houses;
    for(new 
1<= sizeof(HouseInfo) ; i++)
    {
         
format(file,sizeof(file), "Houses/%i.ini",i);
           if(
DOF2_FileExists(file))houses++;
    }
    return 
houses;




Re: Respuesta: Problema com Loop - FernandoDutra - 21.09.2016

Quote:
Originally Posted by Glederson_dom
Посмотреть сообщение
PHP код:
stock GetHouses()
{
    new
        
file[60], houses;
    for(new 
1sizeof(HouseInfo) ; i++)
    {
         
format(file,sizeof(file), "Houses/%i.ini",i);
           if(!
DOF2_FileExists(file))houses++;
    }
    return 
houses;

Entгo, apareceu no prompt de comando, quando liga o serve, que carregou 231 casas, sendo que possui apenas 68 criadas.

@edit

Falando que tem agora 232 criadas.


Respuesta: Problema com Loop - SammyJ - 21.09.2016

@corrigido edit a cima!


Re: Respuesta: Problema com Loop - FernandoDutra - 21.09.2016

Quote:
Originally Posted by Glederson_dom
Посмотреть сообщение
@corrigido edit a cima!
Arrumei maninho, se reparar, ali em

PHP код:
if(!DOF2_FileExists(file)) 
seria para verificar se o arquivo estar realmente criado, e se nгo estivesse, retornava por padrгo DOF2_CreateFile

sу que eu troquei o "!"

PHP код:
if(DOF2_FileExists(file)) 
E carregou corretamente.