[Pedido] Olhadinha de leve [DESESPERO]
#1

Senhores. Boa noite. Sei que a minha conduta aqui no forum vem causando algumas perturbaзхes, para com alguns membros. Estes reclamam que eu peзo muita ajuda e nada tento fazer. Olha sу, eu estou praticamente dois dias , algo em torno de 20 horas ou mais, fazendo e refazendo meu sistema. Ele compila normalmente sem erros, na lуgica parece estar tudo certo [...] porйm na prбtica nada disso acontece, por mais que eu tente de vбrias formas, nunca o cуdigo faz o que eu mando.

O meu cуdigo tem algo em torno de 500 linhas, ou seja, vocк "passando o olho" rapidamente verб e entenderб o que eu quero fazer. Se vocк chegou a ler atй aqui, peзo por obsйquio, dк uma olhadinha rбpida e tente encontrar algum erro. Tente encontrar algo que vocк sabe que compila mais nгo funcionaria da forma esperada.

Creio que somente esta olhadinha sua, encontrarб os pontos chave dos erros que destroem meu sistema.
Eu jб fiz de tudo, sйrio mesmo. E nгo queria abandonar esse projeto, cheguei muito longe, provavelmente o cуdigo mais йpico que fiz.

Code:
/*
	Nescessбrio criar pasta casas na scriptfiles

*/


#include < a_samp >
#include < sscanf >
#include < dof2 >
#include < zcmd >
#include < streamer >

#define MAX_HOUSES 100
#define MAX_CARROS 100
#define PASTA_CASAS "casas/casa %d.ini"
#define PASTA_CARROS "casas/carro %d.ini"

enum InfoH
{
    hID,
    Float:hIcone[3],
    hPreco,
    hDono[25],
    hCofre,
    hAluguel,

    Float:hCarroPos[4],
    hInterior,
    Text3D:hText,
    hPickUp,
    hTemDono,
	hCarroCor[2],
    hMapIcon
}


enum vInfoH
{
	cID,
	cCasa,
	cDono[25],
	Float:cPos[4],
	cModelo,
    Text3D:cText,
	cCor[2]
}

// ----------------------------------------------------------------------------- >>

new cInfo[MAX_CARROS][vInfoH];
new HInfo[MAX_HOUSES][InfoH];

new Criar_Carro[MAX_CARROS]; // variavel que cria o carro da casa

new bool:countH[MAX_PLAYERS char];
new EstaEmCasa[MAX_PLAYERS]; // verificaзгo OnPlayerPickUpPickup

new arquivo_casa[120];
new arquivo_hcarro[120];

// ----------------------------------------------------------------------------- >>

forward DestroyCarCommandTest(vehicleid);
forward AntFloodH(playerid);  // verificaзгo OnPlayerPickUpPickup
forward Atualizar_Carros(vehicleid);
forward Atualizar_Casas(casaid);

// ----------------------------------------------------------------------------- >>

main() { print("\nSistema de casas\nBy Lucas Emmanuel\n"); }

public OnGameModeInit()
{
    UsePlayerPedAnims();
    DisableInteriorEnterExits();
    SetGameModeText("HOUSE SCRIPT");
	AddPlayerClass(23, 2192.3462,1676.3215,12.3672, 269.1425, 0, 0, 0, 0, 0, 0);
/*
	AddStaticVehicle(560,2168.6887,1705.3904,10.7514,153.3162,9,39);
	AddStaticVehicle(541,2170.3594,1704.9673,10.7096,153.3650,58,8);
	AddStaticVehicle(541,2158.5830,1709.9849,10.6717,154.0867,58,8);
	AddStaticVehicle(402,2158.3157,1660.8107,10.8557,45.9362,13,13);
	AddStaticVehicle(442,2163.9023,1707.6172,10.9687,326.6677,11,105);
	AddStaticVehicle(402,2157.0203,1725.1031,10.9211,164.7455,6,1);
	AddStaticVehicle(442,2159.6914,1724.4752,10.8206,166.5195,11,105);
	AddStaticVehicle(560,2162.2883,1723.7815,10.7521,164.3699,9,39);
	AddStaticVehicle(541,2164.6753,1723.3394,10.6822,165.2697,58,8);
*/
    for(new i = 0; i < MAX_HOUSES; ++i) { Carregar_Casa(i); }
    for(new i = 0; i < MAX_CARROS; ++i) { Carregar_Carro(i); }

    return 1;
}

// ----------------------------------------------------------------------------- >>

public OnGameModeExit()
{
    for(new i = 0; i < MAX_HOUSES; ++i) { Salvar_Casa(i); }
    for(new i = 0; i < MAX_CARROS; ++i) { Salvar_Carro (i); }
    DOF2_Exit();
    return 1;
}

CMD:carregar(playerid)
{
    for(new i = 0; i < MAX_HOUSES; ++i) { Carregar_Casa(i); }
    for(new i = 0; i < MAX_CARROS; ++i) { Carregar_Carro(i); }
	return 1;
}

public OnPlayerRequestClass(playerid, classid)
{
    SpawnPlayer(playerid);
    return 1;
}

/*
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
    if(newkeys == KEY_YES )
    {
     	for(new i = 0; i < MAX_HOUSES; ++i)
    	{
         if (IsPlayerInRangeOfPoint(playerid, 2, HInfo[i][hIcone][0], HInfo[i][hIcone][1], HInfo[i][hIcone][2]));
	        {
	            new str[120];
	            format(str, sizeof(str),"Vocк entrou na casa %d", HInfo[i][hID]);
				SendClientMessage(playerid, -1, str);
	        }
   }
    }
    return 1;
}
*/

public OnPlayerPickUpPickup(playerid, pickupid)
{
 	for(new i = 0; i < MAX_HOUSES; ++i)
    {
	    if(pickupid == HInfo[i][hPickUp]) // verifica corretamente a casa que o player estб
	    {
     		if(countH[playerid] == false) // pra nгo ficar floodando a mensagem
	        {
//	        	SetPlayerInterior(playerid, HInfo[i][hInterior]);
	   			EstaEmCasa[playerid] = HInfo[i][hID];
				new str[120];
//				format(str, sizeof(str), "Vocк estб na casa %d", HInfo[i][hID]);
				format(str, sizeof(str), "Vocк estб na casa %d", EstaEmCasa[playerid]); //
				SendClientMessage(playerid, -1, str);
				countH[playerid] = true;
				SetTimerEx("AntFloodH", 1000 * 10, false, "i", playerid);
				break;
			}
	    }
    }
    return 1;
}

public OnPlayerConnect(playerid)
{
    return 1;
}

public OnPlayerDisconnect(playerid, reason)
{
    return 1;
}

public OnPlayerDeath(playerid, killerid, reason)
{
	return 1;
}

public OnVehicleSpawn(vehicleid)
{
 	Atualizar_Carros(vehicleid);
//	GetVehicleDistanceFromPoint(importante )
	return 1;
}

public OnVehicleDeath(vehicleid, killerid)
{
	SetVehicleToRespawn(vehicleid);
	return 1;
}

public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
	return 1;
}

public OnPlayerText(playerid, text[])
{
	return 1;
}

// ----------------------------------------------------------------------------- >>

CMD:criarcasa(playerid, params[])
{
//    if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, -1, "Vocк nгo tem permisгo para usar este comando!");
    new intr, preco;
    if(sscanf(params, "dd", intr, preco)) return SendClientMessage(playerid, -1, "/criarcasa [interior - preco]");

    new Float:Pos[3];
    GetPlayerPos(playerid, Pos[0], Pos[1], Pos[2]);

    for(new casaid = 0; casaid < MAX_HOUSES; casaid++)
	{
        format(arquivo_casa, sizeof(arquivo_casa), PASTA_CASAS, casaid);
        if(!DOF2_FileExists(arquivo_casa))
		{
            format(HInfo[casaid][hDono], 25, "Ninguem");

            HInfo[casaid][hInterior] = intr;
            HInfo[casaid][hID] = casaid;
            HInfo[casaid][hTemDono] = 0;
            HInfo[casaid][hCofre] = 0;

            HInfo[casaid][hPreco] = preco;
            HInfo[casaid][hAluguel] = 0;

            HInfo[casaid][hIcone][0] = Pos[0];
            HInfo[casaid][hIcone][1] = Pos[1];
            HInfo[casaid][hIcone][2] = Pos[2];

            new str[120];
            format(str, sizeof(str), "O Administrador %s criou uma casa id %d valor: %d", GetNome(playerid), casaid, preco);
            SendClientMessageToAll(-1, str);

            Criar_Casa(casaid);

            format(str, sizeof(str), "Casa %d\nDono %s\nPreзo %d\nAluguel %d", HInfo[casaid][hID], HInfo[casaid][hDono], HInfo[casaid][hPreco], HInfo[casaid][hAluguel]);
            HInfo[casaid][hText] = Create3DTextLabel(str, -1, HInfo[casaid][hIcone][0], HInfo[casaid][hIcone][1], HInfo[casaid][hIcone][2], 20.0, 0, 0);
            HInfo[casaid][hPickUp] = CreatePickup(1273, 1, HInfo[casaid][hIcone][0], HInfo[casaid][hIcone][1], HInfo[casaid][hIcone][2], -1);
            HInfo[casaid][hMapIcon] = CreateDynamicMapIcon(HInfo[casaid][hIcone][0], HInfo[casaid][hIcone][1], HInfo[casaid][hIcone][2], 31, -1, -1, -1, -1, 50.0);
            break;
        }
    }
    return 1;
}

// ----------------------------------------------------------------------------- >>

CMD:destruircasa(playerid, params[]) // comando funcional
{
//    if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, -1, "Vocк nгo tem permisгo para usar este comando!");
    new id;
    if(sscanf(params, "d", id)) return SendClientMessage(playerid, -1, "/destruircasa [id casa]");

	format(arquivo_casa, sizeof(arquivo_casa), PASTA_CASAS, id);
	if(!DOF2_FileExists(arquivo_casa))
	{
		SendClientMessage(playerid, -1, "Esta casa nгo existe");
	}
	else
	{
	    new str[120];
		format(arquivo_casa, sizeof(arquivo_casa), PASTA_CASAS, id);
  		DOF2_RemoveFile(arquivo_casa);
        format(str, sizeof(str), "Vocк excluiu a casa %d", id);
		SendClientMessage(playerid, -1, str);
		Atualizar_Casas(id);
	}
    return 1;
}					

// ---------------------------------------------------------------------------- >>

CMD:darcasa(playerid, params[]) // Novo comando em faze de testes
{
//    if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, -1, "Vocк nгo tem permisгo para usar este comando!");
    new idp, idh;
    if(sscanf(params, "dd", idp, idh)) return SendClientMessage(playerid, -1, "/darcasa [id] [id casa]");

	if(!IsPlayerConnected(idp)) return SendClientMessage(playerid, -1, "Jogador nгo conectado");

	format(arquivo_casa, sizeof(arquivo_casa), PASTA_CASAS, idh);
	if(!DOF2_FileExists(arquivo_casa))
	{
		SendClientMessage(playerid, -1, "Esta casa nгo existe");
	}
	else
	{
		format(arquivo_casa, sizeof(arquivo_casa), PASTA_CASAS, idh);
		new nomep[25];
		GetPlayerName(idp, nomep, 25);

		new str[120], stx[120];
		format (str, sizeof(str), "Vocк deu a casa %d para o jogador %s", HInfo[idh][hID], nomep);
		format (stx, sizeof(stx), "O administrador %s te deu a casa %d", GetNome(playerid), HInfo[idh][hID]);
		SendClientMessage(playerid, -1, str);
		SendClientMessage(idp, -1, stx);

		HInfo[idh][hDono] = nomep;
		HInfo[idh][hTemDono] = 1;

		Salvar_Casa(idh);
		Atualizar_Casas(idh);
	}
    return 1;
}

// ----------------------------------------------------------------------------- >>

CMD:soudono(playerid, params[]) // Novo comando funcional de testes
{
//    if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, -1, "Vocк nгo tem permisгo para usar este comando!");
    new id;
    if(sscanf(params, "d", id)) return SendClientMessage(playerid, -1, "/soudono [id casa]");

	format(arquivo_casa, sizeof(arquivo_casa), PASTA_CASAS, id);
	if(!DOF2_FileExists(arquivo_casa))
	{
		SendClientMessage(playerid, -1, "Esta casa nгo existe");
	}
	else
	{
		format(arquivo_casa, sizeof(arquivo_casa), PASTA_CASAS, id);
		new nomep[25];
		GetPlayerName(playerid, nomep, 25);
		HInfo[id][hDono] = nomep;
		new str[120];
		format (str, sizeof(str), "Vocк agora й dono da casa %d", HInfo[id][hID]);
		SendClientMessage(playerid, -1, str);
		HInfo[id][hTemDono] = 1;

		Salvar_Casa(id);
		Atualizar_Casas(id);
	}
    return 1;
}

// ----------------------------------------------------------------------------- >>
CMD:carrocasa(playerid, params[])
{
	//    if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, -1, "Vocк nгo tem permisгo para usar este comando!");
	new id_house, modelo, carro, cor[2];
	if(sscanf(params, "dddd", id_house, modelo, cor[0], cor[1])) return SendClientMessage(playerid, -1, "/carrocasa [id casa] [id carro] [cor 1] [cor 2]");

	if(modelo >= 400 && modelo <= 611)
	{
		format(arquivo_casa, sizeof(arquivo_casa), PASTA_CASAS, id_house);
		if(!DOF2_FileExists(arquivo_casa))
		{
			SendClientMessage(playerid, -1, "Esta casa nгo existe");
		}
		else
		{
			new Float:Pos[4];
			GetPlayerPos(playerid, Pos[0], Pos[1], Pos[2]);
			GetPlayerFacingAngle(playerid, Pos[3]);

			carro = CreateVehicle(modelo, Pos[0], Pos[1], Pos[2], Pos[3], cor[0], cor[1], false, 0);

			LinkVehicleToInterior(carro, GetPlayerInterior(playerid));
			SetVehicleVirtualWorld(carro, GetPlayerVirtualWorld(playerid));
			PutPlayerInVehicle(playerid, carro, 0);

			new player_carro_id  = GetPlayerVehicleID(playerid);

			cInfo[player_carro_id][cID] = player_carro_id; // ID do carro da casa
			cInfo[player_carro_id][cCasa] = id_house;        // ID da casa do carro

			format(arquivo_casa, sizeof(arquivo_casa), PASTA_CASAS, id_house);
			format(cInfo[player_carro_id][cDono], 25, "%s", DOF2_GetString(arquivo_casa, "Dono"));// Nome do dono do carro vai ser
			DOF2_SetString(arquivo_hcarro, "Dono", cInfo[player_carro_id][cDono]);

			cInfo[player_carro_id][cPos][0] = Pos[0];
			cInfo[player_carro_id][cPos][1] = Pos[1];
			cInfo[player_carro_id][cPos][2] = Pos[2];
			cInfo[player_carro_id][cPos][3] = Pos[3];
			
			cInfo[player_carro_id][cModelo] = modelo;
			cInfo[player_carro_id][cCasa] = id_house;
			
			cInfo[player_carro_id][cCor][0] = cor[0];
			cInfo[player_carro_id][cCor][0] = cor[1];

			new xx[120];
			format (xx, sizeof(xx), "vocк criou o carro %d para a casa %d nesta posicao. para trocar use /salvarcarrocasa", modelo, id_house);
			SendClientMessage(playerid, -1, xx);
			for(new carroid = 0; carroid < MAX_CARROS; ++carroid)
			{
				format(arquivo_hcarro, sizeof(arquivo_hcarro), PASTA_CARROS, carroid);
				if(!DOF2_FileExists(arquivo_hcarro))
				{
					format(arquivo_hcarro, sizeof(arquivo_hcarro), PASTA_CARROS, cInfo[carroid][cID]);
					DOF2_CreateFile(arquivo_hcarro);

					DOF2_SetInt(arquivo_hcarro,    "Casa",        cInfo[carroid][cCasa]);
					DOF2_SetInt(arquivo_hcarro,    "Modelo",      cInfo[carroid][cModelo]);
					DOF2_SetString(arquivo_hcarro, "Dono",      cInfo[carroid][cDono]);

					DOF2_SetFloat(arquivo_hcarro,  "CarroPosx", cInfo[carroid][cPos][0]);
					DOF2_SetFloat(arquivo_hcarro,  "CarroPosy", cInfo[carroid][cPos][1]);
					DOF2_SetFloat(arquivo_hcarro,  "CarroPosz", cInfo[carroid][cPos][2]);
					DOF2_SetFloat(arquivo_hcarro,  "CarroPosA", cInfo[carroid][cPos][3]); // Angulo do carro

					DOF2_SetInt(arquivo_hcarro,  "CarroCor1", cInfo[carroid][cCor][0]);
					DOF2_SetInt(arquivo_hcarro,  "CarroCor2", cInfo[carroid][cCor][1]);

					DOF2_SaveFile();
     				Atualizar_Carros(player_carro_id);
	//				Atualizar_Carros(carroid);
					break;
				}
			}
		}
	} 	else  SendClientMessage(playerid, -1, "Valor invбlido. ID's = 400-611");
	return 1;
}

CMD:cv(playerid, params[])
{
	new string[256], modelo, carro, cor1, cor2,
	Float:X, Float:Y, Float:Z, Float:Angle;

	if(sscanf(params, "ddd", modelo, cor1, cor2)) return SendClientMessage(playerid, -1, "Digite: /cv [modelo] [cor1] [cor2]");
	if(IsPlayerConnected(playerid))
	{
		if(modelo >= 400 && modelo <= 611)
		{
			if(IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, -1, "Saia deste veнculo para criar outro.");

			GetPlayerPos(playerid, X, Y, Z);
			GetPlayerFacingAngle(playerid, Angle);

			carro = AddStaticVehicleEx(modelo, X, Y, Z, Angle, cor1, cor2, 30);
			LinkVehicleToInterior(carro, GetPlayerInterior(playerid));
			SetVehicleVirtualWorld(carro, GetPlayerVirtualWorld(playerid));
			PutPlayerInVehicle(playerid, carro, 0);

			format(string, sizeof(string), "Vocк criou o veнculo de id: %d", modelo);
			SendClientMessage(playerid, -1, string);
		}
		else SendClientMessage(playerid, -1, "Valor invбlido, tente novamente! | ID's = 400-611");
	}
	return 1;
}

// ----------------------------------------------------------------------------- >>
public Atualizar_Carros(vehicleid)
{
	for(new i = 0; i < MAX_CARROS; ++i)
	{
	    new slab[80];
		Delete3DTextLabel( cInfo[i][cText] );
		format(arquivo_hcarro, sizeof(arquivo_hcarro), PASTA_CARROS, i);
		format(cInfo[i][cDono], 25, "%s", DOF2_GetString(arquivo_hcarro, "Dono")); // Nome do dono do carro vai ser
		DOF2_SetString(arquivo_hcarro, "Dono", cInfo[i][cDono]);
		format(slab, sizeof(slab), "Carro %d\nCasa %d\nDono %s", cInfo[i][cID], cInfo[i][cCasa], cInfo[i][cDono]);
	//	Update3DTextLabelText(cInfo[i][cText], -1, slab);
		cInfo[i][cText] = Create3DTextLabel( slab, 0xFF0000AA, 0.0, 0.0, 0.0, 90.0, 0, 0 );
		Attach3DTextLabelToVehicle( cInfo[i][cText] , vehicleid, 0.0, 0.0, 1.0);
		SetVehicleToRespawn(i);
 	}
    return 1;
}
/*
	for(new i = 0; i < MAX_CARROS; ++i)
	{
		format(arquivo_hcarro, sizeof(arquivo_hcarro), PASTA_CARROS, i);
		if(!DOF2_FileExists(arquivo_hcarro))
		{
		    Delete3DTextLabel( cInfo[i][cText] );
	 	 	DestroyVehicle(Criar_Carro[i]);
		}
		else
		{
		    new casaid = cInfo[i][cCasa];         						// verifica se a casa ainda existe
			format(arquivo_casa, sizeof(arquivo_casa), PASTA_CASAS, i);
			if(!DOF2_FileExists(arquivo_casa))
			{
				    Delete3DTextLabel( cInfo[i][cText] );
	 	 			DestroyVehicle(Criar_Carro[i]);
			}
			else        // Se existir :
			{
				new slab[60];

				format(arquivo_hcarro, sizeof(arquivo_hcarro), PASTA_CARROS, i);
				format(cInfo[i][cDono], 25, "%s", DOF2_GetString(arquivo_hcarro, "Dono")); // Nome do dono do carro vai ser
				DOF2_SetString(arquivo_hcarro, "Dono", cInfo[i][cDono]);
				format(slab, sizeof(slab), "Carro %d\nCasa %d\nDono %s", cInfo[i][cID], casaid, cInfo[i][cDono]);

				cInfo[i][cText] = Create3DTextLabel( slab, 0xFF0000AA, 0.0, 0.0, 0.0, 90.0, 0, 0 );
				//	Delete3DTextLabel( cInfo[i][cText] );
				Update3DTextLabelText(cInfo[i][cText], -1, slab);
				Attach3DTextLabelToVehicle( cInfo[i][cText] , vehicleid, 0.0, 0.0, 1.0);
				SetVehicleToRespawn(i);
			}
		}
	}
    return 1;
}*/
// ----------------------------------------------------------------------------- >>
public Atualizar_Casas(casaid)
{
	format(arquivo_casa, sizeof(arquivo_casa), PASTA_CASAS, casaid);
	if(!DOF2_FileExists(arquivo_casa))
	{
		Delete3DTextLabel(HInfo[casaid][hText]);
		DestroyPickup(HInfo[casaid][hPickUp]);
		DestroyDynamicMapIcon(HInfo[casaid][hMapIcon]);
	}
	else
	{
		new str[120];
		format(str, sizeof(str), "Casa %d\nDono %s\nPreзo %d\nAluguel %d", HInfo[casaid][hID], HInfo[casaid][hDono], HInfo[casaid][hPreco], HInfo[casaid][hAluguel]);

		if(HInfo[casaid][hTemDono] == 1)
		{
		    DestroyPickup(HInfo[casaid][hPickUp]);
			DestroyDynamicMapIcon(HInfo[casaid][hMapIcon]);
			Delete3DTextLabel(HInfo[casaid][hText]);

 			HInfo[casaid][hText] = Create3DTextLabel(str, -1, HInfo[casaid][hIcone][0], HInfo[casaid][hIcone][1], HInfo[casaid][hIcone][2], 20.0, 0, 0);
			Update3DTextLabelText(HInfo[casaid][hText], -1, str);

			HInfo[casaid][hMapIcon] = CreateDynamicMapIcon(HInfo[casaid][hIcone][0], HInfo[casaid][hIcone][1], HInfo[casaid][hIcone][2], 32, -1, -1, -1, -1, 50.0);
			HInfo[casaid][hPickUp] = CreatePickup(1272, 1, HInfo[casaid][hIcone][0], HInfo[casaid][hIcone][1], HInfo[casaid][hIcone][2], -1);
		}
 		if(HInfo[casaid][hTemDono] == 0)
		{
 		    DestroyPickup(HInfo[casaid][hPickUp]);
			DestroyDynamicMapIcon(HInfo[casaid][hMapIcon]);
			Delete3DTextLabel(HInfo[casaid][hText]);

			HInfo[casaid][hText] = Create3DTextLabel(str, -1, HInfo[casaid][hIcone][0], HInfo[casaid][hIcone][1], HInfo[casaid][hIcone][2], 20.0, 0, 0);
			Update3DTextLabelText(HInfo[casaid][hText], -1, str);

			HInfo[casaid][hPickUp] = CreatePickup(1273, 1, HInfo[casaid][hIcone][0], HInfo[casaid][hIcone][1], HInfo[casaid][hIcone][2], -1);
			HInfo[casaid][hMapIcon] = CreateDynamicMapIcon(HInfo[casaid][hIcone][0], HInfo[casaid][hIcone][1], HInfo[casaid][hIcone][2], 31, -1, -1, -1, -1, 50.0);
		}
	}
	return 1;
}
// ----------------------------------------------------------------------------- >>
/*
public OnPlayerStateChange(playerid, newstate, oldstate) // Nгo ta funcionando
{
	if (newstate == PLAYER_STATE_DRIVER)
	{
	 	for(new i = 0; i < MAX_CARROS; ++i)
	    {
			if(strcmp(cInfo[i][cDono], GetNome(playerid)) == 0) // verificar se o player й dono do carro
			{
				RemovePlayerFromVehicle(playerid);
				SendClientMessage(playerid, -1, "Vocк nгo й o dono deste carro");
			}
			else
			{
//				format(cInfo[i][cDono], 25, "%s", DOF2_GetString(arquivo_hcarro, "Dono"));
				if(strcmp(cInfo[i][cDono] == "Ninguem") // se o carro nгo tiver dono poode entrar ?
				{

				}
			}break;
		}
	}
    return 1;
}
// ----------------------------------------------------------------------------- >>
public OnPlayerStateChange(playerid, newstate, oldstate) // Nгo ta funcionando !
{
	if (newstate == PLAYER_STATE_DRIVER)
	{
		for(new i = 0; i < MAX_CARROS; ++i)
		{
			new str[120];
			format(str, sizeof(str), "este carro й da casa %d dono %s", cInfo[i][cCasa], cInfo[i][cDono]);
			SendClientMessage(playerid, -1, str);

			if(strcmp(cInfo[i][cDono], GetNome(playerid)) == 0) // verificar se o player й dono do carro
			{
				RemovePlayerFromVehicle(playerid);
				SendClientMessage(playerid, -1, "Vocк nгo й o dono deste carro");
			}
			else
			{
				if(strcmp(cInfo[i][cDono], "Ninguem") == 0)
				{
					SendClientMessage(playerid, -1, "Este carro nгo tem dono !");
				}
			}break;
		}
	}
	return 1;
}
*/
// ----------------------------------------------------------------------------- >>
Criar_Casa(casaid)
{
    format(arquivo_casa, sizeof(arquivo_casa), PASTA_CASAS, HInfo[casaid][hID]);

    DOF2_CreateFile(arquivo_casa);
    DOF2_SetString(arquivo_casa, "Dono",      HInfo[casaid][hDono]);
    DOF2_SetInt(arquivo_casa,    "TemDono",   HInfo[casaid][hTemDono]);
    DOF2_SetInt(arquivo_casa,    "ID",        HInfo[casaid][hID]);
    DOF2_SetInt(arquivo_casa,    "Preco",     HInfo[casaid][hPreco]);
    DOF2_SetInt(arquivo_casa,    "Aluguel",   HInfo[casaid][hAluguel]);
    DOF2_SetInt(arquivo_casa,    "Interior",  HInfo[casaid][hInterior]);

    DOF2_SetFloat(arquivo_casa,  "Iconex",    HInfo[casaid][hIcone][0]);
    DOF2_SetFloat(arquivo_casa,  "Iconey",    HInfo[casaid][hIcone][1]);
    DOF2_SetFloat(arquivo_casa,  "Iconez",    HInfo[casaid][hIcone][2]);

    DOF2_SaveFile();
    return 1;
}
// ----------------------------------------------------------------------------- >>
Carregar_Carro(carroid)
{
    format(arquivo_hcarro, sizeof(arquivo_hcarro), PASTA_CARROS, carroid);
    if(DOF2_FileExists(arquivo_hcarro))
 	{
        cInfo[carroid][cCasa] = DOF2_GetInt(arquivo_hcarro, "Casa");
        cInfo[carroid][cModelo] = DOF2_GetInt(arquivo_hcarro, "Modelo");
      	format(cInfo[carroid][cDono], 25, "%s", DOF2_GetString(arquivo_hcarro, "Dono"));

        cInfo[carroid][cPos][0] = DOF2_GetFloat(arquivo_hcarro, "CarroPosx");
        cInfo[carroid][cPos][1] = DOF2_GetFloat(arquivo_hcarro, "CarroPosy");
        cInfo[carroid][cPos][2] = DOF2_GetFloat(arquivo_hcarro, "CarroPosz");
        cInfo[carroid][cPos][3] = DOF2_GetFloat(arquivo_hcarro, "CarroPosA");

        cInfo[carroid][cCor][0] = DOF2_GetInt(arquivo_hcarro, "CarroCor1");
        cInfo[carroid][cCor][1] = DOF2_GetInt(arquivo_hcarro, "CarroCor2");
		Criar_Carro[carroid] = CreateVehicle(cInfo[carroid][cModelo], cInfo[carroid][cPos][0], cInfo[carroid][cPos][1], cInfo[carroid][cPos][2],  cInfo[carroid][cPos][3], cInfo[carroid][cCor][0], cInfo[carroid][cCor][1], false);

		Criar_Carro[carroid] = CreateVehicle(cInfo[carroid][cModelo], cInfo[carroid][cPos][0], cInfo[carroid][cPos][1], cInfo[carroid][cPos][2],  cInfo[carroid][cPos][3], cInfo[carroid][cCor][0], cInfo[carroid][cCor][1], false);
//		Criar_Carro[carroid] = AddStaticVehicleEx(cInfo[carro][cModelo], cInfo[carro][cPos][0], cInfo[carro][cPos][1], cInfo[carro][cPos][2],  cInfo[carro][cPos][3], cInfo[carro][cCor][0], cInfo[carroid][cCor][1], false);
	}
}
// ----------------------------------------------------------------------------- >>
Salvar_Carro(carroid)
{
    format(arquivo_hcarro, sizeof(arquivo_hcarro), PASTA_CARROS, carroid);
    if(DOF2_FileExists(arquivo_hcarro))
	{
        DOF2_SetString(arquivo_hcarro, "Dono", cInfo[carroid][cDono]);
        DOF2_SetInt(arquivo_hcarro, "Casa", cInfo[carroid][cCasa]);
        DOF2_SetInt(arquivo_hcarro, "Modelo", cInfo[carroid][cModelo]);

        DOF2_SetFloat(arquivo_hcarro, "CarroPosx", cInfo[carroid][cPos][0]);
        DOF2_SetFloat(arquivo_hcarro, "CarroPosy", cInfo[carroid][cPos][1]);
        DOF2_SetFloat(arquivo_hcarro, "CarroPosz", cInfo[carroid][cPos][2]);
        DOF2_SetFloat(arquivo_hcarro, "CarroPosA", cInfo[carroid][cPos][3]);

        DOF2_SetInt(arquivo_hcarro, "CarroCor1", cInfo[carroid][cCor][0]);
        DOF2_SetInt(arquivo_hcarro, "CarroCor2", cInfo[carroid][cCor][1]);

        DOF2_SaveFile();
    }
}
// ----------------------------------------------------------------------------- >>
Carregar_Casa(casaid)
{
    format(arquivo_casa, sizeof(arquivo_casa), PASTA_CASAS, casaid);
    if(DOF2_FileExists(arquivo_casa))
	{
        format(HInfo[casaid][hDono], 25, "%s", DOF2_GetString(arquivo_casa, "Dono"));
        HInfo[casaid][hTemDono] = DOF2_GetInt(arquivo_casa, "TemDono");
        HInfo[casaid][hID] = DOF2_GetInt(arquivo_casa, "ID");
        HInfo[casaid][hPreco] = DOF2_GetInt(arquivo_casa, "Preco");
        HInfo[casaid][hAluguel] = DOF2_GetInt(arquivo_casa, "Aluguel");
        HInfo[casaid][hInterior] = DOF2_GetInt(arquivo_casa, "Interior");

        HInfo[casaid][hIcone][0] = DOF2_GetFloat(arquivo_casa, "Iconex");
        HInfo[casaid][hIcone][1] = DOF2_GetFloat(arquivo_casa, "Iconey");
        HInfo[casaid][hIcone][2] = DOF2_GetFloat(arquivo_casa, "Iconez");

        new str[120];
        if(HInfo[casaid][hTemDono] == 0)
		{
            format(str, sizeof(str), "Casa %d\nDono %s\nPreзo %d\nAluguel %d", HInfo[casaid][hID], HInfo[casaid][hDono], HInfo[casaid][hPreco], HInfo[casaid][hAluguel]);
            HInfo[casaid][hText] = Create3DTextLabel(str, -1, HInfo[casaid][hIcone][0], HInfo[casaid][hIcone][1], HInfo[casaid][hIcone][2], 20.0, 0, 0);
            HInfo[casaid][hPickUp] = CreatePickup(1273, 1, HInfo[casaid][hIcone][0], HInfo[casaid][hIcone][1], HInfo[casaid][hIcone][2], -1);
            HInfo[casaid][hMapIcon] = CreateDynamicMapIcon(HInfo[casaid][hIcone][0], HInfo[casaid][hIcone][1], HInfo[casaid][hIcone][2], 31, -1, -1, -1, -1, 50.0);
        }
		else
		{
            format(str, sizeof(str), "Casa %d\nDono %s\nAluguel %d", HInfo[casaid][hID], HInfo[casaid][hDono], HInfo[casaid][hAluguel]);
            HInfo[casaid][hText] = Create3DTextLabel(str, -1, HInfo[casaid][hIcone][0], HInfo[casaid][hIcone][1], HInfo[casaid][hIcone][2], 20.0, 0, 0);
            HInfo[casaid][hPickUp] = CreatePickup(1272, 1, HInfo[casaid][hIcone][0], HInfo[casaid][hIcone][1], HInfo[casaid][hIcone][2], -1);
            HInfo[casaid][hMapIcon] = CreateDynamicMapIcon(HInfo[casaid][hIcone][0], HInfo[casaid][hIcone][1], HInfo[casaid][hIcone][2], 32, -1, -1, -1, -1, 50.0);
        }
    }
}

Salvar_Casa(casaid)
{
    format(arquivo_casa, sizeof(arquivo_casa), PASTA_CASAS, casaid);
    if(DOF2_FileExists(arquivo_casa))
	{
        DOF2_SetString(arquivo_casa, "Dono", HInfo[casaid][hDono]);
        DOF2_SetInt(arquivo_casa, "TemDono", HInfo[casaid][hTemDono]);
        DOF2_SetInt(arquivo_casa, "ID", HInfo[casaid][hID]);
        DOF2_SetInt(arquivo_casa, "Preco", HInfo[casaid][hPreco]);
        DOF2_SetInt(arquivo_casa, "Aluguel", HInfo[casaid][hAluguel]);
        DOF2_SetInt(arquivo_casa, "Interior", HInfo[casaid][hInterior]);

        DOF2_SetFloat(arquivo_casa, "Iconex", HInfo[casaid][hIcone][0]);
        DOF2_SetFloat(arquivo_casa, "Iconey", HInfo[casaid][hIcone][1]);
        DOF2_SetFloat(arquivo_casa, "Iconez", HInfo[casaid][hIcone][2]);

        DOF2_SaveFile();
    }
}
// ----------------------------------------------------------------------------- >>
stock GetNome(playerid)
{
    new pNome[MAX_PLAYER_NAME];
    GetPlayerName(playerid, pNome, 24);
    return pNome;
}

public AntFloodH(playerid)
{
    countH[playerid] = false;
    return true;
}
// ------------------------------------------------------------------------------- >>
E tipo, sгo tantos bugs diferentes que nem sei por onde comeзar.
Se alguйm puder copiar e botar pra rodar ele, como gamemode e usar os comandos, e ver o que acontece seria muito bom ...


Eu estou me esforзando bastante e ficando sem saida
Tire 5 minutos do seu tempinho ai, copie esse gm e rode como seu gamemode, dк essa moral ai
Namoral mesmo
Reply
#2

O que estб acontecendo filho ? encheu de linguiзa a primeira postagem mas nгo especificou o que estб ocorrendo.
Reply
#3

Seu ou do Duun?
Reply
#4

Mano, o /criarcasa atй funciona, toda vez que eu uso cria uma casa com ID diferente, tudo escrito certo ...
O problema й quando eu uso o /carrocasa, ai apaga os textos da casa ( nгo sei como, pq sгo dois sistemas diferentes ), dai o carro nгo fica com o text3D em cima , nгo salva direito, tem horas que salva tem horas q nгo salva, tem horas q o servidor fica muito lento e trava, etc.


Parece atй macumba
Reply
#5

Quote:
Originally Posted by Felipealves
View Post
Seu ou do Duun?
Eu e o duun somos irmгos
Reply
#6

use estб base que fiz para vocк em um de seus post eu acho, ele й baseado em meu sistema de casas, releve e me avise se der algum erro pois fiz em 20 min e nгo testei, leia e re-leia o cуdigo e vai entender como funciona e ira conseguir fazer o seu



Crie a pasta Casas na scriptfiles e crie a pasta Interiores na pasta Interiores ira conta a localizaзгo x, y, z das casas, faзa exatamente desta maneira senгo nгo ira funcionar
crie o arquivo 1.txt, 2.txt, 3.txt e nesses arquivos adicione isso:

X = 271.884979
y = 306.631988
z = 999.148437
mundo = 2

lembrando, mude x, y, z e interior para interiores que vc quiser adicionar Code:


PHP Code:
#include <a_samp> 
#include <zcmd> 
#include <sscanf2> 
#include <dof2> 
#define MAX_CASAS 500 //troque pelo maximo de casas que quer que tenha em seu server 
#define INFOA 0xFFFF00FF 
new Text3D:Ctexto[MAX_CASAS]; //texto com as informaзхes da casa 
new piCasa[MAX_CASAS]; //pickup da casa 
enum pCasa 

    
Float:pCasaX
    
Float:pCasaY
    
Float:pCasaZ
    
pCasaNivel 
}; 
new 
CasaInfo[MAX_CASAS][pCasa]; 
public 
OnGameModeInit() 

    new 
String[50], 
                  
INFOC[80]; 
                   
    for(new 
0MAX_CASASi++) 
    { 
    
format(Stringsizeof(String), "Casas/Casa %d.txt"i); 
    if(
DOF2_FileExists(String)) 
    { 
     if(
DOF2_GetInt(String"tDono") == 1
      { 
      
format(INFOCsizeof(INFOC), "{87CEFA}Dono: {FFFF00}%s\n{87CEFA}Nivel: {FFFF00}%d     \n Id: %d      \n%s"DOF2_GetString(String"Dono"), DOF2_GetInt(String"Nivel"), DOF2_GetInt(String"Id"), DOF2_GetString(String"Comprar")); 
      } 
      else{ 
      
format(INFOCsizeof(INFOC), "{87CEFA}Dono: {FFFF00}%s\n{87CEFA}Preзo: {FFFF00}%d\n{87CEFA}Nivel: {FFFF00}%d\n Id: %d \n\n{87CEFA}Use:{FFFFFF} /comprarcasa"DOF2_GetString(String"Dono"), DOF2_GetInt(String"Preco"), DOF2_GetInt(String"Nivel"), DOF2_GetInt(String"Id")); 
      } 
     
Ctexto[i] = Create3DTextLabel(INFOC, -1DOF2_GetFloat(String"PX"), DOF2_GetFloat(String"PY"), DOF2_GetFloat(String"PZ"), 50.000); 
       
piCasa[i] = CreatePickup(DOF2_GetInt(String"PickU"), 1DOF2_GetFloat(String"PX"), DOF2_GetFloat(String"PY"), DOF2_GetFloat(String"PZ")); 
    } 
    else { break; } 
    } 
    return 
1

CMD:criarcasa(playeridparams[]) 

    new 
precocinteriorFloat:pXFloat:pYFloat:pZString[40]; 
    if(
sscanf(params,"dd",precoc,interior)) return  SendClientMessage(playerid, -1"[ERRO] Comando incorreto! Use: /criarcasa [preзo] [interior]"); 
    
GetPlayerPos(playeridpXpYpZ); 
    
format(Stringsizeof(String), "Interiores/%d.txt",interior); 
    
CriarCasa(playeridprecocDOF2_GetInt(String"mundo"), Float:pXFloat:pYFloat:pZDOF2_GetFloat(String"x"), DOF2_GetFloat(String"y"), DOF2_GetFloat(String"z")); 
    return 
1

stock CriarCasa(playeridprecoiIntFloat:CXFloat:CYFloat:CZFloat:ICasaXFloat:ICasaYFloat:ICasaZ

    new 
String[150], INFOC[130]; 
    for(new 
0MAX_CASASi++) 
    { 
    
format(Stringsizeof(String), "Casas/Casa %d.txt"i); 
     if(!
DOF2_FileExists(String)) 
     { 
    
DOF2_CreateFile(String); 
    
DOF2_SetInt(String"Id"i); 
    
DOF2_SetInt(String"Preco"preco); 
    
DOF2_SetInt(String"Nivel"0); 
    
DOF2_SetInt(String"Mundo"iInt); 
    
DOF2_SetInt(String"PickU"1273); 
    
DOF2_SetInt(String"tDono"0); 
    
DOF2_SetInt(String"Trancada"0); 
    
DOF2_SetFloat(String"IX"ICasaX); 
    
DOF2_SetFloat(String"IY"ICasaY); 
    
DOF2_SetFloat(String"IZ"ICasaZ); 
    
DOF2_SetFloat(String"PX"CX); 
    
DOF2_SetFloat(String"PY"CY); 
    
DOF2_SetFloat(String"PZ"CZ); 
    
DOF2_SetString(String"Dono""Ninguem"); 
    
DOF2_SetString(String"Comprar""/comprarcasa"); 
    
DOF2_SaveFile(); 
    
format(INFOCsizeof(INFOC), "{87CEFA}Dono: {FFFF00}%s\n{87CEFA}Preзo: {FFFF00}%d\n{87CEFA}Nivel: {FFFF00}%d\n\n{87CEFA}Use:{FFFFFF} /comprarcasa"DOF2_GetString(String"Dono"), DOF2_GetInt(String"Preco"), DOF2_GetInt(String"Nivel")); 
    
Ctexto[i] = Create3DTextLabel(INFOC, -1CXCYCZ50.000); 
    
piCasa[i] = CreatePickup(DOF2_GetInt(String"PickU"), 1CXCYCZ); 
    
SendClientMessage(playeridINFOA"[SERVER] Vocк criou uma casa!"); 
    break; 
    } 
    } 
    return 
1

CMD:comprarcasa(playerid

    new 
String[50], aname[MAX_PLAYER_NAME], INFOC[150]; 
    
GetPlayerName(playeridanamesizeof(aname)); 
    for(new 
0MAX_CASASi++) 
    { 
     
format(Stringsizeof(String), "Casas/Casa %d.txt"i); 
     if(
DOF2_GetInt(String"tDono") == 1) { SendClientMessage(playeridINFOA"Estб casa jб possui dono!"); } else { 
     if(
DOF2_FileExists(String)) 
      { 
      
CasaInfo[i][pCasaX] = DOF2_GetFloat(String"PX"); 
      
CasaInfo[i][pCasaY] = DOF2_GetFloat(String"PY"); 
      
CasaInfo[i][pCasaZ] = DOF2_GetFloat(String"PZ"); 
      if(
IsPlayerInRangeOfPoint(playerid2.0CasaInfo[i][pCasaX], CasaInfo[i][pCasaY], CasaInfo[i][pCasaZ])) 
          { 
          if(
GetPlayerMoney(playerid) >= DOF2_GetInt(String"Preco")) 
           { 
         
GivePlayerMoney(playerid, -DOF2_GetInt(String"Preco")); 
         
DOF2_SetString(String"Dono"aname); 
         
DOF2_SetInt(String"PickU"1272); 
         
DOF2_SetInt(String"tDono"1); 
         
DOF2_SetString(String"Comprar""/entrarcasa"); 
         
DOF2_SaveFile(); 
         
format(INFOCsizeof(INFOC), "{87CEFA}Dono: {FFFF00}%s\n{87CEFA}Nivel: {FFFF00}%d     \n {87CEFA}Id: {FFFF00}%d      \n{FFFF00}%s"DOF2_GetString(String"Dono"), DOF2_GetInt(String"Nivel"), DOF2_GetInt(String"Id"), DOF2_GetString(String"Comprar")); 
         
Update3DTextLabelText(Ctexto[i], -1INFOC); 
         
DestroyPickup(piCasa[i]); 
         
piCasa[i] = CreatePickup(DOF2_GetInt(String"PickU"), 1DOF2_GetFloat(String"PX"), DOF2_GetFloat(String"PY"), DOF2_GetFloat(String"PZ")); 
        } 
       } 
      } 
      else { break; } 
     } 
    } 
    return 
1

CMD:entrarcasa(playerid

    new 
String[80]; 
    for(new 
0MAX_CASASi++) 
    { 
    
format(Stringsizeof(String), "Casas/Casa %d.txt"i); 
     if(
DOF2_FileExists(String)) 
     { 
     if(
DOF2_GetInt(String"Tracanda") == 1
      { 
       
SendClientMessage(playeridINFOA"[SERVER] Estб casa estб trancada"); 
      } 
      else 
       { 
       
SetPlayerPos(playeridDOF2_GetFloat(String"IX"), DOF2_GetFloat(String"IY"), DOF2_GetFloat(String"IZ")); 
       
SetPlayerInterior(playeridDOF2_GetInt(String"Mundo")); 
       } 
     } 
     else 
     { 
     break; 
     } 
    } 
    return 
1

Reply
#7

Quote:
Originally Posted by GSantana
View Post
use estб base que fiz para vocк em um de seus post eu acho, ele й baseado em meu sistema de casas, releve e me avise se der algum erro pois fiz em 20 min e nгo testei, leia e re-leia o cуdigo e vai entender como funciona e ira conseguir fazer o seu



Crie a pasta Casas na scriptfiles e crie a pasta Interiores na pasta Interiores ira conta a localizaзгo x, y, z das casas, faзa exatamente desta maneira senгo nгo ira funcionar
crie o arquivo 1.txt, 2.txt, 3.txt e nesses arquivos adicione isso:

X = 271.884979
y = 306.631988
z = 999.148437
mundo = 2

lembrando, mude x, y, z e interior para interiores que vc quiser adicionar Code:


PHP Code:
#include <a_samp> 
#include <zcmd> 
#include <sscanf2> 
#include <dof2> 
#define MAX_CASAS 500 //troque pelo maximo de casas que quer que tenha em seu server 
#define INFOA 0xFFFF00FF 
new Text3D:Ctexto[MAX_CASAS]; //texto com as informaзхes da casa 
new piCasa[MAX_CASAS]; //pickup da casa 
enum pCasa 

    
Float:pCasaX
    
Float:pCasaY
    
Float:pCasaZ
    
pCasaNivel 
}; 
new 
CasaInfo[MAX_CASAS][pCasa]; 
public 
OnGameModeInit() 

    new 
String[50], 
                  
INFOC[80]; 
                   
    for(new 
0MAX_CASASi++) 
    { 
    
format(Stringsizeof(String), "Casas/Casa %d.txt"i); 
    if(
DOF2_FileExists(String)) 
    { 
     if(
DOF2_GetInt(String"tDono") == 1
      { 
      
format(INFOCsizeof(INFOC), "{87CEFA}Dono: {FFFF00}%s\n{87CEFA}Nivel: {FFFF00}%d     \n Id: %d      \n%s"DOF2_GetString(String"Dono"), DOF2_GetInt(String"Nivel"), DOF2_GetInt(String"Id"), DOF2_GetString(String"Comprar")); 
      } 
      else{ 
      
format(INFOCsizeof(INFOC), "{87CEFA}Dono: {FFFF00}%s\n{87CEFA}Preзo: {FFFF00}%d\n{87CEFA}Nivel: {FFFF00}%d\n Id: %d \n\n{87CEFA}Use:{FFFFFF} /comprarcasa"DOF2_GetString(String"Dono"), DOF2_GetInt(String"Preco"), DOF2_GetInt(String"Nivel"), DOF2_GetInt(String"Id")); 
      } 
     
Ctexto[i] = Create3DTextLabel(INFOC, -1DOF2_GetFloat(String"PX"), DOF2_GetFloat(String"PY"), DOF2_GetFloat(String"PZ"), 50.000); 
       
piCasa[i] = CreatePickup(DOF2_GetInt(String"PickU"), 1DOF2_GetFloat(String"PX"), DOF2_GetFloat(String"PY"), DOF2_GetFloat(String"PZ")); 
    } 
    else { break; } 
    } 
    return 
1

CMD:criarcasa(playeridparams[]) 

    new 
precocinteriorFloat:pXFloat:pYFloat:pZString[40]; 
    if(
sscanf(params,"dd",precoc,interior)) return  SendClientMessage(playerid, -1"[ERRO] Comando incorreto! Use: /criarcasa [preзo] [interior]"); 
    
GetPlayerPos(playeridpXpYpZ); 
    
format(Stringsizeof(String), "Interiores/%d.txt",interior); 
    
CriarCasa(playeridprecocDOF2_GetInt(String"mundo"), Float:pXFloat:pYFloat:pZDOF2_GetFloat(String"x"), DOF2_GetFloat(String"y"), DOF2_GetFloat(String"z")); 
    return 
1

stock CriarCasa(playeridprecoiIntFloat:CXFloat:CYFloat:CZFloat:ICasaXFloat:ICasaYFloat:ICasaZ

    new 
String[150], INFOC[130]; 
    for(new 
0MAX_CASASi++) 
    { 
    
format(Stringsizeof(String), "Casas/Casa %d.txt"i); 
     if(!
DOF2_FileExists(String)) 
     { 
    
DOF2_CreateFile(String); 
    
DOF2_SetInt(String"Id"i); 
    
DOF2_SetInt(String"Preco"preco); 
    
DOF2_SetInt(String"Nivel"0); 
    
DOF2_SetInt(String"Mundo"iInt); 
    
DOF2_SetInt(String"PickU"1273); 
    
DOF2_SetInt(String"tDono"0); 
    
DOF2_SetInt(String"Trancada"0); 
    
DOF2_SetFloat(String"IX"ICasaX); 
    
DOF2_SetFloat(String"IY"ICasaY); 
    
DOF2_SetFloat(String"IZ"ICasaZ); 
    
DOF2_SetFloat(String"PX"CX); 
    
DOF2_SetFloat(String"PY"CY); 
    
DOF2_SetFloat(String"PZ"CZ); 
    
DOF2_SetString(String"Dono""Ninguem"); 
    
DOF2_SetString(String"Comprar""/comprarcasa"); 
    
DOF2_SaveFile(); 
    
format(INFOCsizeof(INFOC), "{87CEFA}Dono: {FFFF00}%s\n{87CEFA}Preзo: {FFFF00}%d\n{87CEFA}Nivel: {FFFF00}%d\n\n{87CEFA}Use:{FFFFFF} /comprarcasa"DOF2_GetString(String"Dono"), DOF2_GetInt(String"Preco"), DOF2_GetInt(String"Nivel")); 
    
Ctexto[i] = Create3DTextLabel(INFOC, -1CXCYCZ50.000); 
    
piCasa[i] = CreatePickup(DOF2_GetInt(String"PickU"), 1CXCYCZ); 
    
SendClientMessage(playeridINFOA"[SERVER] Vocк criou uma casa!"); 
    break; 
    } 
    } 
    return 
1

CMD:comprarcasa(playerid

    new 
String[50], aname[MAX_PLAYER_NAME], INFOC[150]; 
    
GetPlayerName(playeridanamesizeof(aname)); 
    for(new 
0MAX_CASASi++) 
    { 
     
format(Stringsizeof(String), "Casas/Casa %d.txt"i); 
     if(
DOF2_GetInt(String"tDono") == 1) { SendClientMessage(playeridINFOA"Estб casa jб possui dono!"); } else { 
     if(
DOF2_FileExists(String)) 
      { 
      
CasaInfo[i][pCasaX] = DOF2_GetFloat(String"PX"); 
      
CasaInfo[i][pCasaY] = DOF2_GetFloat(String"PY"); 
      
CasaInfo[i][pCasaZ] = DOF2_GetFloat(String"PZ"); 
      if(
IsPlayerInRangeOfPoint(playerid2.0CasaInfo[i][pCasaX], CasaInfo[i][pCasaY], CasaInfo[i][pCasaZ])) 
          { 
          if(
GetPlayerMoney(playerid) >= DOF2_GetInt(String"Preco")) 
           { 
         
GivePlayerMoney(playerid, -DOF2_GetInt(String"Preco")); 
         
DOF2_SetString(String"Dono"aname); 
         
DOF2_SetInt(String"PickU"1272); 
         
DOF2_SetInt(String"tDono"1); 
         
DOF2_SetString(String"Comprar""/entrarcasa"); 
         
DOF2_SaveFile(); 
         
format(INFOCsizeof(INFOC), "{87CEFA}Dono: {FFFF00}%s\n{87CEFA}Nivel: {FFFF00}%d     \n {87CEFA}Id: {FFFF00}%d      \n{FFFF00}%s"DOF2_GetString(String"Dono"), DOF2_GetInt(String"Nivel"), DOF2_GetInt(String"Id"), DOF2_GetString(String"Comprar")); 
         
Update3DTextLabelText(Ctexto[i], -1INFOC); 
         
DestroyPickup(piCasa[i]); 
         
piCasa[i] = CreatePickup(DOF2_GetInt(String"PickU"), 1DOF2_GetFloat(String"PX"), DOF2_GetFloat(String"PY"), DOF2_GetFloat(String"PZ")); 
        } 
       } 
      } 
      else { break; } 
     } 
    } 
    return 
1

CMD:entrarcasa(playerid

    new 
String[80]; 
    for(new 
0MAX_CASASi++) 
    { 
    
format(Stringsizeof(String), "Casas/Casa %d.txt"i); 
     if(
DOF2_FileExists(String)) 
     { 
     if(
DOF2_GetInt(String"Tracanda") == 1
      { 
       
SendClientMessage(playeridINFOA"[SERVER] Estб casa estб trancada"); 
      } 
      else 
       { 
       
SetPlayerPos(playeridDOF2_GetFloat(String"IX"), DOF2_GetFloat(String"IY"), DOF2_GetFloat(String"IZ")); 
       
SetPlayerInterior(playeridDOF2_GetInt(String"Mundo")); 
       } 
     } 
     else 
     { 
     break; 
     } 
    } 
    return 
1

@edit

mano, a parte do meu sistema de casas ta de boa, o que ta dando erro й o sistema de carros [...]
Se possнvel, roda meu cуdigo, to achando que meu problema й algo simples de sintaxe que nгo consigo entender
Reply
#8

Quote:
Originally Posted by dimy
View Post
@edit

mano, a parte do meu sistema de casas ta de boa, o que ta dando erro й o sistema de carros [...]
Se possнvel, roda meu cуdigo, to achando que meu problema й algo simples de sintaxe que nгo consigo entender
poderia me dizer exatamente o problema com o sistema de carros ?
Reply
#9

Quote:
Originally Posted by GSantana
View Post
poderia me dizer exatamente o problema com o sistema de carros ?
olha cara, vou tentar explicar o mбximo possнvel. O comando /criarcasa, cria uma casa no servidor. quando eu digo isso й pq um arquivo casa %d й criado, e dentro deste arquivo tem informaзхes, como o id da casa, a localizaзгo (pikcup e text3d), dono, em fim. quando a casa й criada, o dono fica setado para (ninguem).

ok ate ai tudo bem, tudo funciona bem, eu vou no servidor e toda vez que digito /criarcasa ( id do interior ) ( preco ) uma casa й criada, se eu usar o comando de novo outra casa й criada com um ID diferente.

o comando /carrocasa (id da casa) (id do carro) era pra criar um carro, salvar a posicao daquele carro e setar aquele carro atravйs de variбveis como sendo o carro daquela casa. ( o comando pede o id de uma casa ).

por exemplo, se eu der /carrocasa 0 560 44 44 , estou dizendo que quero criar um carro modelo 560 cores 44 , para casa id 0.

O carro criado, era para aparecer um text3d nele, assim : ID dele , ID casa, Dono. ( formatadas na text3d)
e toda vez que ligar o servidor, o gm ler aquele carro salvo ( os arquivos dof2 ) criar o carro no lugar ...




mas quando eu uso o comando /carrocasa, o texto 3d da casa some ... n tem nada ver uma coisa com a outra.
blz, o carro й criado, os arquivos salvos ( id do carro, posicao, id da casa , dono (que vai ser ninguem no caso da casa sem dono. )

a text3d do carro nao aparece.
o primeiro carro criado nгo й salva as informaзхes, sу salva o segundo em diante.
Reply
#10

mas tarde eu faзo o cуdigo para vocк, espere eu terminar de fazer meu sistema bancбrio.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)