Partagez
Aller en bas
avatar
mehdildi
Membre

Nombre de messages : 47
Distinction : aucune
Date d'inscription : 22/08/2011

Script de reponses avec émotions

le Mer 11 Juin 2014 - 19:57
Galv's emotional responses


Auteur : Galv's

Version du script : 1.2

Principe du script : Permet de donner un choix de réponses selon quatre critères : Colère, joie, tristesse et neutralité


Screens :
Spoiler:

Script : Le script (dont j'ai donné une petite traduction maison pour les anglophobes)
Spoiler:

Code:

#------------------------------------------------------------------------------#
#  Galv's Emotional Responses
#------------------------------------------------------------------------------#
#  Pour: RPGMAKER VX ACE
#  Version 1.2
#------------------------------------------------------------------------------#
#  2012-10-22 - Version 1.2 - updated alias names for compatibility
#  2012-10-22 - Version 1.1 - fixed a bug
#  2012-10-22 - Version 1.0 - release
#------------------------------------------------------------------------------#
#
#  Ce script vous permet de choisir une réponses selon quatre émotions:
#  Colère, joie, tristesse, neutralité.
#  Utiliser le scripts avec des conditions permet
#  au joueur de continuer l'histoire selon ses choix
#
#  A chaque fois que le joueur choisis une réponse, le chef de groupe gagne un point
#  dans l'émotion sélectionné. En utilisant les appels de scripts vous pouvez choisir
#  combien de points vous voulez donner au personnage.
#  En utilisant les conditions vous pouvez choisir combien faut il de point
#  pour que certaines choses se passent, par exemple, combien de colère faut-il
#  pour qu'une réponse soit disponible.
#
#  Requires graphics located in the Graphics/System folder of the demo.
#
#  Les appels de scripts possible:.
#------------------------------------------------------------------------------#
#  call_emote                      # Appel le menu de choix d'émote
#
#  emote("emote")                  # Utiliser apres que le joueur
#                                  # ai choisis une emotions, vous pouvez choisir
#                                  # ce qu'il ce passe avec cette émotions
#
#  check_emote(actor_id, "emote")  # Utiliser en condition ou variable
#                                  # pour choisir le nombre de point a donner
#                                  # Pour le chef de groupe l'id est 0.
#
#  check_party_emote("emote")      # Utiliser pour choisir le nombre
#                                  # de point a donner a tout le groupe
#------------------------------------------------------------------------------#
#  EXEMPLES:
#  check_emote(1, "sad")          # Le nombre de point de tristesse du joueur 1
#  check_emote(4, "happy")        # Le nombre de point de joie du joueur 4
#  check_emote(0, "angry")        # Le nombre de point de colère du chef de groupe
#
#  emote("sad")                   # Pour une condition. Vérifie si la dernière
#                                 # emote sélectionner est "sad"
#------------------------------------------------------------------------------#
#  Les emotes par défaut sont: "sad", "happy", "angry", "none".
#  Toujours utiliser des minuscules quand vous faites des appels de script.
#  Essayez la démo pour les exemples dans des branches conditionnels .
#------------------------------------------------------------------------------#

$imported = {} if $imported.nil?
$imported["Emote_Choices"] = true

module Emotes

#------------------------------------------------------------------------------#
#  SCRIPT SETUP OPTIONS
#------------------------------------------------------------------------------#

 # Changez ce que vous voulez pour les émotes de votre jeu. Si vous remplacer
 # Toutes les émotes si dessous, vous devrez remplacer aussi dans
 # les appels de scripts.
 
 EMOTE1 = "angry"       # Choix de gauche
 EMOTE2 = "happy"       # Choix du haut
 EMOTE3 = "sad"         # Choix du bas
 EMOTE4 = "none"        # Choix de droite
 
 # La démo inclue des boites vides pour que vous puissiez mettre les émotions
 # que vous désirez.

#------------------------------------------------------------------------------#
#  END SCRIPT SETUP OPTIONS
#------------------------------------------------------------------------------#

end


class Scene_Emote < Scene_Base
 def start
   super
   create_background
   create_emotes
 end
 def create_background
   @background_sprite = Sprite.new
   @background_sprite.bitmap = SceneManager.background_bitmap
   @background_sprite.color.set(16, 16, 16, 0)
 end
 def create_emotes
   @menu_btn = Sprite.new
   @menu_btn.bitmap = Cache.system("choices-menu")
   @menu_btn.x = Graphics.width / 2 - 150
   @menu_btn.y = Graphics.height / 2 - 100
   @emote = Emote_Choices.new
 end
 def update
   super
   @emote.selected = 1 if Input.trigger?(:UP)
   @emote.selected = 2 if Input.trigger?(:RIGHT)
   @emote.selected = 3 if Input.trigger?(:LEFT)
   @emote.selected = 4 if Input.trigger?(:DOWN)
   @emote.update
   if Input.trigger?(:B)
     $game_temp.emote_response = Emotes::EMOTE4
     SceneManager.return
   end
   if Input.trigger?(:C)
     Sound.play_ok
     case @emote.selected
     when 1 # up
       $game_temp.emote_response = Emotes::EMOTE2
       $game_party.members[0].emote_happy += 1
       SceneManager.return
     when 2 # right
       $game_temp.emote_response = Emotes::EMOTE4
       $game_party.members[0].emote_none += 1
       SceneManager.return
     when 3 # left
       $game_temp.emote_response = Emotes::EMOTE1
       $game_party.members[0].emote_angry += 1
       SceneManager.return
     when 4 # down
       $game_temp.emote_response = Emotes::EMOTE3
       $game_party.members[0].emote_sad += 1
       SceneManager.return
     end
   end
 end
 def terminate
   super
   dispose_all_sprites
 end
 def dispose_all_sprites
   instance_variables.each do |varname|
     ivar = instance_variable_get(varname)
     ivar.dispose if ivar.is_a?(Sprite)
   end
 end
end


class Emote_Choices < Sprite_Base
 attr_reader :selected
 def initialize
   super(nil)
   @cursor = Sprite.new
   @cursor.bitmap = Cache.system("choices-cursor")
   @cursor.x = Graphics.width / 2 - 50
   @cursor.y = Graphics.height / 2 - 100
   @selected = 1
   @pulse = 0
   update
 end
 def selected=(selected)
   Sound.play_cursor if @selected > 0
   mx = Graphics.width / 2
   my = Graphics.height / 2
   @selected = selected
   case selected
   when 1 # up
     @cursor.x = mx - 50
     @cursor.y = my - 100
   when 2 # right
     @cursor.x = mx + 50
     @cursor.y = my - 50
   when 3 # left
     @cursor.x = mx - 150
     @cursor.y = my - 50
   when 4 #down
     @cursor.x = mx - 50
     @cursor.y = my
   end
 end
 def update
   super
   @pulse += 1
   @cursor.opacity -= 5 if @pulse > 0
   @cursor.opacity += 5 if @pulse < 0
   @pulse = -20 if @pulse >= 20
 end
 def dispose
   super
   @cursor.bitmap.dispose
   @cursor.dispose
 end
end # Sprite_Menu < Sprite_Base


class Game_Temp
 attr_accessor   :emote_response
 alias galv_emotions_initialize initialize
 def initialize
   galv_emotions_initialize
   @emote_response = Emotes::EMOTE4
 end
 def emote_response
   @emote_response
 end
end # Game_Temp


class Game_Interpreter
 def emote(emote)
   return true if emote == $game_temp.emote_response
 end
 
 def check_emote(actor_id, emote)
   if actor_id < 1
     return if $game_party.members[actor_id] == nil
     charater = $game_party.members[actor_id]
   else
     return if $game_actors[actor_id] == nil
     charater = $game_actors[actor_id]
   end
   case emote
   when Emotes::EMOTE1
     charater.emote_angry
   when Emotes::EMOTE2
     charater.emote_happy
   when Emotes::EMOTE3
     charater.emote_sad
   when Emotes::EMOTE4
     charater.emote_none
   end
 end
 def call_emote
   SceneManager.call(Scene_Emote)
   wait(1)
 end
 def call_emote
   SceneManager.call(Scene_Emote)
   wait(1)
 end
 
 def check_party_emote(emote)
   no_members = $game_party.members.count
   total = 0
   case emote
   when Emotes::EMOTE1
     no_members.times { |i| total += $game_party.members[i].emote_angry}
   when Emotes::EMOTE2
     no_members.times { |i| total += $game_party.members[i].emote_happy}
   when Emotes::EMOTE3
     no_members.times { |i| total += $game_party.members[i].emote_sad}
   when Emotes::EMOTE4
     no_members.times { |i| total += $game_party.members[i].emote_none}
   end
   return total
 end
 
 
end # Game_Interpreter


class Game_Actor < Game_Battler
 attr_accessor :emote_angry
 attr_accessor :emote_happy
 attr_accessor :emote_sad
 attr_accessor :emote_none
 alias galv_emotions_setup setup
 def setup(actor_id)
   galv_emotions_setup(actor_id)
   @emote_angry = 0
   @emote_happy = 0
   @emote_sad = 0
   @emote_none = 0
 end
 def emote_happy
   @emote_happy
 end
 def emote_angry
   @emote_angry
 end
 def emote_sad
   @emote_sad
 end
 def emote_none
   @emote_none
 end
end # Game_Actor < Game_Battler

Démo :
Spoiler:
http://galvs-scripts.com/galvs-emotional-responses/

En espérant faire des heureux avec ça Very Happy
avatar
Calypso12
Membre

Nombre de messages : 22
Distinction : aucune
Date d'inscription : 05/10/2014

Re: Script de reponses avec émotions

le Jeu 13 Nov 2014 - 21:21
Et une heureuse ! Une !
Revenir en haut
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum