• Benvenuto in Making Videogames!
  • Dai sfogo alla tua fantasia!
  • Crea il tuo Videogioco!
Benvenuto ospite! Login Registrati




Valutazione discussione:
  • 0 voto(i) - 0 media
  • 1
  • 2
  • 3
  • 4
  • 5
[SCRIPT]Cheat Window
#1
Salve a tutti... Qualche mese fa avevo adattato uno script per xp al vx, e adesso che l'ho trovato, ho voluto contribuire alla crescita del forum Big Grin

DESCRIZIONE:
Lo script permette di creare una cheat window nel proprio gioco, con cui il giocatore, potrà scrivere un determinato codice, settato da voi, che sbloccherà determinate cose, sempre tramite il vostro settaggio...

AUTORE/I:
BudsieBuds per lo script
Alex'94 & mew2 per aver apportato modifiche
Johnny 97 per averlo adattato al VX

ISTRUZIONI:
Inserire sotto Materials. Le altre istruzioni per impostare lo script le troverete nello script stesso, nei vari commenti...

SCRIPT:
[SPOILER]
Codice:
#===============================================================================
#===========================
#  Con questo script potrete aggiungere dei cheats al vostro gioco. Inserite
#  nel Call Script $scene = Scene_Cheats.new per chiamare la finestra di
#  inserimento. Alla 51° riga troverete altre istruzioni.
#===============================================================================
#===========================
#------------------------------------------------------------------------------
#   by BudsieBuds Modificato da Alex'94 & mew2 Adattato per VX da Johnny 97
#==============================================================================
class Scene_Cheats
#--------------------------------------------------------------------------
#  def main
#--------------------------------------------------------------------------
def main
  @edit_window = Window_CheatsEdit.new
  @input_window = Window_CheatsInput.new
  Graphics.transition
  loop do
    Graphics.update
    Input.update
    update
    if $scene != self
      break
    end
  end
  Graphics.freeze
  @edit_window.dispose
  @input_window.dispose
end
#--------------------------------------------------------------------------
#  def update
#--------------------------------------------------------------------------
def update
  @edit_window.update
  @input_window.update
  if Input.repeat?(Input::B)
    if @edit_window.index == 0
      return
    end
    Audio.se_play("Audio/SE/" + "Cancel", 100, 50)
    @edit_window.back
    return
  end
  if Input.trigger?(Input::C)
    if @input_window.character == nil
      @cheat_word = @edit_window.cheat.downcase

# START EDITING //

#===============================================================================
#===========================
#
#     elsif @cheat_word == "Per iniziare a mettere nuovi trucchi nel gioco."    #Queste sono le combinazioni
#     $game_party.gain_item(Item ID, How many)                      #per inserire altri oggetti
#     $game_party.gain_gold(How many)                               # Per inserire altro oro
#     $game_party.gain_weapon(Weapon ID, How many)                  #Per inserire nuove armi
#     $game_party.gain_armor(Armor ID, How many)                    # Per inserire nuove armature
#     $game_party.actors[Actor ID].learn_skill(Skill ID)            # Per inserire nuove magie
#     $data_system.sounds[1].play                # Questo è il suono di verifica
#
#     Il primo codice deve iniziare con 'if' invece che con 'elsif'!
#
#===============================================================================
#===========================


      if @cheat_word == "iamrich"
        $game_party.gain_gold(9999)       # 9999 Gold
        $data_system.sounds[1].play

      elsif @cheat_word == "ivegoteverything"
        $game_party.gain_weapon(1, 2) # 2x Bronze Sword
        $game_party.gain_armor(21, 1)  # 1x Cotton Robe
        $data_system.sounds[1].play


# STOP EDITING

      else
        Audio.se_play("Audio/SE/" + "Buzzer2", 100, 50)
      end
      $scene = Scene_Map.new
      Graphics.resize_screen(544, 416)
      return
    end
    if @input_window.character == ""
      Audio.se_play("Audio/SE/" + "Buzzer2", 100, 50)
      return
    end
    Audio.se_play("Audio/SE/" + "Decision2", 100, 50)
    @edit_window.add(@input_window.character)
    return
  end
end
end

#==============================================================================
#  Window_Base
#------------------------------------------------------------------------------
#   by BudsieBuds Modificato da Alex'94 & mew2 Adattato per VX da Johnny 97
#==============================================================================

class Window_Base < Window
  def draw_icon_graphic(icon, x, y)
  bitmap = Cache.system("")
  cw = bitmap.width
  ch = bitmap.height
  src_rect = Rect.new(0, 0, cw, ch)
  self.contents.blt(x - cw / 2, y - ch, bitmap, src_rect)
end
end

#==============================================================================
#  Window_CheatsEdit
#------------------------------------------------------------------------------
#   by BudsieBuds Modificato da Alex'94 & mew2 Adattato per VX da Johnny 97
#==============================================================================

class Window_CheatsEdit < Window_Base
#--------------------------------------------------------------------------
# def ?!
#--------------------------------------------------------------------------
attr_reader   :cheat
attr_reader   :index
#--------------------------------------------------------------------------
# def initialize
#--------------------------------------------------------------------------
def initialize
  super(0, 0, 640, 128)
  self.contents = Bitmap.new(width - 32, height - 32)
  self.contents.font.size = $fontsize == nil ? Font.default_size : $fontsize
  self.contents.font.name = $fontface == nil ? Font.default_name : $fontface
  @max_char = 17
  @index = 0
  @cheat = ""
  refresh
  update_cursor_rect
end
#--------------------------------------------------------------------------
#  def add(character)
#--------------------------------------------------------------------------
def add(character)
  if @index < @max_char and character != ""
    @cheat += character
    @index += 1
    refresh
    update_cursor_rect
  end
end
#--------------------------------------------------------------------------
#  def back
#--------------------------------------------------------------------------
def back
  if @index > 0
    name_array = @cheat.split(//)
    @cheat = ""
    for i in 0...name_array.size-1
      @cheat += name_array[i]
    end
    @index -= 1
    refresh
    update_cursor_rect
  end
end
#--------------------------------------------------------------------------
#  def refresh
#--------------------------------------------------------------------------
def refresh
  self.contents.clear
  name_array = @cheat.split(//)
  for i in 0...@max_char
    c = name_array[i]
    if c == nil
      c = "_"
    end
    x = (i + 1) * 32
    self.contents.draw_text(x, 32, 28, 32, c, 1)
  end
  draw_icon_graphic("cheat", 16, 60)
end
#--------------------------------------------------------------------------
#  def update_cursor_rect
#--------------------------------------------------------------------------
def update_cursor_rect
  x = (@index + 1) * 32
  self.cursor_rect.set(x, 32, 28, 32)
end
#--------------------------------------------------------------------------
#  def update
#--------------------------------------------------------------------------
def update
  super
  update_cursor_rect
end
end


#==============================================================================
#  Window_CheatsInput
#------------------------------------------------------------------------------
#   by BudsieBuds Modificato da Alex'94 & mew2 Adattato per VX da Johnny 97
#==============================================================================

class Window_CheatsInput < Window_Base
CHARACTER_TABLE =
[
'A','B','C','D','E',  'F','G','H','I','J',  
'K','L','M','N','O',  'P','Q','R','S','T',  
'U','V','W','X','Y',  'Z','@','"','!','£',  
'$','%','&','/','(',  '<','>','|','[',']',
'#','{','}','©','®',  'a','b','c','d','e',
'f','g','h','i','j',  'k','l','m','n','o',
'p','q','r','s','t',  'u','v','w','x','y',
'z',')','=','?','^',  ',','.','-','_','€',
'1','2','3','4','5',  '6','7','8','9','0',
]
#--------------------------------------------------------------------------
#  def initialize
#--------------------------------------------------------------------------
def initialize
  Graphics.resize_screen(640, 480)
  super(0, 128, 640, 352)
  self.contents = Bitmap.new(width - 32, height - 32)
  self.contents.font.size = $fontsize == nil ? Font.default_size : $fontsize
  self.contents.font.name = $fontface == nil ? Font.default_name : $fontface
  @index = 0
  refresh
  update_cursor_rect
end
#--------------------------------------------------------------------------
#  def character
#--------------------------------------------------------------------------
def character
  return CHARACTER_TABLE[@index]
end
#--------------------------------------------------------------------------
#  def refresh
#--------------------------------------------------------------------------
def refresh
  self.contents.clear
  for i in 0...90
    x = 140 + i / 5 / 9 * 180 + i % 5 * 32
    y = i / 5 % 9 * 32
    self.contents.draw_text(x, y, 32, 32, CHARACTER_TABLE[i], 1)
  end
  self.contents.draw_text(428, 9 * 32, 48, 32, "OK", 1)

  end
#--------------------------------------------------------------------------
#  def update_cursor_rect
#--------------------------------------------------------------------------
def update_cursor_rect
  if @index >= 90
    self.cursor_rect.set(428, 9 * 32, 48, 32)
  else
    x = 140 + @index / 5 / 9 * 180 + @index % 5 * 32
    y = @index / 5 % 9 * 32
    self.cursor_rect.set(x, y, 32, 32)
  end
end
#--------------------------------------------------------------------------
#  def update
#--------------------------------------------------------------------------
def update
  super
  if @index >= 90
    if Input.trigger?(Input::DOWN)
      Audio.se_play("Audio/SE/" + "Cursor", 100, 50)
      @index -= 90
    end
    if Input.repeat?(Input::UP)
      Audio.se_play("Audio/SE/" + "Cursor", 100, 50)
      @index -= 90 - 40
    end
  else
    if Input.repeat?(Input::RIGHT)
      if Input.trigger?(Input::RIGHT) or
         @index / 45 < 3 or @index % 5 < 4
        Audio.se_play("Audio/SE/" + "Cursor", 100, 50)
        if @index % 5 < 4
          @index += 1
        else
          @index += 45 - 4
        end
        if @index >= 90
          @index -= 90
        end
      end
    end
    if Input.repeat?(Input::LEFT)
      if Input.trigger?(Input::LEFT) or
         @index / 45 > 0 or @index % 5 > 0
        Audio.se_play("Audio/SE/" + "Cursor", 100, 50)
        if @index % 5 > 0
          @index -= 1
        else
          @index -= 45 - 4
        end
        if @index < 0
          @index += 90
        end
      end
    end
    if Input.repeat?(Input::DOWN)
      Audio.se_play("Audio/SE/" + "Cursor", 100, 50)
      if @index % 45 < 40
        @index += 5
      else
        @index += 90 - 40
      end
    end
    if Input.repeat?(Input::UP)
      if Input.trigger?(Input::UP) or @index % 45 >= 5
        Audio.se_play("Audio/SE/" + "Cursor", 100, 50)
        if @index % 45 >= 5
          @index -= 5
        else
          @index += 90
        end
      end
    end
    if Input.repeat?(Input::L) or Input.repeat?(Input::R)
      Audio.se_play("Audio/SE/" + "Cursor", 100, 50)
      if @index < 45
        @index += 45
      else
        @index -= 45
      end
    end
  end
  update_cursor_rect
end
end
[/SPOILER]


DEMO:
DOWNLOAD

BUG E CONFLITTI NOTI:
Nessuno

AGGIORNAMENTI:
Nessuno

Per qualsiasi problema basta scrivere!
 
Rispondi
#2
grazie mille!
No johnny.
 
Rispondi
#3
no johnny cosa? non ho capito xD

EDIT: ho capito xD non ci sono template... comunque, di niente!! Big Grin
 
Rispondi
#4
Scusa come funziona? l'ho messo sotto materials ma come si apre la barra di text per scrivere il codice?
 
Rispondi
  


Vai al forum:


Browsing: 1 Ospite(i)