Proxima casa
#1

Fiz o seguinte comando em SII:

pawn Код:
CMD:criarcasa(playerid, params[])
{
    new price, inte;
    new Float:X, Float:Y, Float:Z ;
    new pickupid;

    if(IsPlayerAdmin(playerid))
    {
        if(sscanf(params, "d", price, inte))
        {
            SendClientMessage (playerid, Cinza, "Use: /criarcasa [PREЗO] [INTERIOR]");
        }
        else
        {
            for(new i; i != pCasa; ++i) format(kString, sizeof(kString),"/Casas/%d.ini", i);

            GetPlayerPos(playerid, X, Y, Z);
            INI_WriteFloat("PosX", X);
            INI_WriteFloat("PosY", Y);
            INI_WriteFloat("PosZ", Z);

            INI_WriteInt("Int", inte);
            INI_WriteInt("Mundo", pCasa++);
            INI_WriteInt("TDono", 0);
            INI_WriteString("Dono", "Ninguem");
            INI_WriteInt("Preco", price);
            INI_WriteInt("Trancada", 0);
            INI_WriteInt("TMorador", 0);
            INI_WriteString("Morador", "Ninguem");

            pickupid = CreatePickup(1273, 1, INI_ReadFloat("PosX"), INI_ReadFloat("PosY"), INI_ReadFloat("PosZ"), -1);
            INI_WriteInt("ID", pickupid);
           
            pCasa++;
        }
    }
    else
    {
        SendClientMessage(playerid, ERRO, "| ERRO | Vocк nгo estб autorizado a usar este comando");
    }
    return 1;
}
Porйm, ele nгo cria a casa, nгo cria o arquivo INI com o ID da mesma e nгo cria o pickup.

O certo seria ele verificar o numero da ultima casa criada e criar o proximo numero sendo o ID dessa, e criar o pickup.

Mas ele nгo faz nada disso.

Nгo crasha o servidor nem nada, apenas nгo cria a casa.

Oque estб de errado no comando?
Reply
#2

Quote:
Originally Posted by yN3v!L
Посмотреть сообщение
Fiz o seguinte comando em SII:

pawn Код:
CMD:criarcasa(playerid, params[])
{
    new price, inte;
    new Float:X, Float:Y, Float:Z ;
    new pickupid;

    if(IsPlayerAdmin(playerid))
    {
        if(sscanf(params, "d", price, inte))
        {
            SendClientMessage (playerid, Cinza, "Use: /criarcasa [PREЗO] [INTERIOR]");
        }
        else
        {
            for(new i; i != pCasa; ++i) format(kString, sizeof(kString),"/Casas/%d.ini", i);

            GetPlayerPos(playerid, X, Y, Z);
            INI_WriteFloat("PosX", X);
            INI_WriteFloat("PosY", Y);
            INI_WriteFloat("PosZ", Z);

            INI_WriteInt("Int", inte);
            INI_WriteInt("Mundo", pCasa++);
            INI_WriteInt("TDono", 0);
            INI_WriteString("Dono", "Ninguem");
            INI_WriteInt("Preco", price);
            INI_WriteInt("Trancada", 0);
            INI_WriteInt("TMorador", 0);
            INI_WriteString("Morador", "Ninguem");

            pickupid = CreatePickup(1273, 1, INI_ReadFloat("PosX"), INI_ReadFloat("PosY"), INI_ReadFloat("PosZ"), -1);
            INI_WriteInt("ID", pickupid);
           
            pCasa++;
        }
    }
    else
    {
        SendClientMessage(playerid, ERRO, "| ERRO | Vocк nгo estб autorizado a usar este comando");
    }
    return 1;
}
Porйm, ele nгo cria a casa, nгo cria o arquivo INI com o ID da mesma e nгo cria o pickup.

O certo seria ele verificar o numero da ultima casa criada e criar o proximo numero sendo o ID dessa, e criar o pickup.

Mas ele nгo faz nada disso.

Nгo crasha o servidor nem nada, apenas nгo cria a casa.

Oque estб de errado no comando?
Nгo mecho com essa include, mas pelo que parece vocк nгo abriu arquivo nenhum, estб setando isso tudo a onde?
Tem que criar um arquivo e utilizar
pawn Код:
INI_Open("Casa.ini");
INI_Save();
INI_Close();
Creio eu, ou algo do tipo, tente fazer assim, mas nгo sei nгo, porque atй hoje eu sу mexi com DOF2 e Dini, mas vou comeзar estudar SII tambйm, й sempre bom saber mais




@Edit


Ae, fiz o sistema pra vocк, testei e funcionou direitinho, se quiser use ele, se nгo use para estudar, tб ae o sistema e algumas imagens, faзa bom aproveito
E vlw Aprendi SII agora, fбcil, fбcil. kkkkk'
Nгo se esqueзa de criar a pasta Casas
pawn Код:
#define MAX_CASAS 100//aumenta aqui pelo tanto de casas
new nCasas = 1, pickupcasa[MAX_CASAS],Text3D[MAX_CASAS][60];
CMD:hehe(playerid, params[])
{
    new interior,preco;
    if(sscanf(params,"dd", interior, preco)) return SendClientMessage(playerid,-1,"Use: /hehe [Int] [Preco]");
    new Float:Pos[3];
    GetPlayerPos(playerid, Pos[0],Pos[1], Pos[2]);
    new file[56],IDCasa;
    if(!INI_Exist("IDCasas.ini"))
    {
        if(INI_Open("IDCasas.ini"))
        {
            INI_WriteInt("ID",nCasas);
            INI_Save();
            INI_Close();
        }
    }
    if(INI_Open("IDCasas.ini"))
    {
        IDCasa = INI_ReadInt("ID");
        format(file,sizeof(file),"Casas/%d.ini", IDCasa);
        INI_Close();
    }
    if(INI_Open(file))
    {
        INI_WriteInt("Int", interior);
        INI_WriteInt("Preco", preco);
        INI_WriteFloat("PosX", Pos[0]);
        INI_WriteFloat("PosY", Pos[1]);
        INI_WriteFloat("PosZ", Pos[2]);
        pickupcasa[IDCasa] = CreatePickup(1273, 1, Pos[0],Pos[1],Pos[2], 0);
        format(Text3D[IDCasa], 60,"Casa a venda\nPreзo: %d", preco);
        Create3DTextLabel(Text3D[IDCasa],-1,Pos[0],Pos[1],Pos[2], 6,0,0);
        INI_Save();
        INI_Close();
        nCasas ++;
        if(INI_Open("IDCasas.ini"))
        {
            INI_WriteInt("ID", nCasas);
            INI_Save();
            INI_Close();
        }
    }
    return 1;
}
O comando й /hehe [Interior] [Preзo], muda pro que vocк quer e eu adicionei um 3DTextLabel informando a venda da casa.


Imagens


[Usando lvdm pra testar (fiz o sistema em FS rsrs)]

Casa ao ser criada:



Print da pasta ScriptFiles:



Print do arquivo IDCasas (onde й salvo o ID da ъltima casa criada)



Print do arquivo de uma das casas:



Print da pasta Casas com os arquivos de todas casas criadas:



E como diz a imagem acima, eu coloquei pra comeзar pelo ID 1, se quiser comeзar pelo 0 й sу trocar nCasas = 1, por nCasas,

OBS: Se vocк reparou na print do arquivo IDCasas o ID que estб й 2, e na print da pasta Casas existem 4 arquivos, entгo o IDCasas era pra estar em 5 que й o prуximo ID a ser usado. Mas nгo й bug nгo, й que a print da pasta Casas eu tirei bem depois, й que tava arrumando uma coisa e fiquei com preguiзa de tirar novos prints rsrs.
Reply
#3

pawn Код:
for(new i; i != pCasa; ++i) format(kString, sizeof(kString),"/Casas/%d.ini", i);
Reply
#4

Veja meu Post acima
Reply
#5

Quote:
Originally Posted by humildadeforever
Посмотреть сообщение
Nгo mecho com essa include, mas pelo que parece vocк nгo abriu arquivo nenhum, estб setando isso tudo a onde?
Tem que criar um arquivo e utilizar
pawn Код:
INI_Open("Casa.ini");
INI_Save();
INI_Close();
Creio eu, ou algo do tipo, tente fazer assim, mas nгo sei nгo, porque atй hoje eu sу mexi com DOF2 e Dini, mas vou comeзar estudar SII tambйm, й sempre bom saber mais




@Edit


Ae, fiz o sistema pra vocк, testei e funcionou direitinho, se quiser use ele, se nгo use para estudar, tб ae o sistema e algumas imagens, faзa bom aproveito
E vlw Aprendi SII agora, fбcil, fбcil. kkkkk'
Nгo se esqueзa de criar a pasta Casas
pawn Код:
#define MAX_CASAS 100//aumenta aqui pelo tanto de casas
new nCasas = 1, pickupcasa[MAX_CASAS],Text3D[MAX_CASAS][60];
CMD:hehe(playerid, params[])
{
    new interior,preco;
    if(sscanf(params,"dd", interior, preco)) return SendClientMessage(playerid,-1,"Use: /hehe [Int] [Preco]");
    new Float:Pos[3];
    GetPlayerPos(playerid, Pos[0],Pos[1], Pos[2]);
    new file[56],IDCasa;
    if(!INI_Exist("IDCasas.ini"))
    {
        if(INI_Open("IDCasas.ini"))
        {
            INI_WriteInt("ID",nCasas);
            INI_Save();
            INI_Close();
        }
    }
    if(INI_Open("IDCasas.ini"))
    {
        IDCasa = INI_ReadInt("ID");
        format(file,sizeof(file),"Casas/%d.ini", IDCasa);
        INI_Close();
    }
    if(INI_Open(file))
    {
        INI_WriteInt("Int", interior);
        INI_WriteInt("Preco", preco);
        INI_WriteFloat("PosX", Pos[0]);
        INI_WriteFloat("PosY", Pos[1]);
        INI_WriteFloat("PosZ", Pos[2]);
        pickupcasa[IDCasa] = CreatePickup(1273, 1, Pos[0],Pos[1],Pos[2], 0);
        format(Text3D[IDCasa], 60,"Casa a venda\nPreзo: %d", preco);
        Create3DTextLabel(Text3D[IDCasa],-1,Pos[0],Pos[1],Pos[2], 6,0,0);
        INI_Save();
        INI_Close();
        nCasas ++;
        if(INI_Open("IDCasas.ini"))
        {
            INI_WriteInt("ID", nCasas);
            INI_Save();
            INI_Close();
        }
    }
    return 1;
}
O comando й /hehe [Interior] [Preзo], muda pro que vocк quer e eu adicionei um 3DTextLabel informando a venda da casa.


Imagens


[Usando lvdm pra testar (fiz o sistema em FS rsrs)]

Casa ao ser criada:



Print da pasta ScriptFiles:



Print do arquivo IDCasas (onde й salvo o ID da ъltima casa criada)



Print do arquivo de uma das casas:



Print da pasta Casas com os arquivos de todas casas criadas:



E como diz a imagem acima, eu coloquei pra comeзar pelo ID 1, se quiser comeзar pelo 0 й sу trocar nCasas = 1, por nCasas,

OBS: Se vocк reparou na print do arquivo IDCasas o ID que estб й 2, e na print da pasta Casas existem 4 arquivos, entгo o IDCasas era pra estar em 5 que й o prуximo ID a ser usado. Mas nгo й bug nгo, й que a print da pasta Casas eu tirei bem depois, й que tava arrumando uma coisa e fiquei com preguiзa de tirar novos prints rsrs.
Sу nгo utilizo o seu, pois o do Los, que utilizo tem veнculo casa '-'
Mas ficou muito bom seu sistema de casa *-*
Reply
#6

Quote:
Originally Posted by Mercurio
Посмотреть сообщение
Sу nгo utilizo o seu, pois o do Los, que utilizo tem veнculo casa '-'
Mas ficou muito bom seu sistema de casa *-*
kkk, nossa! O do Lуs nem se compara ao meu. Fiz sу pra ajudar o carinha aн, ficou super simples e tals! Poderia atй fazer um melhorzinho, mas nunca ficarб igual ou melhor que o do Lуs, por tanto ninguйm usaria kkkk, vlw
Reply
#7

Nossa, obrigado mesmo, cara.
Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)