Eai galera! Bem? Então, to com um problema aqui com um script. É o Script: Sistema de Sobrevivencia v1.11. Então meu problema é o seguinte, eu estou criando um jogo de Fazenda
baseado em Harvest Moon, só que no meu jogo tem esse sistema de necessidades. Porém
eu preciso que quando a vida, fome, sede, sono e infecção chegue a 0, aconteça um
Evento Comum, para que eu possa editar o que vai acontecer com o player se chegar a 0.
Ex: A barra de sono chegou a 0, o player dorme aonde está e recupera alguns status e
perde mais infecção(que no meu jogo é carisma). Então, tava precisando muito disso,
urgentemente, para continuar meu projeto. Se alguém puder me ajudar, dês de já agradeço.
Script:
- Código:
=begin
======================================
Sistema de Sobrevivencia v1.11 (Anteriormente conhecido como Sistema de Necessidades)
Criado por: Apellonyx
Traduçao feita por: Victor Mendes (makervictor)
Lançado: 2 April 2013
Ultima atualizaçao: 5 April 2013
======================================
Termos de Uso:
Voce é livre para usar esse sistema como quizer, em jogos comerciais ou nao-
comerciais. Se voce editar o script bastante, nao é necessario me creditar
necessary to credit me (desde que claramente seja usado apenas meu código
como uma base para seu script),mas eu gostaria de receber crédito, se for
usado em sua forma atual, ou se apenas modificar algumas coisas do script.
======================================
Ajuda:
Embora nem sempre estar ativo, eu costumo logar no "rpgmakervxace.com" diariamente,
por isso, se voce tiver alguma pergunta relacionada ao script, voce pode
perguntar lá, no topico em que esse script foi lançado. Apenas um aviso,
eu nao editarei o script para torna-lo compativel com qualquer sistema
de menu especial, mas vou tentar corrigir bugs que vao aparecendo . Se voce
encontrar um, me avise, e eu farei o meu melhor para arrumar o erro.
======================================
Atualizaçoes:
v1.0: 2 Abril 2013 - Primeira versao. incluído comida, agua, cançaso, e vida.
v1.01: 3 Abril 2013 - Adicionado valores máximos configuráveis para comida,
agua, e cançaso, e fez o máximo para a vida um valor configurável. A
prova de falhas mencionadas nas Instruções v1.0 não é mais necessário.
v1.02: 3 Abril 2013 - Adicionado suporte para uma totalmente configuravel
"logica reversa" , sugerido por esrann.
v1.10: 5 Abril 2013 - Reconfiguração completa usando variáveis globais,
em vez de variavel e switch do jogo. Todos os status sao opcionais,
configuraveis, e podem ser tirados do menu.
v1.11: 17 Maio 2013 - Corrigido um bug sério envolvendo o uso de valores float.
Floats devem funcionar muito bem agora, sem causar o falhas no jogo ou
paradas aleatorias do script. Tambem foi adicionado opacidade do fundo configuravel.
======================================
Requisitos:
Ainda não existe nenhum requisito para este script. Eu estou trabalhando em um
script que irá permitir que as variáveis globais possam ser alteradas através da nota,
mas pode demorar para ser feita.
======================================
Descriçao:
Esse script configura um sistema de necessidades, que inclui comida, água e descanso, todas
que afetam a principal necessidade, a vida. A atualização 1.02 também adicionou uma lógica inversa
estatísticas para a toxina ou manuseio de radiação. Todos as cinco estatísticas, juntamente com suas
taxas de atualização, são manipulados por variáveis globais e podem ser alteradas a qualquer
tempo com uma chamada de script simples.
======================================
Instruçoes:
Primeiro, você vai configurar como deseja que o script seja executado. todas
as opções estão no primeiro módulo do script, chamado "Anyx". Eu não
recomendo mudar nada do módulo se você não saber o que você é que esta
fazendo.
Em segundo lugar, depois de ter todas as suas opções de configuração, você pode ir sobre
as definiçoes dos itens nutritivos. Tudo que você tem a fazer é configurá-lo no banco de dados
como faz normalmente, e em seguida, anexar um efeito que chama um evento comum.
Dentro do evento comum, use um dos seguintes scripts chamar para mudar a
variável apropriada.
$survival_v[id] op value
id = O status que você deseja alterar. 1 é para a vida, 2 alimentos, 3 de água, 4 descanço,
e 5 toxina. Os Ids 6-10 são usados para manter as taxas das estatísticas. 6 é para a vida, 7
alimentos, 8 de água, 9 de descanso, e 10 toxina (definir qualquer dessas taxas para 0
se quizer desativar um dos status, sem parar os outros)
op = O operador utilizado para formular o novo valor. + = É usado para adicionar, - = é
para subtração, * = é para multiplicação / = é para a divisão, e % = é
para módulos. Há outros, e todos eles funcionam, mas eu não imagino você
iria usá-los para este script, por isso não vou explicar aqui.
value = O valor que você gostaria de alterar a variável. Por exemplo, se
você está adicionando 10 a uma variável, colocaria o numero 10.
$survival_s[id] = value
id = O status que você deseja alterar. 1 é para a vida, 2 alimentos, 3 de água, 4 descanço,
e 5 toxina. Os Ids 6-10 são usados para manter as taxas das estatísticas.
value = true/false. Definir o valor como true para ids 1-5 permitirá que o
status associado apareça. Defini-lo para false irá desativá-lo completamente. Para ids
6-10, definindo o valor para true escondera o status no menu, mas ele continuara
sendo atualizado (este pode ser personalizado usando o LIFEHIDEVAL,
FOODHIDEVAL, WATERHIDEVAL, RESTHIDEVAL e opções TOXINHIDEVAL na
Módulo Anyx abaixo. Quando a opção de esconder é verdade, que o número será escondido
a partir do menu, até a estatística é inferior ao valor (STAT) do HIDEVAL, ou acima
o valor da TOXINHIDEVAL para o stat toxina). Se false, o status será
disponíveis no menu em todos os momentos.
Você não precisa configurar manualmente os valores iniciais de cada variável, pois
isso pode ser feito no script, mas você precisa ligar o sistema de sobrevivência
manualmente, ou o script não vai fazer nada.
======================================
=end
$imported = {} if $imported.nil?
$imported['Apellonyx-Survival'] = true
puts "Load: Survival System v1.10 by Apellonyx"
module Anyx
WINXPOS = 0 # Posiçao X da janela de sobrevivencia
WINYPOS = 320 # Posiçao Y da janela de sobrevivencia
WINWIDTH = 160 # Largura da janela de sobrevivencia
WINTEXT = 20 # Tamanho do texto usado na janela de sobrevivencia (Recomendavel 20)
WINOPACITY = 255 # Opacidade da janela de sobrevivencia
SURVIVALSWITCH = 1 # O ID do Switch que ativara e desativara o jogo.
ONINBATTLE = true # Se o sistema será atualizado durante as cenas de batalha
DEATHATZERO = false # Se for true, dara GameOver quando o status de vida
# chegar a 0
DEATHFULLTOXIN = false # Se for true, dara GameOver quando o status de Toxina
# chegar a seu nivel maximo
LIFEVOCAB = "Vida" # Vocabulario usado no status de vida na janela de sobrevivencia
LIFEINIT = 100 # Valor inicial do status de vida no começo de um jogo
LIFERATE = 300 # Número de frames entre as atualizações das estatísticas de vida
LIFEMAX = 100 # Valor maximo da barra de vida.
LIFEEXC = 100 # Valor maximo do status de vida (pode ultrapassar o LIFEMAX)
LIFEENABLE = false # Se for true, a barra de vida sera ativado
LIFEHIDE = true # Se for true, a barra de vida nao aparecera no menu
LIFEHIDEVAL = 100 # Se LIFEHIDE esta true, a barra de vida vai aparecer quando
# ele cai abaixo deste valor.
FOODVOCAB = "Fome" # Vocabulario usado no status de alimentos na janela de sobrevivencia
FOODINIT = 100 # Valor inicial do status de alimentos no começo de um jogo
FOODRATE = 1200 # Número de frames entre as atualizações das estatísticas de alimentos
FOODMAX = 100 # Valor maximo da barra de alimentos.
FOODEXC = 110 # Valor maximo do status de alimentos (pode ultrapassar o FOODMAX)
FOODMOD = -1.0 # Valor da mudança do status de alimentos cada atualização; se positivo,
# Os valores iram aumentar a estatística ao longo do tempo, se negativo
# os valores iram diminuir a estatística ao longo do tempo, e 0 fará
# com que não atualize ao decorrer do tempo. Aceita valores float.
FOODENABLE = true # Se for true, a barra de alimentos sera ativado
FOODHIDE = false # Se for true, a barra de alimentos nao aparecera no menu
FOODHIDEVAL = 100 # Se FOODHIDE esta true, a barra de alimentos vai aparecer quando
# ele cai abaixo deste valor.
WATERVOCAB = "Sede" # Vocabulario usado no status de agua na janela de sobrevivencia
WATERINIT = 100 # Valor inicial do status de agua no começo de um jogo
WATERRATE = 900 # Número de frames entre as atualizações das estatísticas de agua
WATERMAX = 100 # Valor maximo da barra de agua.
WATEREXC = 110 # Valor maximo do status de agua (pode ultrapassar o WATERMAX)
WATERMOD = -1.0 # Valor da mudança do status de agua cada atualização; se positivo,
# os valores iram aumentar a estatística ao longo do tempo, se negativo
# os valores iram diminuir a estatística ao longo do tempo, e 0 fará
# com que não atualize ao decorrer do tempo. Aceita valores float.
WATERENABLE = true # Se for true, a barra de agua sera ativado
WATERHIDE = false # Se for true, a barra de agua nao aparecera no menu
WATERHIDEVAL = 100 # Se WATERHIDE esta true, a barra de agua vai aparecer quando
# ele cai abaixo deste valor.
RESTVOCAB = "Sono" # Vocabulario usado no status de descanço na janela de sobrevivencia
RESTINIT = 100 # Valor inicial do status de descanço no começo de um jogo
RESTRATE = 1500 # Número de frames entre as atualizações das estatísticas de descanço
RESTMAX = 100 # Valor maximo da barra de descanço.
RESTEXC = 110 # Valor maximo do status de descanço (pode ultrapassar o RESTMAX)
RESTMOD = -1.0 # Valor da mudança do status de descanço cada atualização; se positivo,
# os valores iram aumentar a estatística ao longo do tempo, se negativo
# os valores iram diminuir a estatística ao longo do tempo, e 0 fará
# com que não atualize ao decorrer do tempo. Aceita valores float.
RESTENABLE = true # Se for true, a barra de descanço sera ativado
RESTHIDE = false # Se for true, a barra de descanço nao aparecera no menu
RESTHIDEVAL = 100 # Se RESTHIDE esta true, a barra de descanço vai aparecer quando
# ele cai abaixo deste valor.
TOXINVOCAB = "Carisma" # Vocabulario usado no status de Toxina na janela de sobrevivencia
TOXININIT = 50 # Valor inicial do status de descanço no começo de um jogo
TOXINRATE = 900 # Número de frames entre as atualizações das estatísticas de descanço
TOXINMAX = 100 # Valor maximo do status de toxina
TOXINMOD = 0.0 # Valor da mudança do status de toxina cada atualização; se positivo,
# os valores iram aumentar a estatística ao longo do tempo, se negativo
# os valores iram diminuir a estatística ao longo do tempo, e 0 fará
# com que não atualize ao decorrer do tempo. Aceita valores float.
TOXINENABLE = true # Se for true, a barra de toxina sera ativado
TOXINHIDE = false # Se for true, a barra de toxina nao aparecera no menu
TOXINHIDEVAL = 0 # Se TOXINHIDE esta true, a barra de descanço vai aparecer quando
# ele cai abaixo deste valor.
LIFECOLORL = 17 # ID Cor do lado esquerdo da barra de vida
LIFECOLORR = 6 # ID Cor do lado direito da barra de vida
FOODCOLORL = 3 # Cor identificação do lado esquerdo da barra de alimentos
FOODCOLORR = 24 # ID Cor do lado direito da barra de comida
WATERCOLORL = 16 # ID Cor do lado esquerdo da barra de água
WATERCOLORR = 4 # ID Cor do lado direito da barra de água
RESTCOLORL = 31 # ID Cor do lado esquerdo da barra de apoio
RESTCOLORR = 13 # ID Cor do lado direito da barra de apoio
TOXINCOLORL = 10 # ID Cor do lado esquerdo da barra de toxina
TOXINCOLORR = 2 # Cor ID do lado direito da barra de toxina
EXCCOLOR = 11 # Cor ID de texto para valores estatísticos mais de 100%
SATCOLOR = 24 # Cor ID de texto para valores estatísticos entre 76 e 100%
AVECOLOR = 17 # Cor ID de texto para valores estatísticos entre 51 e 75%
LOWCOLOR = 14 # Cor ID de texto para valores estatísticos entre 26 e 50%
DANCOLOR = 20 # Cor ID de texto para os valores de dados entre 1 e 25%
DEPCOLOR = 18 # Cor ID de texto para valores estatísticos de 0%
################################################################################
################################################################################
### ###
### Eu não recomendo a edição nas proximas linhas se você não sabe o que ###
### esta fazendo. Se você souber o que está fazendo pode ir em frente! ###
### ###
################################################################################
################################################################################
def self.create_survival_commands
$survival_v = Survival_Variables.new
$survival_s = Survival_Switches.new
$survival_v[1] = LIFEINIT
$survival_v[6] = LIFERATE
$survival_s[1] = LIFEENABLE
$survival_s[6] = LIFEHIDE
$survival_v[2] = FOODINIT
$survival_v[7] = FOODRATE
$survival_s[2] = FOODENABLE
$survival_s[7] = FOODHIDE
$survival_v[3] = WATERINIT
$survival_v[8] = WATERRATE
$survival_s[3] = WATERENABLE
$survival_s[8] = WATERHIDE
$survival_v[4] = RESTINIT
$survival_v[9] = RESTRATE
$survival_s[4] = RESTENABLE
$survival_s[9] = RESTHIDE
$survival_v[5] = TOXININIT
$survival_v[10] = TOXINRATE
$survival_s[5] = TOXINENABLE
$survival_s[10] = TOXINHIDE
end # def self.create_survival_commands
class Survival_Variables
def initialize
@data = []
end # def initialize
def [](variable_id)
@data[variable_id] || 0
end # def [](variable_id)
def []=(variable_id, value)
@data[variable_id] = value
on_change
end # def []=(variable_id, value)
def on_change
$game_map.need_refresh = true
end # def on_change
end # class Survival_Variables
class Survival_Switches
def initialize
@data = []
end # def initialize
def [](switch_id)
@data[switch_id] || false
end # def [](switch_id)
def []=(switch_id, value)
@data[switch_id] = value
on_change
end # def []=(switch_id, value)
def on_change
$game_map.need_refresh = true
end # def on_change
end # class Survival_Switches
def self.update
if $game_switches[SURVIVALSWITCH] == true
if $survival_s[1] == true
if $survival_v[6] > 0
if Graphics.frame_count % $survival_v[6] == 0
Anyx.life_update
end # if Graphics.frame_count % $survival_v[6] == 0
end # if $survival_v[6] > 0
end # if $survival_s[1] == true
if $survival_s[2] == true
if $survival_v[7] > 0
if Graphics.frame_count % $survival_v[7] == 0
if $survival_v[2] < FOODEXC
$survival_v[2] += FOODMOD if $survival_v[2] > 0
end
end # if Graphics.frame_count % $survival_v[7] == 0
end # if $survival_v[7] > 0
end # if $survival_s[1] == true
if $survival_s[3] == true
if $survival_v[8] > 0
if Graphics.frame_count % $survival_v[8] == 0
if $survival_v[3] < WATEREXC
$survival_v[3] += WATERMOD if $survival_v[3] > 0
end
end # if Graphics.frame_count % $survival_v[8] == 0
end # if $survival_v[8] > 0
end # if $survival_s[3] == true
if $survival_s[4] == true
if $survival_v[9] > 0
if Graphics.frame_count % $survival_v[9] == 0
if $survival_v[4] < RESTEXC
$survival_v[4] += RESTMOD if $survival_v[4] > 0
end
end # if Graphics.frame_count % $survival_v[9] == 0
end # if $survival_v[9] > 0
end # if $survival_s[4] == true
if $survival_s[5] == true
if $survival_v[10] > 0
if Graphics.frame_count % $survival_v[10] == 0
if $survival_v[5] < TOXINMAX
$survival_v[5] += TOXINMOD if $survival_v[5] > 0
end
end # if Graphics.frame_count % $survival_v[10] == 0
end # if $survival_v[10] > 0
end # if $survival_s[5] == true
$survival_v[1] = 0 if $survival_v[1] < 0
$survival_v[2] = 0 if $survival_v[2] < 0
$survival_v[3] = 0 if $survival_v[3] < 0
$survival_v[4] = 0 if $survival_v[4] < 0
$survival_v[5] = 0 if $survival_v[5] < 0
$survival_v[1] = LIFEEXC if $survival_v[1] > LIFEEXC
$survival_v[2] = FOODEXC if $survival_v[2] > FOODEXC
$survival_v[3] = WATEREXC if $survival_v[3] > WATEREXC
$survival_v[4] = RESTEXC if $survival_v[4] > RESTEXC
$survival_v[5] = TOXINMAX if $survival_v[5] > TOXINMAX
if $survival_v[1] <= 0
SceneManager.call(Scene_Gameover) if DEATHATZERO
end # if $survival_v[1] <= 0
if $survival_v[5] >= TOXINMAX
SceneManager.call(Scene_Gameover) if DEATHFULLTOXIN
end # if $survival_v[5] >= TOXINMAX
end # if $game_switches[SURVIVALSWITCH] == true
end # def update
def self.life_update
if $survival_s[2] == true
food_25 = FOODMAX / 4
food_26 = food_25 + 0.001
food_50 = food_25 * 2
food_51 = food_50 + 0.001
food_75 = food_25 * 3
food_76 = food_75 + 0.001
food_mod = -0.3 if 0 >= $survival_v[2]
food_mod = -0.2 if (1..food_25) === $survival_v[2]
food_mod = -0.1 if (food_26..food_50) === $survival_v[2]
food_mod = 0.0 if (food_51..food_75) === $survival_v[2]
food_mod = 0.1 if (food_76..FOODMAX) === $survival_v[2]
food_mod = 0.2 if FOODMAX < $survival_v[2]
else
food_mod = 0
end # if $survival_s[2] == true
if $survival_s[3] == true
water_25 = WATERMAX / 4
water_26 = water_25 + 0.001
water_50 = water_25 * 2
water_51 = water_50 + 0.001
water_75 = water_25 * 3
water_76 = water_75 + 0.001
water_mod = -0.3 if 0 >= $survival_v[3]
water_mod = -0.2 if (1..water_25) === $survival_v[3]
water_mod = -0.1 if (water_26..water_50) === $survival_v[3]
water_mod = 0.0 if (water_51..water_75) === $survival_v[3]
water_mod = 0.1 if (water_76..WATERMAX) === $survival_v[3]
water_mod = 0.2 if WATERMAX < $survival_v[3]
else
water_mod = 0
end # if $survival_s[4] == true
if $survival_s[4] == true
rest_25 = RESTMAX / 4
rest_26 = rest_25 + 0.001
rest_50 = rest_25 * 2
rest_51 = rest_50 + 0.001
rest_75 = rest_25 * 3
rest_76 = rest_75 + 0.001
rest_mod = -0.3 if 0 >= $survival_v[4]
rest_mod = -0.2 if (1..rest_25) === $survival_v[4]
rest_mod = -0.1 if (rest_26..rest_50) === $survival_v[4]
rest_mod = 0.0 if (rest_51..rest_75) === $survival_v[4]
rest_mod = 0.1 if (rest_76..RESTMAX) === $survival_v[4]
rest_mod = 0.2 if RESTMAX < $survival_v[4]
else
rest_mod = 0
end # if $survival_s[4] == true
if $survival_s[5] == true
toxin_25 = TOXINMAX / 4
toxin_26 = toxin_25 + 0.001
toxin_50 = toxin_25 * 2
toxin_51 = toxin_50 + 0.001
toxin_75 = toxin_25 * 3
toxin_76 = toxin_75 + 0.001
toxin_99 = TOXINMAX - 0.001
toxin_mod = 0.1 if 0 >= $survival_v[5]
toxin_mod = 0.0 if (1..toxin_25) === $survival_v[5]
toxin_mod = -0.2 if (toxin_26..toxin_50) === $survival_v[5]
toxin_mod = -0.4 if (toxin_51..toxin_75) === $survival_v[5]
toxin_mod = -0.6 if (toxin_76..toxin_99) === $survival_v[5]
toxin_mod = -0.8 if TOXINMAX <= $survival_v[5]
else
toxin_mod = 0.0
end # if $survival_s[5] == true
life_mod = food_mod + water_mod + rest_mod + toxin_mod
$survival_v[1] += life_mod.round.to_i
end # def life_update()
end # module Anyx
class Scene_Title
alias survival_new_game command_new_game
def command_new_game
Anyx.create_survival_commands
survival_new_game
end # def command_new_game
end # class Scene_Title
class Scene_Map < Scene_Base
alias survival_map_update update
def update
Anyx.update
survival_map_update
end # def update
end # class Scene_Base
class Scene_Battle < Scene_Base
alias survival_battle_update update
def update
if Anyx::ONINBATTLE == true
Anyx.update
survival_battle_update
end # if Anyx::ONINBATTLE == true
end # def update
end # class Scene_Base
class Scene_Menu < Scene_MenuBase
alias survival_menu_start start
def start
create_survival_window
survival_menu_start
end # def start
def create_survival_window
barcount = 0
if $survival_s[1] == true
barcount += 1 if $survival_s[6] == false || $survival_v[1] < Anyx::LIFEHIDEVAL
end # if $survival_s[1] == true
if $survival_s[2] == true
barcount += 1 if $survival_s[7] == false || $survival_v[2] < Anyx::FOODHIDEVAL
end # if $survival_s[2] == true
if $survival_s[3] == true
barcount += 1 if $survival_s[8] == false || $survival_v[3] < Anyx::WATERHIDEVAL
end # if $survival_s[3] == true
if $survival_s[4] == true
barcount += 1 if $survival_s[9] == false || $survival_v[4] < Anyx::RESTHIDEVAL
end # if $survival_s[4] == true
if $survival_s[5] == true
barcount += 1 if $survival_s[10] == false || $survival_v[5] > Anyx::TOXINHIDEVAL
end # if $survival_s[5] == true
@survival_window = Window_Survival.new
@survival_window.contents.draw_text(0, 0, 500, 24, " Survival System") if barcount == 0
barcount -= 1 if barcount >= 1
survivalwinypos = Anyx::WINYPOS - (24 * barcount)
@survival_window.x = Anyx::WINXPOS
@survival_window.y = survivalwinypos
@survival_window.opacity = Anyx::WINOPACITY
end # def create_survival_window
end # class Scene_Menu < Scene_MenuBase
class Window_Survival < Window_Base
def initialize
winheight = 0
if $survival_s[1] == true
winheight += 1 if $survival_s[6] == false || $survival_v[1] < Anyx::LIFEHIDEVAL
end # if $survival_s[1] == true
if $survival_s[2] == true
winheight += 1 if $survival_s[7] == false || $survival_v[2] < Anyx::FOODHIDEVAL
end # if $survival_s[2] == true
if $survival_s[3] == true
winheight += 1 if $survival_s[8] == false || $survival_v[3] < Anyx::WATERHIDEVAL
end # if $survival_s[3] == true
if $survival_s[4] == true
winheight += 1 if $survival_s[9] == false || $survival_v[4] < Anyx::RESTHIDEVAL
end # if $survival_s[4] == true
if $survival_s[5] == true
winheight += 1 if $survival_s[10] == false || $survival_v[5] > Anyx::TOXINHIDEVAL
end # if $survival_s[5] == true
if winheight == 0
winheight = 1
end # if winheight == 0
super(0, 0, Anyx::WINWIDTH, fitting_height(winheight))
self.opacity = Anyx::WINOPACITY
refresh
end # def initialize
def exc_color
text_color(Anyx::EXCCOLOR)
end # def exc_color
def sat_color
text_color(Anyx::SATCOLOR)
end # def sat_color
def ave_color
text_color(Anyx::AVECOLOR)
end # def ave_color
def low_color
text_color(Anyx::LOWCOLOR)
end # def low_color
def dan_color
text_color(Anyx::DANCOLOR)
end # def dan_color
def dep_color
text_color(Anyx::DEPCOLOR)
end # def dep_color
def refresh
contents.clear
contents.font.size = Anyx::WINTEXT
lineheight = 0
if $survival_s[1] == true
if $survival_s[6] == false || $survival_v[1] < Anyx::LIFEHIDEVAL
draw_life(0,0,lineheight)
lineheight += 24
end # if $survival_s[6] == false || $survival_v[1] < Anyx::LIFEHIDEVAL
end # if $survival_s[1] == true
if $survival_s[2] == true
if $survival_s[7] == false || $survival_v[2] < Anyx::FOODHIDEVAL
draw_food(0,0,lineheight)
lineheight += 24
end # if $survival_s[7] == false || $survival_v[2] < Anyx::FOODHIDEVAL
end # if $survival_s[2] == true
if $survival_s[3] == true
if $survival_s[8] == false || $survival_v[3] < Anyx::WATERHIDEVAL
draw_water(0,0,lineheight)
lineheight += 24
end # if $survival_s[8] == false || $survival_v[3] < Anyx::WATERHIDEVAL
end # if $survival_s[3] == true
if $survival_s[4] == true
if $survival_s[9] == false || $survival_v[4] < Anyx::RESTHIDEVAL
draw_rest(0,0,lineheight)
lineheight += 24
end # if $survival_s[9] == false || $survival_v[4] < Anyx::RESTHIDEVAL
end # if $survival_s[4] == true
if $survival_s[5] == true
if $survival_s[10] == false || $survival_v[5] > Anyx::TOXINHIDEVAL
draw_toxin(0,0,lineheight)
lineheight += 24
end # if $survival_s[10] == false || $survival_v[5] > Anyx::TOXINHIDEVAL
end # if $survival_s[5] == true
end # def refresh
def draw_life(actor, x, y, width = Anyx::WINWIDTH - 22)
life_25 = Anyx::LIFEMAX / 4
life_26 = life_25 + 0.001
life_50 = life_25 * 2
life_51 = life_50 + 0.001
life_75 = life_25 * 3
life_76 = life_75 + 0.001
life_99 = Anyx::LIFEMAX - 0.001
life_color = dep_color if 1 > $survival_v[1]
life_color = dan_color if (1..life_25) === $survival_v[1]
life_color = low_color if (life_26..life_50) === $survival_v[1]
life_color = ave_color if (life_51..life_75) === $survival_v[1]
life_color = sat_color if (life_76..life_99) === $survival_v[1]
life_color = exc_color if Anyx::LIFEMAX <= $survival_v[1]
life_rate = $survival_v[1] / Anyx::LIFEMAX.to_f
draw_gauge(x, y, width, life_rate, text_color(Anyx::LIFECOLORL), text_color(Anyx::LIFECOLORR))
change_color(system_color)
draw_text(x, y, 100, line_height, Anyx::LIFEVOCAB)
draw_current_and_max_values(x, y, width, $survival_v[1].round.to_i, Anyx::LIFEMAX, life_color, life_color)
end # def draw_life(actor, x, y, width = Anyx::WINWIDTH - 22)
def draw_food(actor, x, y, width = Anyx::WINWIDTH - 22)
food_25 = Anyx::FOODMAX / 4
food_26 = food_25 + 0.001
food_50 = food_25 * 2
food_51 = food_50 + 0.001
food_75 = food_25 * 3
food_76 = food_75 + 0.001
food_99 = Anyx::FOODMAX - 0.001
food_color = dep_color if 1 > $survival_v[2]
food_color = dan_color if (1..food_25) === $survival_v[2]
food_color = low_color if (food_26..food_50) === $survival_v[2]
food_color = ave_color if (food_51..food_75) === $survival_v[2]
food_color = sat_color if (food_76..food_99) === $survival_v[2]
food_color = exc_color if Anyx::FOODMAX <= $survival_v[2]
food_rate = $survival_v[2] / Anyx::FOODMAX.to_f
draw_gauge(x, y, width, food_rate, text_color(Anyx::FOODCOLORL), text_color(Anyx::FOODCOLORR))
change_color(system_color)
draw_text(x, y, 100, line_height, Anyx::FOODVOCAB)
draw_current_and_max_values(x, y, width, $survival_v[2].round.to_i, Anyx::FOODMAX, food_color, food_color)
end # def draw_food(actor, x, y, width = Anyx::WINWIDTH - 22)
def draw_water(actor, x, y, width = Anyx::WINWIDTH - 22)
water_25 = Anyx::WATERMAX / 4
water_26 = water_25 + 0.001
water_50 = water_25 * 2
water_51 = water_50 + 0.001
water_75 = water_25 * 3
water_76 = water_75 + 0.001
water_99 = Anyx::WATERMAX - 0.001
water_color = dep_color if 1 > $survival_v[3]
water_color = dan_color if (1..water_25) === $survival_v[3]
water_color = low_color if (water_26..water_50) === $survival_v[3]
water_color = ave_color if (water_51..water_75) === $survival_v[3]
water_color = sat_color if (water_76..water_99) === $survival_v[3]
water_color = exc_color if Anyx::WATERMAX <= $survival_v[3]
water_rate = $survival_v[3] / Anyx::WATERMAX.to_f
draw_gauge(x, y, width, water_rate, text_color(Anyx::WATERCOLORL), text_color(Anyx::WATERCOLORR))
change_color(system_color)
draw_text(x, y, 100, line_height, Anyx::WATERVOCAB)
draw_current_and_max_values(x, y, width, $survival_v[3].round.to_i, Anyx::WATERMAX, water_color, water_color)
end # def draw_water(actor, x, y, width = Anyx::WINWIDTH - 22)
def draw_rest(actor, x, y, width = Anyx::WINWIDTH - 22)
rest_25 = Anyx::WATERMAX / 4
rest_26 = rest_25 + 0.001
rest_50 = rest_25 * 2
rest_51 = rest_50 + 0.001
rest_75 = rest_25 * 3
rest_76 = rest_75 + 0.001
rest_99 = Anyx::RESTMAX - 0.001
rest_color = dep_color if 1 > $survival_v[4]
rest_color = dan_color if (1..rest_25) === $survival_v[4]
rest_color = low_color if (rest_26..rest_50) === $survival_v[4]
rest_color = ave_color if (rest_51..rest_75) === $survival_v[4]
rest_color = sat_color if (rest_76..rest_99) === $survival_v[4]
rest_color = exc_color if Anyx::RESTMAX <= $survival_v[4]
rest_rate = $survival_v[4] / Anyx::RESTMAX.to_f
draw_gauge(x, y, width, rest_rate, text_color(Anyx::RESTCOLORL), text_color(Anyx::RESTCOLORR))
change_color(system_color)
draw_text(x, y, 100, line_height, Anyx::RESTVOCAB)
draw_current_and_max_values(x, y, width, $survival_v[4].round.to_i, Anyx::RESTMAX, rest_color, rest_color)
end # def draw_rest(actor, x, y, width = Anyx::WINWIDTH - 22)
def draw_toxin(actor, x, y, width = Anyx::WINWIDTH - 22)
toxin_25 = Anyx::TOXINMAX / 4
toxin_26 = toxin_25 + 0.001
toxin_50 = toxin_25 * 2
toxin_51 = toxin_50 + 0.001
toxin_75 = toxin_25 * 3
toxin_76 = toxin_75 + 0.001
toxin_99 = Anyx::TOXINMAX - 0.001
toxin_color = exc_color if 1 > $survival_v[5]
toxin_color = sat_color if (1..toxin_25) === $survival_v[5]
toxin_color = ave_color if (toxin_26..toxin_50) === $survival_v[5]
toxin_color = low_color if (toxin_51..toxin_75) === $survival_v[5]
toxin_color = dan_color if (toxin_76..toxin_99) === $survival_v[5]
toxin_color = dep_color if Anyx::TOXINMAX <= $survival_v[5]
toxin_rate = $survival_v[5] / Anyx::TOXINMAX.to_f
draw_gauge(x, y, width, toxin_rate, text_color(Anyx::TOXINCOLORL), text_color(Anyx::TOXINCOLORR))
change_color(system_color)
draw_text(x, y, 100, line_height, Anyx::TOXINVOCAB)
draw_current_and_max_values(x, y, width, $survival_v[5].round.to_i, Anyx::TOXINMAX, toxin_color, toxin_color)
end # def draw_toxin(actor, x, y, width = Anyx::WINWIDTH - 22)
end # class
module DataManager
def self.make_save_contents
contents = {}
contents[:system] = $game_system
contents[:timer] = $game_timer
contents[:message] = $game_message
contents[:switches] = $game_switches
contents[:variables] = $game_variables
contents[:self_switches] = $game_self_switches
contents[:actors] = $game_actors
contents[:party] = $game_party
contents[:troop] = $game_troop
contents[:map] = $game_map
contents[:player] = $game_player
contents[:anyx_ss] = $survival_s
contents[:anyx_sv] = $survival_v
contents
end # self.make_save_contents
def self.extract_save_contents(contents)
$game_system = contents[:system]
$game_timer = contents[:timer]
$game_message = contents[:message]
$game_switches = contents[:switches]
$game_variables = contents[:variables]
$game_self_switches = contents[:self_switches]
$game_actors = contents[:actors]
$game_party = contents[:party]
$game_troop = contents[:troop]
$game_map = contents[:map]
$game_player = contents[:player]
$survival_s = contents[:anyx_ss]
$survival_v = contents[:anyx_sv]
end # self.extract_save_contents(contents)
end # module DataManager
Não sei se interfere em algo, mas eu estou usando também uma outra adaptação que
possibilita que apareça a HUD do Script de Sobrevivência. Vou colocar aqui, caso precise.
Script:
- Código:
#==============================================================================
# XS - Variable Hud for Survival
# Author: Nicke
# Created: 02/04/2012
# Edited: 27/07/2013
# Edited by efeberk
# Version: 1.0b
#==============================================================================
# Instructions
# -----------------------------------------------------------------------------
# To install this script, open up your script editor and copy/paste this script
# to an open slot below ? Materials but above ? Main. Remember to save.
#
# A small hud to display variables on the map.
#
# *** Only for RPG Maker VX Ace. ***
#==============================================================================
($imported ||= {})["XAIL-VAR-WIN-HUD"] = true
module XAIL
module VAR_HUD
#--------------------------------------------------------------------------#
# * Settings
#--------------------------------------------------------------------------#
# FONT = [name, size, color, bold, shadow]
FONT = [["Comic Sans MS"], 18, Color.new(255,255,255), false, true]
# HUD = lammer, x, y, z, opacity, skin]
HUD = [220, 400, 0, 0, 100, nil]
# VAR_HUD_SWITCH = switch_id
VAR_HUD_SWITCH = 2
# VAR_LIST = [survival v id, vocab (nil), icon_index (nil), x, y]
VAR_LIST = [] # Don't remove!
VAR_LIST[0] = [2,'Fome',298]
VAR_LIST[1] = [3,'Sede',366]
VAR_LIST[2] = [4,'Sono',6]
VAR_LIST[3] = [5,'Carisma',6]
# Set the symbol for the amount.
# Can be set to "" to disable.
# SYMBOL = string
SYMBOL = "%"
# The space beetween the variables.
# SPACING = number
SPACING = 24
end
end
# *** Don't edit below unless you know what you are doing. ***
#==============================================================================#
# ** Window_Var_Hud
#------------------------------------------------------------------------------
# Class for drawing the variable hud.
#==============================================================================#
class Window_Var_Hud < Window_Base
def initialize
# // Method to initialize the var hud window.
super(0, 0, window_width, fitting_height(XAIL::VAR_HUD::VAR_LIST.size))
refresh
end
def window_width
# // Method to return the width.
return XAIL::VAR_HUD::HUD[0]
end
def draw_var(var, unit, x, y, width)
# // Method to draw a variable with the content.
value = "#{$survival_v[var]}#{XAIL::VAR_HUD::SYMBOL}"
contents.font = Font.new(XAIL::VAR_HUD::FONT[0], XAIL::VAR_HUD::FONT[1])
contents.font.color = XAIL::VAR_HUD::FONT[2]
contents.font.bold = XAIL::VAR_HUD::FONT[3]
contents.font.shadow = XAIL::VAR_HUD::FONT[4]
draw_text(x + 48 + 24, y, width, line_height, value)
draw_text(x + 12 + 24, y, width, line_height, unit) unless unit.nil?
reset_font_settings
end
def refresh
# // Method to refresh the variable hud.
contents.clear
draw_var_hud
end
def draw_var_hud
# // Method to draw the var hud.
y = 0
@vars = {}
for i in XAIL::VAR_HUD::VAR_LIST
x = i[1].nil? ? 32 : -10
draw_var(i[0], i[1], x, y, contents.width - 8)
draw_icon(i[2], 0, y - 2) unless i[2].nil?
y += XAIL::VAR_HUD::SPACING
@vars[i[0]] = $survival_v[i[0]]
end
end
def update
# // Method to update the variable hud if a value has been changed.
super
for i in XAIL::VAR_HUD::VAR_LIST
refresh if($survival_v[i[0]] != @vars[i[0]])
end
end
end
#==============================================================================
# ** Scene_Map
#------------------------------------------------------------------------------
# Show variable hud on the map.
#==============================================================================
class Scene_Map < Scene_Base
alias xail_var_hud_window_start start
def start(*args, &block)
# // Method to start the var hud window on the map.
xail_var_hud_window_start(*args, &block)
create_var_hud_window
@var_hud_window.visible = $game_switches[XAIL::VAR_HUD::VAR_HUD_SWITCH]
end
alias xail_var_hud_window_terminate terminate
def terminate(*args, &block)
# // Method to terminate the var hud window on the map.
xail_var_hud_window_terminate(*args, &block)
end
def create_var_hud_window
# // Method to create the variable window.
@var_hud_window = Window_Var_Hud.new
@var_hud_window.x = XAIL::VAR_HUD::HUD[1]
@var_hud_window.y = XAIL::VAR_HUD::HUD[2]
@var_hud_window.z = XAIL::VAR_HUD::HUD[3]
@var_hud_window.opacity = XAIL::VAR_HUD::HUD[4]
@var_hud_window.windowskin = Cache.system(XAIL::VAR_HUD::HUD[5]) unless XAIL::VAR_HUD::HUD[5].nil?
end
alias xail_var_hud_window_update update
def update(*args, &block)
# // Method to update the var hud window on the map.
xail_var_hud_window_update(*args, &block)
@var_hud_window.visible = $game_switches[XAIL::VAR_HUD::VAR_HUD_SWITCH]
end
end # END OF FILE
#=*==========================================================================*=#
# ** END OF FILE
#=*==========================================================================*=#
É isso aê! Se puder ajudar, agradeço muito!! +1 Cred