Caixa de mensagem com clique, ajuda com script!

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

Resolvido Caixa de mensagem com clique, ajuda com script!

Mensagem por vic22k em Seg 02 Jul 2012, 22:27

Olá gente, eu tenho um objeto Talk, que quando acionada aparece uma barrinha com uma mensagem, e ele só funfa quando o objeto Char tem uma colisão com ele e é apertada a letra Z.

Mas eu fiz uma room sem o Char, e eu queria saber um jeito de trocar a colisão, por um clique.
( Quando clicasse no objeto Talk, aparecesse a tal mensagem ).

Vai aí o script do Talk normal:

Event Step
Código:
if (!variable_local_exists("text1")) {text1=""}
if (!variable_local_exists("text2")) {text2=""}
if (!variable_local_exists("text3")) {text3=""}
if (!variable_local_exists("text4")) {text4=""}
if (!variable_local_exists("text5")) {text5=""}
if (!variable_local_exists("text6")) {text6=""}
if (!variable_local_exists("text7")) {text7=""}
if (!variable_local_exists("text8")) {text8=""}
if (!variable_local_exists("text9")) {text9=""}
if (!variable_local_exists("text10")) {text10=""}
if (!variable_local_exists("text11")) {text11=""}
if (!variable_local_exists("text12")) {text12=""}
if (!variable_local_exists("text13")) {text13=""}
if (!variable_local_exists("text14")) {text14=""}

if (keyboard_check(ord("Z"))) {
    if (place_meeting(x,y+1,oChar) && oChar.direction=90 && global.canmove && oChar.moving=0) {
        scrTextbox(global1,text1,text2,text3,text4,text5,text6,text7,text8,text9,text10,text11,text12,text13,text14)
    }
    if (place_meeting(x,y-1,oChar) && oChar.direction=270 && global.canmove && oChar.moving=0) {
        scrTextbox(global1,text1,text2,text3,text4,text5,text6,text7,text8,text9,text10,text11,text12,text13,text14)
    }

    if (place_meeting(x+1,y,oChar) && oChar.direction=180 && global.canmove && oChar.moving=0) {
        scrTextbox(global1,text1,text2,text3,text4,text5,text6,text7,text8,text9,text10,text11,text12,text13,text14)
    }
    if (place_meeting(x-1,y,oChar) && oChar.direction=0 && global.canmove && oChar.moving=0) {
        scrTextbox(global1,text1,text2,text3,text4,text5,text6,text7,text8,text9,text10,text11,text12,text13,text14)
    }
}

Se alguém puder me ajudar, o que trocar, se excluo algo, etc... Obrigadaa! beijo


Última edição por vic22k em Ter 03 Jul 2012, 13:35, editado 3 vez(es)

vic22k

Número de Mensagens : 18
Data de inscrição : 20/06/2012
Reputação : 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Resolvido Re: Caixa de mensagem com clique, ajuda com script!

Mensagem por Zero. em Seg 02 Jul 2012, 22:49

troque o :
if (keyboard_check(ord("Z")))

por

if mouse_check_button_pressed(mb_left) (mb_left é o botão esquerdo do mouse) pode trocar por mb_right (direito)

Vlw Happy

Zero.

Número de Mensagens : 1295
Idade : 20
Data de inscrição : 19/08/2010
Reputação : 47
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 0

Voltar ao Topo Ir em baixo

Resolvido Re: Caixa de mensagem com clique, ajuda com script!

Mensagem por vic22k em Seg 02 Jul 2012, 23:07

não deu certo, não acontece nada Sad

vic22k

Número de Mensagens : 18
Data de inscrição : 20/06/2012
Reputação : 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Resolvido Re: Caixa de mensagem com clique, ajuda com script!

Mensagem por Zero. em Seg 02 Jul 2012, 23:16

Estranho, aqui funcionou.

Vc o Talk ta colidindo com o player ?

vc quer tirar essa colisão tb ?

Zero.

Número de Mensagens : 1295
Idade : 20
Data de inscrição : 19/08/2010
Reputação : 47
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 0

Voltar ao Topo Ir em baixo

Resolvido Re: Caixa de mensagem com clique, ajuda com script!

Mensagem por vic22k em Ter 03 Jul 2012, 00:14

Então, o meu oTalk colide com o player normalmente, mas criei uma room com um mini-game, como se fosse um jogo de objetos escondidos, só que quando clicasse em algum objeto, aparece a descrição dele em uma mensagem. Portanto, só nessa room não tem oChar, e dupliquei, fazendo um oTalk2, só pra clicar.

Sim, a colisão não deve existir, porque não há com o que colidir! Então eu tentei excluir o resto do script e só deixar "se clicar com o botao esquerdo scrTextBox text1 text2(...)" mas mesmo assim não funfa.

Sabe alguma forma de recriar um script com essas caracteristicas?

vic22k

Número de Mensagens : 18
Data de inscrição : 20/06/2012
Reputação : 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Resolvido Re: Caixa de mensagem com clique, ajuda com script!

Mensagem por Zero. em Ter 03 Jul 2012, 01:01

Ah! entendi ! Happy

Troca o código por isso, se vc notar eu tirei a colisão e trokey o evento keyboard_check_pressed :

Código:

if (!variable_local_exists("text1")) {text1=""}
if (!variable_local_exists("text2")) {text2=""}
if (!variable_local_exists("text3")) {text3=""}
if (!variable_local_exists("text4")) {text4=""}
if (!variable_local_exists("text5")) {text5=""}
if (!variable_local_exists("text6")) {text6=""}
if (!variable_local_exists("text7")) {text7=""}
if (!variable_local_exists("text8")) {text8=""}
if (!variable_local_exists("text9")) {text9=""}
if (!variable_local_exists("text10")) {text10=""}
if (!variable_local_exists("text11")) {text11=""}
if (!variable_local_exists("text12")) {text12=""}
if (!variable_local_exists("text13")) {text13=""}
if (!variable_local_exists("text14")) {text14=""}

if mouse_check_button_pressed(mb_left) {
        scrTextbox(global1,text1,text2,text3,text4,text5,text6,text7,text8,text9,text10,text11,text12,text13,text14)

}

Espero que funcione ! Happy

Zero.

Número de Mensagens : 1295
Idade : 20
Data de inscrição : 19/08/2010
Reputação : 47
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 0

Voltar ao Topo Ir em baixo

Resolvido Re: Caixa de mensagem com clique, ajuda com script!

Mensagem por Lázaro Games em Ter 03 Jul 2012, 10:09

para o codigo funcionar, o Talk tem q ter um sprite. Já fiz isso, antigamente já tive um problema desses, aí coloquei um no Talk.
Explicando:
um objeto precisa de um sprite para colidir com os objetos e com o mouse, pois precisa da mascara de colisão, que está nele. Então, se o Talk não tiver um sprite_index, não vai poder ser clicado. Deixe visible=0 para ele não ser visto. O codigo do FlyAway está otimo!

Lázaro Games

Ranking : Nota C
Número de Mensagens : 70
Idade : 18
Data de inscrição : 08/08/2010
Notas recebidas : D-B
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

http://www.lzstargames.blogspot.com

Voltar ao Topo Ir em baixo

Resolvido Re: Caixa de mensagem com clique, ajuda com script!

Mensagem por vic22k em Ter 03 Jul 2012, 12:51

FlyAway escreveu:Ah! entendi ! Happy

Troca o código por isso, se vc notar eu tirei a colisão e trokey o evento keyboard_check_pressed :

Código:

if (!variable_local_exists("text1")) {text1=""}
if (!variable_local_exists("text2")) {text2=""}
if (!variable_local_exists("text3")) {text3=""}
if (!variable_local_exists("text4")) {text4=""}
if (!variable_local_exists("text5")) {text5=""}
if (!variable_local_exists("text6")) {text6=""}
if (!variable_local_exists("text7")) {text7=""}
if (!variable_local_exists("text8")) {text8=""}
if (!variable_local_exists("text9")) {text9=""}
if (!variable_local_exists("text10")) {text10=""}
if (!variable_local_exists("text11")) {text11=""}
if (!variable_local_exists("text12")) {text12=""}
if (!variable_local_exists("text13")) {text13=""}
if (!variable_local_exists("text14")) {text14=""}

if mouse_check_button_pressed(mb_left) {
        scrTextbox(global1,text1,text2,text3,text4,text5,text6,text7,text8,text9,text10,text11,text12,text13,text14)

}

Espero que funcione ! Happy

Funcionar, ele funciona, mas veja como é a room:

http://i46.tinypic.com/l8s9g.png

Acho que o problema é que tem Talks demais, não? E quando clico em qualquer parte da room, a mensagem que aparece é a do Talk da direita, por exemplo, eu clicava no guarda chuva e aparecia - Um violão. - Clicava no divã e também aparecia - Um violão.

Lázaro Games, é sim uma sprite, veja lá, é um retangulo azul só pra mim saber a posição...

Rolling Eyes que problemão Sad

vic22k

Número de Mensagens : 18
Data de inscrição : 20/06/2012
Reputação : 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Resolvido Re: Caixa de mensagem com clique, ajuda com script!

Mensagem por Gonçalves em Ter 03 Jul 2012, 13:00

Tira o Precise collision check da sprite.
Vai em Eventos e bota Mouse > Left Pressed. Bota o código dentro desse evento.

Gonçalves

Ranking : Nota B
Número de Mensagens : 1013
Data de inscrição : 29/10/2010
Notas recebidas : B + A + C
Reputação : 79
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 2
   : 0
   : 0

Voltar ao Topo Ir em baixo

Resolvido Re: Caixa de mensagem com clique, ajuda com script!

Mensagem por vic22k em Ter 03 Jul 2012, 13:16

Gonçalves deu certo, mas ele só funciona quando clico na borda da sprite.
Resolvi preencher a sprite pintando um quadrado todo, mas mesmo assim, só a ponta de cima da esquerda que faz aparecer a mensagem. Que faço?

------------------------------
[Edit]

Já consegui!! O problema estava no objeto, a mask estava errada, o certo é colocar "same as sprite"

muito obrigada a todos que me ajudaram!!! feliz2


Última edição por vic22k em Ter 03 Jul 2012, 13:34, editado 1 vez(es)

vic22k

Número de Mensagens : 18
Data de inscrição : 20/06/2012
Reputação : 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Resolvido Re: Caixa de mensagem com clique, ajuda com script!

Mensagem por Gonçalves em Ter 03 Jul 2012, 13:26

Vai na sprite > Modify Mask... > E ative o Full Image e Rectangle.

Gonçalves

Ranking : Nota B
Número de Mensagens : 1013
Data de inscrição : 29/10/2010
Notas recebidas : B + A + C
Reputação : 79
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 2
   : 0
   : 0

Voltar ao Topo Ir em baixo

Resolvido Re: Caixa de mensagem com clique, ajuda com script!

Mensagem por Conteúdo patrocinado Hoje à(s) 07:34


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