[Ajuda] Ajuda sistema de casas
#1

Boa noite, estou criando um sistema de casas aqui, e estou com um probleminha '-', quando digito o comando de criar as casas, ele criar normal do ID 0 atй o que eu parar, mas se eu reiniciar o servidor, e digita /ccasa (comando de criar a casa), as casas comeзam a criar a partir do ID 0 novamente, mas sem deletar os antigos, podem me ajudar?

CriarCasa stock
pawn Код:
stock CriarCasa(nome[], Float: X, Float: Y, Float: Z, Preco, Venda)
{
    new Arquivo[124];
    new ID = ContagemCasas;
    new CasaTexto[64];
    format(Arquivo, sizeof (Arquivo), "Casas/Casa %d.ini", ID);
    ContagemCasas ++;
    CasaInfor[ID][PropExist] = 1;
    CasaInfor[ID][cStatus] = 1;
    CasaInfor[ID][cPos][0] = X;
    CasaInfor[ID][cPos][1] = Y;
    CasaInfor[ID][cPos][2] = Z;
    CasaInfor[ID][cPreco] = Preco;
    CasaInfor[ID][cComprada] = Venda;
    CasaInfor[ID][cDono] = -1;
    format(CasaInfor[ID][cNome], 60, "%s", nome);
    CasaPickup[ID] =  CreatePickup(1273, 1, X, Y, Z);
    format(CasaTexto, sizeof(CasaTexto), "Casa: %d\nNome: %s\nPreco: %d\nStatus: Liberda", ID, CasaInfor[ID][cNome], CasaInfor[ID][cPreco]);
    CasaText[ID] = Create3DTextLabel(CasaTexto, 0x00FF00FF, X, Y, Z, 20.0, 0, 0);
    DOF2_CreateFile(Arquivo);
   
    DOF2_SetInt(Arquivo, "Casa Existe", CasaInfor[ID][PropExist]);
    DOF2_SetInt(Arquivo, "Casa Status", CasaInfor[ID][cStatus]);
    DOF2_SetInt(Arquivo, "Casa Preco", CasaInfor[ID][cPreco]);
    DOF2_SetInt(Arquivo, "Casa Comprada", CasaInfor[ID][cComprada]);

    DOF2_SetString(Arquivo, "Casa Dono", CasaInfor[ID][cDono]);
    DOF2_SetString(Arquivo, "Casa Nome", CasaInfor[ID][cNome]);

    DOF2_SetFloat(Arquivo, "CasaX", X);
    DOF2_SetFloat(Arquivo, "CasaY", Y);
    DOF2_SetFloat(Arquivo, "CasaZ", Z);
    DOF2_SaveFile();
    //SalvarCasas(ID);
    return 1;
}
CriarCasa CMD

pawn Код:
CMD:ccasa(playerid, params[])
{
    new preco, status, CasaInf[24];
    new ID = ContagemCasas;
    new Float:gPos[3];
    GetPlayerPos(playerid, gPos[0], gPos[1], gPos[2]);
    if(sscanf(params, "id", preco, status))return SendClientMessage(playerid, -1, "Uso: /ccasa [preco][status]");
    format(CasaInf, sizeof(CasaInf), "Casa ID: %d", ID);
    CriarCasa("Casa Nova", gPos[0], gPos[1], gPos[2], preco, status);
    return 1;
}
Reply
#2

Ajudem pfv @malz double й duvida cruel isso
Reply
#3

Ao iniciares o servidor vais buscar as casas ao ficheiro certo? Quando fazes isso vais procurar qual o ultimo id nesse ficheiro e atribuir esse valor+1 ao ContagemCasas
Reply
#4

Vocк pode criar uma variбvel global para contar o total de casas. Quando o servidor й iniciado, quando estiver carregando as casas, essa variбvel vai aumentando. Quando for criar a casa usa a variбvel para pegar o prуximo ID.

Ex:
PHP код:
new totalcasas;

// Quando tiver carregando as casas

++totalcasas
Reply
#5

Quote:
Originally Posted by RiqueP
Посмотреть сообщение
Vocк pode criar uma variбvel global para contar o total de casas. Quando o servidor й iniciado, quando estiver carregando as casas, essa variбvel vai aumentando. Quando for criar a casa usa a variбvel para pegar o prуximo ID.

Ex:
PHP код:
new totalcasas;
// Quando tiver carregando as casas
++totalcasas
Nгo entendi pera, eu vou criar uma var global para controlar a quantidade de casas e vou atribuir valores a essa var de acordo com a quantidade de casas mas isso ja foi feito
Reply
#6

Quote:
Originally Posted by focaximubh
Посмотреть сообщение
Nгo entendi pera, eu vou criar uma var global para controlar a quantidade de casas e vou atribuir valores a essa var de acordo com a quantidade de casas mas isso ja foi feito
Crie um var e a cada volta no loop vocк add +1 a variбvel assim vocк vai ter os ids armazenados na variбvel assim vocк cria as casas de acordo com o nъmero obtido exemplo 51 vocк irб criar a casa com o idioma 52.
Reply
#7

Quote:
Originally Posted by Whoo
Посмотреть сообщение
Crie um var e a cada volta no loop vocк add +1 a variбvel assim vocк vai ter os ids armazenados na variбvel assim vocк cria as casas de acordo com o nъmero obtido exemplo 51 vocк irб criar a casa com o idioma 52.
nunca faзam isso.... imagina que por acaso eliminaste a casa id 24 quando tinhas 50 casas, vai te dar 49 casas ao adicionares outra ficas com 2 casas com id 50...

O que tens que fazer й quando carregas as casas vкs qual й o id maior e atribuis esse valor +1 а variбvel global...
Reply
#8

Nada estб dando certo ¬¬ estou tentando as formas que todos disseram...
Reply
#9

Verdade nгo tinha pensado nisso.
Reply
#10

Quote:
Originally Posted by Kimossab
Посмотреть сообщение
nunca faзam isso.... imagina que por acaso eliminaste a casa id 24 quando tinhas 50 casas, vai te dar 49 casas ao adicionares outra ficas com 2 casas com id 50...

O que tens que fazer й quando carregas as casas vкs qual й o id maior e atribuis esse valor +1 а variбvel global...
Realmente, mas existe tambйm mais 2 formas.

1° Ele pode criar uma stock para localizar um ID invбlido.
2° Ele pode fazer o mesmo esquema, e em vкs de usar
PHP код:
++totalcasas
Pode usar
PHP код:
// Digamos que "i" seja o ID da casa que estб sendo carregada.
totalcasas 1
@EDIT

Exemplo da 1° forma
PHP код:
stock AcharID()
{
    for(new 
0MAX_CASAS; ++i)
    {
        if(
Casa[i][Valor] == 0)
        {
            return 
i;
        }
    }
    return -
1;

Variбveis inteiras vem por padrгo com o valor 0. Nгo creio que vocк vб sair criando casas grбtis, entгo vocк pode usar а variбvel do preзo da casa para ver se ela existe ou nгo.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)