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

Project1

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

[已经解决] 负重脚本有木有?

[复制链接]
头像被屏蔽

Lv2.观梦者 (禁止发言)

梦石
0
星屑
734
在线时间
919 小时
注册时间
2010-11-13
帖子
1023
跳转到指定楼层
1
发表于 2012-1-22 10:56:21 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽

Lv4.逐梦者

醉啸 长风万里

梦石
0
星屑
6187
在线时间
6594 小时
注册时间
2007-12-16
帖子
4501

贵宾

2
发表于 2012-1-22 10:57:28 | 只看该作者
这种问题回答就是一个字“有”

点评

版主你这是水帖么?  发表于 2012-1-22 11:11

评分

参与人数 2星屑 +134 收起 理由
无双sxa + 132 新年糖果,66大顺!
574656549 + 2 来一人加一分

查看全部评分


还在龟速填坑中
回复

使用道具 举报

Lv1.梦旅人

饕餮

梦石
0
星屑
222
在线时间
677 小时
注册时间
2011-5-9
帖子
486
3
发表于 2012-1-22 12:30:35 | 只看该作者

  1. #==============================================================================
  2. # ■ 物品丢弃 + 物品种类数限制 —— by 水镜风生
  3. #------------------------------------------------------------------------------
  4. LOSE_ITEM_SE_NAME = "Evasion"         # 丢弃物品时播放的SE
  5. LOW_SPEED = 2                         # 物品超重时的移动速度
  6. USUAL_SPEED = 4                      # 平时的移动速度
  7. ITEM_MAX_N = 17    # 储存物品最大种类数的事件变量的编号

  8. class Window_LoseNumber < Window_Base
  9.   #--------------------------------------------------------------------------
  10.   # ★ 初始化对像
  11.   #     x      : 窗口 X 座标
  12.   #     y      : 窗口 Y 座标
  13.   #--------------------------------------------------------------------------
  14.   def initialize(x, y)
  15.     super(x, y, 260, 104)
  16.     @item = nil
  17.     @max = 1
  18.     @number = 1
  19.   end
  20.   #--------------------------------------------------------------------------
  21.   # ★ 设置物品、最大数量
  22.   #--------------------------------------------------------------------------
  23.   def set(item, max)
  24.     @item = item
  25.     @max = max
  26.     @number = 1
  27.     refresh
  28.   end
  29.   #--------------------------------------------------------------------------
  30.   # ★ 设置数量输入
  31.   #--------------------------------------------------------------------------
  32.   def number
  33.     return @number
  34.   end
  35.   #--------------------------------------------------------------------------
  36.   # ★ 刷新
  37.   #--------------------------------------------------------------------------
  38.   def refresh
  39.     y = 24
  40.     self.contents.clear
  41.     draw_item_name(@item, 0, y)
  42.     self.contents.font.color = normal_color
  43.     self.contents.draw_text(164, y, 20, WLH, "×")
  44.     self.contents.draw_text(190, y, 20, WLH, @number, 2)
  45.     self.cursor_rect.set(186, y, 28, WLH)
  46.   end
  47.   #--------------------------------------------------------------------------
  48.   # ★ 更新画面
  49.   #--------------------------------------------------------------------------
  50.   def update
  51.     super
  52.     if self.active
  53.       last_number = @number
  54.       if Input.repeat?(Input::RIGHT) and @number < @max
  55.         @number += 1
  56.       end
  57.       if Input.repeat?(Input::LEFT) and @number > 1
  58.         @number -= 1
  59.       end
  60.       if Input.repeat?(Input::UP) and @number < @max
  61.         @number = [@number + 10, @max].min
  62.       end
  63.       if Input.repeat?(Input::DOWN) and @number > 1
  64.         @number = [@number - 10, 1].max
  65.       end
  66.       if @number != last_number
  67.         Sound.play_cursor
  68.         refresh
  69.       end
  70.     end
  71.   end
  72. end
  73. #==============================================================================
  74. # ■ Window_Item_Max
  75. #-----------------------------------------------------------------------------
  76. #   显示背包容量和当前物品数的窗口
  77. #============================================================================


  78. class Window_Item_Max < Window_Base
  79.   #--------------------------------------------------------------------------
  80.   # ★ 初始化对像
  81.   #--------------------------------------------------------------------------
  82.   def initialize
  83.     super(290, 360, 254, 56)
  84.     refresh
  85.   end
  86.   
  87.   #--------------------------------------------------------------------------
  88.   # ★ 刷新
  89.   #--------------------------------------------------------------------------  
  90.   def refresh
  91.     self.contents.clear
  92.     draw_icon(144, 0, 0)
  93.     self.contents.draw_text(36, 0, 100, 24, "背包容量:")
  94.     item = $game_party.items
  95.     string = item.size.to_s
  96.     item_max = $game_variables[ITEM_MAX_N]
  97.     item_max = 0 if item_max == nil
  98.     self.contents.font.color = knockout_color if item.size > item_max
  99.     self.contents.draw_text(135, 0, 30, 24, string, 2)
  100.     self.contents.font.color = normal_color
  101.     string = "/ " + item_max.to_s
  102.     self.contents.draw_text(173, 0, 100, 24, string )
  103.   end
  104.   
  105. end

  106. #==============================================================================
  107. # ■ Window_Waring
  108. #-----------------------------------------------------------------------------
  109. #   显示超重警告的窗口
  110. #============================================================================
  111. class Window_Waring  < Window_Base
  112.   def initialize
  113.     super(544 - 180, 416 - 56, 180, 56)
  114.     refresh
  115.   end
  116.   
  117.   def refresh
  118.     self.contents.clear
  119.     self.contents.draw_text(0, -4, 150, 32, "你已经超重了。")
  120.   end
  121. end
  122. #==============================================================================
  123. # Game_Player 添加更改移动速度的方法
  124. #============================================================================
  125. class Game_Player   
  126.   def change_move_speed(n)
  127.     @move_speed = n
  128.   end
  129. end

  130. #==============================================================================
  131. # Scene_Map  添加在地图上显示警告窗口的处理
  132. #============================================================================
  133. class Scene_Map
  134.   #--------------------------------------------------------------------------
  135.   # ● 开始处理
  136.   #--------------------------------------------------------------------------
  137.   def start
  138.     super
  139.     $game_map.refresh
  140.     @spriteset = Spriteset_Map.new
  141.     @message_window = Window_Message.new
  142.     @waring_window = Window_Waring.new
  143.     @waring_window.visible = false
  144.   end  
  145.   #--------------------------------------------------------------------------
  146.   # ● 结束处理
  147.   #--------------------------------------------------------------------------
  148.   def terminate
  149.     super
  150.     if $scene.is_a?(Scene_Battle)     # 正在切换战斗画面的情况下
  151.       @spriteset.dispose_characters   # 为了生成背景隐藏角色
  152.     end
  153.     snapshot_for_background
  154.     @spriteset.dispose
  155.     @message_window.dispose
  156.     @waring_window.dispose
  157.     if $scene.is_a?(Scene_Battle)     # 正在切换战斗画面的情况下
  158.       perform_battle_transition       # 执行战斗前变换
  159.     end
  160.   end
  161.   #--------------------------------------------------------------------------
  162.   # ● フレーム更新
  163.   #--------------------------------------------------------------------------
  164.   def update
  165.     super
  166.     $game_map.interpreter.update      # 更新解释器
  167.     $game_map.update                  # 更新滴入
  168.     $game_player.update               # 更新玩家
  169.     $game_system.update               # 更新计时器
  170.     @spriteset.update                 # 更新活动块元件
  171.     @message_window.update            # 更新消息窗口
  172.     unless $game_message.visible      # 正在显示消息以外的情况
  173.       update_transfer_player
  174.       update_encounter
  175.       update_call_menu
  176.       update_call_debug
  177.       update_scene_change
  178.       update_over_item
  179.     end
  180.   end
  181.   #--------------------------------------------------------------------------
  182.   # ● 更新物品超限判定
  183.   #--------------------------------------------------------------------------  
  184.   def update_over_item
  185.     item_max = $game_variables[ITEM_MAX_N]
  186.     item_max = 0 if item_max == nil
  187.     if $game_party.items.size > item_max
  188.       @waring_window.visible = true
  189.       a=$game_party.items.size - item_max
  190.       if a>=18
  191.         $game_player.change_move_speed(-1)
  192. #        $scene = Scene_Item.new
  193.       elsif a>=15
  194.         $game_player.change_move_speed(0)
  195.       elsif a>=12
  196.         $game_player.change_move_speed(1)
  197.       elsif a>=8
  198.         $game_player.change_move_speed(2)
  199.       elsif a>=5
  200.         $game_player.change_move_speed(3)
  201.       end
  202.     else
  203.       @waring_window.visible = false
  204.       $game_player.change_move_speed(USUAL_SPEED)
  205.     end
  206.   end
  207. end
复制代码
使用方法很简单,带入变量来设置负重上限,给分吧!

点评

呵呵 新年快了!  发表于 2012-1-22 15:16

评分

参与人数 2星屑 +134 收起 理由
无双sxa + 132 新年快乐!
574656549 + 2 LZ的要求

查看全部评分

回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-12-28 08:28

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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