幻想森林

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1520|回复: 6

[已解决] 关于职业更换和技能的问题

[复制链接]

38

主题

129

帖子

1151

积分

⑥精研

无既空,空既色

积分
1151
发表于 2010-1-13 19:22:24 | 显示全部楼层 |阅读模式
我弄了一个职业更换的NPC可是我更换了职业以后发现职业是更换了,但是技能却还是原来开始的那个职业的技能这是为什么!
回复

使用道具 举报

15

主题

271

帖子

2198

积分

⑥精研

我要疯狂积累活跃度!

积分
2198
QQ
发表于 2010-1-15 09:09:36 | 显示全部楼层
人物需要初始化。。。。。
文章显示:我是转职大仙,你的前途在我手中 按ESC切换更多职业
显示选择项:佣兵,枪兵,勇士,盗贼
【佣兵】的场合
变量操作:【0111:转职等级记录】=【某人】 的 等级
替换队员【某人】加入,初始化
更改角色职业:【某人】,【佣兵】
增减水平:【某人】,+变量【0111:转职等级记录】

【枪兵】的场合
变量操作:【0111:转职等级记录】=【某人】 的 等级
替换队员【某人】加入,初始化
更改角色职业:【某人】,【枪兵】
增减水平:【某人】,+变量【0111:转职等级记录】

【勇士】的场合
变量操作:【0111:转职等级记录】=【某人】 的 等级
替换队员【某人】加入,初始化
更改角色职业:【某人】,【勇士】
增减水平:【某人】,+变量【0111:转职等级记录】

【盗贼】的场合
变量操作:【0111:转职等级记录】=【某人】 的 等级
替换队员【某人】加入,初始化
更改角色职业:【某人】,【盗贼】
增减水平:【某人】,+变量【0111:转职等级记录】

取消的场合
显示选择项:流氓,僧侣,魔导士,火枪手
…………………………
选择项和前面的相同设置

需要注意的问题:
1,所有职业等级为1的时候不要有技能,不然的话转成什么都会跟着角色。当然,你想弄一个所有角色都有的公共技能也可以。
2,转职后角色等级会多1级,如果不想的话可以在下面加一句
  增减水平:【某人】,-1
3,其它问题暂时没发现。变量最好用一个专用变量,我已经把所有用到的变量全都用中文注释了,像上面那样。目前已经消耗了132个变量了 持续消耗中,这仅仅是开始
紫月光流奈河畔, 孤影独行笑苍天。 酆都倒比人间好, 从此慕鬼不羡仙!
回复 支持 反对

使用道具 举报

0

主题

42

帖子

347

积分

④见习

积分
347
发表于 2010-1-15 23:48:04 | 显示全部楼层
$data_classes[1].name = "更改职业"#这样就把1号人物的职业名更改了不用LS那么麻烦
回复 支持 反对

使用道具 举报

550

主题

9116

帖子

214748万

积分

超级版主

如同神一般的存在,腿神!拖后腿的神~~

Rank: 8Rank: 8

积分
2147483647
发表于 2010-1-16 09:19:33 | 显示全部楼层
  1.   #--------------------------------------------------------------------------
  2.   # ● 更改角色的职业
  3.   #--------------------------------------------------------------------------
  4.   def command_321
  5.     # 获取角色
  6.     actor = $game_actors[@parameters[0]]
  7.     # 更改职业
  8.     if actor != nil
  9.       actor.class_id = @parameters[1]
  10.     end
  11.     # 继续
  12.     return true
  13.   end
复制代码

这是事件解释器的  更换职业的脚本。。。可以看到只是把class_id换掉了。。。

可以这样的。。

在 Game_Actor中添加一个清除技能的方法
  1.   def clear_skill
  2.     @skills.clear
  3.     @skills_num.clear
  4.   end
复制代码
之后事件解释器 改成这样
  1.   #--------------------------------------------------------------------------
  2.   # ● 更改角色的职业
  3.   #--------------------------------------------------------------------------
  4.   def command_321
  5.     # 获取角色
  6.     actor = $game_actors[@parameters[0]]
  7.     # 更改职业
  8.     if actor != nil
  9.       actor.class_id = @parameters[1]
  10.       for i in 1..actor.level
  11.         for j in $data_classes[actor.class_id].learnings
  12.           if j.level == i
  13.             learn_skill(j.skill_id)
  14.           end
  15.         end
  16.       end
  17.     end
  18.     # 继续
  19.     return true
  20.   end
复制代码

这样。。更换职业的时候 会把 原来的职业的技能删除掉,并且根据等级 把新职业的技能加上
我就是你们的神,庶民们,追随我吧!跟着我一起拖后腿!
回复 支持 反对

使用道具 举报

38

主题

129

帖子

1151

积分

⑥精研

无既空,空既色

积分
1151
 楼主| 发表于 2010-1-17 14:43:31 | 显示全部楼层
这个好
回复 支持 反对

使用道具 举报

38

主题

129

帖子

1151

积分

⑥精研

无既空,空既色

积分
1151
 楼主| 发表于 2010-1-17 15:01:39 | 显示全部楼层
这个脚本改了以后运行起来为什么出错误了unfind  learn_skill
回复 支持 反对

使用道具 举报

38

主题

129

帖子

1151

积分

⑥精研

无既空,空既色

积分
1151
 楼主| 发表于 2010-1-19 13:03:16 | 显示全部楼层
晕,自己把脚本弄错了,现在可以用了,3QQQQ
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|幻想森林

GMT+8, 2024-5-15 12:39 , Processed in 0.026379 second(s), 21 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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