So, ich habe mal was gebastel^^
Da ich mich noch net so lange mit dem Scripten beschäftige, kann es natürlich sein das ein paar "unschöne" schönheitsfehler und so drin sind. hoffe es ist nicht ganz so katastrophal, läuft bei mir zwar ohne irgendwelche problem aber mann weiss ja nie happy.gif\" style=\"vertical-align:middle\" emoid=\"^_^\" border=\"0\" alt=\"happy.gif\" /]
Edit: ach ja das script ist dafür gedacht das man den Eventnamen in einer Namens box anzeigen lassen kann. Fast vergessen^^
kleiners update: läuft jetzt auch bei Parallelen Prozesen
Name Box+
#==============================================================================
# ¦ Window_Message + Naming Box
#------------------------------------------------------------------------------
# Use window display text messages.
# by Toxics
# v 0.65
#
# Ermöglicht es ein Namensfenster über dem Narchichten Fenster auszugeben
# in dem der Name des Evendes steht, mit volgenden optionen
# Eventname/Q = Naming window off
# Neuer Name wenn schalter xxx = an
# orignal_Name/Switschnummer/Neuer_Namer//
#
#==============================================================================
class Window_Message < Window_Selectable
def initialize
super(0, 288, 544, 128)
self.z = 200
self.active = false
self.index = -1
self.openness = 0
@namebox_font ="UmePlus Gothic" # Schriftart für das namensfenster festlegen.
if Font.exist?(@namebox_font) != true then print ("Die Schriftart ", @namebox_font, " ist nicht Installiert oder wurde nicht gefunden!") end
@skin = Cache.system("Window") # Windowskin des Namensfesters
@name = "????"
@opening = false
@closing = false
@text = nil
@contents_x = 0
@contents_y = 0
@line_count = 0
@wait_count = 0
@background = 0
@position = 2
@show_fast = false
@line_show_fast = false
@pause_skip = false
create_gold_window
create_number_input_window
create_back_sprite
end
#--------------------------------------------------------------------------
# ? Frame Update
#--------------------------------------------------------------------------
def update
super
update_gold_window
update_number_input_window
update_back_sprite
update_show_fast
unless @opening or @closing
if @wait_count > 0
@wait_count -= 1
elsif self.pause
input_pause
elsif self.active
input_choice
elsif @number_input_window.visible
input_number
elsif @text != nil
update_message
elsif continue?
if name_window_invisible? != true
@name = $boxname.name
change_name?
create_nameing_window
end
start_message
open
$game_message.visible = true
else
close
$game_message.visible = @closing
end
end
end
#--------------------------------------------------------------------------
# ? Check whether the name changes
#--------------------------------------------------------------------------
def change_name?
name = @name
controller = name.reverse
if controller.index('//') == 0
index = -1
mapid = $game_map.map_id
eventid = $boxname.id
splitname = Array.new
names = controller.reverse
names.each('/') {|x| a = x.delete"/"
splitname << a
}
splitname.delete_if {|x| x == "" }
splitname.reverse.each {|x|
index += 1
if $game_switches[x.to_f] == true
index -= 1
@name = splitname.reverse[index]
return
elsif $game_self_switches[[mapid, eventid, x]] == true
index -= 1
@name = splitname.reverse[index]
return
end
}
@name = splitname[0]
end
end
#--------------------------------------------------------------------------
# ? Naming window hide/show
#--------------------------------------------------------------------------
def name_window_invisible?
if $boxname == nil
return true
end
controler = $boxname.name.reverse
if controler.index('Q/') == 0 or $nameboxoff == true or $game_temp.in_battle == true
return true
end
end
#--------------------------------------------------------------------------
# ? calculate box size
#--------------------------------------------------------------------------
def name_window_size
size = @name.size
return 50+(size * 10)
end
#--------------------------------------------------------------------------
# ? Creating naming window
#--------------------------------------------------------------------------
def create_nameing_window
if $secondname != nil
@name= $secondname
@width = name_window_size
elsif
@width = name_window_size
end
@namewindow = Window_Base.new(0, 0, @width, 50)
@namewindow.contents.font.name = (@namebox_font)
@namewindow.windowskin = (@skin)
@namewindow.contents.draw_text(5, -10, @width, 37, @name + ":")
end
#--------------------------------------------------------------------------
# ? Dispose naming window
#--------------------------------------------------------------------------
def dispose_name_window
if name_window_invisible? != true
@namewindow.dispose
end
end
#--------------------------------------------------------------------------
# ? Start the message
#--------------------------------------------------------------------------
def start_message
@text = ""
for i in 0...$game_message.texts.size
@text += " " if i >= $game_message.choice_start
@text += $game_message.texts[i].clone + "\x00"
end
@item_max = $game_message.choice_max
convert_special_characters
reset_window
reset_name_window
new_page
end
#--------------------------------------------------------------------------
# ? Background and naming window position
#--------------------------------------------------------------------------
def reset_name_window
if name_window_invisible? != true
@background = $game_message.background
@position = $game_message.position
if @background == 0
@namewindow.opacity = 255
else
@namewindow.opacity = 0
end
case @position
when 0
@namewindow.y = 128 # y position des Namensfensters "Oben"
@namewindow.x = 0 # x position des Namensfensters "Oben"
when 1
@namewindow.y = 95 # y position des Namensfensters "Mitte"
@namewindow.x = 0 # x position des Namensfensters "Mitte"
when 2
@namewindow.y = 240 # y position des Namensfensters "Unten"
@namewindow.x = 0 # x position des Namensfensters "Unten"
when 3
end
end
end
#--------------------------------------------------------------------------
# ? End of message
#--------------------------------------------------------------------------
def terminate_message
self.active = false
self.pause = false
self.index = -1
@gold_window.close
@number_input_window.active = false
@number_input_window.visible = false
$game_message.main_proc.call if $game_message.main_proc != nil
$game_message.clear
dispose_name_window
end
end
#--------------------------------------------------------------------------
# ?class Event
#--------------------------------------------------------------------------
class Game_Event
def start
return if @list.size <= 1
$boxname = @event
@starting = true
lock if @trigger < 3
unless $game_map.interpreter.running?
$game_map.interpreter.setup_starting_event
end
end
def setup(new_page)
@page = new_page
if @page == nil
@tile_id = 0
@character_name = ""
@character_index = 0
@move_type = 0
@through = true
@trigger = nil
@list = nil
@interpreter = nil
else
@tile_id = @page.graphic.tile_id
@character_name = @page.graphic.character_name
@character_index = @page.graphic.character_index
if @original_direction != @page.graphic.direction
@direction = @page.graphic.direction
@original_direction = @direction
@prelock_direction = 0
end
if @original_pattern != @page.graphic.pattern
@pattern = @page.graphic.pattern
@original_pattern = @pattern
end
@move_type = @page.move_type
@move_speed = @page.move_speed
@move_frequency = @page.move_frequency
@move_route = @page.move_route
@move_route_index = 0
@move_route_forcing = false
@walk_anime = @page.walk_anime
@step_anime = @page.step_anime
@direction_fix = @page.direction_fix
@through = @page.through
@priority_type = @page.priority_type
@trigger = @page.trigger
@list = @page.list
@interpreter = nil
if @trigger == 4
$boxname = @event
@interpreter = Game_Interpreter.new
end
end
update_bush_depth
end
end
So noch kurz was zu den optionen
Wenn mann als Eventanme beispiel/Q angibt wird keine Namensbox angezeigt. Global kann man das
ganze auch
$nameboxoff = true
via call script menu ausschalten.
So dann kann man den Namen noch ändern wen ein switch oder self switch an ist.
origninalname/switchid/neuername//
Mal als bsp will man das Jannes Bernd heißt wenn schalter 7 und Hannes wenn 9 an ist, dann schreibt man
Jannes/7/Bernd/9/Hannes//
Das kann mann so oft machen wie platz ist, wichtig dabei ist das die letzte bedingung die auschlagsgebenste ist.
Weitere "/" zeichen können nicht verwendet werden!
Wichtig ist noch das, dass globale Swiches eine höhere priorität als Self Switches haben. Will man dies ändern einfach
(zeile103) if $game_self_switches[[mapid, eventid, x]] == true
das(und nur das rote) mit
(zeile107) elsif $game_switches[x.to_f] == true
vertauschen
Die letzte möglichkeit den Namen noch zu ändern ist die globale $secoundname = name.
einfach per call script vor der Measage aufrufen, hat auch die höchste priorität von allem anderen möglichkeiten :)
Achtung hinterher wieder auf $secoundname = nil setzen