在野月光 发表于 2016-8-29 19:02 看上去略麻烦……我还是决定用流程控制的方式来限制角色等级上限好了……虽然不是直接动职业,但是从玩家视角看也没差了 |
可以试试如下: JAVASCRIPT 代码复制
可以预定义等级的数组,替换了那些 99; 也可以不管它,到事件编辑器时再临场修改这些 99, 即 $dataClasses[职业id].maxLevel 的值; 只是一旦职业很多的话,会容易忘了修改。 游戏中,可以F8后输入 $gameActors.actor(数据库中的角色id).maxLevel(); 查看最大等级的值。 以上仅供参考。 |
本帖最后由 玄天 于 2016-8-29 13:58 编辑 在野月光 发表于 2016-8-29 11:20 1)就是跟角色设定里的那样,比如说这个职业上限是50,那么升到50级就封顶,经验值那里变成『-----』那样。至于如果转职业之前等级高于限定怎么办这个可以在流程中控制,比如说前期游戏你能转的职业都是上限30的,到了中期开放升到50的,这样就能避免。所以不考虑现有职业大于上限时的情况 2)也算比较多的,预测大概得有十几二十个职业 3)我就是没找到这方面的插件脚本才要来问…… |
打开游戏时按 F8,输入 $dataClasses : ![]() 不难看见,MV默认的数据库中, 并没有职业限制等级这一项, 在职业中关于等级方面的描述是空白的, 所以楼主爱怎么写就怎么写好了。 可以在备注中写入预设的最高等级,后期用正则提取 note; 也可以在goto(Scene_Map)之前, (比如在 Scene_Boot.prototype.start 里面), 直接往 $dataClasses 中循环压入新的参数, 例如压入一个“职业限级”(下述以第一个职业为例): ![]() 由于实际响应等级限制的数据在角色(Actor)这个范畴中, 所以最后最好还是关联到 Game_Actor 里面设分支吧, 重写 Game_Actor.prototype.maxLevel 。 由于不清楚楼主最终要实现怎样的效果, 比如说限级后是否要清理超越的等级,经验值的处理等等等等。 如果要一个一个去写备注的话,还是会蹦出想死的心情... 那时候,还得预定义数组或哈希表什么的以备后期校验,越写会越多。 所以这里就不参与调试了; 毕竟预设职业如果是很多很多的话... 别人的现成插件或许会更适合。 |
本帖最后由 玄天 于 2016-8-29 01:19 编辑 在野月光 发表于 2016-8-28 22:45 哦,原来脚本是写成这样,懂了 另外根据职业来限定等级上限这个要怎么做呢? |
脚本rpg_objects.js :![]() MV数据库角色栏的特征: ![]() 事件编辑器。 以下为当前玩家添加法术特征,并学会用火球术。 假设数据库中【火球术】的 dataId = 9: ![]() ![]() 详情请参考 data\Actors.json - "traits" 以及 Game_Interpreter.prototype.command321 。 |
raketenfaust02 发表于 2016-8-28 22:10 如果没更好的办法那也只能这样 |
sutao80216 发表于 2016-8-28 21:59 kamesoft的,可能因为我审美偏日系,那个作者是日本人。 |
玄天 发表于 2016-8-28 21:13 那就没办法了,没有十全十美的方案 我解决这个问题的做法是用YEP的Auto Passive States |
站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作
GMT+8, 2025-2-18 07:46
Powered by Discuz! X3.1
© 2001-2013 Comsenz Inc.