Introdução
Iae pessoal, estou aqui disponibilizando à vocês um sistema que eu criei para meu projeto. Ele é quase todo baseado em evento, só tem uma partezinha que precisa utilizar o script. Vamos lá!
Tutorial
1º Crie uma variável chamada "Cash" (sem aspas).
2º Em seguida, crie um evento chamado "Add Cash" (somente para testar o sistema).
3º Neste evento, você vai em opções de variável, selecione a var. "Cash", nela selecione o botão de seleção que tem um "+" do lado, e em valor selecione a quantidade de Cash que deseja adicionar ao usuário quando ele interagir com o evento, e de "ok". Ponha uma imagem no evento, e salve-o.
4º Crie um evento chamado "Loja", adicione uma imagem à ele, e crie ESCOLHAS. Nestas escolhas, coloque uma delas com o nome de "Poção [10 CASH] (somente um exemplo), e de OK.
5º Agora, adicione à escolha (quando o personagem escolher a "Poção [10 CASH]) uma condição de variável. Nela ponha MAIOR OU IGUAL, e no campo de valor coloque "10" (quanto custa o item).
6º Caso a condição for cumprida, crie outra opção de variável, e selecione o botão de seleção que tem um "-", e no valor coloque "10" (para diminuir o CASH).
7º Em seguida ponha para adicionar um ítem, e selecione para adicionar uma poção.
8º Caso a condição do valor de cash não for cumprida, adicione uma mensagem dizendo "Você não tem CASH suficientes".
O sistema de CASH está pronto, porém o usuário deve ver quando CASH ele tem. Para fazer isto, vá no Script "[WIN] Window_Status" e substitua por este:
- Código:
#==============================================================================
# ** Status
#------------------------------------------------------------------------------
# By Marlos Gama
# Modificado por DoutorGoRi
#-----------------------------------------------------------------------------
# Radbox Gamez - todos os direitos reservados
#------------------------------------------------------------------------------
class Window_Status2 < Window_Base
def initialize
super(25,70,210,260)
self.contents = Bitmap.new(width - 32, height - 32)
@dragable = true
@closable = true
self.z = 999999
self.back_opacity = 200
if User_Edit::DISTRIBUIR_ACTIVE == true
@str = Button.new(self,145+15, 120+3, " + ") {str}
@agi = Button.new(self,145+15, 140+3, " + ") {agi}
@dex = Button.new(self,145+15, 160+3, " + ") {dex}
@int = Button.new(self,145+15, 180+3, " + ") {int}
end
refresh
end
def update
super
refresh if something_changed?
end
def on_close
self.visible = false
self.active = false
$fechando_ativar = true
end
def refresh
@actor = $game_party.actors[0]
@old_lvl = @actor.level
@old_gold = $game_party.item_number(Item_Ouro::Item_Id.to_i)
@old_hp = @actor.hp
@old_sp = @actor.sp
@old_exp = @actor.now_exp
@old_maxhp = @actor.maxhp
@old_maxsp = @actor.maxsp
@old_pontos = $distribuir_pontos
@old_str = @actor.str
@old_dex = @actor.dex
@old_int = @actor.int
@old_agi = @actor.agi
self.contents.clear
# Level
self.contents.draw_text(0, 0, 62, 32, "Level")
self.contents.draw_text(100, 0, 100, 32, "#{@actor.level}")
# Ouro
self.contents.draw_text(0, 20, 32, 32, "GP")
self.contents.draw_text(100, 20, 100, 32, $game_party.item_number(Item_Ouro::Item_Id.to_i).to_s)
# HP\MaxHP
self.contents.draw_text(0, 40, 100, 32, "HP/MaxHP")
self.contents.draw_text(100, 40, 200, 32, "#{@actor.hp}/#{@actor.maxhp}")
# SP\MaxSP
self.contents.draw_text(0, 60, 100, 32, "SP/MaxSP")
self.contents.draw_text(100, 60, 200, 32, "#{@actor.sp}/#{@actor.maxsp}")
# HP\MaxHP
self.contents.draw_text(0, 80, 72, 32, "Exp/Próximo")
self.contents.draw_text(100, 80, 200, 32, "#{@actor.now_exp}/#{@actor.next_exp}")
# Str
self.contents.draw_text(0, 100, 32, 32, "Str")
self.contents.draw_text(100, 100, 100, 32, "#{@actor.str}")
# Agi
self.contents.draw_text(0, 120, 32, 32, "Agi")
self.contents.draw_text(100, 120, 100, 32, "#{@actor.agi}")
# Def
self.contents.draw_text(0, 140, 32, 32, "Def")
self.contents.draw_text(100, 140, 100, 32, "#{@actor.dex}")
# Int
self.contents.draw_text(0, 160, 32, 32, "Int")
self.contents.draw_text(100, 160, 100, 32, "#{@actor.int}")
# Atk
self.contents.draw_text(0, 180, 62, 32, "Pontos")
if $distribuir_pontos < 0
self.contents.draw_text(100, 180, 32, 32, "0",0)
else
self.contents.draw_text(100, 180, 100, 32, $distribuir_pontos.to_s,0)
end
# Cash
self.contents.draw_text(0, 200, 100, 32, "")
self.contents.draw_text(0, 200, 100, 32, "Cash: #{$game_variables[5]}")
end
def something_changed?
return true if @old_lvl != @actor.level
return true if @old_gold != $game_party.item_number(Item_Ouro::Item_Id.to_i)
return true if @old_exp != @actor.now_exp
return true if @old_hp != @actor.hp
return true if @old_sp != @actor.sp
return true if @old_maxhp != @actor.maxhp
return true if @old_maxsp != @actor.maxsp
return true if @old_str != @actor.str
return true if @old_dex != @actor.dex
return true if @old_int != @actor.int
return true if @old_agi != @actor.agi
return true if @old_pontos != $distribuir_pontos
return false
end
def str
if $distribuir_pontos >= 1
$distribuir_pontos -= 1
$game_actors[1].str += 1
#$status.refresh
else
#$status.refresh
end
end
def dex
if $distribuir_pontos >= 1
$distribuir_pontos -= 1
$game_actors[1].dex += 1
#$status.refresh
else
#$status.refresh
end
end
def agi
if $distribuir_pontos >= 1
$distribuir_pontos -= 1
$game_actors[1].agi += 1
#$status.refresh
else
#$status.refresh
end
end
def int
if $distribuir_pontos >= 1
$distribuir_pontos -= 1
$game_actors[1].int += 1
#$status.refresh
else
#$status.refresh
end
end
end
Agora, quando você abrir aquela Window do NetPlay v3 que mostra o nível, ataque, dinheiro, etc, também mostrará a quantidade de Cash que você tem.
Vídeo
Tentei fazer um vídeo mostrando o processo de criação do sistema, não ficou muito bom, mas tá ai!!!
https://www.youtube.com/watch?v=sgwZ9plnMYE
OBS
Créditos à DoutorGoRi por ter criado o sistema, e postado no tópico.
Qualquer um pode postar este sistema em outro fórum, porém deve utilizar os devidos créditos!
TENHA UM BOM USO!!!