AccueilAccueil  PortailPortail  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  ConnexionConnexion  




Partagez
 

 Résumé de monstre

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
thérapie
Aventurier Lv.16
Aventurier Lv.16
thérapie


Masculin Age : 28
Inscrit le : 03/08/2009
Messages : 1399

Résumé de monstre Empty
MessageSujet: Résumé de monstre   Résumé de monstre Icon_minitimeMar 13 Oct 2009 - 16:44

Bonjour à tous amis et amies scripteur(scripteuses xD)
Voilà j'aimerais une modification du scrip qui permet de faire un bestiaire (par Krazplay)
(le script)
Spoiler:
J'aimerais que quant on Sélectionne un monstre Une info de plus s'ajoute où il ya des précition sur le monstre.
Petit screen explicatif :
Résumé de monstre Araign13
Regarder la Regardez la zone vide (en rouge). Dans cette zone si on pouver marquer un petit commentaire du genre: "Animal à 8 pattes qui vous piquez"ce serait vraiment super.
Voilà j'espère être assez clair pour dire ce que je veux sinon n'ésitez pas à demander d'autres précisions.
Merci d'avance.



PS: Désolé pour les fautes d'orthographes si il y en a. ..


Dernière édition par thérapie le Mer 14 Oct 2009 - 11:05, édité 1 fois
Revenir en haut Aller en bas
http://therapie-rmvx.jimdo.com
Zangther
Maître des Duels
Maître des Duels
Zangther


Masculin Age : 31
Inscrit le : 29/07/2009
Messages : 7840

Résumé de monstre Empty
MessageSujet: Re: Résumé de monstre   Résumé de monstre Icon_minitimeMar 13 Oct 2009 - 17:35

Le bestiaire de Krazplay?

Précise que c'est une version pour résolution de 640X480.

Sinon je pense que ce ne dois pas être trop dur non? Y'a une boite de commentaires par monstres dans la BDD. Il suffirait peut-être de la faire s'afficher? Mais ca je laisse le soin aux scripteurs compétents de confirmer.
Revenir en haut Aller en bas
Matsuo Kaito
+ Heir Øf Ŧime +
+ Heir Øf Ŧime +
Matsuo Kaito


Masculin Age : 32
Inscrit le : 27/06/2008
Messages : 10881

Résumé de monstre Empty
MessageSujet: Re: Résumé de monstre   Résumé de monstre Icon_minitimeMar 13 Oct 2009 - 17:38

Les Francs c'est has been, même pour un vieux script xD

Nan mais, il doit déjà exister un script comme tu le souhaites. Si je me souviens bien, dans Somnia Memorias, il y en a un parfait <3

Edit : ah et, une araignée, le jour où ça aura 6 et non 8 pattes hein, tu me préviens.

ZuuuUUuut, tu m'a grillé è_é.
Revenir en haut Aller en bas
thérapie
Aventurier Lv.16
Aventurier Lv.16
thérapie


Masculin Age : 28
Inscrit le : 03/08/2009
Messages : 1399

Résumé de monstre Empty
MessageSujet: Re: Résumé de monstre   Résumé de monstre Icon_minitimeMer 14 Oct 2009 - 13:55

J'ai téléchargé et testé Somnia Memorias et le script me convient trés bien...
Mais 2 problèmes entrent en scène :
1-J'utilise le système combat de base -_-'
2-Le script est introuvable

Merci de me dire si le script est compatible avec le système de combat basique et de me le donné si oui (ou alors continuer les scripteurs de créer un magnifique script xDD)

Merci beaucoup en tous cas
Revenir en haut Aller en bas
http://therapie-rmvx.jimdo.com
Zangther
Maître des Duels
Maître des Duels
Zangther


Masculin Age : 31
Inscrit le : 29/07/2009
Messages : 7840

Résumé de monstre Empty
MessageSujet: Re: Résumé de monstre   Résumé de monstre Icon_minitimeMer 14 Oct 2009 - 14:28

https://rpg-maker-vx.bbactif.com/un-probleme-f13/script-bestiaire-t6260.htm#85584

Regarde la, cette personne a un script comme tu le voudrais ( enfin je pense )
Revenir en haut Aller en bas
Gothor
Chevalier Lv.17
Chevalier Lv.17
Gothor


Masculin Age : 31
Inscrit le : 27/04/2008
Messages : 1835

Résumé de monstre Empty
MessageSujet: Re: Résumé de monstre   Résumé de monstre Icon_minitimeMer 14 Oct 2009 - 15:21

Moi je me suis penché sur ton script, je pense que c'est possible (et même pas si compliqué que ça...)
Une seule chose me dérange... ton script pourri...
Tu as dû t'amuser à aller sur google translate et à le traduire un peu "stupidement"... ça nous remplace tous nos end par des fin, tous nos class par des classes, et surtout un magnifique nombre_d'éléments est apparu à la place d'un je suppose number_of_elements ou un truc comme ça qui nous gâche tout Smile
D'autant plus, ton script est dans un spoiler, très joli le petit smiley dedans Smile mais j'arrive pas à le mettre dans mes scripts =/
Donc si tu avais la gentillesse de nous donner le vrai script qu'on arrête de rigoler quelques instants s'il te plaît... Merci Smile
Revenir en haut Aller en bas
Matsuo Kaito
+ Heir Øf Ŧime +
+ Heir Øf Ŧime +
Matsuo Kaito


Masculin Age : 32
Inscrit le : 27/06/2008
Messages : 10881

Résumé de monstre Empty
MessageSujet: Re: Résumé de monstre   Résumé de monstre Icon_minitimeMer 14 Oct 2009 - 15:27

Revenir en haut Aller en bas
Gothor
Chevalier Lv.17
Chevalier Lv.17
Gothor


Masculin Age : 31
Inscrit le : 27/04/2008
Messages : 1835

Résumé de monstre Empty
MessageSujet: Re: Résumé de monstre   Résumé de monstre Icon_minitimeMer 14 Oct 2009 - 15:44

Le script dépasse de ma fenêtre, as-tu une version modifiée pour rentrer dans la fenêtre normale?
Ou utilises-tu un script pour agrandir ta fenêtre?
Revenir en haut Aller en bas
Zangther
Maître des Duels
Maître des Duels
Zangther


Masculin Age : 31
Inscrit le : 29/07/2009
Messages : 7840

Résumé de monstre Empty
MessageSujet: Re: Résumé de monstre   Résumé de monstre Icon_minitimeMer 14 Oct 2009 - 16:18

C'est le bestiaire de Krazplay est spécialement adapté pour les résolutions 640X480.
Si je m'en rappelle bien il y a un lien dans les commentaires du script qui envoie vers le script pour repasser en 640X480.
Revenir en haut Aller en bas
Gothor
Chevalier Lv.17
Chevalier Lv.17
Gothor


Masculin Age : 31
Inscrit le : 27/04/2008
Messages : 1835

Résumé de monstre Empty
MessageSujet: Re: Résumé de monstre   Résumé de monstre Icon_minitimeMer 14 Oct 2009 - 16:43

Deux possibilités:
-Il utilise le script non modifié et un script d'écran de taille 640*480;
-Il utilise la version modifiée postée par Raito-san avec le menu adapté à la taille de l'écran de VX
Revenir en haut Aller en bas
Zangther
Maître des Duels
Maître des Duels
Zangther


Masculin Age : 31
Inscrit le : 29/07/2009
Messages : 7840

Résumé de monstre Empty
MessageSujet: Re: Résumé de monstre   Résumé de monstre Icon_minitimeMer 14 Oct 2009 - 17:08

Ah, y'a une version modifiée? Ah je savais pas x)
Revenir en haut Aller en bas
Diblo
Illusionniste Lv.12
Illusionniste Lv.12
Diblo


Masculin Age : 114
Inscrit le : 07/08/2009
Messages : 774

Résumé de monstre Empty
MessageSujet: Re: Résumé de monstre   Résumé de monstre Icon_minitimeMer 14 Oct 2009 - 17:40

Et sinon pour mon problème? è_é
Revenir en haut Aller en bas
thérapie
Aventurier Lv.16
Aventurier Lv.16
thérapie


Masculin Age : 28
Inscrit le : 03/08/2009
Messages : 1399

Résumé de monstre Empty
MessageSujet: Re: Résumé de monstre   Résumé de monstre Icon_minitimeMer 14 Oct 2009 - 18:21

Voilà je l'ai pas mis dans un spoiler...
Sinon désolé pour laa traduction mais j'ai rien touché au script que j'ai pris.

Code:
#========================================
# ■ Bestiaire pour RPG Maker VX
#------------------------------------------------------------------------------
# Version 1.0 (15/02/2008) par Krazplay
# Dernière version, commentaires :
# http://rpgmakerxp-factory.net/forum/index.php?topic=12494
#------------------------------------------------------------------------------
# Ce script est configuré pour fonctionner en 640x480 ! Vous pouvez trouver mon
# script pour passer en 640x480 ici (aucune inscription n'est nécessaire) :
# http://rpgmakerxp-factory.net/forum/index.php?topic=12460
# Ce script fonctionne dans les autres résolutions, mais il faut le reconfigurer
# (voir les constantes à modifier plus bas) pour que les textes ne dépassent pas.
#------------------------------------------------------------------------------
# Ce script utilise les variables 4001 à 4000+Nbre de monstres dans votre base
# de données. Cela peut facilement être modifié pour utiliser d'autres variables
# que celles du jeu.
# Pour appeller ce menu il suffit d'utiliser la ligne suivante :
# $scene = Scene_Liste_Monstres.new
# Cette scene renvoie au menu lorsqu'elle se termine, si vous voulez qu'elle
# ramène sur la carte plutôt qu'au menu, ajouter l'argument false :
# $scene = Scene_Liste_Monstres.new(false)
#
# N'oubliez pas de jeter un oeil à la configuration juste en-dessous !
#------------------------------------------------------------------------------
# Vous pouvez librement redistribuer ce script, y compris des versions modifiées.
# Mais vous devez laisser la provenance (auteur/site) du script original, elle
# est précisée au début des commentaires.
#==============================================================================
module KRAZ_SLM
  # Si Vrai, les monstres qui n'ont pas encore été vaincus n'apparaissent pas du
  # tout dans la liste (même pas comme monstre inconnu)
  MONSTRES_INCONNUS_INVISIBLES = true
  # Si Vrai, les noms des monstres sont visibles même s'ils n'ont jamais été
  # tués, si Faux, ils apparaitront avec le nom précisé dans NOM_MONSTRE_INCONNU
  NOMS_PAR_DEFAUT = false
  # Si les monstres inconnus sont visibles mais que leurs noms n'apparaissent
  # pas s'ils n'ont pas encore été tué, alors c'est celui-là qui sera utilisé.
  NOM_MONSTRE_INCONNU = "Monstre inconnu"
  # Si vrai, on peut accéder aux détails d'un monstre même si l'on en a pas encore
  # tué un.
  DETAILS_PAR_DEFAUT = false
  # Si la scene est appelée par le menu, il peut être sympa de remettre le curseur
  # sur la commande Bestiaire lorsqu'on y retourne.
  POSITION_DS_MENU = 0
  # Définit quelles variables vont être utilisées.
  # N'oublier pas que cela commence à DEPART_VARIABLES+1, parce que le premier
  # monstre a l'ID 1 et non 0.
  DEPART_VARIABLES = 4000
  # Les méthodes suivantes sont les seules références aux variables où sont
  # stockés le nombre d'ennemi tué de chaque sorte, donc si vous désirez ne pas
  # utiliser des variables du jeu, c'est uniquement ici que ça se passe.
  def self.nombre_tués(id_monstre)
    return $game_variables[DEPART_VARIABLES+id_monstre]
  end
 
  def self.set_nombre_tués(id_monstre, nombre)
    $game_variables[DEPART_VARIABLES+id_monstre] = nombre
  end
 
  def self.ajout_nombre_tués(id_monstre, nombre)
    $game_variables[DEPART_VARIABLES+id_monstre] += nombre
  end
 
  # Ce qui suit permet de déplacer quasiment tout les textes présents dans le
  # script afin que vous puissiez le customiser ou le faire fonctionner dans une
  # autre résolution.
  #======> Positionnement des éléments <======#
  # Pour du 640x480
  #-------------------------------------------#
  # La fenêtre générale prend automatiquement tout l'écran
  # Taille de la police
  FG_TP = 24
  # Description des 2 colonnes
  FG_COL1 = "Nom du monstre :"
  FG_COL2 = "Nombre tués :"
  # Position des descriptions [x, y, longueur, hauteur]
  FG_PD1 = [10, 0, 200, 32]
  FG_PD2 = [350, 0, 200, 32]
  # Position du numéro du monstre selectionné [x, y, longueur, hauteur]
  FG_NM = [240, 420, 300, 32]
 
  # Fenêtre liste des monstres [x, y, longueur, hauteur]
  # Attention cette fenêtre ne se voit pas, seul son contenu est visible.
  FM = [0, 66, 544, 350]#
  # Nom du monstre [x, largeur max]
  FM_NM = [20, 300]
  # Nombre de monstres tués [x, largeur]
  # Attention alignement du texte à droite et non à gauche.
  FM_NMT = [470, 30]
 
  # Fenêtre détails d'un monstre [x, y, largeur, hauteur]
  FD = [0, 0, 544, 416]
  # Vitesse ouverture/fermeture (255 le plus rapide)
  FD_V = 24
  # Position de l'image du monstre [x, y]
  FD_B = [215, 220]
  # Taille de la police du nom du monstre
  FD_TT = 29
  # Couleur du nom du monstre [Rouge, Vert, Bleu, Opacité]
  FD_CT = [255, 155, 155, 255]
  # Nom du monstre [x, y, longueur, hauteur]
  # Attention ici le nom est centré sur x
  FD_NM = [300, 0, 400, 32]
  # Taille de la police du reste de la fenêtre
  FD_TP = 24
  # Utilise la couleur système pour la suite
  FD_COLOR_SYSTEM = true
  # Si vous ne désirez pas utiliser la couleur système
  # [Rouge, Vert, Bleu, Opacité]
  FD_CSA = [255, 155, 155, 255]
  # Pour tout ce qui suit, le nom de la caractéristique et sa valeur sont écrit
  # dans le même rectangle, mais la valeur est aligné à droite du rectangle.
  # Position HP [x, y, longueur, hauteur]
  FD_HP = [50, 30, 100, 32]      # Points de vie
  FD_MP = [50, 55, 100, 32]      # Points de magie
  FD_ATK = [300,  50, 200, 32]    # Attaque
  FD_DEF = [300,  80, 200, 32]    # Défense
  FD_SPI = [300, 110, 200, 32]    # Esprit
  FD_AGI = [300, 140, 200, 32]    # Agilité
  FD_EXP  = [10, 335, 100, 32]    # Experience
  FD_GOLD = [10, 360, 100, 32]    # Argent
  # Mots désignants respectivement l'experience et les objets pouvant être laissé
  # par l'ennemi.
  FD_MEXP  = "EXP"
  FD_MDROP = "Objets"
  # Position du mot FD_MDROP [x, y, longueur, hauteur]
  FD_DROP = [10, 385, 200, 32]
  # Position des objets droppé par l'ennemi [x, y, longueur, hauteur]
  FD_DR1 = [150, 385, 212, 32]
  FD_DR2 = [150, 410, 200, 32]
  # Graphique des défenses élémentales [x, y, rayon]
  FD_GDE = [300, 200, 30]
  ##=====> Fin positionnement des éléments pour 640x480 <=====##
end

#==============================================================================
# Graphic_Def_Elem
#==============================================================================
class Window_Base
FONT_SIZE          = 18
WORD_ELEMENT_GUARD = "Déf. Elémentale"
NUMBER_OF_ELEMENTS =    6
ELEMENT_ORDER      = [1,3,4,5,2,4,6]
GRAPH_SCALINE_COLOR        = Color.new(255, 255, 255, 128)
GRAPH_SCALINE_COLOR_SHADOW = Color.new(  0,  0,  0, 192)
GRAPH_LINE_COLOR          = Color.new(255, 255,  64, 255)
GRAPH_LINE_COLOR_MINUS    = Color.new( 64, 255, 255, 255)
GRAPH_LINE_COLOR_PLUS      = Color.new(255,  64,  64, 255)
end

#==============================================================================
# ■ Scene_Battle
#------------------------------------------------------------------------------
# Ajoute les monstres tués aux variables lorsqu'on gagne un combat ou fuit.
#==============================================================================
class Scene_Battle
  include KRAZ_SLM
 
  alias kraz_slm_process_victory process_victory
  def process_victory
    compte_les_morts
    kraz_slm_process_victory
  end
 
  alias kraz_slm_process_escape process_escape
  def process_escape
    compte_les_morts
    kraz_slm_process_escape
  end
 
  def compte_les_morts
    for enemy in $game_troop.members
      if enemy.dead?
        KRAZ_SLM.ajout_nombre_tués(enemy.enemy_id, 1)
      end
    end
  end
end

#==============================================================================
# ■ Scene_Liste_Monstres
#------------------------------------------------------------------------------
# La scène du bestiaire, tout simplement.
#==============================================================================
class Scene_Liste_Monstres
  include KRAZ_SLM
 
  def initialize(vient_du_menu = true)
    # Pour savoir si l'on retourne au menu ou sur la carte à la fin de la scene.
    @vient_du_menu = vient_du_menu
    # Sert à vérifier si l'index de la fenêtre monstres a changé.
    # -1 pour forcer la mise à jour dès le départ
    @monstres_index = -1
  end
 
  def main
    @general_window = Window_General.new
    @monstres_window = Window_Monstres.new
    @details_monstre_window = Window_Details_Monstre.new
    @general_window.set_max_monstres(@monstres_window.data.size)
    @details_monstre_window.openness = 0
    @details_monstre_window.active = false
    Graphics.transition
    loop do
      Graphics.update
      Input.update
      update
      if $scene != self
        break
      end
    end
    @general_window.dispose
    @monstres_window.dispose
  end
 
  def update
    # Mise à jour des fenêtre
    @general_window.update
    @monstres_window.update
    @details_monstre_window.update
    # On vérifie si le curseur a bougé
    if @monstres_window.index != @monstres_index
      @monstres_index = @monstres_window.index
      @general_window.affiche_numero(@monstres_index+1)
    end
    # Bouton de confirmation
    if Input.trigger?(Input::C)
      if @monstres_window.active and @monstres_window.data.size > 0
        id_monstre = @monstres_window.data[@monstres_window.index][2]
        if KRAZ_SLM.nombre_tués(id_monstre) > 0 or DETAILS_PAR_DEFAUT
          @details_monstre_window.refresh(id_monstre)
          @details_monstre_window.active = true
          @details_monstre_window.open
          @monstres_window.active = false
          Sound.play_decision
        else
          Sound.play_buzzer
        end
      end
    # Bouton d'annulation
    elsif Input.trigger?(Input::B)
      Sound.play_cancel
      if @monstres_window.active
        $scene = @vient_du_menu ? Scene_Menu.new(POSITION_DS_MENU) : Scene_Map.new
        Graphics.freeze
      elsif @details_monstre_window.active
        @details_monstre_window.active = false
        @details_monstre_window.close
        @monstres_window.active = true
      end
    end
    if @details_monstre_window.active
      # Passage d'un monstre à l'autre lorsqu'on regarde leurs détails
      if Input.repeat?(Input::RIGHT) or Input.repeat?(Input::DOWN)
        data = @monstres_window.data
        new_index = index = @monstres_window.index
        data.size.times do
          new_index +=1
          new_index = 0 if new_index >= data.size
          break if DETAILS_PAR_DEFAUT or data[new_index][1] > 0
        end
        if new_index != index
          @details_monstre_window.refresh(data[new_index][2])
          Sound.play_cursor
          @monstres_window.index = new_index
        end
      elsif Input.repeat?(Input::LEFT) or Input.repeat?(Input::UP)
        data = @monstres_window.data
        new_index = index = @monstres_window.index
        data.size.times do
          new_index -=1
          new_index = data.size-1 if new_index < 0
          break if DETAILS_PAR_DEFAUT or data[new_index][1] > 0
        end
        @details_monstre_window.refresh(data[new_index][2]) if new_index != index
        @monstres_window.index = new_index
        if new_index != index
          @details_monstre_window.refresh(data[new_index][2])
          Sound.play_cursor
          @monstres_window.index = new_index
        end
      end
    end
  end # update_command
end # class Scene_Liste_Monstres

#==============================================================================
# ■ Window_General
#------------------------------------------------------------------------------
# Fenêtre général
#==============================================================================
class Window_General < Window_Base
  include KRAZ_SLM
 
  def initialize
    super(0, 0, Graphics.width, Graphics.height)
    @max = 0
    refresh
  end
 
  def refresh
    self.contents.font.size = FG_TP
    self.contents.font.color = system_color
    self.contents.draw_text(FG_PD1[0], FG_PD1[1], FG_PD1[2], FG_PD1[3], FG_COL1)
    self.contents.draw_text(FG_PD2[0], FG_PD2[1], FG_PD2[2], FG_PD2[3], FG_COL2)
  end
 
  def affiche_numero(ind=1)
    # On efface une partie de la fenêtre (RGSS2!) avant d'écrire dessus
    self.contents.clear_rect(FG_NM[0], FG_NM[1], FG_NM[2], FG_NM[3])
    self.contents.draw_text(FG_NM[0], FG_NM[1], FG_NM[2], FG_NM[3], "Monstre #{ind} / #{@max}")
  end
 
  def set_max_monstres(max)
    @max = max
  end
end
 
#==============================================================================
# ■ Window_Monstres
#------------------------------------------------------------------------------
# Fenêtre avec le nom de tout les ennemis tués et combien de fois ils ont été
# tués. Seul le texte de la fenêtre reste visible (l'opacité et l'opacité du
# fond est mise à zéro).
#==============================================================================
class Window_Monstres < Window_Selectable
  include KRAZ_SLM
 
  attr_reader  :data
 
  def initialize
    # Création de la fenêtre, on s'assure qu'elle au-dessus de la fenêtre 'General'
    super(FM[0], FM[1], FM[2], FM[3])
    # On ne veut voir que le texte, donc opacité et back_opacity à 0
    self.back_opacity = 0
    self.opacity = 0
    # Index à zéro lorsqu'on commence, une seule colonne
    self.index = 0
    @column_max = 1
    # @data est le tableau des données qui vont être affichées.
    # Ces éléments sont des tableaux [nom du monstre, nombre tué, id du monstre]
    @data = []
    # Remplissage de @data
    for monstre in $data_enemies
      next if monstre == nil
      id = monstre.id
      tués = KRAZ_SLM.nombre_tués(id)
      if tués == 0
        next if MONSTRES_INCONNUS_INVISIBLES
        nom = NOMS_PAR_DEFAUT ? monstre.name : NOM_MONSTRE_INCONNU
        @data.push([nom, tués, id])
      else
        nom = monstre.name
        @data.push([nom, tués, id])
      end
    end
    # Le nombre d'objets dans notre liste c'est évidement le nombre de monstre
    # qu'on va afficher
    @item_max = @data.size
    # Va mettre le bitmap à la bonne taille
    create_contents
    refresh
  end

  def refresh
    self.contents.clear
    for i in 0...@item_max
      draw_item(i)
    end
  end
 
  def draw_item(index)
    tab_monstre = @data[index]
    if tab_monstre != nil
      self.contents.draw_text( FM_NM[0], (WLH * index), FM_NM[1], WLH, tab_monstre[0])
      self.contents.draw_text(FM_NMT[0], (WLH * index),FM_NMT[1], WLH, tab_monstre[1].to_s, 2)
    end
  end
 
  def item_rect(index)
    rect = Rect.new(0, 0, 0, 0)
    rect.width = (contents.width + @spacing) / @column_max - @spacing
    rect.height = WLH
    rect.x = index % @column_max * (rect.width + @spacing)
    rect.y = index / @column_max * WLH
    return rect
  end
 
  def update
    super
    if @column_max == 1 and self.active
      if Input.repeat?(Input::RIGHT)
        cursor_pagedown
      end
      if Input.repeat?(Input::LEFT)
        cursor_pageup
      end
    end
  end
 
end #class Window_Monstres

#==============================================================================
# ■ Window_details_monstre
#------------------------------------------------------------------------------
# Permet de créer une fenêtre avec les détails d'un ennemi
#==============================================================================
class Window_Details_Monstre < Window_Base
  include KRAZ_SLM
 
  def initialize
    super(FD[0], FD[1], FD[2], FD[3])
    self.contents = Bitmap.new(width-32, height-32)
    self.back_opacity = 255
  end
 
  def update
    if @opening
      self.openness += FD_V
      @opening = false if self.openness == 255
    elsif @closing
      self.openness -= FD_V
      @closing = false if self.openness == 0
    end
  end
 
  def refresh(monstre_id)
    self.contents.clear
    draw_actor_battler($data_enemies[monstre_id], FD_B[0], FD_B[1])
    self.contents.font.size = FD_TT
    self.contents.font.color = Color.new(FD_CT[0], FD_CT[1], FD_CT[2], FD_CT[3])
    monster_name_width = contents.text_size($data_enemies[monstre_id].name).width
    self.contents.draw_text(FD_NM[0]-(monster_name_width/2), FD_NM[1], FD_NM[2], FD_NM[3], $data_enemies[monstre_id].name)
    self.contents.font.size = FD_TP
    if FD_COLOR_SYSTEM
      self.contents.font.color = system_color
    else
      self.contents.font.color = Color.new(FD_CSA[0], FD_CSA[1], FD_CSA[2], FD_CSA[3])
    end
    self.contents.draw_text(FD_HP[0], FD_HP[1], FD_HP[2], FD_HP[3], "#{Vocab.hp} :")
    self.contents.draw_text(FD_MP[0], FD_MP[1], FD_MP[2], FD_MP[3], "#{Vocab.mp} :")
    self.contents.draw_text(FD_ATK[0], FD_ATK[1], FD_ATK[2], FD_ATK[3], "#{Vocab.atk} :")
    self.contents.draw_text(FD_DEF[0], FD_DEF[1], FD_DEF[2], FD_DEF[3], "#{Vocab.def} :")
    self.contents.draw_text(FD_SPI[0], FD_SPI[1], FD_SPI[2], FD_SPI[3], "#{Vocab.spi} :")
    self.contents.draw_text(FD_AGI[0], FD_AGI[1], FD_AGI[2], FD_AGI[3], "#{Vocab.agi} :")
    self.contents.draw_text(FD_EXP[0], FD_EXP[1], FD_EXP[2], FD_EXP[3], FD_MEXP+" :")
    self.contents.draw_text(FD_GOLD[0], FD_GOLD[1], FD_GOLD[2], FD_GOLD[3], "#{Vocab.gold} :")
    self.contents.draw_text(FD_DROP[0], FD_DROP[1], FD_DROP[2], FD_DROP[3], FD_MDROP+" :")
    self.contents.font.color = normal_color
    self.contents.draw_text(FD_HP[0], FD_HP[1], FD_HP[2], FD_HP[3], $data_enemies[monstre_id].maxhp.to_s, 2)
    self.contents.draw_text(FD_MP[0], FD_MP[1], FD_MP[2], FD_MP[3], $data_enemies[monstre_id].maxmp.to_s, 2)
    self.contents.draw_text(FD_ATK[0], FD_ATK[1], FD_ATK[2], FD_ATK[3], $data_enemies[monstre_id].atk.to_s, 2)
    self.contents.draw_text(FD_DEF[0], FD_DEF[1], FD_DEF[2], FD_DEF[3], $data_enemies[monstre_id].def.to_s, 2)
    self.contents.draw_text(FD_SPI[0], FD_SPI[1], FD_SPI[2], FD_SPI[3], $data_enemies[monstre_id].spi.to_s, 2)
    self.contents.draw_text(FD_AGI[0], FD_AGI[1], FD_AGI[2], FD_AGI[3], $data_enemies[monstre_id].agi.to_s, 2)
   
    self.contents.draw_text(FD_EXP[0], FD_EXP[1], FD_EXP[2], FD_EXP[3], $data_enemies[monstre_id].exp.to_s, 2)
    self.contents.draw_text(FD_GOLD[0], FD_GOLD[1], FD_GOLD[2], FD_GOLD[3], $data_enemies[monstre_id].gold.to_s, 2)
    # Affichage objets que peuvent donner les ennemis
    if $data_enemies[monstre_id].drop_item1.kind != 0
      item = $data_enemies[monstre_id].drop_item1
      case item.kind
      when 1
        icon_index = $data_items[item.item_id].icon_index
        name = $data_items[item.item_id].name
      when 2
        icon_index = $data_weapons[item.weapon_id].icon_index
        name = $data_weapons[item.item_id].name
      when 3
        icon_index = $data_armors[item.armor_id].icon_index
        name = $data_armors[item.item_id].name
      end
      opacity = self.contents.font.color == normal_color ? 255 : 128
      denom = $data_enemies[monstre_id].drop_item1.denominator.to_s
     
      draw_icon(icon_index, FD_DR1[0], FD_DR1[1]+4)
      self.contents.draw_text(FD_DR1[0]+30, FD_DR1[1], FD_DR1[2], FD_DR1[3], name + " (1/#{denom})", 0)
    end
    if $data_enemies[monstre_id].drop_item2.kind != 0
      item = $data_enemies[monstre_id].drop_item2
      case item.kind
      when 1
        icon_index = $data_items[item.item_id].icon_index
        name = $data_items[item.item_id].name
      when 2
        icon_index = $data_weapons[item.weapon_id].icon_index
        name = $data_weapons[item.item_id].name
      when 3
        icon_index = $data_armors[item.armor_id].icon_index
        name = $data_armors[item.item_id].name
      end
      opacity = self.contents.font.color == normal_color ? 255 : 128
      denom = $data_enemies[monstre_id].drop_item2.denominator
      draw_icon(icon_index, FD_DR2[0], FD_DR2[1]+4)
      self.contents.draw_text(FD_DR2[0]+30, FD_DR2[1], FD_DR2[2], FD_DR2[3], name + " (1/#{denom})", 0)
    end
    self.draw_enemy_element_radar_graph($data_enemies[monstre_id], FD_GDE[0], FD_GDE[1], FD_GDE[2])
  end
end

#--------------------------------------------------------------------------
# ● draw_actor_battler
#  Dessine le battler de l'acteur aux coordonnées x,y
#  L'acteur peut aussi bien être un monstre qu'un personnage
#--------------------------------------------------------------------------
class Window_Base
  def draw_actor_battler(actor, x, y)
    bitmap = Cache.battler(actor.battler_name, actor.battler_hue)
    cw = bitmap.width
    ch = bitmap.height
    src_rect = Rect.new(0, 0, cw, ch)
    self.contents.blt(x - cw / 2, y - ch / 2, bitmap, src_rect)
  end
end

#==============================================================================
# �¡ Window_Status
#==============================================================================
class Window_Base
#--------------------------------------------------------------------------
def draw_enemy_element_radar_graph(enemy, x, y, radius = 56)
  cx = x + radius + FONT_SIZE + 48
  cy = y + radius + FONT_SIZE + 32
  self.contents.font.color = system_color
  #self.contents.draw_text(x, y, 134, 32, WORD_ELEMENT_GUARD)
  for loop_i in 0..NUMBER_OF_ELEMENTS
    if loop_i == 0
     
    else
      @pre_x  = @now_x
      @pre_y  = @now_y
      @pre_ex = @now_ex
      @pre_ey = @now_ey
      @color1 = @color2
    end
    if loop_i == NUMBER_OF_ELEMENTS
      eo = ELEMENT_ORDER[0]
    else
      eo = ELEMENT_ORDER[loop_i]
    end
    er = element_pourcent(enemy, eo)
    estr = $data_system.elements[eo]
    @color2 = er < 0 ? GRAPH_LINE_COLOR_MINUS : er > 100 ? GRAPH_LINE_COLOR_PLUS : GRAPH_LINE_COLOR
    th = Math::PI * (0.5 - 2.0 * loop_i / NUMBER_OF_ELEMENTS)
    @now_x  = cx + (radius * Math.cos(th)).floor
    @now_y  = cy - (radius * Math.sin(th)).floor
    @now_wx = cx + ((radius+FONT_SIZE*2/2) * Math.cos(th)).floor - FONT_SIZE
    @now_wy = cy - ((radius+FONT_SIZE*1/2) * Math.sin(th)).floor - FONT_SIZE/2
    @now_vx = cx + ((radius+FONT_SIZE*6/2) * Math.cos(th)).floor - FONT_SIZE
    @now_vy = cy - ((radius+FONT_SIZE*3/2) * Math.sin(th)).floor - FONT_SIZE/2
    @now_ex = cx + (er.abs*radius/100 * Math.cos(th)).floor
    @now_ey = cy - (er.abs*radius/100 * Math.sin(th)).floor
    if loop_i == 0
      @pre_x  = @now_x
      @pre_y  = @now_y
      @pre_ex = @now_ex
      @pre_ey = @now_ey
      @color1 = @color2
    else
     
    end
    next if loop_i == 0
    self.contents.draw_line(cx+1,cy+1, @now_x+1,@now_y+1, GRAPH_SCALINE_COLOR_SHADOW)
    self.contents.draw_line(@pre_x+1,@pre_y+1, @now_x+1,@now_y+1, GRAPH_SCALINE_COLOR_SHADOW)
    self.contents.draw_line(cx,cy, @now_x,@now_y, GRAPH_SCALINE_COLOR)
    self.contents.draw_line(@pre_x,@pre_y, @now_x,@now_y, GRAPH_SCALINE_COLOR)
    self.contents.draw_line(@pre_ex,@pre_ey, @now_ex,@now_ey, @color1, 2, @color2)
    self.contents.font.size = FONT_SIZE
    self.contents.font.color = system_color
    self.contents.draw_text(@now_wx,@now_wy, FONT_SIZE*2, FONT_SIZE, estr, 1)
    self.contents.font.color = Color.new(255,255,255,128)
    self.contents.draw_text(@now_vx,@now_vy, FONT_SIZE*2, FONT_SIZE, er.to_s + "%", 2)
  end
end

  #--------------------------------------------------------------------------
  # ● 属性補正値の取得
  #    element_id : 属性 ID
  #--------------------------------------------------------------------------
  def element_pourcent(enemy, element_id)
    table = [0,200,150,100,50,0,-100]
    return table[enemy.element_ranks[element_id]]
  end
end
#==============================================================================
# �¸ ¦O�����C�u���¦
#==============================================================================
class Bitmap
def draw_line(start_x, start_y, end_x, end_y, start_color, width = 1, end_color = start_color)
  distance = (start_x - end_x).abs + (start_y - end_y).abs
  if end_color == start_color
    for i in 1..distance
      x = (start_x + 1.0 * (end_x - start_x) * i / distance).to_i
      y = (start_y + 1.0 * (end_y - start_y) * i / distance).to_i
      if width == 1
        self.set_pixel(x, y, start_color)
      else
        self.fill_rect(x, y, width, width, start_color)
      end
    end
  else
    for i in 1..distance
      x = (start_x + 1.0 * (end_x - start_x) * i / distance).to_i
      y = (start_y + 1.0 * (end_y - start_y) * i / distance).to_i
      r = start_color.red  * (distance-i)/distance + end_color.red  * i/distance
      g = start_color.green * (distance-i)/distance + end_color.green * i/distance
      b = start_color.blue  * (distance-i)/distance + end_color.blue  * i/distance
      a = start_color.alpha * (distance-i)/distance + end_color.alpha * i/distance
      if width == 1
        self.set_pixel(x, y, Color.new(r, g, b, a))
      else
        self.fill_rect(x, y, width, width, Color.new(r, g, b, a))
      end
    end
  end
end
end
Revenir en haut Aller en bas
http://therapie-rmvx.jimdo.com
thérapie
Aventurier Lv.16
Aventurier Lv.16
thérapie


Masculin Age : 28
Inscrit le : 03/08/2009
Messages : 1399

Résumé de monstre Empty
MessageSujet: Re: Résumé de monstre   Résumé de monstre Icon_minitimeMar 27 Oct 2009 - 17:44

Up
(s'il vous plait ne m'oubliés pas xD)

EDIT : Re Up (le dernier je pense... Sad )
s'il vous plait si c'est simple faite moi le ou alor dite moi comment... (je préfére la première solution car je suis vraiment lamentable niveau scrip)
Revenir en haut Aller en bas
http://therapie-rmvx.jimdo.com
Contenu sponsorisé




Résumé de monstre Empty
MessageSujet: Re: Résumé de monstre   Résumé de monstre Icon_minitime

Revenir en haut Aller en bas
 

Résumé de monstre

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

 Sujets similaires

-
» monstre
» Monstre sur la map
» SBS monstre en mouvement ?
» Créer son monstre.
» Vue d'un monstre pour un A-RPG

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
RPG Maker VX :: Entraide :: Scripts :: Requêtes :: Archives-
Créer un forum | ©phpBB | Forum gratuit d'entraide | Signaler un abus | Forum gratuit