Partagez
Aller en bas
Dishi
Dishi
Membre

Nombre de messages : 632
Age : 21
Localisation : Marseille
Distinction : Alias Dichie
Aussi alias Sherifa Luna de la commu' (je suis dichie et d'ailleurs )

Co-créateur du Nyan Xak
[Tétété]

Apprenti Pedobear
[Mémé nova]

Keupiteur de ponctuation.
[un sombre inconnu.]
Date d'inscription : 07/07/2011
https://github.com/paul-roman

Script de quêtes - Omegas7 1.1 Empty Script de quêtes - Omegas7 1.1

le Sam 30 Juil 2011 - 10:46
Salut à tous !
Voici une version évoluée du fameux script de quêtes créé par Omegas7, traduit par moi.

Screenshots (version non traduite) :

Spoiler:
Script de quêtes - Omegas7 1.1 43541192
Script de quêtes - Omegas7 1.1 88648344
Script de quêtes - Omegas7 1.1 42513861
Script de quêtes - Omegas7 1.1 Fdsads

Script :

Spoiler:
Code:
# =============================================================================
# Script de quêtes
# Version: 1.1
# Auteur: Omegas7
# Traduction par Dishi
# Site: http://omegas7.blogspot.com    ||      http://omegadev.biz
# -----------------------------------------------------------------------------
# Ajouts de la versions 1.1:
#          > Quêtes liées à des interrupteurs
#          > Un message apparait lorsque l'interrupteur lié à la quête est activé
#          > Le menu de quêtes est séparé en 3 catégories : toutes quêtes confondues, réussis et inachevées
#          > Description des quêtes
#          > Les descriptions de quêtes peuvent avoir un fond.
#          > Chaque quête est représentée par une image de 90x90 pixels
#          > Le menu est équipé d'une image de fond
#          > Les quêtes inachevées sont liées à une image (90x90)
#          > Le cursor est lié à une image (90x90)
#          > Achievement bar image
#          > Achievement complete & incomplete graphic for description screen
# -----------------------------------------------------------------------------
# Instructions :
#    Voici la formule basique d'une quête
#
#    Achievements[ID] = ["Name","GaphicName",SwitchID]
#    Descriptions[ID] = ["Line1","Line2","Line3"]
#
#    ID => l'ID de la quête que le script doit utiliser.  Chaque quête en a un spécial.
#    ATTENTION : Ne commence pas par "1,2,3", mais par "0,1,2". Commencez donc par zéro !
#    ATTENTION : NE DOIT PAS ÊTRE ENTRE GUILLEMETS !!!

#    "Name" => Le nom de la quête. Doit être entre guillemets.

#    "GraphicnName" => L'image (90x90 pixels) correspondant à votre quête, située dans le dossier Graphics\Picture.
#      Doit être entre guillemets. Deux quêtes peuvent avoir la même image.
#    SwitchID => Le numéro de l'interrupteur correspondant à votre quête
#    Vous pouvez également ajouter une description à votre quête
#    Chaque ligne doit être entre guillemets et séparées par une virgule.
# =============================================================================

# Pour appelez le script, utilisez la formule suivante :
# $scene = Scene_Achievements.new
module AchievementsDATA
  MenuBackground = "AchievementBG"    # Dossier Pictures
  LockedTrohyGraphic = "LockedTrophy"  # Dossier Pictures (90x90)
  TrophyCursorGraphic = "TrophyCursor" # Dossier Pictures (90x90)
  DescriptionScreenGraphic = "DescriptionScreen" # Dossier Pictures
  AchievementBarGraphic = "AchievementBar"  ## Dossier Pictures
 
  AchievementIsCompleteGraphic = "AchievementCompleted" # Dossier Pictures
  AchievementIsIncompleteGraphic = "AchievementIncomplete" # Dossier Pictures
  # Ces deux dernières images apparaissent en bas à droite de l'écran
  # quand elles sont utilisées
 
  Achievements = []
  Descriptions = []
 
  Achievements[0] = ["Gagner de l'argent","Trophy",1]
  Descriptions[0] = ["Ouvrez 5 coffres","Une quête que n'importe quel noob peut réussir"]
 
  Achievements[1] = ["Battez le Rouquin !","Trophy",2]
  Descriptions[1] = ["Battez le Vilain Rouquin dans le jardin"]
 
  Achievements[2] = ["Adorez Omegas7","Trophy",3]
  Descriptions[2] = ["Montrez votre amour pour Omegas7 à un inconnu"]
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('all')
        @trophyMenu.setOpacity(255)
        Sound.play_decision
        @chosen = true
        return
      when 1  # Unlocked
        if @unlocked <= 0
          Sound.play_buzzer
          return
        end
        @view = 'TROPHIES'
        @trophyMenu.setView('unlocked')
        @trophyMenu.setOpacity(255)
        Sound.play_decision
        @chosen = true
        return
      when 2  # Locked
        if @locked <= 0
          Sound.play_buzzer
          return
        end
        @view = 'TROPHIES'
        @trophyMenu.setView('locked')
        @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 = ['Quêtes','Réussies','Inachevées','Retour']
    @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('all')
    @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 == 'all' || view == 'unlocked'
          @trophies.push(AchievementTrophy.new(trueIndex,true,Achievements[i][0]))
          @chart.push(Descriptions[i])
          trueIndex += 1
        end
      else
        if view == 'all' || view == 'locked'
          @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

Téléchargez la démo ICI !

Voila, en espérant vous avoir satisfait Very Happy

PS : Les images ne se trouve que dans la démo Wink

avatar
Az'
Membre

Nombre de messages : 3318
Age : 74
Date d'inscription : 22/12/2007

Script de quêtes - Omegas7 1.1 Empty Re: Script de quêtes - Omegas7 1.1

le Sam 30 Juil 2011 - 12:04
Merci de ton partage et pour la traduction Dish', je regarde quand je serais chez moi Wink
Balbereith
Balbereith
Staffeux retraité

Nombre de messages : 4129
Age : 26
Localisation : dans l'ombre...
Distinction : Péripatéticienne à temps perdu
Helly n°666 [Coco' ;D]
mon ptit balbounet p'tit jardinier en herbe(les râteaux ça le connait) [tonton Adurna]
Cultivateur professionnel de la commu' (il a de bons outils en de nombreux exemplaires Script de quêtes - Omegas7 1.1 522164 ) [Coco' Smile]
Date d'inscription : 13/05/2009

Script de quêtes - Omegas7 1.1 Empty Re: Script de quêtes - Omegas7 1.1

le Sam 30 Juil 2011 - 19:53
http://www.rpgmakervx-fr.com/t10076-traduction-omegas7-achievements

Wink Pour l'ancienne version.

Merci Dishi.
Jo69all
Jo69all
Membre

Nombre de messages : 47
Age : 21
Localisation : Lyon
Distinction : aucune
Date d'inscription : 08/10/2011

Script de quêtes - Omegas7 1.1 Empty Re: Script de quêtes - Omegas7 1.1

le Lun 31 Oct 2011 - 10:02
Désoler du nécro-post mais comment on fais de nouvelles quêtes?
Balbereith
Balbereith
Staffeux retraité

Nombre de messages : 4129
Age : 26
Localisation : dans l'ombre...
Distinction : Péripatéticienne à temps perdu
Helly n°666 [Coco' ;D]
mon ptit balbounet p'tit jardinier en herbe(les râteaux ça le connait) [tonton Adurna]
Cultivateur professionnel de la commu' (il a de bons outils en de nombreux exemplaires Script de quêtes - Omegas7 1.1 522164 ) [Coco' Smile]
Date d'inscription : 13/05/2009

Script de quêtes - Omegas7 1.1 Empty Re: Script de quêtes - Omegas7 1.1

le Lun 31 Oct 2011 - 12:35
En réalité ce n'est pas un script de quête à proprement dit, c'est un sript de trophés comme sur ps3 ou autre.

Sinon tout se fait par évent et grace aux interrupteurs.
Jo69all
Jo69all
Membre

Nombre de messages : 47
Age : 21
Localisation : Lyon
Distinction : aucune
Date d'inscription : 08/10/2011

Script de quêtes - Omegas7 1.1 Empty Re: Script de quêtes - Omegas7 1.1

le Lun 31 Oct 2011 - 14:32
ok merci
Contenu sponsorisé

Script de quêtes - Omegas7 1.1 Empty Re: Script de quêtes - Omegas7 1.1

Revenir en haut
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum