Partagez
Aller en bas
wilkyo
wilkyo
Membre

Nombre de messages : 316
Age : 28
Localisation : Loiret
Distinction : Sauveur de miches // Chou (l)

[Coco' Smile]

Adepte de Pedobear // Lécheur de lolis

[Mist' Wink]

Personnage Colorée // Instructeur de boulet

[Wax Rolling Eyes]
Date d'inscription : 01/09/2008
http://www.wilkyo.com

[ADD ON SBS]: Scan Empty [ADD ON SBS]: Scan

le Lun 23 Aoû 2010 - 14:30
Auteur : wilkyo, d'une requête
Date : 23/08/2010
Dernière version: 26/08/2010

Description du script :
Ce script permet de n'afficher la vie des ennemis ciblés que s'ils sont sous l'effet de la compétence "Scan"
/!\ Il n'affiche pas du tout une autre barre de vie au niveau du monstre !
Vous pouvez, si vous avez scanné un ennemi, voir la vie des ennemis similaires (id dans la BDD) (réglable en haut du script)

Images:
[ADD ON SBS]: Scan Scan110[ADD ON SBS]: Scan Scan210
Ps: Si vous ne voulez pas que l'état soit affiché entre les [], vous devez aller dans le script SBS Configurations et ajouter dans STATE_NON_DISPLAY l'id de votre état "Scanné"

Installation :
Placez le en dessous des scripts du SBS, et au-dessus de main.
- Créez l'état "Scanné" dans la BDD, en cochant la case "Aucune résistance"
- Créez la compétence Scan, qui inflige à un ennemi l'état "Scanné" (avec de préférence 100%)
- Réglez vos préférences en haut du script (id de l'état...)

Code:
#############################################################################
# Add_on SBS - Scan                                                                                                                                          #
# by wilkyo - Idea of Drakild                                                                                                                                #
# Permet d'utiliser la compétence scan, qui une fois utilisée sur un ennemi, permet de voir sa vie #
#                                                                                                                                                                              #
# Utilisation:                                                                                                                                                          #
# - Créez l'état "Scanné" dans la BDD, en cochant la case "Aucune résistance"                                    #
# - Créez la compétence Scan, qui inflige à un ennemi l'état "Scanné" (avec de préférence 100%)  #
# - Réglez vos préférences çi dessous                                                                                                            #
#############################################################################

module N01
  # id de l'état "Scanné"
  ID_SCAN = 21
  # Si vrai, replace le nom de la cible à la place de sa vie
  SCAN_NAME =true
  # Décale vers la droite le nom (pour ceux qui sont pas satisfaits de l'affichage)
  DECAL_NAME = true
  # Si vrai, en scannant 1 ennemi, ça scan tous les ennemis de la même espèce.
  SCAN_GROUPES = true
end

#==============================================================================
# ** Game_Actor
#------------------------------------------------------------------------------
#  This class handles actors. It's used within the Game_Actors class
# ($game_actors) and referenced by the Game_Party class ($game_party).
#==============================================================================

class Game_Actor < Game_Battler
 
  def enemy?
    return false
  end
 
  def scanned?
    return true
  end
 
end

#==============================================================================
# ** Game_Enemy
#------------------------------------------------------------------------------
#  This class handles enemy characters. It's used within the Game_Troop class
# ($game_troop).
#==============================================================================

class Game_Enemy < Game_Battler
   
  def enemy?
    return true
  end
 
  #######################################################
  # Renvoie vrai si l'ennemi est sous l'effet du scan                                    #
  #######################################################
  def scanned?
    return states.include?($data_states[N01::ID_SCAN])
  end
 
  #######################################################
  # Scan tous les ennemis du même type qu'un ennemi scanné            #
  #######################################################
  def scan_groupes
    s_s = $data_states[N01::ID_SCAN]
    for i in $game_troop.members
      if i.states.include?(s_s)
        for j in $game_troop.members
          j.add_state(N01::ID_SCAN) if j.enemy_id == i.enemy_id && !j.states.include?(s_s)
        end
      end
    end
  end
 
end

#==============================================================================
# ■ Window_Help
#------------------------------------------------------------------------------
#  スキルやアイテムの説明、アクターのステータスなどを表示するウィンドウです。
#==============================================================================

class Window_Help < Window_Base
  #--------------------------------------------------------------------------
  # ● テキスト設定
  #--------------------------------------------------------------------------
  def set_text_n01add(member)
    self.contents.clear
    return if member == nil || member.dead?
    member.scan_groupes if N01::SCAN_GROUPES && member.enemy?
    self.contents.font.color = normal_color
    if !member.actor? && N01::ENEMY_NON_DISPLAY.include?(member.enemy_id)
      return self.contents.draw_text(4, 0, self.width - 40, WLH, member.name, 1)
    elsif member.actor? && !N01::ACTOR_DISPLAY
      return self.contents.draw_text(4, 0, self.width - 40, WLH, member.name, 1)
    end
    if N01::WORD_STATE_DISPLAY && N01::HP_DISPLAY
        nom = member.name
        lgt = 175
      if member.scanned?
        draw_actor_hp(member, 182, 0, 120)
      elsif N01::SCAN_NAME
        (nom += " " while nom.size < 22) if N01::DECAL_NAME
        lgt = 300
      end
      self.contents.draw_text(0, 0, lgt, WLH, nom, 2)
      text = "["
      for state in member.states
        next if N01::STATE_NON_DISPLAY.include?(state.id)
        text += " " if text != "["
        text += state.name
      end
      text += N01::WORD_NORMAL_STATE if text == "["
      text += "]"
      text = "" if text == "[]"
      self.contents.draw_text(315, 0, 195, WLH, text, 0)
    elsif N01::WORD_STATE_DISPLAY
      text = member.name + "  ["
      for state in member.states
        next if N01::STATE_NON_DISPLAY.include?(state.id)
        text += " " if text != member.name + "  ["
        text += state.name
      end
      text += N01::WORD_NORMAL_STATE if text == member.name + "  ["
      text += "]"
      text = "" if text == "[]"
      self.contents.draw_text(4, 0, self.width - 40, WLH, text, 1)
    elsif N01::HP_DISPLAY
      nom = member.name
      lgt = 175
      if member.scanned?
        draw_actor_hp(member, 262, 0, 120)
      elsif N01::SCAN_NAME
        (nom += " " while nom.size < 22) if N01::DECAL_NAME
        lgt = 300
      end
      self.contents.draw_text(4, 0, lgt, WLH, nom, 2)
    end
  end
 
end

Bonne journée


Dernière édition par wilkyo le Jeu 26 Aoû 2010 - 19:28, édité 8 fois
Black'
Black'
Membre

Nombre de messages : 351
Localisation : Far, far away
Distinction : aucune
Date d'inscription : 19/04/2010

[ADD ON SBS]: Scan Empty Re: [ADD ON SBS]: Scan

le Lun 23 Aoû 2010 - 15:03
Superbe script, bravovovovo!0.0 Merci du partage !
Drakild
Drakild
Membre

Nombre de messages : 103
Age : 40
Localisation : Mozelle
Distinction : aucune
Date d'inscription : 15/03/2009

[ADD ON SBS]: Scan Empty Re: [ADD ON SBS]: Scan

le Lun 23 Aoû 2010 - 23:25
Super script, bon travail.

C'est pile ce que je voulais.
Merci
Revenir en haut
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum