~ S'évader de la banalité... Et entrer dans l'imaginaire ! ~
 
AccueilGuelnika, le site de E-m !S'enregistrerConnexion

Répondre au sujet
Partagez | 
 

 Script d'apparition de textes/chiffres/variables.... hors fenetre de message standard

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
Shakuras
Maker qui quitte E-m Lv 56
Maker qui quitte E-m Lv 56
avatar

Nombre de messages : 6542
Age : 32

MessageSujet: Script d'apparition de textes/chiffres/variables.... hors fenetre de message standard   Mar 30 Déc 2014, 23:18

L'un de mes plus grand regret tout RM confondu, c'est qu'il n'existe ( à ma connaissance ) pas de fonction directe pour faire apparaitre du texte / des chiffres en dehors des fenêtres de textes.

Ce serait tellement plus simple si dans la fonction "picture" on pouvait faire apparaitre/disparaitre directement du texte , des chiffres, voir carrément des \V[...] & \N[...] à des coordonées voulu.



Anyway, ma question est simple : dans RM VX Ace, est-il possible via un quelconque script de faire apparaitre / disparaitre textes , chiffres , variable et "nom de perso" , et si oui, comment ?

____________
Revenir en haut Aller en bas
Zim
---Fantôme--- Lv 0
avatar

Nombre de messages : 10087
Age : 31

MessageSujet: Re: Script d'apparition de textes/chiffres/variables.... hors fenetre de message standard   Mer 31 Déc 2014, 01:24

C'est tout à fait possible, mais faut scripter. Je ne saurais pas t'expliquer comment, vu que je faisais de la bidouille en reprenant quelque chose d'existant. En gros tu peux créer des fenêtres où tu veux/de la taille que tu veux, et y mettre du texte ou du contenu de variable où tu veux (et avec la taille, la police, etc. que tu veux). En tout cas c'est tout à fait faisable, et pas compliqué.

Au moins pour te donner une idée, voilà le HUD du TDAD :

Code:
#===============================================================
# Basic HUD
#--------------------------------------------------------------

class Zim_Basic_HUD < Window_Base
  VAR_ID_1 = 18# Score (variable utilisée)
  VAR_ID_2 = 14# Chaîne (variable utilisée)
  VAR_ID_3 = 20# Etage (variable utilisée)
  SWITCH_ID = 1 # Switch to show/hide this HUD (Turn switch ON to show HUD)
  
  def initialize
    super(96,-16,352,448)#Position fenêtre, -10(horizontal),-16(vertical),162(largeur),64(hauteur)
    self.opacity = 0 # Visibilité fenêtre
    self.visible = $game_switches[SWITCH_ID]
    refresh
  end

  def refresh
    contents.clear
    if $game_party.members.size > 0 and self.visible
      actor = $game_party.members[0]
      draw_actor_mp_gauge(actor, 16, -1, contents.width - 192)#Jauge par rapport à la fenêtre, 25(horizontal), 10(vertical), -25(extrémité droite), hauteur contrôlée dans New Gauge Final
      self.contents.font.color = normal_color
      self.contents.font.size = 28
      self.contents.font.bold = true
      @old_mp = actor.mp
      @v1 = $game_variables[VAR_ID_1]#Score
      @v2 = $game_variables[VAR_ID_2]#Chaîne
      @v3 = ($game_variables[VAR_ID_3] / 5)#Etage
      contents.draw_text(0, 2, contents.width - 98, WLH + 5,  sprintf("%02d", @v3), 2)
      contents.draw_text(0, 2, contents.width - 236, WLH + 782,  "SCORE :", 2)
      contents.draw_text(0, 2, contents.width - 128, WLH + 782, sprintf("%06d", @v1), 2)#Score
      #if @v2 != 0 #Chaîne
      contents.draw_text(0, 2, contents.width - 18, WLH + 782,  "x", 2)
      contents.draw_text(0, 2, contents.width - 30, WLH + 782, @v2, 2)
      draw_icon(2, 10, 10, enabled = true)
      #end
    end
  end

  def update
    self.visible = $game_switches[SWITCH_ID]
    if $game_party.members.size > 0 and self.visible
      actor = $game_party.members[0]
      refresh if @old_mp != actor.mp
      refresh if @v1 != $game_variables[VAR_ID_1] #Score
      refresh if @v2 != 0 and @v2 != $game_variables[VAR_ID_2]#Chaîne
      refresh if @v3 != ($game_variables[VAR_ID_3] / 5)#Etage
    end
  end
end

class Scene_Map < Scene_Base
  alias zim_scemap_str_basichud start
  alias zim_scemap_upd_basichud update
  alias zim_scemap_ter_basichud terminate
  
  def start
    zim_scemap_str_basichud
    @zbasic_hud = Zim_Basic_HUD.new
  end
  
  def update
    zim_scemap_upd_basichud
    @zbasic_hud.update
  end
  
  def terminate
    @zbasic_hud.dispose
    zim_scemap_ter_basichud
  end
end
Revenir en haut Aller en bas
Zim
---Fantôme--- Lv 0
avatar

Nombre de messages : 10087
Age : 31

MessageSujet: Re: Script d'apparition de textes/chiffres/variables.... hors fenetre de message standard   Mer 31 Déc 2014, 01:37

A noter que c'est tout à fait et très simplement possible sur RM2K3 ! http://rpgmaker.net/engines/rm2k3/utilities/12/
Revenir en haut Aller en bas
Shakuras
Maker qui quitte E-m Lv 56
Maker qui quitte E-m Lv 56
avatar

Nombre de messages : 6542
Age : 32

MessageSujet: Re: Script d'apparition de textes/chiffres/variables.... hors fenetre de message standard   Mer 31 Déc 2014, 03:08

Concernant le plugin 2003 :
.... Good lord, que j'aurais aimé avoir eu ça a l'époque.

Concernant le script VX, merci : en décortiquant ça, je devrais ( espérons le ) arriver à mes fins.
EDIT : TDAD ? s'quoi ?
EDIT 2 : trouvé, ça voulait dire "trésor des âmes damnés" =P

____________
Revenir en haut Aller en bas
AlexRE
Admin trop trizo Lv 65
Admin trop trizo Lv 65
avatar

Nombre de messages : 29685
Age : 30

MessageSujet: Re: Script d'apparition de textes/chiffres/variables.... hors fenetre de message standard   Mer 31 Déc 2014, 13:44

Tout le monde le sait, allons. Boudin boudin

Ouais, le plug-in DynRPG que t'a montré Zim est excellent pour ça. Owi toutafé olala

____________
Relm a écrit:
Merci pour la confirmation Gary et fuck my life.
Revenir en haut Aller en bas
http://www.alexzone.net
Shakuras
Maker qui quitte E-m Lv 56
Maker qui quitte E-m Lv 56
avatar

Nombre de messages : 6542
Age : 32

MessageSujet: Re: Script d'apparition de textes/chiffres/variables.... hors fenetre de message standard   Mer 31 Déc 2014, 14:28

Bien sur, tout le monde connait toute les abreviations de tout les jeux RM 2k/2k3/XP/VX du forum <_<

Le DynRPG est sympa, oui, c'est presque dommage que je ne touche plus ( je ne l'ai même pas réinstall =P ) à 2k3.

Anyway, j'ai commencé à regarder le script et j'ai un peu du mal à saisir le bouzin, mais je suppose que ca viendra avec le temps.

____________
Revenir en haut Aller en bas
Zim
---Fantôme--- Lv 0
avatar

Nombre de messages : 10087
Age : 31

MessageSujet: Re: Script d'apparition de textes/chiffres/variables.... hors fenetre de message standard   Mer 31 Déc 2014, 16:14

Faut tester. Modifier des trucs, voir ce que ça fait ! (Sachant que là, mes modifs étaient faites un peu comme un malpropre, m'enfin.)
Le script est à placer dans la section Material, au dessus de Main.
Euh, là, ça fonctionnera pas sans un autre script (notamment pourquoi je dis que c'est malpropre) pour l'affichage de la jauge (quelque chose que tu retireras pour ton menu, mais en l'occurrence nécessaire si tu veux tester/modifier pour comprendre le script).

Code:
#==============================================================================
# [VX] <+ [Neo Gauge] ENGINE -> by Woratana
#------------------------------------------------------------------------------
# ◦ by Woratana [woratana@hotmail.com]
# ◦ Released on: 25/12/2008 (D-M-Y)
# ◦ Version: 2
#---------------------------------------------------------------------------
# ◦ Exclusive Script @ RPG RPG Revolution (http://www.rpgrevolution.com/)
#---------------------------------------------------------------------------
#### [FEATURES] ####
# - Support horizontal/vertical gradient bar
# - Draw 3 colors gradient / user can choose spot to draw second color
# - Easy to setting gauge style
# - Support KGC Overdrive, DerVVulfman Limit Break, and Mog Basic Menu
# - 2 New methods to help edit bitmap (for scripters)
#------------------------------------------------------------------------------
#==============================================================================

class Window_Base < Window
  #==========================================================================
  # NEO GAUGE SETTING #
  # Color: Color.new(Red, Green, Blue) # Each number you can put integer 0-255
  # * You can use this site to get RGB color:
  # http://web.njit.edu/~kevin/rgb.txt.html
  #==========================================================================
  GAUGE_GLOW_EFFECT = false # Use glow effect?
  GAUGE_GLOW_COLOR = Color.new(255,255,255) # Glow color
  
  GAUGE_OUTSIDE_BORDER = false # Use outside border?
  GAUGE_OUTSIDE_BORDER_COLOR = Color.new(255,255,255)#Color.new(0, 0, 0)
  GAUGE_OUTSIDE_BORDER_COLOR2 = Color.new(255,255,255)#Color.new(0, 0, 0)
  GAUGE_CLEAR_CORNER_OUTSIDE_BORDER = true
  
  GAUGE_INSIDE_BORDER = false # Use inside border?
  GAUGE_INSIDE_BORDER_COLOR = Color.new(255, 255, 255)
  GAUGE_INSIDE_BORDER_COLOR2 = Color.new(255, 255, 255)
  #==========================================================================

  #=============================================================
  # NEO HP/MP/STATS GAUGE SETTING #
  #=============================================================
  HPMP_GAUGE_HEIGHT = 12 # gauge height (minumum: 6)
  # Recommend to use HPMP_GAUGE_HEIGHT at least 8,
  # if you're using GAUGE_INSIDE_BORDER in Neo-Gauge
  HPMP_GAUGE_X_PLUS = 0 # Move gauge horizontally (+,-)
  HPMP_GAUGE_Y_PLUS = ((-1)*(HPMP_GAUGE_HEIGHT - 5)) # (+,-)
  # Change '((-1)*(HPMP_GAUGE_HEIGHT - 6))' to number to move gauge vertically
  
  # BACK GAUGE COLORS
  BACK_GCOLOR_1 = Color.new(0, 0, 0) # (0, 0, 0) # Black [Color1]
  BACK_GCOLOR_2 = Color.new(0, 0, 0) # # Dark Gray [Color2]
  BACK_GCOLOR_3 = Color.new(0, 0, 0) # # Light Gray [Color3]

  USE_HP_GAUGE = true # Use HP Gauge? (true/false)
  USE_MP_GAUGE = true # Use MP Gauge?
  
  # HP GAUGE COLORS
  HP_GCOLOR_1 = Color.new(139,0,0) # Dark Red
  HP_GCOLOR_2 = Color.new(255,0,0) # Pure Red
  HP_GCOLOR_3 = Color.new(255,255,0) # Pure Yellow

  # MP GAUGE COLORS
  MP_GCOLOR_1 = Color.new(135, 35, 15) #(0,0,128) # Dark Blue (128, 0, 0)
  MP_GCOLOR_2 = Color.new(135, 35, 15) #(0,191,255) # Blue (128, 128, 0)
  MP_GCOLOR_3 = Color.new(135, 35, 15) #(152,251,152) # Light Green (64, 128, 0)
  
  #---------------------------------------------------------
  
  ADSA_GAUGE_MAX_MODE = 0
  # Mode for Attack/Defense/Spirit/Agility Gauge Max:
  # 0: use stats at level 99 for gauge's max
  # 1 or more: use that number for gauge's max
  
  USE_ADSA_GAUGE = true # Use Attack/Defense/Spirit/Agility Gauge?
  
  # ATTACK GAUGE COLORS
  ATK_GCOLOR_1 = Color.new(0,0,128)
  ATK_GCOLOR_2 = Color.new(0,191,255)
  ATK_GCOLOR_3 = Color.new(152,251,152)
  
  # DEFENSE GAUGE COLORS
  DEF_GCOLOR_1 = Color.new(0,0,128)
  DEF_GCOLOR_2 = Color.new(0,191,255)
  DEF_GCOLOR_3 = Color.new(152,251,152)
  
  # SPIRIT GAUGE COLORS
  SPI_GCOLOR_1 = Color.new(0,0,128)
  SPI_GCOLOR_2 = Color.new(0,191,255)
  SPI_GCOLOR_3 = Color.new(152,251,152)

  # AGILITY GAUGE COLORS
  AGI_GCOLOR_1 = Color.new(0,0,128)
  AGI_GCOLOR_2 = Color.new(0,191,255)
  AGI_GCOLOR_3 = Color.new(152,251,152)
  
  #----------------------------------------------
  
  USE_KGC_OVERDRIVE = false # Use KGC Overdrive Gauge?
  USE_DVV_LIMITBREAK = false # Use DerVVulfman Limit Break Gauge?
  USE_MOG_BASIC_MENU = false # Use Mog Basic Menu (EXP) Gauge?
  
  # KGC_OVERDRIVE NORMAL GAUGE COLORS
  KGC_GCOLOR_1 = Color.new(238, 238, 0)
  KGC_GCOLOR_2= Color.new(218, 165, 32)
  KGC_GCOLOR_3 = Color.new(238, 238, 0)
  
  # KGC_OVERDRIVE MAX GAUGE COLORS
  KGC_MAX_GCOLOR_1 = Color.new(255, 127, 0)
  KGC_MAX_GCOLOR_2 = Color.new(255, 255, 36)
  KGC_MAX_GCOLOR_3 = Color.new(255, 127, 0)

  # DerVVulfman Limit Break NORMAL GAUGE COLORS
  DLB_GCOLOR_1 = Color.new(238, 238, 0)
  DLB_GCOLOR_2 = Color.new(218, 165, 32)
  DLB_GCOLOR_3 = Color.new(238, 238, 0)
  
  # DerVVulfman Limit Break MAX GAUGE COLORS
  DLB_MAX_GCOLOR_1 = Color.new(255, 127, 0)
  DLB_MAX_GCOLOR_2 = Color.new(255, 255, 36)
  DLB_MAX_GCOLOR_3 = Color.new(255, 127, 0)
  
  # Mog Basic Menu EXP GAUGE COLORS
  MOG_EXP_GCOLOR_1 = Color.new(0,100,0)
  MOG_EXP_GCOLOR_2 = Color.new(0, 255, 0)
  MOG_EXP_GCOLOR_3 = Color.new(173,255,47)
  #===================================================================
  
  #-------------------------------------------------------------------
  # [END] NEO GAUGE FINAL SETUP
  #===================================================================

  #------------------------------------------------------------
  # * Neo Gauge Back Color: Return back colors
  #------------------------------------------------------------
  def neo_gauge_back_color
    return BACK_GCOLOR_1, BACK_GCOLOR_2, BACK_GCOLOR_3
  end
  
  #--------------------------------------------------------------------------
  # [Rewrite] * Draw HP gauge
  #--------------------------------------------------------------------------
if USE_HP_GAUGE
  def draw_actor_hp_gauge(actor, x, y, width = 120)
    gwidth = width * actor.hp / actor.maxhp
    cg = neo_gauge_back_color
    c1, c2, c3 = cg[0], cg[1], cg[2]
    draw_neo_gauge(x + HPMP_GAUGE_X_PLUS, y + WLH - 8 + HPMP_GAUGE_Y_PLUS, width,
HPMP_GAUGE_HEIGHT, c1, c2, c3)
    (1..3).each {|i| eval("c#{i} = HP_GCOLOR_#{i}") }
    draw_neo_gauge(x + HPMP_GAUGE_X_PLUS, y + WLH - 8 + HPMP_GAUGE_Y_PLUS, gwidth, HPMP_GAUGE_HEIGHT,
c1, c2, c3, false, false, width, 30)
  end
end
  #--------------------------------------------------------------------------
  # [Rewrite] * Draw MP Gauge
  #--------------------------------------------------------------------------
if USE_MP_GAUGE
  def draw_actor_mp_gauge(actor, x, y, width = 120)
    gwidth = width * actor.mp / [actor.maxmp, 1].max
    cg = neo_gauge_back_color
    c1, c2, c3 = cg[0], cg[1], cg[2]
    draw_neo_gauge(x + HPMP_GAUGE_X_PLUS, y + WLH - 8 + HPMP_GAUGE_Y_PLUS, width,
HPMP_GAUGE_HEIGHT, c1, c2, c3)
    (1..3).each {|i| eval("c#{i} = MP_GCOLOR_#{i}") }
    draw_neo_gauge(x + HPMP_GAUGE_X_PLUS, y + WLH - 8 + HPMP_GAUGE_Y_PLUS, gwidth, HPMP_GAUGE_HEIGHT,
c1, c2, c3, false, false, width, 40)
  end
end

  #--------------------------------------------------------------------------
  # [Rewrite] * Draw Parameters
  #--------------------------------------------------------------------------
if USE_ADSA_GAUGE
  def draw_actor_parameter(actor, x, y, type)
    case type
    when 0
      parameter_name = Vocab::atk
      parameter_value = actor.atk
      parameter_value_max = actor.maxatk
      (1..3).each {|i| eval("@c#{i} = ATK_GCOLOR_#{i}") }
    when 1
      parameter_name = Vocab::def
      parameter_value = actor.def
      parameter_value_max = actor.maxdef
      (1..3).each {|i| eval("@c#{i} = DEF_GCOLOR_#{i}") }
    when 2
      parameter_name = Vocab::spi
      parameter_value = actor.spi
      parameter_value_max = actor.maxspi
      (1..3).each {|i| eval("@c#{i} = SPI_GCOLOR_#{i}") }
    when 3
      parameter_name = Vocab::agi
      parameter_value = actor.agi
      parameter_value_max = actor.maxagi
      (1..3).each {|i| eval("@c#{i} = AGI_GCOLOR_#{i}") }
    end
    # Draw parameter gauge
    parameter_value_max = ADSA_GAUGE_MAX_MODE if ADSA_GAUGE_MAX_MODE > 0
    width = 156
    gwidth = width * parameter_value / [parameter_value_max, 1].max
    cg = neo_gauge_back_color
    draw_neo_gauge(x + HPMP_GAUGE_X_PLUS, y + WLH - 8 + HPMP_GAUGE_Y_PLUS, width,
HPMP_GAUGE_HEIGHT, cg[0], cg[1], cg[2])
    draw_neo_gauge(x + HPMP_GAUGE_X_PLUS, y + WLH - 8 + HPMP_GAUGE_Y_PLUS, gwidth, HPMP_GAUGE_HEIGHT,
@c1, @c2, @c3, false, false, width, 40)
    self.contents.font.color = system_color
    self.contents.draw_text(x, y, 120, WLH, parameter_name)
    self.contents.font.color = normal_color
    self.contents.draw_text(x + 120, y, 36, WLH, parameter_value, 2)
  end
end

  #--------------------------------------------------------------------------
  # [Rewrite] * KGC_OVERDRIVE Gauge
  #--------------------------------------------------------------------------
if USE_KGC_OVERDRIVE
  def draw_actor_od_gauge(actor, x, y, width = 120)
    return unless actor.od_gauge_visible?
    gw = width * actor.overdrive / actor.max_overdrive
    cg = neo_gauge_back_color
    c1, c2, c3 = cg[0], cg[1], cg[2]
    draw_neo_gauge(x + HPMP_GAUGE_X_PLUS, y + WLH - 8 + HPMP_GAUGE_Y_PLUS, width,
HPMP_GAUGE_HEIGHT, c1, c2, c3)
    if gw == width # Max?
      (1..3).each {|i| eval("@c#{i} = KGC_MAX_GCOLOR_#{i}") }
    else # Not Max~
      (1..3).each {|i| eval("@c#{i} = KGC_GCOLOR_#{i}") }
    end
    draw_neo_gauge(x + HPMP_GAUGE_X_PLUS, y + WLH - 8 + HPMP_GAUGE_Y_PLUS, gw, HPMP_GAUGE_HEIGHT,
@c1, @c2, @c3, false, false, width, 50)
  end
end

  #--------------------------------------------------------------------------
  # [Rewrite] * DerVVulfman Limit Break Gauge
  #--------------------------------------------------------------------------
if USE_DVV_LIMITBREAK
  def draw_actor_lb(actor, x, y, width = 120)
    return unless actor.lb_gauge_visible?
    gw = width * actor.limitbreak / LB_MAX
    cg = neo_gauge_back_color
    c1, c2, c3 = cg[0], cg[1], cg[2]
    draw_neo_gauge(x + HPMP_GAUGE_X_PLUS, y + WLH - 8 + HPMP_GAUGE_Y_PLUS, width,
HPMP_GAUGE_HEIGHT, c1, c2, c3)
    if gw == width # Max?
      (1..3).each {|i| eval("@c#{i} = DLB_MAX_GCOLOR_#{i}") }
    else # Not Max~
      (1..3).each {|i| eval("@c#{i} = DLB_GCOLOR_#{i}") }
    end
    draw_neo_gauge(x + HPMP_GAUGE_X_PLUS, y + WLH - 8 + HPMP_GAUGE_Y_PLUS, gw, HPMP_GAUGE_HEIGHT,
@c1, @c2, @c3, false, false, width, 50)
  end
end

  #--------------------------------------------------------------------------
  # [Rewrite] * Mog Basic Menu Plus EXP Gauge
  #--------------------------------------------------------------------------
if USE_MOG_BASIC_MENU
  def draw_actor_exp_meter(actor, x, y, width = 100)  
    if actor.next_exp != 0
      exp = actor.now_exp
    else
      exp = 1
    end
    gw = width * exp / [actor.next_exp, 1].max
    cg = neo_gauge_back_color
    c1, c2, c3 = cg[0], cg[1], cg[2]
    draw_neo_gauge(x + HPMP_GAUGE_X_PLUS, y + WLH - 8 + HPMP_GAUGE_Y_PLUS, width,
HPMP_GAUGE_HEIGHT, c1, c2, c3)
    (1..3).each {|i| eval("c#{i} = MOG_EXP_GCOLOR_#{i}") }
    draw_neo_gauge(x + HPMP_GAUGE_X_PLUS, y + WLH - 8 + HPMP_GAUGE_Y_PLUS, gw, HPMP_GAUGE_HEIGHT,
c1, c2, c3, false, false, width, 50)
    self.contents.font.color = system_color
    self.contents.draw_text(x, y, 30, WLH, "Exp")    
    self.contents.font.color = normal_color
    xr = x + width
    self.contents.draw_text(xr - 60, y, 60, WLH,  actor.next_rest_exp_s, 2)
  end
end
  #--------------------------------------------------------------------------
  # * Draw Neo Gauge: Draw Gauge with 3 Colors & Outline
  # x : draw spot x-coordinate
  # y : draw spot y-coordinate
  # width : gauge width
  # height : gauge height
  # color1 : first color (left side)
  # color2 : second color (center)
  # color3 : last color (right side)
  # vertical : vertical gauge? (true: vertical | false: horizontal)
  # outline : draw glow & outline? (true: draw | false: draw only gradient)
  # max_width : max_width that gradient will draw before cut to width
  # (max_width will becomes max_height in vertical gauge)
  # color2_spot = spot to draw color 2 [1:Left <- (default)50:Center -> 100:Right]
  #-------------------------------------------------------------------------
  def draw_neo_gauge(x, y, width, height, color1, color2, color3, vertical = false,
outline = true, max_width = nil, color2_spot = 50)
    if max_width == nil
      max_width = vertical ? height : width
    end
    glow = GAUGE_GLOW_EFFECT # Set glow effect
    dx = x; dy = y # Store draw spot X/Y
    x = y = 0 # Change x, y for temp. bitmap
    bitmap = Bitmap.new(max_width, height) # Create temp. bitmap to draw gauge
    if glow # If GLOW
      if outline # If drawing outline
        # Create Glow rect
        if vertical; rect = Rect.new(x, y, width, max_width)
        else; rect = Rect.new(x, y, max_width, height)
        end
        bitmap.fill_rect(rect, GAUGE_GLOW_COLOR) # Draw Glow
        bitmap.neo_clear_corner(rect.x, rect.y, rect.width, rect.height) # Clear Corner
      else # Not drawing outline
        height -= 2; width -= 2; x += 1; y += 1
        if GAUGE_INSIDE_BORDER
          height -= 2; width -= 2; x += 1; y += 1
        end; end; end # End Draw Glow0
    # Set Position/Size for Gradient
    if vertical # If drawing vertical bar
      if glow; gx = gx2 = x + 1; gy = y + 1 # If GLOW
      else; gx = gx2 = x; gy = y # If NOT GLOW
      end
      gy2 = gy - 1 + ((color2_spot*max_width)/100)
      gw = gw2 = width - 2; gh = ((color2_spot*max_width)/100)
      gh2 = max_width - gh - 2
      # Draw Vertical Gradient Bar
      bitmap.gradient_fill_rect(gx, gy, gw, gh, color1, color2, true)
      bitmap.gradient_fill_rect(gx2, gy2, gw2, gh2, color2, color3, true)
      gh = (gh + gh2) # Change gauge height for draw border
    else # Drawing horizontal bar
      if glow; gx = x; gy = gy2 = y # If GLOW
        gx = x + 1; gy = gy2 = y + 1;
      else; gx = x; gy = gy2 = y # If NOT GLOW
      end
      gx2 = gx - 1 + ((color2_spot*max_width)/100)
      gw = ((color2_spot*max_width)/100); gh = gh2 = (height - 2)
      gw2 = max_width - gw - 2
      # Draw Horizontal Gradient Bar
      bitmap.gradient_fill_rect(gx, gy, gw, gh, color1, color2)
      bitmap.gradient_fill_rect(gx2, gy2, gw2, gh2, color2, color3)
      gw = (gw + gw2) # Change gauge width for draw border
    end
    if outline # If user want outline, draw borders
      if GAUGE_OUTSIDE_BORDER # Draw outside border
        bitmap.draw_neo_border(gx, gy, gw, gh, GAUGE_OUTSIDE_BORDER_COLOR, GAUGE_OUTSIDE_BORDER_COLOR2)
        bitmap.neo_clear_corner(gx, gy, gw, gh) if GAUGE_CLEAR_CORNER_OUTSIDE_BORDER
      end
      if GAUGE_INSIDE_BORDER # Draw inside border
        gx += 1; gy += 1; gw -= 2; gh -= 2
        bitmap.draw_neo_border(gx, gy, gw, gh, GAUGE_INSIDE_BORDER_COLOR, GAUGE_INSIDE_BORDER_COLOR2)
      end
    end
    # Cut gauge's width from 'max_width' to 'width'
    rect = Rect.new(0, 0, width, bitmap.height)
    self.contents.blt(dx, dy, bitmap, rect)
    bitmap.dispose # Delete bitmap
  end
end

#==============================================================================
# [Bitmap: 2 New Methods] by Woratana
# => Draw Neo Border: Draw border around specific area
# => Neo Clear Corner: Clear 4 corners of specific area
#------------------------------------------------------------------------------
class Bitmap
  #--------------------------------------------------------------------------
  # * Draw Neo Border: Draw gradient border around specific area
  # x : area x-coordinate
  # y : area y-coordinate
  # width : area width
  # height : area height
  # color : border color (left side)
  # color2 : border color (right side)
  # size : border size (default is 1)
  #--------------------------------------------------------------------------
  def draw_neo_border(x, y, width, height, color, color2 = color, size = 1)
    gradient_fill_rect(x, y, width, size, color, color2) # Top
    fill_rect(x, y, size, height, color) # Left
    fill_rect(x + width - size, y, size, height, color2) # Right
    gradient_fill_rect(x, y + height - size, width, size, color, color2) # Down
  end

  #--------------------------------------------------------------------------
  # * Neo Clear Corner: Clear 4 corners of specific area
  # x : area x-coordinate
  # y : area y-coordinate
  # width : area width
  # height : area height
  # size : area (size * size) that will be clear from corners
  #--------------------------------------------------------------------------
  def neo_clear_corner(x, y, width, height, size = 1)
    clear_rect(x, y, size, size)
    clear_rect(x + width - size, y, size, size)
    clear_rect(x, y + height - size, size, size)
    clear_rect(x + width - size, y + height - size, size, size)
  end
end

#==============================================================================
# [Game_Batter: 4 New Methods] by Woratana
# Add method to find maximum stats
#------------------------------------------------------------------------------
class Game_Battler
  def maxatk
    n = atk
    n = n - actor.parameters[2, @level] + actor.parameters[2, 99] if self.is_a?(Game_Actor)
    return n
  end
  
  def maxdef
    n = atk
    n = n - actor.parameters[3, @level] + actor.parameters[3, 99] if self.is_a?(Game_Actor)
    return n
  end
  
  def maxspi
    n = atk
    n = n - actor.parameters[4, @level] + actor.parameters[4, 99] if self.is_a?(Game_Actor)
    return n
  end
  
  def maxagi
    n = atk
    n = n - actor.parameters[5, @level] + actor.parameters[5, 99] if self.is_a?(Game_Actor)
    return n
  end
end
Revenir en haut Aller en bas
Shakuras
Maker qui quitte E-m Lv 56
Maker qui quitte E-m Lv 56
avatar

Nombre de messages : 6542
Age : 32

MessageSujet: Re: Script d'apparition de textes/chiffres/variables.... hors fenetre de message standard   Mer 31 Déc 2014, 16:35

... j'avais déjà du mal à flotter avec le premier morceau de code, là je suis noyé pour de bon.

____________
Revenir en haut Aller en bas
Zim
---Fantôme--- Lv 0
avatar

Nombre de messages : 10087
Age : 31

MessageSujet: Re: Script d'apparition de textes/chiffres/variables.... hors fenetre de message standard   Mer 31 Déc 2014, 17:02

Tu t'en fiches, celui-là c'est juste pour que ça marche, pas besoin de le comprendre. ^^  (Il sert à dessiner les jauges que je place dans mon HUD, mais toi ça te sert pas.)
Revenir en haut Aller en bas
Shakuras
Maker qui quitte E-m Lv 56
Maker qui quitte E-m Lv 56
avatar

Nombre de messages : 6542
Age : 32

MessageSujet: Re: Script d'apparition de textes/chiffres/variables.... hors fenetre de message standard   Mer 31 Déc 2014, 17:17

Je vais avoir besoin de jauge, mais vu le foutoir que c'est, je pense que pour les dites jauges, j'en resterai à de la charset.

Zim a écrit:
En tout cas c'est tout à fait faisable, et pas compliqué.

Entre toi et Alex, je vais finir par croire que je suis pas cuit ou quelque chose vu ce que je galère à comprendre cette saleté prétendument pas compliqué...

Anyway, je PENSE que j'ai compris le début , mais pourrais tu me dire à quoi correspond ces parties de codes ? Je ne comprend absolument pas ce qu'elle signifie / sont censés faire
Zim a écrit:
Code:
class Scene_Map < Scene_Base
  alias zim_scemap_str_basichud start
  alias zim_scemap_upd_basichud update
  alias zim_scemap_ter_basichud terminate
  
  def start
    zim_scemap_str_basichud
    @zbasic_hud = Zim_Basic_HUD.new
  end
  
  def update
    zim_scemap_upd_basichud
    @zbasic_hud.update
  end
  
  def terminate
    @zbasic_hud.dispose
    zim_scemap_ter_basichud
  end
end

____________
Revenir en haut Aller en bas
Zim
---Fantôme--- Lv 0
avatar

Nombre de messages : 10087
Age : 31

MessageSujet: Re: Script d'apparition de textes/chiffres/variables.... hors fenetre de message standard   Mer 31 Déc 2014, 17:53

Les alias, c'est pour éviter des soucis de compatibilité avec d'autres scripts, mais j'en sais pas plus.

def start, c'est ce qui va créer la fenêtre Zim_Basic_Hud, qui est définie plus haut (avec son contenu et tout).
On voit que ce Zim_Basic_HUD est surnommé @zbasic_hud qui est réutilisé plus bas.

Le update, c'est ce que va permettre d'utiliser la fonction update définie plus haut. Et le terminate, ce qui permet de l'effacer quand il n'y en a plus besoin.

En gros, la partie Windows décrit les propriétés de la fenêtre du HUD, et la partie Scene (celle que tu as quotée) indique au jeu de s'en servir.

Enfin c'est comme ça d'après mes souvenirs (j'y ai pas vraiment retouché depuis 2009, et je ne m'étais qu'initié). Quelqu'un qui connaît bien les scripts me contredirait peut-être !

class Zim_Basic_HUD < Window_Base (toute la partie fenêtre) indique que l'on crée un nouveau type de fenêtre dont les propriétés reposent sur Windows_Base (les propriétés communes à toutes les fenêtres).

class Scene_Map < Scene_Base indique que l'on complète Scene_Map (tout ce qui contrôle ce qui se passe sur les maps, c'est-à-dire en dehors de l'écran-titre, des combats, du vrai menu, etc.), qui lui-même repose sur Scene_Base qui définit les processus communs à toutes les scènes.
Revenir en haut Aller en bas
AristA
Maker qui quitte vraiment E-m Lv 60
Maker qui quitte vraiment E-m Lv 60
avatar

Nombre de messages : 10884
Age : 20

MessageSujet: Re: Script d'apparition de textes/chiffres/variables.... hors fenetre de message standard   Jeu 01 Jan 2015, 14:43

Il me semble que dans l'event extender, un ensemble de script simplifié, il y a une commande pour afficher du texte à l'écran de la même manière qu'une picture. De plus, on a accès de façon simplifié à tous les \V[], \N[]... Le script est très complet et possède de nombreuses fonctions très intéressantes qui simplifient la vie Wink

NB : si tu utilises la commande picture_text que je t'ai montré plutôt et que tu souhaites afficher un nombre, il faut d'abord convertir ton nombre en un string. Ça se fait en ruby grâce à la commande .to_s que tu places à la fin de ta variable. Du coup si tu veux afficher la variable 10 aux coordonnées (100,100) par exemple tu feras

Code:
picture_text(10,V[10].to_s,100,100)

Le premier argument est l'ID de l'image, dont tu auras besoin pour manipuler ton texte avec les autres commandes liées au image (picture_zoom, picture_blend, picture_tone... etc)


Dernière édition par AristA le Jeu 01 Jan 2015, 17:49, édité 1 fois
Revenir en haut Aller en bas
http://arista.lescigales.org
Shakuras
Maker qui quitte E-m Lv 56
Maker qui quitte E-m Lv 56
avatar

Nombre de messages : 6542
Age : 32

MessageSujet: Re: Script d'apparition de textes/chiffres/variables.... hors fenetre de message standard   Jeu 01 Jan 2015, 15:00

De ce que tu en dis, AristA, ce trucs semble être précisément ce que je need & ne semble pas être complexe à utiliser ( en tout cas moins que le scriptage proposé par Zim qui est je pense au delà de mon maigre niveau ( ben oui, je suis une larve en code =p ) ) .
Je vais pomper et tester ça.

( enfin, je vais faire demain : le lendemain de la nuit blanche légèrement arrosée du nouvel an n'est probablement pas le meilleur jour pour tenter de maker un truc cohérent xD )

Anyway, merci à vous pour l'aide apportée =)

____________
Revenir en haut Aller en bas
Zim
---Fantôme--- Lv 0
avatar

Nombre de messages : 10087
Age : 31

MessageSujet: Re: Script d'apparition de textes/chiffres/variables.... hors fenetre de message standard   Jeu 01 Jan 2015, 15:36

Ah oui, ça a l'air très user-friendly. Dommage que ça n'existait pas à mon époque . J'utiliserais ça aussi si je me mettais à RMVX Ace. Owi toutafé olala
Revenir en haut Aller en bas
Shakuras
Maker qui quitte E-m Lv 56
Maker qui quitte E-m Lv 56
avatar

Nombre de messages : 6542
Age : 32

MessageSujet: Re: Script d'apparition de textes/chiffres/variables.... hors fenetre de message standard   Jeu 01 Jan 2015, 16:07

Zim a écrit:
Ah oui, ça a l'air très user-friendly.
Et c'est pour ça que je sens que je vas aimer ce truc.
Qui sait ? grâce à cette serie de script, je vais peut-être finir mon jeu et release un truc qui ne sera pas un mini jeu mais ENFIN un vrai RPG ?

Spoiler:
 

____________
Revenir en haut Aller en bas
AristA
Maker qui quitte vraiment E-m Lv 60
Maker qui quitte vraiment E-m Lv 60
avatar

Nombre de messages : 10884
Age : 20

MessageSujet: Re: Script d'apparition de textes/chiffres/variables.... hors fenetre de message standard   Jeu 01 Jan 2015, 17:54

Mais non allez tu vas voir Shakuras, il faut garder espoir. Tu vas voir, ça devient un plaisir de maker lorsqu'on ne passe pas l'ensemble de son temps à se bagarrer avec le logiciel. Boxing day
Revenir en haut Aller en bas
http://arista.lescigales.org
Shakuras
Maker qui quitte E-m Lv 56
Maker qui quitte E-m Lv 56
avatar

Nombre de messages : 6542
Age : 32

MessageSujet: Re: Script d'apparition de textes/chiffres/variables.... hors fenetre de message standard   Jeu 01 Jan 2015, 18:43

Honnêtement, si ce gadget me permet vraiment de manipuler des \V[...] & \N[...] plus ou moins mélangé à du texte standard sur l’écran tout gérant leurs apparitions / disparitions / remplacement sans prise de tête majeur , je ne pense pas rencontrer de problème majeur qui empêcherait la sortie sous quelques mois d'au moins une beta qui prendra la poussière ensuite.

____________
Revenir en haut Aller en bas
Shakuras
Maker qui quitte E-m Lv 56
Maker qui quitte E-m Lv 56
avatar

Nombre de messages : 6542
Age : 32

MessageSujet: Re: Script d'apparition de textes/chiffres/variables.... hors fenetre de message standard   Ven 02 Jan 2015, 13:39

AristA a écrit:
NB : si tu utilises la commande picture_text que je t'ai montré plutôt et que tu souhaites afficher un nombre, il faut d'abord convertir ton nombre en un string. Ça se fait en ruby grâce à la commande .to_s que tu places à la fin de ta variable. Du coup si tu veux afficher la variable 10 aux coordonnées (100,100) par exemple tu feras

Code:
picture_text(10,V[10].to_s,100,100)

Le premier argument est l'ID de l'image, dont tu auras besoin pour manipuler ton texte avec les autres commandes liées au image (picture_zoom, picture_blend, picture_tone... etc)

M'bon, j'ai commencé a test et effectivement, afficher du texte , un nom de perso ou des variables est très facile, puisque même moi avec mon niveau lamentable, j'y arrive sans soucis
.
Par contre, question ( parce que je suis chiant =p ) : Comment je fais pour en afficher deux en même temps ?
par exemple "Je suis actor_name(1) et je suis level V[1].to_s". mes quelques essais font exploser le script, donc je me demande si c'est possible.

____________
Revenir en haut Aller en bas
AlexRE
Admin trop trizo Lv 65
Admin trop trizo Lv 65
avatar

Nombre de messages : 29685
Age : 30

MessageSujet: Re: Script d'apparition de textes/chiffres/variables.... hors fenetre de message standard   Ven 02 Jan 2015, 15:34

Shakuras a écrit:
puisque même moi avec mon niveau lamentable, j'y arrive sans soucis

A mettre dans un Shakura's Univers. love

____________
Relm a écrit:
Merci pour la confirmation Gary et fuck my life.
Revenir en haut Aller en bas
http://www.alexzone.net
Zim
---Fantôme--- Lv 0
avatar

Nombre de messages : 10087
Age : 31

MessageSujet: Re: Script d'apparition de textes/chiffres/variables.... hors fenetre de message standard   Ven 02 Jan 2015, 15:44

Citation :
picture_text(10,V[10].to_s,100,100)
Je me permets de supposer que le premier "10" indique l'id de "l'image-texte". Numérote-s-en une 1 et l'autre 2.
Revenir en haut Aller en bas
Shakuras
Maker qui quitte E-m Lv 56
Maker qui quitte E-m Lv 56
avatar

Nombre de messages : 6542
Age : 32

MessageSujet: Re: Script d'apparition de textes/chiffres/variables.... hors fenetre de message standard   Ven 02 Jan 2015, 16:44

C'est une possibilité, mais le soucis est le positionnement du texte : la longueur du \N[] joue sur la suite du texte, et ça risque de laisser un blanc.



EDI : s'bon, c'est trouvé, je suis passé sur la conv skype making ( http://e-magination.jeun.fr/t4585-groupe-rpg-maker-sur-skype ) et j'y ai obtenu mes renseignements =)

Faut ajouter un "+" entre texte / variable / nom.

____________
Revenir en haut Aller en bas
AristA
Maker qui quitte vraiment E-m Lv 60
Maker qui quitte vraiment E-m Lv 60
avatar

Nombre de messages : 10884
Age : 20

MessageSujet: Re: Script d'apparition de textes/chiffres/variables.... hors fenetre de message standard   Mer 14 Jan 2015, 23:49

désolé du retard !

en effet c'est bel et bien
Code:
"Je suis" + actor_name(1) + "et je suis level " + V[1].to_s

bon apparemment tu t'es répondu tout seul mais la question n'était pas compliquée. Je développe un peu si jamais ça t'intéresse.

Le ruby est un langage orienté objet : tout est objet. Les nombres sont des objets, les textes sont d'autres objets, etc. La fonction picture_text prend comme argument un objet string, c'est à dire chaîne de caractère, un texte. On ne peut faire des additions qu'entre objets identiques (qu'est ce que ça veut dire ajouter "a" + 7 sinon ? ça fait a7 ? 8,a ?)

les guillemets délimitent une chaîne de caractère. Tout ce qui est à l'intérieur sera considéré comme du texte.

.to_s c'est une méthode. Elle convertit ici un objet integrer, c'est à dire nombre entier, donc ici ta V[1], en un objet string, pour que tu puisses agglutiner ta chaîne de caractère et la représentation sous forme de chaîne de caractère de ton texte. Il faut donc la mettre en dehors de ta chaîne de caractère. idem pour tes + - etc

bref bon courage
Revenir en haut Aller en bas
http://arista.lescigales.org
Contenu sponsorisé




MessageSujet: Re: Script d'apparition de textes/chiffres/variables.... hors fenetre de message standard   

Revenir en haut Aller en bas
 
Script d'apparition de textes/chiffres/variables.... hors fenetre de message standard
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1

Permission de ce forum:Vous pouvez répondre aux sujets dans ce forum
E-magination :: ~ Forums d'enrichissement ~ :: Apprentissage et partage :: RPG Maker VX & VX Ace :: Entre aides-
Répondre au sujetSauter vers: