Sujet n°4850
Posté par Drakhaine le 16 Aoû - 22:31 (2009)
Titre : Saut réaliste (manque effet d'ombre, la flemme)
Dans le script Game_Player (le deuxième, celui fait par Krosk), remplacer  
Code:






 class Game_Player < Game_Character
  def update
    # ローカル変数に移動中かどうかを記憶
    last_moving = moving?
    # 移動中、イベント実行中、移動ルート強制中、
    # メッセージウィンドウ表示中のいずれでもない場合
    unless moving? or $game_system.map_interpreter.running? or
           @move_route_forcing or $game_temp.message_window_showing
      # 方向ボタンが押されていれば、その方向へプレイヤーを移動
      case Input.dir4
      when 2
        move_down
      when 4
        move_left
      when 6
        move_right
      when 8
        move_up
      end
    end
    # ローカル変数に座標を記憶
    last_real_x = @real_x
    last_real_y = @real_y
    super







par

Code:







 class Game_Player < Game_Character
  def update
    # ローカル変数に移動中かどうかを記憶
    last_moving = moving?
    # 移動中、イベント実行中、移動ルート強制中、
    # メッセージウィンドウ表示中のいずれでもない場合
    unless moving? or $game_system.map_interpreter.running? or
           @move_route_forcing or $game_temp.message_window_showing
      # 方向ボタンが押されていれば、その方向へプレイヤーを移動
      # Coordonnées du tile faisant face
      xf = @x + (@direction == 6 ? 1 : @direction == 4 ? -1 : 0) 
      yf = @y + (@direction == 2 ? 1 : @direction == 8 ? -1 : 0)
      case Input.dir4
      when 2
        if $game_map.terrain_tag(xf, yf) != 6
          move_down
        elsif $game_map.terrain_tag(@x, @y+1) == 6 and $game_map.passable?(@x, @y+2,2)
          sauter(2)
        else
          move_down
        end
      when 4
        if @direction != 4
          xf = @x - 1
          yf = @y
        end
        if $game_map.terrain_tag(xf, yf) != 6
          move_left
        elsif $game_map.terrain_tag(@x-1, @y) == 6 and $game_map.passable?(@x-1, @y, 6) and $game_map.passable?(@x-2, @y,4)
          sauter(4)
        else
          move_left
        end
      when 6
        if @direction != 6
          xf = @x + 1
          yf = @y
        end
        if $game_map.terrain_tag(xf, yf) != 6
          move_right
        elsif $game_map.terrain_tag(@x+1, @y) == 6 and $game_map.passable?(@x+1, @y, 4) and $game_map.passable?(@x+2, @y,6)
          sauter(6)
        else
          move_right
        end
      when 8
        move_up
      end
    end
    # ローカル変数に座標を記憶
    last_real_x = @real_x
    last_real_y = @real_y
    super







puis tout à la fin de ce script, juste avant le dernier "end", rajouter

Code:







def sauter(dir)
    move_route = RPG::MoveRoute.new
    move_route.repeat = false
    move_route.skippable = true
    move_command1 = RPG::MoveCommand.new 
    move_command2 = RPG::MoveCommand.new
    move_command3 = RPG::MoveCommand.new
    move_command4 = RPG::MoveCommand.new
    move_command5 = RPG::MoveCommand.new
    move_command6 = RPG::MoveCommand.new
    move_command7 = RPG::MoveCommand.new
    move_command1.code = 37 # Fantôme ON
    move_command2.code = 44 # Effet sonore
    move_command2.parameters = ["Pokemove.WAV"]
    move_command3.code = 27 # Activer switch
     move_command3.parameters = [100]
    move_command4.code = 14 # Jump
    case dir
    when 2
      move_command4.parameters = [0,2]
    when 4
      move_command4.parameters = [-2,0]
    when 6
      move_command4.parameters = [2,0]
    end
    move_command5.code = 28 # Désctiver switch
      move_command5.parameters = [100]
    move_command6.code = 38 # Fantôme OFF
    move_command7.code = 0 # End
    move_route.list = [move_command1] + [move_command2] + [move_command3] + [move_command4] + [move_command5] + [move_command6] + [move_command7]
    force_move_route(move_route)
  end 








Créez ensuite un Event commun en processus parallèle avec en condition l'Interrupteur n°100 sur ON
Dedans, faites juste une ligne affichant une animation sous le héros : cette animation doit durer une frame et afficher une ombre. Faites plusieurs tests pour qu'elle se place sous le héros.

Il ne vous reste plus qu'à régler dans vos tilesets les barres rocheuses avec un terrain_tag de 6
(excusez-moi, le screen est pris sous RMXP version "normale" et pas sous PSP)


Voilà, j'espère que ça vous servira :D
Et s'il y a un bug, c'est juste que j'ai oublié de fournir un bout du script puisqu'il fonctionne parfaitement chez moi, normalement tout est là néanmoins.

Posté par anonymate le 19 Aoû - 18:50 (2009)
Interessant.... J'essaye et j'édite !
EDIT: Le héros saute, mais sa n'affiche pas de l'ombre, qu'es qu'il faut ajouter?

Posté par Drakhaine le 19 Aoû - 19:43 (2009)
"C'est là-dedans qu'il faudra rajouter des MoveCommands pour ajouter l'ombre sous le héros Clin d'œil foireux Les codes doivent être trouvables pas trop difficilement
(soit la movecommand pour changer le charset du héros, soit les movecommands qui activent/désactivent un switch, lui même permettant à un évènement commun en processus parallèle d'afficher une animation sous le héros tant que ce switch est activé)"

J'avais la flemme de le faire c'est pour ça, mais en suivant les instructions et en cherchant un peu ça devrait pas ^etre trop long ni dur Clin d'œil foireux

Posté par Pαlвσlѕку le 19 Aoû - 19:53 (2009)
Quand le héros saute, il y a t-il un effet sonore ?

Pour l'ombre, l'animation serait la méthode la plus simple à priori.

Posté par Drakhaine le 19 Aoû - 20:11 (2009)
Pour l'effet sonore, pareil, suffit d'inclure une movecommand avec un code particulier (dans mes souvenirs, faut juste ouvrir la fenêtre de déplacement du héros dans les events et compter le nombre de boutons de haut en bas et de gauche à droite, mais ça fait longtemps que j'l'ai fait et y'a p'tètre des numéros qui servent à rien, pas sûr...)

move_commandX= RPG::MoveCommand.new
move_commandX.code = CODE

où X est un numéro d'id et CODE est le code de la commande désirée
ensuite, ne pas oublier de modifier cette ligne :
move_route.list = [move_command1] + [move_command2] + [move_command3] + [move_command4]  

(mettre les commandes dans l'ordre)

EDIT : petite aide :
jouer un effet sonore : code 44
activer un interrupteur : code 27
désactiver un interrupteur : code 28

Posté par anonymate le 19 Aoû - 20:47 (2009)
je comprends rien, es parce que:
Je suis très fatigué.
Je suis nul en script

Posté par Drakhaine le 19 Aoû - 20:50 (2009)
laisse quelqu'un qui comprend s'en occuper alors :p Moi j'ai vraiment la flemme d'y retoucher, même pour 30 lignes maxi...

Posté par Pαlвσlѕку le 19 Aoû - 21:27 (2009)
C'est bien beau tous ça, mais pour jouer un effet sonore, il faut que je détermine d'abord qu'elle est cet effet sonore (en d'autre terme, son nom). Comment je fais ?

Posté par Drakhaine le 19 Aoû - 22:04 (2009)
move_commandX.parameters = [NUM]
avec X pour le numéro de ta moveCommand et NUM pour le numéro du switch (le même que dans $game_switches)
exemple pour activer le switch n°120

 
Code:



move_command5= RPG::MoveCommand.new
move_command5.code = 27
move_command5.parameters = [120]
 





move_commandX.parameters = ["NAME"]
avec NAME pour le nom du son + son extension
exemple pour jouer le son Pokemove.WAV
 
Code:



 move_command6= RPG::MoveCommand.new
 move_command6.code = 44
 move_command6.parameters = ["Pokemove.WAV"] 




(effet sonore = dans le dossier Audio/SE)

EDIT : C'est bon, j'ai réédité le premier message, le son est ajouté, les activations/désactivations de switches aussi, y'a plus qu'à créer une animation durant 1 frame (ou alors une animation durant le temps d'un saut)

Posté par spirow le 30 Avr - 20:57 (2010)
salut!
Same dit que y a un probleme a la ligne :

<b style="color:#054C3C">sauter[/b](2)

quelqu'un peu m'aider svp ?

Posté par spirow le 1 Juil - 21:20 (2010)
Pour moi le héro ne saute pas du tout ... quelqu'un pourrais m'aider svp ?

Posté par Drakhaine le 3 Juil - 16:54 (2010)
T'as dû soit oublier une étape (mettre les tags de terrain à 6 ?), soit modifier le premier script (natif à RMXP) au lieu du deuxième (celui de Krosk).
Y'a aucune raison que ça ne fonctionne pas sinon Clin d'œil foireux

Posté par RevengeOfShadow le 26 Aoû - 06:30 (2010)
Moi j'ai le même problème alors que :
* Les tags terrains sont à 6
* Le script est bien mis sur le game_player (le 2e, par K.)

Par contre :
* Les collines sont toutes réglées sur X (infranchissable !)

J'essaie avec O (franchissable !) et je vous tiens au courant !

--- EDIT ---
Ca fonctionne pas même avec le O (franchissable !) !!!!

Posté par RevengeOfShadow le 4 Sep - 18:32 (2010)
UUUP ! (50 caractères :D Merci ...) J'ai rien à dire !

Posté par Ku'rei le 5 Sep - 16:30 (2010)
Perso j'ai un bug de la part de l'effet sonore : j'ai modifié dans la ligne
Code:
move_command2.code = 44 # Effet sonore 
    move_command2.parameters = ["Pokemove.WAV"] 
    move_command3.code = 27 # Activer switch

de façon a ce que ce soit mon fichier "jump.wav" qui soit joué.
mais ça me fait un bug :


EDIT : j'ai remarquer un autre bug, lorsque le mur est sur la droite ou la gauche, il ne se passe absolument.

merci de m'aider.

PS : ça marchait pas avec le fichier "Pokemove.WAV" bien sûr ^^

Posté par RevengeOfShadow le 6 Sep - 17:30 (2010)
Hmm tu es encore sur 0.7 ????
Sinon je pense que ton nom de fichier n'est pas exact, vérifie les majuscules et essaie .WAV en majuscules ou minuscules si les majuscules y sont déjà !

Et pour mon problème, une idée ?

Posté par RevengeOfShadow le 8 Sep - 13:05 (2010)
Re-UUUP !! Personne n'a la soluce ???? (50 Caractères)

Posté par Leaf Sky le 16 Sep - 16:53 (2010)
Euh le saut sans ombre c'est pour des jeux de fantômes non ? 42

Posté par RevengeOfShadow le 25 Sep - 09:16 (2010)
Arrête ton flood stp ! Sinon je UUUP encore une fois (pour changer ...). Merci d'avance mais j'ai plus d'espoir là :S.

Posté par Swani le 26 Oct - 22:50 (2010)
Le screen et mort !  :(

Posté par RevengeOfShadow le 24 Nov - 11:03 (2010)
Le script aussi je pense ...                              

Posté par Chompy le 21 Déc - 12:22 (2010)
Le script ne marche pas chez moi ... Aucun message d'erreur, le héros franchi tout simplement les tiles taggés 6
Une solution ?

Posté par Nuri Yuri le 21 Déc - 13:54 (2010)
Si tu bloquais le passage dans la direction par laquelle le héros ne doit pas passer ?

Posté par quenti77 le 26 Déc - 22:03 (2010)
Désolé de remonté le topic mais j'ai la même erreur que MadRob qui est le bug plus le saut que pour en bas mais pas pour la droite et la gauche