Fatiguez votre héro
Dim 2 Nov 2008 - 22:33
Vous vous rappelez mon script de faim ?
Je l'ai juste adapté pour gerer la fatigue du héro:
Des barres: HP,MP,Fatigue sont affichées
Vous pouvez sauter, en appuyant sur D, par dessus les murs
il y a un petit systeme de detection de longueur de saut.
Les autres indications sont dans le script...
a coller au dessus de main
Je l'ai juste adapté pour gerer la fatigue du héro:
Des barres: HP,MP,Fatigue sont affichées
Vous pouvez sauter, en appuyant sur D, par dessus les murs
il y a un petit systeme de detection de longueur de saut.
Les autres indications sont dans le script...
a coller au dessus de main
- Code:
#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
# Game_Saut
# par berka Rgss2
#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
# touche D pour sauter
# parametres au debut du script
# douiing, douiiing
#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
#===============================================================
#
# rpgmakervx.1fr1.net
#
#===============================================================
module Berka
module Vie
COUL_VIE_1 = Color.new(255, 0, 0, 200) # couleur barre a gauche
COUL_VIE_2 = Color.new(125, 125, 0, 255) # couleur barre a droite
COUL_PM_1 = Color.new(0, 255, 0, 200)
COUL_PM_2 = Color.new(125, 125, 0, 255)
COUL_FORCE_1 = Color.new(0, 0, 255, 200)
COUL_FORCE_2 = Color.new(0, 125, 125, 255)
X = 16 # position horizontale de la barre
Y = 0 # position verticale de la barre
LONG_BARRE = 100 # longueur de la barre
HAUT_BARRE = 5 # hauteur de la barre
POLICE = 14 # taille de la police
TEXT = true
FORCE = 100 # "quantité de force" disponible
RAPIDITE_FORCE = 0.10 # rapidité d'augmentation de la force
ID_MASQUER = 4 # id de l'interrupteur a activer pour masquer les barre
end
end
include Berka::Vie
class Game_Character
def jump(x_plus, y_plus)
if $game_force.saut?
if x_plus.abs > y_plus.abs
x_plus < 0 ? turn_left : turn_right
elsif x_plus.abs > y_plus.abs
y_plus < 0 ? turn_up : turn_down
end
@x += x_plus
@y += y_plus
distance = Math.sqrt(x_plus * x_plus + y_plus * y_plus).round
@jump_peak = 10 + distance - @move_speed
@jump_count = @jump_peak * 2
@stop_count = 0
straighten
end
end
end
class Game_Player < Game_Character
def update
last_real_x=@real_x
last_real_y=@real_y
last_moving=moving?
move_by_input
if Input.trigger?(Input::Z)
case @direction
when 2
if $game_map.passable?(@x,@y+2);jump(0,2)
elsif $game_map.passable?(@x,@y+1);jump(0,1)
else jump(0,0)
end
when 4
if $game_map.passable?(@x-2,@y);jump(-2,0)
elsif $game_map.passable?(@x-1,@y);jump(-1,0)
else jump(0,0)
end
when 6
if $game_map.passable?(@x+2,@y);jump(2,0)
elsif $game_map.passable?(@x+1,@y);jump(1,0)
else jump(0,0)
end
when 8
if $game_map.passable?(@x,@y-2);jump(0,-2)
elsif $game_map.passable?(@x,@y-1);jump(0,-1)
else jump(0,0)
end
end
end
super
update_scroll(last_real_x,last_real_y)
update_vehicle
update_nonmoving(last_moving)
end
def update_move
distance=2**@move_speed
distance*=2 if dash? && $game_force.force>0
@real_x=[@real_x-distance,@x*256].max if @x*256<@real_x
@real_x=[@real_x+distance,@x*256].min if @x*256>@real_x
@real_y=[@real_y- distance,@y*256].max if @y*256<@real_y
@real_y=[@real_y+distance,@y*256].min if @y*256>@real_y
update_bush_depth unless moving?
if @walk_anime
@anime_count+=1.5
elsif @step_anime
@anime_count+=1
end
end
end
class Game_Fatigue
def initialize
@force_max=FORCE
@force=@force_max
@rapidite=RAPIDITE_FORCE
end
def force
return @force
end
def rapidite
return @rapidite
end
def force_max
return @force_max*$game_party.members[0].level
end
def saut?
@force>FORCE/5 ? (return true) : (return false)
end
def update
@force +=rapidite.to_f if @force<100 && !$game_player.jumping? && !$game_player.dash?
if @force>=0 && @force<=force_max.to_f
if $game_player.dash?;@force-=RAPIDITE_FORCE #si course
elsif $game_player.in_vehicle?;@force-=(RAPIDITE_FORCE/6).to_f #si dans vehicule
elsif $game_player.jumping?;@force-=(RAPIDITE_FORCE*10).to_f # si saute
end
end
end
def fixer(pourcent)
@force=(FORCE*pourcent.to_f)/100
end
def recuperer(pourcent)
@force+(FORCE*pourcent.to_f)/100>FORCE ? @force=FORCE : @force+=(FORCE* pourcent.to_f)/100
end
end
class Scene_Title < Scene_Base
alias berka1 create_game_objects
def create_game_objects
berka1
$game_force=Game_Fatigue.new
end
end
class Scene_Map < Scene_Base
alias berka1 update
alias berka2 start
alias berka3 terminate
def start
berka2
@force=Window_Fatigue.new($game_party.members[0],-16,-16,608,480)
end
def terminate
@force.dispose
berka3
end
def update
$game_force.update
@force.visible=true
@force.visible=false if $game_switches[ID_MASQUER]
@force.refresh
berka1
end
end
class Window_Fatigue < Window_Base
def initialize(actor,x,y,w,h)
@actor=actor
super(x,y,w,h)
self.contents.font.size=POLICE
self.opacity=0
refresh
end
def refresh
self.contents.clear
bhp=LONG_BARRE*@actor.hp/@actor.maxhp
hp=bhp.to_f/LONG_BARRE*100
bpm=LONG_BARRE*@actor.mp/@actor.maxmp
pm=bpm.to_f/LONG_BARRE*100
bfa=LONG_BARRE*$game_force.force/$game_force.force_max
fa=bfa.to_f/LONG_BARRE*100
thp="Vie: #{bhp.to_i.to_s}%"
tpm="Magie: #{bpm.to_i.to_s}%"
tfa="Force: #{bfa.to_i.to_s}%"
cthp=contents.text_size(thp).width
ctpm=contents.text_size(tpm).width
ctfa=contents.text_size(tfa).width
self.contents.fill_rect(X-1,Y-1+WLH,LONG_BARRE+2,HAUT_BARRE+2,Color.new(0,0,0,75))
self.contents.gradient_fill_rect(X,Y+WLH,bhp,HAUT_BARRE,COUL_VIE_1,COUL_VIE_2)
self.contents.fill_rect(X-1,Y-1+WLH*2,LONG_BARRE+2,HAUT_BARRE+2,Color.new(0,0,0,75))
self.contents.gradient_fill_rect(X,Y+WLH*2,bpm,HAUT_BARRE,COUL_PM_1,COUL_PM_2)
self.contents.fill_rect(X-1,Y-1+WLH*3,LONG_BARRE+2,HAUT_BARRE+2,Color.new(0,0,0,75))
self.contents.gradient_fill_rect(X,Y+WLH*3,bfa,HAUT_BARRE,COUL_FORCE_1,COUL_FORCE_2)
if TEXT
@actor.hp<@actor.maxhp/4 ? self.contents.font.color=crisis_color : self.contents.font.color=normal_color
self.contents.draw_text(X+(LONG_BARRE-cthp)/2,Y-5+WLH,cthp,WLH, thp)
@actor.mp<@actor.maxmp/4 ? self.contents.font.color=crisis_color : self.contents.font.color=normal_color
self.contents.draw_text(X+(LONG_BARRE-ctpm)/2,Y-5+WLH*2,ctpm,WLH,tpm)
$game_force.force<$game_force.force_max/4 ? self.contents.font.color=crisis_color : self.contents.font.color=normal_color
self.contents.draw_text(X+(LONG_BARRE-ctfa)/2,Y-5+WLH*3,ctfa,WLH,tfa)
end
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_force,file)
end
def read_save_data(file)
berka2(file)
$game_force=Marshal.load(file)
end
end
- Thierry T.Membre
- Nombre de messages : 664
Age : 29
Localisation : Marseille (13).
Distinction : questionneur à répétition
Date d'inscription : 01/03/2008
Re: Fatiguez votre héro
Lun 3 Nov 2008 - 13:23
Sauter par dessus les murs o_Ô ...
C'est pas le truc à utiliser dans un labyrinthe xD
On verra bien ce qu'on pourra en faire ;D
C'est pas le truc à utiliser dans un labyrinthe xD
On verra bien ce qu'on pourra en faire ;D
Re: Fatiguez votre héro
Lun 3 Nov 2008 - 14:40
Justement on ne peut pas sauter sur les murs comme le script normal de saut mais on peut sauter des obstacles !
Super ce système de fatigue mais le problème c'est que la force n'augmente pas avec les niveaux
Et donc le pourcentage de force ne revient plus à 100% après plusieurs niveaux...
Serait il possible de régler ce problème Ô grand Berka le magnifique ?
Super ce système de fatigue mais le problème c'est que la force n'augmente pas avec les niveaux
Et donc le pourcentage de force ne revient plus à 100% après plusieurs niveaux...
Serait il possible de régler ce problème Ô grand Berka le magnifique ?
Re: Fatiguez votre héro
Lun 3 Nov 2008 - 18:32
il suffit, de faire, apres chaque montee de niveau une insertion de script:
pour augmenter d'un pourcentage précis:
s'il vous plaît, arretez avec ces qualificatifs... je make juste a ma facon ^^
- Code:
$game_force=fixer(100) #valeur en pourcent
pour augmenter d'un pourcentage précis:
- Code:
$game_recuperer=fixer(100) #valeur en pourcent
s'il vous plaît, arretez avec ces qualificatifs... je make juste a ma facon ^^
Re: Fatiguez votre héro
Lun 3 Nov 2008 - 21:11
Et ou dois-je coller ce morceau de script ?
Car j'ai essayé de rajouté dans le Game Actor au niveau d'un level up:
for $game_force=fixer(100) #valeur en pour-cent
et ça ne fonctionne pas...
J'ai aussi essayé en appel de script mais la non plus aucun bon résultat...
Cette force est une nouvelle variable ou c'est la vraie force du héros ?
Sinon si c'est une nouvelle peut-on l'empêcher d'augmenter (si ce n'est pas ce que tu nous as donné la évidement)
Car j'ai essayé de rajouté dans le Game Actor au niveau d'un level up:
for $game_force=fixer(100) #valeur en pour-cent
et ça ne fonctionne pas...
J'ai aussi essayé en appel de script mais la non plus aucun bon résultat...
Cette force est une nouvelle variable ou c'est la vraie force du héros ?
Sinon si c'est une nouvelle peut-on l'empêcher d'augmenter (si ce n'est pas ce que tu nous as donné la évidement)
Re: Fatiguez votre héro
Lun 3 Nov 2008 - 21:15
houla !
desolé c'est moi qui me suis trompé:
il faut mettre ou tu veux,:
desolé c'est moi qui me suis trompé:
il faut mettre ou tu veux,:
- Code:
$game_force.fixer(100)
- Code:
$game_force.recuperer(100)
Re: Fatiguez votre héro
Lun 3 Nov 2008 - 21:39
J'ai testé ce que tu m'a dis messire Berka (d'ailleurs j'ai vu des berka dans ton script)
Ok ça bloque à 100%
Mais la n'est pas mon problème...
On est d'accord, le maximum est 100 %
Mais lorsque je monte au niveau 2,
Le maximum est 33 %
Au niveau 3 il est 25 %
Mais c'est comme si j'avais encore 100 points de force.
C'est juste qu'ils descendent plus lentement à 0 et remontent plus lentement à leur maximum (33, 25,...)
C'est gênant pour le joueur qui au fur et à mesure des niveaux ne peut plus savoir la force qu'il lui reste avec exactitude !
(Et je pense qu'elle risque d'atteindre 1%)
J'utilise le script ABS, le script saut, un script tout simple pour afficher des variables (ici l'heure), ta boussole, un antilag et un script pour casser les limites que j'ai trouvé dans la grande librairie de scripts KGC
Ok ça bloque à 100%
Mais la n'est pas mon problème...
On est d'accord, le maximum est 100 %
Mais lorsque je monte au niveau 2,
Le maximum est 33 %
Au niveau 3 il est 25 %
- Spoiler:
Mais c'est comme si j'avais encore 100 points de force.
C'est juste qu'ils descendent plus lentement à 0 et remontent plus lentement à leur maximum (33, 25,...)
C'est gênant pour le joueur qui au fur et à mesure des niveaux ne peut plus savoir la force qu'il lui reste avec exactitude !
(Et je pense qu'elle risque d'atteindre 1%)
J'utilise le script ABS, le script saut, un script tout simple pour afficher des variables (ici l'heure), ta boussole, un antilag et un script pour casser les limites que j'ai trouvé dans la grande librairie de scripts KGC
Re: Fatiguez votre héro
Lun 3 Nov 2008 - 21:55
si tu veux désactivé le role du level sur la force:
remplace:
remplace:
- Code:
def force_max
return @force_max*$game_party.members[0].level
end
- Code:
def force_max
return @force_max
end
Re: Fatiguez votre héro
Lun 3 Nov 2008 - 22:59
Merci !
J'avais essayé en remplaçant par
Et tout fonctionne parfaitement mis à part un bug que je tairais pour ne pas t'ennuyer d'avantage
J'avais essayé en remplaçant par
- Code:
def force_max
return @force_max*1
end
Et tout fonctionne parfaitement mis à part un bug que je tairais pour ne pas t'ennuyer d'avantage
- Jojo la vache AKA la failMembre
- Nombre de messages : 146
Age : 28
Localisation : Sur terre, A moins que...
Distinction : Nounours rose V3, le nouveau est là!
Date d'inscription : 31/07/2009
Re: Fatiguez votre héro
Jeu 29 Oct 2009 - 15:28
Et quand la jauge de fatigue est vide, il se passe quoi?
Et comment la regénérer,hein ?!? :gné:
Et comment la regénérer,hein ?!? :gné:
- ZangtherOldMembre
- Nombre de messages : 1711
Date d'inscription : 07/08/2009
Re: Fatiguez votre héro
Jeu 29 Oct 2009 - 19:13
Si j'ai bien compris il suffit d'appeler cette commande de script : $game_force.recuperer(100)
Sachant que la valeur est en pourcent. Après c'est a toi de l'adapter dans des objets etc...
Sachant que la valeur est en pourcent. Après c'est a toi de l'adapter dans des objets etc...
- Jojo la vache AKA la failMembre
- Nombre de messages : 146
Age : 28
Localisation : Sur terre, A moins que...
Distinction : Nounours rose V3, le nouveau est là!
Date d'inscription : 31/07/2009
Re: Fatiguez votre héro
Sam 31 Oct 2009 - 16:03
Et si la jauge de fatigue est vide, on a quoi ?
Les HP partent en fumée ? On est plus lent ?
Les HP partent en fumée ? On est plus lent ?
- Tiff'Membre
- Nombre de messages : 627
Age : 28
Localisation : 93
Date d'inscription : 12/07/2009
Re: Fatiguez votre héro
Sam 31 Oct 2009 - 16:30
Le mieux est d'essayer par toi même.
- KarmademanoirMembre
- Nombre de messages : 65
Age : 30
Localisation : Dans le sud de la france
Distinction : aucune
Date d'inscription : 29/10/2009
Re: Fatiguez votre héro
Sam 31 Oct 2009 - 16:58
Salut , j'ai insérer ce script au dessus de main , je l'ai appelé "saut"
Mais quand j'ouvre mon jeu il m'indique l'erreur suivante:
"Script 'saut' line 209:NameError occured
undefined method ' write_save_data' for class 'scene file' "
Voila et comme je suis totalement nul dans les script j'aurais aimé savoir ce que ça voulais dire , et comment le corrigé.
Merci d'avance et désolé du dérangement ^^'
Mais quand j'ouvre mon jeu il m'indique l'erreur suivante:
"Script 'saut' line 209:NameError occured
undefined method ' write_save_data' for class 'scene file' "
Voila et comme je suis totalement nul dans les script j'aurais aimé savoir ce que ça voulais dire , et comment le corrigé.
Merci d'avance et désolé du dérangement ^^'
- bertinnicolasMembre
- Nombre de messages : 4
Age : 57
Localisation : Bordeaux
Distinction : aucune
Date d'inscription : 14/11/2009
Re: Fatiguez votre héro
Mar 17 Nov 2009 - 18:43
Vraiment exelent, Merci pour ce script!
Cordialement.
Cordialement.
- Shadow of LifeMembre
- Nombre de messages : 870
Age : 28
Localisation : Joyeux. Comment ça c'est pas la bonne case ?
Distinction : Artiste de la flagornerie.
Porte parole du Ô grand Voilà voilà.
Président du club des masochistes du forum
Fake Gentleman
Soumis ^^
Date d'inscription : 13/09/2009
Re: Fatiguez votre héro
Lun 4 Jan 2010 - 19:07
Berka , vous êtes de loin le plus grand scripteur de tout les temps ( ça se dit ça ? )
Je trouve que vous contribué énormément au besoin en scripts de la communauté : je vous admire énormément et vous montrez une fois de plus votre talent avec ce script qui rend les jeux plus réalistes.
Merci, merci beaucoup pour cette nouvelle réalisation.
Je le répéterai encore : :berka:
Cordialement et en m'inclinant bien bas ( prenez-le comme un compliment énorme de ma part )
Je trouve que vous contribué énormément au besoin en scripts de la communauté : je vous admire énormément et vous montrez une fois de plus votre talent avec ce script qui rend les jeux plus réalistes.
Merci, merci beaucoup pour cette nouvelle réalisation.
Je le répéterai encore : :berka:
Cordialement et en m'inclinant bien bas ( prenez-le comme un compliment énorme de ma part )
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum