Project1

标题: 有事请教 [打印本页]

作者: yy5654321    时间: 2009-5-19 23:37
提示: 作者被禁止或删除 内容自动屏蔽
作者: 黑鏻    时间: 2009-5-20 02:38
# 不确定的特技的情况下设置为有效标志
    effective |= hit < 100

# 公共事件 ID 是有效的情况下,设置为有效标志
effective |= skill.common_event_id > 0

hit 命中

skill.common_event_id  公共事件 ID

effective  有效标志


搜的,其实我不懂脚本..



作者: 紫苏    时间: 2009-5-20 05:49
effective 是用来返回给调用 skill_effect 和 item_effect 方法的,如果为 true,说明该技能或物品起到了作用,那么就播放使用的 SE,消耗 SP,刷新窗口,执行公共事件等;如果为 false,那说明这个技能或物品没有起到作用,于是播放一个无效 SE~

effective 的运算方法就是,在方法一开始将它设为 false,然后在接下来的计算中每遇到可以让技能或物品变得有效的效果,都让该效果是否有效(true/false)或上 effective 本身,这样只要 effective 和 该效果之中有一个是 true,effective 就会变为 true~如果直接给 effective 赋值的话,可能该效果无效(false),但 effective 本身在此时是有效的(true),这样一来 effective 就被强制变为无效了……

effective |= hit < 100
判断命中率是否小于 100,如果小于 100 的话就表示永远有效;

effective |= skill.common_event_id > 0
判断技能/物品是否带公共事件,若是则永远有效 [LINE]1,#dddddd[/LINE]系统信息:本贴由楼主认可为正确答案,66RPG感谢您的热情解答~
作者: 新月の道化师    时间: 2009-5-20 05:55
以下引用紫苏于2009-5-19 21:49:44的发言:
<BR><SCRIPT language="javascript">
都让该效果是否有效(true/false)与上 effective 本身

MS应该是或运算。。。
作者: 紫苏    时间: 2009-5-20 05:57
以下引用新月の道化师于2009-5-19 21:55:25的发言:

MS应该是或运算。。。

呃,说错了,感谢提醒{/hx}
作者: 沉影不器    时间: 2009-5-20 06:16
提示: 作者被禁止或删除 内容自动屏蔽
作者: 紫苏    时间: 2009-5-20 07:39
a 初始为 nil,nil 在 Ruby 中的逻辑值为 false,所以 false | 1 也是逻辑或运算诶~

a |= 1
p a # <= true {/gg}

如果 a 初始为整数,那 a | 1 就是按位或运算了~

永久有效是因为 effetive 自初始化后,程序对其的运算都是或运算,所以一旦中途 effective 变为了 true,就不可能再变为 false 了
作者: yy5654321    时间: 2009-5-20 19:33
提示: 作者被禁止或删除 内容自动屏蔽
作者: 沉影不器    时间: 2009-5-25 04:00
提示: 作者被禁止或删除 内容自动屏蔽




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