[Ajuda] Ajuda Casa
#1

Preciso de ajuda pra arruma uma funзгo que to criando no meu gm

e tipo quando o player compra a casa 3
ganha a chave do portгo 3

ai eu quero ajudar pra dar uma retornada no valor
olha no script que vou deixar em baixou !

pawn Code:
if(strcmp(cmd, "/comprarcasa", true) == 0)
    {
        new pickupid, iconid;

        for(new c = 0; c < MAX_CASAS; c++)
        {
            format(string, sizeof(string), PASTA_CASAS, c);
            if(dini_Exists(string))
            {
                if(IsPlayerInRangeOfPoint(playerid, 2.0, dini_Float(string, "PosX"), dini_Float(string, "PosY"), dini_Float(string, "PosZ")))
                {
                    if(dini_Int(string, "TDono") == 0)
                    {
                        if(GetPlayerGrana(playerid) >= dini_Int(string, "Preco"))
                        {
                            if(GetCasas(playerid) < 1)
                            {
                                if(dini_Int(file, "Level") > 119)
                                {
                                    dini_IntSet(string, "TDono", 1);
                                    dini_Set(string, "Dono", GetPlayerNameEx(playerid));
                                    GivePlayerGrana(playerid, -dini_Int(string, "Preco"));

                                    DestroyDynamicPickup(dini_Int(string, "Id"));

                                    pickupid = CreateDynamicPickup(1272, 1, dini_Float(string, "PosX"), dini_Float(string, "PosY"), dini_Float(string, "PosZ"), -1, -1, -1, 200.0);
                                   
                                    dini_IntSet(string, "3", pickupid); // como posso colocar uma funзгo aqui para retornar ?
                                    dini_IntSet(string, "4", pickupid);
                                    dini_IntSet(string, "5", pickupid);
                                    dini_IntSet(string, "6", pickupid);
                                    dini_IntSet(string, "7", pickupid); // tipo um return, mais quando eu coloco aparecer waring do codigo de baixo invalido
                                    else
                                    // e aqui um else pra ir pra outra opiзгo casa nгo tenha os id acima
                                    // Como posso arrumar isto aqui ?
                                    dini_IntSet(string, "Id", pickupid);


                                    DestroyDynamicMapIcon(dini_Int(string, "IconId"));

                                    iconid = CreateDynamicMapIcon(dini_Float(string, "PosX"), dini_Float(string, "PosY"), dini_Float(string, "PosZ"), 32, 0, -1, -1, -1, 100.0);
                                    dini_IntSet(string, "IconId", iconid);

                                    format(STRX, sizeof(STRX), "{33AAFF}Casa ID: {FFFFFF}%d\n{33AAFF}Dono: {FFFFFF}%s\n{33AAFF}Ъltimo Login: {FFFFFF}%s\n{33AAFF}Morador: {FFFFFF}%s\n{33AAFF}Valor: {FFFFFF}$%d", c, GetPlayerNameEx(playerid), dini_Get(string, "DataSet"), dini_Get(string, "Morador"), dini_Int(string, "Preco"));
                                    UpdateDynamic3DTextLabelText(ctextoid[c], -1, STRX);

                                    OnPlayerCommandText(playerid, "/nascercasa");
                                }
                                return SendClientMessage(playerid, Vermelho, "Vocк sу pode ter uma casa no level 120");
                            }
                            else
                            {
                                SendClientMessage(playerid, Vermelho, "Vocк sу pode ter uma casa!");
                                return 1;
                            }
                        }
                        else
                        {
                            SendClientMessage(playerid, Vermelho, "Vocк nгo tem dinheiro!");
                            return 1;
                        }
                    }
                    else
                    {
                        SendClientMessage(playerid, Vermelho, "Esta casa nгo estб a venda!");
                        return 1;
                    }
                }
            }
        }
        return 1;
    }
Reply
#2

poste o comando de dar chaves q vc citou no seu outro topico
https://sampforum.blast.hk/showthread.php?tid=491742
Reply
#3

Quote:
Originally Posted by lucas_mdr1235
View Post
poste o comando de dar chaves q vc citou no seu outro topico
https://sampforum.blast.hk/showthread.php?tid=491742
ta aqui

pawn Code:
if(strcmp(cmd, "/darchave", true) == 0)
    {
        new plid, id;

        if(sscanf(cmdtext, "s[10]ud", cmd, plid, id))
        {
            SendClientMessage(playerid, Vermelho, "/darchave [id] [portгo-id]");
            return 1;
        }
        if(pAdmin[playerid] > 1)
        {
            format(file, sizeof(file), PASTA_PORTOES, id);
            if(dini_Exists(file))
            {
                if(dini_Int(file, "TDono") == 0)
                {
                    dini_Set(file, "Dono", GetPlayerNameEx(plid));
                    dini_IntSet(file, "TDono", 1);

                    format(string, sizeof(string), "O(A) ADM %s te deu a chave do portгo: %d", GetPlayerNameEx(playerid), id);
                    SendClientMessage(plid, Blue, string);

                    SendClientMessage(playerid, Verde, "Comando efetuado com sucesso!");
                }
                else
                {
                    SendClientMessage(playerid, Vermelho, "Este portгo jб tem dono!");
                }
            }
            else
            {
                SendClientMessage(playerid, Vermelho, "Portгo invбlido, tente novamente!");
            }
        }
        else
        {
            SendClientMessage(playerid, Vermelho, "Vocк nгo tem permissгo.");
        }
        return 1;
Reply
#4

ja ta salvando deve ser algum problema em carregar os arquivos
Reply
#5

Testa ae amigo se pegar me fala Coloquei a Chave Pra salvar No Boneco assim vai fica mais facil de voce fazer a verificaзгo

Code:
if(strcmp(cmd, "/comprarcasa", true) == 0)
    {
        new pickupid, iconid;

        for(new c = 0; c < MAX_CASAS; c++)
        {
            format(string, sizeof(string), PASTA_CASAS, c);
            if(dini_Exists(string))
            {
            new pname[MAX_PLAYER_NAME];
            GetPlayerName(playerid, pname, sizeof(pname));
                if(IsPlayerInRangeOfPoint(playerid, 2.0, dini_Float(string, "PosX"), dini_Float(string, "PosY"), dini_Float(string, "PosZ")))
                {
                    if(dini_Int(string, "TDono") == 0)
                    {
                        if(GetPlayerGrana(playerid) >= dini_Int(string, "Preco"))
                        {
                            if(GetCasas(playerid) < 1)
                            {
                                if(dini_Int(file, "Level") > 119) return SendClientMessage(playerid, Vermelho, "Vocк sу pode ter uma casa no level 120");

                                    dini_IntSet(string, "TDono", 1);
                                    dini_Set(string, "Dono", pname);
                                    GivePlayerGrana(playerid, -dini_Int(string, "Preco"));

                                    DestroyDynamicPickup(dini_Int(string, "Id"));

                                    pickupid = CreateDynamicPickup(1272, 1, dini_Float(string, "PosX"), dini_Float(string, "PosY"), dini_Float(string, "PosZ"), -1, -1, -1, 200.0);

                                   new pname[MAX_PLAYER_NAME];
                                   GetPlayerName(playerid, pname, sizeof(pname));
                                   format(file, sizeof(file), PASTA_CONTAS, pname);

                                    dini_IntSet(file, "Chave", c); // esse ' C ' e o id da casa ex casa id 3 vai fica chave 3
                                    dini_IntSet(string, "Id", pickupid);


                                    DestroyDynamicMapIcon(dini_Int(string, "IconId"));

                                    iconid = CreateDynamicMapIcon(dini_Float(string, "PosX"), dini_Float(string, "PosY"), dini_Float(string, "PosZ"), 32, 0, -1, -1, -1, 100.0);
                                    dini_IntSet(string, "IconId", iconid);

                                    format(STRX, sizeof(STRX), "{33AAFF}Casa ID: {FFFFFF}%d\n{33AAFF}Dono: {FFFFFF}%s\n{33AAFF}Ъltimo Login: {FFFFFF}%s\n{33AAFF}Morador: {FFFFFF}%s\n{33AAFF}Valor: {FFFFFF}$%d", c, GetPlayerNameEx(playerid), dini_Get(string, "DataSet"), dini_Get(string, "Morador"), dini_Int(string, "Preco"));
                                    UpdateDynamic3DTextLabelText(ctextoid[c], -1, STRX);

                                    OnPlayerCommandText(playerid, "/nascercasa");
                            }
                            else
                            {
                                SendClientMessage(playerid, Vermelho, "Vocк sу pode ter uma casa!");
                                return 1;
                            }
                        }
                        else
                        {
                            SendClientMessage(playerid, Vermelho, "Vocк nгo tem dinheiro!");
                            return 1;
                        }
                    }
                    else
                    {
                        SendClientMessage(playerid, Vermelho, "Esta casa nгo estб a venda!");
                        return 1;
                    }
                }
            }
        }
        return 1;
    }
Aqui esta amigo voce setara a chave no player depois no cmd de abrir o portao coloca uma verificaзгo se o player ta com o id da chave ou nao

Code:
	if(strcmp(cmd, "/darchave", true) == 0)    {
    if(pAdmin[playerid] > 1){
    new plid, id;
    if(sscanf(cmdtext, "s[10]ud", cmd, plid, id))
    {
      SendClientMessage(playerid, Vermelho, "/darchave [id] [portгo-id]");
      return 1;
    }
	new pname[MAX_PLAYER_NAME];
	GetPlayerName(plid, pname, sizeof(pname)); // mandara pro play que voce coloco o id
	format(file, sizeof(file), PASTA_CONTAS, pname);
    if(dini_Exists(file))
	{
      dini_IntSet(file, "Chave", id); // dara a Chave ao player igual no comprarcasa ..
      format(string, sizeof(string), "O(A) ADM %s te deu a chave do portгo: %d", GetPlayerNameEx(playerid), id);
      SendClientMessage(plid, Blue, string);
      SendClientMessage(playerid, Verde, "Comando efetuado com sucesso!");
    }
    }
    }else{
    SendClientMessage(playerid, Vermelho, "Vocк nгo tem permissгo.");
    }
    return 1;
    }
Vo da uma Base depois coloca do jeito que voce quiser

Code:
	if(strcmp(cmd, "/abrirportao", true) == 0)    {
	new pname[MAX_PLAYER_NAME];
	GetPlayerName(playerid, pname, sizeof(pname));
	format(file, sizeof(file), PASTA_CONTAS, pname);
	for(new c = 0; c < MAX_CASAS; c++)
	{
	format(string, sizeof(string), "/Casas/casa%d.ini", c);
    if(dini_Int(file, "Chave") == c ){ // se ele tiver a chave ele vai conseguir ter acesso
    // portao
   // messagem
    }
    }
    }
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)