[Ajuda] sistema casa!
#1

gente alguem me ajuda , eu quero que a pessoa pode so comprar uma casa! tipo no meu gm da pra ter quantas quiser ai eu quero que da pra comprar so uma , o cmd de comprar casar e assim ,
Код:
public OnPlayerCommandText(playerid,cmdtext[])
{
    printf("OnplayerCommandtext playerid %d cmdtext %s",playerid,cmdtext);
	foreach(Player, i) {
 	dcmd(comprarcasa,11,cmdtext);
  	dcmd(vendercasa,10,cmdtext);
   	dcmd(fecharcasa,10,cmdtext);
   	dcmd(abrircasa,9,cmdtext);
    dcmd(comandoscasa,12,cmdtext);
    dcmd(infocasa,8,cmdtext);
    dcmd(veiculodacasa,13,cmdtext);
    dcmd(respawnveiculocasa,18,cmdtext);
    dcmd(comandosveiculocasa,19,cmdtext);
    dcmd(comandosveiculo2,16,cmdtext);
    dcmd(comandosveiculo3,16,cmdtext);
    dcmd(liberarcasa,11,cmdtext);
    dcmd(entrarcasa,10,cmdtext);
    dcmd(saircasa,8,cmdtext);
    dcmd(casaveiculo,11,cmdtext);
    dcmd(ircasa, 6, cmdtext);
    dcmd(setaluguel,10,cmdtext);
    dcmd(alugarcasa,10,cmdtext);
    dcmd(desalugarcasa,13,cmdtext);
    dcmd(removermorador,14,cmdtext);
o ploblema q so o comandos da casa e assim , n sei mudar esse.
Reply
#2

Quando o player comprar casa use Dini ou DOF2 para salvar que ele tem casa.
pawn Код:
CMD:comprarcasa(playerid, params[])
{
    new file[50],nome[24];
    GetPlayerName(playerid,nome,24);
    format(file, sizeof file,"Local_Contas/%s.ini",nome);//formata o local e o nome do arquivo.
    if(DOF2_GetInt(file,"TCasa") == 0)//verifica se tem casa,caso tenha retorna a falso
    {
        DOF2_SetInt(file,"TCasa",1);// seta que tem uma casa
        SendClientMessage(playerid,-1,"Vocк comprou uma casa.");  
    }
    else//retorna a falso
    {
        SendClientMessage(playerid,-1,"Vocк tem uma casa.");  //envia mensagem que tem casa
    }
    return 1;
}
Reply
#3

Quote:

Quando o player comprar casa use Dini ou DOF2 para salvar que ele tem casa.
pawn Code:

Код:
CMD:comprarcasa(playerid, params[])
{
    new file[50],nome[24];
    GetPlayerName(playerid,nome,24);
    format(file, sizeof file,"Local_Contas/%s.ini",nome);//formata o local e o nome do arquivo.
    if(DOF2_GetInt(file,"TCasa") == 0)//verifica se tem casa,caso tenha retorna a falso
    {
        DOF2_SetInt(file,"TCasa",1);// seta que tem uma casa
        SendClientMessage(playerid,-1,"Vocк comprou uma casa.");  
    }
    else//retorna a falso
    {
        SendClientMessage(playerid,-1,"Vocк tem uma casa.");  //envia mensagem que tem casa
    }
    return 1;
}

Deu esses erros man , sabe tirar ?

Код:
(7116) : error 017: undefined symbol "comprarcasa"
(7118) : warning 219: local variable "file" shadows a variable at a preceding level
(7121) : error 017: undefined symbol "DOF2_GetInt"
(7123) : error 017: undefined symbol "DOF2_SetInt"
(7134) : warning 225: unreachable code
(7116) : warning 203: symbol is never used: "CMD"
Reply
#4

[pawn
(7121) : error 017: undefined symbol "DOF2_GetInt"
(7123) : error 017: undefined symbol "DOF2_SetInt"]
[/pawn]
pawn Код:
//topo do Gm
#include DOF2
Vocк copiou o comando inteiro?
Se copiou e nгo tiver a include zcmd pode dar erro.
Reply
#5

ae se eu colocar a incluide DOF2 o gm fica cheio de erros. acho pq tem dini

#EDIT
Код:
 if(strcmp(cmd, "/comprarcasa", true) == 0) {
	{
    new file[50],nome[24];
    GetPlayerName(playerid,nome,24);
    format(file, sizeof file,"PASTA_CONTAS/%s.ini",nome);//formata o local e o nome do arquivo.
    if(dini_Set(file,"TCasa") == 0)//verifica se tem casa,caso tenha retorna a falso
    {
        dini_Set(file,"TCasa",1);// seta que tem uma casa
        SendClientMessage(playerid,-1,"Vocк comprou uma casa.");
    }
    else//retorna a falso
    {
        SendClientMessage(playerid,-1,"Vocк jб tem uma casa.");  //envia mensagem que tem casa
    }
    return 1;
	}
TENTEI ASSIM MAIS MESMO ASSIM DA ERRO
Reply
#6

AAA MAN ACHEI O COMANDO DE COMPRAR CASA. VER SE VC CONSEGUE ARRUMAR .


Код:
dcmd_comprarcasa(playerid,params[])
{
   #pragma unused params
   	new timestamp = GetTickCount();
	if(timestamp - inhousepickup[playerid] > 5000)
	{
    		SendClientMessage(playerid, Vermelho, " | ERRO | Vocк nгo estб em uma casa.");
    		return 1;
	}
    new str[128],pname[24];
    GetPlayerName(playerid, pname, 24);
    format(STRX, sizeof(STRX), "Casas/Usuarios/%s", pname);
    GetPlayerName(playerid, pname, sizeof(pname));
    format(file, sizeof(file), PASTA_CONTAS, pname);
    new grana;
    grana = dini_Int(file, "SaldoBancario");
    dini_IntSet(file, "TemCasa", 0);
	if(dini_Exists(STRX))
	{
	if (dini_Int(STRX, "Casaid")!=-255) return SendClientMessage(playerid, Vermelho, " | ERRO | Vocк jб tem uma casa.");
	}
	format(STRX, sizeof(STRX), "Casas/Casaid%d", playericonhouse[playerid]);
	if (strcmp(hInfo[playericonhouse[playerid]][aName],"Ninguem",true)) return SendClientMessage(playerid, Vermelho, " | ERRO | Esta casa jб tem dono.");
    if(grana > hInfo[playericonhouse[playerid]][Cost]){
	format(str,sizeof(str),"(CASA) Vocк comprou a casa nъmero '%d'.", hInfo[playericonhouse[playerid]][Casaid]);
	SendClientMessage(playerid,0x1E90FFAA,str);
	print(str);
    dini_IntSet(STRX, "TemDono", 1);
    new ano,mes,dia;
    new string[266];
    getdate(ano, mes, dia);
    format(string, sizeof(string), " (%d/%d/%d)", dia,mes,ano);
    dini_Set(STRX, "Login", string);
    format(hInfo[playericonhouse[playerid]][Login],255, string);
	dini_IntSet(file, "SaldoBancario", dini_Int(file, "SaldoBancario")-hInfo[playericonhouse[playerid]][Cost]);
    PlayerInfo[playerid][pTcasa] = 1;
	dini_Set(STRX, "Name", pname);
    hInfo[playericonhouse[playerid]][aName]=pname;
   	hInfo[playericonhouse[playerid]][Locked] = 0;
    new Float:sy, Float:sx, Float:sz;
    GetPlayerPos(playerid, sx,sy,sz);
	dini_FloatSet(STRX, "SpawnX", sx);
	dini_FloatSet(STRX, "SpawnY", sy);
	dini_FloatSet(STRX, "SpawnZ", sz);
    new nome[MAX_PLAYER_NAME];
   	GetPlayerName(playerid, nome, sizeof(nome));
	format(STRX, sizeof(STRX), "Casas/Usuarios/%s", nome);
	if (!dini_Exists(STRX)) dini_Create(STRX);
	dini_IntSet(STRX, "Houseid", playericonhouse[playerid]);
	if(!dini_Isset(STRX,"Rentid"))
	{
		dini_IntSet(STRX, "Rentid", -255);
	}
	GetPlayerPos(playerid, sx,sy,sz);
	dini_FloatSet(STRX, "SpawnX", sx);
	dini_FloatSet(STRX, "SpawnY", sy);
	dini_FloatSet(STRX, "SpawnZ", sz);
	dini_IntSet(STRX, "SpawnInt", GetPlayerInterior(playerid));
    dini_IntSet(STRX, "Luz", 0);
    dini_IntSet(STRX, "Agua", 0);
	DestroyPickup(HousePickup[playericonhouse[playerid]]);
	HousePickup[playericonhouse[playerid]] = CreatePickup(1272, 23, hInfo[playericonhouse[playerid]][iconx], hInfo[playericonhouse[playerid]][icony], hInfo[playericonhouse[playerid]][iconz]);
	format(STRX, sizeof(STRX), " | CASA | O jogador %s, comprou a casa nъmero '%d'.",pname,hInfo[playericonhouse[playerid]][Casaid]);
    SendClientMessageToAll(Branco,STRX);
    foreach(Player, i)
    {
	RemovePlayerMapIcon(i, housemapicon[playerid]);
    housemapicon[playerid] = SetPlayerMapIcon(i,32,hInfo[playericonhouse[playerid]][iconx], hInfo[playericonhouse[playerid]][icony], hInfo[playericonhouse[playerid]][iconz],32,0xFF0000AA);
    }
    } else {
    SendClientMessage(playerid, Vermelho," | ERRO | Vocк nгo tem esse dinheiro em seu banco.");
    }
    return 1;
    }

TEM UMA PARTE QUE FALA QUE O JOGADOR JA TEM UMA CASA , MAIS NA HORA QUE VO TESTA LA NAO APARECE A MENSAGEM.
Reply
#7

O diretorio do arquivos do jogadores й "Contas/%s.ini" ?
Reply
#8

#resolvido man , fiquei esse tempo todo tentando resolver isso e o problema era so cria uma pasta chamada Usuarios dentro da pasta Contas , dessa vez eu mosquei , mais obrg por ter me ajudado ok,rs vc e o melhor man. sempre me ajudo vlws
Reply
#9

Tente:
pawn Код:
dcmd_comprarcasa(playerid,params[])
{
   #pragma unused params
    new timestamp = GetTickCount();
    if(timestamp - inhousepickup[playerid] > 5000)
    {
            SendClientMessage(playerid, Vermelho, " | ERRO | Vocк nгo estб em uma casa.");
            return 1;
    }
    new str[128],pname[24];
    GetPlayerName(playerid, pname, 24);
    format(STRX, sizeof(STRX), "Casas/Usuarios/%s", pname);
    GetPlayerName(playerid, pname, sizeof(pname));
    format(file, sizeof(file), PASTA_CONTAS, pname);
    new grana;
    grana = dini_Int(file, "SaldoBancario");
    if(dini_Int(file,"TemCasa") == 0)
    {
        SendClientMessage(playerid, Vermelho, " | ERRO | Vocк jб tem uma casa.");
        return 1;
    }
    //dini_IntSet(file, "TemCasa", 0);
    /*if(dini_Exists(STRX))
    {
    if (dini_Int(STRX, "Casaid")!=-255) return SendClientMessage(playerid, Vermelho, " | ERRO | Vocк jб tem uma casa.");
    }*/

    format(STRX, sizeof(STRX), "Casas/Casaid%d", playericonhouse[playerid]);
    if (strcmp(hInfo[playericonhouse[playerid]][aName],"Ninguem",true)) return SendClientMessage(playerid, Vermelho, " | ERRO | Esta casa jб tem dono.");
    if(grana > hInfo[playericonhouse[playerid]][Cost]){
    format(str,sizeof(str),"(CASA) Vocк comprou a casa nъmero '%d'.", hInfo[playericonhouse[playerid]][Casaid]);
    SendClientMessage(playerid,0x1E90FFAA,str);
    print(str);
    dini_IntSet(STRX, "TemDono", 1);
    new ano,mes,dia;
    new string[266];
    getdate(ano, mes, dia);
    format(string, sizeof(string), " (%d/%d/%d)", dia,mes,ano);
    dini_Set(STRX, "Login", string);
    format(hInfo[playericonhouse[playerid]][Login],255, string);
    dini_IntSet(file, "SaldoBancario", dini_Int(file, "SaldoBancario")-hInfo[playericonhouse[playerid]][Cost]);
    PlayerInfo[playerid][pTcasa] = 1;
    dini_IntSet(file, "TemCasa", 1);// Alteraзгo aqui
    dini_Set(STRX, "Name", pname);
    hInfo[playericonhouse[playerid]][aName]=pname;
    hInfo[playericonhouse[playerid]][Locked] = 0;
    new Float:sy, Float:sx, Float:sz;
    GetPlayerPos(playerid, sx,sy,sz);
    dini_FloatSet(STRX, "SpawnX", sx);
    dini_FloatSet(STRX, "SpawnY", sy);
    dini_FloatSet(STRX, "SpawnZ", sz);
    new nome[MAX_PLAYER_NAME];
    GetPlayerName(playerid, nome, sizeof(nome));
    format(STRX, sizeof(STRX), "Casas/Usuarios/%s", nome);
    if (!dini_Exists(STRX)) dini_Create(STRX);
    dini_IntSet(STRX, "Houseid", playericonhouse[playerid]);
    if(!dini_Isset(STRX,"Rentid"))
    {
        dini_IntSet(STRX, "Rentid", -255);
    }
    GetPlayerPos(playerid, sx,sy,sz);
    dini_FloatSet(STRX, "SpawnX", sx);
    dini_FloatSet(STRX, "SpawnY", sy);
    dini_FloatSet(STRX, "SpawnZ", sz);
    dini_IntSet(STRX, "SpawnInt", GetPlayerInterior(playerid));
    dini_IntSet(STRX, "Luz", 0);
    dini_IntSet(STRX, "Agua", 0);
    DestroyPickup(HousePickup[playericonhouse[playerid]]);
    HousePickup[playericonhouse[playerid]] = CreatePickup(1272, 23, hInfo[playericonhouse[playerid]][iconx], hInfo[playericonhouse[playerid]][icony], hInfo[playericonhouse[playerid]][iconz]);
    format(STRX, sizeof(STRX), " | CASA | O jogador %s, comprou a casa nъmero '%d'.",pname,hInfo[playericonhouse[playerid]][Casaid]);
    SendClientMessageToAll(Branco,STRX);
    foreach(Player, i)
    {
    RemovePlayerMapIcon(i, housemapicon[playerid]);
    housemapicon[playerid] = SetPlayerMapIcon(i,32,hInfo[playericonhouse[playerid]][iconx], hInfo[playericonhouse[playerid]][icony], hInfo[playericonhouse[playerid]][iconz],32,0xFF0000AA);
    }
    } else {
    SendClientMessage(playerid, Vermelho," | ERRO | Vocк nгo tem esse dinheiro em seu banco.");
    }
    return 1;
    }
Reply


Forum Jump:


Users browsing this thread: 3 Guest(s)