SA-MP Forums Archive
[AJUDA] Mover varios objetos - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Português/Portuguese (https://sampforum.blast.hk/forumdisplay.php?fid=34)
+---- Thread: [AJUDA] Mover varios objetos (/showthread.php?tid=350514)

Pages: 1 2


[AJUDA] Mover varios objetos - EditPawn - 12.06.2012

Queria saber como posso fazer para mover varios objetos ao mesmo tempo, sao portoes onde terгo que abrir todos ao mesmo tempo.. Um total de 31 portхes.

Tentei com Array mas nao deu certo, e com vars, seriam muitas :S

Alguem sabe uma forma mais otimizada e facil ?


Re: [AJUDA] Mover varios objetos - Crueliz0n - 12.06.2012

31 portхes na mesma "passagem" ou em lugares diferentes?


Re: [AJUDA] Mover varios objetos - ViniBorn - 12.06.2012

Armazene os ids em uma matriz e mova-os com um loop contendo o MoveObject


Re: [AJUDA] Mover varios objetos - EditPawn - 12.06.2012

Quote:
Originally Posted by Viniborn
View Post
Armazene os ids em uma matriz e mova-os com um loop contendo o MoveObject
Vlw vini
@EDIT

vou tentar aki '-'


Re: [AJUDA] Mover varios objetos - Mr.Hardy - 12.06.2012

Vocк quer mover todos portхes atй uma posiзгo ?


Re: [AJUDA] Mover varios objetos - EditPawn - 12.06.2012

Quote:
Originally Posted by Mr.Hardy
View Post
Vocк quer mover todos portхes atй uma posiзгo ?
Nгo exatamente..

Sгo varios portoes, com coordenadas diferentes, e queria que movessem no eixo Z ao mesmo tempo.


Tentei por Matriz como o vini disse, nao consegui.
Fiz por Array, consegui mover todos os portхes, mas nгo moveram no eixo certo, eles bugaram :S


Re: [AJUDA] Mover varios objetos - Crueliz0n - 12.06.2012

cria com publics nгo й tгo optimizado porйm nгo tem falhas


Re: [AJUDA] Mover varios objetos - EditPawn - 12.06.2012

Quote:
Originally Posted by BlackDonelly
View Post
cria com publics nгo й tгo optimizado porйm nгo tem falhas
Eu sei criar dessa forma, queria saber se tem alguma outra forma para se mover varios objetos ao mesmo tempo e no mesmo eixo e com a mesma distancia do movimento.


Re: [AJUDA] Mover varios objetos - Mr.Hardy - 12.06.2012

Se baseia nisso

pawn Code:
#include a_samp
#include zcmd

//[Include hLoop By MrHardy]
#define hLoop_Bot(%1) for (new %1 = 0; %1 < MAX_PLAYERS; %1++) if(IsPlayerConnected(%1) && IsPlayerNPC(%1))
#define hLoop_Admin(%1,%2) for (new %1 = 0; %1 < MAX_PLAYERS; %1++) if(IsPlayerConnected(%1) && %2)
#define hLoop_Player(%1) for (new %1 = 0; %1 < MAX_PLAYERS; %1++) if(IsPlayerConnected(%1))
#define hLoop_Vehicle(%1) for (new %1 = 0; %1 < MAX_VEHICLES; %1++)
#define hLoop_Multiple(%1,%2) for (new %2; %2 < %1; %2++)
#define hLoop_Function(%1,%2) \
            hLoop_Multiple(%1,%2)
           
#define MAX_PORTOES 5
#define POSICAO_Z_PORTAO 5.0 //Aqui vocк define altitude que vocк quer que se mova o portгo

new Portoes[MAX_PORTOES];
public OnGameModeInit()
{
    Portoes[0] = //CreateObject(.....
    Portoes[1] = //CreateObject(.....
    Portoes[2] = //CreateObject(.....
    Portoes[3] = //CreateObject(.....
    Portoes[4] = //CreateObject(.....
    return true;
}
CMD:movertudo(playerid, params[])
{
    hLoop_Function(MAX_PORTOES, i)
    {
        new Float:X, Float:Y, Float:Z;
        GetObjectPos(Portoes[i], X, Y, Z);
        MoveObject(Portoes[i], X, Y, Z + POSICAO_Z_PORTAO);
    }
    return true;
}



Re: [AJUDA] Mover varios objetos - EditPawn - 12.06.2012

Mr hardy, fiz dessa forma e nгo deu certo :S

Eles descem ao invйs de subir.... todos errados..


Re: [AJUDA] Mover varios objetos - Mr.Hardy - 12.06.2012

Quote:
Originally Posted by EditPawn
View Post
Mr hardy, fiz dessa forma e nгo deu certo :S

Eles descem ao invйs de subir.... todos errados..
Oque aconteзe +- ?

Ele muda б rotaзгo ?


Re: [AJUDA] Mover varios objetos - EditPawn - 12.06.2012

Ele desce ao invйs de subir... ja tentei trocar o "+" por "-" mas continua descendo...

E alem de descer errado ele vai uma pequena distancia para o eixo x ou y, nao sem bem qual o eixo, mas ele vai um pouco para o lado..

Achei estranho atй :S


Re: [AJUDA] Mover varios objetos - Mr.Hardy - 12.06.2012

Quote:
Originally Posted by EditPawn
View Post
Ele desce ao invйs de subir... ja tentei trocar o "+" por "-" mas continua descendo...

E alem de descer errado ele vai uma pequena distancia para o eixo x ou y, nao sem bem qual o eixo, mas ele vai um pouco para o lado..

Achei estranho atй :S
Creio que ao mover o objeto estб mudando a posiзгo dele б um calculo incorreto! ( Se nгo intendeu faz o seguinte )

Tenta isso

pawn Code:
#include a_samp
#include zcmd

//[Include hLoop By MrHardy]
#define hLoop_Bot(%1) for (new %1 = 0; %1 < MAX_PLAYERS; %1++) if(IsPlayerConnected(%1) && IsPlayerNPC(%1))
#define hLoop_Admin(%1,%2) for (new %1 = 0; %1 < MAX_PLAYERS; %1++) if(IsPlayerConnected(%1) && %2)
#define hLoop_Player(%1) for (new %1 = 0; %1 < MAX_PLAYERS; %1++) if(IsPlayerConnected(%1))
#define hLoop_Vehicle(%1) for (new %1 = 0; %1 < MAX_VEHICLES; %1++)
#define hLoop_Multiple(%1,%2) for (new %2; %2 < %1; %2++)
#define hLoop_Function(%1,%2) \
            hLoop_Multiple(%1,%2)
           
#define MAX_PORTOES 5
#define POSICAO_Z_PORTAO 5.0 //Aqui vocк define altitude que vocк quer que se mova o portгo
#define VELOCIDADE_PORTAO 5.0 //Aqui vocк define a velocidade б ser usada

new Portoes[MAX_PORTOES];
public OnGameModeInit()
{
    Portoes[0] = //CreateObject(.....
    Portoes[1] = //CreateObject(.....
    Portoes[2] = //CreateObject(.....
    Portoes[3] = //CreateObject(.....
    Portoes[4] = //CreateObject(.....
    return true;
}
CMD:movertudo(playerid, params[])
{
    hLoop_Function(MAX_PORTOES, i)
    {
        new Float:X, Float:Y, Float:Z;
        new Float:RotX,Float:RotY,Float:RotZ;
        GetObjectPos(Portoes[i], X, Y, Z);
        GetObjectRot(Portoes[i], RotX, RotY, RotZ);
        MoveObject(Portoes[i], X, Y, Z + POSICAO_Z_PORTAO, VELOCIDADE_PORTAO, RotX, RotY, RotZ);
        SetObjectRot(Portoes[i], RotX, RotY, RotZ );
    }
    return true;
}



Re: [AJUDA] Mover varios objetos - ReDKiiL - 12.06.2012

Olha como fisso no meu 3 portoes;
pawn Code:
CMD:ab(playerid, params[])
{
    if(PlayerInfo[playerid][Level] < 1)return SendClientMessage(playerid,fail,LEVELF);
    MoveObject(PortaoAB[0],731.13629150,-2236.15087891,10.724605560303,2.0);
    MoveObject(PortaoAB[1],723.35278320,-2233.18115234,10.724605560303,2.0);
    MoveObject(PortaoAB[2],719.14697266,-2231.37744141,10.724605560303,2.0);
    SendClientMessage(playerid,amarelo,"PORTAO ABERTO");
    return 1;
}
CMD:fb(playerid, params[])
{
    if(PlayerInfo[playerid][Level] < 1)return SendClientMessage(playerid,fail,LEVELF);
    MoveObject(PortaoAB[0],731.13629150,-2236.15087891,4.22460508,2.0);
    MoveObject(PortaoAB[1],723.35278320,-2233.18115234,4.22460508,2.0);
    MoveObject(PortaoAB[2],719.14697266,-2231.37744141,4.22460508,2.0);
    SendClientMessage(playerid,amarelo,"PORTAO FECHADO");
    return 1;
}
se for mover todos para mesma pos
use um loop;
ex:
pawn Code:
for(new d; d < tantoportoes; ++d)
{
moveobject(varportao[d]...
}



Re: [AJUDA] Mover varios objetos - EditPawn - 12.06.2012

Bom, tentei e continua do mesmo jeito... :S
que tenso :X

@EDIT

Quote:
Originally Posted by ReDKiiL
View Post
Olha como fisso no meu 3 portoes;
pawn Code:
CMD:ab(playerid, params[])
{
    if(PlayerInfo[playerid][Level] < 1)return SendClientMessage(playerid,fail,LEVELF);
    MoveObject(PortaoAB[0],731.13629150,-2236.15087891,10.724605560303,2.0);
    MoveObject(PortaoAB[1],723.35278320,-2233.18115234,10.724605560303,2.0);
    MoveObject(PortaoAB[2],719.14697266,-2231.37744141,10.724605560303,2.0);
    SendClientMessage(playerid,amarelo,"PORTAO ABERTO");
    return 1;
}
CMD:fb(playerid, params[])
{
    if(PlayerInfo[playerid][Level] < 1)return SendClientMessage(playerid,fail,LEVELF);
    MoveObject(PortaoAB[0],731.13629150,-2236.15087891,4.22460508,2.0);
    MoveObject(PortaoAB[1],723.35278320,-2233.18115234,4.22460508,2.0);
    MoveObject(PortaoAB[2],719.14697266,-2231.37744141,4.22460508,2.0);
    SendClientMessage(playerid,amarelo,"PORTAO FECHADO");
    return 1;
}
se for mover todos para mesma pos
use um loop;
ex:
pawn Code:
for(new d; d < tantoportoes; ++d)
{
moveobject(varportao[d]...
}
Mover Objeto por objeto й facil, mas quero mover 31 portoes ao mesmo tempo, no mesmo eixo, na mesma velocidade...


Re: [AJUDA] Mover varios objetos - ReDKiiL - 12.06.2012

Voce ta usando algum plugin? streamer?


Re: [AJUDA] Mover varios objetos - EditPawn - 12.06.2012

Quote:
Originally Posted by ReDKiiL
View Post
Voce ta usando algum plugin? streamer?
Streamer '-'

CreateDynamicObject
MoveDynamicObject


Re: [AJUDA] Mover varios objetos - ReDKiiL - 12.06.2012

apenas nos objetos que move usa createobject e moveobject normal eu faзo assim rsrs e nem buga


Re: [AJUDA] Mover varios objetos - EditPawn - 12.06.2012

Bom, irei fazer da forma tradicional ....

Obrigado a quem tento ajudar, e darei o meu rep por ter paciencia em tentar '-'


Re: [AJUDA] Mover varios objetos - Mr.Hardy - 12.06.2012

Tenta agora ! Acho que vai funcionar..

pawn Code:
#include a_samp
#include zcmd

//[Include hLoop By MrHardy]
#define hLoop_Bot(%1) for (new %1 = 0; %1 < MAX_PLAYERS; %1++) if(IsPlayerConnected(%1) && IsPlayerNPC(%1))
#define hLoop_Admin(%1,%2) for (new %1 = 0; %1 < MAX_PLAYERS; %1++) if(IsPlayerConnected(%1) && %2)
#define hLoop_Player(%1) for (new %1 = 0; %1 < MAX_PLAYERS; %1++) if(IsPlayerConnected(%1))
#define hLoop_Vehicle(%1) for (new %1 = 0; %1 < MAX_VEHICLES; %1++)
#define hLoop_Multiple(%1,%2) for (new %2; %2 < %1; %2++)
#define hLoop_Function(%1,%2) \
            hLoop_Multiple(%1,%2)
           
#define MAX_PORTOES 5
#define POSICAO_Z_PORTAO 5.0 //Aqui vocк define altitude que vocк quer que se mova o portгo
#define VELOCIDADE_PORTAO 5.0 //Aqui vocк define a velocidade б ser usada

new Portoes[MAX_PORTOES];
public OnGameModeInit()
{
    Portoes[0] = //CreateObject(.....
    Portoes[1] = //CreateObject(.....
    Portoes[2] = //CreateObject(.....
    Portoes[3] = //CreateObject(.....
    Portoes[4] = //CreateObject(.....
    return true;
}
CMD:movertudo(playerid, params[])
{
    hLoop_Function(MAX_PORTOES, i)
    {
        new Float:X, Float:Y, Float:Z;
        new Float:RotX,Float:RotY,Float:RotZ;
        new Float:CalculoZ;
        CalculoZ = Z + POSICAO_Z_PORTAO;
        GetObjectPos(Portoes[i], X, Y, Z);
        GetObjectRot(Portoes[i], RotX, RotY, RotZ);
        MoveObject(Portoes[i], X, Y, CalculoZ, VELOCIDADE_PORTAO);
        SetObjectRot(Portoes[i], RotX, RotY, RotZ );
    }
    return true;
}