Partagez
Aller en bas
tonyryu
tonyryu
Membre

Nombre de messages : 895
Age : 39
Localisation : Près de Nantes
Distinction : aucune
Date d'inscription : 27/05/2010
http://www.tonyryudev.com

PNJ Name Empty PNJ Name

le Ven 14 Sep 2012 - 10:25
PNJ Name

Auteur : Tonyryu

Version du script : 1.01

Principe du script : Il permet l'affichage d'un nom au dessus des événements placés sur la map

Instructions : Ajouter \N[] avec le nom à afficher, dans le nom de l'event, exemple :
EV003\N[Esbrouf]

Des commandes script peuvent être utilisées pour voir ou non le nom du personnage :
- pnj_name_show
- pnj_name_hide
Ces 2 fonctions attendent un paramètres optionnels indiquant l'ID de l'event impacté. Si le paramètre n'est pas renseigné, c'est l'event appelant qui est modifié.
Exemple pour rendre invisible le nom de l'event en cours:
@>Script: pnj_name_hide()

Exemple pour rendre visible le nom de l'event avec l'ID 006:
@>Script: pnj_name_show(6)

Des constantes modifiables sont présentes dans le script afin de modifier la taille de la font, la présence de la sous-couche de la font, ainsi que la correction de position :
PNJ_FONT_SIZE = 20
PNJ_FONT_OUTLINE = true
PNJ_DECALAGE_H = 25
PNJ_DECALAGE_V = 5

Screens :
PNJ Name Prgvxacenompnj

Script :
Code:
#==============================================================================
# ■ Systeme de gestion d'affichage de nom au dessus d'un event
#------------------------------------------------------------------------------
#  Ce script a pour but de permettre l'affichage de nom au dessus d'un event
#
#  Version  Date          Auteur        Commentaires
#  1.00    14/09/2012    Tonyryu      Première release
#  1.01    16/05/2013    Tonyryu      Ajout d'une gestion de visibilité du nom
#
# Attention : Ce script est ma propriété en tant que création et il est donc
# soumis au droit de la propriété intellectuelle.
# En aucun cas, il ne doit être copié ou publié vers un autre forum sans en
# avoir reçu mon accord au préalable.
#
#==============================================================================

# Constantes modifiables
PNJ_FONT_SIZE = 20
PNJ_FONT_OUTLINE = true
PNJ_DECALAGE_H = 25
PNJ_DECALAGE_V = 5

#==============================================================================
# ■ Sprite_Character
#------------------------------------------------------------------------------
#  Permet d'afficher le character sur la map
#==============================================================================
class Sprite_Character < Sprite_Base

  #--------------------------------------------------------------------------
  # ● Constructeur
  #    character : Game_Character
  #--------------------------------------------------------------------------
  alias pnjn_initialize initialize
  def initialize(viewport, character = nil)
    pnjn_initialize(viewport, character)
    create_pnj_name
    update_pnj_name
  end
 
  #--------------------------------------------------------------------------
  # ● create_pnj_name
  #--------------------------------------------------------------------------
  def create_pnj_name
    if @character.pnjName != ""
      @sprite_pnj_name = ::Sprite.new(viewport)
      bmp = Bitmap.new(10,10)
      bmp.font.size = PNJ_FONT_SIZE
      bmp.font.outline = PNJ_FONT_OUTLINE
      rectText = bmp.text_size(@character.pnjName)
      bmp = Bitmap.new(rectText.width + 10, rectText.height + 6)
      bmp.font.size = PNJ_FONT_SIZE
      bmp.font.outline = PNJ_FONT_OUTLINE
      bmp.draw_text(rectText, @character.pnjName,1)
      @sprite_pnj_name.bitmap = bmp
    end
  end
 
  #--------------------------------------------------------------------------
  # ● mise a jour
  #--------------------------------------------------------------------------
  alias pnjn_update update
  def update
    pnjn_update
    update_pnj_name
  end
 
  #--------------------------------------------------------------------------
  # ● update_pnj_name
  #--------------------------------------------------------------------------
  def update_pnj_name
    if @sprite_pnj_name
      @sprite_pnj_name.visible = @character.pnjNameVisible
      @sprite_pnj_name.x = x - (@sprite_pnj_name.width / 2) + PNJ_DECALAGE_V
      @sprite_pnj_name.y = y - height - PNJ_DECALAGE_H
      @sprite_pnj_name.z = z + 199
    end
  end
end

#==============================================================================
# ■ Game_CharacterBase
#------------------------------------------------------------------------------
#  Ajout et gestion de la propriété @animation_speed
#
#  Version  Date          Auteur        Commentaires
#  1.00    26/08/2012    Tonyryu      Création
#  1.01    16/05/2013    Tonyryu      Ajout d'une variable sauvegardant l'affichage du nom
#
#==============================================================================
class Game_CharacterBase
  attr_reader :pnjName
  attr_reader :pnjNameVisible
 
  #--------------------------------------------------------------------------
  # ● init_public_members (surcharge)
  #--------------------------------------------------------------------------
  alias pnjn_init_public_members init_public_members
  def init_public_members
    pnjn_init_public_members
    @pnjName = ""
    @pnjNameVisible = true
  end
end


#==============================================================================
# ■ Game_Event
#------------------------------------------------------------------------------
#  Modification paramétrage d'une page d'event
#
#  Version  Date          Auteur        Commentaires
#  1.00    14/09/2012    Tonyryu      Création
#  1.01    16/05/2013    Tonyryu      Ajout de 2 fonctions de gestion de l'affichage du nom
#
#==============================================================================
class Game_Event
 
  #--------------------------------------------------------------------------
  # ● setup_page_settings (surcharge)
  #--------------------------------------------------------------------------
  alias pnjn_setup_page_settings setup_page_settings
  def setup_page_settings
    pnjn_setup_page_settings
    @event.name.gsub!(/\\/) { "\e" }
    @event.name.gsub!(/\eN\[(.*)\]/i) { @pnjName = $1 }
  end
 
  #--------------------------------------------------------------------------
  # ● setup_page_settings (surcharge)
  #--------------------------------------------------------------------------
  def pnj_name_show()
    @pnjNameVisible = true
  end
 
  def pnj_name_hide()
    @pnjNameVisible = false
  end
end

#==============================================================================
# ■ Game_Interpreter
#------------------------------------------------------------------------------
#  Modification de la gestion d'interpreteur
#
#  Version  Date          Auteur        Commentaires
#  1.00    16/05/2013    Tonyryu      Création
#
#==============================================================================
class Game_Interpreter
  def pnj_name_show(pIdEvent = @event_id)
    $game_map.events[pIdEvent].pnj_name_show()
  end
 
  def pnj_name_hide(pIdEvent = @event_id)
    $game_map.events[pIdEvent].pnj_name_hide()
  end
end

+5 pts de participations


Dernière édition par tonyryu le Jeu 16 Mai 2013 - 20:26, édité 1 fois
Balbereith
Balbereith
Staffeux retraité

Nombre de messages : 4129
Age : 26
Localisation : dans l'ombre...
Distinction : Péripatéticienne à temps perdu
Helly n°666 [Coco' ;D]
mon ptit balbounet p'tit jardinier en herbe(les râteaux ça le connait) [tonton Adurna]
Cultivateur professionnel de la commu' (il a de bons outils en de nombreux exemplaires PNJ Name 522164 ) [Coco' Smile]
Date d'inscription : 13/05/2009

PNJ Name Empty Re: PNJ Name

le Ven 14 Sep 2012 - 21:43
Merci pour ce script, +5 pts de participations Wink

EDIT : Après rereguardage du script XD, est-ce que ce script est compatible avec celui de modification de vitesse que tu as fait, vu que tu utilise pour les deux la boîte de nom d'un évent. (C'est une question par simple curiosité)
tonyryu
tonyryu
Membre

Nombre de messages : 895
Age : 39
Localisation : Près de Nantes
Distinction : aucune
Date d'inscription : 27/05/2010
http://www.tonyryudev.com

PNJ Name Empty Re: PNJ Name

le Ven 14 Sep 2012 - 22:27
oui, les deux scripts sont compatibles, car la surcharge de la méthode setup_page_settings par alias permet d'appeler cette méthode pour chaque script l'un après l'autre.
LightNox
LightNox
Membre

Nombre de messages : 1759
Age : 28
Localisation : Chez Moi ^^
Date d'inscription : 10/04/2008

PNJ Name Empty Re: PNJ Name

le Sam 15 Sep 2012 - 0:33
merci pour se script tonyryu ^^

encore une fois tu sort un bon script bien utile Wink
Ebrayana
Ebrayana
Membre

Nombre de messages : 21
Age : 20
Localisation : Quelque part dans ce monde
Distinction : aucune
Date d'inscription : 15/06/2013

PNJ Name Empty Re: PNJ Name

le Jeu 20 Juin 2013 - 19:20
Merci à l'atelier RGSS Very Happy
Elisa'
Elisa'
Staffeux retraité

Nombre de messages : 2924
Age : 21
Localisation : Par là-bas !
Distinction : Mon héritière que je chéris PNJ Name 344805PNJ Name 344805
[Coco' Smile]
Plus que 2 ans avant d'épouser Coco' ! Compte à rebours lancé !
[Auto-distinction]

Adepte du "Je le savais" alors qu'elle le savait pas.
Date d'inscription : 30/05/2009

PNJ Name Empty Re: PNJ Name

le Jeu 20 Juin 2013 - 20:13
Merci de faire attention aux nécroposts Ebrayana, c'est interdit ici. Wink

_________________


Cliquez ici pour voter pour la commu'
PNJ Name Banner
Fanrpg
Fanrpg
Membre

Nombre de messages : 16
Distinction : aucune
Date d'inscription : 19/06/2014

PNJ Name Empty Re: PNJ Name

le Sam 21 Juin 2014 - 2:53
Vraiment un bon script, c'est le premier que je trouve sur le site qui est assez facile à faire fonctionner sans problème, merci
beaucoup il est très utile !
Sprider
Sprider
Membre

Nombre de messages : 31
Distinction : aucune
Date d'inscription : 02/04/2015

PNJ Name Empty Re: PNJ Name

le Ven 3 Avr 2015 - 10:45
J'ai repérer deux bugs :

1/ Lorsque un PNJ avec le nom d'afficher disparaît (avec l'option effacer l’événement) son nom reste au sol.

2/ Si l'on affiche un message juste avant de démarrer un combat le message restera durant le processus du combat.

EDIT : Il suffit juste de flasher l'écran avant le combat pour faire disparaître le bug x)



Après c'est peut être à cause de mon menu ^^
Contenu sponsorisé

PNJ Name Empty Re: PNJ Name

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