Accueil du SiteAccueil du Site  AccueilAccueil  Dernières imagesDernières images  RechercherRechercher  ConnexionConnexion  S'enregistrerS'enregistrer  



Le Deal du moment :
Pokémon Évolutions Prismatiques : ...
Voir le deal

Partagez
 

 [VX] Gérer la faim et la soif

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
Elekami
Fondateur
Fondateur
Elekami

Masculin
Messages postés : 19071
Date d'inscription : 19/07/2008
Jauge LPC :
[VX] Gérer la faim et la soif 8915271400100 / 100100 / 100[VX] Gérer la faim et la soif 8915271400

[VX] Gérer la faim et la soif Pater_10
[VX] Gérer la faim et la soif Staffe10
[VX] Gérer la faim et la soif Mythe_10
[VX] Gérer la faim et la soif Membre11
[VX] Gérer la faim et la soif Doyen10
[VX] Gérer la faim et la soif Scanar10
[VX] Gérer la faim et la soif Compos10
[VX] Gérer la faim et la soif Testeu10
[VX] Gérer la faim et la soif Membre15
[VX] Gérer la faim et la soif Partag10
[VX] Gérer la faim et la soif Projet10
[VX] Gérer la faim et la soif Projet16
[VX] Gérer la faim et la soif Riche_10
[VX] Gérer la faim et la soif Travai10
[VX] Gérer la faim et la soif Collec10
[VX] Gérer la faim et la soif Collec11
[VX] Gérer la faim et la soif Collec12
[VX] Gérer la faim et la soif Collec13
[VX] Gérer la faim et la soif Connar10


[VX] Gérer la faim et la soif Empty
MessageSujet: [VX] Gérer la faim et la soif   [VX] Gérer la faim et la soif EmptyVen 5 Sep 2008 - 18:48

Auteur: Berka
Au dessus de main, a nommer comme vous le sentez.

Utilisation:
Pour augmenter la faim ou la soif on crée un objet dans la base de donné nommé par exemple pomme, eau, alcool...il faut le faire de la même façon qu'un autre item curatif, sauf que cet item au lieu d'augmenter les points de vie, il augmente soit la faim ou la soif. Dans l'item il faut appeler un événement commun comme ceci: $game_faim.recuperer(24) (bien sûr on l'écrit dans l'onglet des événements commun et on l'appel sur l'item désiré.
On peut mettre un nombre négatif pour diminuer la soif ou la faim aussi. On peut également modifier le niveau de soif et de faim si on est dans un désert, par exemple on aura soif plus vite.
Voilà pour l'explication de se script des plus pratique si on veux des héros plus réalistes.
J'espère que vous l'avez compris.


#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
# Game_Faim
# par berka
#
# http:\\www.rpgmakerxp.frbb.net
#
# Editer par MirainoHikari pour la soif
# http://rpg-maker-vx.bbactif.com
#--------------------------------------------------------------
# compatible RGSS2, RMvx
# gestion de la faim, selon l'allure du heros, et du temps
#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

COUL_FAIM_1 = Color.new(255, 0, 0, 200) # couleur barre a gauche
COUL_FAIM_2 = Color.new(0, 255, 0, 255) # couleur barre a droite
COUL_SOIF_1 = Color.new(0, 0, 255, 200) # couleur barre a gauche
COUL_SOIF_2 = Color.new(0, 125, 125, 255) # couleur barre a droite
POS_X_BARRE = 32 # position horizontale de la barre
POS_Y_BARRE = 32 # position verticale de la barre
LONG_BARRE = 200 # longueur de la barre
HAUT_BARRE = 5 # hauteur de la barre
POLICE = 14 # taille de la police
TEXT = true # affiche le pourcentage de famine ^^
FAIM = 100 # "quantité de faim" disponible (dur a expliquer)
SOIF = 100 # "quantité de soif" disponible Wink
RAPIDITE_FAIM = 0.05 # rapidité d'augmentation de la faim
RAPIDITE_SOIF = 0.10 # rapidité d'augmentation de la soif
# message quand notre cher heros se tord de douleur, affamé...
CREVE_FAIM = "Je suis mort de faim..."
CREVE_SOIF = "Je suis mort déshydraté"
# en cas de mal-bouffe... \x00 pour un saut de ligne, \x03 pour une pause
PLUS_FAIM = "blurps...\x00je crois que j'ai trop mangé..."
MESSAGES = true # activer ou non les messages si dessus
ID_EVENT_COM_CREVE = 2 # id de l'event commun declenché en cas de mort de faim
ID_MASQUER = 4 # id de l'interrupteur a activer pour masquer les barre

# utilisation
# -> pour fixer la jauge selon un pourcentage: ex 50% : $game_faim.fixer(50)
# -> pour recuperer un certain pourcentage: ex +24% : $game_faim.recuperer(24)
# -> pour modifier en jeu, la rapidité de faim (apres lvl up): baisser de 0.01: $game_faim.rapidte -= 0.01
# -> creez un event commun en appel, qui ssera appelé lorsque la jauge sera completement vide
# -> creez un objet pomme, qui declenchera un event commun avec $game_faim.recuperer(24) dedans
# pour toutes questions, suggestions n'hésitez pas a me contacter...

class Game_Faim
attr_accessor :faim, :rapidite_faim
def initialize
@faim, @rapidite = FAIM, RAPIDITE_FAIM
end
def update
if @faim > 0 and @faim <= FAIM
if $game_player.moving? == true
if $game_player.dash? == true
@faim -= @rapidite.to_f #si course
elsif $game_player.in_vehicle? == true
@faim -= (@rapidite/6).to_f #si dans vehicule
end
@faim -= (@rapidite/4).to_f #si mouvement simple
else
@faim -= (@rapidite/10).to_f # si immobile
end
creve if @faim <= 0
plus_faim if @faim > FAIM
end
end
def plus_faim
@faim = FAIM
if MESSAGES == true
$game_message.new_page; $game_message.texts.push(PLUS_FAIM)
end
end
def creve
if MESSAGES == true
$game_message.new_page; $game_message.texts.push(CREVE_FAIM)
end
$game_temp.common_event_id = ID_EVENT_COM_CREVE
end
def fixer(pourcent)
@faim = (FAIM* pourcent.to_f)/100
end
def recuperer(pourcent)
if @faim + (FAIM* pourcent.to_f)/100 > FAIM
@faim = FAIM
else
@faim += (FAIM* pourcent.to_f)/100
end
end
end

class Game_Soif
attr_accessor :soif, :rapidite

def initialize
@soif, @rapidite = SOIF, RAPIDITE_SOIF
end

def update
if @soif > 0 and @soif <= SOIF
if $game_player.moving? == true
if $game_player.dash? == true
@soif -= @rapidite.to_f #si course
elsif $game_player.in_vehicle? == true
@soif -= (@rapidite/6).to_f #si dans vehicule
end
@soif -= (@rapidite/4).to_f #si mouvement simple
else
@soif -= (@rapidite/10).to_f # si immobile
end
creve if @soif <= 0
plus_soif if @soif > SOIF
end
end

def plus_soif
@soif = SOIF
if MESSAGES == true
$game_message.new_page; $game_message.texts.push(PLUS_SOIF)
end
end

def creve
if MESSAGES == true
$game_message.new_page; $game_message.texts.push(CREVE_SOIF)
end
$game_temp.common_event_id = ID_EVENT_COM_CREVE
end

def fixer(pourcent)
@soif = (SOIF* pourcent.to_f)/100
end

def recuperer(pourcent)
if @soif + (SOIF* pourcent.to_f)/100 > SOIF
@soif = SOIF
else
@soif += (SOIF* pourcent.to_f)/100
end
end
end

class Scene_Title
alias berka1 create_game_objects
def create_game_objects
berka1
$game_faim = Game_Faim.new
$game_soif = Game_Soif.new
end
end

class Scene_Map
alias berka1 update
alias berka2 start
alias berka3 terminate
def start
berka2
@faim_soif = Window_Faim.new(-32,-32,608,480)
end

def terminate
@faim_soif.dispose
berka3
end

def update
$game_faim.update
$game_soif.update
@faim_soif.visible = true
@faim_soif.visible = false if $game_switches[ID_MASQUER] == true
@faim_soif.update
berka1
end
end

class Window_Faim < Window_Base

def initialize(x, y, w, h)
super(x, y, w, h)
self.opacity = 0
refresh
end

def refresh
self.contents.clear
b1 = LONG_BARRE * ($game_faim.faim/FAIM)
p1 = b1.to_f/LONG_BARRE*100
b2 = LONG_BARRE * ($game_soif.soif/SOIF)
p2 = b2.to_f/LONG_BARRE*100
self.contents.font.size = POLICE
texte1 = "faim: #{p1.to_i.to_s}%"
texte2 = "soif: #{p2.to_i.to_s}%"
cx1 = contents.text_size(texte1).width
cx2 = contents.text_size(texte2).width

#dessiner barre de faim
self.contents.fill_rect(POS_X_BARRE-1, POS_Y_BARRE-1, LONG_BARRE+2, HAUT_BARRE+2, Color.new(0, 0, 0, 75))
self.contents.gradient_fill_rect(POS_X_BARRE, POS_Y_BARRE, b1, HAUT_BARRE, COUL_FAIM_1, COUL_FAIM_2)
self.contents.draw_text(POS_X_BARRE+(LONG_BARRE - cx1)/2, POS_Y_BARRE-5, cx1, WLH, texte1) if TEXT == true
#dessiner barre de soif
self.contents.fill_rect(POS_X_BARRE-1, POS_Y_BARRE-1+32, LONG_BARRE+2, HAUT_BARRE+2, Color.new(0, 0, 0, 75))
self.contents.gradient_fill_rect(POS_X_BARRE, POS_Y_BARRE+32, b2, HAUT_BARRE, COUL_SOIF_1, COUL_SOIF_2)
self.contents.draw_text(POS_X_BARRE+(LONG_BARRE - cx2)/2, POS_Y_BARRE-5+32, cx2, WLH, texte2) if TEXT == true

end

def update
refresh
end
end

class Scene_File < Scene_Base
alias berka1 write_save_data
alias berka2 read_save_data
def write_save_data(file)
berka1(file)
Marshal.dump($game_faim, file)
Marshal.dump($game_soif, file)
end
def read_save_data(file)
berka2(file)
$game_faim = Marshal.load(file)
$game_soif = Marshal.load(file)
end
end
Revenir en haut Aller en bas
https://www.ledijonshow.fr https://twitter.com/EleKoptes
axel4
Ancien staffeux
Ancien staffeux
axel4

Masculin
Messages postés : 684
Date d'inscription : 31/08/2008
Jauge LPC :
[VX] Gérer la faim et la soif 891527140032 / 10032 / 100[VX] Gérer la faim et la soif 8915271400


[VX] Gérer la faim et la soif Empty
MessageSujet: Re: [VX] Gérer la faim et la soif   [VX] Gérer la faim et la soif EmptySam 6 Sep 2008 - 13:13

Sa va m'aider dans un autre projet merci.
Revenir en haut Aller en bas
http://rpgmakerboss.idoo.com
 
[VX] Gérer la faim et la soif
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Système de faim/soif/sommeil avec jauges
» Gérer plusieurs inventaires
» Tutoriel -» Gérer les membres de l'équipe
» [Résolu]Bien gérer le chronomètre
» XP Gérer une équipe avec plus de quatre héros

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
Le Palais Créatif :: ~ PARTAGE ~ :: Scripts et plugins :: RPG Maker VX :: Système-
Sauter vers: