查看: 4781|回复: 9

[已经解决] 请问如何在游戏中加入新的能力值?

[复制链接]
梦石
0
星屑
65
在线时间
43 小时
注册时间
2008-7-29
回帖
6
发表于 2016-5-30 20:28:43 | 显示全部楼层 |阅读模式

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

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

×
可以不用显示出来。
梦石
0
星屑
72
在线时间
14 小时
注册时间
2016-5-28
回帖
9
发表于 2016-5-30 21:06:50 | 显示全部楼层
不用显示的话...设置个变量不就好?
需要的时候读取变量参与运算就可以了吧?
回复

使用道具 举报

梦石
0
星屑
65
在线时间
43 小时
注册时间
2008-7-29
回帖
6
 楼主| 发表于 2016-5-30 21:35:39 | 显示全部楼层
roymustang0211 发表于 2016-5-30 21:06
不用显示的话...设置个变量不就好?
需要的时候读取变量参与运算就可以了吧?
...

但是变量只有一个,而能力值则是每名角色都有的。如果用变量做的话,做技能的伤害公式之类时会很难引用。
回复

使用道具 举报

梦石
0
星屑
72
在线时间
14 小时
注册时间
2016-5-28
回帖
9
发表于 2016-5-31 07:38:36 | 显示全部楼层
lyb9707 发表于 2016-5-30 21:35
但是变量只有一个,而能力值则是每名角色都有的。如果用变量做的话,做技能的伤害公式之类时会很难引用。 ...

我倒是觉得没那么麻烦。
这样吧,具体来说你想加一个什么样的能力值呢?
在伤害公式中具体如何参与运算?
回复

使用道具 举报

…あたしは天

梦石
0
星屑
2308
在线时间
4033 小时
注册时间
2010-10-4
回帖
10548

开拓者贵宾

发表于 2016-5-31 08:10:19 | 显示全部楼层
lyb9707 发表于 2016-5-30 21:35
但是变量只有一个,而能力值则是每名角色都有的。如果用变量做的话,做技能的伤害公式之类时会很难引用。 ...

每个角色对应一个变量,技能公式中可以通过角色id加上一个固定的偏移量获取

比如 1号角色对应 101号变量,2号角色对应102号变量……以此类推
回复

使用道具 举报

梦石
0
星屑
65
在线时间
43 小时
注册时间
2008-7-29
回帖
6
 楼主| 发表于 2016-5-31 10:18:45 | 显示全部楼层
taroxd 发表于 2016-5-31 08:10
每个角色对应一个变量,技能公式中可以通过角色id加上一个固定的偏移量获取

比如 1号角色对应 101号变量 ...

对不起,不是很明白……能否说得更详细一些?关于技能公式的设定方面。
回复

使用道具 举报

梦石
0
星屑
22879
在线时间
8598 小时
注册时间
2011-12-31
回帖
3270
发表于 2016-5-31 10:46:22 | 显示全部楼层
你可參孝這個
http://midori.wp.xdomain.jp/?p=284
MV Plugin 生活パラメータ
新規にパラメータを5つ追加します。
1.png
回复

使用道具 举报

…あたしは天

梦石
0
星屑
2308
在线时间
4033 小时
注册时间
2010-10-4
回帖
10548

开拓者贵宾

发表于 2016-5-31 11:18:36 | 显示全部楼层
lyb9707 发表于 2016-5-31 10:18
对不起,不是很明白……能否说得更详细一些?关于技能公式的设定方面。 ...

大概是这个意思,没有测试。
如果确定技能释放者不会是敌人的话,用 a.actorId() + 100 就可以
  1. v[a.isActor() ? a.actorId() + 100 : a.enemyId() + 200]
复制代码
回复

使用道具 举报

梦石
0
星屑
65
在线时间
43 小时
注册时间
2008-7-29
回帖
6
 楼主| 发表于 2016-5-31 13:25:20 | 显示全部楼层
tseyik 发表于 2016-5-31 10:46
你可參孝這個
http://midori.wp.xdomain.jp/?p=284
MV Plugin 生活パラメータ

看起来确实很有用,但是因为是日语所以看得不是很懂……
麻烦问一下如何使用事件里的脚本,对某一角色的某一参数进行赋值呢?
回复

使用道具 举报

梦石
0
星屑
277
在线时间
53 小时
注册时间
2014-1-24
回帖
18
发表于 2016-6-3 12:51:31 | 显示全部楼层
本帖最后由 qq420134293 于 2016-6-3 12:54 编辑

Game_Actor.prototype.paramBase = function (paramId) { //取消职业属性,获取Actors.json里属性
         var thisparam = this.getParams(paramId);
     if (thisparam == 0) {
         thisparam = this.currentClass().params[paramId][this._level];
     }
     return Math.ceil(thisparam);
};

//获取属性方法
Game_Actor.prototype.getParams = function (paramsID) {
    return this._paramsAll[paramsID];
};

Game_Actor.prototype.setup = function (actorId) {
    var actor = $dataActors[actorId];
    this._paramsAll = actor.params;//Actors.json里的角色属性
    this._actorId = actorId;
    this._candie = actor.die == 0 ? true : false;
    this._deter = Math.ceil(actor.Deterrence); //威慑
    this._resis = Math.ceil(actor.Resistance); //抵抗
    this._name = actor.name;
    this._nickname = actor.nickname;
    this._profile = actor.profile;
    this._classId = actor.classId;
    this._level = actor.initialLevel;
    this.initImages();
    this.initExp();
    this.initSkills();
    this.initEquips(actor.equips);
    this.clearParamPlus();
    this.recoverAll();
};


Game_Action.prototype.executeDamage = function (target, value) {
    var result = target.result();
    if (value === 0) { result.critical = false; }
    var plusvalue = this.DeterResis(0, 0) - target.DeterResis(1, 0); //获取威慑抵抗差值,正直,翻plusvalue倍,负值伤害减倍
    while (plusvalue <= -50) { value /= 2; plusvalue + 50; }
    if (plusvalue > -50) value *= (plusvalue / 100 + 1)
    if (this.isHpEffect()) {
        this.executeHpDamage(target, value);
    }
    if (this.isMpEffect()) {
        this.executeMpDamage(target, value);
    }
};


角色数据里Actors.json里添加params数组,就是角色的属性了。比如下面个角色,血9900,魔9999,攻击999,升级不加属性。
{"id":1,"params":[9900,9999,999,30,30,30,30,30],"battlerName":"Actor1_1","characterIndex":0,"characterName":"Actor1","classId":1,"equips":[1,1,2,3,0],"faceIndex":0,"faceName":"Actor1","traits":[{"code":11,"dataId":1,"value":1}],"initialLevel":1,"maxLevel":99,"name":"哈罗尔德","nickname":"昵称","note":"注释","profile":"简介","Deterrence":99,"Resistance":99},
回复

使用道具 举报

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

本版积分规则

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

在本版发帖返回顶部