Partagez
Aller en bas
avatar
MrGREG
Membre

Nombre de messages : 71
Age : 35
Localisation : loir et cher (41)
Distinction : aucune
Date d'inscription : 20/08/2013

Résolu [résolu]Modification de script d'origine de rpg maker

le Jeu 12 Déc 2013 - 11:00
Bonjour,

j'aimerais modifier des éléments "standard" de RPG maker.

j'ai par exemple trouvé où modifier le nombre de sauvegarde et ça marche nikel.
Il y à par contre 2 choses que j'aimerais modifier, mais je ne sais pas ou trouver les paramètre.

1 - je voudrais changer la couleur de l'argent quand on demande un affichage de la fenêtre avec \$
(la commande \C[N°couleur] ne fonctionne pas sur cet élément)

2 - J'aimerais que lorsque je suis dans un magasin, je puisse comparer tout les paramètres de mes équipements quand j'en achète un nouveau (pas seulement la défense pour une armure par exemple). J'aimerais que l'agilité, l'attaque, etc... (les 8critères) soit affiché dans mes boutiques)

Voila, j'espère que les questions sont suffisamment clair pour que vous puissiez m'aider.

Merci d'avance...
avatar
vincent26
Membre

Nombre de messages : 766
Age : 23
Localisation : baume de transit le village paumé
Distinction : aucune
Date d'inscription : 17/08/2010

Résolu Re: [résolu]Modification de script d'origine de rpg maker

le Jeu 12 Déc 2013 - 17:43
salut
pour la couleur de l'argent
dans windows_base
ligne 555
ta ça :
 def draw_currency_value(value, unit, x, y, width)
   cx = text_size(unit).width
   change_color(normal_color)
   draw_text(x, y, width - cx - 2, line_height, value, 2)
   change_color(system_color)
   draw_text(x, y, width, line_height, unit, 2)
 end

remplace normal_color par text_color(iddetacouleur)
pour le chiffre
et system_color par text_color(iddetacouleur)
pour ton unité

cela change aussi la couleur dans le menu ^^

pour les objet dans le magasin remplace tout
Window_ShopStatus
par
Code:

#==============================================================================
# ** Window_ShopStatus
#------------------------------------------------------------------------------
#  This window displays number of items in possession and the actor's
# equipment on the shop screen.
#==============================================================================

class Window_ShopStatus < Window_Base
  #--------------------------------------------------------------------------
  # * Object Initialization
  #--------------------------------------------------------------------------
  def initialize(x, y, width, height)
    super(x, y, width, height)
    @item = nil
    @page_index = 0
    @nbr_ligne = 1
    @scroll_pos = -50
    refresh
  end
  #--------------------------------------------------------------------------
  # * Refresh
  #--------------------------------------------------------------------------
  def refresh
    contents.clear
    @nbr_ligne = 1
    @scroll_pos = -50
    draw_possession(4, 0)
    draw_equip_info(4, line_height * 1) if @item.is_a?(RPG::EquipItem)
  end
  #--------------------------------------------------------------------------
  # * Set Item
  #--------------------------------------------------------------------------
  def item=(item)
    @item = item
    refresh
  end
  #--------------------------------------------------------------------------
  # * Draw Quantity Possessed
  #--------------------------------------------------------------------------
  def draw_possession(x, y)
    rect = Rect.new(x, y, contents.width - 4 - x, line_height)
    change_color(system_color)
    draw_text(rect, Vocab::Possession)
    change_color(normal_color)
    draw_text(rect, $game_party.item_number(@item), 2)
  end
  #--------------------------------------------------------------------------
  # * Draw Equipment Information
  #--------------------------------------------------------------------------
  def draw_equip_info(x, y)
    y1 = y
    status_members.each_with_index do |actor, i|
      if actor.equippable?(@item) == true
        draw_actor_equip_info(x, y1, actor)
        y1 = y1 + line_height*(@différent+1)+0.5
        @nbr_ligne += @différent+1
      else
        draw_actor_equip_info(x, y1, actor)
        y1 = y1 + line_height * 2+0.5
        @nbr_ligne += 2
      end
    end
  end
  #--------------------------------------------------------------------------
  # * Array of Actors for Which to Draw Equipment Information
  #--------------------------------------------------------------------------
  def status_members
    $game_party.members[@page_index * page_size, page_size]
  end
  #--------------------------------------------------------------------------
  # * Number of Actors Displayable at Once
  #--------------------------------------------------------------------------
  def page_size
    return 100
  end
  #--------------------------------------------------------------------------
  # * Get Maximum Number of Pages
  #--------------------------------------------------------------------------
  def page_max
    ($game_party.members.size + page_size - 1) / page_size
  end
  #--------------------------------------------------------------------------
  # * Draw Actor Equipment Information
  #--------------------------------------------------------------------------
  def draw_actor_equip_info(x, y, actor)
    enabled = actor.equippable?(@item)
    change_color(normal_color, enabled)
    draw_text(x, y, 112, line_height, actor.name)
    item1 = current_equipped_item(actor, @item.etype_id)
    if enabled
      draw_actor_param_change(x, y, actor, item1)
      draw_item_name(item1, x, y + line_height*(@différent), enabled)
    else
      draw_item_name(item1, x, y + line_height, enabled)
    end
  end
  #--------------------------------------------------------------------------
  # * Draw Actor Parameter Change
  #--------------------------------------------------------------------------
  def draw_actor_param_change(x, y, actor, item1)
    @différent = 0
    for i in 0..7
      @critere = ["Attaque","Défense","Magie","Déf.Magique","Agilité","Chance","PV Max","PM Max"]
      @ordre = [2,3,4,5,6,7,0,1]
      change = @item.params[@ordre[i]] - (item1 ? item1.params[@ordre[i]] : 0)
      if change != 0
        change_color(param_change_color(change))
        rect = Rect.new(x, y+line_height*@différent, contents.width - 4 - x, line_height)
        change = @item.params[@ordre[i]] - (item1 ? item1.params[@ordre[i]] : 0)
        change_color(param_change_color(change))
        draw_text(rect, @critere[i]+sprintf("%+d", change), 2)
        @différent += 1
      end
    end
  end
  #--------------------------------------------------------------------------
  # * Get Parameter ID Corresponding to Selected Item
  #    By default, ATK if weapon and DEF if armor.
  #--------------------------------------------------------------------------
  def param_id
    @item.is_a?(RPG::Weapon) ? 2 : 3
  end
  #--------------------------------------------------------------------------
  # * Get Current Equipment
  #    Returns the weaker equipment if there is more than one of the same type,
  #    such as with dual wield.
  #--------------------------------------------------------------------------
  def current_equipped_item(actor, etype_id)
    list = []
    actor.equip_slots.each_with_index do |slot_etype_id, i|
      list.push(actor.equips[i]) if slot_etype_id == etype_id
    end
    list.min_by {|item| item ? item.params[param_id] : 0 }
  end
  #--------------------------------------------------------------------------
  # * Frame Update
  #--------------------------------------------------------------------------
  def update
    super
    update_page
    contents.clear
    if @nbr_ligne >= 11
      @scroll_pos += 0.5
      @scroll_pos = -50 if @scroll_pos >= (@nbr_ligne*line_height-50 )
    else
      @scroll_pos = 0
    end
    @nbr_ligne = 1
    draw_possession(4, 0-@scroll_pos)
    draw_equip_info(4, line_height * 1-@scroll_pos) if @item.is_a?(RPG::EquipItem)
  end
  #--------------------------------------------------------------------------
  # * Update Page
  #--------------------------------------------------------------------------
  def update_page
    if visible && Input.trigger?(:A) && page_max > 1
      @page_index = (@page_index + 1) % page_max
      refresh
    end
  end
end

ensuite ligne 103-104
tu peut gérer ce que tu veut afficher et dans quelle ordre ^^
le problème si ta 2 perso ou plus on voit plus pour eux dans la fenêtre sa prend trop de place
on ne voit que pour ton perso principale si c'est équipable pour lui sinon j'ai fait en sorte que
les nom des autre remonte enfin si c'est pas très clair tu n'a qu'a tester ^^

par contre j'ai fait sa vite fait je sait pas si ça marche dans tout les cas a tester donc

EDIT : code modifier pour amélioration il risque d'être remodifier

REEDIT :

Code modifier il y a désormais le scrolling des critère pour chaque  perso donc on les voit tous on peut modifier la vitesse de défilement
ligne 143 tu remplace 0.5 par ce que tu veut

REREEDIT :

On ne voit plus que les critère que l'objet modifie plutôt que d'avoir  un "attaque +0" par ex


Dernière édition par vincent26 le Jeu 12 Déc 2013 - 20:54, édité 7 fois
avatar
Ewaldar
Membre

Nombre de messages : 1387
Age : 25
Localisation : Suisse
Distinction : aucune
Date d'inscription : 29/12/2011
http://ewaldar.wixsite.com/les-ames-perdues

Résolu Re: [résolu]Modification de script d'origine de rpg maker

le Jeu 12 Déc 2013 - 19:27
Si j'étais toi, je créerais un nouveau script avec aliasing des méthodes (je crois que cela s'appelle comme ça).
Modifier les scripts de base n'est pas une bonne idée : dans le futur, tu ne sauras plus où tu as fait des modifs, et ça va te compliquer la vie.
avatar
vincent26
Membre

Nombre de messages : 766
Age : 23
Localisation : baume de transit le village paumé
Distinction : aucune
Date d'inscription : 17/08/2010

Résolu Re: [résolu]Modification de script d'origine de rpg maker

le Jeu 12 Déc 2013 - 20:12
ben la je vient de faire la grosse modif. j'ai test il marche (enfin je pense que je l'ai bien testé ^^)
voir le REEDIT

je vais le modifier encore
je vais faire en sorte que ne s'affiche que les critère qui sont modifier

EDIT chose faite

De plus grace au scrolling on peut afficher autant de perso que l'on veut on n'est plus limité a 4
avatar
MrGREG
Membre

Nombre de messages : 71
Age : 35
Localisation : loir et cher (41)
Distinction : aucune
Date d'inscription : 20/08/2013

Résolu Re: [résolu]Modification de script d'origine de rpg maker

le Ven 13 Déc 2013 - 9:24
Bonjour,

Pour la modification de couleur pas de problème, ça marche au poile.

Concernant le script pour le magasin, ça marche, mais pas a chaque fois.
ça dépend des équipements.(c'est bizarre d’ailleurs)

Bug Armes

Bug Armures

Pas de Bug


Je te met quelques exemples, mais dans le projet il y a eu plusieurs problèmes du genre.
Peux-tu voir d’où cela vient ?

Sinon une petite demande de modification concernant le scroling ; est-ce que c'est possible de faire défiler avec (L & R) plutôt qu'en automatique ? Ou même carrément que je puisse avoir le choix de l'un ou de l'autre (faut que je vois a l'usage en fait). C'est pas prioritaire bien-sur. je veux surtout que les magasin s'affichent correctement avec toutes les information utiles.

Merci d'avance pour la suite...
avatar
vincent26
Membre

Nombre de messages : 766
Age : 23
Localisation : baume de transit le village paumé
Distinction : aucune
Date d'inscription : 17/08/2010

Résolu Re: [résolu]Modification de script d'origine de rpg maker

le Ven 13 Déc 2013 - 9:46
je te fait ça dès que possible je pense ce soir ^^
avatar
MrGREG
Membre

Nombre de messages : 71
Age : 35
Localisation : loir et cher (41)
Distinction : aucune
Date d'inscription : 20/08/2013

Résolu Re: [résolu]Modification de script d'origine de rpg maker

le Ven 13 Déc 2013 - 12:11
Merci beaucoup.

Du coup Si je peux en profiter pour demander que pour le défilement il y ait le curseur de défilement standard du fichier "windows" du projet avec la touche d'indiqué a coté pour que le joueur sache comment faire défiler.

Je met l'image pour le principe, même si je pense que tu vois bien de quoi je parle (les flèches jaune)


Merci d'avance...
avatar
vincent26
Membre

Nombre de messages : 766
Age : 23
Localisation : baume de transit le village paumé
Distinction : aucune
Date d'inscription : 17/08/2010

Résolu Re: [résolu]Modification de script d'origine de rpg maker

le Ven 13 Déc 2013 - 23:43
J'ai trouver d’où vient le bug c'est lorsque tu sélection un objet du magasin qu'un de tes perso a déjà je vais regarder ^^
avatar
MrGREG
Membre

Nombre de messages : 71
Age : 35
Localisation : loir et cher (41)
Distinction : aucune
Date d'inscription : 20/08/2013

Résolu Re: [résolu]Modification de script d'origine de rpg maker

le Ven 13 Déc 2013 - 23:52
@vincent26 a écrit:J'ai trouver d’où vient le bug c'est lorsque tu sélection un objet du magasin qu'un de tes perso a déjà je vais regarder ^^

Pas de problème, prend le temps qu'il faut.

si en même temps, tu peux ajouter le curseur haut et bas avec le nom de la touche à utiliser ça sera parfait.

J'ai fait un montage très moche, mais qui explique bien le principe de ce que je veux dire.

Après il faut que ça apparaisse seulement quand c'est nécessaire.(si c'est pas trop chiant bien sur, sinon met le tout le temps)

En tout cas, merci bien...  Very Happy
avatar
vincent26
Membre

Nombre de messages : 766
Age : 23
Localisation : baume de transit le village paumé
Distinction : aucune
Date d'inscription : 17/08/2010

Résolu Re: [résolu]Modification de script d'origine de rpg maker

le Sam 14 Déc 2013 - 1:21
Pour le moment ça resemble a cela mais j'essaye de corriger un petit bug ^^
image:



EDIT voila fini
ligne 165 tu peut changer la couleur du texte des flèche
suivant ce tableau :



Code:

#==============================================================================
# ** Window_ShopStatus
#------------------------------------------------------------------------------
#  This window displays number of items in possession and the actor's
# equipment on the shop screen.
#==============================================================================

class Window_ShopStatus < Window_Base
  #--------------------------------------------------------------------------
  # * Object Initialization
  #--------------------------------------------------------------------------
  def initialize(x, y, width, height)
    super(x, y, width, height)
    @item = nil
    @page_index = 0
    @nbr_ligne = 1
    @scroll_pos = 0
    refresh
  end
  #--------------------------------------------------------------------------
  # * Refresh
  #--------------------------------------------------------------------------
  def refresh
    contents.clear
    @nbr_ligne = 1
    @scroll_pos = 0
    draw_possession(4, 0)
    draw_equip_info(4, line_height * 1) if @item.is_a?(RPG::EquipItem)
  end
  #--------------------------------------------------------------------------
  # * Set Item
  #--------------------------------------------------------------------------
  def item=(item)
    @item = item
    refresh
  end
  #--------------------------------------------------------------------------
  # * Draw Quantity Possessed
  #--------------------------------------------------------------------------
  def draw_possession(x, y)
    rect = Rect.new(x, y, contents.width - 4 - x, line_height)
    change_color(system_color)
    draw_text(rect, Vocab::Possession)
    change_color(normal_color)
    draw_text(rect, $game_party.item_number(@item), 2)
  end
  #--------------------------------------------------------------------------
  # * Draw Equipment Information
  #--------------------------------------------------------------------------
  def draw_equip_info(x, y)
    y1 = y
    status_members.each_with_index do |actor, i|
      if actor.equippable?(@item) == true
        draw_actor_equip_info(x, y1, actor)
        y1 = y1 + line_height*(@différent+1)+0.5
        @nbr_ligne += @différent+1
      else
        draw_actor_equip_info(x, y1, actor)
        y1 = y1 + line_height * 2+0.5
        @nbr_ligne += 2
      end
    end
  end
  #--------------------------------------------------------------------------
  # * Array of Actors for Which to Draw Equipment Information
  #--------------------------------------------------------------------------
  def status_members
    $game_party.members[@page_index * page_size, page_size]
  end
  #--------------------------------------------------------------------------
  # * Number of Actors Displayable at Once
  #--------------------------------------------------------------------------
  def page_size
    return 10
  end
  #--------------------------------------------------------------------------
  # * Get Maximum Number of Pages
  #--------------------------------------------------------------------------
  def page_max
    ($game_party.members.size + page_size - 1) / page_size
  end
  #--------------------------------------------------------------------------
  # * Draw Actor Equipment Information
  #--------------------------------------------------------------------------
  def draw_actor_equip_info(x, y, actor)
    enabled = actor.equippable?(@item)
    change_color(normal_color, enabled)
    draw_text(x, y, 112, line_height, actor.name)
    item1 = current_equipped_item(actor, @item.etype_id)
    if enabled
      draw_actor_param_change(x, y, actor, item1)
      @différent -= 1 if @différent != 1
      draw_item_name(item1, x, y + line_height*(@différent), enabled)
    else
      draw_item_name(item1, x, y + line_height, enabled)
    end
  end
  #--------------------------------------------------------------------------
  # * Draw Actor Parameter Change
  #--------------------------------------------------------------------------
  def draw_actor_param_change(x, y, actor, item1)
    @différent = 1
    for i in 0..7
      @critere = ["Attaque","Défense","Magie","Déf.Magique","Agilité","Chance","PV Max","PM Max"]
      @ordre = [2,3,4,5,6,7,0,1]
      change = @item.params[@ordre[i]] - (item1 ? item1.params[@ordre[i]] : 0)
      if change != 0
        change_color(param_change_color(change))
        rect = Rect.new(x, y+line_height*(@différent-1), contents.width - 4 - x, line_height)
        change = @item.params[@ordre[i]] - (item1 ? item1.params[@ordre[i]] : 0)
        change_color(param_change_color(change))
        draw_text(rect, @critere[i]+sprintf("%+d", change), 2)
        @différent += 1
      end
    end
  end
  #--------------------------------------------------------------------------
  # * Get Parameter ID Corresponding to Selected Item
  #    By default, ATK if weapon and DEF if armor.
  #--------------------------------------------------------------------------
  def param_id
    @item.is_a?(RPG::Weapon) ? 2 : 3
  end
  #--------------------------------------------------------------------------
  # * Get Current Equipment
  #    Returns the weaker equipment if there is more than one of the same type,
  #    such as with dual wield.
  #--------------------------------------------------------------------------
  def current_equipped_item(actor, etype_id)
    list = []
    actor.equip_slots.each_with_index do |slot_etype_id, i|
      list.push(actor.equips[i]) if slot_etype_id == etype_id
    end
    list.min_by {|item| item ? item.params[param_id] : 0 }
  end
  #--------------------------------------------------------------------------
  # * Frame Update
  #--------------------------------------------------------------------------
  def update
    super
    update_page
    contents.clear
    if @nbr_ligne > 11
      @scroll_pos += 3 if Input.press?(:RIGHT) && @scroll_pos < (@nbr_ligne-11)*line_height  #vitesse de défilement réglable ici et ligne ci_dessous
      @scroll_pos -= 3 if Input.press?(:LEFT)  && @scroll_pos > 0
    else
      @scroll_pos = 0
    end
    @nbr_ligne = 1
    draw_possession(4, 0-@scroll_pos)
    draw_equip_info(4, line_height * 1-@scroll_pos) if @item.is_a?(RPG::EquipItem)
    draw_arrow
  end
  #--------------------------------------------------------------------------
  # * Draw arrow and input name
  #--------------------------------------------------------------------------
  def draw_arrow
    nbr = 1 if (@scroll_pos == 0 && @nbr_ligne > 11)
    nbr = 2 if (@scroll_pos > 0 && @scroll_pos < (@nbr_ligne-11)*line_height)
    nbr = 3 if (@scroll_pos >= (@nbr_ligne-11)*line_height && @nbr_ligne > 11)
    nbr = 0 if @nbr_ligne <= 11
    bitmap = Cache.system("Window")
    size_base = contents.font.size
    contents.font.size = 16
    change_color(text_color(30), true)  #<--- change la couleur du texte des flèche ici remplace le chiffre par : 1=cyan 11=vert 14=jaune 15=noir 18=rouge
   case nbr
    when 1;
      rect = Rect.new(88, 40, 16,
     contents.blt(width/2, 11*line_height+2, bitmap, rect, true ? 255 : translucent_alpha)
      contents.draw_text(width/2-16, 11*line_height-12, 45, 16, "Press Right")
    when 2;
      rect = Rect.new(88, 40, 16,
     contents.blt(width/2, 11*line_height+2, bitmap, rect, true ? 255 : translucent_alpha)
      rect = Rect.new(88, 16, 16,
     contents.blt(width/2, 0, bitmap, rect, true ? 255 : translucent_alpha)
      contents.draw_text(width/2-16, 11*line_height-12, 45, 16, "Press Right")
      contents.draw_text(width/2-16, 6, 45, 16, "Press Left")
    when 3;
      rect = Rect.new(88, 16, 16,
     contents.blt(width/2, 0, bitmap, rect, true ? 255 : translucent_alpha)
      contents.draw_text(width/2-16, 6, 45, 16, "Press Left")
    end
    contents.font.size = size_base
    text_color(0)
  end
  #--------------------------------------------------------------------------
  # * Update Page
  #--------------------------------------------------------------------------
  def update_page
    if visible && Input.trigger?(:A) && page_max > 1
      @page_index = (@page_index + 1) % page_max
      refresh
    end
  end
end
avatar
MrGREG
Membre

Nombre de messages : 71
Age : 35
Localisation : loir et cher (41)
Distinction : aucune
Date d'inscription : 20/08/2013

Résolu Re: [résolu]Modification de script d'origine de rpg maker

le Sam 14 Déc 2013 - 8:12
Merci pour la modif, mais il y a deux erreurs.

Première erreur

j'ai commenté le module "Draw arrow and input name Frame Update"

deuxième erreur

j'ai commenté le module "Frame Update"

Voila, je sais pas lire le code des scripts, mais en général j'arrive a les utiliser et a commenter les partie qui me pose problème.
Une fois ces 2 partie commenté, plus de bug et j'ai pu constater que les ligne ne se chevauchent plus. (donc ça c'est cool)

Après vu qu'il faut que tu retouche 2 petit truc pour corriger les erreurs, est-ce que tu peux changer l'ordre d'affichage comme le montage (moche) qui suit.
Je trouve ça plus clair dans cet ordre.

En clair :
Nom de perso (1ère ligne)
Équipement équipé (2ème ligne) [pour le moment il est en dernière ligne juste avant le nom du perso suivant]
modification des caractéristique (autre ligne suivante)

Merci beaucoup...  Very Happy
avatar
vincent26
Membre

Nombre de messages : 766
Age : 23
Localisation : baume de transit le village paumé
Distinction : aucune
Date d'inscription : 17/08/2010

Résolu Re: [résolu]Modification de script d'origine de rpg maker

le Sam 14 Déc 2013 - 13:08
oki je te fait ça


Edit je vient de me rendre compte d'un autre bug lorsque tu selectionnent un objet et que tu défini combien tu en veut le défilement continue je vais corriger ça ^^


REEDIT c'est bon mais du coup faut rajouter d'abord cela a scene_shop tout  a la fin aprés tout les end

Code:

class Scene_Shop < Scene_MenuBase
  def on_buy_ok
    $select = 1
    @item = @buy_window.item
    @buy_window.hide
    @number_window.set(@item, max_buy, buying_price, currency_unit)
    @number_window.show.activate
  end
  def on_number_cancel
    $select = 0
    Sound.play_cancel
    end_number_input
  end
end

et voici le code du window_shopstatus

Code:


#===============================================================================
# ** Window_ShopStatus
#------------------------------------------------------------------------------
#  This window displays number of items in possession and the actor's
# equipment on the shop screen.
#==============================================================================
class Window_ShopStatus < Window_Base
#--------------------------------------------------------------------------
# * Object Initialization
#--------------------------------------------------------------------------
  def initialize(x, y, width, height)
    super(x, y, width, height)
    @item = nil
    @page_index = 0
    @nbr_ligne = 1
    @scroll_pos = 0
    refresh
  end
  #--------------------------------------------------------------------------
  # * Refresh
  #--------------------------------------------------------------------------
  def refresh
    contents.clear
    $select = 0
    @nbr_ligne = 1
    @scroll_pos = 0
    draw_possession(4, 0)
    draw_equip_info(4, line_height * 1) if @item.is_a?(RPG::EquipItem)
  end
  #--------------------------------------------------------------------------
  # * Set Item
  #--------------------------------------------------------------------------
  def item=(item)
    @item = item
    refresh
  end
  #--------------------------------------------------------------------------
  # * Draw Quantity Possessed
  #--------------------------------------------------------------------------
  def draw_possession(x, y)
    rect = Rect.new(x, y, contents.width - 4 - x, line_height)
    change_color(system_color)
    draw_text(rect, Vocab::Possession)
    change_color(normal_color)
    draw_text(rect, $game_party.item_number(@item), 2)
  end
  #--------------------------------------------------------------------------
  # * Draw Equipment Information
  #--------------------------------------------------------------------------
  def draw_equip_info(x, y)
    y1 = y
    status_members.each_with_index do |actor, i|
      if actor.equippable?(@item) == true
        draw_actor_equip_info(x, y1, actor)
        y1 = y1 + line_height*(@différent+1)+0.5
        @nbr_ligne += @différent+1
      else
        draw_actor_equip_info(x, y1, actor)
        y1 = y1 + line_height * 2+0.5
        @nbr_ligne += 2
      end
    end
  end
  #--------------------------------------------------------------------------
  # * Array of Actors for Which to Draw Equipment Information
  #--------------------------------------------------------------------------
  def status_members
    $game_party.members[@page_index * page_size, page_size]
  end
  #--------------------------------------------------------------------------
  # * Number of Actors Displayable at Once
  #--------------------------------------------------------------------------
  def page_size
    return 10
  end
  #--------------------------------------------------------------------------
  # * Get Maximum Number of Pages
  #--------------------------------------------------------------------------
  def page_max
    ($game_party.members.size + page_size - 1) / page_size
  end
  #--------------------------------------------------------------------------
  # * Draw Actor Equipment Information
  #--------------------------------------------------------------------------
  def draw_actor_equip_info(x, y, actor)
    enabled = actor.equippable?(@item)
    change_color(normal_color, enabled)
    draw_text(x, y, 112, line_height, actor.name)
    item1 = current_equipped_item(actor, @item.etype_id)
    if enabled
      draw_item_name(item1, x, y + line_height, enabled)
      draw_actor_param_change(x, y, actor, item1)
    else
      draw_item_name(item1, x, y + line_height, enabled)
    end
  end
  #--------------------------------------------------------------------------
  # * Draw Actor Parameter Change
  #--------------------------------------------------------------------------
  def draw_actor_param_change(x, y, actor, item1)
    @différent = 2
    for i in 0..7
      @critere = ["Attaque","Défense","Magie","Déf.Magique","Agilité","Chance","PV Max","PM Max"]
      @ordre = [2,3,4,5,6,7,0,1]
      change = @item.params[@ordre[i]] - (item1 ? item1.params[@ordre[i]] : 0)
      if change != 0
        change_color(param_change_color(change))
        rect = Rect.new(x, y+line_height*(@différent), contents.width - 4 - x, line_height)
        change = @item.params[@ordre[i]] - (item1 ? item1.params[@ordre[i]] : 0)
        change_color(param_change_color(change))
        draw_text(rect, @critere[i]+sprintf("%+d", change), 2)
        @différent += 1
      end
    end
  end
  #--------------------------------------------------------------------------
  # * Get Parameter ID Corresponding to Selected Item
  #    By default, ATK if weapon and DEF if armor.
  #--------------------------------------------------------------------------
  def param_id
    @item.is_a?(RPG::Weapon) ? 2 : 3
  end
  #--------------------------------------------------------------------------
  # * Get Current Equipment
  #    Returns the weaker equipment if there is more than one of the same type,
  #    such as with dual wield.
  #--------------------------------------------------------------------------
  def current_equipped_item(actor, etype_id)
    list = []
    actor.equip_slots.each_with_index do |slot_etype_id, i|
      list.push(actor.equips[i]) if slot_etype_id == etype_id
    end
    list.min_by {|item| item ? item.params[param_id] : 0 }
  end
  #--------------------------------------------------------------------------
  # * Frame Update
  #--------------------------------------------------------------------------
  def update
    super
    update_page
    contents.clear
    if @nbr_ligne > 11 && $select == 0
      @scroll_pos += 3 if Input.press?(:RIGHT) && @scroll_pos < (@nbr_ligne-11)*line_height  #vitesse de défilement réglable ici et ligne ci_dessous
      @scroll_pos -= 3 if Input.press?(:LEFT)  && @scroll_pos > 0
    else
      @scroll_pos = 0
    end
    @nbr_ligne = 1
    draw_possession(4, 0-@scroll_pos)
    draw_equip_info(4, line_height * 1-@scroll_pos) if @item.is_a?(RPG::EquipItem)
    draw_arrow
  end
  #--------------------------------------------------------------------------
  # * Draw arrow and input name
  #--------------------------------------------------------------------------
  def draw_arrow
    nbr = 1 if (@scroll_pos == 0 && @nbr_ligne > 11)
    nbr = 2 if (@scroll_pos > 0 && @scroll_pos < (@nbr_ligne-11)*line_height)
    nbr = 3 if (@scroll_pos >= (@nbr_ligne-11)*line_height && @nbr_ligne > 11)
    nbr = 0 if @nbr_ligne <= 11
    bitmap = Cache.system("Window")
    size_base = contents.font.size
    contents.font.size = 16
    change_color(text_color(30), true)  #<--- change la couleur du texte des flèche ici remplace le chiffre par : 1=cyan 11=vert 14=jaune 15=noir 18=rouge
    case nbr
    when 1;
      rect = Rect.new(88, 40, 16,8)
      contents.blt(width/2, 11*line_height, bitmap, rect, true ? 255 : translucent_alpha)
      draw_text( (width/2-16), (11*line_height-14), 45, 16, "Press Right",)
    when 2;
      rect = Rect.new(88, 40, 16,8)
      contents.blt(width/2, 11*line_height, bitmap, rect, true ? 255 : translucent_alpha)
      rect = Rect.new(88, 16, 16,8)
      contents.blt(width/2, 0, bitmap, rect, true ? 255 : translucent_alpha)
      draw_text(width/2-16, 11*line_height-14, 45, 16, "Press Right")
      draw_text(width/2-16, 6, 45, 16, "Press Left")
    when 3;
      rect = Rect.new(88, 16, 16,8)
      contents.blt(width/2, 0, bitmap, rect, true ? 255 : translucent_alpha)
      draw_text(width/2-16, 6, 45, 16, "Press Left")
    end
    contents.font.size = size_base
    text_color(0)
  end
  #--------------------------------------------------------------------------
  # * Update Page
  #--------------------------------------------------------------------------
  def update_page
    if visible && Input.trigger?(:A) && page_max > 1
      @page_index = (@page_index + 1) % page_max
      refresh
    end
  end
end


Dernière édition par vincent26 le Sam 14 Déc 2013 - 15:40, édité 1 fois
avatar
MrGREG
Membre

Nombre de messages : 71
Age : 35
Localisation : loir et cher (41)
Distinction : aucune
Date d'inscription : 20/08/2013

Résolu Re: [résolu]Modification de script d'origine de rpg maker

le Sam 14 Déc 2013 - 14:12
Merci beaucoup.

C'est pratiquement parfait, il y a juste encore un tout petit détail a corriger.

La flèche du bas n'apparait pas complétement


Sinon à part ça c'est nikel.
avatar
vincent26
Membre

Nombre de messages : 766
Age : 23
Localisation : baume de transit le village paumé
Distinction : aucune
Date d'inscription : 17/08/2010

Résolu Re: [résolu]Modification de script d'origine de rpg maker

le Sam 14 Déc 2013 - 15:42
voila j'ai édit le script du message d'avant

dr en tout cas  rabbit 
avatar
MrGREG
Membre

Nombre de messages : 71
Age : 35
Localisation : loir et cher (41)
Distinction : aucune
Date d'inscription : 20/08/2013

Résolu Re: [résolu]Modification de script d'origine de rpg maker

le Sam 14 Déc 2013 - 17:30
Merci, beaucoup, cette fois c'est vraiment parfait.

Je passe le sujet en résolu.
Contenu sponsorisé

Résolu Re: [résolu]Modification de script d'origine de rpg maker

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