collapse collapse

 Community


 User Info




Willkommen Gast. Bitte einloggen oder registrieren.

 Partnerseiten

rpgvx.net

Das Forum ist offline

Autor Thema: Name Box+  (Gelesen 2796 mal)

Toxics

  • Gast
Name Box+
« am: Februar 04, 2008, 12:16:08 »
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+
Spoiler for Hiden:




#==============================================================================
# ¦ 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
Spoiler for Hiden:
(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
« Letzte Änderung: Februar 09, 2008, 01:47:10 von Toxics »

Name Box+

Dainreth

  • Gast
Name Box+
« Antwort #1 am: Februar 04, 2008, 13:10:37 »
Klingt gut, dennoch ist's mir ein bisschen zu viel Aufwand für ne Namensbox..Yatzumo hat so'n Ding ja schon in seinem AFS. Bei dir hat funktioniert das alles anders, finde ich aber irgendwie interessant gemacht, ich glaube der ein oder andere freut sich da sicher. Von mir ein Danke fürs Scripten, bin gespannt, was du sonst noch machst :)

Name Box+

Offline Seph

  • bLUbb?
  • Mr. MACK-Tile
  • ***
  • Beiträge: 224
Name Box+
« Antwort #2 am: Februar 04, 2008, 13:45:22 »
Ich werds nicht benutzen aber es ist auch ne interresante
Möglichkeit Namensboxen anzeigen zu lassen.
Danke fürs Scripten, einige werdens sicher benutzen.

Name Box+

woratana

  • Gast
Name Box+
« Antwort #3 am: Februar 05, 2008, 00:04:28 »
Good Idea for that,

but the bad point is it will not compatible with any other system. Because you rewrote everything Window_Message even though some method you didn't use.

Good start though :)

Name Box+

Toxics

  • Gast
Name Box+
« Antwort #4 am: Februar 05, 2008, 01:35:14 »
You are right! :)

I was not sure if i can delete the unnecessary Methods. This is my first script but i to learn something new.^^

And sorry for my bad english :P
« Letzte Änderung: Februar 05, 2008, 01:36:11 von Toxics »

Name Box+

Styler-X

  • Gast
Name Box+
« Antwort #5 am: Juni 03, 2008, 20:20:42 »
Die letzte möglichkeit den Namen noch zu ändern ist die globale
QUELLTEXT
$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



Das mit dem secondname klappt i wie nicht kannste es mir noch ma erklären
also ich hab einfach $secoundname = Name vor der nachricht box und $secoundname = nil nach der box gelegt

 


 Bild des Monats

rooftop party

Views: 3581
By: papilion

 Umfrage

  • Wer soll das BdM gewinnen?
  • Dot Kandidat 1
  • 3 (25%)
  • Dot Kandidat 2
  • 1 (8%)
  • Dot Kandidat 3
  • 2 (16%)
  • Dot Kandidat 4
  • 0 (0%)
  • Dot Kandidat 5
  • 6 (50%)
  • Stimmen insgesamt: 12
  • View Topic

 Schnellsuche





SimplePortal 2.3.3 © 2008-2010, SimplePortal