Portal SAMP
[Ajuda] Salvar coordenada em unica variavel - Versão de Impressão

+- Portal SAMP (https://portalsamp.com)
+-- Fórum: SA-MP (https://portalsamp.com/forumdisplay.php?fid=5)
+--- Fórum: Área de suporte (https://portalsamp.com/forumdisplay.php?fid=6)
+--- Tópico: [Ajuda] Salvar coordenada em unica variavel (/showthread.php?tid=1174)



Salvar coordenada em unica variavel - MateusCandido - 10/05/2021

Gostaria de saber se é possivel salvar toda uma coordenada em apenas 1 variável para depois reutilizar?

Como por exemplo, ao invés de fazer assim:
Código:
new Float:Variavel[3];
Variavel[0] = 100.0;
Variavel[1] = 200.0;
Variavel[2] = 300.0;


CreateObject(Variavel[0], Variavel[1], Variavel[2]);

Fazer assim:
Código:
new Float:Variavel[3];
Variavel[3] = { 100.0, 200.0, 300.0 };

CreateObject(Variavel[0], Variavel[1], Variavel[2]);


Queria saber se tem como, pois preciso fazer um sistema que vai utilizar muitas coordenadas, e assim reduziria o codigo, mas sempre que eu tento fazer desta segunda forma recebo erros falando que precisa ser string ou que o valor da array não esta de acordo com a definição.


RE: Salvar coordenada em unica variavel - Burunu - 10/05/2021

(10/05/2021 14:09)MateusCandido Escreveu: Gostaria de saber se é possivel salvar toda uma coordenada em apenas 1 variável para depois reutilizar?

Como por exemplo, ao invés de fazer assim:
Código:
new Float:Variavel[3];
Variavel[0] = 100.0;
Variavel[1] = 200.0;
Variavel[2] = 300.0;


CreateObject(Variavel[0], Variavel[1], Variavel[2]);

Fazer assim:
Código:
new Float:Variavel[3];
Variavel[3] = { 100.0, 200.0, 300.0 };

CreateObject(Variavel[0], Variavel[1], Variavel[2]);


Queria saber se tem como, pois preciso fazer um sistema que vai utilizar muitas coordenadas, e assim reduziria o codigo, mas sempre que eu tento fazer desta segunda forma recebo erros falando que precisa ser string ou que o valor da array não esta de acordo com a definição.

É possível sim! Além disso, é possível salvar mais de uma posição(X,Y,Z) em apenas uma variável.
Ex:
Código PHP:
new Float:Variavel[8][3] = 
{
     {1518.3596,-1459.9932,9.5000},
     {1606.9006,-1427.1610,13.4378},
     {1641.3010,-1304.1602,15.7496},
     {1641.3010,-1304.1602,15.7496},
     {1852.5596,-1226.3092,17.5544},
     {1772.5421,-1166.5100,23.6560},
     {1671.8254,-1159.1508,23.6563},
     {1599.1776,-1009.4454,23.9063}
}; 



RE: Salvar coordenada em unica variavel - MateusCandido - 11/05/2021

(10/05/2021 15:59)Burunu Escreveu:
(10/05/2021 14:09)MateusCandido Escreveu: Gostaria de saber se é possivel salvar toda uma coordenada em apenas 1 variável para depois reutilizar?

Como por exemplo, ao invés de fazer assim:
Código:
new Float:Variavel[3];
Variavel[0] = 100.0;
Variavel[1] = 200.0;
Variavel[2] = 300.0;


CreateObject(Variavel[0], Variavel[1], Variavel[2]);

Fazer assim:
Código:
new Float:Variavel[3];
Variavel[3] = { 100.0, 200.0, 300.0 };

CreateObject(Variavel[0], Variavel[1], Variavel[2]);


Queria saber se tem como, pois preciso fazer um sistema que vai utilizar muitas coordenadas, e assim reduziria o codigo, mas sempre que eu tento fazer desta segunda forma recebo erros falando que precisa ser string ou que o valor da array não esta de acordo com a definição.

É possível sim! Além disso, é possível salvar mais de uma posição(X,Y,Z) em apenas uma variável.
Ex:
Código PHP:
new Float:Variavel[8][3] = 
{
     {1518.3596,-1459.9932,9.5000},
     {1606.9006,-1427.1610,13.4378},
     {1641.3010,-1304.1602,15.7496},
     {1641.3010,-1304.1602,15.7496},
     {1852.5596,-1226.3092,17.5544},
     {1772.5421,-1166.5100,23.6560},
     {1671.8254,-1159.1508,23.6563},
     {1599.1776,-1009.4454,23.9063}
}; 

Sim, eu faço uso de matrizes, só que eu preciso definir as coordenadas após criar a array...

Estou fazendo assim:
Código:
//Fora da chave
new Float:Var[1][3];


//Dentro da chave
Var[1][3] = { {100.0, 200.0, 300.0} };
Porém sempre recebo "(error) array index out of bounds" e "(error) must be assigned to an array"


RE: Salvar coordenada em unica variavel - ipsLuan - 13/05/2021

Use como exemplo:

Código PHP:
new Float:Rotas_Plantar[][11] =
{
    {-
2501.8293,-2580.5286,70.2651},
    {-2497.5786,-2580.3533,70.4259},
    {-2490.8821,-2580.6663,70.6557},
    {-2487.6008,-2580.6702,70.7743},
    {-2485.4519,-2583.6624,70.7321},
    {-2490.4270,-2585.0120,70.4979},
    {-2484.4314,-2587.9077,70.5988},
    {-2494.3198,-2589.3127,70.1846},
    {-2502.8594,-2586.8796,69.9731},
    {-2496.6804,-2583.9797,70.3130}
}

new 
rand random(sizeof(Rotas_Plantar));

SetPlayerCheckpoint(playeridRotas_Plantar[rand][0], Rotas_Plantar[rand][1], Rotas_Plantar[rand][2], 1.0);

            



RE: Salvar coordenada em unica variavel - MateusCandido - 17/05/2021

(13/05/2021 08:57)ipsLuan Escreveu: Use como exemplo:

Código PHP:
new Float:Rotas_Plantar[][11] =
{
    {-2501.8293,-2580.5286,70.2651},
    {-2497.5786,-2580.3533,70.4259},
    {-2490.8821,-2580.6663,70.6557},
    {-2487.6008,-2580.6702,70.7743},
    {-2485.4519,-2583.6624,70.7321},
    {-2490.4270,-2585.0120,70.4979},
    {-2484.4314,-2587.9077,70.5988},
    {-2494.3198,-2589.3127,70.1846},
    {-2502.8594,-2586.8796,69.9731},
    {-2496.6804,-2583.9797,70.3130}
}

new 
rand random(sizeof(Rotas_Plantar));

SetPlayerCheckpoint(playeridRotas_Plantar[rand][0], Rotas_Plantar[rand][1], Rotas_Plantar[rand][2], 1.0);

            
Você passou exatamente a mesma coisa que o rapaz de cima falou, eu sei usar matrizes desta forma, mas eu preciso setar as informações APÓS criar a matriz e não quando crio ela.