[Tutorial/AULA] SBNPM (Sistema de banco Netplay Master) Part 3 Final

Ir em baixo

[Tutorial/AULA] SBNPM (Sistema de banco Netplay Master) Part 3 Final

Mensagem por Nanzin em Sab Jan 28, 2012 6:05 pm


4º Script: [SYS] Banco

cole em qualuqer lugar acima do Main_Netplay esse script:
Código:

#--------------------------------------------------------------------#
# * Sistema de Deposito e Saque
# Scripted By: Nanzin
# Funçao: Permite o Player depositar e sacar dinheiro
# Equipe: Wolf Dragon Makers
# Creditos: Nanzin
#--------------------------------------------------------------------#


class Window_Deposito < Window_Base
  def initialize
    super(50,50,207,110)
    self.contents = Bitmap.new(width - 32,height - 32)
    self.z = 9999
    self.opacity = 200
    @dragable = true
    @closable = true
    conteudo
  end
 
  def conteudo
    self.contents.clear
    self.contents.draw_text(32,-10,132,32,"Quanto Deseja Depositar?")
    self.contents.draw_text(22,10,132,32,"Gold: #{$game_party.item_number(Item_Ouro::Item_Id.to_i)}")
    self.contents.draw_text(102,10,132,32,"Saldo: #{$game_party.conta}")
    @ok = Button.new(self,123,60,"Depositar"){deposito}
    @qt = Text_Box.new(self,45,60,75,10,1)
    icone1 = RPG::Cache.icon("Gold")
    icone1_rect = Rect.new(0,0,icone1.width,icone1.height)
    self.contents.blt(-2,40,icone1,icone1_rect)
    self.contents.draw_text(18,36,132,32,"R$: ")
    self.contents.draw_text(0,53,132,32,"Status: ")
  end
 
  def deposito
    if @qt.text == ""
      msg_erro = "Informe Uma Quantia"
      self.contents.font.color = Color.new(255,-255,-255,255)
      self.contents.draw_text(37,53,132,32,"#{msg_erro}")
    end
    if $game_party.item_number(Item_Ouro::Item_Id.to_i) != 0 and $game_party.item_number(Item_Ouro::Item_Id.to_i) >= (@qt.text).to_i and @qt.text != ""
      $game_party.lose_gold((@qt.text).to_i)
      $game_party.guarda_conta((@qt.text).to_i)
      msg_sucess = "Deposito Efetuado Com Sucesso"
      self.contents.font.color = Color.new(0,255,0,255)
      self.contents.draw_text(37,53,132,32,"#{msg_sucess}")
    elsif $game_party.item_number(Item_Ouro::Item_Id.to_i) == 0 and @qt.text != "" or $game_party.item_number(Item_Ouro::Item_Id.to_i) < (@qt.text).to_i and @qt.text != ""
      msg_erro = "Voce nao Possui essa Quantia"
      self.contents.font.color = Color.new(255,-255,-255,255)
      self.contents.draw_text(37,53,132,32,"#{msg_erro}")
    end
  end
end


class Window_Saque < Window_Base
def initialize
    super(50,50,207,86)
    self.contents = Bitmap.new(width - 32,height - 32)
    self.z = 9999
    self.opacity = 200
    @dragable = true
    @closable = true
    conteudo
  end
 
  def conteudo
    self.contents.clear
    self.contents.draw_text(32,-10,132,32,"Quanto Deseja Retirar?")
    self.contents.draw_text(22,10,132,32,"Gold: #{$game_party.item_number(Item_Ouro::Item_Id.to_i)}")
    self.contents.draw_text(102,10,132,32,"Saldo: #{$game_party.conta}")
    @ok = Button.new(self,123,60,"Retirar"){sacar}
    @qt = Text_Box.new(self,45,60,75,10,1)
    icone1 = RPG::Cache.icon("Gold")
    icone1_rect = Rect.new(0,0,icone1.width,icone1.height)
    self.contents.blt(-2,40,icone1,icone1_rect)
    self.contents.draw_text(18,36,132,32,"R$: ")
    self.contents.draw_text(0,53,132,32,"Status: ")
  end
 
  def sacar
    if @qt.text == ""
      msg_erro = "Informe Uma Quantia"
      self.contents.font.color = Color.new(255,-255,-255,255)
      self.contents.draw_text(37,53,132,32,"#{msg_erro}")
    end
    if $game_party.conta != 0 and $game_party.conta >= (@qt.text).to_i and @qt.text != ""
      $game_party.retira_conta((@qt.text).to_i)
      $game_party.gain_gold((@qt.text).to_i)
      msg_sucess = "Saque Efetuado Com Sucesso"
      self.contents.font.color = Color.new(0,255,0,255)
      self.contents.draw_text(37,53,132,32,"#{msg_sucess}")
    elsif $game_party.conta == 0 and @qt.text != "" or $game_party.conta < (@qt.text).to_i and @qt.text != ""
      msg_erro = "Saldo Insuficiente!"
      self.contents.font.color = Color.new(255,-255,-255,255)
      self.contents.draw_text(37,53,132,32,"#{msg_erro}")
    end
  end
end

class Window_Banco < Window_Base
  def initialize
    super(100,100,200,90)
    self.contents = Bitmap.new(width - 32, height - 32)
    self.z = 99999
    self.opacity = 200
    @dragable = true
    @closable = true
    conteudo
  end
 
  def conteudo
    self.contents.draw_text(30,0,132,32,"Bem vindo ao Banco!")
    @sacar = Button.new(self,30,50,"Retirar"){$banco.visible = false,$banco.active = false,$saque.visible = true}
    @depositar = Button.new(self,90,50,"Depositar"){$banco.visible = false,$banco.active = false,$deposito.visible = true}
  end
end

-> linha 16 e 17
Código:
@dragable = true
    @closable = true
- estamos dizendo que a janela pode ser Arrastada pela tela e que ela pode ser fechada pelo "xzinho"

-> linha 25
Código:
self.contents.draw_text(102,10,132,32,"Saldo: #{$game_party.conta}")
aqui estamos mostrando o seu saldo de banco (o que foi depositado), atravez da chamada de variavel:@gold da classe game_party;

-> linha 26 e 27
Código:
@ok = Button.new(self,123,60,"Depositar"){deposito}
    @qt = Text_Box.new(self,45,60,75,10,1)
- aqui estamos dizendo que @ok é um botao e que @qt é um text_box,

um botao se faz pelos seguintes parametros:

Código:
Button.new(win,x,y,"texto_aqui")

onde win e a janela que o botao está x,y sao as coordenadas!

e text_box se declara assim:

Código:
 Text_Box.new(win,x,y,width,max_caracteres,linhas)
onde width é o tamanho dela em comprimento: <------------>;

- > linha 35
Código:
 def deposito
    if @qt.text == ""
      msg_erro = "Informe Uma Quantia"
      self.contents.font.color = Color.new(255,-255,-255,255)
      self.contents.draw_text(37,53,132,32,"#{msg_erro}")
    end
    if $game_party.item_number(Item_Ouro::Item_Id.to_i) != 0 and $game_party.item_number(Item_Ouro::Item_Id.to_i) >= (@qt.text).to_i and @qt.text != ""
      $game_party.lose_gold((@qt.text).to_i)
      $game_party.guarda_conta((@qt.text).to_i)
      msg_sucess = "Deposito Efetuado Com Sucesso"
      self.contents.font.color = Color.new(0,255,0,255)
      self.contents.draw_text(37,53,132,32,"#{msg_sucess}")
    elsif $game_party.item_number(Item_Ouro::Item_Id.to_i) == 0 and @qt.text != "" or $game_party.item_number(Item_Ouro::Item_Id.to_i) < (@qt.text).to_i and @qt.text != ""
      msg_erro = "Voce nao Possui essa Quantia"
      self.contents.font.color = Color.new(255,-255,-255,255)
      self.contents.draw_text(37,53,132,32,"#{msg_erro}")
    end
  end

- aqui estamos criando o sistema d deposito, que fica dessa forma:
se o box de texto estiver vazio um aviso é enviado: "Informe uma Quantia"

se o seu dinheiro é diferente de 0 e ele é maior que a quantidade que voce escreveu no box, e que box e diferente de "" (vazio)" entao:
Código:
$game_party.lose_gold((@qt.text).to_i)
      $game_party.guarda_conta((@qt.text).to_i)
      msg_sucess = "Deposito Efetuado Com Sucesso"
      self.contents.font.color = Color.new(0,255,0,255)
      self.contents.draw_text(37,53,132,32,"#{msg_sucess}")

voce perde a quantidade de gold informada no box, lembra do procedimento: guada_conta? que criamos 2 vezes?, enta ele esta sendo usado agora: para que na variavel @conta fique guardado a quantia que voce digito a ser depositada!;

depois a mensagem "Deposito efetuado com sucesso" é mostrada!

caso voce nao tenha a quantia que deseja depositar, uma mensagem será mostrada!

os mesmos principios matematicos sao utilizados no procedimento Saque!

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


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

Versao com Auto-Atualizador: [Você precisa estar registrado e conectado para ver este link.]


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

Nanzin -> Pelo Tutorial/Aula e o Sistema
Anubyes -> Por Recolorir os Rubys utilizados por min para fazer os Buttons
avatar
Nanzin
Mortal
Mortal

Mensagens : 18
Dom de anjo: : 2
Data de inscrição : 28/01/2012
Idade : 22
Localização : Rio de Janeiro

Ver perfil do usuário http://hogwartsworldgame.blogspot.com

Voltar ao Topo Ir em baixo

Voltar ao Topo


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