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

Project1

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

物品种类限制数量(负重限制)

 关闭 [复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
5 小时
注册时间
2008-4-22
帖子
34
跳转到指定楼层
1
发表于 2008-7-2 22:07:06 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
按物品种类限制数量的修改方法.

    例: 只许带四种药品的情况下,如负重限制
         
    药品 = {"小回复药","中回复药","大回复药","特大回复药"}
      
    组合任挑,限带三瓶.

    那以下的脚本可能帮得上.

注: 回应yangli2005的帖子

  1. #==============================================================================
  2. # 作者: westbugs
  3. #------------------------------------------------------------------------------
  4. #  回应yangli2005
  5. #
  6. #    按物品种类限制数量的修改方法.
  7. #    例: 只许带四种药品的情况下
  8. #          药品 = {"A","B","C","D"}
  9. #    组合任挑
  10. #==============================================================================

  11. class Game_Party < Game_Unit
  12.   

  13.   #--------------------------------------------------------------------------
  14.   # ● 增加物品(减少)
  15.   #     item          : 物品
  16.   #     n             : 个数
  17.   #     include_equip : 包括装备
  18.   #--------------------------------------------------------------------------
  19.   def gain_item(item, n, include_equip = false)
  20.     number = item_number(item)
  21.     case item
  22.     when RPG::Item  
  23.         @items[item.id] = [[number + n, 0].max, 99].min
  24.     when RPG::Weapon
  25.       @weapons[item.id] = [[number + n, 0].max, 99].min
  26.     when RPG::Armor
  27.       @armors[item.id] = [[number + n, 0].max, 99].min
  28.     end
  29.     n += number
  30.     if include_equip and n < 0
  31.       for actor in members
  32.         while n < 0 and actor.equips.include?(item)
  33.           actor.discard_equip(item)
  34.           n += 1
  35.         end
  36.       end
  37.     end



  38.     #插入处, 道具种类 = {"1","2","3","4"}        
  39.          temp = $game_party.item_no(1)  +     $game_party.item_no(2) +     $game_party.item_no(3) +     $game_party.item_no(4)
  40.     if temp >3
  41.       $game_party.lose_item(item,1)
  42.     end
  43.     #插入处, 道具种类 = {"1","2","3","4"}

  44.     end
  45. end

  46. class Game_Party < Game_Unit
  47. def item_no(n)
  48.    return item_number($data_items[n])
  49. end
  50. end
复制代码


改中间描述那一段就好了
勤奋的懒鬼

Lv3.寻梦者 (暗夜天使)

名侦探小柯

梦石
0
星屑
3299
在线时间
3619 小时
注册时间
2006-9-6
帖子
37400

开拓者贵宾第3届短篇游戏大赛主流游戏组亚军第5届短篇游戏比赛亚军

2
发表于 2008-7-2 23:13:31 | 只看该作者
感觉用途不明确……
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
5 小时
注册时间
2008-4-22
帖子
34
3
 楼主| 发表于 2008-7-2 23:49:17 | 只看该作者
恩, 其实是回应yangli2005的帖子.感觉上yangli2005的构想是如下:

角色最大负重是3KG,总共有四个瓶子,一个瓶子重1KG, 载满3瓶后就不能再拿多余的瓶子了.

只是KG换成药品, 武器和 素材.

如盗墓游戏里, 玩者只能拿三颗夜光珠, 六枚玛瑙石,否则被诅咒.

这构想蛮有趣, 虽然我的游戏暂时不会用到(所以之前都是废话{/ll}).
勤奋的懒鬼
回复 支持 反对

使用道具 举报

Lv3.寻梦者 (暗夜天使)

名侦探小柯

梦石
0
星屑
3299
在线时间
3619 小时
注册时间
2006-9-6
帖子
37400

开拓者贵宾第3届短篇游戏大赛主流游戏组亚军第5届短篇游戏比赛亚军

4
发表于 2008-7-2 23:53:47 | 只看该作者
那怎么不直接开发一个负重系统呢……
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
5 小时
注册时间
2008-4-22
帖子
34
5
 楼主| 发表于 2008-7-3 00:35:29 | 只看该作者
写完, 测好后要更改. 感觉自由度太弱

  1. #==============================================================================
  2. # 作者: westbugs
  3. #------------------------------------------------------------------------------
  4. #  回应越前リョーマ
  5. #
  6. #    更改重量,预设值=10
  7. #==============================================================================

  8. class Game_Party < Game_Unit
  9.   #更改重量,预设值=10
  10.   def weight
  11.     return 10
  12.   end
  13.   #--------------------------------------------------------------------------
  14.   # ● 增加物品(减少)
  15.   #     item          : 物品
  16.   #     n             : 个数
  17.   #     include_equip : 包括装备
  18.   #--------------------------------------------------------------------------
  19.   def gain_item(item, n, include_equip = false)
  20.     number = item_number(item)
  21.     case item
  22.     when RPG::Item  
  23.         @items[item.id] = [[number + n, 0].max, 99].min
  24.     when RPG::Weapon
  25.       @weapons[item.id] = [[number + n, 0].max, 99].min
  26.     when RPG::Armor
  27.       @armors[item.id] = [[number + n, 0].max, 99].min
  28.     end
  29.     n += number
  30.     if include_equip and n < 0
  31.       for actor in members
  32.         while n < 0 and actor.equips.include?(item)
  33.           actor.discard_equip(item)
  34.           n += 1
  35.         end
  36.       end
  37.     end

  38.     temp = 0
  39.     for i in 1..99
  40.          temp += $game_party.item_no(i)  
  41.     end
  42.     if temp >weight
  43.       $game_party.lose_item(item,1)
  44.     end

  45.     end
  46. end

  47. class Game_Party < Game_Unit
  48. def item_no(n)
  49.    return item_number($data_items[n])
  50. end
  51. end
复制代码
勤奋的懒鬼
回复 支持 反对

使用道具 举报

Lv3.寻梦者 (暗夜天使)

名侦探小柯

梦石
0
星屑
3299
在线时间
3619 小时
注册时间
2006-9-6
帖子
37400

开拓者贵宾第3届短篇游戏大赛主流游戏组亚军第5届短篇游戏比赛亚军

6
发表于 2008-7-3 02:34:23 | 只看该作者
……
话说负重系统应该是一个变量当作负重最大数值……
然后每个物品拥有一个重量吧……
回复 支持 反对

使用道具 举报

Lv1.梦旅人

粉蜘蛛秀秀

梦石
0
星屑
76
在线时间
39 小时
注册时间
2007-6-4
帖子
384

贵宾第1届Title华丽大赛新人奖

7
发表于 2008-7-6 05:14:16 | 只看该作者
{/cy}每个物品一个重量~有意思

回头去写个负重系统XP版的~{/wx}
http://rpg.blue/upload_program/files/hide_xiu_96911465.png
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-16 13:42

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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