21.06.2012, 20:49
Eu estou tentando mecher no sistema de casa do los Lhouse 2.0 forum.sa-mp.com/showthread.php?t=326008
So que estou com um bug, quando eu dou gmx, ou desligo o servidor, de qualquer forma, o sistema vai bugar, a print ja diz tudo:
http://i46.tinypic.com/29w0rqw.jpg
Aqui o cуdigo que faz o carregamento da casa:
OnGameModeExit
OnGameModeInit
OnGameModeInit
Alguйm poderia me ajudar, ja estou quase desistindo por causa desse sistema de casa, ja testei uns 10 sistema inclusive a maioria ingles, e sempre com o mesmo bug, sу achei um que funcionava corretamente apos o gmx sу que nгo era como eu queria.
So que estou com um bug, quando eu dou gmx, ou desligo o servidor, de qualquer forma, o sistema vai bugar, a print ja diz tudo:
http://i46.tinypic.com/29w0rqw.jpg
Aqui o cуdigo que faz o carregamento da casa:
OnGameModeExit
pawn Код:
SalvarCasas();
DOF2_Exit();
new StringLog[ 700 ];
format(StringLog, sizeof(StringLog), "[ LHOUSE LOGS ] ----------- SISTEMA FINALIZADO -----------");
EscreverLog(LogSystem, StringLog);
pawn Код:
public SalvarCasas()
{
new Arquivo[200];
foreach(new casaid : Casas)
{
format(Arquivo, sizeof(Arquivo), "LHouse/Casas/Casa %d.txt", casaid);
if(DOF2_FileExists(Arquivo))
{
DOF2_SetInt(Arquivo, "ID", casaid);
DOF2_SetInt(Arquivo, "Preзo", CasaI[casaid][Preco]);
DOF2_SetString(Arquivo, "Dono", CasaI[casaid][Dono]);
DOF2_SetString(Arquivo, "Locador", CasaI[casaid][Locador]);
DOF2_SetInt(Arquivo, "Status", CasaI[casaid][Status]);
DOF2_SetInt(Arquivo, "Interior", CasaI[casaid][Interior]);
DOF2_SetFloat(Arquivo, "PosX", CasaI[casaid][CasaX]);
DOF2_SetFloat(Arquivo, "PosY", CasaI[casaid][CasaY]);
DOF2_SetFloat(Arquivo, "PosZ", CasaI[casaid][CasaZ]);
DOF2_SetFloat(Arquivo, "InteriorX", CasaI[casaid][IntX]);
DOF2_SetFloat(Arquivo, "InteriorY", CasaI[casaid][IntY]);
DOF2_SetFloat(Arquivo, "InteriorZ", CasaI[casaid][IntZ]);
DOF2_SetFloat(Arquivo, "InteriorFA", CasaI[casaid][IntFA]);
DOF2_SetInt(Arquivo, "VirtualWorld", CasaI[casaid][VirtualWorld]);
DOF2_SetInt(Arquivo, "AluguelAtivado", CasaI[casaid][AluguelAtivado]);
DOF2_SetInt(Arquivo, "AluguelPreзo", CasaI[casaid][AluguelPreco]);
DOF2_SetInt(Arquivo, "ModeloCarro", CarroI[casaid][CarroModelo]);
DOF2_SetFloat(Arquivo, "CarroX", CarroI[casaid][CarroX]);
DOF2_SetFloat(Arquivo, "CarroY", CarroI[casaid][CarroY]);
DOF2_SetFloat(Arquivo, "CarroZ", CarroI[casaid][CarroZ]);
DOF2_SetFloat(Arquivo, "Angulo", CarroI[casaid][Angulo]);
DOF2_SetInt(Arquivo, "Cor1", CarroI[casaid][CarroCor1]);
DOF2_SetInt(Arquivo, "Cor2", CarroI[casaid][CarroCor2]);
DOF2_SetInt(Arquivo, "StatusCarro", CarroI[casaid][StatusCarro]);
DOF2_SetInt(Arquivo, "Valor", CarroI[casaid][PrecoCarro]);
DOF2_SetInt(Arquivo, "TempoRespawn", CarroI[casaid][TempoRespawn]);
DOF2_SetString(Arquivo, "Placa", CarroI[casaid][PlacaCarro]);
return 1;
}
}
return 1;
}
pawn Код:
CriarCasasEx();
CriarCarrosCasasEx();
CriarLogs();
foreach(new casaid : Casas)
{
if(CarroI[casaid][CarroModelo] != 0)
{
new textlabel[ 200 ], NomeStatus[ 20 ];
if(CarroI[casaid][StatusCarro] == 1) NomeStatus = "Trancado";
else if(CarroI[casaid][StatusCarro] == 0) NomeStatus = "Destrancado";
format(textlabel, sizeof(textlabel), TextCarroCasa, CasaI[casaid][Dono], NomeStatus, casaid);
LabelCarro[casaid] = Create3DTextLabel(textlabel, -1, 0.0, 0.0, 0.0, 20.0, 0, 0);
Attach3DTextLabelToVehicle(LabelCarro[casaid], CarroI[casaid][CarroCasa], 0.0, 0.0, 0.0);
SetVehicleNumberPlate(CarroI[casaid][CarroCasa], CarroI[casaid][PlacaCarro]);
}
}
print("| ");
print("| Sistema de casas carregado com sucesso. ");
print("| ");
print("|========================= LHOUSE ========================");
new StringLog[ 700 ];
format(StringLog, sizeof(StringLog), "[ LHOUSE LOGS ] ----------- SISTEMA INICIADO -----------");
EscreverLog(LogSystem, StringLog);
SetTimer("RebocarCarro", 60000*3, true);
SetTimer("CobrarAluguel", 1000, true);
SetTimer("SalvarCasas", 60000*10, true);
//=============================== [ TEXTDRAWS ] ============================//
CasaTrancada = TextDrawCreate(445.000000, 306.000000, "Casa Trancada!");
TextDrawBackgroundColor(CasaTrancada, 255);
TextDrawFont(CasaTrancada, 1);
TextDrawLetterSize(CasaTrancada, 0.789999, 3.599998);
TextDrawColor(CasaTrancada, -16776961);
TextDrawSetOutline(CasaTrancada, 0);
TextDrawSetProportional(CasaTrancada, 1);
TextDrawSetShadow(CasaTrancada, 1);
CasaDestrancada = TextDrawCreate(404.000000, 306.000000, "Casa Destrancada!");
TextDrawBackgroundColor(CasaDestrancada, 255);
TextDrawFont(CasaDestrancada, 1);
TextDrawLetterSize(CasaDestrancada, 0.789999, 3.599998);
TextDrawColor(CasaDestrancada, 16711935);
TextDrawSetOutline(CasaDestrancada, 0);
TextDrawSetProportional(CasaDestrancada, 1);
TextDrawSetShadow(CasaDestrancada, 1);
CarroTrancado = TextDrawCreate(430.000000, 306.000000, "Carro Trancado!");
TextDrawBackgroundColor(CarroTrancado, 255);
TextDrawFont(CarroTrancado, 1);
TextDrawLetterSize(CarroTrancado, 0.789999, 3.599998);
TextDrawColor(CarroTrancado, -16776961);
TextDrawSetOutline(CarroTrancado, 0);
TextDrawSetProportional(CarroTrancado, 1);
TextDrawSetShadow(CarroTrancado, 1);
CarroDestrancado = TextDrawCreate(389.000000, 306.000000, "Carro Destrancado!");
TextDrawBackgroundColor(CarroDestrancado, 255);
TextDrawFont(CarroDestrancado, 1);
TextDrawLetterSize(CarroDestrancado, 0.789999, 3.599998);
TextDrawColor(CarroDestrancado, 16711935);
TextDrawSetOutline(CarroDestrancado, 0);
TextDrawSetProportional(CarroDestrancado, 1);
TextDrawSetShadow(CarroDestrancado, 1);
AluguelDesativado = TextDrawCreate(384.000000, 306.000000, "Aluguel Desativado!");
TextDrawBackgroundColor(AluguelDesativado, 255);
TextDrawFont(AluguelDesativado, 1);
TextDrawLetterSize(AluguelDesativado, 0.789999, 3.599998);
TextDrawColor(AluguelDesativado, -16776961);
TextDrawSetOutline(AluguelDesativado, 0);
TextDrawSetProportional(AluguelDesativado, 1);
TextDrawSetShadow(AluguelDesativado, 1);
AluguelA = TextDrawCreate(426.000000, 306.000000, "Aluguel Ativado!");
TextDrawBackgroundColor(AluguelA, 255);
TextDrawFont(AluguelA, 1);
TextDrawLetterSize(AluguelA, 0.789999, 3.599998);
TextDrawColor(AluguelA, 16711935);
TextDrawSetOutline(AluguelA, 0);
TextDrawSetProportional(AluguelA, 1);
TextDrawSetShadow(AluguelA, 1);
CarroVendido = TextDrawCreate(441.000000, 306.000000, "Carro Vendido!");
TextDrawBackgroundColor(CarroVendido, 255);
TextDrawFont(CarroVendido, 1);
TextDrawLetterSize(CarroVendido, 0.789999, 3.599998);
TextDrawColor(CarroVendido, -16776961);
TextDrawSetOutline(CarroVendido, 0);
TextDrawSetProportional(CarroVendido, 1);
TextDrawSetShadow(CarroVendido, 1);
CasaVendida = TextDrawCreate(456.000000, 306.000000, "Casa Vendida!");
TextDrawBackgroundColor(CasaVendida, 255);
TextDrawFont(CasaVendida, 1);
TextDrawLetterSize(CasaVendida, 0.789999, 3.599998);
TextDrawColor(CasaVendida, -16776961);
TextDrawSetOutline(CasaVendida, 0);
TextDrawSetProportional(CasaVendida, 1);
TextDrawSetShadow(CasaVendida, 1);
CasaEditada = TextDrawCreate(465.000000, 306.000000, "Casa Editada!");
TextDrawBackgroundColor(CasaEditada, 255);
TextDrawFont(CasaEditada, 1);
TextDrawLetterSize(CasaEditada, 0.789999, 3.599998);
TextDrawColor(CasaEditada, 16711935);
TextDrawSetOutline(CasaEditada, 0);
TextDrawSetProportional(CasaEditada, 1);
TextDrawSetShadow(CasaEditada, 1);
BemVindo = TextDrawCreate(489.000000, 306.000000, "Bem Vindo!");
TextDrawBackgroundColor(BemVindo, 255);
TextDrawFont(BemVindo, 1);
TextDrawLetterSize(BemVindo, 0.789999, 3.599998);
TextDrawColor(BemVindo, 16711935);
TextDrawSetOutline(BemVindo, 0);
TextDrawSetProportional(BemVindo, 1);
TextDrawSetShadow(BemVindo, 1);
VolteSempre = TextDrawCreate(452.000000, 306.000000, "Volte Sempre!");
TextDrawBackgroundColor(VolteSempre, 255);
TextDrawFont(VolteSempre, 1);
TextDrawLetterSize(VolteSempre, 0.789999, 3.599998);
TextDrawColor(VolteSempre, 16711935);
TextDrawSetOutline(VolteSempre, 0);
TextDrawSetProportional(VolteSempre, 1);
TextDrawSetShadow(VolteSempre, 1);
CasaCriada = TextDrawCreate(478.000000, 306.000000, "Casa Criada!");
TextDrawBackgroundColor(CasaCriada, 255);
TextDrawFont(CasaCriada, 1);
TextDrawLetterSize(CasaCriada, 0.789999, 3.599998);
TextDrawColor(CasaCriada, 16711935);
TextDrawSetOutline(CasaCriada, 0);
TextDrawSetProportional(CasaCriada, 1);
TextDrawSetShadow(CasaCriada, 1);
SemAuto = TextDrawCreate(412.000000, 306.000000, "Sem Autorizacao!");
TextDrawBackgroundColor(SemAuto, 255);
TextDrawFont(SemAuto, 1);
TextDrawLetterSize(SemAuto, 0.789999, 3.599998);
TextDrawColor(SemAuto, -16776961);
TextDrawSetOutline(SemAuto, 0);
TextDrawSetProportional(SemAuto, 1);
TextDrawSetShadow(SemAuto, 1);
CarroCriado = TextDrawCreate(463.000000, 306.000000, "Carro Criado!");
TextDrawBackgroundColor(CarroCriado, 255);
TextDrawFont(CarroCriado, 1);
TextDrawLetterSize(CarroCriado, 0.789999, 3.599997);
TextDrawColor(CarroCriado, 16711935);
TextDrawSetOutline(CarroCriado, 0);
TextDrawSetProportional(CarroCriado, 1);
TextDrawSetShadow(CarroCriado, 1);
CasaDeletada = TextDrawCreate(446.000000, 306.000000, "Casa Deletada!");
TextDrawBackgroundColor(CasaDeletada, 255);
TextDrawFont(CasaDeletada, 1);
TextDrawLetterSize(CasaDeletada, 0.789999, 3.599997);
TextDrawColor(CasaDeletada, -16776961);
TextDrawSetOutline(CasaDeletada, 0);
TextDrawSetProportional(CasaDeletada, 1);
TextDrawSetShadow(CasaDeletada, 1);
CarroComprado = TextDrawCreate(415.000000, 306.000000, "Carro Comprado!");
TextDrawBackgroundColor(CarroComprado, 255);
TextDrawFont(CarroComprado, 1);
TextDrawLetterSize(CarroComprado, 0.789999, 3.599997);
TextDrawColor(CarroComprado, 16711935);
TextDrawSetOutline(CarroComprado, 0);
TextDrawSetProportional(CarroComprado, 1);
TextDrawSetShadow(CarroComprado, 1);
CarroModificado = TextDrawCreate(407.000000, 306.000000, "Carro Modificado!");
TextDrawBackgroundColor(CarroModificado, 255);
TextDrawFont(CarroModificado, 1);
TextDrawLetterSize(CarroModificado, 0.789999, 3.599997);
TextDrawColor(CarroModificado, 16711935);
TextDrawSetOutline(CarroModificado, 0);
TextDrawSetProportional(CarroModificado, 1);
TextDrawSetShadow(CarroModificado, 1);
pawn Код:
stock CriarCasasEx()
{
new casas;
foreach(new casaid : Casas)
{
new Arquivo[ 200 ], NomeStatus[ 20 ], textlabel[ 250 ], NomeAluguel[ 20 ];
format(Arquivo, sizeof(Arquivo), "LHouse/Casas/Casa %d.txt", casaid);
if(DOF2_FileExists(Arquivo))
{
CasaI[casaid][Preco] = DOF2_GetInt(Arquivo, "Preзo");
CasaI[casaid][AluguelAtivado] = DOF2_GetInt(Arquivo, "AluguelAtivado");
CasaI[casaid][CasaX] = DOF2_GetFloat(Arquivo, "PosX");
CasaI[casaid][CasaY] = DOF2_GetFloat(Arquivo, "PosY");
CasaI[casaid][CasaZ] = DOF2_GetFloat(Arquivo, "PosZ");
CasaI[casaid][IntX] = DOF2_GetFloat(Arquivo, "InteriorX");
CasaI[casaid][IntY] = DOF2_GetFloat(Arquivo, "InteriorY");
CasaI[casaid][IntZ] = DOF2_GetFloat(Arquivo, "InteriorZ");
CasaI[casaid][VirtualWorld] = DOF2_GetInt(Arquivo, "VirtualWorld");
CasaI[casaid][Interior] = DOF2_GetInt(Arquivo, "Interior");
CasaI[casaid][Status] = DOF2_GetInt(Arquivo, "Status");
CasaI[casaid][AluguelAtivado] = DOF2_GetInt(Arquivo, "AluguelAtivado");
CasaI[casaid][AluguelPreco] = DOF2_GetInt(Arquivo, "AluguelPreзo");
format(CasaI[casaid][Dono], 24, DOF2_GetString(Arquivo, "Dono"));
format(CasaI[casaid][Locador], 24, DOF2_GetString(Arquivo, "Locador"));
if(CasaI[casaid][Status] == 1) NomeStatus = "Trancada";
else if(CasaI[casaid][Status] == 0) NomeStatus = "Destrancada";
if(CasaI[casaid][AluguelAtivado] == 1) NomeAluguel = "Ativado";
else if(CasaI[casaid][AluguelAtivado] == 0) NomeAluguel = "Desativado";
casas++;
printf("|========================= CASA %d ========================", casaid);
printf("| ");
printf("| X: %f. ", CasaI[casaid][CasaX]);
printf("| Y: %f. ", CasaI[casaid][CasaY]);
printf("| Z: %f. ", CasaI[casaid][CasaZ]);
printf("| IntX: %f. ", CasaI[casaid][IntX]);
printf("| IntY: %f. ", CasaI[casaid][IntY]);
printf("| IntZ: %f. ", CasaI[casaid][IntZ]);
printf("| VirtualWorld: %d ", CasaI[casaid][VirtualWorld]);
printf("| Interior: %d ", CasaI[casaid][Interior]);
printf("| ");
printf("| Aluguel: %s ", NomeAluguel);
printf("| Status: %s ", NomeStatus);
printf("| ");
printf("| Dono: %s ", CasaI[casaid][Dono]);
printf("| Locador: %s ", CasaI[casaid][Locador]);
printf("| ");
new StringLog[ 700 ];
format(StringLog, sizeof(StringLog), "-------- A CASA DE ID %d FOI CRIADA COM SUCESSO! --------", casaid);
EscreverLog(LogSystem, StringLog);
if(!strcmp(CasaI[casaid][Dono], "Ninguem", true))
{
PickupEntradaCasa[casaid] = CreateDynamicPickup(1273, 1, CasaI[casaid][CasaX], CasaI[casaid][CasaY], CasaI[casaid][CasaZ]);
PickupSaidaCasa[casaid] = CreateDynamicPickup(1318, 1, CasaI[casaid][IntX], CasaI[casaid][IntY], CasaI[casaid][IntZ]);
MapIconCasa[casaid] = CreateDynamicMapIcon(CasaI[casaid][CasaX], CasaI[casaid][CasaY], CasaI[casaid][CasaZ], 31, -1, -1, 0, -1, 100.0);
format(textlabel, sizeof(textlabel), TextCasaVenda, CasaI[casaid][Dono], CasaI[casaid][Preco], NomeStatus, casaid);
LabelCasa[casaid] = CreateDynamic3DTextLabel(textlabel, -1, CasaI[casaid][CasaX], CasaI[casaid][CasaY], CasaI[casaid][CasaZ], 20.0);
}
else
{
if(CasaI[casaid][AluguelAtivado] == 1)
{
PickupEntradaCasa[casaid] = CreateDynamicPickup(1272, 1, CasaI[casaid][CasaX], CasaI[casaid][CasaY], CasaI[casaid][CasaZ]);
PickupSaidaCasa[casaid] = CreateDynamicPickup(1318, 1, CasaI[casaid][IntX], CasaI[casaid][IntY], CasaI[casaid][IntZ]);
MapIconCasa[casaid] = CreateDynamicMapIcon(CasaI[casaid][CasaX], CasaI[casaid][CasaY], CasaI[casaid][CasaZ], 32, -1, -1, 0, -1, 100.0);
format(textlabel, sizeof(textlabel), TextCasaAluguel, CasaI[casaid][Dono], CasaI[casaid][Locador], CasaI[casaid][AluguelPreco], NomeStatus, casaid);
LabelCasa[casaid] = CreateDynamic3DTextLabel(textlabel, -1, CasaI[casaid][CasaX], CasaI[casaid][CasaY], CasaI[casaid][CasaZ], 20.0);
}
else
{
PickupEntradaCasa[casaid] = CreateDynamicPickup(1272, 1, CasaI[casaid][CasaX], CasaI[casaid][CasaY], CasaI[casaid][CasaZ]);
PickupSaidaCasa[casaid] = CreateDynamicPickup(1318, 1, CasaI[casaid][IntX], CasaI[casaid][IntY], CasaI[casaid][IntZ]);
MapIconCasa[casaid] = CreateDynamicMapIcon(CasaI[casaid][CasaX], CasaI[casaid][CasaY], CasaI[casaid][CasaZ], 32, -1, -1, 0, -1, 100.0);
format(textlabel, sizeof(textlabel), TextCasa, CasaI[casaid][Dono], NomeAluguel, NomeStatus, casaid);
LabelCasa[casaid] = CreateDynamic3DTextLabel(textlabel, -1, CasaI[casaid][CasaX], CasaI[casaid][CasaY], CasaI[casaid][CasaZ], 20.0);
}
}
Iter_Add(Casas, casaid);
}
}
if(casas == 0)
{
printf("|======================== LHOUSE =========================");
print("| ");
print("| ATENЗГO: Nгo foi detectado nenhuma casa criada. ");
print("| Para criar uma, logue no servidor, entre na RCON ");
print("| e digite /criarcasa. ");
print("| ");
}
else
{
printf("|======================== LHOUSE =========================");
printf("| ");
printf("| Foram criadas %d casas. ", casas);
printf("| ");
}
return 1;
}