[Ajuda] Na verdade Duvida
#1

Tipo, criei um sistema de Pinchar paredes, usei aquelas pichaзхes originais do gta, porem eu peguei cada localizaзгo com /save ao todo foram 100 /saves ( canssativo pacara...) ate que o sistema ficou bom.

mais eu queria saber, tem um geito mais facil de pegar as cordenadas? tipo,

pawn Код:
new Float:p[3];
for(new i; i<MAX_OBJECTS; i++)
{
    if( GetObjectModel( i ) == ID DO OBJETO )
    {
        GetObjectPos( i , p[0],p[1],p[2]);
        //  BLA BLA BLA...

    }
}
Pq ja tentei isso e nгo funfou, tem como getar a posiзгo de um objeto original do samp? um objeto que nгo foi criado no pawno ?
Reply
#2

Com o plugin ColAndreas sim. Ele detecta pontos de colisхes do mapa nativo do gta.
Reply
#3

Uma opзгo tbm pode ser IsPlayerInRangeOfPoint + GetPlayerFacingAngle
Com IsPlayerInRangeOfPoint vc verifica se estб na бrea correta para pichar;
Com GetPlayerFacingAngle vc verifica se estб no вngulo certo, ou seja, virado para a parede de forma que nгo mire pra p*ta q pariu e acabe pichando tbm.

E GetPlayerPos acredito que nгo seria mt bom pq seria mt preciso e o player teria trabalho em se posicionar corretamente.
Reply
#4

Explica isso do pinchar paredes sff..
Reply
#5

Vocк nгo vai conseguir um resultado preciso fazendo isso programaticamente, o pool de objetos nativos do GTA й infinitamente imenso, mesmo que fosse usar o MapAndreas vocк teria que fazer um algoritmo com inteligкncia pra achar pra vocк os pontos que seriam legais de ter pixaзгo.

Й melhor vocк continuar pegando os /save e ir inserindo tudo numa array mesmo...
Reply
#6

Sai guardando em arrays sendo que pode simplesmente utilizar um plugin?
Reply
#7

Se vocк foi em cada pixaзгo do GTA offline, й sу abrir os arquivos dos jogos e pegar coordenadas por lб
Reply
#8

Quote:
Originally Posted by RiqueP
Посмотреть сообщение
Sai guardando em arrays sendo que pode simplesmente utilizar um plugin?
Vocк estб falando do ColAndreas ou do MapAndreas?

Independente de usar o plugin ou usar o /save, teria que armazenar os valores em arrays, atй mesmo pra evitar o consumo extenso de memуria que o MapAndreas tem.

O problema mesmo й a precisгo de pegar os pontos pra pixaзгo.

@EDIT

Quote:
Originally Posted by RiqueP
Посмотреть сообщение
Me refiro ao ColAndreas, MapAndreas nгo й mais necessбrio
Entendi, esse plugin nгo й da minha йpoca, nгo conheзo o funcionamento dele, mas para a questгo do tуpico como ele pretende sу pegar os locais 1 vez e ficar usando como spot de pixaзгo, recomendo fortemente armazenar esses valores para que vocкs possam ter um acesso rбpido e econфmico toda vez que o GM for inicializar, ou dependendo da forma como for implementado, toda vez que algum usuбrio for pixar...


Boa sorte com o problema
Reply
#9

Me refiro ao ColAndreas, MapAndreas nгo й mais necessбrio
Reply
#10

Eu armazenei as Cordenadas em uma array, 100 cordenadas ao todo, ficou mais ou menos assim:

pawn Код:
new Float:Paredes[][3] =
{
    {2101.8999,-1648.7445,13.3784},
    {2066.7383,-1652.3737,13.5469},
    {2046.0769,-1635.8932,13.5469},
    {2353.3079,-1508.2950,24.0000},
    {2399.4055,-1551.6996,28.0000},
    {2394.0706,-1468.5391,24.0121},
    {2798.0088,-1097.3805,30.7188},
    {2820.2163,-1190.6593,25.2152},
    {2841.4705,-1313.2809,18.5467},
    {2766.3789,-1197.1327,68.8974},
    {2755.4548,-1388.0945,39.3788},
    {2820.9133,-1465.1416,16.2568},
    {2768.1165,-1621.0995,10.9272},
    {2668.2021,-1469.0280,30.5609},
    {2612.9719,-1391.1147,34.7276},
    {2580.6235,-1273.9955,46.1438},
    {2603.0894,-1197.5500,60.8319},
    {2576.8291,-1143.6080,47.8565},
    {2621.5303,-1092.5306,69.6085},
    {2542.6526,-1363.3110,31.3840},
    {2536.6372,-1352.7332,30.7816},
    {2522.1304,-1478.6094,23.9913},
    {2462.2136,-1541.7008,24.3438},
    {2422.5959,-1682.2874,13.8026},
    {2272.9407,-1687.7472,13.6516},
    {2392.3862,-1914.8727,13.5469},
    {2430.1750,-1998.2266,13.5469},
    {2489.2251,-1958.7487,13.5810},
    {2767.8577,-1820.2358,11.8468},
    {2874.8384,-1909.4299,8.1439},
    {2794.3789,-1906.4811,13.5394},
    {2813.2893,-1941.9644,11.1094},
    {2763.3274,-2011.9749,13.5547},
    {2704.5322,-1966.6975,13.5469},
    {2704.5269,-2144.1021,11.0718},
    {2587.6521,-2063.4644,4.5489},
    {2379.1333,-2166.3738,24.3050},
    {2274.0891,-2266.0989,13.5469},
    {2273.5107,-2529.1394,8.2896},
    {2173.8169,-2165.4272,13.5469},
    {2134.5442,-2011.4589,9.3989},
    {1936.8790,-2135.2297,13.6953},
    {1783.8735,-2156.8774,13.5469},
    {1808.6743,-2092.3113,13.5469},
    {1950.9659,-2034.2926,13.5469},
    {1888.9292,-1982.3615,15.8744},
    {2065.4543,-1897.5503,13.5538},
    {1849.8796,-1877.1688,13.5625},
    {1837.2927,-1813.8574,3.9844},
    {1910.1154,-1779.3378,17.9766},
    {2034.4060,-1801.9717,14.4844},
    {2162.8821,-1786.3999,13.5190},
    {1724.7357,-1741.1658,13.5469},
    {1799.4570,-1708.7432,13.5275},
    {1832.5057,-1627.6245,13.6804},
    {1767.3551,-1617.2205,14.4709},
    {1959.2328,-1577.4310,13.5884},
    {2073.8425,-1579.0393,13.4547},
    {2182.2659,-1467.5552,25.5391},
    {2093.6941,-1413.7849,23.9822},
    {2234.2876,-1367.6311,24.5313},
    {2346.5474,-1351.0964,24.0177},
    {2322.7349,-1254.4380,22.5000},
    {2224.7529,-1193.3546,25.6785},
    {2132.1880,-1258.4133,23.9922},
    {2119.2212,-1196.2839,23.8170},
    {2076.4365,-1070.9730,27.0974},
    {2122.4004,-1060.7567,25.0994},
    {2281.8037,-1118.9329,26.8984},
    {2239.9299,-999.4736,59.5901},
    {2062.3838,-996.4097,47.9766},
    {1732.3271,-963.3707,40.9012},
    {1912.2151,-1064.4486,24.1247},
    {1966.9576,-1175.0620,20.0307},
    {1969.2821,-1289.7046,23.9844},
    {1974.1681,-1351.8198,23.8475},
    {1746.8007,-1359.4194,15.7672},
    {1687.2396,-1238.7942,14.9844},
    {1498.6663,-1207.0203,23.5968},
    {1519.7661,-1010.9248,23.8561},
    {1073.1946,-1012.9975,34.8428},
    {944.1796,-985.4999,38.6816},
    {1206.5790,-1161.8765,23.5013},
    {1098.5092,-1292.4561,17.0469},
    {1295.1133,-1464.8752,10.0469},
    {1549.8969,-1714.8555,13.5469},
    {1448.2312,-1755.5541,13.5469},
    {1332.2631,-1722.6406,13.5469},
    {1271.5220,-1662.6139,19.7344},
    {947.8266,-1466.7234,17.1484},
    {730.3750,-1482.3228,1.9688},
    {583.7808,-1502.0045,15.2976},
    {466.6889,-1283.1659,15.4344},
    {399.3476,-2066.9395,10.7472},
    {482.5802,-1761.9303,5.5387},
    {810.8022,-1797.3429,13.0234},
    {1070.8396,-1863.7040,13.5469},
    {1119.0947,-2008.4969,74.4297},
    {1624.5603,-2296.5613,13.5387},
    {1574.4587,-2691.9722,13.6207}

};



if (HOLDING( KEY_FIRE ))
    {
        new str[300];
        for(new p; p<MAX_PAREDES; p++)
        {
            if(IsPlayerInRangeOfPoint(playerid,0.9,Paredes[p][0],Paredes[p][1],Paredes[p][2]))
            {
                if(GetPlayerWeapon(playerid) == 41)
                {
                    if(PlayerInfo[playerid][Org] == 5 ||PlayerInfo[playerid][Org] == 6 ||PlayerInfo[playerid][Org] == 7 ||PlayerInfo[playerid][Org] == 8 ||PlayerInfo[playerid][Org] == 9 ||PlayerInfo[playerid][Org] == 10 )
                    {
                        if(Pichando[playerid] == 0)
                        {
                            if(ParedeInfo[p][ParedeDono] == PlayerInfo[playerid][Org]) return SendClientMessage(playerid,-1,"{a4a4a4}Esta Pichaзгo jб pertence a sua Organizaзгo.");
                            Pichando[playerid]=1;
                            TempoPichando[playerid] = 1;
                            TimerPichar[playerid] = SetTimerEx("Pichar", 250, 1, "i", playerid);
                            format(str,300,"{ffffff}[ {999999}Pichaзгo {ffffff}] {00bfff}%s dos %s esta Pichando uma parede de vocкs!",Nome(playerid),OrgPlayer(playerid));
                            for(new i; i<MAX_PLAYERS; i++)
                            {
                                if(ParedeInfo[p][ParedeDono] != 0 && PlayerInfo[i][Org] == ParedeInfo[p][ParedeDono])
                                {
                                    SendClientMessage(i,-1, str);
                                }
                            }
                        }
                    }
                }
            }
        }
    }
nao tive problemas ate agora, meu erro foi nao armazenar a rotaзгo quando dei /save, eu poderia setar a rotaзгo do player virado pra parede contante mente no timer, mais tudo bem, o sistema em sim ficou bom, talvez eu atualize com as rotaзхes.

Obg a todos que tiraram minha duvida.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)