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

Project1

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

[已经过期] 如何製作武器隨機發動技能?

[复制链接]
头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
32 小时
注册时间
2010-10-19
帖子
11
跳转到指定楼层
1
发表于 2010-11-15 08:05:39 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
提示: 作者被禁止或删除 内容自动屏蔽
头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
32 小时
注册时间
2010-10-19
帖子
11
6
 楼主| 发表于 2010-11-15 10:19:40 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
32 小时
注册时间
2010-10-19
帖子
11
5
 楼主| 发表于 2010-11-15 10:15:04 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
49
在线时间
27 小时
注册时间
2010-11-5
帖子
28
4
发表于 2010-11-15 09:24:14 | 只看该作者
回复 fux4 的帖子

if$data_weapons[@active_battler.weapon_id].element_set.include?(a.to_i)

这句形式我不太懂,望解答。

点评

啊嘞=。=#在66的人生第一次被扣分诶。。。 话说,都是用点评回复吗?  发表于 2010-11-16 08:52
武器(当前活动角色)的属性名包含...  发表于 2010-11-15 09:44

评分

参与人数 1星屑 -2 收起 理由
fux2 -2 请勿连帖,此次为提示,下次20.

查看全部评分

回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
49
在线时间
27 小时
注册时间
2010-11-5
帖子
28
3
发表于 2010-11-15 08:57:29 | 只看该作者
拿这个脚本来看,整体思路是,如果产生一个随机数,这个随机数处于某个范围,则获得某个技能,并发动。
所以,这个脚本让我有些看不懂,当然,也可能是我水平不够。
其中最明显的就是
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)

机理就是,如果触发第一技能失败后,判定是否触发第二个技能。

不过我个人是前天刚开始研究脚本这个东西的,你就当我是砖头,扔出来让人看看,还是让大神讲解下吧。

点评

随机数不是产生错误的原因  发表于 2010-11-15 09:46
回复 支持 反对

使用道具 举报

Lv3.寻梦者

可以吃的头衔

梦石
0
星屑
1000
在线时间
423 小时
注册时间
2010-10-17
帖子
602
2
发表于 2010-11-15 08:39:44 | 只看该作者
本帖最后由 fux2 于 2010-11-15 10:33 编辑

回复 deathmagician 的帖子

手机无法测试,不知对否,for的end没写,自行添加。
  1. ha = {16=>13,17=>14}
  2. for a in ha.keys
  3. if$data_weapons[@active_battler.weapon_id].element_set.include?(a.to_i)
  4.     if rand(100) <= 100 #判断概率
  5.     # 获取特技
  6.     @skill = $data_skills[ha[a].values.to_i]
  7.     # 消耗 SP
  8.     @active_battler.sp -= @skill.sp_cost
  9.     # 刷新状态窗口
  10.     @status_window.refresh
  11.     # 在帮助窗口显示特技名
  12.     @help_window.set_text(@skill.name, 1)
复制代码

点评

3q  发表于 2010-11-15 09:46
……
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-27 21:48

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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