查看: 2509|回复: 7

[已经解决] 解决】怎么获得一个道具的价格?

[复制链接]
梦石
0
星屑
90
在线时间
69 小时
注册时间
2016-4-12
回帖
31
发表于 2017-4-13 21:18:33 | 显示全部楼层 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有账号?注册会员

×
本帖最后由 neko001 于 2017-4-14 19:03 编辑

怎么获得一个道具的价格?
我x想要玩家给NPC一个东西,NPC给玩家一些钱。
不限制交付的种类....需要一个一个设置吗?可不可以使用变量
变量1 = 物品 ID1 的价格
梦石
10
星屑
7625
在线时间
684 小时
注册时间
2017-1-9
回帖
596

我没有哭开拓者

发表于 2017-4-13 21:35:06 | 显示全部楼层
你是说出售物品?道具不是能够设置价格的么?
这个B天天摸鱼,快点来个谁把他从被窝里拖出来
回复

使用道具 举报

梦石
0
星屑
480
在线时间
97 小时
注册时间
2016-4-5
回帖
92
发表于 2017-4-13 22:00:00 | 显示全部楼层
本帖最后由 52129848 于 2017-4-13 22:21 编辑

[pre lang="ruby"]=begin
===============================================================================
  变量商店 By喵呜喵5
===============================================================================

【说明】

  可以使用变量在商店进行购物

  首先先在事件中使用脚本命令输入

    m5_20160528_shop(变量的ID,"变量的名称")

  例如:m5_20160528_shop(1,"节操")

  若事件指令中下一条指令为商店处理,则进入商店时购买物品消耗的是对应的变量

=end
$m5script ||= {}; $m5script[:M5VS20160528] = 20160528
module M5VS20160528
#==============================================================================
#  设定部分
#==============================================================================

  EQUAL = false

  # 设置为 true 时,变量商店物品的出售价格为【数据库中】物品售价的一半
  # 设置为 false 时,变量商店物品的出售价格为【该商店】物品售价的一半
  # (一般来说,个人建议将变量商店请设置为只允许购买)

#==============================================================================
#  设定结束
#==============================================================================
  def self.init; set(0, nil); end
  def self.gold; @data[0]; end
  def self.unit; @data[1]; end
  def self.set(gold, unit); @data = [gold, unit]; end
  def self.work(&block)
    origin_gold = $game_party.gold
    $game_party.m5_20160528_set_gold($game_variables[gold]) if unit
    block.call
    return unless unit
    $game_variables[gold] = $game_party.gold
    $game_party.m5_20160528_set_gold(origin_gold)
  end
end
M5VS20160528.init
class Game_Interpreter
  def m5_20160528_shop(gold, unit)
    return unless next_event_code == 302
    M5VS20160528.set(gold, unit)
    @index += 1
    execute_command
    M5VS20160528.init
  end
end
class Window_Gold
  alias m5_20160528_value value
  def value
    M5VS20160528.unit ? $game_variables[M5VS20160528.gold] : m5_20160528_value
  end
  alias m5_20160528_unit currency_unit
  def currency_unit; M5VS20160528.unit || m5_20160528_unit; end
end
class Game_Party; def m5_20160528_set_gold(gold); @gold = gold; end; end
class Scene_Shop
  alias m5_20140318_do_buy do_buy
  def do_buy(number); M5VS20160528.work{ m5_20140318_do_buy(number) }; end
  alias m5_20140318_do_sell do_sell
  def do_sell(number); M5VS20160528.work{ m5_20140318_do_sell(number) }; end
  alias m5_20140318_selling_price selling_price
  def selling_price
    return m5_20140318_selling_price unless M5VS20160528.unit
    return m5_20140318_selling_price if M5VS20160528::EQUAL
    p = buying_price || 0
    p / 2
  end
end[/pre][pre lang="ruby"]=begin
===============================================================================
  高价回收物品的商店 By喵呜喵5
===============================================================================

【说明】

  指定的开关打开时,事件指令中的商店处理会进入特定的物品回收商店

  在物品回收商店中无法购买物品,只能贩卖物品

  物品的售价则为商店处理中设置的物品价格(而非数据库中设置的价格)

=end
$m5script ||= {}
$m5script[:M5SS20151022] = 20151022
module M5SS20151022
#==============================================================================
# 设定部分
#==============================================================================

  SWI = 1

  #这里设置一个开关ID,当开关打开时使用商店处理将进入物品回收商店

  SHOW1 = true    # true / false

  #设置为true时,在物品回收商店也能以正常价格(原价除2)贩卖没有设置价格的物品

  SHOW2 = false    # true / false

  #设置为true时,在物品回收商店中也会显示玩家不拥有但有设置价格的物品

#==============================================================================
# 设定结束
#==============================================================================
class Sell < Window_ShopSell
  attr_writer :shop_goods
  def initialize *args
    super *args
    @shop_goods = []
  end
  def make_item_list
    @data = []
    @price = {}
    @shop_goods.each do |goods|
      item = ( case goods[0]
               when 0 then $data_items
               when 1 then $data_weapons
               when 2 then $data_armors
               end )[ goods[1] ]
      if item
        next unless include?(item)
        @data << item
        @price[item] = goods[2] == 0 ? item.price : goods[3]
      end
    end
    if SHOW1
      @data += $game_party.all_items.select {|item| include?(item)}
      @data.uniq!
    end
    @data = @data.select{|item| $game_party.has_item?(item)} unless SHOW2
    @data.push(nil) if include?(nil)
  end
  def enable?(item)
    item && (@price[item] ? @price[item] > 0 : item.price > 0) && $game_party.has_item?(item)
  end
end
class Command < Window_ShopCommand
  def col_max; @list.size; end
  def make_command_list
    super
    @list.delete_if { |command| command[:symbol] == :buy }
  end
end
Scene_Clone = Scene_Shop.clone
class Scene_Clone
  Window_ShopCommand = M5SS20151022::Command
  Window_ShopSell = M5SS20151022::Sell
end
class Scene < Scene_Clone
  def create_sell_window
    super
    @sell_window.shop_goods = @goods
  end
  def selling_price; buying_price || super; end
end

end # module M5SS20151022

class Game_Interpreter
  alias m5_20140320_command_302 command_302
  def command_302
    temp_scene = Scene_Shop
    if $game_switches[M5SS20151022::SWI]
      Object.const_set(:Scene_Shop, M5SS20151022::Scene)
      ( @params = @params.clone )[4] = false
    end
    m5_20140320_command_302
    Object.const_set(:Scene_Shop, temp_scene)
  end
end
[/pre]
     是不是你想要的?
回复 1 0

使用道具 举报

梦石
0
星屑
6375
在线时间
1473 小时
注册时间
2015-7-25
回帖
609

极短25参与开拓者

发表于 2017-4-13 22:02:40 | 显示全部楼层
本帖最后由 魔法丶小肉包 于 2017-4-13 22:25 编辑

考虑到不知道玩家会交付哪件道具给NPC,所以楼主可以这样↓(提供思路而已)
QQ图片20170413221918.png
在事件页里如上图设置,便会自动获取玩家选择的物品的数据库中所设置的价格,
在玩家选择之后,便会自动获得金钱并扣除此物品1个
QQ图片20170413222011.png
QQ图片20170413222023.png

点评

。。。我什么都没有改,这段代码确实是可以塞的进去的  发表于 2017-4-14 11:28
回點評樓上... 中文版是有人發布漢化版的 實際上你要中文 要簡體 還有那麼長的腳本框 都可以在腳本裡面或者用EXESCOPE這套軟體去修改RPG MAKER本體  发表于 2017-4-14 01:49
可以问个无关问题么……是怎么做的又是中文版又有那么长脚本框的……  发表于 2017-4-13 23:59
笨肉包的游戏讨论群932812135 (实时更新) 喜欢的话欢迎加入~
目前的坑
??? #像素风OC游戏 准备中 短篇-约5小时
花城梦之心 #像素风OC游戏 系统开发+素材绘制中
【不可思议的迷宫】幽灵契约外传:歌莉娅 v0.4 游戏文件已更新
同时更新中~ (沉迷摸鱼中~更新速度较慢请见谅w)
这是属于笨肉包一个人的旅行~(这只肉包又在摸鱼!
旅途的最终目标~ ???(保密~
回复

使用道具 举报

梦石
1
星屑
24088
在线时间
3339 小时
注册时间
2011-7-8
回帖
3862

开拓者

发表于 2017-4-13 23:41:03 | 显示全部楼层
本帖最后由 guoxiaomi 于 2017-4-13 23:45 编辑

——什么也没有——
熟悉rgss和ruby,xp区版主~
正在填坑:《膜拜组传奇》讲述膜拜组和学霸们的故事。
已上steam:与TXBD合作的Reformers《变革者》
* 战斗调用公共事件 *
* RGSOS 网络脚本 *
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部