Partagez
Aller en bas
IceCoffee
IceCoffee
Membre

Nombre de messages : 49
Age : 20
Localisation : Bordeaux
Distinction : aucune
Date d'inscription : 03/08/2011

Placer script Achievement Omega7 dans menu [Résolu] Empty Placer script Achievement Omega7 dans menu [Résolu]

le Mar 23 Aoû 2011 - 16:29
Bonjour vous savez comment placer le script Achievement Omega7 dans le menu (celui de rmvx)? c'est ce script merci d'avance
Spoiler:
Code:

# =============================================================================
# Game Achievements
# Version: 1.1
# Author: Omegas7
# Site: http://omegas7.blogspot.com    ||      http://omegadev.biz
# -----------------------------------------------------------------------------
# Features:
#      > 1.1
#          > Défi relié à un interrupteur
#          > Affichage d'une barre de signalement quand un défi est réussi
#          > Menu trier en trois catégories, Tous, Débloqués et Bloqués
#          > Descritions du défi
#          > La descriptions des défins peut avoir une image
#          > chaque défi est représenté par une image de format 90x90
#          > Image de background pour le menu
#          >Image pour  défi encore bloqués (90x90)
#          > Le curseur de choix du défi est une image (90x90)
#          > Image de barre pour signaler un défi complété
#          > images pour le status "complété" ou "Non complété" pour la description du défis
# -----------------------------------------------------------------------------
# Instructions
#    Tout d'abord, Voici ce qui sera le template de base pour vos défis :
#
#    Achievements[ID] = ["Nom","Nom de l'image",ID de l'interrupteur]
#    Descriptions[ID] = ["Ligne1","Ligne2","Ligne3"]
#
#    ID = ID du défis pour le fonctionnement du script. Chaque défis a une seul et unique ID.
#    Commencez le décompte des ID pour les défis à partir de 0.
#    "Nom" => Nom du défis, a mettre entre guillemets "  ".
#    "Nom de l'image" => nom de l'image de format 90x90 situé dans le dossier [pictures]
#                            à mettre ente guillemets " "
#    ID de l'interrupteur => Id de l'interrupteur (en évent) que vous voulez reliez à ce défis.
#    Vous povez ajouter autant de ligne de description que vous voudrez..
#    Chaque ligne de description est à mettre entre guillemets " ", et chaque ligne est séparée par une virgule.
# =============================================================================

module AchievementsDATA
  MenuBackground = "AchievementBG"    # dans le dossier [pictures]
  LockedTrohyGraphic = "LockedTrophy"  # dans le dossier [pictures] et de format 90x90
  TrophyCursorGraphic = "TrophyCursor" # dans le dossier [pictures] et de format 90x90
  DescriptionScreenGraphic = "DescriptionScreen" #dans le dossier [pictures]
  AchievementBarGraphic = "AchievementBar"  #dans le dossier [pictures]
 
  AchievementIsCompleteGraphic = "AchievementCompleted" # dans le dossier [pictures]
  AchievementIsIncompleteGraphic = "AchievementIncomplete" # dans le dossier [pictures]
  # C'est deux dernières images apparaitrons en bas à droite de l'écran
 
  Achievements = []
  Descriptions = []
 
  Achievements[0] = ["Greedy Ralph","Trophy",1]
  Descriptions[0] = ["Ouvrir 5 coffres","Il connut de tous que c'est du niveau d'un noob !"]
 
  Achievements[1] = ["Defeat Gary","Trophy",2]
  Descriptions[1] = ["Battre Evil Gary dans le jardin!"]
 
  Achievements[2] = ["LOVE OMEGAS7","Trophy",3]
  Descriptions[2] = ["Montrer son amour pour omega7 à un étranger."]
end

class Achievements < Scene_Base
  include AchievementsDATA
  def initialize
    create_background
    create_menu
    create_trohpies
    @view = 'NONE'
    @chosen = false
    @locked = 0
    @unlocked = 0
    for i in 0...Achievements.size
      if $game_switches[Achievements[i][2]]
        @unlocked += 1
      else
        @locked += 1
      end
    end
  end
  def update
    updateInput
    updateMenus if !@chosen
    @chosen = false
  end
  def updateMenus
    case @view
    when 'NONE'
      @menu.update
    when 'TROPHIES'
      @trophyMenu.update
    end
  end
  def updateInput
    if Input.trigger?(Input::C) && @view == 'NONE'
      case @menu.index
      when 0  # All
        @view = 'TROPHIES'
        @trophyMenu.setView('Tous')
        @trophyMenu.setOpacity(255)
        Sound.play_decision
        @chosen = true
        return
      when 1  # Unlocked
        if @unlocked <= 0
          Sound.play_buzzer
          return
        end
        @view = 'TROPHIES'
        @trophyMenu.setView('Débloqués')
        @trophyMenu.setOpacity(255)
        Sound.play_decision
        @chosen = true
        return
      when 2  # Locked
        if @locked <= 0
          Sound.play_buzzer
          return
        end
        @view = 'TROPHIES'
        @trophyMenu.setView('Bloqués')
        @trophyMenu.setOpacity(255)
        Sound.play_decision
        @chosen = true
        return
      when 3  # Exit
        @trophyMenu.finish
        @bg.dispose
        @menu.dispose
        $scene = Scene_Map.new
        @chosen = true
        return
      end
    end
    if Input.trigger?(Input::B) && @view == 'NONE'
      @trophyMenu.finish
      @bg.dispose
      @menu.dispose
      $scene = Scene_Map.new
      @chosen = true
      return
    end
    if Input.trigger?(Input::B) && @view == 'TROPHIES' && !@trophyMenu.description?
      @view = 'NONE'
      @trophyMenu.setOpacity(0)
      Sound.play_cancel
    end
  end
  def create_background
    @bg = Sprite_Base.new
    @bg.bitmap = Cache.picture(MenuBackground)
    @bg.z = 0
  end
  def create_menu
    commands = ['Tous','Débloqués','Bloqués','Annuler']
    @menu = Window_Command.new(130,commands)
    @menu.contents.font.size = 20
    @menu.refresh
    @menu.opacity = 0
    @menu.z = 9
  end
  def create_trohpies
    @trophyMenu = AchievementTrophyMenuManager.new
    @trophyMenu.setOpacity(0)
  end
end

class AchievementTrophyMenuManager
  include AchievementsDATA
  def initialize
    @trophies = []
    draw_trophies('Tous')
    @moved_y = 0
    if !@trophies.empty?
      @cursor = Sprite_Base.new
      @cursor.bitmap = Cache.picture(TrophyCursorGraphic)
      @cursor.z = 2
      @cursor.x,@cursor.y = @trophies[0].sprite.x,@trophies[0].sprite.y
    end
    @cursorIndex = 0
    @toBeY = 0
    @viewingDescription = false
    @description = Sprite_Base.new
    @description.bitmap = Cache.picture(DescriptionScreenGraphic)
    @description.z = 100
    @description.opacity = 0
    @descriptionWindow = Window_Base.new(30,90,544 - 60,270)
    @descriptionWindow.opacity = 0
    @name = Window_Base.new(12,-12,300,90)
    @name.contents.font.size = 18
    @name.opacity = 0
    @block = false
  end
  def draw_trophies(view)
    @trophies = []
    @chart = []
    trueIndex = 0
    for i in 0...Achievements.size
      if $game_switches[Achievements[i][2]]
        if view == 'Tous' || view == 'Débloqués'
          @trophies.push(AchievementTrophy.new(trueIndex,true,Achievements[i][0]))
          @chart.push(Descriptions[i])
          trueIndex += 1
        end
      else
        if view == 'Tous' || view == 'Bloqués'
          @trophies.push(AchievementTrophy.new(trueIndex,false,Achievements[i][0]))
          @chart.push(Descriptions[i])
          trueIndex += 1
        end
      end
    end
  end
  def update
    if !@viewingDescription
      if Input.trigger?(Input::DOWN)
        Sound.play_cursor
        @cursorIndex += 4
      end
      if Input.trigger?(Input::UP)
        Sound.play_cursor
        @cursorIndex -= 4
      end
      if Input.trigger?(Input::RIGHT)
        Sound.play_cursor
        @cursorIndex += 1
      end
      if Input.trigger?(Input::LEFT)
        Sound.play_cursor
        @cursorIndex -= 1
      end
      checkCursorPosition
      if Input.trigger?(Input::C)
        @descriptionWindow.contents.clear
        @name.contents.clear
        @description.opacity = 255
        for i in 0...@chart[@cursorIndex].size
          @descriptionWindow.contents.draw_text(0,(20 * i),500,20,@chart[@cursorIndex][i].to_s)
        end
        @viewingDescription = true
        @block = true
        @name.contents.draw_text(0,0,300,20,@trophies[@cursorIndex].name)
        @completed = Sprite_Base.new
        if @trophies[@cursorIndex].obtained
          @completed.bitmap = Cache.picture(AchievementIsCompleteGraphic)
        else
          @completed.bitmap = Cache.picture(AchievementIsIncompleteGraphic)
        end
        @completed.x = 544 - @completed.width
        @completed.y = 416 - @completed.height
        @completed.z = 300
        return
      end
    else
      if (Input.trigger?(Input::C) || Input.trigger?(Input::B)) && !@block
        Sound.play_cancel
        @descriptionWindow.contents.clear
        @name.contents.clear
        @description.opacity = 0
        @viewingDescription = false
        @completed.dispose
        @completed = nil
        return
      end
    end
    @block = false
    if Input.trigger?(Input::L)
      print @description.opacity
    end
  end
  def description?
    return @viewingDescription
  end
  def checkCursorPosition
    if @cursorIndex < 0
      @cursorIndex = 0
    end
    if @cursorIndex > @trophies.size - 1
      @cursorIndex = @trophies.size - 1
    end
    @toBeY = @trophies[@cursorIndex].sprite.y
    a = false
    while @toBeY >= 10 + (90 * 4)
      moveY(-90)
      a = true
    end
    if !a
      while @toBeY < 10
        moveY(90)
      end
    end
    @cursor.x = @trophies[@cursorIndex].sprite.x
    @cursor.y = @trophies[@cursorIndex].sprite.y
  end
  def moveY(y)
    for i in 0...@trophies.size
      @trophies[i].sprite.y += y
      @toBeY += y
    end
  end
  def setOpacity(n)
    for i in 0...@trophies.size
      @trophies[i].sprite.opacity = n
    end
    @cursor.opacity = n
  end
  def setView(view)
    for i in 0...@trophies.size
      @trophies[i].sprite.dispose
      @trophies[i] = nil
    end
    @cursorIndex = 0
    @trophies.compact!
    @chart = []
    draw_trophies(view)
  end
  def finish
    @cursor.dispose
    for i in 0...@trophies.size
      @trophies[i].sprite.dispose
      @trophies[i] = nil
    end
    @trophies.compact!
    @description.dispose
    @descriptionWindow.dispose
    @name.dispose
  end
end

class AchievementTrophy
  include AchievementsDATA
  attr_accessor :sprite
  attr_reader :obtained
  attr_reader :name
  def initialize(index,obtained,name)
    @sprite = Sprite_Base.new
    if obtained
      @sprite.bitmap = Cache.picture(Achievements[index][1])
    else
      @sprite.bitmap = Cache.picture(LockedTrohyGraphic)
    end
    @sprite.z = 1
    @sprite.x = 180 + (90 * (index % 4))
    @sprite.y = 10 + (90 * (index / 4))
    @obtained = obtained
    @name = name
  end
end

class Game_Party
  alias omega_achievements_initialize initialize
  attr_accessor :achievements
  def initialize
    omega_achievements_initialize
    @achievements = []
    for i in 0...AchievementsDATA::Achievements.size
      @achievements.push([AchievementsDATA::Achievements[i][2],
      $game_switches[AchievementsDATA::Achievements[i][2]]])
    end
  end
end

class AchievementBar
  include AchievementsDATA
  attr_reader :finished
  def initialize(id)
    @sprite = Sprite_Base.new
    @sprite.bitmap = Cache.picture(AchievementBarGraphic)
    @sprite.z = 300
    @sprite.x = 272 - (@sprite.width/2)
    @sprite.y = 416 - @sprite.height
    @sprite.zoom_x = 0.1
    @sprite.zoom_y = 0.1
    @timer = -1
    @leaving = false
    @finished = false
  end
  def update
    if @sprite.zoom_x < 1.0
      @sprite.zoom_x += 0.05
      @sprite.zoom_y += 0.05
      if @sprite.zoom_x >= 1.0
        @timer = 140
      end
    end
    if @timer > 0
      @timer -= 1
    else
      if !@leaving && @sprite.zoom_x >= 1.0
        @leaving = true
      end
    end
    if @leaving
      @sprite.opacity -= 3
      if (@sprite.opacity <= 0) && (!@finished)
        finish
      end
    end
  end
  def finish
    @sprite.dispose
    @finished = true
  end
end

class Scene_Map
  alias omegaAchievementInitialize initialize
  alias omegaAchievementUpdate update
  alias omegaAachievementTerminate terminate
  def initialize
    omegaAchievementInitialize
    @achievements = []
  end
  def update
    omegaAchievementUpdate
    for i in 0...@achievements.size
      @achievements[i].update
      if @achievements[i].finished
        @achievements[i] = nil
      end
    end
    @achievements.compact!
  end
  def terminate
    omegaAachievementTerminate
    for i in 0...@achievements.size
      @achievements[i].finish
    end
  end
  def addAchievementBar(id)
    @achievements.push(AchievementBar.new(id))
  end
end

class Game_Interpreter
  alias omegaAchievementsSwitch command_121
  def command_121
    omegaAchievementsSwitch
    if $scene.is_a?(Scene_Map)
      for i in 0...$game_party.achievements.size
        if $game_party.achievements[i][1] != $game_switches[$game_party.achievements[i][0]]
          if $game_switches[$game_party.achievements[i][0].to_i]
            $game_party.achievements[i][1] = $game_switches[$game_party.achievements[i][0]]
            $scene.addAchievementBar(i)
            break
          end
        end
      end
    end
  end
end
l'appel de script est celui-ci:
Code:
$scene = Achievements.new


Dernière édition par Ninoche-La-Brioche le Mar 23 Aoû 2011 - 17:13, édité 1 fois
Docteur Kojy.
Docteur Kojy.
Staffeux retraité

Nombre de messages : 1210
Age : 24
Localisation : si tu dis mon pseudo 3 fois devant un miroir, j'apparais derrière toi !
Distinction : Sauveur préféré de notre chère patrie la communauté

Officieusement le coach-vocal-impresario-choriste-muse-amant de Coco'[Coco' himself Smile]
Attend toujours de le voir apparaitre après avoir dit son pseudo 256 fois devant un miroir [Xak' Placer script Achievement Omega7 dans menu [Résolu] 522164]
Si tu le poses contre ton oreille, tu entends un Sonic Rainboom.
Date d'inscription : 24/02/2008

Placer script Achievement Omega7 dans menu [Résolu] Empty Re: Placer script Achievement Omega7 dans menu [Résolu]

le Mar 23 Aoû 2011 - 17:02
Regarde dans ce topic, tu y trouveras peut être ton bonheur. Merci à Xakux. x)
IceCoffee
IceCoffee
Membre

Nombre de messages : 49
Age : 20
Localisation : Bordeaux
Distinction : aucune
Date d'inscription : 03/08/2011

Placer script Achievement Omega7 dans menu [Résolu] Empty Re: Placer script Achievement Omega7 dans menu [Résolu]

le Mar 23 Aoû 2011 - 17:11
Merci mon sauveur Very Happy
Docteur Kojy.
Docteur Kojy.
Staffeux retraité

Nombre de messages : 1210
Age : 24
Localisation : si tu dis mon pseudo 3 fois devant un miroir, j'apparais derrière toi !
Distinction : Sauveur préféré de notre chère patrie la communauté

Officieusement le coach-vocal-impresario-choriste-muse-amant de Coco'[Coco' himself Smile]
Attend toujours de le voir apparaitre après avoir dit son pseudo 256 fois devant un miroir [Xak' Placer script Achievement Omega7 dans menu [Résolu] 522164]
Si tu le poses contre ton oreille, tu entends un Sonic Rainboom.
Date d'inscription : 24/02/2008

Placer script Achievement Omega7 dans menu [Résolu] Empty Re: Placer script Achievement Omega7 dans menu [Résolu]

le Mar 23 Aoû 2011 - 17:15
No problem. : D C'est résolu, je déplace.
Revenir en haut
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum