RMRK is retiring.
Registration is disabled. The site will remain online, but eventually become a read-only archive. More information.

RMRK.net has nothing to do with Blockchains, Cryptocurrency or NFTs. We have been around since the early 2000s, but there is a new group using the RMRK name that deals with those things. We have nothing to do with them.
NFTs are a scam, and if somebody is trying to persuade you to buy or invest in crypto/blockchain/NFT content, please turn them down and save your money. See this video for more information.
Does anyone have Shanghai Weapon Attack Replace Script?

0 Members and 1 Guest are viewing this topic.

**
Rep: +0/-0Level 62
Somewhat new to VX.
I've been looking around for this script, as I need this I think to make my Whip's normal attack, attack all enemies and such.
The only links i've found for Shanghai's Weapon Attack Replace script is pocket house or whatever and it's down or something.
I also have many YERD Scripts, which I'm hoping is compatible with this script (If I even get it)

I didn't really know how to word the topic, but if there is anyway to make a specific weapon's normal attack use a skill such as "attack all" in any possible way with or without this script, I would greatly appreciate it.

Thank you.
"Kindness won't go unrewarded. Good things come to generous people."
"If pro is the opposite of con, what is the opposite of progress?"

*****
my name is Timothy what's yours
Rep:
Level 79
Hello
2014 Best IRC Quote2014 Zero to Hero2014 Most Missed Member2012 Zero To HeroSecret Santa 2012 ParticipantContestant - GIAW 9For frequently finding and reporting spam and spam bots2011 Zero to Hero
http://pastebin.com/wLakWyUt
I'm not sure if it is YERD compatible, it should be though. If it's not I might be able to look into it for you.
it's like a metaphor or something i don't know

**
Rep: +0/-0Level 62
Somewhat new to VX.
Wow you sure did reply quick, thanks for the script.
I've been testing it out for about 2 hours and for some odd reason, it didn't work on my game.
I assumed this was because of YERD scripts, so I placed it with only YERD scripts and it worked.

This confused me so I tried each individual script I had to narrow it down.
Guess what the problem is?
Shanghai's script clashes with a Skill shop script.. makes no sense.
With both of these scripts, it basically skips the actor's turn if you hit click attack.

Here is the Skill shop script, do you have any idea how I could keep both working in the same game?
If not, I suppose I'll just scrap the skill shop.

Thanks again for the shanghai script!


Code: [Select]
#==============================================================================
# Skill Shop for RMVX Ver 3.0
#==============================================================================
# By Nechigawara Sanzenin
# WARNING!! : This script can use on RPG Maker VX Only!! (XP Not Support)
#==============================================================================
# Buy Skill Option For RMVX
#==============================================================================
#Version Log
#==============================================================================
#2.0 Add Level requirement - Change Hero Select Window
#3.0 Change How to set Price , Add wait Level Up option
#==============================================================================
=begin

How to Use:

You will add "$skill_shop =[Id of Skill]" 
To Call Script to set id of skill for sell.
You will add "$scene = Scene_Skill_Shop.new" 
To Call Skill Shop Windows.

Example:
$skill_shop = [1,2,3,6,7]
$scene = Scene_Skill_Shop.new

You can turn on/off option under "# Setting".
You can set text to use in Skill Shop under "# Learn Text".
You can add "\p[Price]" for set Skill Price at Note in Skill Database.
You can set Skill that the fighter each person can learn under "# Hero Data".

You will setting look like this in Hero Data
[ID of skill, Level requirement for learn]

Example : if you want actor id 1 can learn skill id 1 at Lv 4
and can learn skill id 2 at lv 3. You will setting look like this

1 => [ #Id of Actor
 
  [1,4],[2,3],
 
  ],

=end
#==============================================================================
#module SKILL_SHOP
#==============================================================================
module SKILL_SHOP
  # Setting
  Wait_Lv_Up = true # Wait 1 Lv up for use skill from buy
  Show_cha = false # Show Charactor Graphic in Select Window
  # Learn Text
  How_Learn = "What 's hero can learn?"
  Can_Learn = "Can Learn"
  Can_Learn_Lv = "On Lv"
  Cant_Learn = "Can't Learn"
  Learnt = "Learnt"
  Teach = "Teach"
  Cancel = "Cancel"
  Next_Lv = "Next Lv"
  Can_use = "%s can use now!"
  # Price Data For Non Set
  PRICE = 100
  # Hero Data
  SKILL_BUY = {
  # Add what skill can hero buy Here
  # [ID of skill,Level]
 
  1 => [ #Id of Actor
 
  [38,4],[59,10],[3,1],
 
  ],
 
  2 => [ #Id of Actor
 
  [1,4],[2,3],[3,1],
 
  ],
 
  # End
  }
  # Add Price
  def self.skill_price(id)
    text = $data_skills[id].note
    if (/\A\\[Pp]\[([0-9]+)\]/.match(text)) != nil then
      price = $1.to_i
    else
      price = PRICE
    end
    return price
  end
  # Add Hero id
  def self.skill_buy(id)
    if SKILL_BUY.include?(id)
      return SKILL_BUY[id]
    else
      return []
    end
  end
end
#==============================================================================
#class Game_Actor
#==============================================================================
class Game_Actor < Game_Battler
  #--------------------------------------------------------------------------
  def setup(actor_id)
    actor = $data_actors[actor_id]
    @actor_id = actor_id
    @name = actor.name
    @character_name = actor.character_name
    @character_index = actor.character_index
    @face_name = actor.face_name
    @face_index = actor.face_index
    @class_id = actor.class_id
    @weapon_id = actor.weapon_id
    @armor1_id = actor.armor1_id
    @armor2_id = actor.armor2_id
    @armor3_id = actor.armor3_id
    @armor4_id = actor.armor4_id
    @level = actor.initial_level
    @exp_list = Array.new(101)
    make_exp_list
    @exp = @exp_list[@level]
    @skills = []
    @le_skills = []
    @le = []
    for i in self.class.learnings
      learn_skill(i.skill_id) if i.level <= @level
    end
    clear_extra_values
    recover_all
  end
  #--------------------------------------------------------------------------
  def le_skills
    result = []
    for i in @le_skills
      result.push($data_skills[i])
    end
    return result
  end
  #--------------------------------------------------------------------------
  def learn_le_skill(skill_id)
    unless skill_learn?($data_skills[skill_id])
      @le_skills.push(skill_id)
      @le_skills.sort!
    end
  end
  #--------------------------------------------------------------------------
  def forget_skill(skill_id)
    @skills.delete(skill_id)
    @le_skills.delete(skill_id)
  end
  #--------------------------------------------------------------------------
  def skill_learn?(skill)
    if @skills.include?(skill.id)
      return true
    elsif @le_skills.include?(skill.id)
      return true
    else
      return false
    end
  end
  #--------------------------------------------------------------------------
  def le_learn_skill(skill_id)
    unless @skills.include?(skill_id)
      @skills.push(skill_id)
      @skills.sort!
    end
  end
  #--------------------------------------------------------------------------
  def skill_can_use?(skill)
    return false if @le_skills.include?(skill.id)
    return false unless skill_learn?(skill)
    return super
  end
  #--------------------------------------------------------------------------
  def learn?(skill)
    learn = skill_learn?(skill)
    if learn == true
      return false
    else
      return true
    end
  end
  #--------------------------------------------------------------------------
  def le_skill?(skill)
    return @le_skills.include?(skill.id)
  end
  #--------------------------------------------------------------------------
  def display_level_up(new_skills)
    $game_message.new_page
    text = sprintf(Vocab::LevelUp, @name, Vocab::level, @level)
    $game_message.texts.push(text)
    for skill in new_skills
      unless @le.include?(skill.id)
        text = sprintf(Vocab::ObtainSkill, skill.name)
        $game_message.texts.push(text)
      end
    end
    for i in 0...@le.size
      id = @le[i]
      name = $data_skills[id].name
      text = sprintf(SKILL_SHOP::Can_use, name)
      $game_message.texts.push(text)
    end
    @le = []
  end
  #--------------------------------------------------------------------------
  alias inc_level_up level_up
  def level_up
    inc_level_up
    @le = []
    for i in 0...@le_skills.size
      id = @le_skills[i]
      le_learn_skill(id)
      @le.push(id)
    end
    @le_skills = []
  end
end
#==============================================================================
#class Window_Skill_ShopBuy
#==============================================================================
class Window_Skill < Window_Selectable
  #--------------------------------------------------------------------------
  def refresh
    @data = []
    for skill in @actor.skills
      @data.push(skill)
      if skill.id == @actor.last_skill_id
        self.index = @data.size - 1
      end
    end
    for skill in @actor.le_skills
      @data.push(skill)
    end
    @item_max = @data.size
    create_contents
    for i in 0...@item_max
      draw_item(i)
    end
  end
  #--------------------------------------------------------------------------
  def draw_item(index)
    rect = item_rect(index)
    self.contents.clear_rect(rect)
    skill = @data[index]
    if skill != nil
      rect.width -= 4
      enabled = @actor.skill_can_use?(skill)
      draw_item_name(skill, rect.x, rect.y, enabled)
      if @actor.le_skill?(skill)
        text = SKILL_SHOP::Next_Lv
      else
        text = @actor.calc_mp_cost(skill)
      end
      self.contents.draw_text(rect, text, 2)
    end
  end
end
#==============================================================================
#class Window_Skill_ShopBuy
#==============================================================================
class Window_Skill_ShopBuy < Window_Selectable
  #--------------------------------------------------------------------------
  def initialize(x, y)
    super(x, y, 304, 304)
    @skill_shop_goods = $skill_shop
    refresh
    self.index = 0
  end
  #--------------------------------------------------------------------------
  def skill
    return @data[self.index]
  end
  #--------------------------------------------------------------------------
  def refresh
    @data = []
    for i in 0...@skill_shop_goods.size
      skill = $data_skills[@skill_shop_goods[i]]
      if skill != nil
        @data.push(skill)
      end
    end
    @item_max = @data.size
    create_contents
    for i in 0...@item_max
      draw_item(i)
    end
  end
  #--------------------------------------------------------------------------
  def draw_item(index)
    skill = @data[index]
    price = SKILL_SHOP.skill_price(skill.id)
    enabled = (price <= $game_party.gold)
    rect = item_rect(index)
    self.contents.clear_rect(rect)
    draw_item_name(skill, rect.x, rect.y, enabled)
    rect.width -= 4
    self.contents.draw_text(rect, price, 2)
  end
  #--------------------------------------------------------------------------
  def update_help
    @help_window.set_text(skill == nil ? "" : skill.description)
  end
end
#==============================================================================
#class Window_Skill_ShopStatus
#==============================================================================
class Window_Skill_ShopStatus < Window_Selectable
  #--------------------------------------------------------------------------
  def initialize(x, y)
    super(x, y, 240, 304)
    @item = nil
    refresh
    self.active = false
    self.index = -1
  end
  #--------------------------------------------------------------------------
  def refresh
    self.contents.clear
    @item_max = $game_party.members.size
    if @item != nil
      self.contents.font.color = system_color
      self.contents.draw_text(4, 0, 200, WLH, SKILL_SHOP::How_Learn)
      for actor in $game_party.members
        x = 4
        y = WLH * (2 + actor.index * 2)
        draw_actor_can_learn(actor, x, y)
      end
    end
  end
  #--------------------------------------------------------------------------
  def draw_actor_can_learn(actor, x, y)
    can = false
    lv = false
    ac_lv = 0
    can_learn = SKILL_SHOP.skill_buy(actor.id)
    id = @item.id
    for i in 0...can_learn.size
      if can_learn[i][0] == id
        can = true
        if can_learn[i][1] <= actor.level
          lv = true
        else
          lv = false
          ac_lv = can_learn[i][1]
        end
        break
      else
        can = false
      end
    end
    enabled = (can and lv and actor.learn?(@item))
    self.contents.font.color = normal_color
    self.contents.font.color.alpha = enabled ? 255 : 128
    if SKILL_SHOP::Show_cha
      name = actor.character_name
      index = actor.character_index
      size = contents.text_size(actor.name).width
      draw_character(name, index, x + 20 + size , y + 30)
    end
    self.contents.draw_text(x, y, 200, WLH, actor.name)
    if can == false
      text = SKILL_SHOP::Cant_Learn
    elsif can == true and lv == false
      ac = ac_lv.to_s
      text = SKILL_SHOP::Can_Learn_Lv + " " + ac + "+"
    elsif actor.learn?(@item) == false
      text = SKILL_SHOP::Learnt
    else
      text = SKILL_SHOP::Can_Learn
    end
    self.contents.draw_text(x, y, 200, WLH, text, 2)
  end
  #--------------------------------------------------------------------------
  def item=(item)
    if @item != item
      @item = item
      refresh
    end
  end
  #--------------------------------------------------------------------------
  def update_cursor
    if @index < 0
      self.cursor_rect.empty
    elsif @index < @item_max
      y = WLH * (2 + @index * 2)
      unless SKILL_SHOP::Show_cha
        self.cursor_rect.set(0, y , contents.width, WLH)
      else
        self.cursor_rect.set(0, y - 4, contents.width,34)
      end
    end
  end
end
#==============================================================================
#class Scene_Skill_Shop
#==============================================================================
class Scene_Skill_Shop < Scene_Base
  #--------------------------------------------------------------------------
  def start
    super
    create_menu_background
    create_command_window
    @viewport = Viewport.new(0, 0, 544, 416)
    @help_window = Window_Help.new
    @gold_window = Window_Gold.new(384, 56)
    @dummy_window = Window_Base.new(0, 112, 544, 304)
    @buy_window = Window_Skill_ShopBuy.new(0, 112)
    @buy_window.active = false
    @buy_window.visible = false
    @buy_window.help_window = @help_window
    @status_window = Window_Skill_ShopStatus.new(304, 112)
    @status_window.visible = false
    @status_window.active = false
  end
  #--------------------------------------------------------------------------
  def terminate
    super
    dispose_menu_background
    dispose_command_window
    @help_window.dispose
    @gold_window.dispose
    @dummy_window.dispose
    @buy_window.dispose
    @status_window.dispose
  end 
  #--------------------------------------------------------------------------
  def update
    super
    update_menu_background
    @help_window.update
    @command_window.update
    @gold_window.update
    @dummy_window.update
    @buy_window.update
    @status_window.update
    if @command_window.active
      update_command_selection
    elsif @buy_window.active
      update_buy_selection
    elsif @status_window.active
      update_target_selection
    end
  end
  #--------------------------------------------------------------------------
  def create_command_window
    s1 = SKILL_SHOP::Teach
    s2 = SKILL_SHOP::Cancel
    @command_window = Window_Command.new(384, [s1, s2], 2)
    @command_window.y = 56
  end
  #--------------------------------------------------------------------------
  def dispose_command_window
    @command_window.dispose
  end
  #--------------------------------------------------------------------------
  def update_command_selection
    @help_window.set_text("")
    if Input.trigger?(Input::B)
      Sound.play_cancel
      $scene = Scene_Map.new
    elsif Input.trigger?(Input::C)
      case @command_window.index
      when 0
        Sound.play_decision
        @command_window.active = false
        @dummy_window.visible = false
        @buy_window.active = true
        @buy_window.visible = true
        @buy_window.refresh
        @status_window.visible = true
      when 1
        Sound.play_decision
        $scene = Scene_Map.new
      end
    end
  end
  #--------------------------------------------------------------------------
  def update_buy_selection
    @status_window.item = @buy_window.skill
    if Input.trigger?(Input::B)
      Sound.play_cancel
      @command_window.active = true
      @dummy_window.visible = true
      @buy_window.active = false
      @buy_window.visible = false
      @status_window.visible = false
      @status_window.item = nil
      return
    end
    if Input.trigger?(Input::C)
      @item = @buy_window.skill
      @price = SKILL_SHOP.skill_price(@item.id)
      enabled = (@price <= $game_party.gold)
      if not enabled
        Sound.play_buzzer
      else
        Sound.play_decision
        show_target_window
      end
    end
  end
  #--------------------------------------------------------------------------
  def update_target_selection
    if Input.trigger?(Input::B)
      Sound.play_cancel
      hide_target_window
    elsif Input.trigger?(Input::C)
      @actor = $game_party.members[@status_window.index]
      can = false
      lv = false
      can_learn = SKILL_SHOP.skill_buy(@actor.id)
      id = @item.id
      for i in 0...can_learn.size
        if can_learn[i][0] == id
          can = true
          if can_learn[i][1] <= @actor.level
            lv = true
          else
            lv = false
          end
          break
        else
          can = false
        end
      end
      enabled = (can and lv and @actor.learn?(@item))
      if not enabled
        Sound.play_buzzer
      else
        learn_target(@item.id)
      end
    end
  end
  #--------------------------------------------------------------------------
  def learn_target(skill_id)
    Sound.play_shop
    unless SKILL_SHOP::Wait_Lv_Up
      @actor.learn_skill(skill_id)
    else
      @actor.learn_le_skill(skill_id)
    end
    $game_party.lose_gold(@price)
    @buy_window.refresh
    @gold_window.refresh
    @status_window.refresh
    hide_target_window
  end
  #--------------------------------------------------------------------------
  def show_target_window
    @buy_window.active = false
    @status_window.active = true
    @status_window.index = 0
  end
  #--------------------------------------------------------------------------
  def hide_target_window
    @buy_window.active = true
    @status_window.active = false
    @status_window.index =- 1
  end
end




"Kindness won't go unrewarded. Good things come to generous people."
"If pro is the opposite of con, what is the opposite of progress?"

*****
my name is Timothy what's yours
Rep:
Level 79
Hello
2014 Best IRC Quote2014 Zero to Hero2014 Most Missed Member2012 Zero To HeroSecret Santa 2012 ParticipantContestant - GIAW 9For frequently finding and reporting spam and spam bots2011 Zero to Hero
I can't seem to recreate that error... try swapping the positions of the scripts, and if that doesn't work upload a project with the error created so I can fix it for you.
it's like a metaphor or something i don't know

**
Rep: +0/-0Level 62
Somewhat new to VX.
I tried moving them like you said, but it did nothing.
So... here's a little demo.
http://www.mediafire.com/?gy4lgmf839jb7sf

If you try to attack, it will skip your turn.
If you delete skill shop script, it works.

Thanks Pacman.  :)
"Kindness won't go unrewarded. Good things come to generous people."
"If pro is the opposite of con, what is the opposite of progress?"

*****
my name is Timothy what's yours
Rep:
Level 79
Hello
2014 Best IRC Quote2014 Zero to Hero2014 Most Missed Member2012 Zero To HeroSecret Santa 2012 ParticipantContestant - GIAW 9For frequently finding and reporting spam and spam bots2011 Zero to Hero
Urgh... Tankentai... If there's any mess of code that I don't want to look through, it's Tankentai.
It seems that the incompatibility is only there if Tankentai is. I can't really help you in that.
it's like a metaphor or something i don't know

**
Rep: +0/-0Level 62
Somewhat new to VX.
Oh well.. Thanks for the script though, i'll just forget about skill shops for now.
"Kindness won't go unrewarded. Good things come to generous people."
"If pro is the opposite of con, what is the opposite of progress?"