Partagez
Aller en bas
Berka
Berka
Administrateur

Nombre de messages : 1832
Age : 29
Localisation : Paris
Distinction : rubyste déglingué
9ème dan en scripting-no-jutsu

Nouveau Justine Beber ;P
Date d'inscription : 16/12/2007
http://rpgruby.olympe-network.com

Fatiguez votre héro Empty Fatiguez votre héro

le 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.
Fatiguez votre héro Sans_t13
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
#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

#===============================================================
#                           
#                www.rpgmakervx-fr.com                                           
#       
#===============================================================

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
AnthO'
AnthO'
Membre

Nombre de messages : 2202
Age : 26
Localisation : Orléans
Distinction : Panda d'élite

[Wax Rolling Eyes]
Date d'inscription : 05/01/2008
http://anthonybourgouin.fr

Fatiguez votre héro Empty Re: Fatiguez votre héro

le Lun 3 Nov 2008 - 10:00
Merci Berka pour touts ces systèmes ingénieux !
Thierry T.
Thierry T.
Membre

Nombre de messages : 664
Age : 24
Localisation : Marseille (13).
Distinction : questionneur à répétition
Date d'inscription : 01/03/2008

Fatiguez votre héro Empty Re: Fatiguez votre héro

le 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
wilkyo
wilkyo
Membre

Nombre de messages : 316
Age : 28
Localisation : Loiret
Distinction : Sauveur de miches // Chou (l)

[Coco' Smile]

Adepte de Pedobear // Lécheur de lolis

[Mist' Wink]

Personnage Colorée // Instructeur de boulet

[Wax Rolling Eyes]
Date d'inscription : 01/09/2008
http://www.wilkyo.com

Fatiguez votre héro Empty Re: Fatiguez votre héro

le 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 ?
Berka
Berka
Administrateur

Nombre de messages : 1832
Age : 29
Localisation : Paris
Distinction : rubyste déglingué
9ème dan en scripting-no-jutsu

Nouveau Justine Beber ;P
Date d'inscription : 16/12/2007
http://rpgruby.olympe-network.com

Fatiguez votre héro Empty Re: Fatiguez votre héro

le Lun 3 Nov 2008 - 18:32
il suffit, de faire, apres chaque montee de niveau une insertion de script:
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 ^^ Wink
wilkyo
wilkyo
Membre

Nombre de messages : 316
Age : 28
Localisation : Loiret
Distinction : Sauveur de miches // Chou (l)

[Coco' Smile]

Adepte de Pedobear // Lécheur de lolis

[Mist' Wink]

Personnage Colorée // Instructeur de boulet

[Wax Rolling Eyes]
Date d'inscription : 01/09/2008
http://www.wilkyo.com

Fatiguez votre héro Empty Re: Fatiguez votre héro

le 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)
Berka
Berka
Administrateur

Nombre de messages : 1832
Age : 29
Localisation : Paris
Distinction : rubyste déglingué
9ème dan en scripting-no-jutsu

Nouveau Justine Beber ;P
Date d'inscription : 16/12/2007
http://rpgruby.olympe-network.com

Fatiguez votre héro Empty Re: Fatiguez votre héro

le Lun 3 Nov 2008 - 21:15
houla !
desolé c'est moi qui me suis trompé:

il faut mettre ou tu veux,:
Code:
$game_force.fixer(100)
ou
Code:
$game_force.recuperer(100)
pour l'empecher de baisser, tu mets la premiere commande dans un event en processus // ou dans la def update de la Scene_Map
wilkyo
wilkyo
Membre

Nombre de messages : 316
Age : 28
Localisation : Loiret
Distinction : Sauveur de miches // Chou (l)

[Coco' Smile]

Adepte de Pedobear // Lécheur de lolis

[Mist' Wink]

Personnage Colorée // Instructeur de boulet

[Wax Rolling Eyes]
Date d'inscription : 01/09/2008
http://www.wilkyo.com

Fatiguez votre héro Empty Re: Fatiguez votre héro

le 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 %
Spoiler:
Fatiguez votre héro Testle7


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
Berka
Berka
Administrateur

Nombre de messages : 1832
Age : 29
Localisation : Paris
Distinction : rubyste déglingué
9ème dan en scripting-no-jutsu

Nouveau Justine Beber ;P
Date d'inscription : 16/12/2007
http://rpgruby.olympe-network.com

Fatiguez votre héro Empty Re: Fatiguez votre héro

le Lun 3 Nov 2008 - 21:55
si tu veux désactivé le role du level sur la force:
remplace:
Code:
  def force_max
    return @force_max*$game_party.members[0].level
  end
par
Code:
def force_max
    return @force_max
  end
wilkyo
wilkyo
Membre

Nombre de messages : 316
Age : 28
Localisation : Loiret
Distinction : Sauveur de miches // Chou (l)

[Coco' Smile]

Adepte de Pedobear // Lécheur de lolis

[Mist' Wink]

Personnage Colorée // Instructeur de boulet

[Wax Rolling Eyes]
Date d'inscription : 01/09/2008
http://www.wilkyo.com

Fatiguez votre héro Empty Re: Fatiguez votre héro

le Lun 3 Nov 2008 - 22:59
Merci !
J'avais essayé en remplaçant par

Code:
def force_max
    return @force_max*1
  end
(ce qui revient au même ^^)

Et tout fonctionne parfaitement mis à part un bug que je tairais pour ne pas t'ennuyer d'avantage Wink
Jojo la vache AKA la fail
Jojo la vache AKA la fail
Membre

Nombre de messages : 146
Age : 23
Localisation : Sur terre, A moins que...
Distinction : Nounours rose V3, le nouveau est là!
Date d'inscription : 31/07/2009

Fatiguez votre héro Empty Re: Fatiguez votre héro

le 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é:
ZangtherOld
ZangtherOld
Membre

Nombre de messages : 1711
Date d'inscription : 07/08/2009

Fatiguez votre héro Empty Re: Fatiguez votre héro

le 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...
Jojo la vache AKA la fail
Jojo la vache AKA la fail
Membre

Nombre de messages : 146
Age : 23
Localisation : Sur terre, A moins que...
Distinction : Nounours rose V3, le nouveau est là!
Date d'inscription : 31/07/2009

Fatiguez votre héro Empty Re: Fatiguez votre héro

le 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 ? Fatiguez votre héro 264173
Tiff'
Tiff'
Membre

Nombre de messages : 627
Age : 22
Localisation : 93
Date d'inscription : 12/07/2009

Fatiguez votre héro Empty Re: Fatiguez votre héro

le Sam 31 Oct 2009 - 16:30
Le mieux est d'essayer par toi même.
Karmademanoir
Karmademanoir
Membre

Nombre de messages : 65
Age : 25
Localisation : Dans le sud de la france
Distinction : aucune
Date d'inscription : 29/10/2009

Fatiguez votre héro Empty Re: Fatiguez votre héro

le 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 ^^'
bertinnicolas
bertinnicolas
Membre

Nombre de messages : 4
Age : 51
Localisation : Bordeaux
Distinction : aucune
Date d'inscription : 14/11/2009

Fatiguez votre héro Empty Re: Fatiguez votre héro

le Mar 17 Nov 2009 - 18:43
Vraiment exelent, Merci pour ce script!


Cordialement.
Shadow of Life
Shadow of Life
Membre

Nombre de messages : 870
Age : 23
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

Fatiguez votre héro Empty Re: Fatiguez votre héro

le 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 )
Revenir en haut
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum