[Ajuda] MapAndreas - Detectar possнvel bloqueio
#5

Crl, eu tava encucado com essa bagaзa hoje e fiz vбrios testes, atй que coloquei um debug, esse debug mostrou que o mapandreas nгo estava mais sendo carregado ;S

Daн eu fui ver exemplos de scripts com o mapandreas e percebi que precisava disso no OnGamemodeInit: MapAndreas_Init(MAP_ANDREAS_MODE_FULL);

Eu achei que nгo havia necessidade disso pois eu estava testando com o Fs de teste do mapandreas carregado, ele ja carregava o mapandreas pra mim =*

Code final dele:
pawn Код:
#include    a_samp
#include    mapandreas


main()
{
    printf("Gamemode KoIntelligence powered by Kuddy carregado");
    printf("Todos os direitos reservados a KomanZ");
}


new KoB;
public OnGameModeInit()
{
    printf("Iniciando KoIntelligence...");

    SetGameModeText("KoIntelligence");
    AddPlayerClass(0,2034.9125,1336.2625,10.8203,349.3566,0,0,0,0,0,0);
    KoB = CreateObject(1243, 2043.06, 1354.30, 7.37,   0.00, 0.00, 0.00);
    SetTimer("UpdateNPC", 500, true);
    MapAndreas_Init(MAP_ANDREAS_MODE_FULL);

    /*new time = GetTickCount();
    new Float:loopar;
    for(new i; i < 1000000; i++)
    {
        loopar = loopar + random(10);
        MapAndreas_FindZ_For2DCoord(loopar,loopar,pz);
    }
    time = GetTickCount() - time;
    printf("%d MS", time);
    Resultado: 118 MS
    */



    return 1;
}

forward UpdateNPC();
public UpdateNPC()
{
    new Float:x, Float:y, Float:z, Float:px, Float:py, Float:pz;
    GetPlayerPos(0, px, py, pz);

    //MoveObject(KoB, px, py, pz, 2);
    GetObjectPos(KoB, x,y,z);
    MapAndreas_FindZ_For2DCoord(x,y,z);
    //MapAndreas_FindZ_For2DCoord(px,py,pz);
    AtualizarPos(x,y,z,px,py,pz);
    return 1;
}

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;
    outX = x; outY = y; outZ = z;

    if(valorx < 0)
    {
        //SendClientMessageToAll(-1, "valorx > x");
        new Float:preview = x + 1, Float:zprev;
        MapAndreas_FindZ_For2DCoord(preview, y, zprev);
        if(zprev < z + 2 && zprev > z - 2)
        {
            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 + 2 && zprev > z - 2)
        {
             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 + 2 && zprev > z - 2)
        {
            outY = y - 1;
            outZ = zprev;
        }
    }
    MapAndreas_FindZ_For2DCoord(outX, outY, outZ);
    // debug
    new str[128];
    format(str,128,"Movendo para: {0000FF}%f, {FF0000}%f, {00FF00}%f",outX, outY, outZ);
    SendClientMessageToAll(-1, str);
    MoveObject(KoB, outX, outY, outZ, 2);
    return 1;
}

public OnGameModeExit()
{
    return 1;
}

public OnPlayerRequestClass(playerid, classid)
{
    SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746);
    SetPlayerCameraPos(playerid, 1958.3783, 1343.1572, 15.3746);
    SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746);
    return 1;
}
Sua lуgica estб correta tambйm Bruno, sу que meu erro nгo estava na lуgica :*
Enfim, obrigado =D
Agora й sу eu fazer a inteligencia artificial para o bixinho e vamo ve como fica *-*

Vнdeo de como estб o code acima in-game:

[ame]http://www.youtube.com/watch?v=LC2-LIZ1uZ4[/ame]
Reply


Messages In This Thread
MapAndreas - Detectar possнvel bloqueio - by Kuddy - 15.08.2012, 22:42
Re: MapAndreas - Detectar possнvel bloqueio - by ipsBruno - 15.08.2012, 23:47
Re: MapAndreas - Detectar possнvel bloqueio - by Kuddy - 16.08.2012, 00:03
Re: MapAndreas - Detectar possнvel bloqueio - by ipsBruno - 16.08.2012, 00:22
Re: MapAndreas - Detectar possнvel bloqueio - by Kuddy - 16.08.2012, 14:50
Re: MapAndreas - Detectar possнvel bloqueio - by leonardo1434 - 16.08.2012, 15:18
Re: MapAndreas - Detectar possнvel bloqueio - by Kuddy - 16.08.2012, 15:25
Re: MapAndreas - Detectar possнvel bloqueio - by leonardo1434 - 16.08.2012, 15:29
Re: MapAndreas - Detectar possнvel bloqueio - by EduardoRFS - 16.08.2012, 16:39
Re: MapAndreas - Detectar possнvel bloqueio - by ipsBruno - 16.08.2012, 20:37

Forum Jump:


Users browsing this thread: 3 Guest(s)