Per 2016, RMID pindah ke RMID Discord (Invite link dihapus untuk mencegah spambot -Theo @ 2019). Posting sudah tidak bisa dilakukan lagi.
Mohon maaf atas ketidaknyamanannya dan mohon kerjasamanya.

Share | 
 

 cara pake script skill shop

Topik sebelumnya Topik selanjutnya Go down 
cara pake script skill shop Empty2010-12-11, 13:47
Postcara pake script skill shop
#1
fahrizal2002 
Newbie
Newbie
fahrizal2002

Level 5
Posts : 47
Thanked : 0
Engine : RMVX
Skill : Beginner
Type : Event Designer

cara pake script skill shop Vide
udah seminggu ane kga ktemu2 cara pakenya... nanya orang kga ada yg jawab.... smoga aja disini ada orang yg berbaik hati mau ngasih tau cara pakenya...

Shanghai Script dari RRR
ane udah tanya2 disono kga ada yg jawab.. karena lagi sibuk kyknya..
instruksinya juga ngga jelas buat seorang newbie kya ane..
Code:
#===============================================================================
#
# Shanghai Simple Script - Skill Shop
# Last Date Updated: 2010.06.06
# Level: Normal
#
# This script lets actors buy skills from a shop and use them in battle.
#===============================================================================
# Instructions
# -----------------------------------------------------------------------------
# To install this script, open up your script editor and copy/paste this script
# to an open slot below ▼ Materials but above ▼ Main. Remember to save.
#
# <buy cost: x>
# Sets the price for how much the skill sells for.
#
# <buy class: x>
# <buy class: x, x, x>
# The classes that are allowed to buy this skill. If nothing is used, then all
# all classes are allowed to buy it.
#
# <buy actor: x>
# <buy actor: x, x, x>
# The actors that are allowed to buy this skill. No changes if nothing is used.
#
# <buy level requirement: x>
# The required level in order to buy this skill.
#
# To launch the skill shop, type something like the following in a script call
# event on the map.
#
# skills = [1, 2, 3, 4, 33..40, 41..80]
# $scene = Scene_SkillShop.new(skills)
#
# And you will automatically be taken to the skill shop screen.
#===============================================================================
 
$imported = {} if $imported == nil
$imported["SkillShop"] = true
 
module SSS
  # This is the default cost for skills.
  DEFAULT_BUY_SKILL_COST = 1000
  # This icon will appear next to the actor's name if already learned the skill.
  SKILL_LEARNED_ICON = 141
end
 
#==============================================================================
# RPG::Skill
#==============================================================================
 
class RPG::Skill < RPG::UsableItem
  #--------------------------------------------------------------------------
  # # Buy Skill Cost
  #--------------------------------------------------------------------------
  def buy_skill_cost
    return @buy_skill_cost if @buy_skill_cost != nil
    @buy_skill_cost = SSS::DEFAULT_BUY_SKILL_COST
    self.note.split(/[\r\n]+/).each { |line|
      case line
      when /<(?:BUY_COST|BUY COST):[ ](\d+)>/i
        @buy_skill_cost = $1.to_i
      end
    }
    return @buy_skill_cost
  end
  #--------------------------------------------------------------------------
  # # Buy For Class Skill
  #--------------------------------------------------------------------------
  def buy_for_class_skill
    return @buy_for_class_skill if @buy_for_class_skill != nil
    @buy_for_class_skill = []
    self.note.split(/[\r\n]+/).each { |line|
      case line
      when /<(?:BUY_CLASS|BUY CLASS):[ ](\d+(?:\s*,\s*\d+)*)>/i
        $1.scan(/\d+/).each { |num|
        @buy_for_class_skill.push(num.to_i) if num.to_i > 0 }
      end
    }
    if @buy_for_class_skill == [] and self.buy_for_actor_skill == []
      for class_id in $data_classes
        @buy_for_class_skill.push(class_id.id)
      end
    end
    return @buy_for_class_skill
  end
  #--------------------------------------------------------------------------
  # # Buy For Actor Skill
  #--------------------------------------------------------------------------
  def buy_for_actor_skill
    return @buy_for_actor_skill if @buy_for_actor_skill != nil
    @buy_for_actor_skill = []
    self.note.split(/[\r\n]+/).each { |line|
      case line
      when /<(?:BUY_ACTOR|BUY ACTOR):[ ](\d+(?:\s*,\s*\d+)*)>/i
        $1.scan(/\d+/).each { |num|
        @buy_for_actor_skill.push(num.to_i) if num.to_i > 0 }
      end
    }
    return @buy_for_actor_skill
  end
  #--------------------------------------------------------------------------
  # # Buy Skill Level Requirement
  #--------------------------------------------------------------------------
  def buy_skill_level_requirement
    return @buy_skill_level_requirement if @buy_skill_level_requirement != nil
    @buy_skill_level_requirement = 0
    self.note.split(/[\r\n]+/).each { |line|
      case line
      when /<(?:BUY LEVEL REQUIREMENT|BUY LEVEL REQUIREMENT):[ ](\d+)>/i
        @buy_skill_level_requirement = $1.to_i
      end
    }
    return @buy_skill_level_requirement
  end
end
 
#==============================================================================
# ** Window_SkillBuy
#==============================================================================
 
class Window_SkillBuy < Window_Selectable
  #--------------------------------------------------------------------------
  # * Object Initialization
  #--------------------------------------------------------------------------
  def initialize(gold_window, skill_list)
    @skill_list = skill_list
    window_y = gold_window.y + gold_window.height
    super(0, window_y, Graphics.width - 240, Graphics.height - window_y)
    refresh
    self.index = 0
  end
  #--------------------------------------------------------------------------
  # * Get Skill
  #--------------------------------------------------------------------------
  def skill
    return @data[self.index]
  end
  #--------------------------------------------------------------------------
  # * Refresh
  #--------------------------------------------------------------------------
  def refresh
    @data = []
    for skill in @skill_list
      @data.push(skill) if include?(skill)
    end
    @item_max = @data.size
    create_contents
    for i in 0...@item_max
      draw_item(i)
    end
  end
  #--------------------------------------------------------------------------
  # * Whether or not to include in skill list
  #--------------------------------------------------------------------------
  def include?(skill)
    return false if skill.nil?
    return true
  end
  #--------------------------------------------------------------------------
  # * Draw Item
  #--------------------------------------------------------------------------
  def draw_item(index)
    rect = item_rect(index)
    self.contents.clear_rect(rect)
    skill = @data[index]
    if skill != nil
      rect.width -= 4
      enabled = can_buy_skill?(skill)
      draw_item_name(skill, rect.x, rect.y, enabled)
      self.contents.draw_text(rect, skill.buy_skill_cost, 2)
    end
  end
  #--------------------------------------------------------------------------
  # * Whether or not player can buy the skill
  #--------------------------------------------------------------------------
  def can_buy_skill?(skill)
    return false if skill.nil?
    return false if skill.buy_skill_cost > $game_party.gold
    return true
  end
  #--------------------------------------------------------------------------
  # * Update Help Text
  #--------------------------------------------------------------------------
  def update_help
    @help_window.set_text(skill == nil ? "" : skill.description)
  end
end
 
#==============================================================================
# ** Window_SkillShopStatus
#==============================================================================
 
class Window_SkillShopStatus < Window_Selectable
  #--------------------------------------------------------------------------
  # * Object Initialization
  #--------------------------------------------------------------------------
  def initialize(buy_window)
    @buy_window = buy_window
    super(@buy_window.width, @buy_window.y, 240, @buy_window.height)
    self.active = false
    self.index = -1
    refresh
  end
  #--------------------------------------------------------------------------
  # * Get Actor
  #--------------------------------------------------------------------------
  def actor
    return @data[self.index]
  end
  #--------------------------------------------------------------------------
  # * Refresh
  #--------------------------------------------------------------------------
  def refresh
    @skill = @buy_window.skill
    @data = $game_party.members
    @item_max = @data.size
    create_contents
    for i in 0...@item_max
      draw_item(i)
    end
  end
  #--------------------------------------------------------------------------
  # * Get rectangle for displaying items
  #--------------------------------------------------------------------------
  def item_rect(index)
    rect = Rect.new(0, 0, 0, 0)
    rect.width = (contents.width + @spacing) / @column_max - @spacing
    rect.height = (contents.height / [@item_max, 1].max)
    rect.x = index % @column_max * (rect.width + @spacing)
    rect.y = index / @column_max * rect.height
    return rect
  end
  #--------------------------------------------------------------------------
  # * Draw Item
  #--------------------------------------------------------------------------
  def draw_item(index)
    rect = item_rect(index)
    self.contents.clear_rect(rect)
    actor = @data[index]
    if actor != nil
      rect.width -= 4
      enabled = can_learn_skill?(actor, @skill)
      self.contents.font.color.alpha = enabled ? 255 : 128
      face_width = [92, rect.height-4].min
      draw_actor_face(actor, rect.x+2, rect.y+2, face_width)
      if actor.skill_learn?(@skill)
        draw_icon(SSS::SKILL_LEARNED_ICON, rect.x+4+face_width, rect.y+2)
        face_width += 24
      end
      self.contents.draw_text(rect.x+4+face_width, rect.y+2, 108, 24, actor.name)
      return if WLH*2 + rect.y+2 > rect.height + rect.y
      level = sprintf("%s %d", Vocab.level, actor.level)
      rect.y += WLH
      if actor.skill_learn?(@skill)
        draw_icon(@skill.icon_index, rect.x+4+face_width-24, rect.y+2)
      end
      self.contents.draw_text(rect.x+4+face_width, rect.y+2, 108, 24, level)
    end
  end
  #--------------------------------------------------------------------------
  # * Can the actor learn the skill?
  #--------------------------------------------------------------------------
  def can_learn_skill?(actor, skill)
    return false if skill.nil?
    return false if actor.skill_learn?(skill)
    return false if skill.buy_skill_level_requirement > actor.level
    return true if skill.buy_for_actor_skill.include?(actor.id)
    return true if skill.buy_for_class_skill.include?(actor.class.id)
    return false
  end
end
 
#==============================================================================
# ** Scene_SkillShop
#==============================================================================
 
class Scene_SkillShop < Scene_Base
  #--------------------------------------------------------------------------
  # * Object Initialization
  #--------------------------------------------------------------------------
  def initialize(skill_list = [])
    id_list = []
    for skill_id in skill_list
      case skill_id
      when Integer
        id_list.push(skill_id)
      when Range
        id_list |= skill_id.to_a
      end
    end
    @skill_list = []
    for skill_id in id_list
      @skill_list.push($data_skills[skill_id])
    end
  end
  #--------------------------------------------------------------------------
  # * Start processing
  #--------------------------------------------------------------------------
  def start
    super
    create_menu_background
    @help_window = Window_Help.new
    @gold_window = Window_Gold.new(Graphics.width - 160, @help_window.height)
    create_command_window
    @buy_window = Window_SkillBuy.new(@gold_window, @skill_list)
    @buy_window.y = @gold_window.y + @gold_window.height
    @buy_window.help_window = @help_window
    @buy_window.active = false
    @status_window = Window_SkillShopStatus.new(@buy_window)
  end
  #--------------------------------------------------------------------------
  # * Termination Processing
  #--------------------------------------------------------------------------
  def terminate
    super
    dispose_menu_background
    @command_window.dispose
    @help_window.dispose
    @gold_window.dispose
    @buy_window.dispose
    @status_window.dispose
  end
  #--------------------------------------------------------------------------
  # * Create Command Window
  #--------------------------------------------------------------------------
  def create_command_window
    s1 = Vocab::ShopBuy
    s2 = Vocab::ShopCancel
    @command_window = Window_Command.new(Graphics.width - 160, [s1, s2], 2)
    @command_window.y = @gold_window.y
  end
  #--------------------------------------------------------------------------
  # * Frame Update
  #--------------------------------------------------------------------------
  def update
    super
    update_menu_background
    @help_window.update
    @gold_window.update
    if @command_window.active
      update_command_selection
    elsif @buy_window.active
      update_buy_selection
    elsif @status_window.active
      update_status_selection
    end
  end
  #--------------------------------------------------------------------------
  # * Update Command Selection
  #--------------------------------------------------------------------------
  def update_command_selection
    @command_window.update
    if Input.trigger?(Input::B)
      Sound.play_cancel
      $scene = Scene_Map.new
    elsif Input.trigger?(Input::C)
      case @command_window.index
      when 0  # buy
        Sound.play_decision
        @command_window.active = false
        @buy_window.active = true
      when 1  # quit
        Sound.play_decision
        $scene = Scene_Map.new
      end
    end
  end
  #--------------------------------------------------------------------------
  # * Update Buy Item Selection
  #--------------------------------------------------------------------------
  def update_buy_selection
    @buy_window.update
    if @last_buy_index != @buy_window.index
      @last_buy_index = @buy_window.index
      @status_window.refresh
    end
    if Input.trigger?(Input::B)
      Sound.play_cancel
      @command_window.active = true
      @buy_window.active = false
      @last_buy_index = -1
    elsif Input.trigger?(Input::C)
      if @buy_window.can_buy_skill?(@buy_window.skill)
        Sound.play_decision
        @status_window.index = 0
        @status_window.active = true
        @buy_window.active = false
      else
        Sound.play_buzzer
      end
    end
  end
  #--------------------------------------------------------------------------
  # * Update Status Selection
  #--------------------------------------------------------------------------
  def update_status_selection
    @status_window.update
    if Input.trigger?(Input::B)
      Sound.play_cancel
      @status_window.index = -1
      @status_window.active = false
      @buy_window.active = true
    elsif Input.trigger?(Input::C)
      if @status_window.can_learn_skill?(@status_window.actor, @buy_window.skill)
        Sound.play_shop
        @status_window.actor.learn_skill(@buy_window.skill.id)
        $game_party.lose_gold(@buy_window.skill.buy_skill_cost)
        @gold_window.refresh
        @buy_window.refresh
        @status_window.refresh
      else
        Sound.play_buzzer
      end
    end
  end
end
 
#===============================================================================
#
# END OF FILE
#
#===============================================================================
cara pake script skill shop Empty2010-12-21, 17:57
PostRe: cara pake script skill shop
#2
jhontitor 
Novice
Novice
jhontitor

Level 5
Posts : 279
Thanked : 4
Engine : RMVX
Skill : Beginner
Type : Mapper
Awards:
cara pake script skill shop Vide
setelah coba" main logika eh, tw jga pke nya.
tuh cranya kurang lbih sma kyk script ane :D

kk arus set skill mna yg mw dimasukkin(Id skillnya)
clo krang jls ntar aq upload in

cara pake script skill shop Empty2010-12-22, 09:04
PostRe: cara pake script skill shop
#3
F# 
!= Admin
Stupid Moderator
!= AdminStupid Moderator
F#

Kosong
Posts : 396
Thanked : 11
Engine : Multi-Engine User
Skill : Very Beginner
Type : Writer

cara pake script skill shop Vide
hmm...saia lom cobain
nda ada rpg maker di compie saia ayng skarang :(
lagian kalod i cobain pun saya belum tentu mengerti =))

script skill shop itu bukan nya ada berbagai versi kenapa tidak cari aygn lain saja ?
atau cobi request kepada maser master scripter disini XD
cara pake script skill shop Empty
PostRe: cara pake script skill shop
#4
Sponsored content 




cara pake script skill shop Vide
 

cara pake script skill shop

Topik sebelumnya Topik selanjutnya Kembali Ke Atas 

Similar topics

+
Halaman 1 dari 1

Permissions in this forum:Anda tidak dapat menjawab topik
RPGMakerID :: Scripts & Event Systems :: RMVX Scripts :: RGSS2 Support-