- mehdildiMembre
- Nombre de messages : 47
Distinction : aucune
Date d'inscription : 22/08/2011
Script de reponses avec émotions
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:
En espérant faire des heureux avec ça
- Calypso12Membre
- Nombre de messages : 22
Distinction : aucune
Date d'inscription : 05/10/2014
Re: Script de reponses avec émotions
Jeu 13 Nov 2014 - 21:21
Et une heureuse ! Une !
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum