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

Project1

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

[已经解决] 请问怎么设置只可以买入不可以卖出的商店啊

[复制链接]

Lv1.梦旅人

梦石
0
星屑
35
在线时间
0 小时
注册时间
2018-7-10
帖子
4
跳转到指定楼层
1
发表于 2018-7-11 06:43:16 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
如题,不会脚本真是我心中的痛

Lv3.寻梦者

梦石
0
星屑
2258
在线时间
176 小时
注册时间
2018-5-11
帖子
144
2
发表于 2018-7-11 09:36:21 | 只看该作者
本帖最后由 RyanBern 于 2018-7-12 15:58 编辑

RUBY 代码复制
  1. #==============================================================================
  2. # 本脚本来自[url]www.66RPG.com[/url],使用和转载请保留此信息
  3. #==============================================================================
  4.  
  5. #只能购买的商店:
  6. #在商店前面一行事件添加脚本:$game_temp.shop_type = 1
  7.  
  8. #只能卖出的商店:
  9. #在商店前面一行事件添加脚本:$game_temp.shop_type = 2
  10.  
  11. #普通商店:不用改动。
  12.  
  13. class Scene_Shop
  14.   # --------------------------
  15.   def main
  16.     @help_window = Window_Help.new
  17.     @command_window = Window_ShopCommand.new
  18.     @gold_window = Window_Gold.new
  19.     @gold_window.x = 480
  20.     @gold_window.y = 64
  21.     @dummy_window = Window_Base.new(0, 128, 640, 352)
  22.     @buy_window = Window_ShopBuy.new($game_temp.shop_goods)
  23.     @buy_window.active = false
  24.     @buy_window.visible = false
  25.     @buy_window.help_window = @help_window
  26.     @sell_window = Window_ShopSell.new
  27.     @sell_window.active = false
  28.     @sell_window.visible = false
  29.     @sell_window.help_window = @help_window
  30.     @number_window = Window_ShopNumber.new
  31.     @number_window.active = false
  32.     @number_window.visible = false
  33.     @status_window = Window_ShopStatus.new
  34.     @status_window.visible = false
  35.     if $game_temp.shop_type == 1
  36.       @command_window.index = 0
  37.       @command_window.active = false
  38.       @dummy_window.visible = false
  39.       @buy_window.active = true
  40.       @buy_window.visible = true
  41.       @buy_window.refresh
  42.       @status_window.visible = true
  43.     end
  44.     if $game_temp.shop_type == 2
  45.       @command_window.index = 1
  46.       @command_window.active = false
  47.       @dummy_window.visible = false
  48.       @sell_window.active = true
  49.       @sell_window.visible = true
  50.       @sell_window.refresh
  51.     end
  52.     Graphics.transition
  53.     loop do
  54.       Graphics.update
  55.       Input.update
  56.       update
  57.       if $scene != self
  58.         break
  59.       end
  60.     end
  61.     Graphics.freeze
  62.     @status_window.item = nil
  63.     @status_window.refresh
  64.     @help_window.dispose
  65.     @command_window.dispose
  66.     @gold_window.dispose
  67.     @dummy_window.dispose
  68.     @buy_window.dispose
  69.     @sell_window.dispose
  70.     @number_window.dispose
  71.     @status_window.dispose
  72.     $game_temp.shop_type = 0
  73.   end
  74.   # --------------------------
  75.   def update
  76.     @help_window.update
  77.     @command_window.update
  78.     @gold_window.update
  79.     @dummy_window.update
  80.     @buy_window.update
  81.     @sell_window.update
  82.     @number_window.update
  83.     @status_window.update
  84.     if @command_window.active
  85.       update_command
  86.       return
  87.     end
  88.     if @buy_window.active
  89.       update_buy
  90.       return
  91.     end
  92.     if @sell_window.active
  93.       update_sell
  94.       return
  95.     end
  96.     if @number_window.active
  97.       update_number
  98.       return
  99.     end
  100.   end
  101.   # --------------------------
  102.   def update_command
  103.     if Input.trigger?(Input::B)
  104.       $game_system.se_play($data_system.cancel_se)
  105.       $scene = Scene_Map.new
  106.       return
  107.     end
  108.     if Input.trigger?(Input::C)
  109.       case @command_window.index
  110.       when 0
  111.         $game_system.se_play($data_system.decision_se)
  112.         @command_window.active = false
  113.         @dummy_window.visible = false
  114.         @buy_window.active = true
  115.         @buy_window.visible = true
  116.         @buy_window.refresh
  117.         @status_window.visible = true
  118.       when 1
  119.         $game_system.se_play($data_system.decision_se)
  120.         @command_window.active = false
  121.         @dummy_window.visible = false
  122.         @sell_window.active = true
  123.         @sell_window.visible = true
  124.         @sell_window.refresh
  125.       when 2
  126.         $game_system.se_play($data_system.decision_se)
  127.         $scene = Scene_Map.new
  128.       end
  129.       return
  130.     end
  131.   end
  132.   # --------------------------
  133.   def update_buy
  134.     @status_window.item = @buy_window.item
  135.     if Input.trigger?(Input::B)
  136.       if $game_temp.shop_type == 1
  137.          $game_system.se_play($data_system.cancel_se)
  138.          $scene = Scene_Map.new
  139.       else
  140.       $game_system.se_play($data_system.cancel_se)
  141.       @command_window.active = true
  142.       @dummy_window.visible = true
  143.       @buy_window.active = false
  144.       @buy_window.visible = false
  145.       @status_window.visible = false
  146.       @status_window.item = nil
  147.       @help_window.set_text("")
  148.       end
  149.       return
  150.     end
  151.     if Input.trigger?(Input::C)
  152.       @item = @buy_window.item
  153.       if @item == nil or @item.price > $game_party.gold
  154.         $game_system.se_play($data_system.buzzer_se)
  155.         return
  156.       end
  157.       case @item
  158.       when RPG::Item
  159.         number = $game_party.item_number(@item.id)
  160.       when RPG::Weapon
  161.         number = $game_party.weapon_number(@item.id)
  162.       when RPG::Armor
  163.         number = $game_party.armor_number(@item.id)
  164.       end
  165.       if number == 99
  166.         $game_system.se_play($data_system.buzzer_se)
  167.         return
  168.       end
  169.       $game_system.se_play($data_system.decision_se)
  170.       max = @item.price == 0 ? 99 : $game_party.gold / @item.price
  171.       max = [max, 99 - number].min
  172.       @buy_window.active = false
  173.       @buy_window.visible = false
  174.       @number_window.set(@item, max, @item.price)
  175.       @number_window.active = true
  176.       @number_window.visible = true
  177.     end
  178.   end
  179.   # --------------------------
  180.   def update_sell
  181.     if Input.trigger?(Input::B)
  182.       if $game_temp.shop_type == 2
  183.          $game_system.se_play($data_system.cancel_se)
  184.          $scene = Scene_Map.new
  185.       else
  186.       $game_system.se_play($data_system.cancel_se)
  187.       @command_window.active = true
  188.       @dummy_window.visible = true
  189.       @sell_window.active = false
  190.       @sell_window.visible = false
  191.       @status_window.item = nil
  192.       @help_window.set_text("")
  193.       return
  194.       end
  195.     end
  196.     if Input.trigger?(Input::C)
  197.       @item = @sell_window.item
  198.       @status_window.item = @item
  199.       if @item == nil or @item.price == 0
  200.         $game_system.se_play($data_system.buzzer_se)
  201.         return
  202.       end
  203.       $game_system.se_play($data_system.decision_se)
  204.       case @item
  205.       when RPG::Item
  206.         number = $game_party.item_number(@item.id)
  207.       when RPG::Weapon
  208.         number = $game_party.weapon_number(@item.id)
  209.       when RPG::Armor
  210.         number = $game_party.armor_number(@item.id)
  211.       end
  212.       max = number
  213.       @sell_window.active = false
  214.       @sell_window.visible = false
  215.       @number_window.set(@item, max, @item.price / 2)
  216.       @number_window.active = true
  217.       @number_window.visible = true
  218.       @status_window.visible = true
  219.     end
  220.   end
  221.   # --------------------------
  222.   def update_number
  223.     if Input.trigger?(Input::B)
  224.       $game_system.se_play($data_system.cancel_se)
  225.       @number_window.active = false
  226.       @number_window.visible = false
  227.       case @command_window.index
  228.       when 0
  229.         @buy_window.active = true
  230.         @buy_window.visible = true
  231.       when 1
  232.         @sell_window.active = true
  233.         @sell_window.visible = true
  234.         @status_window.visible = false
  235.       end
  236.       return
  237.     end
  238.     if Input.trigger?(Input::C)
  239.       $game_system.se_play($data_system.shop_se)
  240.       @number_window.active = false
  241.       @number_window.visible = false
  242.       case @command_window.index
  243.       when 0
  244.         $game_party.lose_gold(@number_window.number * @item.price)
  245.         case @item
  246.         when RPG::Item
  247.           $game_party.gain_item(@item.id, @number_window.number)
  248.         when RPG::Weapon
  249.           $game_party.gain_weapon(@item.id, @number_window.number)
  250.         when RPG::Armor
  251.           $game_party.gain_armor(@item.id, @number_window.number)
  252.         end
  253.         @gold_window.refresh
  254.         @buy_window.refresh
  255.         @status_window.refresh
  256.         @buy_window.active = true
  257.         @buy_window.visible = true
  258.       when 1
  259.         $game_party.gain_gold(@number_window.number * (@item.price / 2))
  260.         case @item
  261.         when RPG::Item
  262.           $game_party.lose_item(@item.id, @number_window.number)
  263.         when RPG::Weapon
  264.           $game_party.lose_weapon(@item.id, @number_window.number)
  265.         when RPG::Armor
  266.           $game_party.lose_armor(@item.id, @number_window.number)
  267.         end
  268.         @gold_window.refresh
  269.         @sell_window.refresh
  270.         @status_window.refresh
  271.         @sell_window.active = true
  272.         @sell_window.visible = true
  273.         @status_window.visible = false
  274.       end
  275.       return
  276.     end
  277.   end
  278. end
  279.  
  280.  
  281.  
  282.  
  283. class Window_ShopCommand < Window_Selectable
  284.   # ----------------------------------------
  285.   def initialize
  286.     super(0, 64, 480, 64)
  287.     self.contents = Bitmap.new(width - 32, height - 32)
  288.     @item_max = 3
  289.     @column_max = 3
  290.     @commands = ["购买", "卖出", "离开"]
  291.     self.contents.font.name = "黑体"
  292.     self.contents.font.size = 24
  293.     refresh
  294.     self.index = 0
  295.   end
  296.   # ----------------------------------------
  297.   def refresh
  298.     self.contents.clear
  299.     if $game_temp.shop_type == 0
  300.       for i in 0...@item_max
  301.       draw_item(i)
  302.       end
  303.     end
  304.     if $game_temp.shop_type == 1
  305.       self.contents.draw_text(4, 0, 324, 32, "只能购买,不能卖出")
  306.       self.index = -1
  307.       update_cursor_rect
  308.     end
  309.     if $game_temp.shop_type == 2
  310.       self.contents.draw_text(4, 0, 324, 32, "只能卖出,不能购买")
  311.       self.index = -1
  312.       update_cursor_rect
  313.     end
  314.   end
  315.   # ----------------------------------------
  316.   def draw_item(index)
  317.     x = 4 + index * 160
  318.     self.contents.draw_text(x, 0, 128, 32, @commands[index])
  319.   end
  320.   # ----------------------------------------
  321.   def update_cursor_rect
  322.     if $game_temp.shop_type == 0
  323.       super
  324.     end
  325.     if $game_temp.shop_type == 1 || $game_temp.shop_type == 2
  326.       self.cursor_rect.empty
  327.     end
  328.   end
  329. end
  330. class Game_Temp
  331.   # ----------------------------------------
  332.   attr_accessor :shop_type
  333.   alias ini initialize
  334.   def initialize
  335.     ini
  336.     @shop_type = 0
  337.   end
  338. end
  339.  
  340.  
  341. #==============================================================================
  342. # 本脚本来自[url]www.66RPG.com[/url],使用和转载请保留此信息
  343. #=========================================================================

评分

参与人数 1星屑 +50 收起 理由
RyanBern + 50 认可答案

查看全部评分

人生总会有中二的时候,比如现在
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
2258
在线时间
176 小时
注册时间
2018-5-11
帖子
144
3
发表于 2018-7-11 09:36:59 | 只看该作者
就是这个脚本,291行可以换字体
人生总会有中二的时候,比如现在
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
2258
在线时间
176 小时
注册时间
2018-5-11
帖子
144
4
发表于 2018-7-11 09:42:47 | 只看该作者
这是以前的脚本,能用。以前66RPG上有的
人生总会有中二的时候,比如现在
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
35
在线时间
0 小时
注册时间
2018-7-10
帖子
4
5
 楼主| 发表于 2018-7-11 12:54:21 | 只看该作者
18649119621 发表于 2018-7-11 09:42
这是以前的脚本,能用。以前66RPG上有的

超级感谢!
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
35
在线时间
0 小时
注册时间
2018-7-10
帖子
4
6
 楼主| 发表于 2018-7-11 13:02:08 | 只看该作者
诶它说Window_Selectable没有被定义。
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
2258
在线时间
176 小时
注册时间
2018-5-11
帖子
144
7
发表于 2018-7-11 13:23:31 | 只看该作者
可能有脚本冲突,把这个脚本换个位置试试
人生总会有中二的时候,比如现在
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
2258
在线时间
176 小时
注册时间
2018-5-11
帖子
144
8
发表于 2018-7-11 13:25:36 | 只看该作者
我这里是没有问题的,你看一看输入脚本正确了没有
人生总会有中二的时候,比如现在
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
35
在线时间
0 小时
注册时间
2018-7-10
帖子
4
9
 楼主| 发表于 2018-7-11 13:33:24 | 只看该作者
18649119621 发表于 2018-7-11 13:25
我这里是没有问题的,你看一看输入脚本正确了没有

可以用了!!谢谢!!!
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
6245
在线时间
558 小时
注册时间
2018-6-5
帖子
129
10
发表于 2018-7-18 00:43:44 | 只看该作者
(xxx商人):是否购买一个x物品?
显示选择项:买,不买
买的场合:
条件分歧:金钱 y 以上时:
(xxx商人):购买成功。x物品+1。金钱-y。
除此以外的场合:
(xxx商人):卢布不足。
不买的场合:无
俄罗斯帝国末代沙皇尼古拉二世
#俄文转写 = Царь Николай II
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-4-27 12:13

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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