¡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
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
Últimos temas
» Invocar Estilo Final Fantasy
por akito_squall Hoy a las 16:20

» El poder oculto (Demo)
por alex1633 Ayer a las 20:56

» Tutorial Interactivo [Uso de interruptores]
por Ledai Ayer a las 16:58

» Necesito Script
por Elian84 Ayer a las 04:44

» Holaaa a tod@s!!!
por chronoMxx Ayer a las 03:41

» [AYUDA]Hootshot de moghunter
por Rudy_kinneas Ayer a las 01:06

» El poder oculto (Segunda entrega)
por alex1633 2016-12-03, 23:18

» Hola mucho gusto
por Hk Diamond 2016-12-03, 13:49

» SoraDeathss se presenta!
por chronoMxx 2016-12-03, 07:50

» {AYUDA}Blizz-ABS Script
por chronoMxx 2016-12-03, 06:45

Afiliados
Estadísticas
Tenemos 3383 miembros registrados.
El último usuario registrado es LordBaium.

Nuestros miembros han publicado un total de 79770 mensajes en 11248 argumentos.
Navega con Google Chrome
[DESCARGA]

Ayuda, script alineamiento

 :: RPG Maker :: Ayuda RPG

Ver el tema anterior Ver el tema siguiente Ir abajo

RPG Maker XP Ayuda, script alineamiento

Mensaje por Pabloanime1 el 2014-11-20, 19:59

Spoiler:
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 = "Bondadoso"
return @alignment
end
if @alignment < 0
if @alignment < -100
@alignment = -100
end
@alignment_name = "Malvado"
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

Tenía una duda, y es que si con este script puedo hacer que dependiendo tu nivel de alineamiento ocurran cosas distintas usando engines o algo parecido.

Pabloanime1
Iniciado
Iniciado

0/3

Créditos 53

Gracias : 4

Volver arriba Ir abajo

RPG Maker XP Re: Ayuda, script alineamiento

Mensaje por Wecoc el 2014-11-20, 22:41

Sí, solo tienes que ponerlo en un Condiciones y Efectos, en la última opción donde pone Script.

Te pongo unos ejemplos:

Si quieres comprobar que el personaje es bueno
Código:
$game_actors[1].alignment > 0

O neutral
Código:
$game_actors[1].alignment == 0

O malo
Código:
$game_actors[1].alignment < 0

O bastante bueno
Código:
$game_actors[1].alignment > 50

O completamente malvado
Código:
$game_actors[1].alignment == -100


En definitiva, solo tienes que jugar con ese valor, el cual va de -100 para el más malvado a 100 para el más bueno, siendo 0 el neutral. == es igual, > mayor, < menor, >= mayor o igual, <= menor o igual, y != distinto (no igual).

Donde puse $game_actors[1] cambia ese 1 por el ID (posición en la base de datos) del personaje que quieras. Y en principio eso es todo a tener en cuenta.

Wecoc
Administrador
Administrador



Créditos 8263

Gracias : 372

Volver arriba Ir abajo

RPG Maker XP Re: Ayuda, script alineamiento

Mensaje por Pabloanime1 el 2014-11-21, 21:07

Entonces, ¿si quiero que un personaje hable con el protagonista por ejemplo, pondría: $game_actors[1].alignment > 10
Y entonces hasta que no llegase a tener diez de bondad, por llamarlo así no podría hablar con él?

Vale, funciona así, lo malo es que cuando hablas con el personaje sin tener esos puntos antes se queda cojido y no puedes moverte. Snif

Solucionado, lo unico que hay que hacer es usar un "condiciones y efectos de script" y listo, no como lo hacia yo Sweat que lo ponía directamente en el evento sin nada.
Muchisismas gracias por la ayuda wecoc Very Happy

Pabloanime1
Iniciado
Iniciado

0/3

Créditos 53

Gracias : 4

Volver arriba Ir abajo

RPG Maker XP Re: Ayuda, script alineamiento

Mensaje por Contenido patrocinado Hoy a las 16:36


Contenido patrocinado


Volver arriba Ir abajo

Ver el tema anterior Ver el tema siguiente Volver arriba


 :: RPG Maker :: Ayuda RPG

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