查看: 2139|回复: 2

[已经解决] 属性点分配插件无法使用

[复制链接]
梦石
0
星屑
163
在线时间
73 小时
注册时间
2014-4-10
回帖
96
发表于 2016-5-20 11:56:35 | 显示全部楼层 |阅读模式

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

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

×
如题,找到个很好用的升级分配属性插件但总报错,新人表示灰常无奈。。哪位大大给指点一下。{:2_281:}
附代码:

[pre lang="javascript"]//=============================================================================
// StatDistribution.js
//=============================================================================

/*:
@author Icaro10100 / FrozenPhoenix
@plugindesc Get stat points on level up, those points can be spent to increase stat value
@help

*********************************************************************************

Actors will gain stat points whenever they level up or when you want to give
them via script call: $gameActors.actor(id).gainStats(amount)

Those points can be used to increase the actor's stats via a custom scene.
To call the scene use the call: SceneManager.sceneDistribution(actor)

Example: SceneManager.sceneDistribution($gameParty.members()[0])
Learn the basic script calls

To call the scene for the entire party use SceneManager.partyDistribution()
Press Q/W to swap the party members. You can use SceneManager.partyDistribution(id)
to have the scene start with the actor in position "id" in the party, example:
SceneManager.partyDistribution(2) will start the scene with the third actor in the
party.

Holding shift while increasing the attributes will increase them faster.

Press "x" to toggle between decrease/increase option

Put the following tags to determine how much the param/stat will increase per
stat point spent:

<ihp: amount>
<imp: amount>
<iatk: amount>
<idef: amount>
<imat: amount>
<imdf: amount>
<iagi: amount>
<iluk: amount>

For extra parameters:

<ihit: amount>
<ieva: amount>
<icri: amount>
<icev: amount>
<imev: amount>
<imrf: amount>
<icnt: amount>
<ihrg: amount>
<imrg: amount>
<itrg: amount>

The tags should be put in the class notebox OR in the actor notebox

To have custom parameter limits for each actor/class put those tags in the notebox:

<hplimit: >
<mplimit: >
<atklimit: >
<deflimit: >
<matlimit: >
<mdflimit: >
<agilimit: >
<luklimit: >



Feel free to use for free/comercial games, just give credit.
Enjoy

ChangeLog:

--1.2
-Fixed bug of max hp value displaying 999 on screen even when the actual value was higher
-Added option to add custom limits for parameters, those can be different for each actor
-Added option to limit how much points you can spend on the same parameter each level
-Added party option, press Q/W to swap between party members
-Can now put tags in the actor's note box as well

--1.1
-Added names for some stuff
-Added option to decrease stat
-Added support for extra parameters (crit/evasion etc)

*********************************************************************************

@param PointsName
@desc The name given to stat points
@default Points

@param ActorName
@desc The word before the actor's name
@default Name

@param ClassName
@desc The word before the actor's class
@default Class

@param ExpName
@desc The word before the actor's experience
@default EXP

@param IncreaseName
@desc The word that means increase duhhh (if doing game on another language)
@default Increase

@param DecreaseName
@desc Same thing as before
@default Decrease

@param StatNameColor
@desc The color the stat's name appears, select a number from the windowskin
@default 1

@param StatValueColor
@desc The color the stat's value appears, select a number from the windowskin
@default 0

@param ShiftIncrease
@desc When holding shift, the amount increased will be multiplicated by this parameter
@default 5

@param LevelUpPoints
@desc Points gained on level up, can be any number or formula that returns a number
@default 10

@param UsedStats
@desc The basic stats that will be available to increase, put the id separated by a comma Example: 0,3,4,5
@default 0,1,2,3,4,5,6,7

@param UsedXStats
@desc Same as before, but for extra parameters (crit/evasion etc)
@default

@param ExtraParamNames
@desc Names for the extra stats (crit/evasion etc), just modify the strings in the default.
@default ["Hit rate", "Evasion", "Crit chance", "Crit Evasion", "Magic Evasion", "Magic Reflect", "Counter", "HP Regen", "MP Regen", "TP Regen"]

@param DefaultLimits
@desc Highest possible value for the parameter
Just change the values, in order: hp/mp/atk/def/mat/mdf/agi/luk
@default [99999, 9999, 999, 999, 999, 999, 999, 999]

@param DefaultxParamLimits
@desc Highest possible value for special parameters
Just change the values, in order: hit/eva/crit/criteva etc.
@default [1, 1, 1, 1, 1, 1, 1, 1, 1, 1]

@param MaxPointsPerLevel
@desc How much points you can spend per level on a single parameter
use any formula that returns a number, leave 0 for no limits
@default 0




*/



(function() {
   
//Parameters   
var parameters = PluginManager.parameters('StatDistribution');
var pointsName = String(parameters["PointsName"]);
var actorName = String(parameters["ActorName"]);
var className = String(parameters["ClassName"]);
var expName = String(parameters["ExpName"]);
var increaseName = String(parameters["IncreaseName"]);
var decreaseName = String(parameters["DecreaseName"]);
var statNameColor = Number(parameters["StatNameColor"]);
var statValueColor = Number(parameters["StatValueColor"]);
var shiftIncrease = Number(parameters["ShiftIncrease"]);
var levelUpPoints = String(parameters["LevelUpPoints"]);
var usedStats = String(parameters["UsedStats"]);
var usedXStats = String(parameters["UsedXStats"]);
var xParamNames = String(parameters["ExtraParamNames"]);
var defaultLimits = String(parameters['DefaultLimits']);
var defaultxLimits = String(parameters['DefaultxParamLimits']);
var maxPointsPerLevel = String(parameters['MaxPointsPerLevel']);

getLimit = function(id) {
    limits = eval(defaultLimits);
    return limits[id];
}

getTag = function(id) {
    switch(id) {
        case 0:
            return "hplimit";
        case 1:
            return "mplimit";
        case 2:
            return "atklimit";
        case 3:
            return "deflimit";
        case 4:
            return "matlimit";
        case 5:
            return "mdflimit";
        case 6:
            return "agilimit";
        case 7:
            return "luklimit";                 
    }
}


//This function will return an array with the ids of the used stats
getUsedStats = function() {
    var re = /\d+/g;
    return usedStats.match(re) || [];  
}

//This function will return an array with the ids of the used extra stats
getUsedXStats = function() {
    var re = /\d+/g;
    return usedXStats.match(re) || [];
}

//This function will return the name of the extra param with given index
getXParamName = function(id) {
    var names = eval(xParamNames);
    return names[id];
}

//Game batlerbase

Game_BattlerBase.prototype.xparam = function(xparamId) {
    var value = this.traitsSum(Game_BattlerBase.TRAIT_XPARAM, xparamId) + this._gainedxparams[xparamId];
    return value;
};

_GameBattlerBaseInitialize = Game_BattlerBase.prototype.initialize;
Game_BattlerBase.prototype.initialize = function() {
    _GameBattlerBaseInitialize.call(this);
    this._gainedxparams = [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];
};


Game_BattlerBase.prototype.paramMax = function(paramId) {
    if (paramId == 0) {
        return 999999;  // MHP
    } else if (paramId == 1) {
        return 9999;    // MMP
    } else {
        return 999;
    }
};

   
//---Game Actor

_GameActorInitialize = Game_Actor.prototype.initialize;
Game_Actor.prototype.initialize = function(actorId) {
    _GameActorInitialize.call(this, actorId);
    this._statPoints = 0;
    this.resetUsedPoints();
};

Game_Actor.prototype.resetUsedPoints = function() {
    this._usedPoints = [0, 0, 0, 0, 0, 0, 0, 0];
    this._usedxPoints = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];
}

Game_Actor.prototype.increasePointLimit = function() {
    for (i=0; i<this._usedxPoints.length; i++) {
        if (i<this._usedPoints.length) {
            this._usedPoints -= this.maxPerLevel();
        }
        this._usedxPoints -= this.maxPerLevel();
    }
}

Game_Actor.prototype.usePoints = function(paramid, points) {
    this._usedPoints[paramid] += points;
}

Game_Actor.prototype.usexPoints = function(paramid, points) {
    this._usedxPoints[paramid] += points;
}

Game_Actor.prototype.canIncrease = function(paramid, points, alreadyUsed) {
    var result = true;
    if (((this._usedPoints[paramid] + points) > this.maxPerLevel()) && (this.maxPerLevel() != 0)) {
        result = false;
    }
    if ((this.param(paramid) + alreadyUsed + points*this.statPerPoint(paramid)) > this.paramMax(paramid)) {
        result =false;
    }
    return result;
}

Game_Actor.prototype.canIncreasex = function(paramid, points, alreadyUsed) {
    var result = true;
    if (((this._usedxPoints[paramid] + points) > this.maxPerLevel()) && (this.maxPerLevel() != 0)) {
        result = false;
    }
    if ((this.xparam(paramid) + alreadyUsed + points*this.xstatPerPoint(paramid)) > this.xparamMax(paramid)) {
        result =false;
    }
    return result;
}

Game_Actor.prototype.paramMax = function(paramId) {
    var limit;
    var meta = "this.actor().meta." + getTag(paramId);
    meta = eval(meta);
    meta = meta ? meta : "$dataClasses[this.actor().id].meta." + getTag(paramId);
    meta = eval(meta);
    if (meta) {
        limit = Number(meta);
    } else {
        limit = getLimit(paramId);
    }
    return limit;
};

Game_Actor.prototype.xparamMax = function(paramId) {
    var limit = eval(defaultxLimits);
    return limit[paramId];
};

Game_Actor.prototype.maxPerLevel = function() {
    return eval(this.actor().meta.maxPerLevel) || Number(maxPointsPerLevel);
}

//Stat increase per stat point
Game_Actor.prototype.statPerPoint = function(id) {
    var str;
    switch(id) {
        case 0:
            str = "ihp";
            break;
        case 1:
            str = "imp";
            break;
        case 2:
            str = "iatk";
            break;
        case 3:
            str = "idef";
            break;
        case 4:
            str = "imat";
            break;
        case 5:
            str = "imdf";
            break;
        case 6:
            str = "iagi";
            break;
        case 7:
            str = "iluk";
            break;         
    }
    var met = "$dataClasses[this._classId].meta." + str;
    met = eval(met);
    met = met ? met : "this.actor().meta." + str;
    met = eval(met);
    return met ? eval(met) : 1;
}

//Xstat increase per stat point
Game_Actor.prototype.xstatPerPoint = function(id) {
    var str;
    switch(id) {
        case 0:
            str = "ihit";
            break;
        case 1:
            str = "ieva";
            break;
        case 2:
            str = "icri";
            break;
        case 3:
            str = "icev";
            break;
        case 4:
            str = "imev";
            break;
        case 5:
            str = "imrf";
            break;
        case 6:
            str = "icnt";
            break;
        case 7:
            str = "ihrg";
            break;
        case 8:
            str = "imrg";
            break;
        case 9:
            str = "itrg";
    }
    var met = "$dataClasses[this._classId].meta." + str;
    met = eval(met);
    met = met ? met : "this.actor().meta." + str;
    met = eval(met);
    return eval(met) ? eval(met) : 1;
}

//-New function gainStats to call on level ups etc
Game_Actor.prototype.gainStats = function(amount) {
    this._statPoints += amount;
}

//-Gain stats on level up
_GameActorLevelUp = Game_Actor.prototype.levelUp;
Game_Actor.prototype.levelUp = function() {
    _GameActorLevelUp.call(this);
    this.gainStats(eval(levelUpPoints));
    this.increasePointLimit();
};

//-Actor current stats
Game_Actor.prototype.statPoints = function() {
    return this._statPoints;
}  
   
//-----New windows

//****************************************************
//
//---Window Points, to display stat points.
//
//****************************************************


function Window_Points() {
    this.initialize.apply(this, arguments);
}

Window_Points.prototype = Object.create(Window_Base.prototype);
Window_Points.prototype.constructor = Window_Points;

Window_Points.prototype.initialize = function(x, y, actor) {
    var width = this.windowWidth();
    var height = this.windowHeight();
    this._actor = actor;
    Window_Base.prototype.initialize.call(this, x, y, width, height);
    this.refresh();
};

Window_Points.prototype.windowWidth = function() {
    return 300;
};

Window_Points.prototype.actor = function () {
    return this._actor;
}

Window_Points.prototype.windowHeight = function() {
    return this.fittingHeight(1);
};

Window_Points.prototype.refresh = function(newActor) {
    if (!newActor) {
        newActor = this.actor();
    }
    this._actor = newActor;
    var x = this.textPadding();
    var width = this.contents.width - this.textPadding() * 2;
    this.contents.clear();
    this.drawThings();
};

Window_Points.prototype.drawThings = function() {
    var x = 1;
    var y = 1;
    var mWidth = Math.round(this.windowWidth()/2.5);
    var value = this._actor.statPoints();
    this.changeTextColor(this.textColor(statNameColor));
    this.drawText(pointsName, x, y, mWidth);
    this.changeTextColor(this.textColor(statValueColor));
    this.drawText(value, x + mWidth + 10, y, mWidth);  
}

Window_Points.prototype.open = function() {
    this.refresh();
    Window_Base.prototype.open.call(this);
};


//****************************************************
//
//---Window Selecting, to increase stats or leave scene
//
//****************************************************


Window_Selecting.prototype = Object.create(Window_Command.prototype);
Window_Selecting.prototype.constructor = Window_Selecting;

function Window_Selecting() {
    this.initialize.apply(this, arguments);
}

Window_Selecting.prototype.initialize = function (x, y, mode) {
    this._mode = mode;
    Window_Command.prototype.initialize.call(this, x, y);
}

Window_Selecting.prototype.windowWidth = function() {
    return 350;
};

Window_Selecting.prototype.numVisibleRows = function() {
    return 9;
};

Window_Selecting.prototype.processOk = function() {
    if (this.isCurrentItemEnabled()) {
        this.updateInputData();
        this.deactivate();
        this.callOkHandler();
    }
};

Window_Selecting.prototype.activate = function(index) {
    Window_Base.prototype.activate.call(this);
    index2 = index ? index : this._index;
    this.select(index2);
};

Window_Selecting.prototype.makeCommandList = function() {
    var name;
    var used = getUsedStats();
    var usedx = getUsedXStats();
    var k;
    var mode = this._mode;
    for(i=0;i<used.length;i++) {
        k = Number(used);
        name = mode + " " + TextManager.param(k);
        this.addCommand(name, 'param' + k.toString());
    }
    for(i=0;i<usedx.length;i++) {
        k = Number(usedx);
        y = k + 10;
        name = mode + " " + getXParamName(k);
        this.addCommand(name, 'param' + y.toString());
    }
    this.addCommand("Exit", 'exit');
}


//****************************************************
//
//---Window xParams, display character especial parameters
//
//****************************************************

function Window_xParams() {
    this.initialize.apply(this, arguments);
}

Window_xParams.prototype = Object.create(Window_Base.prototype);
Window_xParams.prototype.constructor = Window_xParams;

Window_xParams.prototype.initialize = function (x, y, actor, increased) {
    this._increased = increased;
    this._width = Graphics.boxWidth - x;
    var height = Graphics.boxHeight - y;
    Window_Base.prototype.initialize.call(this, x, y, this._width, height);
    this._actor = actor;
    this.refresh();
};

Window_xParams.prototype.actor = function() {
    return this._actor;
};

Window_xParams.prototype.baseDraw = function(name, value, x, y) {
    var mWidth = Math.round(this._width/1.5);
    var x2 = x + mWidth + 5;
    this.changeTextColor(this.textColor(statNameColor));
    this.drawText(name, x, y, mWidth);
    this.changeTextColor(this.textColor(statValueColor));
    this.drawText(value, x2, y, mWidth);
}

Window_xParams.prototype.drawActorStat = function(x, y, id) {
    var pName = getXParamName(id);
    var pValue = this.actor().xparam(id) + this._increased[id];
    this.baseDraw(pName, pValue.toFixed(2), x, y);
};

Window_xParams.prototype.drawParameters = function() {
    var x = 1;
    var y = 1;
    var usedx = getUsedXStats();
    var lineHeight = this.lineHeight();
    for(i=0;i<usedx.length;i++) {
        this.drawActorStat(x, y + lineHeight * i, Number(usedx));      
    }
}

Window_xParams.prototype.refresh = function(newActor) {
    if (!newActor) {
        newActor = this.actor();
    }
    this._actor = newActor;
    if (this.contents) {
        this.contents.clear();
        this.drawParameters();
    }
}


//****************************************************
//
//---Window Char, display character image and current stats
//
//****************************************************


function Window_Char() {
    this.initialize.apply(this, arguments);
}

Window_Char.prototype = Object.create(Window_Base.prototype);
Window_Char.prototype.constructor = Window_Char;


Window_Char.prototype.initialize = function (x, y, actor, increased) {
    var width = this.windowWidth();
    var height = this.windowHeight();
    this._increased = increased;
    this._actor = actor;
    Window_Base.prototype.initialize.call(this, x, y, width, height);
    this.loadImages();
    this.refresh();
};

Window_Char.prototype.actor = function() {
    return this._actor;
};

Window_Char.prototype.windowWidth = function() {
    return Graphics.boxWidth;
};

Window_Char.prototype.windowHeight = function() {
    return Math.round(Graphics.boxHeight / 3) - 20;
};

Window_Char.prototype.loadImages = function() {
    for (i=0; i<$gameParty.members().length;i++){
        ImageManager.loadFace($gameParty.members().faceName());
    }
};

Window_Char.prototype.drawItem = function() {
    this.drawItemImage();
    this.drawItemStatus();
    this.drawParameters();
};

Window_Char.prototype.drawItemImage = function() {
    this.drawActorFace(this.actor(), 1, 1, 144, 144);
};

Window_Char.prototype.drawItemStatus = function() {
    var x = 160;
    var actor = this.actor();
    var y = 1;
    var lineHeight = this.lineHeight();
    this.drawActorName(actor, x, y);
    this.drawActorLevel(actor, x, y + lineHeight * 1);
    this.drawActorClass(actor, x, y + lineHeight * 2);
    this.drawActorExp(actor, x, y + lineHeight * 3);
};

Window_Char.prototype.drawParameters = function() {
    var x = 390;
    var y = 1;
    var used = getUsedStats();
    var lineHeight = this.lineHeight();
    var k;
    for(i=0;i<used.length;i++) {
        if (i < 4) {
            this.drawActorStat(x, y + lineHeight * i, used);
        } else {
            k = i-4;   
            this.drawActorStat(x + 220, y + lineHeight * k, used);
        }  
    }
}

Window_Char.prototype.baseDraw = function(name, value, x, y) {
    var mWidth = Math.round(this.windowWidth()/8);
    var x2 = x + mWidth + 10;
    this.changeTextColor(this.textColor(statNameColor));
    this.drawText(name, x, y, mWidth);
    this.changeTextColor(this.textColor(statValueColor));
    this.drawText(value, x2, y, mWidth);
}

Window_Char.prototype.drawActorExp = function(actor, x, y) {
    this.baseDraw(expName, actor.currentExp(), x, y);
}

Window_Char.prototype.drawActorClass = function(actor, x, y) {
    this.baseDraw(className, actor.currentClass().name, x, y);
}

Window_Char.prototype.drawActorName = function(actor, x, y) {
    this.baseDraw(actorName, actor.name(), x, y);
};

Window_Char.prototype.drawActorLevel = function(actor, x, y) {
    this.baseDraw(TextManager.level, actor.level, x, y);
};


Window_Char.prototype.drawActorStat = function(x, y, id) {
    var pName = TextManager.param(id);
    var pValue = this.actor().param(id) + this._increased[id];
    this.baseDraw(pName, pValue.toFixed(0), x, y);
};

Window_Char.prototype.refresh = function(newActor) {
    if (!newActor) {
        newActor = this.actor();
    }
    this._actor = newActor;
    if (this.contents) {
        this.contents.clear();
        this.drawItem();
    }
}



//****************************************************
//
//---Scene Distribution, the main scene
//
//****************************************************


function Scene_Distribution() {
    this.initialize.apply(this, arguments);
}

Scene_Distribution.prototype = Object.create(Scene_MenuBase.prototype);
Scene_Distribution.prototype.constructor = Scene_Distribution;


Scene_Distribution.prototype.initialize = function(actor, party) {
    this._actorr = actor;
    this._party = party;
    this._params = [0,0,0,0,0,0,0,0,0,0,0,0,0];
    this._xparams = [0,0,0,0,0,0,0,0,0,0,0,0,0];
    this._usedStats = 0;
    Scene_MenuBase.prototype.initialize.call(this);
};

Scene_Distribution.prototype.actor = function() {
    return this._actorr;
}

Scene_Distribution.prototype.inPartyMode = function() {
    return this._party;
}

Scene_Distribution.prototype.create = function() {
    Scene_MenuBase.prototype.create.call(this);
    this.createCharWindow(this.actor());
    this.createXParamWindow(this.actor());
    this.createDecreaseWindow();
    this.createSelectingWindow();
    this.createPointWindow(this.actor());
}


Scene_Distribution.prototype.start = function() {
    Scene_MenuBase.prototype.start.call(this);
    this._charWindow.refresh();
};


Scene_Distribution.prototype.createCharWindow = function(actor) {
    this._charWindow = new Window_Char(0, 0, actor, this._params);
    this.addWindow(this._charWindow);
}

Scene_Distribution.prototype.createXParamWindow = function(actor) {
    var usedx = getUsedXStats();
    if (usedx) {
        if (usedx.length >= 1) {
            this._xParamWindow = new Window_xParams(500, this._charWindow.windowHeight(), actor, this._xparams);
            this.addWindow(this._xParamWindow);
        }      
    }  
}

Scene_Distribution.prototype.createSelectingWindow = function() {
    this._selectingWindow = new Window_Selecting(0, this._charWindow.windowHeight(), increaseName);
    var used = getUsedStats();
    var usedx = getUsedXStats();
    var k;
    for(i=0;i<used.length;i++) {
        k = Number(used);
        this._selectingWindow.setHandler('param' + k.toString(), this.increaseParam.bind(this, k));
    }
    for(i=0;i<usedx.length;i++) {
        k = Number(usedx);
        y = k + 10;
        this._selectingWindow.setHandler('param' + y.toString(), this.increaseExParam.bind(this, k));
    }
    if (this.inPartyMode()) {
        this._selectingWindow.setHandler('pageup', this.nextActor.bind(this, false));
        this._selectingWindow.setHandler('pagedown', this.nextActor.bind(this, true));
    }
    this._selectingWindow.setHandler('exit', this.exit.bind(this));
    this._selectingWindow.setHandler('cancel', this.swapWindows.bind(this, "decrease"));
    this.addWindow(this._selectingWindow);
    this._selectingWindow.activate();
}

Scene_Distribution.prototype.createDecreaseWindow = function() {
    this._decreaseWindow = new Window_Selecting(0, this._charWindow.windowHeight(), decreaseName);
    var used = getUsedStats();
    var usedx = getUsedXStats();
    var k;
    for(i=0;i<used.length;i++) {
        k = Number(used);
        this._decreaseWindow.setHandler('param' + k.toString(), this.decreaseParam.bind(this, k));
    }
    for(i=0;i<usedx.length;i++) {
        k = Number(usedx);
        y = k + 10;
        this._decreaseWindow.setHandler('param' + y.toString(), this.decreaseExParam.bind(this, k));
    }
    if (this.inPartyMode()) {
        this._decreaseWindow.setHandler('pageup', this.nextActor.bind(this, false));
        this._decreaseWindow.setHandler('pagedown', this.nextActor.bind(this, true));
    }
    this._decreaseWindow.setHandler('exit', this.exit.bind(this));
    this._decreaseWindow.setHandler('cancel', this.swapWindows.bind(this, "increase"));
    this.addWindow(this._decreaseWindow);
    this._decreaseWindow.hide();
    this._decreaseWindow.deactivate();
}

Scene_Distribution.prototype.nextActor = function(mode) {
    SoundManager.playEvasion;
    var j = $gameParty.members().indexOf(this.actor());
    var l = $gameParty.members().length;
    if (mode) {
        j = (j+1)==l ? 0 : (j+1);
    } else {
        j = (j-1)<0 ? (l-1) : (j-1);
    }
    this.addParameters();
    this._actorr = $gameParty.members()[j];
    this._charWindow.refresh(this.actor());
    if (this._xParamWindow) {
        this._xParamWindow.refresh(this.actor());
    }
    this._pointWindow.refresh(this.actor());
    this.swapWindows("increase");
}

Scene_Distribution.prototype.swapWindows = function(mode) {
    SoundManager.playEvasion;
    switch (mode) {
        case "increase":
            this._decreaseWindow.deactivate();
            this._decreaseWindow.hide();
            this._selectingWindow.show();
            this._selectingWindow.activate(this._decreaseWindow._index);
            break;
        case "decrease":
            this._selectingWindow.deactivate();
            this._selectingWindow.hide();
            this._decreaseWindow.show();
            this._decreaseWindow.activate(this._selectingWindow._index);
            break;         
    }
}

Scene_Distribution.prototype.addParameters = function() {
    for (i=0;i<8;i++) {
        this.actor().addParam(i, Number(this._params.toFixed()));
    }
    for (i=0;i<10;i++) {
        this.actor()._gainedxparams += Number(this._xparams.toFixed(2));
    }
    for (i=0;i<13;i++){
        this._params = 0;
        this._xparams = 0;
    }
    this._usedStats = 0;
}

Scene_Distribution.prototype.exit = function() {
    SoundManager.playCancel();
    this.addParameters();
    SceneManager.pop();
}

Scene_Distribution.prototype.createPointWindow = function(actor) {
    var y = this._charWindow.windowHeight() + this._selectingWindow.windowHeight();
    this._pointWindow = new Window_Points(0, y, actor);
    this.addWindow(this._pointWindow);
}

Scene_Distribution.prototype.increaseParam = function(id) {
    var x = Input.isPressed('shift') ? shiftIncrease : 1;
    var amount;
    var condition = this.actor().canIncrease(id, x, this._params[id]);
    if ((this.actor().statPoints() >= x) && condition) {
        amount = this.actor().statPerPoint(id)*x;
        this._params[id] += amount;
        this._selectingWindow.playOkSound();
        this._usedStats += x;
        this.actor().gainStats(-x);
        this.actor().usePoints(id, x);
    } else {
        this._selectingWindow.playBuzzerSound();
    }
    this._charWindow.refresh();
    this._pointWindow.refresh();
    if (this._xParamWindow) {
        this._xParamWindow.refresh();
    }
    this._selectingWindow.activate();
}

Scene_Distribution.prototype.increaseExParam = function(id) {
    var x = Input.isPressed('shift') ? shiftIncrease : 1;
    var amount;
    var condition = this.actor().canIncreasex(id, x, this._xparams[id]);
    if ((this.actor().statPoints() >= x) && condition) {
        amount = this.actor().xstatPerPoint(id)*x;
        this._xparams[id] += amount;
        this._selectingWindow.playOkSound();
        this._usedStats += x;
        this.actor().gainStats(-x);
        this.actor().usexPoints(id, x);
    } else {
        this._selectingWindow.playBuzzerSound();
    }
    this._charWindow.refresh();
    this._pointWindow.refresh();
    if (this._xParamWindow) {
        this._xParamWindow.refresh();
    }
    this._selectingWindow.activate();
}

Scene_Distribution.prototype.decreaseParam = function(id) {
    var x = Input.isPressed('shift') ? shiftIncrease : 1;
    var amount = this.actor().statPerPoint(id)*x;;
    if ((this._usedStats >= x) && (this._params[id] >= amount)) {
        this._params[id] -= amount;
        SceneManager.playCancel;
        this._usedStats -= x;
        this.actor().gainStats(x);
        this.actor().usePoints(id, -x);
    } else {
        this._decreaseWindow.playBuzzerSound();
    }
    this._charWindow.refresh();
    this._pointWindow.refresh();
    if (this._xParamWindow) {
        this._xParamWindow.refresh();
    }
    this._decreaseWindow.activate();
}

Scene_Distribution.prototype.decreaseExParam = function(id) {
    var x = Input.isPressed('shift') ? shiftIncrease : 1;
    var amount = this.actor().xstatPerPoint(id)*x;;
    if ((this._usedStats >= x) && (this._xparams[id] >= amount)) {
        this._xparams[id] -= amount;
        SceneManager.playCancel;
        this._usedStats -= x;
        this.actor().gainStats(x);
        this.actor().usePoints(id, -x);
    } else {
        this._decreaseWindow.playBuzzerSound();
    }
    this._charWindow.refresh();
    this._pointWindow.refresh();
    if (this._xParamWindow) {
        this._xParamWindow.refresh();
    }
    this._decreaseWindow.activate();
}



SceneManager.sceneDistribution = function(actor, party) {
    if (typeof(party) === 'undefined') {
        party = false;
    }
    this._stack.push(this._scene.constructor);
    if (Scene_Distribution) {
        this._nextScene = new Scene_Distribution(actor, party);
    }
    if (this._scene) {
        this._scene.stop();
    }
}

SceneManager.partyDistribution = function(index) {
    if (typeof(index) === 'undefined') {
        index = 0;
    }
    var actor = $gameParty.members()[index];
    this.sceneDistribution(actor, true);
}
   
})();[/pre]
梦石
0
星屑
163
在线时间
73 小时
注册时间
2014-4-10
回帖
96
 楼主| 发表于 2016-5-20 11:58:46 | 显示全部楼层
报错截图:
QQ截图20160520115839.png
回复

使用道具 举报

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

本版积分规则

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

在本版发帖返回顶部