SA-MP Forums

Go Back   SA-MP Forums > Non-English > Languages > Português/Portuguese

Reply
 
Thread Tools Display Modes
Old 11/08/2018, 12:02 AM   #8791
uliano
Big Clucker
 
uliano's Avatar
 
Join Date: Oct 2015
Location: Limeira-SP
Posts: 122
Reputation: 0
Default Re: Dúvidas Curtas #1

Um Pedido (Não quis criar um topico) Quero um sistema de sede/fome/sono, ou uma base,video de como criar pfv,
Obgd
__________________


Avaliar o Servidor

Fórum
uliano is offline   Reply With Quote
Old 11/08/2018, 12:32 AM   #8792
Vithinn
Big Clucker
 
Vithinn's Avatar
 
Join Date: Oct 2016
Location: São Paulo
Posts: 80
Reputation: 50
Default Re: Dúvidas Curtas #1

Quote:
Originally Posted by uliano View Post
Um Pedido (Não quis criar um topico) Quero um sistema de sede/fome/sono, ou uma base,video de como criar pfv,
Obgd
http://forum.sa-mp.com/showthread.php?t=548602

Só usar a aba search.
__________________
Released Hogwarts RP/G
Vithinn is offline   Reply With Quote
Old 14/08/2018, 10:33 PM   #8793
Guscooby
Big Clucker
 
Guscooby's Avatar
 
Join Date: Jun 2017
Location: Arapoti - Paraná - Brazil
Posts: 125
Reputation: 4
Default Re: Dúvidas Curtas #1

queria saber como mover dois objetos para um novo lugar, respeitando as distâncias entre eles :V
rotação tmb ;/
Guscooby is offline   Reply With Quote
Old 14/08/2018, 11:44 PM   #8794
GRiMMREAPER
Huge Clucker
 
GRiMMREAPER's Avatar
 
Join Date: Jan 2018
Posts: 232
Reputation: 64
Default Re: Dúvidas Curtas #1

Quote:
Originally Posted by Guscooby View Post
queria saber como mover dois objetos para um novo lugar, respeitando as distâncias entre eles :V
rotação tmb ;/
Vamos admitir que A e B são dois pontos no espaço 3D, tais que:

A = [a1, a2, a3]
B = [b1, b2, b3]


k[k1, k2, k3], sendo k o vetor que define o movimento dos pontos A e B no espaço 3D.

C e D representam, respetivamente, as novas coordenadas dos pontos A e B depois de aplicado o movimento definido pelo vetor k em cada um deles.

Então, temos que:

C = [a1 + k1, a2 + k2, a3 + k3]
D = [b1 + k1, b2 + k2, b3 + k3]


No fundo, a o valor da distância entre as coordenadas tem de se manter após o movimento.

----

Exemplo:

A = [3, 2, 1]
B = [5, 1, 6]


Vamos aplicar o movimento segundo o vetor k[6, 2, 6].

C = [9, 4, 7]
D = [11, 3, 12]



Clica na imagem para ver na resolução original.

Este conceito funciona para quaisquer pontos no espaço 2D/3D.

---

pawn Code:
#include <a_samp>
#include <streamer>
#include <sscanf2>
#include <Pawn.CMD>

main() {}

new g_Objects[2];

public OnGameModeInit() {
    g_Objects[0] = CreateDynamicObject(2000, 165.72412, 1718.35168, 16.62031,   0.00000, 0.00000, 0.00000); // A
    g_Objects[1] = CreateDynamicObject(2000, 160.16754, 1727.65771, 16.62031,   0.00000, 0.00000, 0.00000); // B
    return 1;
}

CMD:mover(playerid, params[]) {
    // Pôr o objeto 0 na posição desejada
    // A = (3, 2)
    // B = (5, 6)

    // C = (6, 0) -> A depois de uma transformação
    // D = (8, 4)

    new Float:newPos[3], // Nova posição do objeto A.
        Float:aObjPos[3], // Posição inicial do objeto A.
        Float:bObjPos[3], // Posição inicial do objeto B.
        Float:distance[3]; // Diferença entre coordenadas do objeto A e B.

    if(sscanf(params, "fff", newPos[0], newPos[1], newPos[2])) return SendClientMessage(playerid, -1, "Uso: /mover Float:x Float:y Float:z");

    GetDynamicObjectPos(g_Objects[0], aObjPos[0], aObjPos[1], aObjPos[2]); // Obter as coordenadas do objeto A, passadas por referência para os elementos da array aObjPos.
    GetDynamicObjectPos(g_Objects[1], bObjPos[0], bObjPos[1], bObjPos[2]); // Obter as coordenadas do objeto B, passadas por referência para os elementos da array bObjPos.

    // Calcular a diferença entre as coordenadas dos objetos
    //distance[0] = bObjPos[0] - aObjPos[0];
    //distance[1] = bObjPos[1] - aObjPos[1];
    //distance[2] = bObjPos[2] - aObjPos[2];

    for(new i = 0; i < sizeof distance; i++) {
        distance[i] = bObjPos[i] - aObjPos[i];
    }

    SetDynamicObjectPos(g_Objects[0], newPos[0], newPos[1], newPos[2]); // Aplicar as novas coordenadas apenas ao objeto A.
    SetDynamicObjectPos(g_Objects[1], newPos[0] + distance[0], newPos[1] + distance[1], newPos[2] + distance[2]); // Ao objeto B, aplicamos as coordenadas do objeto A + a distância entre as coordenadas dos mesmos para manter a mesma distância.

    return 1;
}

Last edited by GRiMMREAPER; 15/08/2018 at 10:22 PM.
GRiMMREAPER is offline   Reply With Quote
Old 15/08/2018, 12:36 PM   #8795
GRiMMREAPER
Huge Clucker
 
GRiMMREAPER's Avatar
 
Join Date: Jan 2018
Posts: 232
Reputation: 64
Default Re: Dúvidas Curtas #1

Editei a minha resposta.
GRiMMREAPER is offline   Reply With Quote
Old 18/08/2018, 12:29 AM   #8796
Guscooby
Big Clucker
 
Guscooby's Avatar
 
Join Date: Jun 2017
Location: Arapoti - Paraná - Brazil
Posts: 125
Reputation: 4
Default Re: Dúvidas Curtas #1

Quote:
Originally Posted by GRiMMREAPER View Post
Então man. eu já tinha feito isso e funcionou, mas não sei como mudar a nova Rotação entre os objetos respeitando a antiga. eu não sei bem como explicar...
Mas Muito Obrigado!
Guscooby is offline   Reply With Quote
Old 18/08/2018, 08:30 AM   #8797
GRiMMREAPER
Huge Clucker
 
GRiMMREAPER's Avatar
 
Join Date: Jan 2018
Posts: 232
Reputation: 64
Default Re: Dúvidas Curtas #1

Quote:
Originally Posted by Guscooby View Post
Então man. eu já tinha feito isso e funcionou, mas não sei como mudar a nova Rotação entre os objetos respeitando a antiga. eu não sei bem como explicar...
Mas Muito Obrigado!
Se estás a falar do que eu estou a pensar, podes aplicar o mesmo conceito. Utiliza a função GetDynamicObjectRot para obter a rotação do objeto A e guarda numa variável; Compara as diferença de rotação entre os objetos e guarda numa outra variável, à semelhança de distance. Por fim, usas a função SetDynamicObjectRot para mudar a rotação do objeto A segundo as coordenadas passadas pelo comando, e a mesma função para mudar a rotação do objeto B em função da sua rotação do objeto A + a diferença das coordenadas.
GRiMMREAPER is offline   Reply With Quote
Old 05/09/2018, 03:51 PM   #8798
axellech
Huge Clucker
 
Join Date: Mar 2016
Posts: 212
Reputation: 0
Default Re: Dúvidas Curtas #1

Ao invez de setar o player em uma posição, como faço para setar diretamente dentro de um veiculo?
PHP Code:

            
case 1:
            {
                
fee 100;
                
format(name_o_test24"Veiculo");
                
DMV_v[playerid] = CreateVehicleEx(5071252.786376120.06578020.21533966.55160511, -1);

                
SetPlayerPos(playerid,  1251.018798135.65130619.948959);
                
SetPlayerFacingAngle(playerid68.0);
            } 
axellech is offline   Reply With Quote
Old 05/09/2018, 03:57 PM   #8799
Locky_
High-roller
 
Locky_'s Avatar
 
Join Date: Jul 2012
Posts: 1,591
Reputation: 326
Default Re: Dúvidas Curtas #1

Quote:
Originally Posted by axellech View Post
Ao invez de setar o player em uma posição, como faço para setar diretamente dentro de um veiculo?
PHP Code:

            
case 1:
            {
                
fee 100;
                
format(name_o_test24"Veiculo");
                
DMV_v[playerid] = CreateVehicleEx(5071252.786376120.06578020.21533966.55160511, -1);

                
SetPlayerPos(playerid,  1251.018798135.65130619.948959);
                
SetPlayerFacingAngle(playerid68.0);
            } 
Use PutPlayerInVehicle

PHP Code:
PutPlayerInVehicle(playeridDMV_v[playerid], 0); 
Locky_ is offline   Reply With Quote
Old 05/09/2018, 04:19 PM   #8800
axellech
Huge Clucker
 
Join Date: Mar 2016
Posts: 212
Reputation: 0
Default Re: Dúvidas Curtas #1

Quote:
Originally Posted by Locky_ View Post
Use PutPlayerInVehicle

PHP Code:
PutPlayerInVehicle(playeridDMV_v[playerid], 0); 
Eu tinha colado assim, o /iniciarteste é feito dentro de um interior
dai ele inicia sim o teste normal, porem não joga o jogador pra dentro do veiculo.
axellech is offline   Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
[Ajuda] Dúvidas, dúvidas e mais dúvidas. Mito_FmZ Português/Portuguese 6 30/07/2012 05:42 AM
[DUVIDAS] Duvidas sobre GM Waldrey Português/Portuguese 3 01/06/2012 03:56 PM
[Duvidas]Algumas duvidas. Felipe_Wesker Português/Portuguese 11 07/05/2012 09:31 PM
[DUVIDAS] matheuzinho Português/Portuguese 3 29/09/2010 11:07 PM
[DUVIDAS] Como faço isto?? (várias duvidas) andmeida10 Português/Portuguese 3 18/03/2010 10:06 AM


All times are GMT. The time now is 06:36 PM.


Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.