PortalPortal  InícioInício  FAQFAQ  BuscarBuscar  Registrar-seRegistrar-se  Conectar-se  

Compartilhe|

[RGSS2]Skills que custam HP!

Ver o tópico anterior Ver o tópico seguinte Ir em baixo
AutorMensagem
Alucard_2
avatar
Membro Especial
Membro Especial

Masculino Postagens : 6
Data de inscrição : 29/01/2010


Ver perfil do usuário
MensagemAssunto: [RGSS2]Skills que custam HP! Sex Jan 29, 2010 8:14 pm

Introdução

Este tutorial vai te ensinar como criar técnicas que custam HP ao invés de MP. Este sistema é baseado em certas skills de Persona, que retiram HP do utilizador ao invés de MP.

Tutorial

Passo:
1º - Abra o Editor de Scripts;
2º - Vá no script "Scene_Battle";
3º - Na linha 890 a 892, você vai encontrar algo assim:
Citação :
display_animation(targets, skill.animation_id)
@active_battler.mp -= @active_battler.calc_mp_cost(skill)
$game_temp.common_event_id = skill.common_event_id
4º - Substitua por:
Citação :
display_animation(targets, skill.animation_id)
if skill.id == 73
@active_battler.hp -= (@active_battler.hp / 100 * 5)
else
@active_battler.mp -= @active_battler.calc_mp_cost(skill)
end
$game_temp.common_event_id = skill.common_event_id
Legenda:
Vermelho: ID da skill que gastará HP.
Marrom: Porcentagem de quanto de HP será retirado do utilizador.
5º - Teste o jogo com alguém que já possa utilizar a técnica, deu certo? Aplausos!
Não deu certo?[s]Descontem no Thanatos666![/s] Então tentem denovo!

Adicionais

Colocando mais de uma Skill que custe HP.

1º - Pegue o que você fez anteriormente:
Citação :
display_animation(targets, skill.animation_id)
if skill.id == 73
@active_battler.hp -= (@active_battler.hp / 100 * 5)
else
@active_battler.mp -= @active_battler.calc_mp_cost(skill)
end
$game_temp.common_event_id = skill.common_event_id
2º - Acrescente um "elsif", ficará mais ou menos assim:
Citação :
if skill.id == 73
@active_battler.hp -= (@active_battler.hp / 100 * 5)
elsif skill.id == 74
@active_battler.hp -= (@active_battler.hp / 100 * 5)
else
@active_battler.mp -= @active_battler.calc_mp_cost(skill)
end
$game_temp.common_event_id = skill.common_event_id
Legenda:
Verde: ID de outra Skill que use HP.
Marrom: Explicado anteriormente.
3º - Acrescente quantos elsifs você quiser, como eu fiz:
Citação :
if skill.id == 73
@active_battler.hp -= (@active_battler.hp / 100 * 5)
elsif skill.id == 74
@active_battler.hp -= (@active_battler.hp / 100 * 5)
elsif skill.id == 75
@active_battler.hp -= (@active_battler.hp / 100 * 12)
elsif skill.id == 76
@active_battler.hp -= (@active_battler.hp / 100 * 12)
else
@active_battler.mp -= @active_battler.calc_mp_cost(skill)
end
$game_temp.common_event_id = skill.common_event_id
Pronto!

Colocando para aparecer se gasta HP ou não.

1º - Vá no script "Window_Skill"
2º - Na linha 58, você vai encontrar o seguinte:
Citação :
self.contents.draw_text(rect, @actor.calc_mp_cost(skill), 2)
3º - Substitua para:
Citação :
if skill.id == 73
self.contents.draw_text(rect, @actor.calc_mp_cost(skill), 2)
self.contents.draw_text(rect.x+35, rect.y, rect.width, rect.height, "%HP", 2)
else
self.contents.draw_text(rect, @actor.calc_mp_cost(skill), 2)
Legenda:
Vermelho: ID da skill que utiliza HP.
4º - Para adicionar mais, faça como no Scene_Battle, adicione os elsif
Exemplo:
Citação :
if skill.id == 73
self.contents.draw_text(rect, @actor.calc_mp_cost(skill), 2)
self.contents.draw_text(rect.x+35, rect.y, rect.width, rect.height, "%HP", 2)
elsif skill.id == 74
self.contents.draw_text(rect, @actor.calc_mp_cost(skill), 2)
self.contents.draw_text(rect.x+35, rect.y, rect.width, rect.height, "%HP", 2)
elsif skill.id == 75
self.contents.draw_text(rect, @actor.calc_mp_cost(skill), 2)
self.contents.draw_text(rect.x+35, rect.y, rect.width, rect.height, "%HP", 2)
elsif skill.id == 76
self.contents.draw_text(rect, @actor.calc_mp_cost(skill), 2)
self.contents.draw_text(rect.x+35, rect.y, rect.width, rect.height, "%HP", 2)
else
self.contents.draw_text(rect, @actor.calc_mp_cost(skill), 2)
end
Pronto, tudo certinho!

Gostou? Aplausos!
Voltar ao Topo Ir em baixo

[RGSS2]Skills que custam HP!

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo
Página 1 de 1

Permissão deste fórum:Você não pode responder aos tópicos neste fórum
The World of EverGrand :: Programação em Linguagens :: Ruby Game Scripting System :: Programação-