- KomorMembre
- Nombre de messages : 26
Age : 27
Localisation : Dans ma grotte
Distinction : aucune
Date d'inscription : 08/10/2012
Système de réputation
Mar 9 Oct 2012 - 22:46
Bonjours amis Makers,
Tout d'abord, On créé une Variable Réputation. (Sans blagues ! ! !, il faut créer une variable réputation !)
Ensuite on peut faire par exemple un panneau (ou une affiche, une PNJ qui nous le dit, une feuille sur la table de la maison, ...) qui Vous dira à quel point vous en êtes.
Exemple :(Pour l'affiche) =
Exemple :(Pour PNJ) =
Puis :
(désolé du double lien du PNJ, j'avais la flemme de trafiquer mes captures ^^)
Maintenant pour modifier votre réputation vous faites comme bon vous semble, avec des quêtes par exemple, vous rajoutez juste Modifier une variable, Réputation, puis vous ajouter ce qu'il vous plaît.
Après libre à vous de les modifier comme bon vous semble, moi par exemple J'ai fait une réputation qui va Sous le seuil de zéro, avec les gens qui t'insultent ou qui te fuient à la fin.
Merci de m'informer si l'un d'entre vous n'a pas bien saisie une notion, je me ferais une joie de réécrire une partie en développent l'explication
Voila l'essentiel, ceci est mon tout premier Tuto, donc je prendrais bien des remarques pour m'améliorer sur les suivants.
Mais comme je viens de le dire, c'est mon premier Tuto donc ne vous lâchez pas trop sur les menaces de morts
Tout d'abord, On créé une Variable Réputation. (Sans blagues ! ! !, il faut créer une variable réputation !)
Ensuite on peut faire par exemple un panneau (ou une affiche, une PNJ qui nous le dit, une feuille sur la table de la maison, ...) qui Vous dira à quel point vous en êtes.
Exemple :(Pour l'affiche) =
Exemple :(Pour PNJ) =
Puis :
(désolé du double lien du PNJ, j'avais la flemme de trafiquer mes captures ^^)
Maintenant pour modifier votre réputation vous faites comme bon vous semble, avec des quêtes par exemple, vous rajoutez juste Modifier une variable, Réputation, puis vous ajouter ce qu'il vous plaît.
Après libre à vous de les modifier comme bon vous semble, moi par exemple J'ai fait une réputation qui va Sous le seuil de zéro, avec les gens qui t'insultent ou qui te fuient à la fin.
Merci de m'informer si l'un d'entre vous n'a pas bien saisie une notion, je me ferais une joie de réécrire une partie en développent l'explication
Voila l'essentiel, ceci est mon tout premier Tuto, donc je prendrais bien des remarques pour m'améliorer sur les suivants.
Mais comme je viens de le dire, c'est mon premier Tuto donc ne vous lâchez pas trop sur les menaces de morts
- ribozymeMembre
- Nombre de messages : 5
Distinction : aucune
Date d'inscription : 09/10/2012
Re: Système de réputation
Ven 12 Oct 2012 - 14:40
Très bonne idée !
Mais as-tu une idée pour pouvoir afficher une modification en temps réel ? (comme red dead redemption)
Mais as-tu une idée pour pouvoir afficher une modification en temps réel ? (comme red dead redemption)
- LightNoxMembre
- Nombre de messages : 1759
Age : 33
Localisation : Chez Moi ^^
Date d'inscription : 10/04/2008
Re: Système de réputation
Ven 12 Oct 2012 - 14:52
Ou sinon je viens de sortir un script de réputation ^^
ici : http://rpgmakervx.1fr1.net/t13076-ln-reputationex
Mais pour ceux qui font du full event custom c'est un bon tuto bravo
ici : http://rpgmakervx.1fr1.net/t13076-ln-reputationex
Mais pour ceux qui font du full event custom c'est un bon tuto bravo
- KomorMembre
- Nombre de messages : 26
Age : 27
Localisation : Dans ma grotte
Distinction : aucune
Date d'inscription : 08/10/2012
Re: Système de réputation
Ven 12 Oct 2012 - 16:21
Merci à vous,
Ribozyme, je n'est pas bien compris ta question, tu voudrais que l'évolution soit notée à l'écran dans une fenêtre?
Si c'est le cas, je dois t'avouer que je n'ai pas cherché, quelqu'un pourrait le faire en script, mais pas moi (je n'y connais rien en script ^^).
J'essai dès maintenant, et je te dis si je trouve une solution.
Ribozyme, je n'est pas bien compris ta question, tu voudrais que l'évolution soit notée à l'écran dans une fenêtre?
Si c'est le cas, je dois t'avouer que je n'ai pas cherché, quelqu'un pourrait le faire en script, mais pas moi (je n'y connais rien en script ^^).
J'essai dès maintenant, et je te dis si je trouve une solution.
- stribiliounouMembre
- Nombre de messages : 212
Age : 26
Localisation : Trou perdu
Distinction : aucune
Date d'inscription : 14/07/2012
Re: Système de réputation
Ven 12 Oct 2012 - 17:13
J'ai essayé avec mes trèèès maigres connaissances en scripting de faire un p'tit script pour afficher la valeur de la variable.
Le voilà :
C'est pas génial mais j'suis content d'être parvenu à faire ça !
Ce script doit être placé sous Materials, et si tu veux modifier l'icône tu n'as qu'à changer ceci :
icon_index = 375
en remplaçant 375 par l'emplacement de l'icône que tu veux mettre dans l'iconset.
Tu peux aussi changer la taille de la fenêtre içi :
super(75, 110, 160, 75)
(160 étant la largeur, le dernier 75, la hauteur, le premier 75 la position X et 110 la position Y !
En espérant avoir aidé !
EDIT : J'ai oublié de présicer que mon code marche dans la mesure ou ta variable réputation est ta variable 1.
Si ce n'est pas le cas, modifie ceci :
draw_text(50, 20, 30, 50, $game_variables [1])
et plus précisément le chiffre entre parenthèses par l'ID de ta variable !
Le voilà :
- Code:
module WindowVocab
REPUTATION="Réputation"
end
#-------------------------------------------------------------------------------
class Window_Reputation < Window_Base
#-------------------------------------------------------------------------------
def initialize
super(75, 110, 160, 75)
refresh
end
#-------------------------------------------------------------------------------
def refresh
def value
draw_text(50, 20, 30, 50, $game_variables [1])
end
def currency_unit
WindowVocab::REPUTATION
end
self.contents.clear
bitmap = Cache.system("Iconset")
icon_index = 375
rect = Rect.new(icon_index % 16 * 24, icon_index / 16 * 24, 24, 24)
contents.blt(0, 0, bitmap, rect)
draw_currency_value(value, currency_unit, 4, 0, contents.width - 8)
end
end
class Scene_Menu < Scene_MenuBase
alias start_a start
def start
start_a
create_reputation_window
end
def create_reputation_window
@reputation_window = Window_Reputation.new
@reputation_window.x = 0
@reputation_window.y = (Graphics.height - @reputation_window.height) - 50
end
#-------------------------------------------------------------------------------
end
C'est pas génial mais j'suis content d'être parvenu à faire ça !
Ce script doit être placé sous Materials, et si tu veux modifier l'icône tu n'as qu'à changer ceci :
icon_index = 375
en remplaçant 375 par l'emplacement de l'icône que tu veux mettre dans l'iconset.
Tu peux aussi changer la taille de la fenêtre içi :
super(75, 110, 160, 75)
(160 étant la largeur, le dernier 75, la hauteur, le premier 75 la position X et 110 la position Y !
En espérant avoir aidé !
EDIT : J'ai oublié de présicer que mon code marche dans la mesure ou ta variable réputation est ta variable 1.
Si ce n'est pas le cas, modifie ceci :
draw_text(50, 20, 30, 50, $game_variables [1])
et plus précisément le chiffre entre parenthèses par l'ID de ta variable !
- KomorMembre
- Nombre de messages : 26
Age : 27
Localisation : Dans ma grotte
Distinction : aucune
Date d'inscription : 08/10/2012
Re: Système de réputation
Ven 12 Oct 2012 - 18:05
Merci beaucoup stribiliounou,
J'ai fait des recherches sur d'autres scripts, et je suis tombé sur quelque chose qui m'a pas mal aidé, je l'ai trafiqué un peu et voila le résultat :
L'inconvénient c'est qu'il faut actionner un interrupteur (ici le 10).
Pour que le tout fonctionne, il faut remplacer le script Scène_map(créé par défaut) par ça:
J'ai fait des recherches sur d'autres scripts, et je suis tombé sur quelque chose qui m'a pas mal aidé, je l'ai trafiqué un peu et voila le résultat :
- Code:
VARIABLE = 1 # change: ici on affiche la variable 1
INTERRUPTEUR = 10 #si l'interrupteur 10 est activé, on affiche la fenetre
class Window_Variables < Window_Base
def initialize
super(0, 0, 200, 64) # tu peux changer la position de la fenetre, en modifiant ces valeurs (x, y, longueur, hauteur)
self.contents = Bitmap.new(width-32, height-32)
self.opacity = 0
refresh
end
def refresh
self.contents.clear
self.contents.draw_text(4, 0, 150, 32, $game_variables[VARIABLE].to_s+" Points de réputation") if $game_switches[ INTERRUPTEUR]
end
def update
refresh if $game_variables[VARIABLE] != self
end
end #Pensez à mettre Lifa, Berka et Tino 212 dans vos crédits
L'inconvénient c'est qu'il faut actionner un interrupteur (ici le 10).
Pour que le tout fonctionne, il faut remplacer le script Scène_map(créé par défaut) par ça:
- Code:
#==============================================================================
# ** Scene_Map
#------------------------------------------------------------------------------
# This class performs the map screen processing.
#==============================================================================
class Scene_Map < Scene_Base
#--------------------------------------------------------------------------
# * Start processing
#--------------------------------------------------------------------------
def start
super
$game_map.refresh
@spriteset = Spriteset_Map.new
@message_window = Window_Message.new
@variables = Window_Variables.new
end
#--------------------------------------------------------------------------
# * Execute Transition
#--------------------------------------------------------------------------
def perform_transition
if Graphics.brightness == 0 # After battle or loading, etc.
fadein(30)
else # Restoration from menu, etc.
Graphics.transition(15)
end
end
#--------------------------------------------------------------------------
# * Termination Processing
#--------------------------------------------------------------------------
def terminate
super
if $scene.is_a?(Scene_Battle) # If switching to battle screen
@spriteset.dispose_characters # Hide characters for background creation
end
snapshot_for_background
@spriteset.dispose
@message_window.dispose
@variables.dispose
if $scene.is_a?(Scene_Battle) # If switching to battle screen
perform_battle_transition # Execute pre-battle transition
end
end
#--------------------------------------------------------------------------
# * Basic Update Processing
#--------------------------------------------------------------------------
def update_basic
Graphics.update # Update game screen
Input.update # Update input information
$game_map.update # Update map
@spriteset.update # Update sprite set
end
#--------------------------------------------------------------------------
# * Frame Update
#--------------------------------------------------------------------------
def update
super
$game_map.interpreter.update # Update interpreter
$game_map.update # Update map
$game_player.update # Update player
$game_system.update # Update timer
@spriteset.update # Update sprite set
@message_window.update # Update message window
@variables.update
unless $game_message.visible # Unless displaying a message
update_transfer_player
update_encounter
update_call_menu
update_call_debug
update_scene_change
end
end
#--------------------------------------------------------------------------
# * Fade In Screen
# duration : time
# If you use Graphics.fadeout directly on the map screen, a number of
# problems can occur, such as weather effects and parallax scrolling
# being stopped. So instead, perform a dynamic fade-in.
#--------------------------------------------------------------------------
def fadein(duration)
Graphics.transition(0)
for i in 0..duration-1
Graphics.brightness = 255 * i / duration
update_basic
end
Graphics.brightness = 255
end
#--------------------------------------------------------------------------
# * Fade Out Screen
# duration : time
# As with the fadein above, Graphics.fadein is not used directly.
#--------------------------------------------------------------------------
def fadeout(duration)
Graphics.transition(0)
for i in 0..duration-1
Graphics.brightness = 255 - 255 * i / duration
update_basic
end
Graphics.brightness = 0
end
#--------------------------------------------------------------------------
# * Player Transfer Processing
#--------------------------------------------------------------------------
def update_transfer_player
return unless $game_player.transfer?
fade = (Graphics.brightness > 0)
fadeout(30) if fade
@spriteset.dispose # Dispose of sprite set
$game_player.perform_transfer # Execute player transfer
$game_map.autoplay # Automatically switch BGM and BGS
$game_map.update
Graphics.wait(15)
@spriteset = Spriteset_Map.new # Recreate sprite set
fadein(30) if fade
Input.update
end
#--------------------------------------------------------------------------
# * Encounter Processing
#--------------------------------------------------------------------------
def update_encounter
return if $game_player.encounter_count > 0 # Check steps
return if $game_map.interpreter.running? # Event being executed?
return if $game_system.encounter_disabled # Encounters forbidden?
troop_id = $game_player.make_encounter_troop_id # Determine troop
return if $data_troops[troop_id] == nil # Troop is invalid?
$game_troop.setup(troop_id)
$game_troop.can_escape = true
$game_temp.battle_proc = nil
$game_temp.next_scene = "battle"
preemptive_or_surprise
end
#--------------------------------------------------------------------------
# * Determine Preemptive Strike and Surprise Attack Chance
#--------------------------------------------------------------------------
def preemptive_or_surprise
actors_agi = $game_party.average_agi
enemies_agi = $game_troop.average_agi
if actors_agi >= enemies_agi
percent_preemptive = 5
percent_surprise = 3
else
percent_preemptive = 3
percent_surprise = 5
end
if rand(100) < percent_preemptive
$game_troop.preemptive = true
elsif rand(100) < percent_surprise
$game_troop.surprise = true
end
end
#--------------------------------------------------------------------------
# * Determine if Menu is Called due to Cancel Button
#--------------------------------------------------------------------------
def update_call_menu
if Input.trigger?(Input::B)
return if $game_map.interpreter.running? # Event being executed?
return if $game_system.menu_disabled # Menu forbidden?
$game_temp.menu_beep = true # Set SE play flag
$game_temp.next_scene = "menu"
end
end
#--------------------------------------------------------------------------
# * Determine Bug Call Due to F9 key
#--------------------------------------------------------------------------
def update_call_debug
if $TEST and Input.press?(Input::F9) # F9 key during test play
$game_temp.next_scene = "debug"
end
end
#--------------------------------------------------------------------------
# * Execute Screen Switch
#--------------------------------------------------------------------------
def update_scene_change
return if $game_player.moving? # Is player moving?
case $game_temp.next_scene
when "battle"
call_battle
when "shop"
call_shop
when "name"
call_name
when "menu"
call_menu
when "save"
call_save
when "debug"
call_debug
when "gameover"
call_gameover
when "title"
call_title
else
$game_temp.next_scene = nil
end
end
#--------------------------------------------------------------------------
# * Switch to Battle Screen
#--------------------------------------------------------------------------
def call_battle
@spriteset.update
Graphics.update
$game_player.make_encounter_count
$game_player.straighten
$game_temp.map_bgm = RPG::BGM.last
$game_temp.map_bgs = RPG::BGS.last
RPG::BGM.stop
RPG::BGS.stop
Sound.play_battle_start
$game_system.battle_bgm.play
$game_temp.next_scene = nil
$scene = Scene_Battle.new
end
#--------------------------------------------------------------------------
# * Switch to Shop Screen
#--------------------------------------------------------------------------
def call_shop
$game_temp.next_scene = nil
$scene = Scene_Shop.new
end
#--------------------------------------------------------------------------
# * Switch to Name Input Screen
#--------------------------------------------------------------------------
def call_name
$game_temp.next_scene = nil
$scene = Scene_Name.new
end
#--------------------------------------------------------------------------
# * Switch to Menu Screen
#--------------------------------------------------------------------------
def call_menu
if $game_temp.menu_beep
Sound.play_decision
$game_temp.menu_beep = false
end
$game_temp.next_scene = nil
$scene = Scene_Menu.new
end
#--------------------------------------------------------------------------
# * Switch to Save Screen
#--------------------------------------------------------------------------
def call_save
$game_temp.next_scene = nil
$scene = Scene_File.new(true, false, true)
end
#--------------------------------------------------------------------------
# * Switch to Debug Screen
#--------------------------------------------------------------------------
def call_debug
Sound.play_decision
$game_temp.next_scene = nil
$scene = Scene_Debug.new
end
#--------------------------------------------------------------------------
# * Switch to Game Over Screen
#--------------------------------------------------------------------------
def call_gameover
$game_temp.next_scene = nil
$scene = Scene_Gameover.new
end
#--------------------------------------------------------------------------
# * Switch to Title Screen
#--------------------------------------------------------------------------
def call_title
$game_temp.next_scene = nil
$scene = Scene_Title.new
fadeout(60)
end
#--------------------------------------------------------------------------
# * Execute Pre-battle Transition
#--------------------------------------------------------------------------
def perform_battle_transition
Graphics.transition(80, "Graphics/System/BattleStart", 80)
Graphics.freeze
end
end
- LightNoxMembre
- Nombre de messages : 1759
Age : 33
Localisation : Chez Moi ^^
Date d'inscription : 10/04/2008
Re: Système de réputation
Ven 12 Oct 2012 - 18:43
Je viens d'en faire un de systeme de reputation j'ai mis le lien plus haut si sa vous interesse ^^
- KomorMembre
- Nombre de messages : 26
Age : 27
Localisation : Dans ma grotte
Distinction : aucune
Date d'inscription : 08/10/2012
Re: Système de réputation
Ven 12 Oct 2012 - 18:47
Oui, Merci LightNox
J'avais pas fais attention
J'avais pas fais attention
- stribiliounouMembre
- Nombre de messages : 212
Age : 26
Localisation : Trou perdu
Distinction : aucune
Date d'inscription : 14/07/2012
Re: Système de réputation
Ven 12 Oct 2012 - 19:17
C'est vrai mais je voulais quand même tenter ^^
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum