Heures au format UTC + 1 heure [ Heure d’été ]


Règles du forum


Consultez la liste des Scripts : cliquez ici



Publier un nouveau sujet Répondre au sujet  [ 9 messages ] 
Auteur Message
 Sujet du message: Quests System
MessagePublié: 10 Juin 2009, 22:22 
Roi
Roi
Avatar de l’utilisateur

Inscrit le: 13 Aoû 2006, 00:00
Messages: 2414
Localisation: Montréal, QC
Logiciel(s) préféré(s): RMXP, VS2008
Point(s) Fort(s): Script
Points d'aide: Illimité

Créations :

- Séparation d'inventaire

- Sprite_Text


Voir ses créations

Quests System




Auteur : Mat


Description :
Ce script permet de gérer de façon très simple un livre de quête.

Sommaire

1. Script
1.1 Dépendance
1.2 Script de base
1.3 Scène exemple
2. Explication
3. Commandes EL
3.1 Script de commandes
3.2 Explication et exemple d'utilisation.


Dernière édition par Mat le 17 Aoû 2009, 10:43, édité 1 fois au total.

Haut
 Profil  
 
 Sujet du message: Re: Quests System
MessagePublié: 10 Juin 2009, 22:22 
Roi
Roi
Avatar de l’utilisateur

Inscrit le: 13 Aoû 2006, 00:00
Messages: 2414
Localisation: Montréal, QC
Logiciel(s) préféré(s): RMXP, VS2008
Point(s) Fort(s): Script
Points d'aide: Illimité

Créations :

- Séparation d'inventaire

- Sprite_Text


Voir ses créations

1. Scripts


1.1. Dépendances

Database Management


Dernière édition par Mat le 17 Aoû 2009, 10:39, édité 1 fois au total.

Haut
 Profil  
 
 Sujet du message: Re: Quests System
MessagePublié: 10 Juin 2009, 22:22 
Roi
Roi
Avatar de l’utilisateur

Inscrit le: 13 Aoû 2006, 00:00
Messages: 2414
Localisation: Montréal, QC
Logiciel(s) préféré(s): RMXP, VS2008
Point(s) Fort(s): Script
Points d'aide: Illimité

Créations :

- Séparation d'inventaire

- Sprite_Text


Voir ses créations

1.2 Script de base

Code: Tout sélectionner
#===============================================================================
# ■ Quests System
#-------------------------------------------------------------------------------
# Auteur  : Mat
# Version : 1.0
# Date    : 10/06/2009
#-------------------------------------------------------------------------------
# Ce script permet de gérer de façon très simple un livre de quête.
#
# Dépendance :
# - Database Managment
#-------------------------------------------------------------------------------
# Utilisation :
#
#  1) Installation :
#      Copier le Database Management dans un script au dessus de Main.
#      Copier ce script dans un nouveau script entre Database Management
#      et Main.
#
#  2) Utilisation :
#      Lancer une première fois votre jeu. Le jeu créera ainsi un dossier
#      nommer "Quests Data" dans le dossier de votre jeu, contenant un fichier
#      "template.dbsl". Il suffit de copier le template et de remplir les
#      différents champs et ceci autant de fois qu'il faut de quete.
#
#      ATTENTION : le champs id doit être unique pour chaque quête.
#
#      Lorsque votre jeu est pret à être diffusé, il suffit de supprimer
#      le dossier "Quests Data" pour garder la base secrète.
#-------------------------------------------------------------------------------
# Note concernant l'attribut status des objets Game_Quests :
#        0 = la quête est active
#        1 = la quête est terminee
#        2 = la quête est abandonnee
#===============================================================================

#===============================================================================
# Création de la base de données des quêtes
#-------------------------------------------------------------------------------
# id          : identifiant unique des quêtes
# name        : nom de la quête
# description : description de la quête
# gain_gold   : le nombre d'argent gagné
# gain_exp    : le nombre de point d'expérience gagné
# gain_item   : hash contenant les objets gagnés et la quantité
# gain_weapon : hash contenant les armes gagnées et la quantité
# gain_armor  : hash contenant les armures gagnées et la quantité
#===============================================================================
Database.create_table("Quests"){ |t|
  t.column :id,           :integer
  t.column :name,         :string
  t.column :description,  :string
  t.column :gain_gold,    :integer
  t.column :gain_exp,     :integer
  t.column :gain_item,    :hash
  t.column :gain_weapon,  :hash
  t.column :gain_armor,   :hash
}

#===============================================================================
# ▼ QUEST_STATUS
#-------------------------------------------------------------------------------
# Module contenant les constantes de status de quête
#===============================================================================
module QUEST_STATUS

  STATUS_CURRENT = 0
  STATUS_OVER = 1
  STATUS_ABANDONNED = 2
 
end

#===============================================================================
# ▼ Game_Quest
#-------------------------------------------------------------------------------
# Objet représentant les quêtes
#===============================================================================
class Game_Quest
    
  attr_reader :id           # identifiant de la quête
  attr_reader :name         # nom de la quête
  attr_reader :description  # description de la quête
  attr_reader :gain_gold    # gain d'argent
  attr_reader :gain_exp     # gain de point d'experience
  attr_reader :gain_item    # gain d'objets
  attr_reader :gain_weapon  # gain d'armes
  attr_reader :gain_armor   # gain d'armures
  attr_reader :status       # status de la quête
 
  #=============================================================================
  # ● initialize
  #    id : identifiant de la quête
  #=============================================================================
  def initialize(id)
    #On cherche dans la base de données la quête d'id id
    quest = Database::Quests.find{ |quest|
      quest.id = id
    }
    #Initialisation des paramètres
    @id = quest.id
    @name = quest.name
    @description = quest.description
    @gain_gold = quest.gain_gold
    @gain_exp = quest.gain_exp
    @gain_item = quest.gain_item
    @gain_weapon = quest.gain_weapon
    @gain_armor = quest.gain_armor
    @status = QUEST_STATUS::STATUS_CURRENT
  end
 
  #=============================================================================
  # ● finish
  #=============================================================================
  def finish
    #Le status de la quête est termine
    @status = QUEST_STATUS::STATUS_OVER
    #Ajout des gains de la quêtes à linventaire de l'équipe
    @gain_item.each{ |item_id, quantity|
      $game_party.gain_item(item_id, quantity)
    }
    @gain_weapon.each{ |weapon_id, quantity|
      $game_party.gain_weapon(weapon_id, quantity)
    }
    @gain_armor.each{ |armor_id, quantity|
      $game_party.gain_armor(armor_id, quantity)
    }
  end
 
  #=============================================================================
  # ● abandon
  #=============================================================================
  def abandon
    @status = QUEST_STATUS::STATUS_ABANDONNED
  end
 
  #=============================================================================
  # ● current?
  #   return: vrai si la quête est active, faux sinon
  #=============================================================================
  def current?
    return @status == QUEST_STATUS::STATUS_CURRENT
  end
 
  #=============================================================================
  # ● over?
  #   return: vrai si la quête est terminée, faux sinon
  #=============================================================================
  def over?
    return @status == QUEST_STATUS::STATUS_OVER
  end
 
  #=============================================================================
  # ● abandonned?
  #   return: vrai si la quête est abandonnée, faux sinon
  #=============================================================================
  def abandonned?
    return @status == QUEST_STATUS::STATUS_ABANDONNED
  end
   
end

#===============================================================================
# ▼ Scene_Title
#===============================================================================
class Scene_Title
 
  #=============================================================================
  # ● command_new_game
  #=============================================================================
  alias quest_command_new_game command_new_game
  def command_new_game
    $game_quests = {}
    for quest in Database::Quests
      if quest.id > 0
        $game_quests[quest.id] = Game_Quest.new(quest.id)
      end
    end
    quest_command_new_game
  end
 
end

#===============================================================================
# ▼ Scene_Save
#===============================================================================
class Scene_Save
 
  #=============================================================================
  # ● write_save_data
  #    file : nom du fichier de sauvegarde
  #=============================================================================
  alias quest_write_save_data write_save_data
  def write_save_data(file)
    quest_write_save_data(file)
    Marshal.dump($game_quests, file)
  end
 
end

#===============================================================================
# ▼ Scene_Load
#===============================================================================
class Scene_Load
 
  #=============================================================================
  # ● read_data
  #    file : nom du fichier où se trouvent les données à charger
  #=============================================================================
  alias quest_read_save_data read_save_data
  def read_save_data(file)
    quest_read_save_data(file)
    $game_quests = Marshal.load(file)
  end
 
end

#===============================================================================
# ▼ Game_Party
#===============================================================================
class Game_Party
 
  attr_reader :quests_list  # liste des quêtes de l'équipe
 
  #=============================================================================
  # ● initialize
  #=============================================================================
  alias quest_party_initialize initialize
  def initialize
    @quests_list = {}
    quest_party_initialize
  end
 
  #=============================================================================
  # ● add_quest
  #     id : la quête à ajouter
  #=============================================================================
  def add_quest(id)
    if @quests_list[id] == nil
      @quests_list[id] = $game_quests[id]
    end
  end
 
  #=============================================================================
  # ● finish_quest
  #     id : la quête à terminer
  #============================================================================= 
  def finish_quest(id)
    if self.quest_started?(id) && @quests_list[id].current?
      @quests_list[id].finish
    end
  end
 
  #=============================================================================
  # ● abandon_quest
  #     id : la quête à abandonner
  #=============================================================================
  def abandon_quest(id)
    if self.quest_started?(id) && @quests_list[id].current?
        @quests_list[id].abandon
    end
  end
 
  #=============================================================================
  # ● quest_started?
  #     id : la quête à vérifier
  #     return: vrai si la quête est dans la liste, faux sinon
  #=============================================================================
  def quest_started?(id)
    return @quests_list[id] != nil
  end
   
end


Haut
 Profil  
 
 Sujet du message: Re: Quests System
MessagePublié: 10 Juin 2009, 22:24 
Roi
Roi
Avatar de l’utilisateur

Inscrit le: 13 Aoû 2006, 00:00
Messages: 2414
Localisation: Montréal, QC
Logiciel(s) préféré(s): RMXP, VS2008
Point(s) Fort(s): Script
Points d'aide: Illimité

Créations :

- Séparation d'inventaire

- Sprite_Text


Voir ses créations

1.3. Exemple de scène

Cette scène n'est qu'un exemple de réalisation possible à partir du script Quests System. C'est à chaque projet de réaliser sa propre interface et non au système de vous la fournir.

Code: Tout sélectionner
#===============================================================================
# ■ Scene_Quests
#-------------------------------------------------------------------------------
# Auteur  : Mat
# Version : 1.0
# Date    : 10/06/2009
#-------------------------------------------------------------------------------
# Ce script est un exemple de scène réalisable à partir du script Quests System
#===============================================================================

#===============================================================================
# ▼ Window_ListQuests
#===============================================================================
class Window_ListQuests < Window_Selectable

  attr_accessor :type
 
  def initialize
    super(0, 0, 320, 480)
    @type = 0
    self.visible = false
    self.active = false
  end
 
  def refresh
    if self.contents != nil
      self.contents.dispose
      self.contents = nil
    end
    @data = []
    for quest in $game_party.quests_list.values
      if quest.status == type
        @data.push(quest)
      end
    end
    @item_max = @data.size
    if @item_max > 0
      self.contents = Bitmap.new(width - 32, row_max * 32)
      self.contents.font.name = $fontface
      self.contents.font.size = $fontsize
      for i in 0...@item_max
        draw_item(i)
      end
    end
  end
 
  def draw_item(index)
    quest = @data[index]
    x = 4 + index * (288 + 32)
    y = index * 32
    self.contents.draw_text(x + 28, y, 212, 32, quest.name, 0)
  end
 
  def item
    return @data[self.index]
  end
 
end

#===============================================================================
# ▼ Window_QuestInfo
#===============================================================================
class Window_QuestInfo < Window_Base
 
  attr_writer :quest
 
  def initialize
    super(320, 0, 320, 480)   
    @quest = nil
  end
 
  def refresh
    if self.contents != nil
      self.contents.dispose
      self.contents = nil
    end 
   
    if @quest != nil
      self.contents = Bitmap.new(width - 32, height - 32)
      self.contents.font.name = $fontface
      self.contents.font.size = $fontsize
    
      self.contents.draw_text(30, 0, 260, 24, "Description : ", 0) 
      y = 32
      @quest.description.each{ |ligne|
        self.contents.draw_text(10, y, 260, 24, ligne, 0)
        y += 24
      }
      y += 32
      self.contents.draw_text(30, y, 260, 24, "Récompense(s) : ", 0)
      y += 32
      if(@quest.gain_gold > 0)
        self.contents.draw_text(10, y, 260, 24, "Argent : #{@quest.gain_gold}", 0)
        y += 24
      end
      if(@quest.gain_exp > 0)
        self.contents.draw_text(10, y, 260, 24, "Exp : #{@quest.gain_exp}", 0)
        y += 24
      end
      @quest.gain_item.each{ |item_id, quantity|
          item = $data_items[item_id]
          bitmap = RPG::Cache.icon(item.icon_name)
          self.contents.blt(0, y + 4, bitmap, Rect.new(0, 0, 24, 24))
          self.contents.draw_text(28, y, 220, 24, item.name, 0)
          self.contents.draw_text(240, y, 16, 24, "x", 1)
          self.contents.draw_text(256, y, 24, 24, quantity.to_s, 2)
          y += 34
      }
      @quest.gain_weapon.each{ |weapon_id, quantity|
          weapon = $data_weapons[weapon_id]
          bitmap = RPG::Cache.icon(weapon.icon_name)
          self.contents.blt(0, y + 4, bitmap, Rect.new(0, 0, 24, 24))
          self.contents.draw_text(28, y, 220, 24, weapon.name, 0)
          self.contents.draw_text(240, y, 16, 24, "x", 1)
          self.contents.draw_text(256, y, 24, 24, quantity.to_s, 2)
          y += 34
      }
      @quest.gain_armor.each{ |armor_id, quantity|
          armor = $data_armors[armor_id]
          bitmap = RPG::Cache.icon(armor.icon_name)
          self.contents.blt(0, y + 4, bitmap, Rect.new(0, 0, 24, 24))
          self.contents.draw_text(28, y, 220, 24, armor.name, 0)
          self.contents.draw_text(240, y, 16, 24, "x", 1)
          self.contents.draw_text(256, y, 24, 24, quantity.to_s, 2)
          y += 34
      }
    end
  end

end

#===============================================================================
# ▼ Scene_Quests
#===============================================================================
class Scene_Quests
 
  def main
    menu = ["Quetes en Cours", "Quetes Achevees", "Quetes Abandonnees"]
    @type_quests_window = Window_Command.new(320, menu)
    @type_quests_window.height = 480
   
    @list_quests_window = Window_ListQuests.new  
   
    @quest_info_window = Window_QuestInfo.new
   
    Graphics.transition
    loop do
      Graphics.update
      Input.update
      update
      if $scene != self
        break
      end
    end
    Graphics.freeze
    @list_quests_window.dispose
    @type_quests_window.dispose
    @quest_info_window.dispose
  end
 
  def update
    @type_quests_window.update
    @list_quests_window.update
    @quest_info_window.update
   
    if @type_quests_window.active
      update_command
      return
    end
   
    if @list_quests_window.active
      update_list
      return
    end
  end
 
  def update_command
    if Input.trigger?(Input::B)
      $game_system.se_play($data_system.cancel_se)
      $scene = Scene_Map.new
      return
    end
   
    if Input.trigger?(Input::C)
      @type_quests_window.active = false
      @type_quests_window.visible = false
      @list_quests_window.type = @type_quests_window.index
      @list_quests_window.refresh
      @list_quests_window.active = true
      @list_quests_window.visible = true
      @list_quests_window.index = 0
    end
  end
 
  def update_list
    if Input.trigger?(Input::B)
      $game_system.se_play($data_system.cancel_se)
      @list_quests_window.active = false
      @list_quests_window.visible = false
      @type_quests_window.active = true
      @type_quests_window.visible = true
      @quest_info_window.quest = nil
      return
    end
   
    @quest_info_window.quest = @list_quests_window.item
    @quest_info_window.refresh
   
  end
 
end


Haut
 Profil  
 
 Sujet du message: Re: Quests System
MessagePublié: 10 Juin 2009, 22:29 
Roi
Roi
Avatar de l’utilisateur

Inscrit le: 13 Aoû 2006, 00:00
Messages: 2414
Localisation: Montréal, QC
Logiciel(s) préféré(s): RMXP, VS2008
Point(s) Fort(s): Script
Points d'aide: Illimité

Créations :

- Séparation d'inventaire

- Sprite_Text


Voir ses créations

2. Explications

Installation

Copier le Database Management dans un script au dessus de Main.
Copier ce script dans un nouveau script entre Database Management et Main.

Utilisation

Lancer une première fois votre jeu. Le jeu créera ainsi un dossier nommer "Quests Data" dans le dossier de votre jeu, contenant un fichier "template.dbsl". Il suffit de copier le template et de remplir les différents champs et ceci autant de fois qu'il faut de quete.

ATTENTION : le champs id doit être unique pour chaque quête.

Exemple
Copier-coller dans un fichier le texte suivant:
Citer:
Database::Quests
id: 1
name: "Quete 1"
description: "Une nouvelle quete
Nouvelle Ligne
Encore une ligne"
gain_gold: 100
gain_exp: 500
gain_item: {1 => 10}
gain_weapon: {1 => 1}
gain_armor: {1 => 1}

Qui est la représentation d'une quête d'identifiant 1 et de nom Quete 1.
Les gains de la quête sont: 100 PO, 500 point d'EXP, 10 Potion (id:1), 1 Epée de Bronze(id:1), 1 Bouclier de Bronze (id:1)

Note: Pour que la description soit sur plusieurs lignes, il faut séparer chaque ligne par "
" et ne pas passer de ligne.

Diffusion
Lorsque votre jeu est pret à être diffusé, il suffit de supprimer le dossier "Quests Data" pour garder la base secrète.


Dernière édition par Mat le 17 Aoû 2009, 10:40, édité 1 fois au total.

Haut
 Profil  
 
 Sujet du message: Re: Quests System
MessagePublié: 10 Juin 2009, 22:31 
Roi
Roi
Avatar de l’utilisateur

Inscrit le: 13 Aoû 2006, 00:00
Messages: 2414
Localisation: Montréal, QC
Logiciel(s) préféré(s): RMXP, VS2008
Point(s) Fort(s): Script
Points d'aide: Illimité

Créations :

- Séparation d'inventaire

- Sprite_Text


Voir ses créations

3. Commandes EL

Cette ensemble de commande permet de gérer les quêtes du Quests System à partir des évènements.

Le script de base doit être au dessus de toutes vos commandes EL
[url=/event-language-f52/el3script-de-base-obligatoire-t13934.htm]http://forum.rpgcreative.net/f52-el3script-de-base-obligatoire-t13934.html[/url]

Code: Tout sélectionner
#===============================================================================
# ■ EL   : Quests System
#-------------------------------------------------------------------------------
# Auteur  : Mat
# Version : 1.3.beta
# Date    : 10/06/2009
#-------------------------------------------------------------------------------
# Dépendence:
#   Script de base des commandes EL
#   Quests System
#-------------------------------------------------------------------------------
# Cette ensemble de commande permet de gérer les quêtes du Quests System à
# partir des évènements
#===============================================================================

#===============================================================================
# ▼ EL : ajouter quete
#-------------------------------------------------------------------------------
# <el> ajouter quete
# quete (identifiant de la quete)
#===============================================================================
EventLanguage.add_command("ajouter quete") { |args|
  quest_id = args["quete"].to_integer
  $game_party.add_quest(quest_id)
}

#===============================================================================
# ▼ EL : finir quete
#-------------------------------------------------------------------------------
# <el> finir quete
# quete (identifiant de la quete)
#===============================================================================
EventLanguage.add_command("finir quete") { |args|
  quest_id = args["quete"].to_integer
  $game_party.finish_quest(quest_id)
}

#===============================================================================
# ▼ EL : abandonner quete
#-------------------------------------------------------------------------------
# <el> abandonner quete
# quete (identifiant de la quete)
#===============================================================================
EventLanguage.add_command("abandonner quete"){ |args|
  quest_id = args["quete"].to_integer
  $game_party.abandon_quest(quest_id)
}

#===============================================================================
# ▼ EL : est quete terminee
#-------------------------------------------------------------------------------
# <el> est quete terminee
# quete (identifiant de la quete)
#===============================================================================
EventLanguage.add_condition("est quete terminee") { |args|
  quest_id = args["quete"].to_integer
  $game_party.quests_list[quest_id].over? rescue false
}

#===============================================================================
# ▼ EL : est quete active
#-------------------------------------------------------------------------------
# <el> est quete active
# quete (identifiant de la quete)
#===============================================================================
EventLanguage.add_condition("est quete active") { |args|
  quest_id = args["quete"].to_integer
  $game_party.quests_list[quest_id].current? rescue false
}

#===============================================================================
# ▼ EL : est quete abandonnee
#-------------------------------------------------------------------------------
# <el> est quete abandonnee
# quete (identifiant de la quete)
#===============================================================================
EventLanguage.add_condition("est quete abandonnee") { |args|
  quest_id = args["quete"].to_integer
  $game_party.quests_list[quest_id].abandonned? rescue false
}

#===============================================================================
# ▼ EL : est quete commencee
#-------------------------------------------------------------------------------
# <el> est quete commencee
# quete (identifiant de la quete)
#===============================================================================
EventLanguage.add_condition("est quete commencee"){ |args|
  quest_id = args["quete"].to_integer
  $game_party.quest_started?(quest_id)
}


Dernière édition par Mat le 17 Aoû 2009, 10:46, édité 1 fois au total.

Haut
 Profil  
 
 Sujet du message: Re: Quests System
MessagePublié: 10 Juin 2009, 22:40 
Roi
Roi
Avatar de l’utilisateur

Inscrit le: 13 Aoû 2006, 00:00
Messages: 2414
Localisation: Montréal, QC
Logiciel(s) préféré(s): RMXP, VS2008
Point(s) Fort(s): Script
Points d'aide: Illimité

Créations :

- Séparation d'inventaire

- Sprite_Text


Voir ses créations

Explication

  • <el> ajouter quete
    quete 1

    Permet d'ajouter la quête 1

  • <el> finir quete
    quete 1

    Permet de terminer la quête 1

  • <el> abandonner quete
    quete 1

    Permet d'abandonner la quête 1

  • <el> est quete terminee
    quete 1

    S'utilise avec la commande <el> last condition
    Renvoie si la quête 1 est terminée ou non.

  • <el> est quete active
    quete 1

    S'utilise avec la commande <el> last condition
    Renvoie si la quête 1 est en cours ou non

  • <el> est quete abandonnee
    quete 1

    S'utilise avec la commande <el> last condition
    Renvoie si la quête 1 est abandonnée ou non

  • <el> est quete commencee
    quete 1

    S'utilise avec la commande <el> last condition
    Renvoie si la quête 1 est dans la liste des quêtes ou non

Exemple

Image


Haut
 Profil  
 
 Sujet du message: Re: Quests System
MessagePublié: 02 Nov 2009, 22:44 
Artisan (Nv 2)

Inscrit le: 08 Aoû 2008, 00:00
Messages: 137
Points d'aide: 0/60

Créations :

Voir ses créations

Script très sympa,
mais j'ai une question vu certain événement récent :
tes commande EL sont elle compatible avec EL 4.0 ?

_________________
Forum de mon projet "Chasseur de reliques."
http://cdr-forum.darkbb.com
Enjoy ! :)


Haut
 Profil  
 
 Sujet du message: Re: Quests System
MessagePublié: 03 Nov 2009, 01:43 
Roi
Roi
Avatar de l’utilisateur

Inscrit le: 13 Aoû 2006, 00:00
Messages: 2414
Localisation: Montréal, QC
Logiciel(s) préféré(s): RMXP, VS2008
Point(s) Fort(s): Script
Points d'aide: Illimité

Créations :

- Séparation d'inventaire

- Sprite_Text


Voir ses créations

Aucune idée, je n'ai pas testé EL4.0. Seul un test permettrait de le déterminer.
Mais le script reste néanmoins utilisable sans les commandes EL, il est juste moins agréable à utiliser.

De toute façon, il faut que je fasse également une mise à jour pour la nouvelle version du
Database Management.


Haut
 Profil  
 
Afficher les messages depuis:  Trier par  
Publier un nouveau sujet Répondre au sujet  [ 9 messages ] 

Heures au format UTC + 1 heure [ Heure d’été ]


Qui est en ligne ?

Utilisateurs parcourant actuellement ce forum : Aucun utilisateur inscrit et 3 invités


Vous ne pouvez pas publier de nouveaux sujets dans ce forum
Vous ne pouvez pas répondre aux sujets dans ce forum
Vous ne pouvez pas éditer vos messages dans ce forum
Vous ne pouvez pas supprimer vos messages dans ce forum
Vous ne pouvez pas insérer de pièces jointes dans ce forum

Rechercher pour:
Sauter vers:  
cron
RPG Creative Forum version 5 ; Tous droits réservés
phpBB Group (Traduit par Xaphos)
Optimisé pour une résolution 1024*728