Jump to content

Chigoo

Member
  • Content Count

    618
  • Joined

  • Last visited

  • Days Won

    4

Posts posted by Chigoo


  1. 5 hours ago, Coolie said:

    I am going to add move speed on the fly (which is proving a bit difficult so far), and interaction with "button press" and "player touch" toggling within the next few days, typing code is a bit difficult right because I am recovering from a shoulder surgery I had this past Tuesday, but I took the notes on some feature stuff. These things will apply to two vehicles (land, ship), so it'll be more of a "Land Vehicle + Ship Vehicle Options" script in the next update.

    Changing how the airship functions in regards to those same features seems a bit too much trouble for too little gain.

    If you're able to encounter enemies while in an airship, coding would have to be added for troops that you'd be able to meet in the air, as well as being able to set a battle background for those battles, which I would assume would also need settings via region IDs so they wouldn't all be the same worldwide.

    I may add this in the future for 3.0. but I can't promise it.

    AWESOME stuff man. keep up the good work. for me I mainly just need the move speed. I also have to figure out how to make the player dismount when in combat since i'm using an ABS or make the player at least take damage.

     

    Sorry to hear about your shoulder, please get better!


  2. 11 hours ago, Coolie said:

    Script Updated to v1.07

    • Encounter support for ship/airship added.
    • Altitude support for airship added.
    • Walk animation/step animation setting for Land Vehicle removed (redundant, now automatic based on vehicle type)

    Awesome will update, I also wanted to know if there was a way to change movespeed on the fly, if you see my video I have different mount and I want to be able to make some faster than others.

     

    Look what I did so far

     


  3. 2 hours ago, Coolie said:

    Script updated to allow or disallow walking animation when piloting the vehicle.

    Same issue, and i'm testing on a blank project.

     

    edit

    looking at the original game_vehicle script @walking_anime dosen't seem to do anything.... Once stepping animation is off no animation is played at all

    Also of the get_on def it only runs when player gets on the vehicle so i figred i needed to add @step_anime = moving? somewhere where the vehicle updates all the time.

    edit2

    with trial and error I figured out to add it to def sync_with_player I just added @step_anime = moving? which fixes the issue i'm having. I did remove your script, but now I'm gonna add it in again and see if it's still solved or if I have to change something

     

    So i tried to add  this to your script but it didn't work as i wanted. but the whole system works if I change the original game_vehicles script.

    .

    def sync_with_player

    @step_anime = moving?

    end

    maybe i have to alias or something but thats beyond me

     

    EDIT FINAL

      alias :ed5_sync :sync_with_player
      def sync_with_player
        ed5_sync
        @step_anime = moving?
      end

    figured it out! Add that to the end of your script before the last end # class Game_Vehicle

     

     


  4. Change log

    link: https://www.patreon.com/posts/dawn-haven-demo-56002167

    Dawn Haven Demo V0.05B
    • -Added new NPCs
    • -Added Fast travel from map (Must visit location once before)
    • -New enemies
    • -Added shops to Summer Fell, and Lounge Port
    • -Started The Khriss main story Quest (Incomplete) 
    • -Bug fixes
    • -Performance improved in open world

     

    Things Changing in next version

    • -NPCs for High Fire, Grove Town, Koi Town, Kaizen (Shop keepers too)
    • -Replacing old crafting system
    • -Adding more enemies and Boss class enemies
    • -Others....

  5. Hey, I'm currently using a script which just points to a x,y location on the map. But I want to be able to use it in a more complex way. The script is only able to point to a location on the current map you're on. I want it to be able to point to a location a different map.

    How it should/might work:

    • Events used as doors/transfers can be tagged with a exit door tag to read their location(x , y)  this is used for caves and in door maps
    • Events used as doors/transfers can be tagged with a specific door tag to read their location(x , y) this is used for world maps, towns, open areas.
    • if the player is on the same map as location then script works normally
    • if the player is on a map with only 1 exit and its not the same map as location then the location will be set to the exit
    • if the player is on a map like a town where there's no exits then the script will look for a specific door tag to use that as the location

     

    • script call will be like 3,4,6,"tag" (mapid, x, y, specific tag)
    • calling this again should overwrite the old call (so if i was going to the market then changing it to the blacksmith will then lead me to the black smith)

    so scenarios:

    • you are in a house and you get a quest to go to the market
    • the script will set final destination to (*market map*, 33, 20) (map, x, y)
    • user will assign which specific tag is used for the current final destination
    • the script will then scan for a tag on the events if it reads exit tag (which it will since we're in a house) then it will set temporary destination to the location of the exit tag.
    • the player then follows the compass the the exit
    • the next map is the town where there should be no exit tags, the the script will then scan for the specific tag that matches the one the user assigned for final destination and set temporary destination to the location of the exit tag
    • finally the player walking in the door of the market
    • now the script sees its now on the same map the final destination and then works normal.

    So basically how the compass works in skyrim where if you're inside but the quest is in a different map it will show that. there can also be indication changes to let the player know if they are on a different map.

    I would love to thank you for read though to this far and really apricate the facts you are interested in helping.

    The Script In Question: 

     


  6. I kind of figured out a work around but I can script so I don't quite get how to do it. It seems that when using the quick selection tool to equip items duplicates the item. So what I want to do is is to make it so that instead of there being 4 commands for weapon, armor, item, and skills there will only be 3. equipment, items, and skill. Equipment will just take me to the regular equipment screen. I figuref out how to remove one of the commands and rename one to equiment. But I dont know how to make it so when you select equipment it will take you to the main screen.

     

    here's the script.

     

    Spoiler

    #===============================================================================
    # * Falcao Pearl ABS script shelf # 6
    #
    # This script handles all scenes related in pearl ABS
    #===============================================================================

    module PearlScenes
      
      # Cursor icon displayed when selecting a target
      CursorIcon = 389
      
      # Status text displayed in the player selection menu
      DeathStatus =     'Death'      # Displayed when death
      BadStatus =       'Bad'        # Displayed when 0 to 25% of hp
      OverageStatus =   'Overage'    # Displayed when 25 to 50% of hp
      GoodStatus =      'Good'       # Displayed when 50 to 75% of hp
      ExellentStatus =  'Exellent'   # Displayed when 75 to 100% of hp
    end

    #===============================================================================
    # target slection engine

    class Window_EventSelect < Window_Selectable
      attr_reader   :participants
      def initialize(object)
        super(0, 0,  150, 192)
        self.z = 101
        @participants = []
        refresh(object)
        self.index = 0
        self.visible = false
        activate
      end
      
      def item
        return @data[self.index]
      end
     
      def refresh(object)
        self.contents.clear if self.contents != nil
        @data = []
        for character in object
          if character.is_a?(Game_Event)
            if character.on_battle_screen? and character.enemy_ready?
              @data.push(character)
              character.target_index = @data.size - 1
              @participants.push(character)
            end
          elsif character.on_battle_screen?
             next if character.battler.deadposing != nil and 
             $game_map.map_id != character.battler.deadposing
             @data.push(character)
             character.target_index = @data.size - 1
             @participants.push(character)
          end
        end
        @item_max = @data.size
        if @item_max > 0
          self.contents = Bitmap.new(width - 32, row_max * 26)
          for i in 0...@item_max
            draw_item(i)
          end
        end
      end
     
      def draw_item(index)
        item = @data[index]
        x, y = index % col_max * (120 + 32), index / col_max  * 24
        self.contents.font.size = 16
        self.contents.draw_text(x + 24, y, 212, 32, 'none', 0)
      end
      
      def item_max
        return @item_max.nil? ? 0 : @item_max 
      end 
    end

    # Scenen events selection target
    class Scene_BattlerSelection < Scene_MenuBase
      
      def start
        super
        @mouse_exist = defined?(Map_Buttons).is_a?(String)
        item = $game_player.targeting[1]
        if item.is_a?(RPG::Skill) || item.is_a?(RPG::Item)
          load_target(item)
        else
          invoke = item.tool_data("Tool Invoke Skill = ")
          if invoke != 0
            load_target($data_skills[invoke])
          else
            @event_window = Window_EventSelect.new($game_map.events.values)
          end
        end
        
        # info window
        @info_window = Sprite.new
        @event_window.item.nil? ? t = 'No targets!' : t = 'Select target'
        @info_window.bitmap = Bitmap.new(300, 60)
        @info_window.z = 900 
        x, y = Graphics.width / 2 - 300 / 2,  Graphics.height / 2 - 60 / 2
        @info_window.x = x; @info_window.y = y
        @info_window.bitmap.font.size = 30
        @info_window.bitmap.font.shadow = true
        @info_window.bitmap.draw_text(0, 0, @info_window.width, 32, t, 1)
        @info_time = 60
        create_cursor unless @event_window.item.nil?
        @background_sprite.color.set(16, 16, 16, 70)
      end
      
      def create_name_sprites
        return if !@name_text.nil?
        @name_text = Sprite.new
        @name_text.bitmap = Bitmap.new(200, 60)
        @name_text.bitmap.font.size = 20
        @name_text.bitmap.font.shadow = true
        @name_text.x = @event_window.item.screen_x - 100
        @name_text.y = @event_window.item.screen_y - 58
        text = @event_window.item.battler.name
        @name_text.bitmap.draw_text(0, 0, @name_text.width, 32, text, 1)
      end
      
      def dispose_name_sprites
        return if @name_text.nil?
        @name_text.bitmap.dispose
        @name_text.dispose
        @name_text = nil
      end
      
      # load item target
      def load_target(item)
        if item.scope.between?(1, 6) 
          @event_window = Window_EventSelect.new($game_map.events.values)
        else
          targets = []
          $game_player.followers.each {|i| targets << i if i.visible?}
          targets << $game_player
          @event_window = Window_EventSelect.new(targets)
        end
      end
      
      def refresh_info(type)
        @info_window.bitmap.clear
        t = 'Invalid Target!' if type == 2
        @info_window.bitmap.draw_text(-30, 0, @info_window.width, 32, t, 1)
      end
      
      def create_cursor
        if @mouse_exist
          @cursor = $mouse_cursor
          @cursor_zooming = 0 ; update_cursor_position
          return
        end
        @cursor = Sprite.new
        icon = PearlScenes::CursorIcon
        @cursor.bitmap = Bitmap.new(24, 24)
        bitmap = Cache.system("Iconset")
        rect = Rect.new(icon % 16 * 24, icon / 16 * 24, 24, 24)
        @cursor.bitmap.blt(0, 0, bitmap, rect)
        @cursor_zooming = 0
        update_cursor_position
      end
      
      def update
        super
        if Input.trigger?(:B)
          $game_player.targeting = [false, item=nil, char=nil]
          SceneManager.return
          Sound.play_cancel
        end
      
        @info_time -= 1 if @info_time > 0
        if @info_time == 0
          @info_window.opacity -= 8 if @info_window.opacity > 0
          if @info_window.opacity == 0 and @event_window.item.nil?
            Sound.play_cancel
            $game_player.targeting = [false, item=nil, char=nil]
            SceneManager.return
          end
        end
        return if @event_window.item.nil?
        if @mouse_exist
          for target in @event_window.participants
            if Mouse.map_grid[0] == target.x and Mouse.map_grid[1] == target.y
              @event_window.select(target.target_index)
            end
          end
        end
        
        if @current_index != @event_window.index
          @current_index = @event_window.index
          dispose_name_sprites
          create_name_sprites
        end
        
        update_cursor_position
        update_target_selection
      end
      
      # target selection
      def update_target_selection
        if Input.trigger?(:C)
          if @mouse_exist
            for event in @event_window.participants
              if Mouse.map_grid[0] == event.x and Mouse.map_grid[1] == event.y
                @event_window.select(event.target_index)
                @selected = true
              end
            end
            
            if @selected.nil?
              refresh_info(2)
              @info_time = 60; @info_window.opacity = 255
              Sound.play_buzzer
              return
            end
          end
          Sound.play_ok
          $game_player.targeting[2] = @event_window.item
          SceneManager.return
        end
      end
      
      def update_cursor_position
        if @mouse_exist
          @cursor.x = Mouse.pos[0]
          @cursor.y = Mouse.pos[1]
        else
          @cursor.x = @event_window.item.screen_x
          @cursor.y = @event_window.item.screen_y - 16
        end
        @cursor_zooming += 1
        case @cursor_zooming
        when 1..10 ; @cursor.zoom_x -= 0.01 ; @cursor.zoom_y -= 0.01
        when 11..20; @cursor.zoom_x += 0.01 ; @cursor.zoom_y += 0.01
        when 21..30; @cursor.zoom_x = 1.0   ; @cursor.zoom_y = 1.0
          @cursor_zooming = 0 
        end
      end
      
      def terminate
        super
        @event_window.dispose
        @info_window.dispose
        @info_window.bitmap.dispose
        dispose_name_sprites
        if @mouse_exist and !@cursor.nil?
          @cursor.zoom_x = 1.0   ; @cursor.zoom_y = 1.0 ; @selected = nil
        else
          @cursor.dispose unless @cursor.nil?
          @cursor.bitmap.dispose unless @cursor.nil?
        end
      end
    end

    #===============================================================================
    #===============================================================================
    # * Player slection engine

    # Primary use selection
    class Window_Primaryuse < Window_Command
      attr_accessor :actor
      def initialize(x, y, actor)
        @actor = actor
        super(x, y)
        deactivate ; unselect
      end
      
      def window_width()  return 544  end
      def window_height() return 80   end  

      def make_command_list
        add_command('Weapon ' + Key::Weapon[1],  'Weapon ' + Key::Weapon[1])
        add_command('Armor ' + Key::Armor[1],    'Armor ' + Key::Armor[1])
        add_command('Item '  + Key::Item[1],    'Item '  + Key::Item[1])
        add_command('Item '  + Key::Item2[1],   'Item '  + Key::Item2[1])
        add_command('Skill ' + Key::Skill[1],  'Skill ' + Key::Skill[1])
        add_command('Skill ' + Key::Skill2[1], 'Skill ' + Key::Skill2[1])
        add_command('Skill ' + Key::Skill3[1], 'Skill ' + Key::Skill3[1])
        add_command('Skill ' + Key::Skill4[1], 'Skill ' + Key::Skill4[1])
      end
      
      def refresh_actor(actor)
        @actor = actor
        refresh
      end
      
      def col_max
        return 4
      end
      
      def draw_item(index)
        contents.font.size = 20
        if @actor.primary_use == index + 1
          contents.font.color = Color.new(255, 120, 0, 255)
          draw_text(item_rect_for_text(index), command_name(index), alignment)
          change_color(normal_color, command_enabled?(index))
          return
        end
        super
      end
    end

    class Window_CharacterSet < Window_Selectable
      include PearlScenes
      def initialize(x=0, y=0)
        super(x, y, 544, 156)
        refresh
        self.index = 0
        activate
      end
      
      def item
        return @data[self.index]
      end
     
      def refresh
        self.contents.clear if self.contents != nil
        @data = []
        $game_party.battle_members.each {|actor| @data.push(actor)}
        @item_max = @data.size
        if @item_max > 0
          self.contents = Bitmap.new(width - 26, row_max * 128)
          for i in 0...@item_max
            draw_item(i)
          end
        end
      end
     
      def draw_item(index)
        item = @data[index]
        x, y = index % col_max * (138), index / col_max  * 130
        self.contents.font.size = 20
        contents.fill_rect(x, y, item_width, item_height, Color.new(0, 0, 0, 60))
        draw_character(item.character_name, item.character_index, x + 22, y + 56)
        hp_color = [Color.new(205, 255, 205, 200),   Color.new(10, 220, 45,  200)]
        mp_color = [Color.new(180, 225, 245, 200),   Color.new(20, 160, 225, 200)]
        PearlKernel.draw_hp(self.contents, item, x + 4, y + 66, 96, 12, hp_color)
        PearlKernel.draw_mp(self.contents, item, x + 4, y + 86, 96, 12, mp_color)
        contents.draw_text(x - 2, y, item_width, 32, item.name, 2)
        contents.draw_text(x - 2, y + 20, item_width, 32, item.class.name, 2)
        case (item.hp.to_f / item.mhp.to_f * 100.0)
        when 0       ; text = DeathStatus
        when 1..25   ; text = BadStatus
        when 26..50  ; text = OverageStatus
        when 51..75  ; text = GoodStatus
        when 76..100 ; text = ExellentStatus
        end
        if item.state?(1)
          draw_icon($data_states[1].icon_index, x + 50, y + 100)
        end
        contents.draw_text(x + 4, y + 100, item_width, 32, text) rescue nil
      end
      
      def item_max
        return @item_max.nil? ? 0 : @item_max 
      end 
      
      def col_max
        return 4
      end
      
      def line_height
        return 130
      end
    end

    class Scene_CharacterSet < Scene_MenuBase
      def start
        super
        x, y = Graphics.width / 2 - 544 / 2,  Graphics.height / 2 - 60 / 2
        @top_text = Window_Base.new(x, y - 170, 544, 60)
        @top_text.draw_text(0, 0, @top_text.width, 32, 'Select your Player', 1)
        @window_charset = Window_CharacterSet.new(@top_text.x, @top_text.y + 60)
        @primary_info = Window_Base.new(@top_text.x,@window_charset.y + 156, 544,60)
        @timer = 0
        refresh_primary_info('Press A to set up')
        @primary_use = Window_Primaryuse.new(@top_text.x,@primary_info.y + 60,actor)
        @primary_use.set_handler('Weapon ' + Key::Weapon[1],  method(:apply_item))
        @primary_use.set_handler('Armor '  + Key::Armor[1],   method(:apply_item))
        @primary_use.set_handler('Item '   + Key::Item[1],    method(:apply_item))
        @primary_use.set_handler('Item '   + Key::Item2[1],   method(:apply_item))
        @primary_use.set_handler('Skill '  + Key::Skill[1],   method(:apply_item))
        @primary_use.set_handler('Skill '  + Key::Skill2[1],  method(:apply_item))
        @primary_use.set_handler('Skill '  + Key::Skill3[1],  method(:apply_item))
        @primary_use.set_handler('Skill '  + Key::Skill4[1],  method(:apply_item))
        DisplayTools.create(@primary_use.x + 94, @primary_use.y + 85)
        if $game_player.in_combat_mode?
          $game_temp.pop_w(180, 'Pearl ABS', 
          'You cannot switch player while in combat!')
        end
        @index_char = @window_charset.index
        @background_sprite.color.set(16, 16, 16, 70)
      end
      
      def apply_item
        case @primary_use.current_symbol
        when 'Weapon ' + Key::Weapon[1] then actor.primary_use = 1
        when 'Armor '  + Key::Armor[1]  then actor.primary_use = 2
        when 'Item '   + Key::Item[1]   then actor.primary_use = 3
        when 'Item '   + Key::Item2[1]  then actor.primary_use = 4
        when 'Skill '  + Key::Skill[1]  then actor.primary_use = 5
        when 'Skill '  + Key::Skill2[1] then actor.primary_use = 6
        when 'Skill '  + Key::Skill3[1] then actor.primary_use = 7
        when 'Skill '  + Key::Skill4[1] then actor.primary_use = 8
        end
        refresh_primary_info(actor.name+ " now use #{@primary_use.current_symbol}!")
        @primary_use.refresh_actor(actor)
        cancel_setup; @timer = 120
      end
      
      def actor
        @window_charset.item
      end
      
      def refresh_primary_info(text)
        @primary_info.contents.clear
        @primary_info.contents.font.size = 20
        @primary_info.draw_text(0, 0, 544, 32, 'As a follower primarily use tool?')
        @primary_info.draw_text(-26, 0, 544, 32, text, 2)
      end
      
      def update
        super
        if $game_player.in_combat_mode?
          SceneManager.return if $game_temp.pop_windowdata[0] == 4
          return
        end
        if @timer > 0
          @timer -= 1
          refresh_primary_info('Press A to set up') if @timer == 0
        end
        DisplayTools.update
        if @index_char != @window_charset.index
          @index_char = @window_charset.index
          DisplayTools.sprite.actor = actor
          DisplayTools.sprite.refresh_icons
          DisplayTools.sprite.refresh_texts
          @primary_use.refresh_actor(actor)
        end
        update_cancel if Input.trigger?(:B)
        update_player_selection if Input.trigger?(:C)
        update_setup if Input.trigger?(:X)
      end
      
      def update_setup
        return if @primary_use.active
        Sound.play_ok
        @window_charset.deactivate
        @primary_use.activate
        @primary_use.select(0)
      end
      
      def cancel_setup
        @window_charset.activate
        @primary_use.deactivate
        @primary_use.unselect
      end
      
      def update_cancel
        Sound.play_cancel
        if @window_charset.active
          if $game_player.actor.dead?
            Sound.play_buzzer
            return
          end
          SceneManager.return
        else
          cancel_setup
        end
      end
      
      def update_player_selection
        if @window_charset.active
          if @window_charset.item.dead?
            Sound.play_buzzer
            return
          end
          Sound.play_ok
          $game_party.swap_order(0, @window_charset.index)
          SceneManager.return
        end
      end
      
      def terminate
        super
        @window_charset.dispose
        @top_text.dispose
        @primary_use.dispose
        @primary_info.dispose
        DisplayTools.dispose
      end
    end

    #===============================================================================
    #===============================================================================
    # * Quick tool se3lection engine

    class Window_Base < Window
      def draw_text_ex2(x, y, text)
        text = convert_escape_characters(text)
        pos = {:x => x, :y => y, :new_x => x, :height => calc_line_height(text)}
        process_character(text.slice!(0, 1), text, pos) until text.empty?
      end
    end

    # window horizon
    class Window_ItemSelect < Window_HorzCommand
      def initialize(x=0, y=0)
        super(x, y)
      end
      
      def window_width()  return 460  end
      def window_height() return 50   end  

      def make_command_list
        add_command("Equipment",   :weapon)
       # add_command("OFF HAND", :armor)
        add_command("ITEMS",     :item)
        add_command("SPELLS",    :skill)
      end
      
      def draw_item(index)
        contents.font.size = 20
        super
      end
    end

    # window slot ask
    class Window_SlotConfirm < Window_Command
      def initialize(x, y, kind)
        @kind = kind
        super(x, y)
        activate
      end
      
      def window_width()  return 130  end
      def window_height() return @kind == :item ? 80 : 120   end  

      def make_command_list
        case @kind
        when :item
          add_command('Slot ' + Key::Item[1],    :slot1)
          add_command('Slot ' + Key::Item2[1],   :slot2)
        when :skill
          add_command('Slot ' + Key::Skill[1],   :slot1)
          add_command('Slot ' + Key::Skill2[1],  :slot2)
        end
      end
      
      def draw_item(index)
        contents.font.size = 20
        super
      end
    end

    # Actor quick tool
    class Window_ActorQuickTool < Window_Selectable
      def initialize(x=0, y=124, w=460, h=148)
        super(x, y,  w, h)
        unselect
      end
      
      def item()        return @data[self.index] end
      def col_max()     return 2                 end
      def spacing()     return 6                 end  
      
      def refresh(actor, kind)
        self.contents.clear if self.contents != nil
        @data = []
        if kind == :weapon
          operand = $game_party.weapons
          operand.push(actor.equips[0]) if actor.equips[0] != nil
        end
        if kind == :armor
          operand = $game_party.armors 
          operand.push(actor.equips[1]) if actor.equips[1] != nil
        end
        operand = $game_party.items if kind == :item
        operand = actor.skills if kind == :skill
        for item in operand
          if kind == :weapon || kind == :armor
            next unless actor.equippable?(item)
            next if item.etype_id > 1
          end
          
          unless @data.include?(item)
            next if item.tool_data("Exclude From Tool Menu = ", false) == "true"
            @data.push(item) 
          end
          
          
          
          
        end
        @item_max = @data.size
        if @item_max > 0
          self.contents = Bitmap.new(width - 32, row_max * 24)
          for i in 0...@item_max
            draw_item(i)
          end
        end
      end
     
      def draw_item(index)
        item = @data[index]
        x, y = index % col_max * (190 + 32), index / col_max  * 24
        self.contents.font.size = 20
        draw_icon(item.icon_index, x, y)
        contents.draw_text(x + 24, y, 212, 32, item.name)
      end
      
      def item_max
        return @item_max.nil? ? 0 : @item_max 
      end 
    end

    module DisplayTools
      
      def self.create(x, y)
        @viewport2 = Viewport.new ; @viewport2.z = 999
        @pearl_tool_sprite = Sprite_PearlTool.new(@viewport2, [x, y])
      end
      
      def self.sprite
        return @pearl_tool_sprite
      end
      
      def self.update
        @pearl_tool_sprite.update
      end
      def self.dispose
        @pearl_tool_sprite.dispose ; @viewport2.dispose
        @viewport2 = nil ; @pearl_tool_sprite = nil
      end
    end


    # Scene quick tool
    class Scene_QuickTool < Scene_MenuBase
      def start
        super
        x, y = Graphics.width / 2 - 460 / 2,  Graphics.height / 2 - 85 / 2
        @top_text = Window_Base.new(x, y - 156, 460, 85)
        @statust = ['Ready', 0]
        refresh_top_info
        @type_select = Window_ItemSelect.new(@top_text.x, @top_text.y + 85)
        @type_select.set_handler(:weapon,     method(:refresh_tools))
        @type_select.set_handler(:armor,      method(:refresh_tools))
        @type_select.set_handler(:item,       method(:refresh_tools))
        @type_select.set_handler(:skill,      method(:refresh_tools))
        @type_select.set_handler(:cancel,     method(:refresh_cancel))
        @type_index = @type_select.index
        @items_w = Window_ActorQuickTool.new(@type_select.x, @type_select.y + 50)
        @items_w.refresh($game_player.actor, @type_select.current_symbol)
        @description = Window_Base.new(@items_w.x, @items_w.y + 148, 460, 75)
        DisplayTools.create(@description.x + 75, @description.y + 80)
        @background_sprite.color.set(16, 16, 16, 70)
      end
      
      # create slot confirm
      def create_slot_confirm
        @slot_confirm = Window_SlotConfirm.new(@items_w.x + 144, @items_w.y + 36, 
        @type_select.current_symbol)
        if @type_select.current_symbol == :item
          @slot_confirm.set_handler(:slot1,     method(:open_slots))
          @slot_confirm.set_handler(:slot2,     method(:open_slots))
        else
          @slot_confirm.set_handler(:slot1,     method(:open_slots))
          @slot_confirm.set_handler(:slot2,     method(:open_slots))
          @slot_confirm.set_handler(:slot3,     method(:open_slots))
          @slot_confirm.set_handler(:slot4,     method(:open_slots))
        end
      end
      
      # dispose slot confirm
      def dispose_slot_confirm
        return if @slot_confirm.nil?
        @slot_confirm.dispose
        @slot_confirm = nil
      end
      
      # top info
      def refresh_top_info
        @top_text.contents.clear
        @top_text.contents.font.size = 20
        @top_text.contents.fill_rect(0, 0, 58, 74, Color.new(0, 0, 0, 60))
        @top_text.draw_character(actor.character_name,actor.character_index, 26, 60)
        @top_text.draw_text(62, 0, @top_text.width, 32, actor.name + ' Equippment')
        @top_text.draw_text(62, 22, @top_text.width, 32, actor.class.name)
        @top_text.draw_text(-22, 30, @top_text.width, 32, @statust[0], 2)
        @top_text.draw_text(-22, 0,@top_text.width,32, '',2) unless
        PearlKernel::SinglePlayer
      end
      
      def refresh_tools
        enable_items
      end
      
      def refresh_cancel
        SceneManager.return
      end
      
      def enable_items
        @items_w.activate
        @items_w.select(0)
      end
      
      def refresh_description
        @description.contents.clear
        @desc_index = @items_w.index
        return if @items_w.item.nil? || @items_w.index < 0
        @description.contents.font.size = 20
        @description.draw_text_ex2(0, -4, @items_w.item.description)
      end

      def update
        super
        perform_item_ok if Input.trigger?(:C)
        perform_canceling if Input.trigger?(:B)
        if PearlKey.trigger?(Key::PlayerSelect) and !PearlKernel::SinglePlayer
          Sound.play_ok
          SceneManager.call(Scene_CharacterSet)
        end
        DisplayTools.update
        perform_refresh
      end
      
      def perform_item_ok
        return if @items_w.item.nil?
        case @type_select.current_symbol
        when :weapon
          actor.change_equip_by_id(0, @items_w.item.id)
          equip_play
        when :armor
          actor.change_equip_by_id(1, @items_w.item.id)
          equip_play
        when :item
          activate_slots
        when :skill
          activate_slots
        end
        DisplayTools.sprite.refresh_texts
      end
      
      def activate_slots
        @items_w.deactivate
        create_slot_confirm
        Sound.play_ok
      end
      
      def deactivate_slots
        @items_w.activate
        dispose_slot_confirm
      end
      
      def actor
        return $game_player.actor
      end
      
      def equip_play
        Sound.play_equip
        @statust[1] = 80
      end
      
      # open slots
      def open_slots
        if @type_select.current_symbol == :item
          case @slot_confirm.current_symbol
          when :slot1 then actor.assigned_item  = @items_w.item
          when :slot2 then actor.assigned_item2 = @items_w.item
          end
        else
          case @slot_confirm.current_symbol
          when :slot1 then actor.assigned_skill  = @items_w.item
          when :slot2 then actor.assigned_skill2 = @items_w.item
          when :slot3 then actor.assigned_skill3 = @items_w.item
          when :slot4 then actor.assigned_skill4 = @items_w.item
          end
        end
        equip_play ; deactivate_slots
        DisplayTools.sprite.refresh_texts
      end
      
      def perform_canceling
        Sound.play_cancel
        if @items_w.active
          @items_w.deactivate
          @items_w.unselect
          @type_select.activate
        else
          deactivate_slots
        end
      end
      
      def perform_refresh
        if @type_index != @type_select.index
          @type_index = @type_select.index
          @items_w.refresh($game_player.actor, @type_select.current_symbol)
          refresh_description
        end
        if @desc_index != @items_w.index
          @desc_index = @items_w.index
          refresh_description
        end
        if @statust[1] > 0 
          @statust[1] -= 1 
          if @statust[1] == 78
            @statust[0] = @items_w.item.name + ' Equipped'
            refresh_top_info
          elsif @statust[1] == 0
            @statust = ['Ready', 0]
            refresh_top_info
          end
        end
      end
      
      def terminate
        super
        @top_text.dispose
        @type_select.dispose
        @items_w.dispose
        @description.dispose
        dispose_slot_confirm
        DisplayTools.dispose
      end
    end

     

    it starts around here.

    Quick tool se3lection engine

    line : 497


  7. Hello I'm using the Peral ABS for my game, and for some reason when ever i equip weapon or amor using the quick tool, the items are duplicated.

    I'm hoping someone is willing to help me resolve this issue. Thank you in advance. 

     

    edit* When using the quick tool every time i equip a wep or arm it stays in the inventory side, so i can keep equipping new versions of that items

    so for example if i equip a short sword, a new graphic noting that i equipped it will appear on the tool bar, but the original short sword still shows up on the inventory side.

    so when i selet the short sword again from the inventory side it will let me equip the short sword again and again. 

     

    Here are the scripts that might be casing this issue.

    Custom DataManager

    Perfect Equip Refine System 

    Falcao Pearl ABS Liquid v3  

     

     


  8.  

    How To Make An Open-World RPG

    *Required items* rpg maker MV | Alpha ABS| Everything else is optional and will be linked when used in the videos

     

    THE GAME WE WILL BE MAKING

    Welcome To The Island Of Hearth

    Story

    It was 10 decades ago when the portal opened and from

    it evil so old, that only old and ancient magic

    forgotten to the world can defeat It. Many have fallen

    to this great new threat. Adventures from all over

    the world have come to hearth looking for fame and glory.

    But in the end. Only them who has protected Hearth for a

    1000 years can protect it yet again. From evil old or

    new they shall fall by their blades.

    Your family has protected all of hearth for centuries

    Now is no acceptation. Defeat the evil.

    This new evil can only be defeated with the Eye of Gore

    find and retrieve it. Then free the land once again.

    But do not fear for even if you fall, your Ancestor

    will take your place.

     

    About

    Open-world dungeon-crawling Zelda like Skyrim type RPG.

    Classes

    Noob -Starting off like everyone else

    Adventure – You’ve earned the right to venture through the dungeons.

    Warrior -You fancy a strong fighter

    ·        WarKnight – A warrior like no other in battle and war

    Magi – You dabble in the Arcane arts

    ·        WarMage – You use your learning to devastate any battlefield

    Thief – You don’t fight like the others but you get it done.

    ·        WarNinja – Using the shadows now one can see you coming in battle

     

    features

    Open-world

    Explore the exciting Island of Hearth, discover the hidden mystery of the dungeons and the ancient evil.

    Crafting

    Craft potions, armor, and weapons. The best gears can only be crafted.

    RPG Progression!

    The more you use an action the better it comes. You can train different weapon types, armor, and skills. You can also add stat points as you level up!

    Action Battle system

    No waiting for turns, plunge yourself straight into the heat of battle.

    Visible Gear

    See what your character is wearing.

    Endless loot!

    Tones of loot from weapons to potions, spells, and other valuable items.

    Mini-Games

    Enjoy many mini-games from the casino in town to the other random game across the map.

    Guilds

    Four guilds to join, and rank up in with exclusive gear and benefits for joining.

    Time Progression

    Things happen as time pass.

     

    WATCH ME MAKE THE GAME!

    • Like 2

  9. Welcome To The Island Of Hearth

    Story

    It was 10 decades ago when the portal opened and from

    it evil so old, that only old and ancient magic

    forgotten to the world can defeat It. Many have fallen

    to this great new threat. Adventures from all over

    the world have come to hearth looking for fame and glory.

    But in the end. Only them who has protected Hearth for a

    1000 years can protect it yet again. From evil old or

    new they shall fall by their blades.

    Your family has protected all of hearth for centuries

    Now is no acceptation. Defeat the evil.

    This new evil can only be defeated with the Eye of Gore

    find and retrieve it. Then free the land once again.

    But do not fear for even if you fall, your Ancestor

    will take your place.

     

    About

    Open-world dungeon-crawling Zelda like Skyrim type RPG.

    Classes

    Noob -Starting off like everyone else

    Adventure – You’ve earned the right to venture through the dungeons.

    Warrior -You fancy a strong fighter

    ·        WarKnight – A warrior like no other in battle and war

    Magi – You dabble in the Arcane arts

    ·        WarMage – You use your learning to devastate any battlefield

    Thief – You don’t fight like the others but you get it done.

    ·        WarNinja – Using the shadows now one can see you coming in battle

     

    features

    Open-world

    Explore the exciting Island of Hearth, discover the hidden mystery of the dungeons and the ancient evil.

    Crafting

    Craft potions, armor, and weapons. The best gears can only be crafted.

    RPG Progression!

    The more you use an action the better it comes. You can train different weapon types, armor, and skills. You can also add stat points as you level up!

    Action Battle system

    No waiting for turns, plunge yourself straight into the heat of battle.

    Visible Gear

    See what your character is wearing.

    Endless loot!

    Tones of loot from weapons to potions, spells, and other valuable items.

    Mini-Games

    Enjoy many mini-games from the casino in town to the other random game across the map.

    Guilds

    Four guilds to join, and rank up in with exclusive gear and benefits for joining.

    Time Progression

    Things happen as time pass.

     

     

     

    CREDITS:

    SRD Engine

    Alpha ABS

    YEP Engine

    Hime works

    Galv

    MORE TO ADD!

     

    WATCH ME MAKE THE GAME!

×
Top ArrowTop Arrow Highlighted