Jump to content
Rpg²S Forum

redXIII

Utenti
  • Posts

    65
  • Joined

  • Last visited

Posts posted by redXIII

  1. ciao a tutti mi potete per favore dare una mano con uno script...

    vi spiego: ho preso il menu di ProGM ispirato a final fantasy 12 e volevo madificare alcune cose, cioè alcuni cambiamenti li ho fatti gia da me ma qualcosa non mi funziona...

    ora vi illustro il probblema:

    Volevo modificare la classe mappa, nel menu:

    Attualmente il comando apre un disegno o picture, che viene posto come sfondo al menu

    io invece volevo far sì che teletrasportasse il pg in una mappa

    così ho pensato di usare un switch...

    ho usato questo codice per attivare la switch nello script:

    $game_switches[008] = true

    ora il probblema è che non vuole partire e mi dà errore e non capisco il perché...mi potete dera una mano?

    # ***CMS***
    # Ispirato a FFXII.
    # By ProGM
    class Window_Base2 < Window_Base
    def draw_actor_face(actor, x, y)
    bitmap = RPG::Cache.picture(actor.name)
    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
    def draw_actor_level(actor, x, y)
    self.contents.font.color = normal_color
    self.contents.font.size = 40
    self.contents.font.name = "Addled"
    if actor.level < 10
    self.contents.draw_text(x + 32, y, 32, 32, "0" + actor.level.to_s, 2, 2)
    else
    self.contents.draw_text(x + 32, y, 32, 32, actor.level.to_s, 2, 2)
    end
    self.contents.font.size = $fontsize
    self.contents.font.name = $fontface
    end
    def draw_actor_exp(actor, x, y)
    self.contents.font.color = system_color
    self.contents.draw_text(x, y, 40, 32, "EXP")
    self.contents.font.color = normal_color
    self.contents.draw_text(x + 48, y, 84, 32, actor.exp_s, 1, 2)
    self.contents.font.color = Color.new(120, 120, 120)
    if actor.exp_s.to_i < 10
    self.contents.font.color = Color.new(255, 255, 255, 120)
    self.contents.draw_text(x + 40, y, 84, 32, "0000", 0, 2)
    elsif actor.next_exp_s.to_i < 100
    self.contents.draw_text(x + 40, y, 84, 32, "000", 0, 2)
    elsif actor.next_exp_s.to_i < 1000
    self.contents.draw_text(x + 40, y, 84, 32, "00", 0, 2)
    elsif actor.next_exp_s.to_i < 10000
    self.contents.draw_text(x + 40, y, 84, 32, "0", 0, 2)
    end
    self.contents.font.color = normal_color
    
    x = x + 140
    self.contents.font.color = system_color
    self.contents.draw_text(x - 3, y, 40, 32, "NEXT")
    self.contents.font.color = normal_color
    self.contents.draw_text(x + 42, y, 84, 32, actor.next_exp_s, 1, 2)
    self.contents.font.color = Color.new(120, 120, 120)
    if actor.next_exp_s.to_i < 10
    self.contents.font.color = Color.new(255, 255, 255, 120)
    self.contents.draw_text(x + 40, y, 84, 32, "0000", 0, 2)
    elsif actor.next_exp_s.to_i < 100
    self.contents.draw_text(x + 40, y, 84, 32, "000", 0, 2)
    elsif actor.next_exp_s.to_i < 1000
    self.contents.draw_text(x + 40, y, 84, 32, "00", 0, 2)
    elsif actor.next_exp_s.to_i < 10000
    self.contents.draw_text(x + 40, y, 84, 32, "0", 0, 2)
    end
    self.contents.font.color = normal_color
    end
    def draw_actor_hp(actor, x, y, width = 144)
    # Draw "HP" text string
    self.contents.draw_text(x + 80, y - 25, 48, 32, "HP/Max", 0, 2)
    # Calculate if there is draw space for MaxHP
    if width - 32 >= 108
    hp_x = x + width - 108
    flag = true
    elsif width - 32 >= 48
    hp_x = x + width - 48
    flag = false
    end
    # Draw HP
    self.contents.font.size = 33
    self.contents.font.color = actor.hp == 0 ? knockout_color :
    actor.hp <= actor.maxhp / 4 ? crisis_color : normal_color
    self.contents.draw_text(hp_x, y - 6, 48, 32, actor.hp.to_s, 2, 2)
    # Draw MaxHP
    if flag
    self.contents.font.color = normal_color
    self.contents.font.size = $fontsize
    self.contents.draw_text(hp_x + 48, y, 12, 32, "/", 1, 2)
    self.contents.draw_text(hp_x + 60, y, 48, 32, actor.maxhp.to_s, 0, 2)
    end
    end
    def draw_actor_sp(actor, x, y, width = 144)
    # Draw "SP" text string
    self.contents.draw_text(x + 80, y - 25, 48, 32, "SP/Max", 0, 2)
    # Calculate if there is draw space for MaxHP
    if width - 32 >= 108
    sp_x = x + width - 108
    flag = true
    elsif width - 32 >= 48
    sp_x = x + width - 48
    flag = false
    end
    # Draw SP
    self.contents.font.color = actor.sp == 0 ? knockout_color :
    actor.sp <= actor.maxsp / 4 ? crisis_color : normal_color
    self.contents.font.size = 33
    self.contents.draw_text(sp_x, y - 6, 48, 32, actor.sp.to_s, 2, 2)
    # Draw MaxSP
    if flag
    self.contents.font.color = normal_color
    self.contents.font.size = $fontsize
    self.contents.draw_text(sp_x + 48, y, 12, 32, "/", 1, 2)
    self.contents.draw_text(sp_x + 60, y, 48, 32, actor.maxsp.to_s, 0, 2)
    end
    end
    def draw_actor_parameter(actor, x, y, type)
    case type
    when 0
    parameter_name = $data_system.words.atk
    parameter_value = actor.atk
    when 1
    parameter_name = $data_system.words.pdef
    parameter_value = actor.pdef
    when 2
    parameter_name = $data_system.words.mdef
    parameter_value = actor.mdef
    when 3
    parameter_name = $data_system.words.str
    parameter_value = actor.str
    when 4
    parameter_name = $data_system.words.dex
    parameter_value = actor.dex
    when 5
    parameter_name = $data_system.words.agi
    parameter_value = actor.agi
    when 6
    parameter_name = $data_system.words.int
    parameter_value = actor.int
    end
    self.contents.font.color = system_color
    self.contents.draw_text(x, y, 120, 32, parameter_name)
    self.contents.font.color = normal_color
    self.contents.draw_text(x + 120, y, 36, 32, parameter_value.to_s, 2)
    end
    end
    class Window_Selectable2 < Window_Base2
    attr_reader :index # cursor position
    attr_reader :help_window # help window
    def initialize(x, y, width, height)
    super(x, y, width, height)
    @item_max = 1
    @column_max = 1
    @index = -1
    end
    def index=(index)
    @index = index
    if self.active and @help_window != nil
    update_help
    end
    update_cursor_rect
    end
    def row_max
    return (@item_max + @column_max - 1) / @column_max
    end
    def top_row
    return self.oy / 32
    end
    def top_row=(row)
    if row < 0
    row = 0
    end
    if row > row_max - 1
    row = row_max - 1
    end
    self.oy = row * 32
    end
    def page_row_max
    return (self.height - 32) / 32
    end
    def page_item_max
    return page_row_max * @column_max
    end
    def help_window=(help_window)
    @help_window = help_window
    if self.active and @help_window != nil
    update_help
    end
    end
    def update_cursor_rect
    if @index < 0
    self.cursor_rect.empty
    return
    end
    row = @index / @column_max
    if row < self.top_row
    # Scroll so that current row becomes top row
    self.top_row = row
    end
    # If current row is more to back than back row
    if row > self.top_row + (self.page_row_max - 1)
    # Scroll so that current row becomes back row
    self.top_row = row - (self.page_row_max - 1)
    end
    # Calculate cursor width
    cursor_width = self.width / @column_max - 32
    # Calculate cursor coordinates
    x = @index % @column_max * (cursor_width + 32)
    y = @index / @column_max * 32 - self.oy
    # Update cursor rectangle
    self.cursor_rect.set(x, y, cursor_width, 32)
    end
    def update
    super
    # If cursor is movable
    if self.active and @item_max > 0 and @index >= 0
    # If pressing down on the directional buttons
    if Input.repeat?(Input::DOWN)
    if (@column_max == 1 and Input.trigger?(Input::DOWN)) or
    @index < @item_max - @column_max
    # Move cursor down
    $game_system.se_play($data_system.cursor_se)
    @index = (@index + @column_max) % @item_max
    end
    end
    # If the up directional button was pressed
    if Input.repeat?(Input::UP)
    if (@column_max == 1 and Input.trigger?(Input::UP)) or
    @index >= @column_max
    $game_system.se_play($data_system.cursor_se)
    @index = (@index - @column_max + @item_max) % @item_max
    end
    end
    # If the right directional button was pressed
    if Input.repeat?(Input::RIGHT)
    if @column_max >= 2 and @index < @item_max - 1
    # Move cursor right
    $game_system.se_play($data_system.cursor_se)
    @index += 1
    end
    end
    # If the left directional button was pressed
    if Input.repeat?(Input::LEFT)
    # If column count is 2 or more, and cursor position is more back than 0
    if @column_max >= 2 and @index > 0
    # Move cursor left
    $game_system.se_play($data_system.cursor_se)
    @index -= 1
    end
    end
    # If R button was pressed
    if Input.repeat?(Input::R)
    # If bottom row being displayed is more to front than bottom data row
    if self.top_row + (self.page_row_max - 1) < (self.row_max - 1)
    # Move cursor 1 page back
    $game_system.se_play($data_system.cursor_se)
    @index = [@index + self.page_item_max, @item_max - 1].min
    self.top_row += self.page_row_max
    end
    end
    # If L button was pressed
    if Input.repeat?(Input::L)
    # If top row being displayed is more to back than 0
    if self.top_row > 0
    # Move cursor 1 page forward
    $game_system.se_play($data_system.cursor_se)
    @index = [@index - self.page_item_max, 0].max
    self.top_row -= self.page_row_max
    end
    end
    end
    # Update help text (update_help is defined by the subclasses)
    if self.active and @help_window != nil
    update_help
    end
    # Update cursor rectangle
    update_cursor_rect
    end
    end
    class Window_MenuStatus < Window_Selectable2
    def initialize
    super(0, 0, 430, 416)
    self.contents = New_Bitmap.new(width - 32, height - 32)
    self.contents.font.name = $fontface
    self.contents.font.size = $fontsize
    refresh
    self.active = false
    self.index = -1
    end
    def refresh
    self.contents.clear
    @item_max = $game_party.actors.size
    for i in 0...$game_party.actors.size
    x = 64
    y = i * 90
    actor = $game_party.actors[i]
    draw_actor_face(actor, x - 30, y + 38)
    draw_actor_level(actor, x - 32, y)
    draw_actor_exp(actor, x, y + 35)
    draw_actor_hp(actor, x + 50, y + 16)
    draw_actor_sp(actor, x + 180, y + 16)
    end
    end
    def update_cursor_rect
    if @index < 0
    self.cursor_rect.empty
    else
    self.cursor_rect.set(0, @index * 90 - 7, self.width - 32, 70)
    end
    end
    end
    class Window_Help2 < Window_Base
    def initialize
    super(-10, 0, 672, 64)
    self.contents = Bitmap.new(width - 32, height - 32)
    self.contents.font.name = $fontface
    self.contents.font.size = $fontsize
    end
    def set_text(text, align = 0)
    # If at least one part of text and alignment differ from last time
    if text != @text or align != @align
    # Redraw text
    self.contents.clear
    self.contents.font.color = normal_color
    self.contents.blt(0, 3, RPG::Cache.icon("Help.png"), Rect.new(0, 0, 32, 24))
    self.contents.draw_text(36, 0, self.width - 40, 32, text, align)
    @text = text
    @align = align
    end
    self.visible = true
    end
    def choice(id)
    case id
    when 0
    set_text("Per inserire o escudere dal gruppo i vari personaggi.")
    when 1
    set_text("Per dare uno sguardo ai nostri personaggi e alle loro condizioni.")
    when 2
    set_text("Per dotare i personaggi di nuove armi o armature.")
    when 3
    set_text("Qui è contenuto l'elenco di oggetti posseduti dal gruppo.")
    when 4
    set_text("Qui verranno mostrate le abilita di ogni eroe.")
    when 5
    set_text("La mappa principale.")
    when 6
    set_text("Per salvare la partita.")
    when 7
    set_text("Per caricare una partita salvata.")
    when 8
    set_text("Per uscire dal gioco.")
    end
    end
    end
    class New_Bitmap < Bitmap
    def draw_text(x, y, w, h, text, m = 0, command = 0)
    case command
    when 0
    super (x, y, w, h, text, m)
    when 1
    old_color = font.color.dup
    font.color = Color.new(0, 0, 0, 120)
    super (x - 2, y + 2, w, h, text, m)
    font.color = old_color
    super (x, y, w, h, text, m)
    when 2
    old_color = font.color.dup
    font.color = Color.new(0, 0, 0, 255)
    super (x - 1, y - 1, w, h, text, m)
    super (x - 1, y + 1, w, h, text, m)
    super (x + 1, y - 1, w, h, text, m)
    super (x + 1, y + 1, w, h, text, m)
    font.color = old_color
    super (x, y, w, h, text, m)
    end
    end
    end
    class Scene_Menu
    def initialize(menu_index = 0)
    @menu_index = menu_index
    end
    def main
    @background = Sprite.new
    @background.bitmap = RPG::Cache.picture("BackGround.png")
    # Make command window
    s1 = "1 Battle Member"
    s2 = "2 Status"
    s3 = "3 Inventario"
    s4 = "4 Oggetti"
    s5 = "5 Magie"
    s6 = "6 Mappa"
    s7 = "7 Salva"
    s8 = "8 Carica"
    s9 = "9 Esci"
    @command_window = Window_Command.new(140, [s1, s2, s3, s4, s5, s6, s7, s8, s9])
    @command_window.index = @menu_index
    @command_window.x = 20
    @command_window.y = 64
    @command_window.opacity = 76
    # If number of party members is 0
    if $game_party.actors.size == 0
    # Disable items, skills, equipment, and status
    @command_window.disable_item(0)
    @command_window.disable_item(1)
    @command_window.disable_item(2)
    @command_window.disable_item(3)
    end
    # If save is forbidden
    if $game_system.save_disabled
    # Disable save
    @command_window.disable_item(4)
    end
    @help_window = Window_Help2.new
    @help_window.opacity = 0
    # Make status window
    @status_window = Window_MenuStatus.new
    @status_window.x = 180
    @status_window.y = 64
    @status_window.opacity = 0
    # Make gold window
    @gold_window = Window_Gold.new
    @gold_window.x = 20
    @gold_window.y = 400
    @gold_window.opacity = 76
    # Execute transition
    Graphics.transition
    # Main loop
    loop do
    # Update game screen
    Graphics.update
    # Update input information
    Input.update
    # Frame update
    update
    # Abort loop if screen is changed
    if $scene != self
    break
    end
    end
    # Prepare for transition
    Graphics.freeze
    # Dispose of windows
    @background.dispose
    @help_window.dispose
    @command_window.dispose
    @status_window.dispose
    @gold_window.dispose
    @map.dispose if @map != nil
    end
    def update
    # Update windows
    @command_window.update
    @status_window.update
    @gold_window.update
    @help_window.choice(@command_window.index)
    # If command window is active: call update_command
    if @command_window.active
    update_command
    return
    end
    # If status window is active: call update_status
    if @status_window.active
    update_status
    return
    end
    end
    def update_command
    # If B button was pressed
    if Input.trigger?(Input::B)
    # Play cancel SE
    $game_system.se_play($data_system.cancel_se)
    # Switch to map screen
    $scene = Scene_Map.new
    return
    end
    # If C button was pressed
    if Input.trigger?(Input::C)
    # If command other than save or end game, and party members = 0
    if $game_party.actors.size == 0 and @command_window.index < 4
    # Play buzzer SE
    $game_system.se_play($data_system.buzzer_se)
    return
    end
    # Branch by command window cursor position
    case @command_window.index
    when 3 # item mod
    # Play decision SE
    $game_system.se_play($data_system.decision_se)
    # Switch to item screen
    $scene = Scene_Item.new
    when 0
    # Play decision SE
    $game_system.se_play($data_system.decision_se)
    # Switch to item screen
    $scene = Scene_Battler.new
    when 4 # skill mod
    # Play decision SE
    $game_system.se_play($data_system.decision_se)
    # Make status window active
    @command_window.active = false
    @status_window.active = true
    @status_window.index = 0
    when 5 # map mod
    $game_system.se_play($data_system.decision_se)
    $game_switches[008] = true
    $scene = Scene_Map.new
    when 2 # equipment mod
    # Play decision SE
    $game_system.se_play($data_system.decision_se)
    # Make status window active
    @command_window.active = false
    @status_window.active = true
    @status_window.index = 0
    when 1 # status mod
    # Play decision SE
    $game_system.se_play($data_system.decision_se)
    # Make status window active
    @command_window.active = false
    @status_window.active = true
    @status_window.index = 0
    when 6 # save mod
    # If saving is forbidden
    if $game_system.save_disabled
    # Play buzzer SE
    $game_system.se_play($data_system.buzzer_se)
    return
    end
    # Play decision SE
    $game_system.se_play($data_system.decision_se)
    # Switch to save screen
    $scene = Scene_Save.new
    when 7 # load mod
    $game_system.se_play($data_system.decision_se)
    $scene = Scene_Load.new(true)
    when 8 # end game mod
    # Play decision SE
    $game_system.se_play($data_system.decision_se)
    # Switch to end game screen
    $scene = Scene_End.new
    end
    return
    end
    end
    def update_status
    # If B button was pressed
    if Input.trigger?(Input::B)
    # Play cancel SE
    $game_system.se_play($data_system.cancel_se)
    # Make command window active
    @command_window.active = true
    @status_window.active = false
    @status_window.index = -1
    return
    end
    # If C button was pressed
    if Input.trigger?(Input::C)
    # Branch by command window cursor position
    case @command_window.index
    when 4 # skill
    # If this actor's action limit is 2 or more
    if $game_party.actors[@status_window.index].restriction >= 2
    # Play buzzer SE
    $game_system.se_play($data_system.buzzer_se)
    return
    end
    # Play decision SE
    $game_system.se_play($data_system.decision_se)
    # Switch to skill screen
    $scene = Scene_Skill.new(@status_window.index)
    when 2 # equipment
    # Play decision SE
    $game_system.se_play($data_system.decision_se)
    # Switch to equipment screen
    $scene = Scene_Equip.new(@status_window.index)
    when 1 # status
    # Play decision SE
    $game_system.se_play($data_system.decision_se)
    # Switch to status screen
    $scene = Scene_Status.new(@status_window.index)
    end
    return
    end
    end
    end
    class Game_Actor < Game_Battler
    attr_accessor :active
    alias other_setup setup
    def setup(actor_id)
    other_setup(actor_id)
    @active = true
    end
    end
    class Scene_Battle
    def phase3_next_actor
    begin
    if @active_battler != nil
    @active_battler.blink = false
    end
    if @actor_index == $game_party.actors.size-1
    start_phase4
    return
    end
    @actor_index += 1
    if $game_party.actors[@actor_index].active == false
    @actor_index += 1
    $game_party.actors[@actor_index].current_action.basic == 1 unless @actor_index == $game_party.actors.size
    end
    if @actor_index == $game_party.actors.size
    start_phase4
    return
    end
    @active_battler = $game_party.actors[@actor_index]
    @active_battler.blink = true
    end until @active_battler.inputable?
    phase3_setup_command_window
    end
    end
    class Scene_Battler
    def main
    @names=[]
    for i in $game_party.actors
    @names.push(i.name)
    end
    @command_window = Window_Command.new(200, @names)
    for i in 0...$game_party.actors.size
    if $game_party.actors[i].active == false
    @command_window.disable_item(i)
    end
    end
    @command_window.x = 120
    @command_window.y = 100
    # Execute transition
    Graphics.transition
    # Main loop
    loop do
    # Update game screen
    Graphics.update
    # Update input information
    Input.update
    # Frame update
    update
    # Abort loop if screen is changed
    if $scene != self
    break
    end
    end
    # Prepare for transition
    Graphics.freeze
    @command_window.dispose
    end
    def update
    @command_window.update
    if Input.trigger?(Input::C)
    case @command_window.index
    when 0
    if $game_party.actors[0].active == false
    $game_party.actors[0].active = true
    else
    $game_party.actors[0].active = false
    end
    when 1
    if $game_party.actors[1].active == false
    $game_party.actors[1].active = true
    else
    $game_party.actors[1].active = false
    end
    when 2
    if $game_party.actors[2].active == false
    $game_party.actors[2].active = true
    else
    $game_party.actors[2].active = false
    end
    when 3
    if $game_party.actors[3].active == false
    $game_party.actors[3].active = true
    else
    $game_party.actors[3].active = false
    end
    end
    @command_window.dispose
    @names=[]
    for i in $game_party.actors
    @names.push(i.name)
    end
    @command_window = Window_Command.new(200, @names)
    for i in 0...$game_party.actors.size
    if $game_party.actors[i].active == false
    @command_window.disable_item(i)
    end
    end
    @command_window.x = 120
    @command_window.y = 100
    end
    if Input.trigger?(Input::B)
    $scene = Scene_Menu.new(0)
    end
    end
    end
    class Sprite_Battler < RPG::Sprite
    alias old_update update
    def update
    old_update
    self.opacity = 120 if @battler.is_a?(Game_Actor) and @battler.active == false
    self.color = Color.new(255, 255, 255, 90) if @battler.is_a?(Game_Actor) and @battler.active == false
    end
    end
    class Scene_Load
    alias old_initialize initialize
    def initialize(menu = false)
    @menu = menu
    old_initialize
    end
    def on_cancel
    $game_system.se_play($data_system.cancel_se)
    if @menu
    $scene = Scene_Menu.new(7)
    else
    $scene = Scene_Title.new
    end
    end
    end

  2. Grazie...di tutto calcola e quel coso della nebbia non l'avevo proprio visto...cmq per gli script io stavo pensando non è che si può cambiare il numero della velocità direttamente sullo script senza crearlo uno nuovo??
  3. avrei un paio di domande che saranno pure stupide ma non sono capace e risolvere...

    1-come faccio a far muovere la nebbia...

    2-nel rpg2000 si poteva far muovere il panorama qui non si può esiste uno script...se esiste non lo trovato...

    3-come faccio a diminuire la velocità del pg, non con gli eventi, vorrei un andatura tra piano e veloce, una via di mezzo

    mi sapreste aiutare

  4. grazie per i consigli moltheni riguardo i titlese sono realizzati con 3d studio max non li ho rippati da un gioco, poi per il personaggiohai ragione ho gia effettuato le dovute modifiche come mi hanno suggerito pure gli altri, poi per lo script lo gia ideato,dallo screen non si vede niente ma nel gioco il pg se si allontana diventa piccolo e se si avvicina diventa grande. per quanto riguarda la poca ita nella città e perchè ancora devo riempire il posto con i chara abbitanti questo screen lo usato come prova...cmq grazie per i consigli...
  5. si lo so i Chara stonano ma purtoppo in 3d non ci sono capace di farli o merglio li faccio ma fanno cacare... riguardo alla scritta la L e il fon che fa così e non sei il primo che mi dice che è poco leggibile...

    grazie per i consigli

  6. Dopo un lungo periodo di preparazione studio e molto altro vi presentiamo l'imperdibile GDR della Phoenix soft che con questo progetto rompe lo schema 2d per iniziare sempre con Rpg maker il nuovo progetto in 3d!!

    SIAMO LIETI DI PRESENTARE LAST LEGEND nuova serie.

    In passato abbiamo fatto dei progetti anche se non li conoscete perchè abbiamo deciso di iniziare direttamente con questo gioco.

    No vi diciamo quasi niente in questa anteprima vi mostrerò solo qualche screen del gioco con qualche nostro commento, la data di rilascio del gioco e molto lontana anche perchè stiamo ancora finendo i titleset.

    Ecco il logo e il nome di questo progetto...

    http://img473.imageshack.us/img473/4876/002kg0.jpg

    uno screen di una mappa nel gioco

    ecco invece uno screen di una battaglia

    poi giudicate voi...commentate...pure critiche

×
×
  • Create New...