Project1

标题: 请问如何在游戏中加入新的能力值? [打印本页]

作者: lyb9707    时间: 2016-5-30 20:28
标题: 请问如何在游戏中加入新的能力值?
可以不用显示出来。
作者: roymustang0211    时间: 2016-5-30 21:06
不用显示的话...设置个变量不就好?
需要的时候读取变量参与运算就可以了吧?

作者: lyb9707    时间: 2016-5-30 21:35
roymustang0211 发表于 2016-5-30 21:06
不用显示的话...设置个变量不就好?
需要的时候读取变量参与运算就可以了吧?
...

但是变量只有一个,而能力值则是每名角色都有的。如果用变量做的话,做技能的伤害公式之类时会很难引用。
作者: roymustang0211    时间: 2016-5-31 07:38
lyb9707 发表于 2016-5-30 21:35
但是变量只有一个,而能力值则是每名角色都有的。如果用变量做的话,做技能的伤害公式之类时会很难引用。 ...

我倒是觉得没那么麻烦。
这样吧,具体来说你想加一个什么样的能力值呢?
在伤害公式中具体如何参与运算?
作者: taroxd    时间: 2016-5-31 08:10
lyb9707 发表于 2016-5-30 21:35
但是变量只有一个,而能力值则是每名角色都有的。如果用变量做的话,做技能的伤害公式之类时会很难引用。 ...

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

比如 1号角色对应 101号变量,2号角色对应102号变量……以此类推
作者: lyb9707    时间: 2016-5-31 10:18
taroxd 发表于 2016-5-31 08:10
每个角色对应一个变量,技能公式中可以通过角色id加上一个固定的偏移量获取

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

对不起,不是很明白……能否说得更详细一些?关于技能公式的设定方面。
作者: tseyik    时间: 2016-5-31 10:46
你可參孝這個
http://midori.wp.xdomain.jp/?p=284
MV Plugin 生活パラメータ
新規にパラメータを5つ追加します。

作者: taroxd    时间: 2016-5-31 11:18
lyb9707 发表于 2016-5-31 10:18
对不起,不是很明白……能否说得更详细一些?关于技能公式的设定方面。 ...

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

作者: lyb9707    时间: 2016-5-31 13:25
tseyik 发表于 2016-5-31 10:46
你可參孝這個
http://midori.wp.xdomain.jp/?p=284
MV Plugin 生活パラメータ

看起来确实很有用,但是因为是日语所以看得不是很懂……
麻烦问一下如何使用事件里的脚本,对某一角色的某一参数进行赋值呢?
作者: qq420134293    时间: 2016-6-3 12:51
本帖最后由 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},





欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1