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

Project1

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

有事请教

 关闭 [复制链接]
头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
0 小时
注册时间
2007-1-20
帖子
36
跳转到指定楼层
1
发表于 2009-5-8 06:25:01 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
提示: 作者被禁止或删除 内容自动屏蔽

Lv1.梦旅人

梦石
0
星屑
61
在线时间
24 小时
注册时间
2008-8-5
帖子
1924
2
发表于 2009-5-8 07:03:34 | 只看该作者
      # 所有状态的循环
      for i in 1...$data_states.size
        # 状态变化 (+) 处理
        if $data_states[state_id].plus_state_set.include?(i)
          add_state(i)
        end
        # 状态变化 (-) 处理
        if $data_states[state_id].minus_state_set.include?(i)
          remove_state(i)
        end
      end
这一段是在对一个战斗者添加状态时执行的,for 循环遍历数据库中的所有状态,如果发现某状态是当前 add_state 将要添加的状态的附加状态,就再次调用 add_state 添加该状态;如果发现某状态是当前 add_state 将要添加的状态的解除状态,就调用 remove_state 解除该状态~可以看出这里 add_state 有一个递归调用的过程,附加状态添加后再次添加附加状态的附加状态,直到没有附加状态或者状态已经添加了(递归的出口)
    # 无法强制附加的情况下
    unless force
      # 已存在的状态循环
      for i in @states
        # 新的状态和已经存在的状态 (-) 同时包含的情况下、
        # 本状态不包含变化为新状态的状态变化 (-)
        # (ex : 战斗不能与附加中毒同时存在的场合)
        if $data_states.minus_state_set.include?(state_id) and
           not $data_states[state_id].minus_state_set.include?(i)
          # 过程结束
          return
        end
      end
    end
这一段是在状态不是被强制添加的情况下,遍历战斗者当前已有的状态,如果已有的状态中包含会解除即将要添加的状态的状态,或者当前要添加的状态会解除任何一个当前已有的状态,那么就直接结束整个添加状态的过程,因为不能让有解除关系的两个状态同时存在,比如战斗不能和其它状态不能同时存在~
系统信息:本贴由楼主认可为正确答案,66RPG感谢您的热情解答~
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
0 小时
注册时间
2007-1-20
帖子
36
3
 楼主| 发表于 2009-5-8 15:08:54 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
61
在线时间
24 小时
注册时间
2008-8-5
帖子
1924
4
发表于 2009-5-8 15:19:44 | 只看该作者
你打开数据库,切换到“状态”选项卡,右手边就可以设置附加/解除某状态~
意思就是说,当附加这个状态的时候自动附加/解除另一个状态

你看默认的战斗不能设置,除了战斗不能状态本身,其它状态全部都是减号,也就是当战斗不能状态被附加时自动解除其它所有状态~
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
0 小时
注册时间
2007-1-20
帖子
36
5
 楼主| 发表于 2009-5-8 18:42:43 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2025-1-15 20:57

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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