Mundo Maker
¡Bienvenid@ a Mundo Maker!

¿Quieres aprender todo sobre el RPG Maker?



Regístrate y forma parte de Mundo Maker.
Conectarse

Recuperar mi contraseña

Temas importantes
----------------------------------------
Páginas con recursos RPG Maker
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
Afiliados
Estadísticas
Tenemos 4193 miembros registrados.
El último usuario registrado es Godot.

Nuestros miembros han publicado un total de 85222 mensajes en 12132 argumentos.

[Script] Personaje "BUENO/MALO" como en Imperial Age

Ver el tema anterior Ver el tema siguiente Ir abajo

[Script] Personaje "BUENO/MALO" como en Imperial Age

Mensaje por Clark-CLK el 2010-12-08, 17:23

Seguro que habeis oido de este script, pues bien,  lo encontre en: http://vz4.net/foro/index.php/topic/3333-un-script-del-bien-y-el-mal/

El 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":

$game_actors[1].alignment += 1

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

$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:
Leon

Wong WOng!!


Última edición por Wecoc el 2013-08-07, 20:56, editado 2 veces (Razón : añadir instrucciones)
avatar
Clark-CLK
Veterano
Veterano

0/3

Créditos 1350

Gracias : 3

Volver arriba Ir abajo

Re: [Script] Personaje "BUENO/MALO" como en Imperial Age

Mensaje por orochii el 2010-12-08, 19:10

Bueno, no tengo idea de si Ribbu habría tenido eso funcionando T__T, la verdad no recuerdo si ya lo había hecho... (buu~~ rayos asesinos del mal D:! *orochii cries*) PERO EN FIN.
El script parece bueno, y pues supongo que es así.

Excelente aporte, y felicitaciones a Leon por el script,
Orochii Zouveleki

PD.: ¿Será posible una screenie? :3
avatar
orochii
Caballero Shiro
Caballero Shiro

0/3

Créditos 6689

Gracias : 337

Volver arriba Ir abajo

Re: [Script] Personaje "BUENO/MALO" como en Imperial Age

Mensaje por Clark-CLK el 2010-12-09, 20:16

orochii escribió:Bueno, no tengo idea de si Ribbu habría tenido eso funcionando T__T, la verdad no recuerdo si ya lo había hecho... (buu~~ rayos asesinos del mal D:! *orochii cries*) PERO EN FIN.
El script parece bueno, y pues supongo que es así.

Excelente aporte, y felicitaciones a Leon por el script,
Orochii Zouveleki

PD.: ¿Será posible una screenie? :3

Aquí tienes la screen:
http://img219.imageshack.us/i/screenbuenomalo.jpg/

Puedes observar la barra de alineamento.

P.D: Escribí créditos con acento abierto (Catalán), perdón por la falta.
avatar
Clark-CLK
Veterano
Veterano

0/3

Créditos 1350

Gracias : 3

Volver arriba Ir abajo

Re: [Script] Personaje "BUENO/MALO" como en Imperial Age

Mensaje por Clark-CLK el 2011-03-27, 14:34

1ºPerdonen el necroposting
2ºPerdonen el doble-post
(ahora dejo de pedir perdón xD)
Bueno, Santrim y yo abandonamos un proyecto que quisimos recuperar y este script encaja con el sistema del juego, así que la semana pasada, probando encontramos la forma de usarlo.
os dejo aquí las instrucciones:
Para llamar el script:
Para sumar puntos positivos, y hacer que en la barra se incline al lado de "bondad":

$game_actors[1].alignment += 1

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

$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.

Aquí Encontraréis más info y un sencillo engine que hice ^^

Espero que no haya molestado ^^

Wong Wong!!

P.D: Ahora edito el post principal, hay que esperar 2 minutos T_T
avatar
Clark-CLK
Veterano
Veterano

0/3

Créditos 1350

Gracias : 3

Volver arriba Ir abajo

Re: [Script] Personaje "BUENO/MALO" como en Imperial Age

Mensaje por carlos55 el 2011-03-27, 15:26

Esta exelente el engine creo que talvez lo use
tengo una idea no se si servira pero que tal si
esque eres bueno subes en defensa y si subes en malo
aumentas ataque
avatar
carlos55
Moderador
Moderador

0/3

Créditos 1136

Gracias : 10

Volver arriba Ir abajo

Re: [Script] Personaje "BUENO/MALO" como en Imperial Age

Mensaje por orochii el 2011-04-05, 15:33

Respecto a lo que dices carlos55, seh, puede hacerse, bastante fácil es diría yo ;P (claro, de una forma medio cochinita xD).
Código:

class Game_Actor < Game_Battler
  def base_atk
    weapon = $data_weapons[@weapon_id]
    align_bonus = [[@alignment / 5), 20].min, -10].max #hace máximo 20 y mínimo -10
    return weapon != nil ? weapon.atk-align_bonus : 0
  end
  def base_pdef
    weapon = $data_weapons[@weapon_id]
    armor1 = $data_armors[@armor1_id]
    armor2 = $data_armors[@armor2_id]
    armor3 = $data_armors[@armor3_id]
    armor4 = $data_armors[@armor4_id]
    pdef1 = weapon != nil ? weapon.pdef : 0
    pdef2 = armor1 != nil ? armor1.pdef : 0
    pdef3 = armor2 != nil ? armor2.pdef : 0
    pdef4 = armor3 != nil ? armor3.pdef : 0
    pdef5 = armor4 != nil ? armor4.pdef : 0
    align_bonus = [[@alignment / 5), 10].min, -10].max #hace máximo 20 y mínimo -10
    return pdef1 + pdef2 + pdef3 + pdef4 + pdef5 + align_bonus
  end
  #--------------------------------------------------------------------------
  # * Get Basic Magic Defense
  #--------------------------------------------------------------------------
  def base_mdef
    weapon = $data_weapons[@weapon_id]
    armor1 = $data_armors[@armor1_id]
    armor2 = $data_armors[@armor2_id]
    armor3 = $data_armors[@armor3_id]
    armor4 = $data_armors[@armor4_id]
    mdef1 = weapon != nil ? weapon.mdef : 0
    mdef2 = armor1 != nil ? armor1.mdef : 0
    mdef3 = armor2 != nil ? armor2.mdef : 0
    mdef4 = armor3 != nil ? armor3.mdef : 0
    mdef5 = armor4 != nil ? armor4.mdef : 0
    align_bonus = [[@alignment / 5), 10].min, -10].max #hace máximo 20 y mínimo -10
    return mdef1 + mdef2 + mdef3 + mdef4 + mdef5 + align_bonus
  end
end
Con eso creo que servirá ;). Debería de postear algún día mis modificaciones a las "fórmulas" de los estados base, ya que he jugado muchas veces con ellos, para eliminar la existencia del "Ataque 0 sin arma" por ejemplo ¬¬.

Eso es, salut,
Orochii Zouveleki
avatar
orochii
Caballero Shiro
Caballero Shiro

0/3

Créditos 6689

Gracias : 337

Volver arriba Ir abajo

Re: [Script] Personaje "BUENO/MALO" como en Imperial Age

Mensaje por Napi el 2011-04-05, 16:16

emmux escribió:Es automatico, se pone con cualquiera que este leyendo, yo veo "emmux Visita el Blog de Power Released"
Gracias emmux, esque me habia llevado un buen susto Sweat . Aunque sea una tontería!

PD: El script va perfecto! Seguramente lo use en mi proyecto.
avatar
Napi
Iniciado
Iniciado

0/3

Créditos 39

Gracias : 0

Volver arriba Ir abajo

Re: [Script] Personaje "BUENO/MALO" como en Imperial Age

Mensaje por EusamaTv el 2017-09-10, 06:35

Buenas, lamento estar haciendo necro post pero alguienque me ayude D: no se nada de porgramación trate de modificar la función "def draw_alignment_bar(actor, x, y)" obviamente la linea que lo seaguía.

Seguí la instrucciones y nada nose que hacer.

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.

avatar
EusamaTv
Iniciado
Iniciado

0/3

Créditos 8

Gracias : 2

Volver arriba Ir abajo

Re: [Script] Personaje "BUENO/MALO" como en Imperial Age

Mensaje por Calayax el 2017-09-10, 14:27

EusamaTv escribió:Buenas, lamento estar haciendo necro post pero alguienque me ayude D: no se nada de porgramación trate de modificar la función "def draw_alignment_bar(actor, x, y)" obviamente la linea que lo seaguía.

Seguí la instrucciones y nada nose que hacer.

   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.


Debes buscar la línea donde se coloca la información del equipamiento (por lo general director armor, weapon) y siguiendo la lógica de (x,y,...) Cambiar el valor de la Y para que esté más abajo. (Deberías así "bajar" todas esas líneas) pues el problema que veo es sólo que neutral y equipamiento tienen el mismo valor de X/Y
avatar
Calayax
Soñador
Soñador

0/3

Créditos 677

Gracias : 42

Volver arriba Ir abajo

Re: [Script] Personaje "BUENO/MALO" como en Imperial Age

Mensaje por Contenido patrocinado


Contenido patrocinado


Volver arriba Ir abajo

Ver el tema anterior Ver el tema siguiente Volver arriba


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