Últimos temas
» [MV] Miyuki (demo)
por tiament Hoy a las 3:53 am

» Batallas Pokemon
por maxlobo Ayer a las 7:43 pm

» Complecsua
por MoonSoldierMx Lun Nov 20, 2017 12:20 am

» Readvin 1 y 2
por Muzgar Dom Nov 19, 2017 7:42 pm

» Busco ayuda para mi juego, no importa la edad
por Muzgar Dom Nov 19, 2017 3:16 pm

» [VXACE] Las Esferas de Capricornia. Actualizado 17.11.17
por Pocari Dom Nov 19, 2017 12:31 am

» [Vx/Ace] Pack Bioma de Miel
por YggdrasilHerald Vie Nov 17, 2017 4:00 am

» La Historia Infinita (DEMO)
por Chaskarron Miér Nov 15, 2017 12:36 am

» [MV+Completo]Al Ataque - Derrotemos a nuestros enemigos
por hikarukurenai Mar Nov 14, 2017 8:07 pm

» Dekar Chronicles
por KRiZaLiD Mar Nov 14, 2017 7:43 pm

» [Sugerencia] Buenas practicas
por Alojzy Lun Nov 13, 2017 9:56 pm

» [Ace]Script día/noche + reloj
por JAMSDream Dom Nov 12, 2017 1:52 am


[XP] Sistema de Infamia (Bondad/Maldad)

Ver el tema anterior Ver el tema siguiente Ir abajo

[XP] Sistema de Infamia (Bondad/Maldad)

Mensaje por Alojzy el Miér Mar 19, 2014 3:25 pm

Hola!

Aquí traigo un nuevo script que nos permite dar al usuario una cualidad(bondad/maldad).

Script

Código:
===================================
#  Leon's Good and Evil script
#----------------------------------------------------------------------
#  Features:
#    Gives an actor the "good", "Neutral" or "evil" alignment, based
#    upon their actions.
#
#  Instructions:
#    Place above main, and below other scripts.
#    Use:  draw_alignment_bar(actor, x, y) in a script to draw the alignment bar.
#            x and y being the position of the bar, and actor being the syntax for the actor's information.
#
#  To use:
#    To add or subtract from their alignment, use: $game_actors[actor_id].alignment += x
#    To see if the actor's alignment is good, evil or neutral, use:
#      * Conditional Branch, tab 4, Script.
#      * For good, use $game_actors[actor_id] > 0
#      * For evil, use $game_actors[actor_id] < 0
#      * For neutral, use $game_actors[actor_id] == 0
#
#  Extra Information:
#    This script edits the original Window_Status script to add the good/evil.
#===================================

#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#  Game_Actor
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
class Game_Actor < Game_Battler

attr_accessor :alignment
attr_accessor :alignment_name

alias leon_alignment_bars_ga_setup setup

def setup(actor_id)
  @alignment = 0
  @alignment_name = "Neutral"
  leon_alignment_bars_ga_setup(actor_id)
end

def alignment
  if @alignment > 0
    if @alignment > 100
      @alignment = 100
    end
    @alignment_name = "Good"
    return @alignment
  end
  if @alignment < 0
    if @alignment < -100
      @alignment = -100
    end
    @alignment_name = "Evil"
    return @alignment
  end
  @alignment_name = "Neutral"
  return @alignment
end
 

end

#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#  Window_Base
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
class Window_Base
def draw_bar(x, y, min, max, width = 152, height = 6,
    bar_color = Color.new(0, 75, 0, 255), end_color = Color.new(0, 255, 0, 255))
  for i in 0..height
    self.contents.fill_rect(x + i, y + height - i, width + 1, 1, Color.new(50, 50, 50, 255))
  end
  for i in 1..(height - 1)
    r = 100 * (height - i) / height + 0 * i / height
    g = 100 * (height - i) / height + 0 * i / height
    b = 100 * (height - i) / height + 0 * i / height
    a = 255 * (height - i) / height + 255 * i / height
    self.contents.fill_rect(x + i, y + height - i, width, 1, Color.new(r, b, g, a))
  end
  for i in 1..( (min.to_f / max.to_f) * width - 1)
    for j in 1..(height - 1)
      r = bar_color.red * (width - i) / width + end_color.red * i / width
      g = bar_color.green * (width - i) / width + end_color.green * i / width
      b = bar_color.blue * (width - i) / width + end_color.blue * i / width
      a = bar_color.alpha * (width - i) / width + end_color.alpha * i / width
      self.contents.fill_rect(x + i + j, y + height - j, 1, 1, Color.new(r, g, b, a))
    end
  end
end

def draw_backward_bar(x, y, min, max, width = 152, height = 6,
    bar_color = Color.new(75, 0, 0, 255), end_color = Color.new(255, 0, 0, 255))
  for i in 0..height
    self.contents.fill_rect(x + i, y + height - i, width + 1, 1, Color.new(50, 50, 50, 255))
  end
  for i in 1..(height - 1)
    r = 100 * (height - i) / height + 0 * i / height
    g = 100 * (height - i) / height + 0 * i / height
    b = 100 * (height - i) / height + 0 * i / height
    a = 255 * (height - i) / height + 255 * i / height
    self.contents.fill_rect(x + i, y + height - i, width, 1, Color.new(r, b, g, a))
  end
  for i in 1..( (min.to_f / max.to_f) * width - 1)
    for j in 1..(height - 1)
      r = bar_color.red * (width - i) / width + end_color.red * i / width
      g = bar_color.green * (width - i) / width + end_color.green * i / width
      b = bar_color.blue * (width - i) / width + end_color.blue * i / width
      a = bar_color.alpha * (width - i) / width + end_color.alpha * i / width
      self.contents.fill_rect(x - i + j, y + height - j, 1, 1, Color.new(r, g, b, a))
    end
  end
end

def draw_alignment_bar(actor, x, y)
  #x = 320 y = 147
  draw_bar(x, y, 0, 200, 200, 6)
  if actor.alignment > 0
    draw_bar(x + 100, y, actor.alignment, 100, 100, 6)
    actor.alignment_name = "Good"
  elsif actor.alignment < 0
    draw_backward_bar(x + 100, y, -1 * actor.alignment, 100, 100, 6)
    actor.alignment_name = "Evil"
  elsif actor.alignment == 0
    draw_bar(x + 100, y, actor.alignment, 100, 100, 6)
    actor.alignment_name = "Neutral"
  end
  draw_bar(x + 97, y - 2, 2, 2, 2, 10, Color.new(255, 255, 255, 255), Color.new(255, 255, 255,255))
  self.contents.font.color = normal_color
  self.contents.draw_text(x + 5, y - 13, 120, 32, "E")
  self.contents.draw_text(x + 190, y - 13, 120, 32, "G")
end

end


#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#  Window_Status
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
class Window_Status < Window_Base

alias leon_alignment_bars_ws_refresh refresh

def refresh
  leon_alignment_bars_ws_refresh
  if @actor.alignment > 100
    @actor.alignment = 100
  elsif @actor.alignment < -100
    @actor.alignment = -100
  end
  self.contents.font.color = system_color
  self.contents.draw_text(320, 112, 120, 32, "Alignment")
  draw_alignment_bar(@actor, 320, 147)
  self.contents.font.color = normal_color
  self.contents.draw_text(420, 112, 120, 32, @actor.alignment_name)
end
end

Instrucciones:
- Para sumar puntos positivos, y hacer que en la barra se incline al lado de "bondad":

Código:
$game_actors[1].alignment += 1

- Para sumar puntos negativos, y hacer que en la barra se incline al lado de "maldad":

Código:
$game_actors[1].alignment -= 1

El [1] es el ID del personaje del grupo. Puedes modificar los puntos cambiando el 1 del final por cualquier otro numero.

Créditos:
- León

That's everything, bye (?)

_________________
Staff tú tienes que comprender, mi firma se pasa en excesooo:

==========================================================================
 

Nadie sabe que le pasó a esta mujer...
Las leyendas de Magvel dicen que tuvo una explosión cerebral causada por el torso desnudo de Ephraim, otros dicen que El Rey Demonio la tiene poseída, ¿quién sabe?... 
==========================================================================
Soy y me gusta:



avatar
Alojzy
Moderador
Moderador

Masculino
RPG Maker : Ace
Mensajes : 264
Monedas : 424
Reputación : 43
Edad : 26
Localización : Dónde te diga tu corazón *música melancólica*

Volver arriba Ir abajo

Ver el tema anterior Ver el tema siguiente Volver arriba

- Temas similares

 
Permisos de este foro:
No puedes responder a temas en este foro.