VXAce Passabilities Bug?

● ARCHIVED · READ-ONLY
Started by Archeia 19 posts View original ↗
  1. I tried working with some tileset passabilities and I came across this bug:

    uGbvD.png

    In RPG Maker 2003 that setting with the star should've worked. Is it a bug in the scripts?
  2. I've run into that bug a lot as well! I hate the bug. :| The maker just ignores that you set up the arrows when you make it so it appears over players, though I would think that it's a problem with the gamemaker itself and not a script (as I don't think passibilities and the like are defined at all in the scripts, are they?). But I'm no expert here.
  3. I found a workaround but I find that bug so stupid and painful ;-;
  4. It is so stupid and painful! ;-; What's the work around?
  5. Well...I just used events ahaha <_<;;

    I have tons of tileset space so I just set the barkless version of the tree in E to save myself from pain to make them into charactersets.

    6njA2.png
  6. Seems kind of weird to be able to walk behind a tree from the bottom tiles and not be able to pass through the top.

    If you have any spare A5 tiles you can do the passability on those and leave the tree tiles as stars. Should only need to copy 2 tiles since you don't need the restricted down passability on the top tiles, the bottom ones already restricts that movement.
  7. Espon said:
    Seems kind of weird to be able to walk behind a tree from the bottom tiles and not be able to pass through the top.
    You can still walk above them.

    gdTlG.png
  8. I mean if you walk into the trees from the bottom, you can't move up to the top tiles. And you can slip out of the bottom which looks kind of weird. Maybe I'm missing something but that's what I get from replicating your pictures. o_O
  9. Game_Map line 444 tells it to ignore flags if there's a star. Maybe you could just comment that out? But it might affect other things in an unexpected/unwanted way.

    In case you've made mods (or I've made mods) to that class, it's this line in the check_passage method:



    Code:
    next if flag & 0x10 != 0            # [☆]: No effect on passage
  10. You mean this? @Espon

    yPUjK.png

    Shaz said:
    Game_Map line 444 tells it to ignore flags if there's a star. Maybe you could just comment that out? But it might affect other things in an unexpected/unwanted way.
    Yeah Neonblack just brought it up to me too. But it is a bit @_@; hmmm @_@;;
  11. Yes, commenting that out will literally work. Just tested it.

    EDIT: It's line 441 in my editor, though. Not sure why it's different for you.
  12. By any chance will it affect terrain/ladder/bush etc. too?

    I'm not really sure what is counted as "flag"
  13. Archeia_Nessiah said:
    You mean this? @Espon

    yPUjK.png
    Yeah, but my character stops in their tracks if I try to move down from the top to bottom. I'm not using them as Star passability though since that ignores passability flags completely. I guess this is a little off-topic though, but just commenting on how it'll work out if you used the passabilty as A-tiles or as the script edit others pointed out.
  14. Oh lol. I edited it a bit when I was trying to figure our some stuff, here:

    Fugso.png
  15. Okay that's better. =P
  16. check_passage starts on line 441 in the script, but the actual line to be commented out is 444.

    It should not affect terrain/ladder/bush as the method JUST checks passability. What it WILL affect is any tile that has a star as passability - it would look instead at the 4 directions.
  17. I just thought of something, which one would take priority the star passabilities or the one below it?
  18. By commenting out that line, all you are doing is ignoring the "skip" if the tile has the star passability flag. Since flags hold much larger values (in most cases) than the simple 0x10, all we're doing here is a bitwise AND check to see if it's binary data includes that particular flag. In ordinary cases, it will move on to the next tile down if star passability is detected.

    Now that I think about it, though, this will NOT work since we're only checking one tile. Give me 5 minutes to create a solution.

    EDIT: Here is the solution. It checks if the tile is a star before checking passability. If the tile is a star and it is passable, it then checks the tile UNDER it. If not, it returns false as always. This prevents everything that is a star tile from being passable.



    Code:
    class Game_Map
    
      def check_passage(x, y, bit)
        all_tiles(x, y).each do |tile_id|
          flag = tileset.flags[tile_id]
          if flag & 0x10 != 0                   # [☆]: No effect on passage
            next         if flag & bit == 0     # [○] : Passable but star
            return false if flag & bit == bit   # [×] : Impassable
          else
            return true  if flag & bit == 0     # [○] : Passable
            return false if flag & bit == bit   # [×] : Impassable
          end
        end
        return false                          # Impassable
      end
    end
  19. Thank you very much NeonBlack <3

    I'm going to test it out~

    EDIT: Works like a charm~ Thank you very much <3

    This thread is being closed, due to being solved. If for some reason you would like this thread re-opened, please report this post and leave a message why. Thank you.