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
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
» Ainda temos gente aqui?
BYOND - Criando jogos em BYOND - Capítulo 7 EmptyQui 25 Nov 2021, 14:04 por Halt

» [Dúvida] Como tirar a porcentagem de esquiva
BYOND - Criando jogos em BYOND - Capítulo 7 EmptySex 19 Nov 2021, 17:14 por Halt

» Pokémon Genesis Online! (PGO)
BYOND - Criando jogos em BYOND - Capítulo 7 EmptyQua 05 Jul 2017, 18:08 por Lexar

» Tileset Converter to MV
BYOND - Criando jogos em BYOND - Capítulo 7 EmptySex 12 maio 2017, 14:07 por Douggi

» Pack Resources, Sprites e etc
BYOND - Criando jogos em BYOND - Capítulo 7 EmptyQua 23 Dez 2015, 12:30 por raydengv

» Download RPG Maker 2003 + RTP em português
BYOND - Criando jogos em BYOND - Capítulo 7 EmptyTer 22 Dez 2015, 11:14 por ::KimMax::

» Fantasy Art Online
BYOND - Criando jogos em BYOND - Capítulo 7 EmptyDom 18 Out 2015, 18:42 por daviih123

» Você vai ter medo do Nerve gear?
BYOND - Criando jogos em BYOND - Capítulo 7 EmptySáb 25 Jul 2015, 17:02 por Kirito-kun

» O Barato é louco
BYOND - Criando jogos em BYOND - Capítulo 7 EmptySáb 27 Jun 2015, 16:26 por Halt

» Download RPG Maker 2000 + RTP em português
BYOND - Criando jogos em BYOND - Capítulo 7 EmptyQui 21 maio 2015, 20:28 por Wismael


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

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

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

Halt

Halt
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

https://arenarpgmaker.forumeiros.com

SuperArturo

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

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

Permissões neste sub-fórum
Não podes responder a tópicos