查看: 1198|回复: 4

1个很高手的问题

  [复制链接]
头像被屏蔽
梦石
0
星屑
50
在线时间
0 小时
注册时间
2008-7-13
回帖
4
发表于 2008-7-27 06:19:34 | 显示全部楼层 |阅读模式
提示: 作者被禁止或删除 内容自动屏蔽
头像被屏蔽
梦石
0
星屑
50
在线时间
0 小时
注册时间
2008-5-10
回帖
98
发表于 2008-7-27 06:36:18 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

梦石
0
星屑
42235
在线时间
6017 小时
注册时间
2006-11-10
回帖
6966
发表于 2008-7-27 07:25:50 | 显示全部楼层
其实,要实现这类的很简单。

技能引用公共事件,然后用一个变量 来当做概率。然后技能升级的时候就把这个变量的数值提高就行了。

事件举例a,b,c,d等是变量
a 取随机数0-100
b 就是技能的概率。
当a比b小的时候
全体敌人附加催眠。

如果想用单体技能,就用状态法判断。

学习技能的NPC这样设置。
       c = 金钱
       d = 学习技能的钱
       当c 大于 d 的时候
        金钱-d
        b += 1 #变量b加上1%也就是技能增加了1%的命中。
        d += 100 #变量d加上100,也就是下次学习技能要比现在多贵100快。
       条件不满足的时候
        “没钱就别想升级技能。”

设置OK。
回复

使用道具 举报

冰王子

梦石
0
星屑
50
在线时间
34 小时
注册时间
2008-1-27
回帖
1810
发表于 2008-7-27 11:27:28 | 显示全部楼层
还好我之前做得游戏用到这个
http://rpg.blue/web/htm/news145.htm
还要插入一段脚本
  1. class Interpreter
  2. def sklvup(actor_id,skill_id,level_plus,level=nil)
  3. actor = $game_actors[actor_id]
  4. skill = $data_skills[skill_id]
  5. old_level = actor.skill_level[skill_id]
  6. new_level = old_level+level_plus if level == nil
  7. new_level = level if level != nil
  8. loop do
  9. actor.skill_update_main(actor, skill)
  10. if actor.skill_level[skill_id] >= new_level
  11. break
  12. end
  13. end
  14. end
复制代码

在事件中插入脚本sklvup(a,s,lp,lv) 来实现技能的升级
其中
a为角色ID
s为技能ID
lp为等级差
lv为新等级【可以省略,即sklvup(a,s,lp),若不省略,则lp无效化,但是lp不能省略】

另外,脚本中引用游戏变量
$game_variables[xxx]
xxx为变量ID
方法告诉你了,怎么灵活运用就看你自己了

再另外,事件中脚本的书写规则
可以这样写
sklvup(
a,s,lp)
可以这样写
sklvup(a,
s,lp)
不可以这样写
sklvup
(a,s,lp)
不可以这样写
sklvup(a
,s,lp)
之所以说这个,是因为事件中脚本会自动分行

不常在线,有事PM
回复

使用道具 举报

头像被屏蔽
梦石
0
星屑
50
在线时间
0 小时
注册时间
2008-7-13
回帖
4
 楼主| 发表于 2008-7-27 18:40:49 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

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

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部