Arena RPG Maker
Olá, visitante!
Seja bem-vindo ao fórum Arena RPG Maker, caso queira aprender sobre criação de jogos, está no fórum certo. Esperamos que possa aprender tanto quanto possa nos ensinar aqui.

Atenciosamente,
Equipe Arena RPG Maker.
Arena RPG Maker

Estamos de volta o/ ... Ou não.Eu amo a -Dark
Doações para o fórum abertas, clique aqui e saiba mais.
Últimos assuntos
» Pokémon Genesis Online! (PGO)
Qua 05 Jul 2017, 17:08 por Lexar

» Tileset Converter to MV
Sex 12 Maio 2017, 13:07 por Douggi

» [Dúvida] Como tirar a porcentagem de esquiva
Ter 09 Maio 2017, 22:15 por Neil Flame Runner

» Pack Resources, Sprites e etc
Qua 23 Dez 2015, 09:30 por raydengv

» Download RPG Maker 2003 + RTP em português
Ter 22 Dez 2015, 08:14 por ::KimMax::

» Fantasy Art Online
Dom 18 Out 2015, 16:42 por daviih123

» Você vai ter medo do Nerve gear?
Sab 25 Jul 2015, 16:02 por Kirito-kun

» O Barato é louco
Sab 27 Jun 2015, 15:26 por Halt

» Download RPG Maker 2000 + RTP em português
Qui 21 Maio 2015, 19:28 por Wismael

» Divulgando meu grupo e página do Facebook
Ter 19 Maio 2015, 13:06 por Halt


Você não está conectado. Conecte-se ou registre-se

Ver o tópico anterior Ver o tópico seguinte Ir em baixo  Mensagem [Página 1 de 1]

1 Criando jogos em BYOND - Capítulo 7 em Seg 12 Nov 2012, 16:31

Halt

avatar
Administrador
Administrador
VIg. Ataque?!?!?! (A proc del())

Aqui está nosso jeito de dar um sumiço com o cadáver.

++ChecarMorte()
+++if(HP<=0)
++++world<<”[src] morreu”
++++del(src) //Deleta qualquer coisa que morreu

Isto faz exatamente como soa. Qualquer coisa que estiver nos parênteses da proc del()... será deletado do jogo.

Você tem que imaginar qual dessas soluções é melhor para você. Imagine que isso seja um verdadeiro game que você esteja fazendo, e pense à frente. Tem algum motivo para deixar defuntos por ai?

Eu vou escolher a solução del(), por causa do que vem a seguida...

VII. ... E pegando seus items (Recapitular)

Vá em frente e adicione essa linha ao nosso programa, depois do código mob e antes do código turf:

obj
+ouro //Define ouro como um protótipo, que é um tipo de obj
++icon = ‘ouro.dmi’ //Declara o ícone padrão
++var
+++quantidade //Declara uma nova variável chamada “quantidade”

Está tudo nos comentários. Aquele “obj” é como um mob e turf, é um tipo de coisas que podemos fazer protótipos. E é melhor usado como objetos no mundo real. Ou seja, coisas que não são pessoas nem lugares.

Agora Compile.

VII. AHA! (Erros de compilação)

Se você fez somente o que eu mandei fazer, você pode estar vendo algo como isso no painel da base:

Loading Testworld.dme

Testworld.dm:34:error:’ouro.dmi’:cannot find file

Testworld.dmb – 1 error, 0 warnings

Este é um erro de compilação. É na maioria das vezes fácil de concertar porque nosso amigo compilador nos mostra a linha onde ele acha o erro. Neste caso, obj/ouro/icon se refere à um arquivo que não existe. Porque não fizemos ele ainda. Vá e faça um novo .dmi para ouro, e coloque o nome de “ouro”. Criativo, não?

AGORA compile.

VIIB. Me mostre o dinheiro! (As procs Del() e new() e a variável loc)

Quando a proc del() é chamada, ela chama a proc Del()... conveniente,né? ... da área ou turf ou obj ou mob que está sendo deletado. Relembre do que eu disse procs internas maiúsculas pertencem à algo, enquanto as minúsculas não? As duas são procs internas e são do jeito que eu disse. Nós vamos modificar a proc Del() como fizemos com a proc Login(). Acima de Login()...

+Del()
++var/obj/ouro/G = new(loc) //Cria um novo objeto ouro
++G.quantidade = rand (1,100) //Define uma quantidade randomicamente
++...()


Entrando em detalhes. G é uma variável que criamos para guardar referencias com um obj. É por isso que é var/obj/ouro/G em vez de \G. O que assimilamos foi uma referencia ao obj; este obj vai ser do tipo var/obj/ouro. A proc interna new() é o que cria um novo obj. O que está em parênteses é a localização que queremos que ouro apareça.

Em nosso caso é “src.loc”. Está é a localização do src, ou a fonte da proc Del(), que é o mob que acabou de morrer. loc é uma variável interna que contem referencia com a turf que algo está sobre. Eu não coloquei “src.” em frente de “loc”. Você pode deixar assim e o programa vai presumir que você está falando sobre o src. Nos poupa de digitar um pouco a mais.

Em seguida nós acessamos uma variável de nosso novo obj. Nós usaremos o G. Nós falamos para o programa achar o obj que G se refere e colocar a variável quantidade com o valor de um numero entre 1 e 100.

Salve tudo ou compile.

VIIc Já estamos tendo diversão? (Eu espero que sim!)

Então. Quando matamos um bu, uma quantidade randômica de ouro vai aparecer no lugar do monstro. Não será muito útil para nós, se não conseguimos pega-lo. Aqui está o código para nosso obj ouro:

obj
+ouro
++icon = ‘ouro.dmi’
++var
+++quantidade
++verb
+++pegar()
++++set src in view(1) //src precisa estar perto
++++usr << ”Você pegou [quantidade] ouro.”
++++usr.carteira += quantidade //Adiciona à carteira de usr
++++del(src) //deleta o ouro


Você pode perceber que não podemos acessar a variável “carteira” não está em nosso código. Não é variável interna, então temos que criar. Então coloque “carteira” exatamente embaixo de “HP” na sessão mob.

Desta vez fizemos um obj/ouro/verb em vez de mob/verb. Isto significa que um obj/ouro precisa estar presente para que possamos usar este verb. A próxima linha faz isso, dizendo que o obj precisa estar na distancia de 1 tile do usr. Em seguida é nossa mensagem, completa com uma expressão embutida. A próxima significa que usr.carteira agora é igual a ele mais src.quantidade(a quantidade ouro) . Depois disso deletamos a fonte do verb (o obj ouro).

Compile e teste. Nós acabamos.

Ufa!

Créditos:
Blake pelo tutorial
-KiRa por postar aqui na ARM


__________________________________________
[Você precisa estar registrado e conectado para ver este link.]
Ei Convidado, sim você mesmo! Ajude o fórum à crescer postando coisas úteis, dê sugestões para melhorar-mos e divulgue o fórum.

Step inside, see the devil in I.

Gifts-
[Você precisa estar registrado e conectado para ver este link.] - [Você precisa estar registrado e conectado para ver este link.] - [Você precisa estar registrado e conectado para ver este link.] - [Você precisa estar registrado e conectado para ver este link.] - [Você precisa estar registrado e conectado para ver este link.]

Zerei a internet
Ver perfil do usuário http://arenarpgmaker.forumeiros.com

2 Re: Criando jogos em BYOND - Capítulo 7 em Sab 29 Dez 2012, 12:52

SuperArturo

avatar
Membro - Novato
Membro - Novato
ainda n mato o maldito do bug

Ver perfil do usuário

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo  Mensagem [Página 1 de 1]

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