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

Project1

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

[应求发布]负重系统

 关闭 [复制链接]

Lv2.观梦者

天仙

梦石
0
星屑
620
在线时间
184 小时
注册时间
2008-4-15
帖子
5023

贵宾

跳转到指定楼层
1
发表于 2008-11-19 12:35:06 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
就是在物品画面的右上角放了一个显示负重的窗口
在物品的备注里面写
[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 - 已完成

Lv1.梦旅人

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

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

2
发表于 2008-11-19 14:41:16 | 只看该作者
{/se}谢谢。。我也正需要
回复 支持 反对

使用道具 举报

Lv4.逐梦者

世界坑化协会

梦石
0
星屑
7812
在线时间
1563 小时
注册时间
2007-3-13
帖子
5542

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

3
发表于 2008-11-19 17:12:02 | 只看该作者
{/dy} 谢谢流星,这是第一个VX版?
你的肩膀上有肩周炎~♪  秒懂  ☚   \没有
回复 支持 反对

使用道具 举报

Lv1.梦旅人

穿越一季:朔

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

贵宾

4
发表于 2008-11-19 18:17:29 | 只看该作者
{/hx}流星果然是女神{/fd}的化身.. [楼下..你赢了]

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

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

使用道具 举报

Lv1.梦旅人

kissye的宠物<

梦石
0
星屑
61
在线时间
1563 小时
注册时间
2008-8-11
帖子
6174

贵宾

5
发表于 2008-11-19 18:22:48 | 只看该作者
楼上口胡!天使的化身是八云>_<流星姐姐是女神的化身………
回复 支持 反对

使用道具 举报

Lv2.观梦者

天仙

梦石
0
星屑
620
在线时间
184 小时
注册时间
2008-4-15
帖子
5023

贵宾

6
 楼主| 发表于 2008-11-19 18:45:27 | 只看该作者
补充一下:
每个角色的负重公式:
(HP最大值+MP最大值) X 等级 / 速度
VA脚本开工中...
偷窃脚本1.0 - 已完成
回复 支持 反对

使用道具 举报

Lv1.梦旅人

星辰创始

梦石
0
星屑
65
在线时间
155 小时
注册时间
2008-3-8
帖子
611
7
发表于 2008-11-19 20:26:06 | 只看该作者
雪流星……你太强了,等我脚本学好,一定帮你写一个银河系统来答谢!!!{/se}
回复 支持 反对

使用道具 举报

Lv1.梦旅人

kissye的宠物<

梦石
0
星屑
61
在线时间
1563 小时
注册时间
2008-8-11
帖子
6174

贵宾

8
发表于 2008-11-19 21:43:13 | 只看该作者
以下引用星辰天羽于2008-11-19 12:26:06的发言:

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

明年吧······
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
46
在线时间
10 小时
注册时间
2007-5-27
帖子
2558

第1届Title华丽大赛新人奖

9
发表于 2008-11-20 06:44:41 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复 支持 反对

使用道具 举报

Lv2.观梦者

天仙

梦石
0
星屑
620
在线时间
184 小时
注册时间
2008-4-15
帖子
5023

贵宾

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

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

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-16 07:37

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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