16/10/2023 13:05
(16/10/2023 11:02)NandoXs Escreveu: Código da public AtualizarServer2
Código:forward AtualizarServer2();
public AtualizarServer2()
{
if(salvandoserver == 1 ) return 1;
String_Gigante[0] = EOS;
new tranc[200];
for(new c; c<MAX_CASAS; c++)
{
if(Casa[c][casaExiste] == 1)
{
format(String_Gigante, 400, "");
if(Casa[c][casaTipo] != 3) format(tranc, 200, "{9C9C9C}Casa ID %d\n\n", c);
else format(tranc, 200, "{9C9C9C}Apartamento ID %d\n\n", c);
strcat(String_Gigante, tranc);
if(!Comparar(Nome(-1), Casa[c][casaDono])) format(tranc, 50, "{ffffff}Dono: {00ffff}%s\n",Casa[c][casaDono]);
else
{
if(Casa[c][casaTipo]!=3)format(tranc, 200, "{00ff00}CASA A VENDA !\n{9C9C9C}Use /comprarcasa para comprar\n{ffffff}Valor da casa: {00ff00}R$ %s\n", ConvertMoney( Casa[c][casaPreco]));
else format(tranc, 200, "{00ff00}APARTAMENTO A VENDA !\n{9C9C9C}Use /comprarcasa para comprar\n{ffffff}Valor do apartamento: {00ff00}R$ %s\n", ConvertMoney( Casa[c][casaPreco]));
}
strcat(String_Gigante, tranc);
if(Casa[c][casaChave] == 0) format(tranc, 50, "{ffffff}Trancada: {00ffff}nao\n");
else format(tranc, 100, "{ffffff}Trancada: {ff0000}SIM\n");
strcat(String_Gigante, tranc);
format(tranc, 150, "{ffffff}Tipo casa: {ffff00}%s\n", tipocasa(Casa[c][casaTipo]));
strcat(String_Gigante, tranc);
format(tranc, 150, "{ffffff}Descricao: {00ffff}%s\n", Casa[c][casaDescricao]);
strcat(String_Gigante, tranc);
format(tranc, 150, "{ffffff}Designer: {00ff00}%s\n", Casa[c][casaDesigner]);
strcat(String_Gigante, tranc);
if(Casa[c][casaChave] == 0)
{
if(Casa[c][casaTipo]!=3)strcat(String_Gigante, "\n{ffffff}Aperte {00ffff}F {ffffff}ou {00ffff}ENTER {ffffff}para\nentrar na casa");
else strcat(String_Gigante, "\n{ffffff}Aperte {00ffff}F {ffffff}ou {00ffff}ENTER {ffffff}para\nentrar no apartamento");
}
if(IsValidDynamic3DTextLabel(Casa[c][casaEntrar3D])) UpdateDynamic3DTextLabelText( Casa[c][casaEntrar3D], 0xffffff99, String_Gigante);
new pla = pegarinfo3( -1,-1,-1,c,-1 );
if(pla != -1)
{
if(vInfo[pla][vGaragem] == 1)format (String_Gigante, sizeof String_Gigante, "{ffff00}Garagem Casa: %d\n{ffffff}Aperte {00ffff}F {ffffff}ou {00ffff}ENTER{ffffff} para\npegar o veiculo", c);
else format(String_Gigante, sizeof String_Gigante, "{ffff00}Garagem Casa: %d\n{ffffff}Saia do veiculo para guardar-lo", c);
}
if(IsValidDynamic3DTextLabel(Casa[c][casaGaragem3D])) UpdateDynamic3DTextLabelText( Casa[c][casaGaragem3D], 0xffffff99, String_Gigante);
if(!Comparar(Nome(-1), Casa[c][casaDono]))
{
if(Casa[c][casaData] != getdate()+7)
{
if(casacontas[c] > 6*60)
{
Casa[c][casaContas] += 200+random(500);
casacontas[c] = 0;
}
casacontas[c] ++;
}
}
}
}
for(new el; el<MAX_CAIXAS_ELETRONICOS; el++)
{
if(CaixaEletronico[el][caixaeletronicoExiste] != 1) continue;
if(CaixaEletronico[el][caixaeletronicoFundos] >= 150000) continue;
if(CaixaEletronico[el][caixaeletronicoHora] >= gettime()) continue;
CaixaEletronico[el][caixaeletronicoHora] = gettime()+60*10;
CaixaEletronico[el][caixaeletronicoFundos] += random(20000);
atualizarcaixaeletronico(el, 1);
}
for(new d; d<MAX_DINAMITES; d++)
{
if(Dinamite[d][dinamiteExiste] == 0) continue;
if(Dinamite[d][dinamiteExiste] == 3) format(String_Gigante, 200, "{ff0000}[ DINAMITE ]\n{ffffff}Dono: {00ffff}%s\n{ffff00}DESARMANDO...", Dinamite[d][dinamiteDono]);
if(Dinamite[d][dinamiteExiste] == 2) format(String_Gigante, 200, "{ff0000}[ DINAMITE ]\n{ffffff}Dono: {00ffff}%s\n{00ff00}INSTALANDO...", Dinamite[d][dinamiteDono]);
if(Dinamite[d][dinamiteExiste] == 1 || Dinamite[d][dinamiteExiste] == 5 ) format(String_Gigante, 200, "{ff0000}[ DINAMITE ]\n{ffffff}Dono: {00ffff}%s\n{ffffff}Explosao: {ffff00}%s", Dinamite[d][dinamiteDono], ConvertTime(Dinamite[d][dinamiteTempo]-gettime()));
if(!IsValidDynamic3DTextLabel(Dinamite[d][dinamite3D])) Dinamite[d][dinamite3D] = CreateDynamic3DTextLabel( String_Gigante, 0xffffff99, Dinamite[d][dinamiteX], Dinamite[d][dinamiteY], Dinamite[d][dinamiteZ], 30, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 1, Dinamite[d][dinamiteMundo], Dinamite[d][dinamiteInterior], -1, STREAMER_3D_TEXT_LABEL_SD, -1, 0 );
UpdateDynamic3DTextLabelText( Dinamite[d][dinamite3D], 0xFFFFFF99,String_Gigante);
if(Dinamite[d][dinamiteExiste] == 1 && Dinamite[d][dinamiteTempo] <= gettime()) explodirdinamite(d);
if(Dinamite[d][dinamiteExiste] == 5 && Dinamite[d][dinamiteTempo] <= gettime()) explodirdinamite(d, 1);
}
for(new po; po<MAX_POSTOS; po++)
{
if(Posto[po][postoExiste] == 1)
{
format(String_Gigante,300,
"{ffff00}[ %s ID %d ]\n\
{ffffff}Preco por Litro: {00ff00}R$ %s\n\n\
{ffffff}Digite {00ffff}/abastecer{ffffff} para\nabastecer seu veiculo aqui", Posto[po][postoNome], po, ConvertMoney(Posto[po][postoPreco]));
if(IsValidDynamic3DTextLabel(Posto[po][posto3D]))UpdateDynamic3DTextLabelText( Posto[po][posto3D], 0xffffff99,String_Gigante);
}
}
for(new de; de<MAX_BEBEDORES; de++)
{
if(Bebedor[de][bebedorExiste] == 1)
{
format(String_Gigante,300,"Bebedor ID %d\nAperte F ou ENTER para\nbeber agua aqui", de);
if(IsValidDynamic3DTextLabel(Bebedor[de][bebedor3D]))UpdateDynamic3DTextLabelText( Bebedor[de][bebedor3D], 0xffffff99,String_Gigante);
}
}
return 1;
}
O conteúdo do seu código é básicamente loopings, e loopings realmente exibem esse aviso no crashdetect. Acho que tem um jeito de desativar esse aviso de long callback do crashdetect, mas tem que ver no github, porque não me recordo de cabeça.
Discente de Sistemas de Informação no Centro Federal de Ensino Tecnológico(CEFET/RJ)
Programador SA-MP desde 2012
Programador SA-MP desde 2012
Não envie dúvidas por inbox, crie um tópico. Sua dúvida pode ser a dúvida de outro alguém, e seu tópico ajudará outras pessoas no futuro.