RPG MAKER XP

Vous êtes débutant du logiciel rpg maker xp et vous souhaitez en apprendre plus c'est ici qu'il faut chercher.Vous cherchez ressource, script, tutorial ou autre c'est ici aussi.Bonne visite à vous !
 
Accueil­Portail­FAQ­Rechercher­S'enregistrer­Membres­Groupes­Connexion
Poster un nouveau sujet   Répondre au sujetPartager | 
 

 Quêtes

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
Chasseur41
Admin
Admin


Masculin
Nombre de messages: 49
Age: 17
Localisation: Vendôme (41) et Tours (37)
Loisirs: Création de jeu, musique, livre et sortit
Date d'inscription: 04/07/2007

Feuille de personnage
Prénom du Personnage: Brutus
Nom du Personnage: Macligan
Âge du Personnage: 28 ans

MessageSujet: Quêtes   Sam 6 Oct - 10:46

Voici un petit script permettant la gestion de quêtes.

Appellez se script: Scene_Item


Code:
#==============================================================================
# ■ Scene_Item
#------------------------------------------------------------------------------
#  アイテム画面の処理を行うクラスです。
#==============================================================================

class Scene_Mission
#--------------------------------------------------------------------------
# ● メイン処理
#--------------------------------------------------------------------------
def main
# ヘルプウィンドウ、アイテムウィンドウを作成
@help_window = Window_Help.new
@item_window = Window_Mission1.new
@mission_desc = Window_Mission2.new
# ヘルプウィンドウを関連付け
@item_window.help_window = @help_window

Graphics.transition
# メインループ
loop do
# ゲーム画面を更新
Graphics.update
# 入力情報を更新
Input.update
# フレーム更新
update
# 画面が切り替わったらループを中断
if $scene != self
break
end
end
# トランジション準備
Graphics.freeze
# ウィンドウを解放
@help_window.dispose
@item_window.dispose
@mission_desc.dispose
end
#--------------------------------------------------------------------------
# ● フレーム更新
#--------------------------------------------------------------------------
def update
# ウィンドウを更新
@help_window.update
@item_window.update
if @item_window.item != nil
name = @item_window.item_name
name = "Missions/"+name+".txt"
file = File.open(name)
@mission_desc.add_content(file.readlines)
file.close
end
@mission_desc.refresh
# アイテムウィンドウがアクティブの場合: update_item を呼ぶ
if @item_window.active
update_item
return
end
end
#--------------------------------------------------------------------------
# ● フレーム更新 (アイテムウィンドウがアクティブの場合)
#--------------------------------------------------------------------------
def update_item
# B ボタンが押された場合
if Input.trigger?(Input::B)
# キャンセル SE を演奏
$game_system.se_play($data_system.cancel_se)
# メニュー画面に切り替え
$scene = Scene_Menu.new(4)
return
end
end
end




Creéz ensuite un second script, que je nomme : Window_Item


Code:
#==============================================================================
# ■ Window_Item
#------------------------------------------------------------------------------
#  アイテム画面、バトル画面で、所持アイテムの一覧を表示するウィンドウです。
#==============================================================================

class Window_Mission1 < Window_Selectable
#--------------------------------------------------------------------------
# ● オブジェクト初期化
#--------------------------------------------------------------------------
def initialize
super(0, 64, 320, 416)
@column_max = 1
refresh
self.index = 0
end
#--------------------------------------------------------------------------
# ● アイテムの取得
#--------------------------------------------------------------------------
def item
return @data[self.index]
end

def item_name
nom = String.new(@data[self.index].name)
nom[0] = ""
return nom
end
#--------------------------------------------------------------------------
# ● リフレッシュ
#--------------------------------------------------------------------------
def refresh
if self.contents != nil
self.contents.dispose
self.contents = nil
end
@data = []
for i in 1...$data_items.size
if $game_party.item_number(i) > 0 and $data_items[i].name[0] == 42
@data.push($data_items[i])
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
#--------------------------------------------------------------------------
# ● fonction d'affichage des items
# index
#--------------------------------------------------------------------------
def draw_item(index)
item = @data[index]
number = $game_party.item_number(item.id)
if item.is_a?(RPG::Item) and number == 1
self.contents.font.color = normal_color
else
self.contents.font.color = disabled_color
end
case number
when 1
etat = "( En cours )"
when 2
etat = "( Terminée )"
when 3
etat = "( Annulée )"
when 4
etat = "( Perdue )"
end
x = 4
y = index * 32
nom = String.new(item.name)
nom[0] = ""
rect = Rect.new(x, y, self.width / @column_max - 32, 32)
self.contents.fill_rect(rect, Color.new(0, 0, 0, 0))
bitmap = RPG::Cache.icon(item.icon_name)
opacity = self.contents.font.color == normal_color ? 255 : 128
self.contents.blt(x, y + 4, bitmap, Rect.new(0, 0, 24, 24), opacity)
self.contents.draw_text(x + 28, y, 212, 32, nom + " "+etat, 0)
end
#--------------------------------------------------------------------------
# ● ヘルプテキスト更新
#--------------------------------------------------------------------------
def update_help
@help_window.set_text(self.item == nil ? "" : self.item.description)
end
end




Et voici le derniez script à ajoutez, vous l'appellerez : Window_Mission2


Code:
class Window_Mission2 < Window_Base

  def initialize
    super(0, 64, 320, 416)
    self.x = 320
    self.contents = Bitmap.new(width - 32, height - 32)
    self.contents.font.name = $fontface
    self.contents.font.size = 20
    @content = Array.new(1,"")
    refresh
  end

  def add_content(x)
    @content = x
  end
 
  def refresh
    self.contents.clear
    self.contents.font.color = normal_color
    for i in 0...@content.size
      self.contents.draw_text(16, 16, 288, 16+i*32,@content[i], 0)
    end
  end
end




Vous créez un "nouveau dossier" dans le répertoire avec "graphismes" etc.

Vous mettez dedans des fichiers textes.
Vous leur mettez un nom.
ex:"Mercenaire"

Ajoutez ensuite un objet dans la base de données que vous appellerez par le nom que le fichier texte avec une "*" devant.

ex:"*Mercenaire".
Dans le fichier texte, vous mettrez les consignes de la mission.

Dans le répertoire, vous mettrez autant de fichiers textes qu'il y a de missions.
Ilvous faudra créer un objet pour chaque mission que vous souhaitez et qui commencera par (*) et qui portera le même nom que la mission.

Pour appelez la gestion de quêtes, vous mettez un évènement avec un script dedans.

Dans ce script, vous mettrez:

$scene = Scene_Mission.new

_________________
La petitesse de l'esprit fait l'opiniâtreté; et nous ne croyons pas aisément ce qui est au-delà de ce que nous voyons.

Chasseur 41
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://legend-rpg-2d.englishboards.com
 

Quêtes

Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
RPG MAKER XP :: Script :: Autres-
Poster un nouveau sujet   Répondre au sujet