Project1
标题:
如何製作武器隨機發動技能?
[打印本页]
作者:
deathmagician
时间:
2010-11-15 08:05
提示:
作者被禁止或删除 内容自动屏蔽
作者:
fux4
时间:
2010-11-15 08:39
本帖最后由 fux2 于 2010-11-15 10:33 编辑
回复
deathmagician
的帖子
手机无法测试,不知对否,for的end没写,自行添加。
ha = {16=>13,17=>14}
for a in ha.keys
if$data_weapons[@active_battler.weapon_id].element_set.include?(a.to_i)
if rand(100) <= 100 #判断概率
# 获取特技
@skill = $data_skills[ha[a].values.to_i]
# 消耗 SP
@active_battler.sp -= @skill.sp_cost
# 刷新状态窗口
@status_window.refresh
# 在帮助窗口显示特技名
@help_window.set_text(@skill.name, 1)
复制代码
作者:
sarielyukaries
时间:
2010-11-15 08:57
拿这个脚本来看,整体思路是,如果产生一个随机数,这个随机数处于某个范围,则获得某个技能,并发动。
所以,这个脚本让我有些看不懂,当然,也可能是我水平不够。
其中最明显的就是
if rand(100) <=100
也就是判断概率这句。在0-99内产生随机数,必定会小于100,所以,普通攻击必定会触发技能。也就是说,这个脚本的触发技能概率并不是60%而是100%,普通攻击必定触发技能。
我想这很可能就是怪物普通攻击导致游戏出错的原因,因为怪物触发了技能。(即有可能是你的第13号技能也有可能是第17号武器属性设计的有问题----如果你没有改脚本原样用的话----如果你拿到含有17号属性的武器的话,估计你的普通攻击也会导致游戏出错)
抛开你所说的怪物会普通攻击导致游戏出错这个致命问题(实际上是我不会)。
如果要实现某武器普通攻击60%概率触发某技能,然后60%概率触发某技能。我觉得可以在这个脚本后面加上一个
elsif rand(100) <= 60 #判断概率
# 获取14号特技
@skill = $data_skills[14]
# 消耗 SP
@active_battler.sp -= @skill.sp_cost
# 刷新状态窗口
@status_window.refresh
# 在帮助窗口显示特技名
@help_window.set_text(@skill.name, 1)
机理就是,如果触发第一技能失败后,判定是否触发第二个技能。
不过我个人是前天刚开始研究脚本这个东西的,你就当我是砖头,扔出来让人看看,还是让大神讲解下吧。
作者:
sarielyukaries
时间:
2010-11-15 09:24
回复
fux4
的帖子
if$data_weapons[@active_battler.weapon_id].element_set.include?(a.to_i)
这句形式我不太懂,望解答。
作者:
deathmagician
时间:
2010-11-15 10:15
提示:
作者被禁止或删除 内容自动屏蔽
作者:
deathmagician
时间:
2010-11-15 10:19
提示:
作者被禁止或删除 内容自动屏蔽
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1