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

Project1

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

[已经解决] 如何实现复数职业达到指定等级后自动学习某项技能

[复制链接]

Lv3.寻梦者

梦石
0
星屑
1452
在线时间
892 小时
注册时间
2011-3-4
帖子
839
跳转到指定楼层
1
发表于 2014-11-21 10:23:24 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
比如要求是战士10级,法师10级。如何让角色达到这个要求后自动获得一个技能。
PS:任何角色达到要求都会获得技能,而不是特定某个角色。
全民制作人们,大家好,我是练习时长两年半的黄油制作人绿坝,喜欢唱、跳、rap、篮球,music!欢迎加群:107335249
路路 该用户已被删除
2
发表于 2014-11-21 10:40:32 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

Lv3.寻梦者

闇吼者の災悪眷族
不気味存在締造者

梦石
0
星屑
1366
在线时间
2881 小时
注册时间
2014-7-29
帖子
6491
3
发表于 2014-11-21 11:56:26 | 只看该作者
这……难道不就是 数据库 - 职业 下面那一个技能列表做的事吗……
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1452
在线时间
892 小时
注册时间
2011-3-4
帖子
839
4
 楼主| 发表于 2014-11-21 12:19:30 | 只看该作者

可能我说的不太明白楼上的误解了。
比方说A的职业是战士10级,然后他转职成法师也升级到10级,在法师升级到10级的时候他获得某个技能;
就是说在两个或两个以上职业达到某个等级要求的时候,角色获得某个技能。

点评

你的意思是要两个职业同时都达到某个等级才习得技能? 那我觉得你真该好好整理一下1L的意思  发表于 2014-11-21 12:37
全民制作人们,大家好,我是练习时长两年半的黄油制作人绿坝,喜欢唱、跳、rap、篮球,music!欢迎加群:107335249
回复 支持 反对

使用道具 举报

Lv3.寻梦者

闇吼者の災悪眷族
不気味存在締造者

梦石
0
星屑
1366
在线时间
2881 小时
注册时间
2014-7-29
帖子
6491
5
发表于 2014-11-21 12:46:54 | 只看该作者
绿坝 发表于 2014-11-21 12:19
可能我说的不太明白楼上的误解了。
比方说A的职业是战士10级,然后他转职成法师也升级到10级,在 ...

如果是需要复数职业达到特定等级,再让该人物习得某技能思路有很多种,
我在这就先提供一种思路给你。

假使战士10级、法师10级,习得火焰刃。

那么在战士10级的时候给该人物附加一个不会被死亡解除的状态,状态无内容只是充当“变量”用的。
然后在他法师10级的时候,检测该人物是否处于上述状态,
如果是则解除状态并习得火焰刃;如果不是附加上上述状态。

同理你在战士10级的时候给人物习得一个技能,叫“火焰刃灵感”的空壳技能。
法师时候检测是否学会该技能,是则学会真正的火焰刃。
回复 支持 反对

使用道具 举报

Lv3.寻梦者 (版主)

…あたしは天使なんかじゃないわ

梦石
0
星屑
2208
在线时间
4033 小时
注册时间
2010-10-4
帖子
10779

开拓者贵宾

6
发表于 2014-11-22 15:34:57 | 只看该作者
本帖最后由 taroxd 于 2014-11-25 12:33 编辑

未测试

RUBY 代码复制
  1. LIST_20141122 = [
  2.   # [ 技能ID, { 职业ID => 等级, 职业 ID => 等级, ...} ],
  3.   [ 12, { 1 => 10, 2 => 10 } ],
  4.   # and so on...
  5.  
  6. ]
  7.  
  8. class Game_Actor
  9.  
  10.   alias lvup_20141122 level_up
  11.  
  12.   def level_up
  13.  
  14.     lvup_20141122
  15.  
  16.     LIST_20141122.each do |skill_id, class_to_level|
  17.       class_to_level.all? do |cl, lv|
  18.         @exp[cl] ||= 0
  19.         @exp[cl] >= $data_classes[cl].exp_for_level(lv)
  20.       end && learn_skill(skill_id)
  21.     end
  22.   end
  23.  
  24. end

评分

参与人数 2星屑 +31 梦石 +1 收起 理由
VIPArcher + 1 + 1 看不懂楼主问的是啥意思...
绿坝 + 30 我很赞同

查看全部评分

回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
9280
在线时间
2504 小时
注册时间
2011-5-20
帖子
15389

开拓者

7
发表于 2014-11-22 16:46:54 | 只看该作者
你指的是一个角色多职业?然后指定的职业都到了10级才能学会技能?

点评

en  发表于 2014-11-24 11:01
[img]http://service.t.sina.com.cn/widget/qmd/5339802982/c02e16bd/7.png
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1452
在线时间
892 小时
注册时间
2011-3-4
帖子
839
8
 楼主| 发表于 2014-11-24 22:33:50 | 只看该作者
本帖最后由 绿坝 于 2014-11-24 22:49 编辑
taroxd 发表于 2014-11-22 15:34
未测试


只要获得经验就会显示第18行错误

点评

好吧弄错了···是2012年···  发表于 2014-11-28 21:25
如果是要多职业的话···2013年的整合系统比赛的时候VA的有人发过,里面整合了一个多职业系统···  发表于 2014-11-28 21:25
已经尝试更正,但是依旧未测试  发表于 2014-11-25 12:33
全民制作人们,大家好,我是练习时长两年半的黄油制作人绿坝,喜欢唱、跳、rap、篮球,music!欢迎加群:107335249
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
180
在线时间
829 小时
注册时间
2010-6-26
帖子
671
9
发表于 2014-11-25 09:23:48 | 只看该作者
本帖最后由 企鹅达达 于 2014-11-25 09:27 编辑

首先你得写个脚本储存每个角色各个职业的等级,因为va转职之后等级是清零或者直接转移到新职业(具体哪种忘了)
然后你可以用被动技能的脚本,在职业的备注栏里设定另一个职业等级多少时附加某个状态,该状态可以附加某技能
  1. =begin
  2. ####################################################################
  3.                  职业等级系统   1.0
  4.                    作者:企鹅达达
  5. 读取方式:$game_variables[1015][主角id][职业id]
  6. ####################################################################
  7. =end

  8.   module QE_CLASS
  9.     SAVE_VAR = 1015
  10.   end
  11.   
  12. #==============================================================================
  13. # ■ Game_Actor
  14. #------------------------------------------------------------------------------
  15. #  管理角色的类。
  16. #   本类在 Game_Actors 类 ($game_actors) 的内部使用。
  17. #   具体使用请查看 Game_Party 类 ($game_party) 。
  18. #==============================================================================

  19. class Game_Actor < Game_Battler
  20.   #--------------------------------------------------------------------------
  21.   # ● 设置
  22.   #--------------------------------------------------------------------------
  23.   alias qe_class_setup setup
  24.   def setup(actor_id)
  25.     qe_class_setup(actor_id)
  26.     init_class_var
  27.   end
  28.   #--------------------------------------------------------------------------
  29.   # ● 初始化等级记忆数组【新定义】
  30.   #     keep_exp : 是否保留经验值
  31.   #--------------------------------------------------------------------------
  32.   def init_class_var
  33.     $game_variables[QE_CLASS::SAVE_VAR]=[]
  34.     for i in 1..$data_actors.size
  35.       $game_variables[QE_CLASS::SAVE_VAR][i]=[]
  36.       for j in 1..$data_classes.size
  37.         $game_variables[QE_CLASS::SAVE_VAR][i][j]=1
  38.       end
  39.     end
  40.   end

  41.   #--------------------------------------------------------------------------
  42.   # ● 职业变化【更改】
  43.   #     keep_exp : 是否保留经验值
  44.   #--------------------------------------------------------------------------
  45.   def change_class(class_id, keep_exp = false)
  46.     $game_variables[QE_CLASS::SAVE_VAR][self.id][@class_id]=@level
  47.     if keep_exp
  48.       @exp[class_id] = exp
  49.       @class_id = class_id
  50.       change_exp(@exp[@class_id] || 0, false)
  51.     else
  52.       @class_id = class_id
  53.       change_level($game_variables[QE_CLASS::SAVE_VAR][self.id][@class_id], false)
  54.     end
  55.     refresh
  56.   end
  57. end
  58. ####################################################################
复制代码
http://victorscripts.wordpress.com/rpg-maker-vx-ace/gameplay-scripts/passive-states/
前者是我自己写的等级记忆的脚本(需要使用一个变量),后者是被动状态的脚本,职业里的备注参考我脚本里的写法。后面的网页需要代理,还需要前置脚本(请在网页里自己找)
新手们!不要被看扁了!我们也会用论坛搜索,我们也会自己找脚本,我们也会自己点击关闭按钮旁边的小问号!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2025-2-23 07:02

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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