Doodads's Editor- Embellish your maps with this editor compatible with RPG Maker XP, VX and ACE

Discussion in 'Useful Development Tools' started by newold, Oct 12, 2018.

  1. newold

    newold Villager Member

    Messages:
    11
    Likes Received:
    13
    First Language:
    spanish
    Primarily Uses:
    N/A
    Author: Newold
    Version: 1.0
    Type: Custom Mapping System
    Compatibilty: RPG Maker XP, VX, ACE.
    Update: Version without dll include to the end of this post
    Updated: 10-06-2019 (See end of this post)

    With this tool you can enrich your maps with different images (even animated images). In game, you press F8 and the Doodads's Editor appear (only available in Debug Mode).

    Features:
    • Easy manager for your doodads with a beauty external editor
    • Auto installable
    • Compatible with RPG Maker XP, VX and VX ACE projects
    • Press F1 in the Doodad's Editor to display help
    • 2 DLL included: One with the embedded doodads editor and another lighter version without the editor (with light dll the doodads can not be edited)
    Preview:



    [​IMG]


    Instructions:

    Installation is very simple. Just download the installer program. Unzip to the folder of your choice (rar file) and run executable Doodads Editor Installer.exe

    [​IMG]

    Download:

    http://www.mediafire.com/file/aze4r7pgv6t5tg6/Doodads_Editor.rar/file

    This program required .NET Frameworks 2.0 (for the light dll) or .NET Frameworks 4.0 (for the full dll)



    New: No DLL required version:

    For XP: https://www.mediafire.com/file/wkzfrw833cynr3m/doodadEditor_without_dll_-_XP.rar/file
    For VX: https://www.mediafire.com/file/xvud0ocv0ca2u6h/doodadEditor_without_dll_-_VX.rar/file
    For ACE: https://www.mediafire.com/file/bmg1sjt3x46jrl9/doodadEditor_without_dll_-_ACE.rar/file


    Instructions to install this version without dll:

    • Download the compress file to the maker you go to use.
    • Decompress this file.
    • Copy the folders Graphics and Files to the folder of your project.
    • Open your proyect with your maker.
    • Copy over the main script in your proyect the scripts includes in the file "Copy these script over Main.txt"

    BUGS FIXEDS

    Instructions for install in each script:

    Updated: 10-06-2019

    XP Version
    Code:
    =begin
    
      Newold Doodads Editor Bugs Fix (XP)
     
      Use:  * Version without DLL : Paste over main
            * Version with DLL    : In Main created by installer, search this line:
                                    "SceneManager.run" and paste above the contents
                                    of this script
                                   
      FIXs:
     
        - 10-06-2019  : Fixed: Doodads does not appears when reset with F12
        - 08-06-2019  : Corrected position of doodads during the transitions.
        - 08-06-2019  : Fix Fatal error when a map has defined any doodad and you
                        change the size of map in RPG Maker Editor
                               
    =end
    
    #===============================================================================
    class Spriteset_Map
      def initialize
        initialize_newold_edit_doodads
        create_doodads
        update_doodads
      end
    end
    #===============================================================================
    
    #===============================================================================
    class Game_Map
       def passable?(x, y, d, self_event = nil)
        unless @doodads_priority.nil? || @doodads_priority[x].nil? ||
          @doodads_priority[x][y].nil? 
          if @doodads_priority.size != 0
            return false if @doodads_priority[x][y] & (1<<d) == 0
          end
        end
        doodads = @doodads.select {|doodad|
          (doodad.real_x / 32).to_i == x && (doodad.real_y / 32).to_i == y}
         
        doodads.each{|doodad|
          return false if doodad.passable & (1 << d) != 0
        }
    
        return passable_newold_edit_doodads?(x, y, d, self_event)
      end
    end
    #===============================================================================
    
    #===============================================================================
    class Scene_Title # F12 Fix
      unless method_defined?(:main_newold_edit_doodads)
        alias_method :main_newold_edit_doodads, :main
      end
      def main
        Cache.clear
        main_newold_edit_doodads
      end
    end
    #===============================================================================
    
    VX Version

    Code:
    =begin
    
      Newold Doodads Editor Bugs Fix (ACE)
     
      Use:  * Version without DLL : Paste over main
            * Version with DLL    : In Main created by installer, search this line:
                                    "SceneManager.run" and paste above the contents
                                    of this script
                                   
      FIXs:
     
        - 10-06-2019  : Fixed: Doodads does not appears when reset with F12
        - 08-06-2019  : Corrected position of doodads during the transitions.
        - 08-06-2019  : Fix Fatal error when a map has defined any doodad and you
                        change the size of map in RPG Maker Editor
                               
    =end
    
    #===============================================================================
    class Spriteset_Map
      def initialize
        initialize_newold_edit_doodads
        create_doodads
        update_doodads
      end
    end
    #===============================================================================
    
    #===============================================================================
    class Game_Map
       def passable?(x, y)
        d = $game_player.direction
        unless @doodads_priority.nil? || @doodads_priority[x].nil? ||
          @doodads_priority[x][y].nil? 
          if @doodads_priority.size != 0
            return false if @doodads_priority[x][y] & (1<<d) == 0
          end
        end
        doodads = @doodads.select {|doodad|
          (doodad.real_x / 32).to_i == x && (doodad.real_y / 32).to_i == y}
         
        doodads.each{|doodad|
          return false if doodad.passable & (1 << d) != 0
        }
    
        return passable_newold_edit_doodads?(x, y)
      end
    end
    #===============================================================================
    
    #===============================================================================
    class Scene_Title < Scene_Base # F12 Fix
      unless method_defined?(:start_newold_edit_doodads)
        alias_method :start_newold_edit_doodads, :start
      end
      def start
        Cache.clear
        start_newold_edit_doodads
      end
    end
    #===============================================================================
    


    ACE Version
    Code:
    =begin
    
      Newold Doodads Editor Bugs Fix (ACE)
     
      Use:  * Version without DLL : Paste over main
            * Version with DLL    : In Main created by installer, search this line:
                                    "SceneManager.run" and paste above the contents
                                    of this script
                                   
      FIXs:
     
        - 10-06-2019  : Fixed: Doodads does not appears when reset with F12
        - 08-06-2019  : Corrected position of doodads during the transitions.
        - 08-06-2019  : Fix Fatal error when a map has defined any doodad and you
                        change the size of map in RPG Maker Editor
                               
    =end
    
    #===============================================================================
    class Spriteset_Map
      def initialize
        initialize_newold_edit_doodads
        create_doodads
        update_doodads
      end
    end
    #===============================================================================
    
    #===============================================================================
    class Game_Map
       def passable?(x, y, d)
        unless @doodads_priority.nil? || @doodads_priority[x].nil? ||
          @doodads_priority[x][y].nil? 
          if @doodads_priority.size != 0
            return false if @doodads_priority[x][y] & (1<<d) == 0
          end
        end
        doodads = @doodads.select {|doodad|
          (doodad.real_x / 32).to_i == x && (doodad.real_y / 32).to_i == y}
         
        doodads.each{|doodad|
          return false if doodad.passable & (1 << d) != 0
        }
       
        return passable_newold_edit_doodads?(x, y, d)
      end
    end
    #===============================================================================
    
    #===============================================================================
    class Scene_Title < Scene_Base # F12 Fix
      unless method_defined?(:start_newold_edit_doodads)
        alias_method :start_newold_edit_doodads, :start
      end
      def start
        Cache.clear
        start_newold_edit_doodads
      end
    end
    #===============================================================================
    
     
    Last edited: Jun 11, 2019
    #1
    XPKobold, Sharm, Kvothe and 9 others like this.
  2. Canini

    Canini Veteran Veteran

    Messages:
    974
    Likes Received:
    647
    First Language:
    Swedish
    This is a real cool tool!

    I will experiment a bit with this as soon as time allows.
     
    #2
  3. TheoAllen

    TheoAllen Self-proclaimed jack of all trades Veteran

    Messages:
    4,367
    Likes Received:
    4,934
    Location:
    Riftverse
    First Language:
    Indonesian
    Primarily Uses:
    RMVXA
    And here I thought I wanted to create doodads script as a counterpart of Yanfly's doodad in MV, someone beat me to it. Thanks for sharing, and thanks Canini for bumping this up. But shouldn't it be in useful tool forum?
     
    #3
  4. Kim_Shyuen

    Kim_Shyuen DAYDREAMER乁( ◔ ౪◔)「 Veteran

    Messages:
    83
    Likes Received:
    249
    Location:
    Malaysia
    First Language:
    Chinese
    Primarily Uses:
    RMVXA
    Wow THIS IS FREAKING AWESOME!!!
    Thanks for sharing this dayum good script!!:kaoluv:;_;;_;;_;;_;
     
    #4
  5. Kagari

    Kagari Warper Member

    Messages:
    3
    Likes Received:
    0
    First Language:
    Vietnamese
    Primarily Uses:
    RMVXA
    hi, i've a question: after i build my game ( Compress game data ) and i run my game, but the doodads i placed before wasn't there anymore. I kinda new to this thing, please help. Thanks
     
    #5
  6. newold

    newold Villager Member

    Messages:
    11
    Likes Received:
    13
    First Language:
    spanish
    Primarily Uses:
    N/A
    I think you probably need put your folder Data with the files of doodads in your compile project folder. All doodads files are named MapXXX_doodads in your data folder. maybe you also need put your folder Graphics/doodads in your compile's project folder (I'm not sure about this last)

    (Only puts folder Data with only doodad's files and if dont works, puts too the folder Graphics/doodads with all images of doodads)

    [​IMG]
     
    #6
  7. Shaz

    Shaz Veteran Veteran

    Messages:
    37,706
    Likes Received:
    11,411
    Location:
    Australia
    First Language:
    English
    Primarily Uses:
    RMMV
    Is this an editor tool only, or do you need to add plugins/scripts to your project in order to read the items & locations?
     
    #7
  8. newold

    newold Villager Member

    Messages:
    11
    Likes Received:
    13
    First Language:
    spanish
    Primarily Uses:
    N/A
    When you download this tool, you get a setup that auto-install all files and scripts needed in your project. I will update the first post in a few moments with a manual version (no auto-install) where you need copy all files and scripts manually. this second version doesnt use any dll. The first version (setup) install a dll in your project
     
    #8
  9. Kagari

    Kagari Warper Member

    Messages:
    3
    Likes Received:
    0
    First Language:
    Vietnamese
    Primarily Uses:
    RMVXA
    Thanks for reply,i tried to decompile my game, the MapXXX_doodads was in Data folder and i also put Doodads folder inside Graphic folder before compile too , but somehow doodads doesn't show in game. Any ideas ?
     
    #9
  10. Shaz

    Shaz Veteran Veteran

    Messages:
    37,706
    Likes Received:
    11,411
    Location:
    Australia
    First Language:
    English
    Primarily Uses:
    RMMV
    So this is a replacement for Yanfly's Doodads, not an add-on that works with it? It kind of sounds like a tool to be used WITH Yanfly's doodads.
     
    #10
  11. TheoAllen

    TheoAllen Self-proclaimed jack of all trades Veteran

    Messages:
    4,367
    Likes Received:
    4,934
    Location:
    Riftverse
    First Language:
    Indonesian
    Primarily Uses:
    RMVXA
    @Shaz It's not a replacement, neither an addon. Unless if Yanfly ever made a doodads editor for older RM engines?
     
    #11
  12. newold

    newold Villager Member

    Messages:
    11
    Likes Received:
    13
    First Language:
    spanish
    Primarily Uses:
    N/A
    I think that when you compile your project and doodad files are compresed, they cannot be read anymore for the player of the maker, then the uni solution is puts all files of doodad in your compile project too:
    • Create a folder called "Data" with all files of doodads "MapXXX_doodads" in your compile project folder.
    • (It is not necessary) Create a folder called "Graphics" in your compile project folder.
    • (It is not necessary) Create a folder called "doodads" inside of the this new Graphics folder.
    • (It is not necessary) Copy all image files and folders inside your doodads folder (in your project) into the this new folder "doodads" in your compile project folder.
    • Create a folder called "Files" in your compile project folder.
    • Copy all files inside your folder Files (in your project) into this new folder "Files" in your compile project folder.
    You can try the manual version (without the dll) i add it to the first post (although I think the doodads files should be put uncompressed next to your compiled project).


    EDIT: I check this solution and works, you need to put all the doodads files in the compiled project as I have explained (I puts only Data folder with files "MapXXX_doodads" and works in the compiled project)

    [​IMG]
     
    Last edited: Dec 11, 2018
    #12
  13. Kagari

    Kagari Warper Member

    Messages:
    3
    Likes Received:
    0
    First Language:
    Vietnamese
    Primarily Uses:
    RMVXA
    Work like a charm ! Thanks for your support mate xD, very helpful !
     
    #13
  14. Isabella Ava

    Isabella Ava Veteran Veteran

    Messages:
    636
    Likes Received:
    752
    First Language:
    English
    Awesomeee! The editor are super! Never seen a great doodad tool like this before
    It will be great if we can paint region within the Editor too
     
    Last edited: Dec 23, 2018
    #14
  15. Isabella Ava

    Isabella Ava Veteran Veteran

    Messages:
    636
    Likes Received:
    752
    First Language:
    English
    @newold actually there are some strange behavior.
    I assumed that if a doodad object has Z = 100 means
    it's at the same Z as Player. Thus it should show behind player if player y position on map is bigger than it
    and show above player if player y position on map is smaller than the doodad.
    However, at Z 100, the doodad seem to show behind player all the time
    upload_2018-12-23_16-36-39.png

    and new doodad been created always has Ox & Oy = 80 (even when i create New Doodad
    base on Selected DooDad in list)
     
    #15
  16. newold

    newold Villager Member

    Messages:
    11
    Likes Received:
    13
    First Language:
    spanish
    Primarily Uses:
    N/A
    You probably activated option "Make values for this doodad as default", then, all new doodads added, are added with this values. You need select option "Reset Doodad Default" and its done.

    [​IMG]

    The problem with Z, when player Z is 100 and doodad Z is 100, player is behind of doodad if Player Y < Doddad Y + Doodad OY, and the player is in front of doodad if Player Y > Doddad Y + Doodad OY.

    [​IMG]
     
    #16
  17. Isabella Ava

    Isabella Ava Veteran Veteran

    Messages:
    636
    Likes Received:
    752
    First Language:
    English
    Hi @newold
    Thank you, i understood the problem with Z now.
    * But Ox & Oy always set to doodad's width/2 & height/2,
    is there anyway for me to change this default formula?
    (i tried Right Click > Make value for this doodad as Default - however it doesn't has effect on Ox & Oy)
    And by the way, i think it will be easier to refer to this value as % instead, that way we don't have to remember each doodad's size =)

    * After we placed the Doodads on map, how can we drag it around & reposition it?
    I couldn't find anyway to do it but input numbers manually into doodads' property boxes
     
    #17
  18. newold

    newold Villager Member

    Messages:
    11
    Likes Received:
    13
    First Language:
    spanish
    Primarily Uses:
    N/A
    Default values for ox and oy in the editor for new doodads are always image width/2 (ox) and image height / 2 (oy) if you want save 0 ox and 0 oy, you need create a new doodad, put ox and oy in 0, and press "Make values for this doodad as default" in right click menu. All new doodads created have ox and oy in 0.
     
    #18
  19. Isabella Ava

    Isabella Ava Veteran Veteran

    Messages:
    636
    Likes Received:
    752
    First Language:
    English
    @newold i am using doodad editor VXACE version without dll.
    I have uploaded a video here for you to see, even after i set "Make values for this doodad as default"
    the Ox & Oy values will always reset
     
    #19
  20. newold

    newold Villager Member

    Messages:
    11
    Likes Received:
    13
    First Language:
    spanish
    Primarily Uses:
    N/A
    its true ^^ i forget change it in the code of editor. OX and OY always is image width/2 (ox) and image height / 2 (oy) (just the center of image). I try to fix that in a few days
     
    #20

Share This Page