Bem, agora comecei a me dedicar realmente aos scripts xD
O script, cria Facções, escolhidas por você, e conforme você conversa com NPCs dessa Facção, ou faz Quests, são sendo adcionadas, reputação sua, a essa Facção, determinada no código.
O script não tem limitações a prova, pode ser usado em jogos de Namoro, jogos estilo Bully, ou
QUALQUER OUTRA COISA POSSÍVEL !!! Ufa ... Desabafei xD
Agora vamos ao script, e como utilizá-lo
Como adcionar reputação a certa Facção ?
É só usar o código :
Sendo o "i", o ID da Facção, e n, o valor da reputação que vae ser adcionada
Lembrando, que as Facções começam do 0, ou seja, se você quer adcionar 2 pontos a facção 6, o código ficará assim :
Como eu faço pro jogador ver a sua Reputação ?
É só chamar o script :
Como eu faço pra a Interação do NPC mudar conforme a Reputação ?
É só ir no evento, e em condições, bote em scripts e :
Lembrando que as Facções começam do 0, esse código verifica se a Facção 6 tem, 2 pontos de Reputação
Acabou a Explicação, vamos ao Script em si
Demo :
Demo malfeita de ultima hora por pedido de membros xD
Link Demo
Screens ::
http://img165.imageshack.us/my.php?image=democg6.png
Postem possíveis Bugs e Sugestões, para que eu possa melhorar o script
Sistema de Reputação
Bem, eu fiz esse script para ajudar no jogo que estou desenvolvendo, mas pensei que pudesse ser útil para outras pessoas.O script, cria Facções, escolhidas por você, e conforme você conversa com NPCs dessa Facção, ou faz Quests, são sendo adcionadas, reputação sua, a essa Facção, determinada no código.
O script não tem limitações a prova, pode ser usado em jogos de Namoro, jogos estilo Bully, ou
QUALQUER OUTRA COISA POSSÍVEL !!! Ufa ... Desabafei xD
Agora vamos ao script, e como utilizá-lo
Como adcionar reputação a certa Facção ?
É só usar o código :
- Código:
$game_system.fac_rep[i] += n
Sendo o "i", o ID da Facção, e n, o valor da reputação que vae ser adcionada
Lembrando, que as Facções começam do 0, ou seja, se você quer adcionar 2 pontos a facção 6, o código ficará assim :
- Código:
$game_system.fac_rep[5] += 2
Como eu faço pro jogador ver a sua Reputação ?
É só chamar o script :
- Código:
$scene = Scene_Reputação.new
Como eu faço pra a Interação do NPC mudar conforme a Reputação ?
É só ir no evento, e em condições, bote em scripts e :
- Código:
$game_system.fac_rep[5] == 2
Lembrando que as Facções começam do 0, esse código verifica se a Facção 6 tem, 2 pontos de Reputação
Acabou a Explicação, vamos ao Script em si
- Código:
#==============================================================
# Sistema de Reputação
#
# Por llFristonJackll
#
# Data : 08/06/2012
#
#==============================================================
#
# :: Edição ::
#
# Linha 46 - Ponto de reputação inicias em cada Facção.
# Linha 49 - Facções Iniciais.
# Linha 98 - Facções.
# Linha 99 - Estados da Reputação.
#
#==============================================================
class Game_System
attr_accessor :fac_rep
attr_accessor :fac_ativo
alias rep_initialize initialize
def initialize
rep_initialize
@fac_rep=[]
@fac_ativo=[]
end
end
class Scene_Title
alias azor_rep command_new_game
def command_new_game
azor_rep
$game_system.fac_rep = [50, 44, 75, 24, 9, 56, 100]
$game_system.fac_ativo = ["ativo", "ativo", "ativo", "ativo", "ativo", nil, nil]
end
end
class Scene_Reputação
def main
@status_window = Window_Reputação.new
@sprite = Spriteset_Map.new
Graphics.transition
loop do
Graphics.update
Input.update
update
if $scene != self
break
end
end
Graphics.freeze
@status_window.dispose
@sprite.dispose
end
def update
if Input.trigger?(Input::B)
$game_system.se_play($data_system.cancel_se)
$scene = Scene_Map.new
return
end
end
end
class Window_Reputação < Window_Base
attr_accessor :facções
attr_accessor :fac_rep
attr_accessor :reptypes
attr_accessor :fac_ativo
def initialize
super(0, 0, 640, 480)
self.contents = Bitmap.new(width - 32, height - 32)
self.contents.font.name = "Tahoma"
self.contents.font.size = 22
self.contents.font.color = text_color(0)
self.back_opacity = 120
@facções = ["Familia Real", "Igreja de Avelius", "Nobres", "Nômades", "Estrangeiros", "Magos Brancos", "Crepúsculo"]
@rep = ["Venerado", "Honrado", "Amigo", "Neutro", "Inimigo", "Odiado", "Desertado"]
refresh
end
def draw_repbar(x, y, width, height, current, max)
x -= 10
for i in 0..(height+2)
self.contents.fill_rect(x-3+i, y - 1 + i, width+5, 1, Color.new(255, 255, 255, 255))
end
for i in 0..height
self.contents.fill_rect(x+i, y+i, width+1, 1, Color.new(0, 0, 0, 255))
end
for i in 0..height
for j in 0..current
self.contents.fill_rect(x+j+i, y+i, 1, 1, Color.new(0, 0 + (1.25*j), 255 - (1.25*j), 255 - (5*i)))
end
end
end
def refresh
self.contents.clear
self.contents.font.color = normal_color
self.contents.font.size = 32
self.contents.draw_text(20, 30, 184, 32, "Reputação", 2)
self.contents.font.size = $fontsize
for i in 0...@facções.size
y = 80 + (i * 70)
x = -30
if i > 4
x = 280
y = 80 + ((i - 5) * 70)
end
if $game_system.fac_rep[i] > 100
$game_system.fac_rep[i] = 100
end
if $game_system.fac_rep[i] < 0
$game_system.fac_rep[i] = 0
end
if $game_system.fac_ativo[i] == "ativo"
draw_fac(x, y, i)
end
self.contents.font.color = normal_color
end
end
def draw_fac(x, y, i)
self.contents.draw_text(x+40, y, 160, 32, @facções[i], 0)
draw_repbar(x+90, y+32, 200, 14, 2 * $game_system.fac_rep[i], 100)
self.contents.font.color = system_color
if $game_system.fac_rep[i] >= 90
self.contents.draw_text(x+210, y, 96, 32, @rep[0], 2)
elsif $game_system.fac_rep[i] >= 75
self.contents.draw_text(x+210, y, 96, 32, @rep[1], 2)
elsif $game_system.fac_rep[i] >= 55
self.contents.draw_text(x+210, y, 96, 32, @rep[2], 2)
elsif $game_system.fac_rep[i] >= 45
self.contents.draw_text(x+210, y, 96, 32, @rep[3], 2)
elsif $game_system.fac_rep[i] >= 25
self.contents.draw_text(x+210, y, 96, 32, @rep[4], 2)
elsif $game_system.fac_rep[i] >= 10
self.contents.draw_text(x+210, y, 96, 32, @rep[5], 2)
else
self.contents.draw_text(x+210, y, 96, 32, @rep[6], 2)
end
end
end
Demo :
Demo malfeita de ultima hora por pedido de membros xD
Link Demo
Screens ::
http://img165.imageshack.us/my.php?image=democg6.png
Postem possíveis Bugs e Sugestões, para que eu possa melhorar o script