Envision, Create, Share

Welcome to HBGames, a leading amateur game development forum and Discord server. All are welcome, and amongst our ranks you will find experts in their field from all aspects of video game design and development.

[Resolved] Error with input number and facetext script

I truthfully do not remember where I came by this script, someone had pasted it to a board and did not say who had made it and I do not recall what board it was from, but I hope that someone may know the solution!

The script is for having a face avatar in the chat window and has worked without a problem until I use an input number event.

Here is the script:
Code:
#====================================================

# ¦ Window_Message

#-----------------------------------------------------------

 

class Window_Message < Window_Selectable

#-----------------------------------------------------------

def initialize (x=80,y=304,width=480,height=160)

super(x, y, width, height)

self.contents = Bitmap.new(width - 32, height - 32)

self.visible = false

self.z = 9998

@fade_in = false

@fade_out = false

@contents_showing = false

@cursor_width = 0

self.active = false

self.index = -1

@imagen = Game_Picture.new(1)

@viewport = Viewport.new(0,0,640,480)

@viewport.z = 200

@ventana_cara = Window_Base.new(0,304,160,160)

@ventana_cara.opacity = 0

@ventana_cara.contents = Bitmap.new(160-32,160-32)

@ventana_cara.back_opacity = 160

@carct_centinela = "|"#aqui se decide el caracter para q no se vea la ventana

#de imagenes

@tamaño_imagenes = 128# ste es el tamaño de TODAS vuestras imagenes

#(pixels)

end

#----------------------------------------------------------- ---------------

def dispose

terminate_message

$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

end

#----------------------------------------------------------- ---------------

def refresh

self.contents.clear

self.contents.font.color = normal_color

#self.contents.font.name = $fontface

#self.contents.font.size = $fontsize

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

    @mtexto = 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]+)\]/) do

      $game_actors[$1.to_i] != nil ? $game_actors[$1.to_i].name : ""

    end

    text.gsub!(/\\\\/) { "\000" }

    # "\\C" ? "\001" ??"\\G" ? "\002" ???

    text.gsub!(/\\[Cc]\[([0-9]+)\]/) { "\001[#{$1}]" }

    text.gsub!(/\\[Gg]/) { "\002" }

    text.gsub!(/\\[Gg]/) { "\002" }

    for i in 0...text.size

      if text[i, 1] == ":"

        text = text[i+1,text.size]

        break

      end

    end

    #@mtexto = ""

    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   = c(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 == "\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

      if c != @carct_centinela

        self.contents.draw_text(4 + x, 32 * y, 40, 32, c)

        x += self.contents.text_size(c).width

      end

      #@mtexto = @mtexto + c

    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

cambiar_imagen

end

#----------------------------------------------------------- ---------------

def reset_window

if $game_temp.in_battle

    self.y = 16

    @ventana_cara.y = 16

else

    case $game_system.message_position

    when 0

      self.y = 16

      @ventana_cara.y = 16

    when 1

      self.y = 160

      @ventana_cara.y = 160

    when 2

      self.y = 304

      @ventana_cara.y = 304

    end

end

if $game_system.message_frame == 0

    self.opacity = 255

else

    self.opacity = 0

end

self.back_opacity = 160

end

#----------------------------------------------------------- ---------------

def update

super

if @fade_in

    self.contents_opacity += 24

    visualizar_imagen

    if @input_number_window != nil

        @input_number_window.contents_opacity += 24

    end

    if self.contents_opacity == 255

      @fade_in = false

    end

    return

end

if @input_number_window != nil

    @input_number_window.update

    if Input.trigger?(Input::C)

        $game_system.se_play($data_system.decision_se)

      $game_variables[$game_temp.num_input_variable_id] =

        @input_number_window.number

      $game_map.need_refresh = true

        @input_number_window.dis pose

      @input_number_window = nil

      terminate_message

    end

    return

end

if @contents_showing

    if $game_temp.choice_max == 0

      self.pause = true

    end

    if Input.trigger?(Input::B)

      if $game_temp.choice_max > 0 and $game_temp.choice_cancel_type > 0

        $game_system.se_play($data_system.cancel_se)

        $game_temp.choice_proc.call($game_temp.choice_cancel_type - 1)

        terminate_message

      end

    end

    if Input.trigger?(Input::C)

      if $game_temp.choice_max > 0

        $game_system.se_play($data_system.decision_se)

        $game_temp.choice_proc.call(self.index)

      end

      terminate_message

    end

    return

end

if @fade_out == false and $game_temp.message_text != nil

    @contents_showing = true

    $game_temp.message_window_showing = true

    reset_window

    refresh

    Graphics.frame_reset

    if self.opacity == 255 and !@narracion

      ventana_cara(true)

    elsif @narracion

        ventana_cara(false ,false )

    else

        ventana_cara(false ,true)

    end

    self.visible = true

    self.contents_opacity = 0

    if @input_number_window != nil

        @input_number_window.contents_opacity = 0

    end

    @fade_in = true

    return

end

if self.visible

    @fade_out = true

    self.opacity -= 48

    ocultar_ventana_cara

    ocultar_imagen(true)

    if self.opacity == 0

      ocultar_imagen(false)

      self.visible = false

      @fade_out = false

        $game_temp.message_window_showing = false

    end

    return

end

end

#----------------------------------------------------------- ---------------

def update_cursor_rect

if @index >= 0

    n = $game_temp.choice_start + @index

    self.cursor_rect.set(8, n * 32, @cursor_width, 32)

else

    self.cursor_rect.empty

end

end

#----------------------------------------------------------- ---------

def decidir_imagen

i=0

@nom_imagen = ""

while @mtexto[i,1] != ":" and @mtexto[i,1] != nil and @mtexto[i,1] != @carct_centinela

    @nom_imagen = @nom_imagen + @mtexto[i,1]

    i = i + 1

end

self.x = 160

@narracion = false

if @mtexto[i,1] != ":" and @mtexto[i,1] != @carct_centinela

    @cambio_imagen = false

elsif @mtexto[i,1] == @carct_centinela

    self.x = 80

    @cambio_imagen = true

    @narracion = true

else

    @cambio_imagen = true

end

end

#----------------------------------------------------------- ----------

def cambiar_imagen

decidir_imagen

if @cambio_imagen or (@ventana_cara.y+14) != @imagen.y

    if @impresion_imagen != nil

        @impresion_imagen. dispose

    end

    poner_cara

end

end

#----------------------------------------------------------- --------

def poner_cara

begin

    @ventana_cara.contents.clear

    if @cambio_imagen

        @imagen.show(@nom_imagen, 0, 14,

                        @ventana_cara.y+14,132*100/@tamaño_imagenes,

                        132* 100/@tamaño_imagenes, 0, 0)

    else

      @imagen.move(1, 0, 14, @ventana_cara.y+14, 132*100/@tamaño_imagenes, 132*100/@tamaño_imagenes, 0,0)    

      @imagen.update

    end

    @hay_cara = true

    @impresion_imagen = Sprite_Picture.new(@viewport,@imagen)

rescue

    @hay_cara = false

    @ventana_cara.contents.clear

    #@ventana_cara.contents.font.color = c(4)

    @ventana_cara.contents.font.name = "Flat Brush"

    #@ventana_cara.contents.font.size = $fontsize

    @ventana_cara.contents_opacity = 255

      @ventana_cara.contents.draw_text((160-32)/2-20,(160-32)/2-32 ,32,32,"SIN")

      @ventana_cara.contents.draw_text((160-32)/2-32,(160-32)/2,64 ,32,"FOTO")

end

end

#----------------------------------------------------------- ----------

def ventana_cara(ver,contenido = false)

if ver

    @ventana_cara.visible = true

    @ventana_cara.opacity = 255

    @ventana_cara.back_opacity = 160

elsif contenido

    @ventana_cara.opacity = 0

    @ventana_cara.contents_opacity = 255

else

    @ventana_cara.visible = false

    @ventana_cara.contents.clear

end

end

#----------------------------------------------------------- ----------

def visualizar_imagen

if @hay_cara

    if @impresion_imagen.opacity != 255

        @impresion_imagen. opacity += 24

    end

end

end

#-----------------------------------------------------------

def ocultar_imagen(lento)

if @hay_cara

    if lento

        @impresion_imagen. opacity -= 48

    else

        @impresion_imagen. opacity = 0

    end

end

end

#----------------------------------------------------------- ---

def ocultar_ventana_cara

if @ventana_cara.opacity != 0

    @ventana_cara.opacity -= 48

    @ventana_cara.contents_opacity -= 48

end

end

#----------------------------------------------------------- --

end

And here is the problem:
hv2gqs.png

This pops up after I input a number in-game, whether the number was the correct variable I had set or not.
 

Thank you for viewing

HBGames is a leading amateur video game development forum and Discord server open to all ability levels. Feel free to have a nosey around!

Discord

Join our growing and active Discord server to discuss all aspects of game making in a relaxed environment. Join Us

Content

  • Our Games
  • Games in Development
  • Emoji by Twemoji.
    Top