YEP_SkillCoreを使った盗むスキル。
まずは、YEP_SkillCoreを導入します。
そして敵キャラのメモ欄に、このように書き込んでください。
<stealItem:kind,k,id,i,permil,p>
k,i,pはそれぞれ
k:盗めるアイテムの種類。item,weapon,armor,moneyの4種類
i:盗むアイテムのID及び盗める金額
p:盗む確率の千分率(盗む確率を%で表し、10倍したもの。例えば、50%であれば500と表記する)
そしてスキルのメモ欄に、このコードを挿入してください。
コード:
<Before Eval>
var stealItemDataString = $dataEnemies[target.enemyId() ].meta.stealItem;
if(target.stealedFlag === true || stealItemDataString === undefined){
BattleManager._logWindow.addText("何も持っていない!");
}else{
var stealItemDataArray = stealItemDataString.split(",");
var stealItemKind = stealItemDataArray[1];
var stealItemId = Number(stealItemDataArray[3] );
var stealItemPermil = Number(stealItemDataArray[5] );
if(Math.randomInt(1000) < stealItemPermil){
target.stealedFlag = true;
if(stealItemKind === "weapon"){
var stealResult = $dataWeapons[stealItemId];
}else if(stealItemKind === "armor"){
var stealResult = $dataArmors[stealItemId];
}else if(stealItemKind === "item"){
var stealResult = $dataItems[stealItemId];
}else if(stealItemKind === "money"){
var stealResult = stealItemId;
}
if(stealItemKind === "money"){
$gameParty.gainGold(stealResult);
var moneyUnit = TextManager.currencyUnit;
BattleManager._logWindow.addText(stealResult + moneyUnit + "を手に入れた!");
}else{
$gameParty.gainItem(stealResult,1);
BattleManager._logWindow.addText(stealResult.name + "を手に入れた!");
}
}else{
BattleManager._logWindow.addText("盗めなかった!");
}
}
</Before Eval>
これで、盗むスキルが実装できたはずです。
もう少しきれいな書き方があれば、教えてください。