查看: 11328|回复: 26

[应求发布]负重系统

  [复制链接]

天仙

梦石
0
星屑
720
在线时间
184 小时
注册时间
2008-4-15
回帖
4872

贵宾

发表于 2008-11-19 12:35:06 | 显示全部楼层 |阅读模式

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

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

×
就是在物品画面的右上角放了一个显示负重的窗口
在物品的备注里面写
[load N] 则该物品占用 N 点负重
load也可以写成「负重」或「負重」
不写的话默认为 0

每个角色的负重公式:
(HP最大值+MP最大值) X 等级 / 速度

超过队伍总负重时无法获得物品
$game_party.current_load 获取队伍当前负重
$game_party.total_load   获取队伍总负重

新增功能说明:
可以用
  1. check_load(物品ID, 类型, 数量)
复制代码

来判断是不是会超过负重
类型: 0:物品  1:武器  2:防具

调用「增减物品/武器/防具」指令时,会自动判断负重,超过负重时自动执行「中断事件处理」
所以请注意「增减物品/武器/防具」指令在事件中的位置,不要放在开关或变量操作的後面

脚本更新:
* 2009/02/17
  - BUG 修正:更正改职业时会出现错误的问题

* 2009/02/20
  - 功能修改:超过负重时自动调用「中断事件处理」
  - 功能增加:可以用脚本 check_load(物品ID, 类型, 数量)  来判断是不是会超过负重

* 2009/05/02
  - 功能增加:按 X 键删除当前物品 1 个
  - BUG 修正:负重变更时,负重窗口刷新问题

  1. class RPG::BaseItem
  2.   # 获取物品重量
  3.   def load
  4.     return if self.is_a?(RPG::Skill)
  5.     self.note.split(/[\r\n]+/).each { |line|
  6.       if line =~ /\[(?:load|负重|負重) (\w+)\]/
  7.         return $1.nil? ? 0 : $1.to_i
  8.       end}
  9.     return 0
  10.   end
  11. end
  12. class Scene_Item < Scene_Base
  13.   alias load_start start
  14.   alias load_terminate terminate
  15.   alias load_update update
  16.   alias load_update_item_selection update_item_selection
  17.   def start
  18.     # 生成负重显示窗口
  19.     load_start
  20.     @load_window = Window_Base.new(392, 0, 152, 56)
  21.     @load_window.viewport = @viewport
  22.   end
  23.   def terminate
  24.     # 释放负重显示窗口
  25.     @load_window.dispose
  26.     load_terminate
  27.   end
  28.   def update
  29.     @load_window.update
  30.     # 刷新负重显示窗口
  31.     if @temp_load != $game_party.current_load
  32.       @load_window.contents.clear
  33.       @load_window.contents.draw_text(0, 0, 120, 24, "#{$game_party.current_load}/#{$game_party.total_load}")
  34.       @temp_load = $game_party.current_load
  35.     end
  36.     load_update
  37.   end
  38.   def update_item_selection
  39.     if Input.trigger?(Input::X)
  40.       @item = @item_window.item
  41.       $game_party.lose_item(@item, 1)
  42.       @item_window.refresh
  43.     else
  44.       load_update_item_selection
  45.     end
  46.   end
  47. end
  48. class Game_Party < Game_Unit
  49.   attr_reader :current_load
  50.   alias load_initialize initialize
  51.   alias load_gain_item gain_item
  52.   def initialize
  53.     load_initialize
  54.     @current_load = 0
  55.   end
  56.   # 获取队伍最大负重
  57.   def total_load
  58.     party_load = 0
  59.     #members.size.times do |i|
  60.     for i in 0...members.size
  61.       actor = members[i]
  62.       party_load += actor.load
  63.     end
  64.     return party_load
  65.   end
  66.   def gain_item(item, n, include_equip = false)
  67.     return if item.nil?
  68.     if ((item.load * n) + @current_load) > total_load
  69.       $game_message.texts.push("負重不足,請先清空身上的物品")
  70.       $game_message.visible = true
  71.       return
  72.     else
  73.       @current_load += item.load * n
  74.     end
  75.     load_gain_item(item, n, include_equip)
  76.   end
  77. end
  78. class Game_Actor < Game_Battler
  79.   # 获取队员负重
  80.   def load
  81.     return (maxhp + maxmp) * @level / agi
  82.   end
  83. end
  84. class Game_Interpreter
  85.   alias load_command_126 command_126
  86.   alias load_command_127 command_127
  87.   alias load_command_128 command_128
  88.   def command_126
  89.     n = operate_value(@params[1], @params[2], @params[3])
  90.     return command_115 if check_load(@params[0], 0, n)
  91.     load_command_126
  92.   end
  93.   #--------------------------------------------------------------------------
  94.   # ● 增減武器
  95.   #--------------------------------------------------------------------------
  96.   def command_127
  97.     n = operate_value(@params[1], @params[2], @params[3])
  98.     return command_115 if check_load(@params[0], 1, n)
  99.     load_command_127
  100.   end
  101.   #--------------------------------------------------------------------------
  102.   # ● 增減防具
  103.   #--------------------------------------------------------------------------
  104.   def command_128
  105.     n = operate_value(@params[1], @params[2], @params[3])
  106.     return command_115 if check_load(@params[0], 2, n)
  107.     load_command_128
  108.   end
  109.   def check_load(item_id, type, n)
  110.     case type
  111.     when 0; item = $data_items[item_id]
  112.     when 1; item = $data_weapons[item_id]
  113.     when 2; item = $data_armors[item_id]
  114.     end
  115.     if (((item.load * n) + $game_party.current_load) > $game_party.total_load)
  116.       $game_message.texts.push("負重不足,請先清空身上的物品")
  117.       $game_message.visible = true
  118.       return true
  119.     end
  120.     return false
  121.   end
  122. end
复制代码
VA脚本开工中...
偷窃脚本1.0 - 已完成

梦石
0
星屑
239
在线时间
2399 小时
注册时间
2008-4-11
回帖
11727

贵宾第6届短篇游戏比赛季军

发表于 2008-11-19 14:41:16 | 显示全部楼层
{/se}谢谢。。我也正需要
回复

使用道具 举报

世界坑化协会

梦石
0
星屑
9565
在线时间
1592 小时
注册时间
2007-3-13
回帖
5263

极短26参与极短25参与极短23参与极短21参与开拓者贵宾第一届化妆舞会最佳服饰奖

发表于 2008-11-19 17:12:02 | 显示全部楼层
{/dy} 谢谢流星,这是第一个VX版?
忍卷NINMAKI游戏DEMO上线了~♪  点我下载  ☚
回复

使用道具 举报

穿越一季:朔

梦石
0
星屑
50
在线时间
333 小时
注册时间
2007-4-11
回帖
5052

贵宾

发表于 2008-11-19 18:17:29 | 显示全部楼层
{/hx}流星果然是女神{/fd}的化身.. [楼下..你赢了]

{/fd}一般要什么要多了...你就写了....{/gg}
6R复活?别扯淡了.

柳柳一旦接手66RPG,我果断呵呵啊。
回复

使用道具 举报

kissye的宠物<

梦石
0
星屑
66
在线时间
1564 小时
注册时间
2008-8-11
回帖
6023

贵宾

发表于 2008-11-19 18:22:48 | 显示全部楼层
楼上口胡!天使的化身是八云>_<流星姐姐是女神的化身………
回复

使用道具 举报

天仙

梦石
0
星屑
720
在线时间
184 小时
注册时间
2008-4-15
回帖
4872

贵宾

 楼主| 发表于 2008-11-19 18:45:27 | 显示全部楼层
补充一下:
每个角色的负重公式:
(HP最大值+MP最大值) X 等级 / 速度
VA脚本开工中...
偷窃脚本1.0 - 已完成
回复

使用道具 举报

星辰创始

梦石
0
星屑
70
在线时间
155 小时
注册时间
2008-3-8
回帖
423
发表于 2008-11-19 20:26:06 | 显示全部楼层
雪流星……你太强了,等我脚本学好,一定帮你写一个银河系统来答谢!!!{/se}
回复

使用道具 举报

kissye的宠物<

梦石
0
星屑
66
在线时间
1564 小时
注册时间
2008-8-11
回帖
6023

贵宾

发表于 2008-11-19 21:43:13 | 显示全部楼层
以下引用星辰天羽于2008-11-19 12:26:06的发言:

雪流星……你太强了,等我脚本学好,一定帮你写一个银河系统来答谢!!!

明年吧······
回复

使用道具 举报

头像被屏蔽
梦石
0
星屑
46
在线时间
10 小时
注册时间
2007-5-27
回帖
2407

第1届Title华丽大赛新人奖

发表于 2008-11-20 06:44:41 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复

使用道具 举报

天仙

梦石
0
星屑
720
在线时间
184 小时
注册时间
2008-4-15
回帖
4872

贵宾

 楼主| 发表于 2008-11-20 15:49:22 | 显示全部楼层
以下引用沉影不器于2008-11-19 22:44:40的发言:
先支持一下,回头有时间细看再挑挑毛病

我自己挑到了兩個
已經更新
VA脚本开工中...
偷窃脚本1.0 - 已完成
回复

使用道具 举报

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

本版积分规则

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

在本版发帖返回顶部