[RGSS1]Script de estamina
2 participantes
- thiago_d_dNovato
- Mensagens : 81
Reputação : 16
[RGSS1]Script de estamina
Sáb Abr 17, 2010 7:35 am
Introdução
Esse script é um script que fiz por pedido de uma fábrica que tenho em outro fórum,a MRM. Ele adiciona um novo atributo à lista de atributos(HP e MP),que se chama estamina(símbolo ST).É possível utilizar esse novo atributo de várias formas que quiser,inclusive usando como custo de habilidades e Combinando com outros scripts.
Instalação
Cole esse script acima de Main(intruções adicionais estão nele):
Não necessita
Créditos
A mim por fazer sozinho o script XD
Esse script é um script que fiz por pedido de uma fábrica que tenho em outro fórum,a MRM. Ele adiciona um novo atributo à lista de atributos(HP e MP),que se chama estamina(símbolo ST).É possível utilizar esse novo atributo de várias formas que quiser,inclusive usando como custo de habilidades e Combinando com outros scripts.
Instalação
Cole esse script acima de Main(intruções adicionais estão nele):
- Código:
=begin
script de adição do atributo estamina
Comandos(que podem ser chamados pelo evento script):
-----Thiago.change_all_members(valor)
Muda estamina de todos os membros do grupo
somando o valor entre parênteses.Se o valor for
negativo,subtrai estamina
-----Thiago.change_member_st(id,valor)
Muda estamina do herói com a id especificada
somando o valor entre parênteses
-----Thiago.change_enemy_st(numero do inimigo,valor)
Muda estamina do inimigo com o número especificado
somando o valor entra parênteses
Só deve ser chamado no meio da batalha
-----Thiago.change_member_maxst(id,valor)
Muda estamina máxima do herói com a id especificada
somando o valor entre parênteses
-----Thiago.change_enemy_maxst(numero do inimigo,valor)
Muda estamina máxima do inimigo com o número especificado
somando o valor entra parênteses
Só deve ser chamado no meio da batalha
Outras explicações:
Como definir a estamina máxima que um herói ou inimigo possui:
Basta colocar depois de um traço no nome do inimigo ou herói no database
A estamina máxima.Por exemplo:
Fantasma-600
O inimigo Fantasma vai ter estamina máxima inicial de 600
Como definir a estamina gasta por uma habilidade:
Basta colocar depois de um traço no nome habilidade a estamina máxima
Por exemplo:
Chamas-60
Chamas é uma habilidade que gasta 60 de estamina
É isso!
=end
module Thiago
#Estamina padrão
#Para quando não for especificada estamina para um
#Inimigo ou herói
DEFAULT_STAMINA = 500
#Abreviação de estamina(como HP,MP)
STAMINA_NAME = "ST"
def Thiago.change_all_members(value)
for i in $game_party.actors
i.st += value
end
end
def Thiago.change_member_st(actor_id,value)
actor = $game_actors[actor_id]
actor.st += value
end
def Thiago.change_member_maxst(actor_id,value)
actor = $game_actors[actor_id]
actor.maxst += value
end
def Thiago.change_enemy_st(member_number,value)
member = $game_troop.enemies[member_number - 1]
member.st += value
end
def Thiago.change_enemy_maxst(member_number,value)
member = $game_troop.enemies[member_number - 1]
member.maxst += value
end
end
class Game_Battler
attr_reader :maxst
attr_reader :st
alias :old_initialize_1 :initialize
def initialize
old_initialize_1
@maxst = @st = get_stamina
end
def st=(new_st)
if new_st >= 0 && new_st <= @maxst
@st = new_st
end
end
def maxst=(new_maxst)
if new_maxst > 0
@maxst = new_maxst
if @st > @maxst
@st = @max_st
end
end
end
def get_stamina
return Thiago::DEFAULT_STAMINA
end
alias :old_recover_all :recover_all
def recover_all
@st = @maxst
old_recover_all
end
alias old_skill_can_use? :skill_can_use?
def skill_can_use?(skill_id)
if $data_skills[skill_id].st_cost > self.st
return false
end
old_skill_can_use?(skill_id)
end
end
class Game_Enemy
alias :old_initialize_2 :initialize
def initialize(troop_id, member_index)
old_initialize_2(troop_id,member_index)
d_name = $data_enemies[@enemy_id].name.clone
d_name.gsub(/\-([\d]+)/) {""}
st = $1.to_i
@maxst = @st = st != 0 ? st : get_stamina
end
def name
d_name = $data_enemies[@enemy_id].name.clone
d_name.gsub!(/\-[\d]+/) {""}
return d_name
end
end
class Game_Actor
def name
d_name = @name.clone
d_name.gsub!(/\-[\d]+/) {""}
return d_name
end
alias :old_setup :setup
def setup(actor_id)
old_setup(actor_id)
d_name = @name.clone
d_name.gsub(/\-([\d]+)/) {""}
st = $1.to_i
@maxst = @st = st != 0 ? st : get_stamina
end
end
module RPG
class Skill
def name
d_name = @name.clone
d_name.gsub!(/\-[\d]+/) {""}
return d_name
end
def st_cost
d_name = @name.clone
d_name.gsub(/\-([\d]+)/) {""}
st = $1.to_i
return st
end
end
end
class Scene_Battle
alias :old_make_skill_action_result :make_skill_action_result
def make_skill_action_result
old_make_skill_action_result
@active_battler.st -= @skill.st_cost
end
end
class Window_BattleStatus
def refresh
self.contents.clear
@item_max = $game_party.actors.size
for i in 0...$game_party.actors.size
actor = $game_party.actors[i]
actor_x = i * 160 + 4
draw_actor_name(actor, actor_x, 0)
draw_actor_hp(actor, actor_x, 32, 120)
draw_actor_sp(actor, actor_x, 64, 120)
draw_actor_st(actor,actor_x,96,120)
if @level_up_flags[i]
self.contents.font.color = normal_color
self.contents.draw_text(actor_x + self.contents.text_size(actor.name).width + 3, 0,
120, 32, "+Nível!")
else
draw_actor_state(actor,
actor_x + self.contents.text_size(actor.name).width + 3, 0)
end
end
end
end
class Window_MenuStatus
def refresh
self.contents.clear
@item_max = $game_party.actors.size
for i in 0...$game_party.actors.size
x = 64
y = i * 116
actor = $game_party.actors[i]
draw_actor_graphic(actor, x - 40, y + 80)
draw_actor_name(actor, x, y)
draw_actor_class(actor, x + 144, y)
draw_actor_level(actor, x, y + 32)
draw_actor_state(actor, x +
self.contents.text_size(actor.name).width + 3, y)
draw_actor_exp(actor, x, y + 64)
draw_actor_hp(actor, x + 236, y + 32)
draw_actor_sp(actor, x + 236, y + 64)
draw_actor_st(actor, x + 90, y + 32)
end
end
end
class Window_Status
def refresh
self.contents.clear
draw_actor_graphic(@actor, 40, 112)
draw_actor_name(@actor, 4, 0)
draw_actor_class(@actor, 4 + 144, 0)
draw_actor_level(@actor, 96, 32)
draw_actor_state(@actor, 320, 12)
draw_actor_st(@actor,96,64)
draw_actor_hp(@actor, 96, 112, 172)
draw_actor_sp(@actor, 96, 144, 172)
draw_actor_parameter(@actor, 96, 192, 0)
draw_actor_parameter(@actor, 96, 224, 1)
draw_actor_parameter(@actor, 96, 256, 2)
draw_actor_parameter(@actor, 96, 304, 3)
draw_actor_parameter(@actor, 96, 336, 4)
draw_actor_parameter(@actor, 96, 368, 5)
draw_actor_parameter(@actor, 96, 400, 6)
self.contents.font.color = system_color
self.contents.draw_text(320, 48, 80, 32, "EXP")
self.contents.draw_text(320, 80, 80, 32, "Próximo")
self.contents.font.color = normal_color
self.contents.draw_text(320 + 80, 48, 84, 32, @actor.exp_s, 2)
self.contents.draw_text(320 + 80, 80, 84, 32, @actor.next_rest_exp_s, 2)
self.contents.font.color = system_color
self.contents.draw_text(320, 160, 96, 32, "Equipamento")
draw_item_name($data_weapons[@actor.weapon_id], 320 + 16, 208)
draw_item_name($data_armors[@actor.armor1_id], 320 + 16, 256)
draw_item_name($data_armors[@actor.armor2_id], 320 + 16, 304)
draw_item_name($data_armors[@actor.armor3_id], 320 + 16, 352)
draw_item_name($data_armors[@actor.armor4_id], 320 + 16, 400)
end
end
class Window_Base
def draw_actor_st(actor,x,y,width = 144)
self.contents.font.color = system_color
self.contents.draw_text(x, y, 32, 32, Thiago::STAMINA_NAME)
if width - 32 >= 108
st_x = x + width - 108
flag = true
elsif width - 32 >= 48
st_x = x + width - 48
flag = false
end
self.contents.font.color = actor.st == 0 ? knockout_color :
actor.st <= actor.maxst / 4 ? crisis_color : normal_color
self.contents.draw_text(st_x, y, 48, 32, actor.st.to_s, 2)
# Desenhar MP Max
if flag
self.contents.font.color = normal_color
self.contents.draw_text(st_x + 48, y, 12, 32, "/", 1)
self.contents.draw_text(st_x + 60, y, 48, 32, actor.maxst.to_s)
end
end
end
Não necessita
Créditos
A mim por fazer sozinho o script XD
- PaiN*-*Novo Membro
- Mensagens : 105
Reputação : 28
Re: [RGSS1]Script de estamina
Sáb Abr 17, 2010 9:09 am
Que kegak o script... mas a staminaz é gasta qnd vc faz o q?
========================edit====================
axo ja ¬¬.... pergunta idiota ....
vlw por postar...
flw
========================edit====================
axo ja ¬¬.... pergunta idiota ....
vlw por postar...
flw
Permissões neste sub-fórum
Não podes responder a tópicos
|
|