Night.png);">
Apprendre


Vous êtes
nouveau sur
Oniromancie?

Visite guidée
du site


Découvrir
RPG Maker

RM 95
RM 2000/2003
RM XP
RM VX/VX Ace
RM MV/MZ

Apprendre
RPG Maker

Tutoriels
Guides
Making-of

Dans le
Forum

Section Entraide

Sorties: Star Trek: Glorious Wolf - (...) / Sorties: Dread Mac Farlane - episode 3 / News: Plein d'images cools créées par (...) / Sorties: Star Trek: Glorious Wolf - (...) / Jeux: Final Fantasy 2.0 / Chat

Bienvenue
visiteur !




publicité RPG Maker!

Statistiques

Liste des
membres


Contact

Mentions légales

251 connectés actuellement

29185681 visiteurs
depuis l'ouverture

5946 visiteurs
aujourd'hui



Barre de séparation

Partenaires

Indiexpo

Akademiya RPG Maker

Blog Alioune Fall

Fairy Tail Constellations

Tashiroworld

RPG Maker VX

Level Up!

Tous nos partenaires

Devenir
partenaire



forums

Index du forum > Entraide > [RPGVX] Bateau qui navigue sur la lave


Belatucadrus - posté le 28/08/2015 à 01:56:08 (88 messages postés)

❤ 0

Le Pape

Domaine concerné: Script
Logiciel utilisé: RPGVX
Salut,

Je suis en train de me casser la tête depuis quelques heures

Dans mon RPG j'ai un item "bateau" qui peut apparaitre dès qu'on s'approche de l'eau. Le problème c'est que les passabilités du bateau permettent aussi au bateau d'aller sur la lave, et donc quand je suis dans un donjon, une ville ou une route avec de la lave, le joueur peut décider de prendre son bateau en bois et traverser la lave...

J'ai une piste : Dans Game_Map il y a ce petit bout de code qui s'occupe des passabilités :

Portion de code : Tout sélectionner

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
  #--------------------------------------------------------------------------
  # * Determine if Passable
  #     x    : x coordinate
  #     y    : y coordinate
  #     flag : The impassable bit to be looked up
  #            (normally 0x01, only changed for vehicles)
  #--------------------------------------------------------------------------
  def passable?(x, y, flag = 0x01)
    for event in events_xy(x, y)            # events with matching coordinates
      next if event.tile_id == 0            # graphics are not tiled
      next if event.priority_type > 0       # not [Below characters]
      next if event.through                 # pass-through state
      pass = @passages[event.tile_id]       # get passable attribute
      next if pass & 0x10 == 0x10           # *: Does not affect passage
      return true if pass & flag == 0x00    # o: Passable
      return false if pass & flag == flag   # x: Impassable
    end
    for i in [2, 1, 0]                      # in order from on top of layer
      tile_id = @map.data[x, y, i]          # get tile ID
      return false if tile_id == nil        # failed to get tile: Impassable
      pass = @passages[tile_id]             # get passable attribute
      next if pass & 0x10 == 0x10           # *: Does not affect passage
      return true if pass & flag == 0x00    # o: Passable
      return false if pass & flag == flag   # x: Impassable
    end
    return false                            # Impassable
  end
  #--------------------------------------------------------------------------
  # * Determine if Boat is Passable
  #     x : x-coordinate
  #     y : y-coordinate
  #--------------------------------------------------------------------------
  def boat_passable?(x, y)
    return passable?(x, y, 0x02)
  end



En gros, la fonction passable? avec une valeur de 0x02 pour le flag définit donc les passabilités pour le bateau

Et c'est là que ma piste s'arrête, je sais pas comment bidouiller le code pour que le bateau puisse aller sur tout l'eau qu'il veut mais pas la lave...

La méthode bourrin consisterait à récupérer le tile_id de la lave et de faire un return false si ça correspond, mais je ne connais pas le tile_id de la lave et je ne sais pas comment l'obtenir

Quelqu'un aurait une idée ?

To multiply...


arttroy - posté le 28/08/2015 à 12:15:20 (2394 messages postés)

❤ 0

Just working

Le plus simple ce serait de créer un interrupteur que tu active et désactive pour gérer la passabilité du bateau :

Tu créé un interrupteur bateau_pass

Tu vas dans le Game_Map et tu modifie le def boat passable :

Portion de code : Tout sélectionner

1
2
3
4
5
6
  def boat_passable?(x, y)
    if $game_switches[bateau_pass] == false
       return passable?(x, y, 0x02)
    else
       return false
  end



Et sur la map où il y a de la lave tu créé un event en processus parallèle et tu active l'interrupteur bateau_pass (n'oublie pas de le désactiver quand tu reviendra sur une map où le bateau pourra naviguer) .

Par contre fais très attention quand tu modifie les scripts d'origine du log, ça peut vite créer des erreurs. Le mieux ça reste de mettre des # devant les lignes que tu veux rendre inactives et de rajouter ton morceau de code. Comme ça si il y a erreur tu vires le code rajouté, tu enlèves les # et voilà le tour est joué

Anti-inconstructivité / Pétition pour que le mot making soit inscrit dans le dictionnaire ?


Belatucadrus - posté le 02/09/2015 à 17:26:35 (88 messages postés)

❤ 0

Le Pape

Merci, j'essaye ça de suite =D

To multiply...


arttroy - posté le 03/09/2015 à 18:29:53 (2394 messages postés)

❤ 0

Just working

erf je viens de voir que j'avais oublié un "end"... Le bon truc c'est ça normalement

Portion de code : Tout sélectionner

1
2
3
4
5
6
7
  def boat_passable?(x, y)
    if $game_switches[bateau_pass] == false
       return passable?(x, y, 0x02)
    else
       return false
    end
  end



Anti-inconstructivité / Pétition pour que le mot making soit inscrit dans le dictionnaire ?

Index du forum > Entraide > [RPGVX] Bateau qui navigue sur la lave

repondre up

Suite à de nombreux abus, le post en invités a été désactivé. Veuillez vous inscrire si vous souhaitez participer à la conversation.

Haut de page

Merci de ne pas reproduire le contenu de ce site sans autorisation.
Contacter l'équipe - Mentions légales

Plan du site

Communauté: Accueil | Forum | Chat | Commentaires | News | Flash-news | Screen de la semaine | Sorties | Tests | Gaming-Live | Interviews | Galerie | OST | Blogs | Recherche
Apprendre: Visite guidée | RPG Maker 95 | RPG Maker 2003 | RPG Maker XP | RPG Maker VX | RPG Maker MV | Tutoriels | Guides | Making-of
Télécharger: Programmes | Scripts/Plugins | Ressources graphiques / sonores | Packs de ressources | Midis | Eléments séparés | Sprites
Jeux: Au hasard | Notre sélection | Sélection des membres | Tous les jeux | Jeux complets | Le cimetière | RPG Maker 95 | RPG Maker 2000 | RPG Maker 2003 | RPG Maker XP | RPG Maker VX | RPG Maker VX Ace | RPG Maker MV | Autres | Proposer
Ressources RPG Maker 2000/2003: Chipsets | Charsets | Panoramas | Backdrops | Facesets | Battle anims | Battle charsets | Monstres | Systems | Templates
Ressources RPG Maker XP: Tilesets | Autotiles | Characters | Battlers | Window skins | Icônes | Transitions | Fogs | Templates
Ressources RPG Maker VX: Tilesets | Charsets | Facesets | Systèmes
Ressources RPG Maker MV: Tilesets | Characters | Faces | Systèmes | Title | Battlebacks | Animations | SV/Ennemis
Archives: Palmarès | L'Annuaire | Livre d'or | Le Wiki | Divers