Conectar-se

Esqueci minha senha

Últimos assuntos
» [Enquete] Concursos GMBR
por Willy Ontem à(s) 19:49

» CR - Concurso Relâmpago!!
por Willy Ter 18 Jul 2017, 17:11

» 3D:como rodar a camara em horizontal?
por Cambalinho Ter 18 Jul 2017, 15:09

» [Resolvido] pode explicar a d3d_set_projection()?
por Cambalinho Ter 18 Jul 2017, 11:28

» Escrever a resposta certa muda de room
por PedroX Seg 17 Jul 2017, 21:46

» Nota de esclarecimento - GMBR voltou!
por Mentos e Coca-cola Seg 17 Jul 2017, 17:05

» [CR] Campo Minado
por Katerp Dom 16 Jul 2017, 23:09

» [CR] The Bazooka Cat
por Tedi Ripper Dom 16 Jul 2017, 23:01

» Como melhorar um protótipo(Design)
por lolandoplayer Dom 16 Jul 2017, 22:56

» Diminuir velocidade ao arrastar objeto
por LwysF Dom 16 Jul 2017, 17:33

Quem está conectado
15 usuários online :: Nenhum usuário registrado, Nenhum Invisível e 15 Visitantes

Nenhum

[ Ver toda a lista ]


O recorde de usuários online foi de 324 em Ter 05 Out 2010, 13:36
Estatísticas
Temos 12700 usuários registrados
O último usuário registrado atende pelo nome de Eduardo Gomes

Os nossos membros postaram um total de 220919 mensagens em 30412 assuntos

[duvida][GMS] Oque tem de errado com o script?

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

[duvida][GMS] Oque tem de errado com o script?

Mensagem por Esaucm98 em Qua 05 Jun 2013, 14:06

Oi a todos, mais uma dúvida minha, eu fiz um script para um inventário e dava tudo certo no game maker normal, mas como o jogo era pra android eu tinha que passar para o GameMaker Studio para executar no android, só que meus scripts não funcionam no GMS e funcionam no Game maker normal D:
Vou passar alguns dos scripts que eu fiz e não estão funcionando no gms:

Script 1: Item_add
Código:
for(i=0;i<=7;i+=1)
    {
    if global.slot[i,0]=argument0  or global.slot[i,0]="empty"
        {
        if global.slot[i,1]+argument1<=30
            {
            global.slot[i,0]=argument0
            global.slot[i,1]+=argument1
            break;
            }
        }
    //Script usado para adicionar item ao inventario
    }

Script 2: Item_remove
Código:
for(i=0;i<=7;i+=1)
    {
    if global.slot[i,0]=argument0
        {
        if global.slot[i,1]>=argument1
            {
            global.slot[i,1]-=argument1
            if global.slot[i,1]<=0
                {
                global.slot[i,1]=0
                global.slot[i,0]="empty"
                }
            break;
            }
        }
    //Script usado para remover item do inventario
    }

Ele "diz": Break used without context (break usando sem contexto) ou algo assim, mas como não tem contexto se o break tem que parar o loop?
Eu estou aprendendo agora essa história de loops mas acho que esses scripts estão certo, não?

Talvez tenha algo haver com o proprio GMS já que ele teve algumas mudanças com relação ao game maker 8.
Se alguem entendeu meu codigo e sabe outro jeito d'ele ter o mesmo efeito mas que funcione no gms, ou sabe se é algum problema com o gms por favor me diga.

Obs¹: Eu tentei usar a função exit; que finaliza o script mas não deu.
Obs²: Meu gms não é original, não sei se pode ser algo relacionado a isso.

Esaucm98

Ranking : Nota D
Notas recebidas : D
Data de inscrição : 13/05/2012
Número de Mensagens : 275
Insígnias de JAM :

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ver perfil do usuário http://www.legioncrafters.tk

Voltar ao Topo Ir em baixo

Re: [duvida][GMS] Oque tem de errado com o script?

Mensagem por saim em Qua 05 Jun 2013, 14:48

Me parece que "break" deve ser usado pra se encerrar um loop (ou laço, se preferir), o que é o caso do seu script. Não está fora de contexto. Estou longe do meu GMS (e do manual dele), mas essa é uma declaração universal, toda linguagem tem.

Da forma em que o script é apresentado, a declaração está usada corretamente. Pode ter sido algum erro na hora de copiar-colar.
Uma forma de contornar o problema seria escrever "i := 7;", no lugar do break, encerrando o loop na marra. Claro que isso não é a melhor saída. O correto é usar o break, mesmo.

Agora... notei um problema com os limites (0 e 30). E se você tiver 3 x item e quiser remover 4? Tá, vai esvaziar o slot, mas como você vai falar, do outro lado, que só entregou 3 itens? Não tem essa informação.
Ou se tiver 28 itens e tentar pegar 5? Simplesmente não vai pegar nada.
Talvez você não precise dessa informação agora, mas em sistemas de comércio, em que você pode ir pagando os itens aos poucos, isso pode ser útil. E seu script é bom. Se der uma adaptada nele, pode guardar pro resto da vida.
avatar
saim

Ranking : Nota B
Notas recebidas : C-D-A-B
Data de inscrição : 14/01/2011
Número de Mensagens : 2964
Insígnias de JAM :

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Prêmios
   : 1
   : 0
   : 3

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: [duvida][GMS] Oque tem de errado com o script?

Mensagem por Esaucm98 em Sex 07 Jun 2013, 01:32

Ah, acho que descobri oque era, provavelmente porque essa versão que eu tou usando é antiga e ele ainda ta com uns bugs, mas como eu vo ter que ficar com ela ate conseguir uma mais atual, vou ter que fazer do jeito que vc falou, não sei como eu não tinha pensado nisso encerrar o loop na marra kk genial, deu certo.
Eu ainda vou da uma melhorada nos meus scripts , eu ainda estou me aprofundando nesse assunto de loops.
Valeu denovo saim. Very Happy


Como o tópico ja foi resolvido, ele sera trancado.
Caso o autor deseje inserir mais alguma informação, contacte um moderador.
Att: CRP-Max.

Esaucm98

Ranking : Nota D
Notas recebidas : D
Data de inscrição : 13/05/2012
Número de Mensagens : 275
Insígnias de JAM :

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ver perfil do usuário http://www.legioncrafters.tk

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