Ogłoszenie 

Uwaga! To forum jest w trybie offline.
Wszelką pomoc uzyskasz pod adresem
forum.ultimateam.pl


Administracja Forum


Poprzedni temat «» Następny temat
Przesunięty przez: Ayene
Wto 06 Kwi, 2010 13:45
Skrypt na imiona
Autor Wiadomość
MomoMarcin3 




Preferowany:
RPG Maker XP

Pomógł: 2 razy
Dołączył: 20 Sty 2010
Posty: 109
Skąd: 11111
Wysłany: Nie 14 Mar, 2010 17:25
Skrypt na imiona
Potrzebuje skryptu aby wyświetlał imie wczasie rozmowy nad oknem rozmowy.
________________________
Gra na ktrórej mi naprawde zależy:
http://www.ultimateam.pl/viewtopic.php?t=2723
 
 
Ayene 




Ranga RM:
4 gry

Pomogła: 232 razy
Dołączyła: 18 Wrz 2007
Posty: 2424
Wysłany: Sro 17 Mar, 2010 20:42
Wejdź w klasę Window_Messag i znajdź fargament:
Kod:
      text.gsub!(/\\[Nn]\[([0-9]+)\]/) do
        $game_actors[$1.to_i] != nil ? $game_actors[$1.to_i].name : ""
      end

Zamień go na:
Kod:
text.gsub!(/\\[Nn]\[([0-9]+)\]/) { "\003[#{$1}]" }


Następnie znajdź:
Kod:
if c == "\n"

i przed nim wklej:
Kod:
        if c == "\003"   
          text.sub!(/\[([0-9]+)\]/, "")         
          create_name_window($game_actors[$1.to_i] != nil ? $game_actors[$1.to_i].name : "")
          next
        end


Na samym końcu klasy przed ostatnim end wklej:
Spoiler:

Kod:
    def create_name_window(text = "")
    a = Bitmap.new(1, 1)
    text_size = a.text_size(text).width
    a.dispose
    close_name_window
    @name_window = Window.new
    @name_window.windowskin = RPG::Cache.windowskin(@windowskin_name)
    @name_window.height = Font.default_size + 16
    @name_window.x = self.x
    case $game_system.message_position
    when 0               
      @name_window.y = self.y + self.height
    when 1, 2
      @name_window.y = self.y - @name_window.height
    end
    @name_window.z = self.z + 1
    @name_window.width = text_size + 32
    @name_window.contents = Bitmap.new(1, 1)
    @name_window.back_opacity = 200
    @sprite = Sprite.new
    @sprite.x = @name_window.x + 5
    @sprite.y = @name_window.y + 7
    @sprite.z = @name_window.z + 1
    @sprite.bitmap = Bitmap.new(text_size + 16, Font.default_size)
    @sprite.bitmap.draw_text(@sprite.bitmap.rect, text, 1)
  end
 
  def close_name_window
    return if @name_window.nil?
    @name_window.dispose
    @name_window = nil
    @sprite.dispose
    @sprite = nil
  end 



Znajdź:
Kod:
  def dispose
    terminate_message

I po tym dodaj:
Kod:
close_name_window


Znajdź:
Kod:
def terminate_message
    self.active = false

I po tym dodaj:
Kod:
close_name_window


Wpisując w treści wiadomości \N[id bohatera] wyświetli się okienko z jego imieniem.
________________________


 
 
 
Czeliosss 



Ranga RM:
1 gra

Pomógł: 49 razy
Dołączył: 02 Lis 2009
Posty: 661
Skąd: Wa-wa
Wysłany: Sro 17 Mar, 2010 21:12
Zrobiłem jak napisałaś i pokazuje mi błąd w 158 linijce.
Kod:
    if $game_temp.choice_max > 0
________________________
...Amelanduil & FireBlade words will be remembered...
...Amelanduil & FireBlade acts will be remembered...
...Amelanduil & FireBlade never gonna die...

Nie pisać, bo nie odpiszę.
 
 
Ayene 




Ranga RM:
4 gry

Pomogła: 232 razy
Dołączyła: 18 Wrz 2007
Posty: 2424
Wysłany: Sro 17 Mar, 2010 21:35
Coś źle zrobiłeś. Wklej poniższy skrypt nad Main:

Spoiler:

Kod:
#==============================================================================
# Window_Message
#==============================================================================
# Imię w wiadomości w osobnym okienku
# by Ayene

class Window_Message < Window_Selectable
 
  def dispose
    terminate_message
    close_name_window
    $game_temp.message_window_showing = false
    if @input_number_window != nil
      @input_number_window.dispose
    end
    super
  end
 
  def terminate_message
    self.active = false
    self.pause = false
    self.index = -1
    self.contents.clear   
    @contents_showing = false   
    if $game_temp.message_proc != nil
      $game_temp.message_proc.call
    end   
    $game_temp.message_text = nil
    $game_temp.message_proc = nil
    $game_temp.choice_start = 99
    $game_temp.choice_max = 0
    $game_temp.choice_cancel_type = 0
    $game_temp.choice_proc = nil
    $game_temp.num_input_start = 99
    $game_temp.num_input_variable_id = 0
    $game_temp.num_input_digits_max = 0   
    if @gold_window != nil
      @gold_window.dispose
      @gold_window = nil
    end
    close_name_window
  end
 
  def refresh
    self.contents.clear
    self.contents.font.color = normal_color
    x = y = 0
    @cursor_width = 0   
    if $game_temp.choice_start == 0
      x = 8
    end   
    if $game_temp.message_text != nil
      text = $game_temp.message_text     
      begin
        last_text = text.clone
        text.gsub!(/\\[Vv]\[([0-9]+)\]/) { $game_variables[$1.to_i] }
      end until text == last_text
      text.gsub!(/\\[Nn]\[([0-9]+)\]/) { "\003[#{$1}]" }     
      text.gsub!(/\\\\/) { "\000" }     
      text.gsub!(/\\[Cc]\[([0-9]+)\]/) { "\001[#{$1}]" }
      text.gsub!(/\\[Gg]/) { "\002" }     
      while ((c = text.slice!(/./m)) != nil)       
        if c == "\000"         
          c = "\\"
        end       
        if c == "\001"         
          text.sub!(/\[([0-9]+)\]/, "")
          color = $1.to_i
          if color >= 0 and color <= 7
            self.contents.font.color = text_color(color)
          end         
          next
        end       
        if c == "\002"         
          if @gold_window == nil
            @gold_window = Window_Gold.new
            @gold_window.x = 560 - @gold_window.width
            if $game_temp.in_battle
              @gold_window.y = 192
            else
              @gold_window.y = self.y >= 128 ? 32 : 384
            end
            @gold_window.opacity = self.opacity
            @gold_window.back_opacity = self.back_opacity
          end         
          next
        end   
        if c == "\003"   
          text.sub!(/\[([0-9]+)\]/, "")         
          create_name_window($game_actors[$1.to_i] != nil ? $game_actors[$1.to_i].name : "")
          next
        end
        if c == "\n"         
          if y >= $game_temp.choice_start
            @cursor_width = [@cursor_width, x].max
          end         
          y += 1
          x = 0         
          if y >= $game_temp.choice_start
            x = 8
          end         
          next
        end       
        self.contents.draw_text(4 + x, 32 * y, 40, 32, c)       
        x += self.contents.text_size(c).width
      end
    end   
    if $game_temp.choice_max > 0
      @item_max = $game_temp.choice_max
      self.active = true
      self.index = 0
    end   
    if $game_temp.num_input_variable_id > 0
      digits_max = $game_temp.num_input_digits_max
      number = $game_variables[$game_temp.num_input_variable_id]
      @input_number_window = Window_InputNumber.new(digits_max)
      @input_number_window.number = number
      @input_number_window.x = self.x + 8
      @input_number_window.y = self.y + $game_temp.num_input_start * 32
    end
  end
 
  def create_name_window(text = "")
    a = Bitmap.new(1, 1)
    text_size = a.text_size(text).width
    a.dispose
    close_name_window
    @name_window = Window.new
    @name_window.windowskin = RPG::Cache.windowskin(@windowskin_name)
    @name_window.height = Font.default_size + 16
    @name_window.x = self.x
    case $game_system.message_position
    when 0               
      @name_window.y = self.y + self.height
    when 1, 2 
      @name_window.y = self.y - @name_window.height
    end
    @name_window.z = self.z + 1
    @name_window.width = text_size + 32
    @name_window.contents = Bitmap.new(1, 1)
    @name_window.back_opacity = 200
    @sprite = Sprite.new
    @sprite.x = @name_window.x + 5
    @sprite.y = @name_window.y + 7
    @sprite.z = @name_window.z + 1
    @sprite.bitmap = Bitmap.new(text_size + 16, Font.default_size)
    @sprite.bitmap.draw_text(@sprite.bitmap.rect, text, 1)
  end
 
  def close_name_window
    return if @name_window.nil?
    @name_window.dispose
    @name_window = nil
    @sprite.dispose
    @sprite = nil
  end 
end

________________________


 
 
 
Czeliosss 



Ranga RM:
1 gra

Pomógł: 49 razy
Dołączył: 02 Lis 2009
Posty: 661
Skąd: Wa-wa
Wysłany: Sro 17 Mar, 2010 21:47
Błąd mi nie wyskakuje, le nie pokazuje mi imienia.
________________________
...Amelanduil & FireBlade words will be remembered...
...Amelanduil & FireBlade acts will be remembered...
...Amelanduil & FireBlade never gonna die...

Nie pisać, bo nie odpiszę.
 
 
Ayene 




Ranga RM:
4 gry

Pomogła: 232 razy
Dołączyła: 18 Wrz 2007
Posty: 2424
Wysłany: Sro 17 Mar, 2010 21:55
Wklej mi tutaj zawartość swojego domyślnego 'Window_Message'. W gruncie rzeczy nie powinnam nawet brać się za poprawianie błędów wersji polskiej.

Ewentualnie spróbuj przed:
Kod:
@sprite.bitmap.draw_text(@sprite.bitmap.rect, text, 1)

dodać:
Kod:
    @sprite.bitmap.font.name = $defaultfonttype
    @sprite.bitmap.font.size = $defaultfontsize
________________________


 
 
 
Czeliosss 



Ranga RM:
1 gra

Pomógł: 49 razy
Dołączył: 02 Lis 2009
Posty: 661
Skąd: Wa-wa
Wysłany: Czw 18 Mar, 2010 07:54
Dobra wykorzystam to jak będę miał orginał, ale po zrobieniu jak mówiłaś to było imię, ale okienko się nie powiększało. Pewnie to wina programu.
________________________
...Amelanduil & FireBlade words will be remembered...
...Amelanduil & FireBlade acts will be remembered...
...Amelanduil & FireBlade never gonna die...

Nie pisać, bo nie odpiszę.
 
 
Ayene 




Ranga RM:
4 gry

Pomogła: 232 razy
Dołączyła: 18 Wrz 2007
Posty: 2424
Wysłany: Nie 21 Mar, 2010 21:21
czeliosss, w polskiej wersji programu wszystko działa jak należy. Albo coś źle zrobiłeś, albo masz skrypt, który również podmienia klasę 'Window_Message'.
________________________


 
 
 
Agumon 




Preferowany:
RPG Maker VX

Ranga RM:
1 gra

Pomógł: 53 razy
Dołączył: 30 Gru 2009
Posty: 515
Skąd: Ruda Śląska
Wysłany: Pon 22 Mar, 2010 19:06
A da się takie coś do VX zrobić????
________________________
Pomogłem? Daj ""
Piszę poprawnie po polsku

 
 
adix225 



Preferowany:
RPG Maker XP

Dołączył: 01 Kwi 2010
Posty: 3
Wysłany: Czw 01 Kwi, 2010 19:48
Jeśli chcecie to można też w rozmowie dać cmd:
\c[id postaci]
np. \c[1] wtedy pokazuje się imie postaci 1 chyba że chodzi o coś innego
________________________
Podoba wam się moja stronka?
http://rpggame.vgh.pl
REJESTRUJCIE SIĘ
 
 
 
Ayene 




Ranga RM:
4 gry

Pomogła: 232 razy
Dołączyła: 18 Wrz 2007
Posty: 2424
Wysłany: Czw 01 Kwi, 2010 20:49
Agumon, można... jeśli będziesz zainteresowany, to załóż osobny temat w dziale VX'a.

adix225, nie wprowadzaj w błąd. \c[nr] to kod do kolorów. Domyślnie by wyświetlić imię bohatera to \n[nr], ale nie otwiera się przy tym nowe okienko.
________________________


 
 
 
Wyświetl posty z ostatnich:   
Ten temat jest zablokowany bez możliwości zmiany postów lub pisania odpowiedzi
Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Nie możesz załączać plików na tym forum
Możesz ściągać załączniki na tym forum
Dodaj temat do Ulubionych
Wersja do druku

Skocz do:  

Powered by phpBB modified by Przemo © 2003 phpBB Group | Template Klam by Ayene