设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 2187|回复: 7
打印 上一主题 下一主题

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

[复制链接]

Lv1.梦旅人

梦石
0
星屑
90
在线时间
69 小时
注册时间
2016-4-12
帖子
50
跳转到指定楼层
1
发表于 2017-4-13 21:18:33 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

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

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

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

怎么获得一个道具的价格?
我x想要玩家给NPC一个东西,NPC给玩家一些钱。
不限制交付的种类....需要一个一个设置吗?可不可以使用变量
变量1 = 物品 ID1 的价格

Lv4.逐梦者

梦石
10
星屑
7697
在线时间
690 小时
注册时间
2017-1-9
帖子
636

我没有哭开拓者

2
发表于 2017-4-13 21:35:06 | 只看该作者
你是说出售物品?道具不是能够设置价格的么?
这个B天天摸鱼,快点来个谁把他从被窝里拖出来
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
480
在线时间
97 小时
注册时间
2016-4-5
帖子
123
3
发表于 2017-4-13 22:00:00 | 只看该作者
本帖最后由 52129848 于 2017-4-13 22:21 编辑

RUBY 代码复制
  1. =begin
  2. ===============================================================================
  3.   变量商店 By喵呜喵5
  4. ===============================================================================
  5.  
  6. 【说明】
  7.  
  8.   可以使用变量在商店进行购物
  9.  
  10.   首先先在事件中使用脚本命令输入
  11.  
  12.     m5_20160528_shop(变量的ID,"变量的名称")
  13.  
  14.   例如:m5_20160528_shop(1,"节操")
  15.  
  16.   若事件指令中下一条指令为商店处理,则进入商店时购买物品消耗的是对应的变量
  17.  
  18. =end
  19. $m5script ||= {}; $m5script[:M5VS20160528] = 20160528
  20. module M5VS20160528
  21. #==============================================================================
  22. #  设定部分
  23. #==============================================================================
  24.  
  25.   EQUAL = false
  26.  
  27.   # 设置为 true 时,变量商店物品的出售价格为【数据库中】物品售价的一半
  28.   # 设置为 false 时,变量商店物品的出售价格为【该商店】物品售价的一半
  29.   # (一般来说,个人建议将变量商店请设置为只允许购买)
  30.  
  31. #==============================================================================
  32. #  设定结束
  33. #==============================================================================
  34.   def self.init; set(0, nil); end
  35.   def self.gold; @data[0]; end
  36.   def self.unit; @data[1]; end
  37.   def self.set(gold, unit); @data = [gold, unit]; end
  38.   def self.work(&block)
  39.     origin_gold = $game_party.gold
  40.     $game_party.m5_20160528_set_gold($game_variables[gold]) if unit
  41.     block.call
  42.     return unless unit
  43.     $game_variables[gold] = $game_party.gold
  44.     $game_party.m5_20160528_set_gold(origin_gold)
  45.   end
  46. end
  47. M5VS20160528.init
  48. class Game_Interpreter
  49.   def m5_20160528_shop(gold, unit)
  50.     return unless next_event_code == 302
  51.     M5VS20160528.set(gold, unit)
  52.     @index += 1
  53.     execute_command
  54.     M5VS20160528.init
  55.   end
  56. end
  57. class Window_Gold
  58.   alias m5_20160528_value value
  59.   def value
  60.     M5VS20160528.unit ? $game_variables[M5VS20160528.gold] : m5_20160528_value
  61.   end
  62.   alias m5_20160528_unit currency_unit
  63.   def currency_unit; M5VS20160528.unit || m5_20160528_unit; end
  64. end
  65. class Game_Party; def m5_20160528_set_gold(gold); @gold = gold; end; end
  66. class Scene_Shop
  67.   alias m5_20140318_do_buy do_buy
  68.   def do_buy(number); M5VS20160528.work{ m5_20140318_do_buy(number) }; end
  69.   alias m5_20140318_do_sell do_sell
  70.   def do_sell(number); M5VS20160528.work{ m5_20140318_do_sell(number) }; end
  71.   alias m5_20140318_selling_price selling_price
  72.   def selling_price
  73.     return m5_20140318_selling_price unless M5VS20160528.unit
  74.     return m5_20140318_selling_price if M5VS20160528::EQUAL
  75.     p = buying_price || 0
  76.     p / 2
  77.   end
  78. end
RUBY 代码复制
  1. =begin
  2. ===============================================================================
  3.   高价回收物品的商店 By喵呜喵5
  4. ===============================================================================
  5.  
  6. 【说明】
  7.  
  8.   指定的开关打开时,事件指令中的商店处理会进入特定的物品回收商店
  9.  
  10.   在物品回收商店中无法购买物品,只能贩卖物品
  11.  
  12.   物品的售价则为商店处理中设置的物品价格(而非数据库中设置的价格)
  13.  
  14. =end
  15. $m5script ||= {}
  16. $m5script[:M5SS20151022] = 20151022
  17. module M5SS20151022
  18. #==============================================================================
  19. # 设定部分
  20. #==============================================================================
  21.  
  22.   SWI = 1
  23.  
  24.   #这里设置一个开关ID,当开关打开时使用商店处理将进入物品回收商店
  25.  
  26.   SHOW1 = true    # true / false
  27.  
  28.   #设置为true时,在物品回收商店也能以正常价格(原价除2)贩卖没有设置价格的物品
  29.  
  30.   SHOW2 = false    # true / false
  31.  
  32.   #设置为true时,在物品回收商店中也会显示玩家不拥有但有设置价格的物品
  33.  
  34. #==============================================================================
  35. # 设定结束
  36. #==============================================================================
  37. class Sell < Window_ShopSell
  38.   attr_writer :shop_goods
  39.   def initialize *args
  40.     super *args
  41.     @shop_goods = []
  42.   end
  43.   def make_item_list
  44.     @data = []
  45.     @price = {}
  46.     @shop_goods.each do |goods|
  47.       item = ( case goods[0]
  48.                when 0 then $data_items
  49.                when 1 then $data_weapons
  50.                when 2 then $data_armors
  51.                end )[ goods[1] ]
  52.       if item
  53.         next unless include?(item)
  54.         @data << item
  55.         @price[item] = goods[2] == 0 ? item.price : goods[3]
  56.       end
  57.     end
  58.     if SHOW1
  59.       @data += $game_party.all_items.select {|item| include?(item)}
  60.       @data.uniq!
  61.     end
  62.     @data = @data.select{|item| $game_party.has_item?(item)} unless SHOW2
  63.     @data.push(nil) if include?(nil)
  64.   end
  65.   def enable?(item)
  66.     item && (@price[item] ? @price[item] > 0 : item.price > 0) && $game_party.has_item?(item)
  67.   end
  68. end
  69. class Command < Window_ShopCommand
  70.   def col_max; @list.size; end
  71.   def make_command_list
  72.     super
  73.     @list.delete_if { |command| command[:symbol] == :buy }
  74.   end
  75. end
  76. Scene_Clone = Scene_Shop.clone
  77. class Scene_Clone
  78.   Window_ShopCommand = M5SS20151022::Command
  79.   Window_ShopSell = M5SS20151022::Sell
  80. end
  81. class Scene < Scene_Clone
  82.   def create_sell_window
  83.     super
  84.     @sell_window.shop_goods = @goods
  85.   end
  86.   def selling_price; buying_price || super; end
  87. end
  88.  
  89. end # module M5SS20151022
  90.  
  91. class Game_Interpreter
  92.   alias m5_20140320_command_302 command_302
  93.   def command_302
  94.     temp_scene = Scene_Shop
  95.     if $game_switches[M5SS20151022::SWI]
  96.       Object.const_set(:Scene_Shop, M5SS20151022::Scene)
  97.       ( @params = @params.clone )[4] = false
  98.     end
  99.     m5_20140320_command_302
  100.     Object.const_set(:Scene_Shop, temp_scene)
  101.   end
  102. end

     是不是你想要的?
回复 支持 1 反对 0

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
6260
在线时间
1481 小时
注册时间
2015-7-25
帖子
652

开拓者

4
发表于 2017-4-13 22:02:40 | 只看该作者
本帖最后由 魔法丶小肉包 于 2017-4-13 22:25 编辑

考虑到不知道玩家会交付哪件道具给NPC,所以楼主可以这样↓(提供思路而已)

在事件页里如上图设置,便会自动获取玩家选择的物品的数据库中所设置的价格,
在玩家选择之后,便会自动获得金钱并扣除此物品1个


点评

。。。我什么都没有改,这段代码确实是可以塞的进去的  发表于 2017-4-14 11:28
回點評樓上... 中文版是有人發布漢化版的 實際上你要中文 要簡體 還有那麼長的腳本框 都可以在腳本裡面或者用EXESCOPE這套軟體去修改RPG MAKER本體  发表于 2017-4-14 01:49
可以问个无关问题么……是怎么做的又是中文版又有那么长脚本框的……  发表于 2017-4-13 23:59
笨肉包的首款像素OC游戏《花城梦之心》尝试制作中~
目前的坑 【不可思议的迷宫】幽灵契约外传:歌莉娅
持续更新中~ 当前进度 v0.28
大版本更新时才会更新网盘文件,预计下次大版本更新:v0.30
完成度:
主线 15% 支线 0% 数据库 6% 系统 86% 美术 6%
两边同时填坑~
( 这里是笨肉包~专修魔法!目标是大魔法师!
( 坑太大啦,一个人填不完啦hhh 一定会填完的嗯...
( 每天都和bug们比试魔力~吾之魔法将扫平一切!
( 弱点是美术,魔法修行之余再补补课吧~
( 哼哼哼~这便是魔法的力量!
大家都离开啦,笨肉包也不知道还能坚持多久呀...
这是属于笨肉包一个人的旅行(再见了...蚊子湯,七重酱,笨肉包永远想你们!TwT
回复 支持 反对

使用道具 举报

Lv5.捕梦者 (版主)

梦石
1
星屑
23994
在线时间
3339 小时
注册时间
2011-7-8
帖子
3926

开拓者

5
发表于 2017-4-13 23:41:03 | 只看该作者
本帖最后由 guoxiaomi 于 2017-4-13 23:45 编辑

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

使用道具 举报

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

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-11-17 06:19

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表