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]

Halt

avatar
Administrador
Administrador
/*
Aqui, definiremos as funções básicas de personagem, como salvar, carregar e criar.
Tudo começa aqui ;D
*/


// proc para client para salvar
client/proc/Salvar()
var/organizar=copytext(src.ckey, 1, 2)
// vai selecionar a priemeira letra da KEY do player
var/savefile/F = new("players/[organizar]/[src.ckey].sav")
// vai criar o arquivo save na pasta players/letra/key.sav
var/char_ckey = cKey(src.mob.name)
//vai pegar a key do char em letras minusculas
F["/[ckey]/[char_ckey]"] << src.mob
// vai enviar os dados do char para o arquivo onde src.mob é o player

client/proc/Carregar(char_ckey)
// proc para client para carregar o char
var/organizar=copytext(src.ckey, 1, 2)
// vai selecionar a priemeira letra da KEY do player
var/savefile/F = new("players/[organizar]/[src.ckey].sav")
// vai escolher o .sav do player
F["/[ckey]/[char_ckey]"] >> src.mob
// vai enviar os dados para o src.mob que é o player
world << "[src.mob.name] entrou!"


// Aqui, definiremos então como tratar um player que acabou de logar.
mob/novoplayer
Login()
// Ao logar, tomaremos as ações necessárias, com o call_parent
..()
// Depois posicionaremos o player
usr.loc=locate(1,1,2)
// E em seguida chamaremos a rotina para Criar/Carregar chars.
src.Selecao()

//Rotina para selecionar se deseja Criar/Carregar chars
proc/Selecao()
var/list/personagens = src.Personagens()
//vai solicitar a list dos personagnes a proc criada.
var/novochar = "Novo Personagem"
// poem uma variavel novochar escrita "Novo Personagem"
var/list/menu = new()
// vai criar um menu
menu += personagens
// vai por os personagens na lista do menu
menu += novochar
// vai por a variavel novochar na list
var/resposta = input("Criação de Personagem", "By Renato") in menu
// Perguntaremos se o jogador deseja carregar um personagem, ou criar um novo
if (resposta == novochar)
src.NovoChar()
// Essa é a rotina de criação de personagem
return
else
var/sucesso = src.client.Carregar(resposta)
//vai pedir para carregar o char
if(sucesso)
//vai conferir se carregou
usr << "Você carregou o char [resposta]"
// vai enviar uma mensagem.


//Rotina para Criar chars
proc/NovoChar()
var/nome = input(src, "Qual seu nome?", "Criação de Personagem", "") as text
// Seleciona um nome através de input()
var/mob/novomob
novomob = new /mob/player()
novomob.name = nome
// Abre um novo mob, e nomeia-o com o nome escolhido
switch(input("Qual seu sexo?", "Criação de Personagem") in list ("Masculino","Femino"))
// Pede para selecionar o sexo
if("Masculino")
novomob.sexo = "Masculino"
novomob.icon = 'Homen.dmi'
// Escolhe o icon apropriado
novomob.icon_state = ""
novomob.loc = locate(10,10,1)
// Posiciona o char
src.client.mob = novomob
// Define que o jogador é aquele mob.
if("Feminino")
novomob.sexo = "Feminino"
novomob.icon = 'Mulher.dmi'
// Escolhe o icon apropriado
novomob.icon_state = ""
novomob.loc = locate(10,10,1)
// Posiciona o char
src.client.mob = novomob
// Define que o jogador é aquele mob.


// Rotina para Carregar chars
mob/proc
Personagens()
var/firstletter=copytext(src.ckey, 1, 2)
// vai selecionar a priemeira letra da KEY do player
var/savefile/F = new("players/[firstletter]/[src.ckey].sav")
// vai escolher o .sav do player
F.cd = "/[ckey]"
// vai escolher uma "subpasta" dentro do save que é a key do player
var/list/personagens = F.dir
// vai criar uma variavel list onde são os char do .sav
return personagens
//vai retornar a proc. fiz assim para ficar mais organizado

// Agora, vem o comando de salvar o char.
mob/verb/Save()
set category = "Salvar"
set name = "Salvar"
// Ele simplesmente chama um rotina que vai fazer o save
usr.client.Salvar()

// Aqui, uma rotina padrão do DM, a Del() que é chamada para toda coisa toda vez que
// fazemos del(coisa). No caso, o ato de deslogar um char, chama a client.Del()
client/Del()
if(istype(src.mob, /mob/novoplayer))
// Se o jogador deslogando é um novoplayer
return ..()
// sairemos sem fazer nada

// Caso contrário, precisamos salvá-lo
src.Salvar()
// Então chamamos a função de salvar
return ..()
// e saímos


// Agora, as duas funções básicas para se fazer save e load: Wirte e Read.
// Elas trabalham salvando ou carregando todas as variáveis do dono da rotina num
// arquivo de save, indicado em seus parâmetros. Porém, há variáveis que nós usamos mas não
// estão definidas na árvore do mob, como os verbos não-padrão e as variáveis de posição
// x,y e z (note que elas não estão no arquivo mob.dm, nem tampouco são variáveis padrão
// que o byond guarda. São consideradas var/tmp. Logo, para salvá-las, temos que usar de
// um artifício.
mob
// Proc para salvar (escrever)
Write(savefile/F)
..()
// Por exemplo aqui, todas as variáveis do mob serão salvas no arquivo F

F["last_x"] << x
F["last_y"] << y
F["last_z"] << z
// E aqui está o artifício citado. Forçamos o salvamento das variáveis x, y e z
// que estarão no savefile com os nomes last_x, last_y e last_z.

// Proc para carregar (ler)
Read(savefile/F)
..()
// Mesmo funcionamento já explicado
var/last_x
var/last_y
var/last_z
// Agora criamos variáveis para armazenar os valores de onde o mob estava posicionado
// da última vez q salvou
F["last_x"] >> last_x
F["last_y"] >> last_y
F["last_z"] >> last_z
// Carregamos os dados do savefile para essas variáveis
loc = locate(last_x, last_y, last_z)
// E setamos o local do mob para o local indicado por essas coordenadas.


// Por fim, definimos quais os valores das variáveis básicas quando se é um mob do tipo player Sem isso não roda
mob/player
hp = 100
mp = 100
maxhp = 100
maxmp = 100
forca = 10
defesa = 5
velocidade = 10


__________________________________________
[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

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