15.08.2012, 22:42
Estou desenvolvendo um sistema de boias assassinas inteligentes. - Sim.
Estou fazendo um sistema para elas desviarem de construзхes grandes, como prйdios, com o auxнlio do MapAndreas.
Estou usando o seguinte code:
Sу que quando desanulo os if(zprev < z + 5 && zprev > z - 5) o NPC comeзa a se descolar na diagonal, mesmo que nгo tenha algo para interromper a passagem dele.
Estou fazendo algo errado, alguem pode me apontar o erro ou me apontar uma outra maneira para detectar se existe uma construзгo na minha frente?
Estou fazendo um sistema para elas desviarem de construзхes grandes, como prйdios, com o auxнlio do MapAndreas.
Estou usando o seguinte code:
pawn Код:
stock AtualizarPos(Float:x, Float:y, Float:z, Float:fx, Float:fy, Float:fz)
{
// Getar direзгo que o objeto estб em relaзгo ao player:
new Float:valorx = x - fx, Float:valory = y - fy, Float:outX,Float:outY, Float:outZ;
if(valorx < 0)
{
//SendClientMessageToAll(-1, "valorx > x");
new Float:preview = x + 1, Float:zprev;
MapAndreas_FindZ_For2DCoord(preview, y, zprev);
if(zprev < z + 5 && zprev > z - 5)
{
outX = x + 1;
}
}
if(valorx > 0)
{
//SendClientMessageToAll(-1, "valorx < x");
new Float:preview = x - 1, Float:zprev;
MapAndreas_FindZ_For2DCoord(preview, y, zprev);
if(zprev < z + 5 && zprev > z - 5)
{
outX = x - 1;
}
}
if(valory < 0)
{
//SendClientMessageToAll(-1, "valorx > y");
new Float:preview = y + 1, Float:zprev;
MapAndreas_FindZ_For2DCoord(x, preview, zprev);
if(zprev < z + 2 && zprev > z - 2)
{
outY = y + 1;
outZ = zprev;
}
}
if(valory > 0)
{
//SendClientMessageToAll(-1, "valorx < y");
new Float:preview = y - 1, Float:zprev;
MapAndreas_FindZ_For2DCoord(x, preview, zprev);
if(zprev < z + 5 && zprev > z - 5)
{
outY = y - 1;
outZ = zprev;
}
}
MoveObject(KoB, outX, outY, outZ+11, 2);
return 1;
}
Estou fazendo algo errado, alguem pode me apontar o erro ou me apontar uma outra maneira para detectar se existe uma construзгo na minha frente?