Project1

标题: 单人负重系统V1.20(2008-8-31 19楼更新 增加新功能) [打印本页]

作者: slick    时间: 2008-7-11 22:35
标题: 单人负重系统V1.20(2008-8-31 19楼更新 增加新功能)
这个是“单人负重系统”的第一个强化版,与物品菜单、装备菜单和游戏默认商店都可以通用。

不同的角色,不仅所持物品不同,而且最大负重也不一样。
与武器装备、状态窗口一样,角色之间的快速切换请按默认的Q、W键。



战斗时不同角色之间也可以互相使用物品(注意,不是相互传递,而是直接给其他队友使用)


载重能力具体设定方法:在脚本核心区的Game_Actor模块里。


另外,商店也跟着起了变化,买卖货物也是分角色处理的。


普通商店的定义方法没变。


不仅能够显示商品重量、角色剩余负重力,而且在角色拿不动的时候会自动拒绝购买。

拒绝购买


可以购买


但要注意,本系统在给角色额外添加物品(不是买到东西)时仍然要像这样设定


最后。。。哼哼,在本范例中,为了调试方便,在主地图上还放了让人掉血的仙人掌


感谢 Hide秀 创意以及 391395435 的建议


这里下载
http://rpg.blue/upload_program/f ... �V1.00_96214931.rar
作者: Eclair    时间: 2008-7-12 20:55
提示: 作者被禁止或删除 内容自动屏蔽
作者: v2sam    时间: 2008-7-14 19:39
哦哦!!!!这个比刚看到的更好呢!!!!{/qiang}{/qiang}
作者: 荆芥    时间: 2008-7-14 19:46
战斗物品掉落是怎么分配的?ROLL?
作者: slick    时间: 2008-7-14 22:14
以下引用荆芥于2008-7-14 11:46:17的发言:

战斗物品掉落是怎么分配的?ROLL?


囧rz......感谢提醒,还要更新。。。。。。这个系统里并无敌人掉落物品{/gg}
作者: slick    时间: 2008-7-16 16:21
单人物品负重系统升级为 V1.10,修正了 V1.00中的几个问题:

1.物品分配问题。
  在 V1.10中,物品的获得可以使用游戏系统默认的增加物品、
武器、防具功能,但不能将默认功能用于物品的丢失,否则有可能
出现BUG。(说通俗点,就是能拿不能丢)

  具体实现方法:在获得物品时(拿取敌人掉落的物品也是按照
这个顺序)由领队优先拿取物品,当领队承重能力不足时自动转为
下一名队员拿取,如果队伍中所有人载重量都不够了,物品就会丢
失。

2.自身装备问题。
  在 V1.10中,人物身上的装备也算作背包重量的一部分。
换句话说,就是你必须先拿得动,才能装备在身上。


需要注意的几个问题:

1.与 V1.00一样,如果想让指定人物增减物品,仍然需要动用脚本设定。


2.游戏中,每一样可能用得上的物品都要设定其重量大小,否则可能出现BUG。


这个 V1.10的人物负重系统分为四个次版本:

V1.10a:战斗系统为默认系统,人物的初始负重力在脚本的Game_Actor模块中设定,游戏中途可以用特定物品扩容。



http://rpg.blue/upload_program/f ... V1.10a_96624669.rar

V1.10b:战斗系统为默认系统,人物的负重力由Game_Actor模块中的一个公式决定,游戏中途不能扩容。


http://rpg.blue/upload_program/f ... V1.10b_96624826.rar

V1.10c:战斗系统为RTAB系统,其余同V1.10a。

http://rpg.blue/upload_program/f ... V1.10c_96625037.rar

V1.10d:战斗系统为RTAB系统,其余同V1.10b。

http://rpg.blue/upload_program/f ... V1.10d_96625280.rar
作者: v2sam    时间: 2008-7-16 17:12
{/qiang}{/qiang}  不错~~

继续等待 已装备物品负重~~
作者: Ж纯Ж蓝Ж    时间: 2008-7-16 23:01
不错不错,可是楼主,这个脚本的冲突性特别大诶,我放了几个MAP类脚本,没一个不冲突的哦..
作者: slick    时间: 2008-7-21 03:41
应该不会,我是在游戏原生系统中开发的。。。。。。{/gg}
作者: 391395435    时间: 2008-7-21 06:15
提示: 作者被禁止或删除 内容自动屏蔽
作者: slick    时间: 2008-7-21 06:39
以下引用391395435于2008-7-20 22:15:05的发言:

怎么发现个不知道是不是你的错误的BUG……
http://rpg.blue/upload_program/files/单人负重系统V1.10a_96624669.rar
里,随便让第一人和别人调整队型,都会出现其中两个人样子相同的情况。

又有BUG……拿宝箱的时候如果物品满(99个)而人物负重有余,那么拿了之后什么也没有,倒是负重增加了。


[本贴由作者于 2008-7-20 22:24:12 最后编辑]


感谢。{/tp}

第一个应该不是,把外挂脚本去掉再试试。

第二个应该去修正{/gg}
作者: 舞舞    时间: 2008-7-21 20:31
这个不错
作者: slick    时间: 2008-7-25 00:35
单人负重系统 2008-7-24 更新至 Ver 1.15

这个1.15版是在 V1.10c 的基础上更新的,针对RTAB战斗系统开发。

冲突可能性:商店类、装备类脚本较大。对于物品图鉴类脚本也有一定冲突性,这一点要注意。

强化内容如下:

1、重量指示栏增加人物装备负重显示。


2、在平时行走状态下,对物品的处置方法添加了“交给”与“丢弃”。


特别指出:队员之间在物品相互交付时,接收方的负荷如不足交付物品总重,则会自动拒绝接收。


注意:当玩家队伍只有一人时,“交给”功能是无效的。

3、无论额外获取还是商店购买,物品均无99上限,除非负重超标。



特别感谢 391395435 的指正与建议!

这里下载:
http://rpg.blue/upload_program/f ... �V1.15_97346057.rar
作者: hide秀    时间: 2008-7-25 15:34
话说这个系统还没完?
啥时候完了告诉我声 预备帮你发布
作者: 391395435    时间: 2008-7-25 21:54
提示: 作者被禁止或删除 内容自动屏蔽
作者: slick    时间: 2008-7-25 23:43
单人物品负重系统最终版V1.16[发布预备]

系统制作:SLICK

创意提供:Hide秀、v2Sam、391395435

DEBUG:391395435

这个系统最初是基于Hide秀的“队伍负重系统”脚本而加以编写的。

冲突可能性:商店类、装备类脚本较大。对于物品图鉴类脚本也有一定冲突性,这一点要注意。

不同的角色,不仅所持物品不同,而且最大负重也不一样。
与武器装备、状态窗口一样,角色之间的快速切换请按默认的Q、W键。

战斗时不同角色之间也可以互相使用物品(注意,
战斗中物品不可以相互交付,而只能直接给其他队友使用)


载重能力具体设定方法:在脚本核心区的Game_Actor模块里。


另外,商店也跟着起了变化,买卖货物也是分角色处理的。


与默认功能一样,商店的定义方法没变。


不仅能够显示商品重量、角色剩余负重力,而且在角色拿不动的时候会自动拒绝购买。

拒绝购买


可以购买


需要注意的几个问题:

1.物品分配
  物品的获得可以使用游戏系统默认的增加物品、
武器、防具功能,但不能将默认功能用于物品的丢失,否则有可能
出现BUG。(说通俗点,就是能拿不能丢)

  具体实现方法:在获得物品时(拿取敌人掉落的物品也是按照
这个顺序)由领队优先拿取物品,当领队承重能力不足时自动转为
下一名队员拿取,如果队伍中所有人载重量都不够了,物品就会丢
失。

2.自身装备
  人物身上的装备也算作背包重量的一部分。


3、在平时行走状态下,对物品的处置方法分为“使用、”“交给”与“丢弃”。


特别指出:队员之间在物品相互交付时,接收方的负荷如不足交付物品总重,则会自动拒绝接收。


注意:当玩家队伍只有一人时,“交给”功能是无效的。

4.如果想让指定人物获得或丢失物品,需要动用脚本设定。


5.游戏中,每一样用得上的物品的重量值如果缺省,就默认为0,
 但最好都要尽可能设定其重量大小,以免出现BUG。


6.这个单人物品负重系统是基于RTAB开发的,普通战斗系统不适用。
人物的初始负重力在脚本的Game_Actor模块中设定,游戏中途可以用特定物品扩容。



7、无论额外获取还是商店购买,物品均无99上限,除非负重超标。



最后。。。哼哼,在本范例中,为了调试方便,在主地图上还放了让人掉血的仙人掌


这里下载:
http://rpg.blue/upload_program/f ... �V1.16_97429315.rar
作者: slick    时间: 2008-7-25 23:54
以下引用391395435于2008-7-25 13:54:46的发言:


以下引用hide秀于2008-7-25 7:34:08的发言:

话说这个系统还没完?
啥时候完了告诉我声 预备帮你发布


呵呵~~估计这个新系统还是有一定的BUG~~毕竟物品系统关系到很多地方~~





也不知道怎么说了,刚才一玩又出现奇怪的地方
http://rpg.blue/upload_program/files/png_97423999.png
我是去右方宝箱乱拿的,结果竟然是这个样子……


[本贴由作者于 2008-7-25 14:15:08 最后编辑]


这些问题在 V1.16 版里已修正。

作者: ltygb    时间: 2008-8-28 03:04
好东东!!!!收藏了!!!![img][/img]
作者: slick    时间: 2008-9-1 07:30
揪出两个BUG - 该系统如用在武器和防具上会出现脚本错,在V1.20里修正。
老规矩,我还是放上V1.20a(回合制战斗)和V1.20b(RTAB战斗)两个版本。

新增内容:

可以使用RMXP系统默认的“丢失物品”了。



具体规则为:从领队开始丢失物品,当领队的物品持有数不足时转为下一名队员丢失,
直到丢完为止

下载补丁:

V 1.20a
http://rpg.blue/upload_program/f ... 1.20a_100653697.rar

V 1.20b
http://rpg.blue/upload_program/f ... 1.20b_100654027.rar

作者: 小心    时间: 2009-4-15 07:06
我有几个问题想请问楼主:
   一 我设置了一个【只能开一次的宝箱】,当队伍的【负重超限时】,结果什么也没拿到!
请问怎样判断队伍负重超限时,【物品拿不到但也不会消失】。
   第二个是【重要的事件物品不能丢弃】,默认的是可以丢的,(我用的版本)
如果把打魔王的光球丢了{/ll}
   还有一个,新的系统能用事件的【条件分歧】判断物品在持有中吗?
    楼主加油哦!这系统是我游戏必备的捏!
作者: slick    时间: 2009-4-16 04:24
以下引用小心于2009-4-14 23:06:46的发言:

我有几个问题想请问楼主:
  一 我设置了一个【只能开一次的宝箱】,当队伍的【负重超限时】,结果什么也没拿到!
请问怎样判断队伍负重超限时,【物品拿不到但也不会消失】。
  第二个是【重要的事件物品不能丢弃】,默认的是可以丢的,(我用的版本)
如果把打魔王的光球丢了
  还有一个,新的系统能用事件的【条件分歧】判断物品在持有中吗?
   楼主加油哦!这系统是我游戏必备的捏!


回小心:

把这个ID数组粘在程序的最前面,它规定了哪些物品是不能丢掉的

$不能丢弃的物品 = [24,27,29,30,34,36,37,38,75,77,194,226,227,234,230,240,241,242,243,385,387,418,419]


然后,把这个粘入class Game_Party类模块的最下方试试!
#--------------------------------------------------------------------------
  # ● 增加物品
  #     item_id : 物品 ID
  #     n       : 个数
  #--------------------------------------------------------------------------
  def gain_item(item_id, n)
    # 更新 hash 的个数数据
    if n < 0
      lose_item(item_id, -n)
      return
    end  
    if item_id > 0
      # 如果是“不允许丢弃的物品”,就强制加在领队身上。不管是否超重。
      if $不能丢弃的物品.include?(item_id)
        $game_party.actors[0].gain_item(item_id, n)
        return
      end
      wwwt = $data_items[item_id].weight
      straight = 0 #从领队开始依次拿取物品,当领队载重量不够时转至下一个队员获取
      for iii in 0...n #检查物品n次
        leftwt = $game_party.actors[straight].indi_capacity - $game_party.actors[straight].total_weight
        while leftwt < wwwt
          straight += 1
          if straight>=$game_party.actors.size
            return
          end  
          leftwt = $game_party.actors[straight].indi_capacity - $game_party.actors[straight].total_weight
        end
        $game_party.actors[straight].gain_item(item_id, 1)
      end
    end
  end

另外,事件的“条件分歧”是可以判定物品持有数的。

Search for this sentence:
if @dowi_window.index==1

Then, Put the new program below
  to an proper place!


  1. if @dowi_window.index==1
  2.           if $game_party.actors.size<2
  3.             $game_system.se_play($data_system.buzzer_se)
  4.             return
  5.           end  
  6.           $正在交付物品=1
  7.           $正在丢弃物品=0
  8.           @dowi_window.active=false
  9.           @dowi_window.visible=false
  10.           @give_window.dispose
  11.           @give_window=Window_Give.new(@actor)
  12.           @give_window.active=true
  13.           @give_window.visible=true
  14.         else
  15.           @item = @item_window.item
  16.           if $不能丢弃的物品.include?(@item.id)
  17.             $game_system.se_play($data_system.buzzer_se)
  18.             return
  19.           end
  20.           $正在交付物品=0
  21.           $正在丢弃物品=1
  22.           @dowi_window.active=false
  23.           @dowi_window.visible=false         
  24.           @num_window.dispose
  25.           @num_window = Window_GiveNum.new(@actor, @item)
  26.           @num_window.active=true
  27.           @num_window.visible=true
  28.         end  
  29.         $game_system.se_play($data_system.decision_se)
  30.         return
  31.       end  
复制代码

作者: 小心    时间: 2009-4-18 04:47
楼主谢了!{/wx}
作者: ppi    时间: 2009-4-20 05:36
话说楼主可以再整合一个物品仓库,这样的话就用图会跟大,脚本的伸缩性也加强了!
作者: ppi    时间: 2009-4-20 06:04
发现一个bug,如果角色包包里没物品的话,选择丢弃会出错




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1