Controle de objetos

Ver o tópico anterior Ver o tópico seguinte Ir em baixo

Controle de objetos

Mensagem por itallo em Sab 14 Nov 2009, 19:43

eu tenho 5 obj_ally na room.....
quando executo um comando todos eles fazem a mesma coisa....

tem como eu ter 5 objetos iguais e vamos supor.... quando eu clico em um deles e clico em algum lugar da room só o objeto selecionado mover até tal ponto?mesmo sendo os 5 objetos iguais?

itallo

Ranking : Sem avaliações
Número de Mensagens : 969
Idade : 24
Data de inscrição : 26/08/2009
Reputação : 12
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   :
   :

http://www.zuluhotel.com.br

Voltar ao Topo Ir em baixo

Re: Controle de objetos

Mensagem por Convidad em Sab 14 Nov 2009, 19:57

Você teria que controlá-los pelo id de cada um...

id, é um número de identificação único de cada instância, atribuído à ela no momento em que é criada. Esse tutorial, pode te ajudar bastante:

http://gmbr.forumeiros.com/tutoriais-f9/id-identificando-as-instancias-t316.htm?highlight=identificando

Eu mesmo que escrevi, tempos atrás.

Convidad
Convidado


Voltar ao Topo Ir em baixo

Re: Controle de objetos

Mensagem por itallo em Sab 14 Nov 2009, 20:14

capitão como vi o tuto e gostei mas......
não consegui pensar como vou pegar o ID do mob ao clicar nele e passar a ordem para ele mover só para ele =/

seria + ou menos assim:?

if mouse_button_check_pressed(mb_left) and press <=1
{
press+=1
find id
last_id=last_target
}

if mouse_button_check_pressed(mb_left) and press >=1
{
press = 0
pod = true
tx = mouse_x
ty = mouse_y
}

if pod = true{
move_towards_point(tx,ty,4)
}


misturei um pouco de easyUO pra tentar entender......
se tiver como me explicar como passo a primeira parte pro GM Very Happy


Última edição por oBKo em Sab 14 Nov 2009, 20:22, editado 1 vez(es)

itallo

Ranking : Sem avaliações
Número de Mensagens : 969
Idade : 24
Data de inscrição : 26/08/2009
Reputação : 12
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   :
   :

http://www.zuluhotel.com.br

Voltar ao Topo Ir em baixo

Re: Controle de objetos

Mensagem por Convidad em Sab 14 Nov 2009, 20:20

oBKo escreveu:capitão como vi o tuto e gostei mas......
não consegui pensar como vou pegar o ID do mob ao clicar nele e passar a ordem para ele mover só para ele =/

Eu fiz um exemplo, com comentários. Se você tiver dúvidas, me fala:

http://www.4shared.com/file/152313858/c81f7221/Selecionar_e_Movimentar.html


Última edição por Capitão Commando em Sab 14 Nov 2009, 21:47, editado 2 vez(es)

Convidad
Convidado


Voltar ao Topo Ir em baixo

Re: Controle de objetos

Mensagem por Denis Lemos em Sab 14 Nov 2009, 20:27

Nem esquenta com isso oBKo, estou fazendo uma engine para ti, pois eu não sou muito bom em explicações, já te dou o link dela, já estou no finzinho, só que não estou me lembrando do nome de uma função, e eu vo dar procurar no "help" para ver se me lembro e já posto aqui !

Aguarde !

Denis Lemos

Número de Mensagens : 938
Idade : 28
Data de inscrição : 17/05/2009
Reputação : 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

Voltar ao Topo Ir em baixo

Re: Controle de objetos

Mensagem por shatterhand2 em Sab 14 Nov 2009, 22:00

cara, nao precisa saber o ID nao

coloca uma variavel no objeto com o valor zero. Caso o objeto receba um clique do mouse (evento mouse-left button), o valor passa a ser 1.

O objeto só deve "respeitar" os comandos do mouse caso o valor dessa variável seja 1.

Coloque no Begin Step do objeto algo assim:

if mouse_check_button_pressed(mb_left) then variavel = 0

assim toda vez q vc clicar o mouse em qualquer lugar, todas as instancias do objeto vao ter o valor dessa variavel = 0. Se o clique for em cima de alguma das instancias, logo depois o valor da variavel apenas naquela instancia passa a ser 1.






Pra complicar mais (só se vc precisar disso)

se vc quiser que quando NENHUMA esteja selecionada, TODAS respeitem os comandos do mouse, mas quando UMA esteja selecionada, apenas aquela uma respeite o mouse, é só voce mudar o codigo no evento mouse -> left button para

with (objeto) variavel = 2
variavel = 1


assim voce vai mudar a variavel de todos as instancias daquele objeto pra 2, e depois daquela unica instancia pra 1. Dai é só fazer com que ele respeite os movimentos desde que o valor da variavel seja diferente de 2 (Se todo mundo for 0, ele vai respeitar, se todo mundo for 2, mas apenar um cara for 1, ele vai respeitar apenas o cara q tem 1)

Espero que tenha ajudado.


Edit -> tem um erro no meu codigo acima. QUando voce clicar fora de todos os objetos, todos vao passar a ter o valor da variavel como 0, logo nenhum vai se mover. Mas ai é um erro até mesmo de "projeto", o que foi proposto é IMPOSSIVEL de fazer.

Retire o codigo do begin step, e coloque isso no Mouse-> Left Button

with (objeto) variavel = 0
variavel = 1


assim voce pode clicar fora dos objetos tranquilamente (e programar o movimento deles sem problema), mas se voce clicar em alguma outra instancia, ele vai "desativar" os outros e ativar apenas ela.

Você também poderia mudar o codigo do begin step para o botao do mouse direito ao inves do mouse esquerdo... assim ele desativaria todas quando o botao do mouse direito fosse apertado em qualquer ponto, permitindo que todos os objetos fosse "desativados" ao mesmo tempo.....e minha ideia "mais complicada" possa ser aplicada tambem , se necessaria.

shatterhand2

Número de Mensagens : 645
Idade : 33
Data de inscrição : 21/10/2009
Reputação : 11
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 0

http://shatterhand.beatthegame.net

Voltar ao Topo Ir em baixo

Re: Controle de objetos

Mensagem por Convidad em Sab 14 Nov 2009, 22:09

Mas há uma inconveniência aí. Se houver duas instâncias sobrepostas durante o clique, as duas irão seguir o comando. Neste caso deveríamos diferenciá-las pelo depth (a que estiver mais à frente) ou pelo id.

Veja que no exemplo que eu fiz upload, eu evitei essa situação optando pelo id, o que vai dar mais possibilidades à ele futuramente, se ele precisar. Daí bastaria executar o comando de qualquer lugar do código (mesmo de instâncias diferentes) para a instância selecionada.

Mas é uma possibilidade. Cada programador com seus métodos, certo? [:¬)]

Abraços.
Capitão Commando.

Convidad
Convidado


Voltar ao Topo Ir em baixo

Re: Controle de objetos

Mensagem por itallo em Sab 14 Nov 2009, 22:10

valeu POVO!!!
consegui compreender como isso funciona Very Happy
gostei do sistema bolado para salvar o ultimo ID
vou fazer uma gambiarra aqui com as duas engines e fazer a parte de estratégia do meu jogo Very Happy

me ajudaram e muito!!!

itallo

Ranking : Sem avaliações
Número de Mensagens : 969
Idade : 24
Data de inscrição : 26/08/2009
Reputação : 12
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   :
   :

http://www.zuluhotel.com.br

Voltar ao Topo Ir em baixo

Re: Controle de objetos

Mensagem por shatterhand2 em Dom 15 Nov 2009, 09:23

Buh

o Capitao Comando está certo. Eu estava imaginando algo em que uma instancia nao poderia estar "dentro" da outra, mas se isso for possivel, a minha ideia vai dar o problema q ele comentou.

Mas va la, se o oBKo ja resolveu, manda ver agora Smile

shatterhand2

Número de Mensagens : 645
Idade : 33
Data de inscrição : 21/10/2009
Reputação : 11
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 0

http://shatterhand.beatthegame.net

Voltar ao Topo Ir em baixo

Re: Controle de objetos

Mensagem por Conteúdo patrocinado Hoje à(s) 20:12


Conteúdo patrocinado


Voltar ao Topo Ir em baixo

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo

- Tópicos similares

 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum