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?
Aula 5: As Operações Lógicas parte 2 EmptyQui 25 Nov 2021, 14:04 por Halt

» [Dúvida] Como tirar a porcentagem de esquiva
Aula 5: As Operações Lógicas parte 2 EmptySex 19 Nov 2021, 17:14 por Halt

» Pokémon Genesis Online! (PGO)
Aula 5: As Operações Lógicas parte 2 EmptyQua 05 Jul 2017, 18:08 por Lexar

» Tileset Converter to MV
Aula 5: As Operações Lógicas parte 2 EmptySex 12 maio 2017, 14:07 por Douggi

» Pack Resources, Sprites e etc
Aula 5: As Operações Lógicas parte 2 EmptyQua 23 Dez 2015, 12:30 por raydengv

» Download RPG Maker 2003 + RTP em português
Aula 5: As Operações Lógicas parte 2 EmptyTer 22 Dez 2015, 11:14 por ::KimMax::

» Fantasy Art Online
Aula 5: As Operações Lógicas parte 2 EmptyDom 18 Out 2015, 18:42 por daviih123

» Você vai ter medo do Nerve gear?
Aula 5: As Operações Lógicas parte 2 EmptySáb 25 Jul 2015, 17:02 por Kirito-kun

» O Barato é louco
Aula 5: As Operações Lógicas parte 2 EmptySáb 27 Jun 2015, 16:26 por Halt

» Download RPG Maker 2000 + RTP em português
Aula 5: As Operações Lógicas parte 2 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]

1Aula 5: As Operações Lógicas parte 2 Empty Aula 5: As Operações Lógicas parte 2 Sáb 13 Out 2012, 18:29

Halt

Halt
Administrador
Administrador
[Autor: Anderson Porto]
[Tens de ter uma conta e sessão iniciada para poderes visualizar esta imagem]
Fazendo um Cheat Script
Vamos pensar no seguinte problema, quero fazer um script de cheat, nele certas variáveis precisam assumir certos valores, caso contrário, o cheat não funciona! No nosso script de cheat, iremos definir um Master Code, se o jogador não sabe esse código, o nenhum outro cheat funciona!

Hoje faremos a primeira versão desse script, algo bem simples, mais adiante nós iremos refazê-lo, porém bem mais avançado.

[Tens de ter uma conta e sessão iniciada para poderes visualizar esta imagem]
Como sempre vamos criar a nossa classe! Vou chamá-la de Game_Cheats.
Lembre-se, se eu colocar como nome de classe, por exemplo Game Cheats, sem o _, o programa só vai ler o Game e vai tentar descobrir o que é o Cheats, como não vai saber, vai dar pau. (Por que Cheats não é nenhum comando ou variável conhecida) Por isso sempre que eu quero dar um nome para alguma classe, método, variavel... eu junto os nomes com _.

[Tens de ter uma conta e sessão iniciada para poderes visualizar esta imagem]
Vamos estabelecer um método de verificar, esse método vai procurar nas variáveis do jogo se há ou não a ocorrência de códigos cheat, se tiver ele vai adicionar vantagens no game! Para usar isso, vamos criar por condições (if, elsif e else). Crie um método, eu irei chamá-lo de verificar.

[Tens de ter uma conta e sessão iniciada para poderes visualizar esta imagem]
Vamos estabelecer as condições, para isso precisamos estabeler quais serão os códigos! Vou colocar a lista que eu vou usar...
o master code será 6325
força infinita será 1845
agilidade infinita será 9430
Estabelecidos os cheats, vamos agora criar as condições:
if $game_variables[1] == 6325
Bom agora temos um impasse, é claro que poderíamos criar um "if" dentro de outro "if" e ai ficaria:
if $game_variables[1] == 6325
if $game_variables[2] == 1845
Só para lembrar, notem que estou utilizando as variáveis 1 e 2 para armazenar os códigos.
Mas eu não quer utilizar 2 linhas na minha condição e sim 1, como fazer???

[Tens de ter uma conta e sessão iniciada para poderes visualizar esta imagem]OPERADORES LÓGICOS

CONJUNÇÃO> a conjunção é um operador que só será válido quando os dois operandos forem válidos...
Traduzindo:
Para que minha condição (aquela do cheat script) seja válida as variáveis 1 e 2 precisam estar, ao mesmo tempo, valendo um certo número, assim eu uso o comando "and", minha condição fica então:
if $game_variables[1] == 6325 and $game_variables[2] == 1845
Com esse comando, a condição só será válida se as duas variáveis tiverem os valores que eu estabeleci!

DISJUNÇÃO> outro operador lógico, você pode usá-lo quando quer que não seja nescessário que as duas verificações sejam verdadeiras.
Traduzindo: se em meu código basta que uma das variáveis seja verdadeira para que funcione, então uso o comando "or":
if $game_variables[1] == 6325 or $game_variables[2] == 1845
Com esse comando, basta que uma das variáveis tenha o valor que eu estabeleci para que funcione a condição.

Existem outros operadores, mas vamos ficar com estes por enquanto...

[Tens de ter uma conta e sessão iniciada para poderes visualizar esta imagem]Voltando ao que interessa
Nessas alturas, já sabemos o nome da classe, do método, quais serão os códigos cheat e como criar as condições, porém não sabemos como dar aos personagens o que nosso cheat precisa dar.

[Tens de ter uma conta e sessão iniciada para poderes visualizar esta imagem]Básicos da classe Game_Actors
Aqui não é novidade para ninguém, todos sabemos que os personagens possuem hp, sp, exp, força, agilidade etc. porém o que muitos não sabem é que esses valores são variáveis dentro da classe Game_Actors, quando temos esse tipo de situação, nós dizemos que o hp, sp, exp... são características da classe ou ATRIBUTOS, nem todos os atributos podem ser modificados, mas na classe que estamos, podem!

Como acessar os personagens?
Você sabe que os personagens ficam ordenados pela database, assim como você usa as $game_variables, você pode usar os personagens que ficam no objeto $game_actors, assim como você coloca um $game_variables[1] para mudar a variável 1 da database, você vai colocar $game_actors[1] pra mexer nos atributos do 1º char da database.

Como acessar os atributos?
Nas variáveis você só coloca $game_variables[id] = (= ou +=, os de sempre, vocês sabem do que eu falo), porém com os personagens não pode ser feito assim, afinal, imagine colocar $game_actors[2] += 5! Como vou somar 5 em um personagem? Para isso utilizamos os atributos, que nessa classe podem ser acessados como métodos.
Para acessar o força:
$game_actors[id].str
Para acessar a agilidade:
$game_actors[id].agi

Nosso código deve ficar mais ou menos assim:
class Game_Cheats
def verificar
if $game_variables[1] == 6325 and $game_variables[2] == 1845
$game_actors[1].str = 999
elsif $game_variables[1] == 6325 and $game_variables[2] == 9430
$game_actors[1].agi = 999
end
end
end

Crie agora um evento no mapa, nele, mande pra que o jogador digite um número, e ai armazena um na variável 1 e o outro na 2, depois crie o objeto Game_Cheats e execute o método de verificação!

Criando mais cheats:
Vou listar alguns atributos dos personagens:
dex > dextreza
maxhp > hp máximo
maxsp > sp máximo
int > inteligencia
exp > experiência
...
Para saber mais procure na classe Game_Actors do seu banco de scripts

Como adicionar ou remover ítens?!
Para executar estes comandos, nós não utilizamos a classe Game_Actors e sim a Game_Party, assim temos:
$game_party.gain_gold(quantidade)
$game_party.lose_gold(quantidade)
Para ganhar ou perder dinheiro> gain: ganhar, lose>perder
$game_party.gain_weapon(id, quantidade)
$game_party.lose_weapon(id, quantidade)
$game_party.gain_armor(id, quantidade)
$game_party.lose_armor(id, quantidade)
$game_party.gain_item(id, quantidade)
$game_party.lose_item(id, quantidade)

https://arenarpgmaker.forumeiros.com

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