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

Project1

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

[已经解决] 如何使某一类的状态仅能同时存在x个?

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
178 小时
注册时间
2011-2-6
帖子
61
跳转到指定楼层
1
发表于 2014-7-27 18:31:25 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
恩,举个例子的话……
比如在游戏中考虑到角色要消化,所以每一种食物使用效果其实都是获得一个持续恢复的状态。但是又怕玩家狂吃海塞,所以限制一下这种食物状态同一时间只能存在三个,达到上限时如果有新的出现,则将最早出现的状态直接结束。
另外,游戏中也有如缓慢恢复魔法之类的持续恢复状态,与食物状态互不影响,不占用限额……所以最好不要判断特性,在备注里加个标签来判断可以么?

Lv3.寻梦者 (版主)

…あたしは天使なんかじゃないわ

梦石
0
星屑
2208
在线时间
4033 小时
注册时间
2010-10-4
帖子
10779

开拓者贵宾

2
发表于 2014-7-27 18:42:53 | 只看该作者
本帖最后由 taroxd 于 2014-7-27 19:44 编辑

RUBY 代码复制
  1. class Game_Battler
  2.   STATE_20140727 = {
  3.     [4,5,6,7,8] => 3, # 4,5,6,7,8 号状态只能出现 3 个
  4.     [9,10,11] => 2,
  5.   }
  6.  
  7.   alias cs_20140727 clear_states
  8.   def clear_states
  9.     cs_20140727
  10.     @states_by_time = []
  11.   end
  12.  
  13.   alias as_20140727 add_state
  14.   def add_state(state_id)
  15.     @states_by_time.push(state_id)
  16.     as_20140727(state_id)
  17.     STATE_20140727.each do |list, max|
  18.       if list.count {|id| state?(id) } > max
  19.         remove_state(@states_by_time.find {|id| list.include?(id) })
  20.       end
  21.     end
  22.   end
  23.  
  24.   alias rs_20140727 remove_state
  25.   def remove_state(state_id)
  26.     @states_by_time.delete(state_id)
  27.     rs_20140727(state_id)
  28.   end
  29. end

依旧未测试

点评

没有在第二次测试中发现问题。谢谢大大~  发表于 2014-7-27 20:18

评分

参与人数 1梦石 +1 收起 理由
VIPArcher + 1 (ΦωΦ)

查看全部评分

回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
178 小时
注册时间
2011-2-6
帖子
61
3
 楼主| 发表于 2014-7-27 19:37:11 | 只看该作者
taroxd 发表于 2014-7-27 18:42
class Game_Battler
  STATE_20140727 = {
    [4,5,6,7,8] => 3, # 4,5,6,7,8 号状态只能出现 3 个

利用道具附加状态来,在非战斗的情况测试了下。
貌似有角色被打上a,b状态后再打上c,a因为c而消失后在bc状态消失前不能再打上a的问题……(;´Д`)

点评

重新弄了一下,不过还是没有测试  发表于 2014-7-27 19:44
啊,抱歉,貌似按照状态优先级排序了- - 我去弄弄  发表于 2014-7-27 19:40
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-21 22:00

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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