265 lines
No EOL
9 KiB
JavaScript
265 lines
No EOL
9 KiB
JavaScript
/*:
|
|
* @target MZ
|
|
* @plugindesc クエストシステム
|
|
* @author しもや
|
|
* @help
|
|
* 色んな処理します。
|
|
* @command ItemQuest
|
|
* @text
|
|
* @desc
|
|
* @arg questid
|
|
* @type number
|
|
*
|
|
* @command QuestAccept
|
|
* @text
|
|
* @desc
|
|
* @arg questid
|
|
* @type string
|
|
*
|
|
* @command QuestClearFlag
|
|
* @text
|
|
* @desc
|
|
* @arg questid
|
|
* @type string
|
|
*
|
|
* @command QuestProgress
|
|
* @text
|
|
* @desc
|
|
* @arg questid
|
|
* @type string
|
|
*
|
|
* @arg progress
|
|
* @type number
|
|
*
|
|
* @command QuestEnd
|
|
* @text
|
|
* @desc
|
|
* @arg questid
|
|
* @type string
|
|
*
|
|
* @command QuestFailed
|
|
* @text
|
|
* @desc
|
|
* @arg questid
|
|
* @type string
|
|
*
|
|
* @command LoseQuestItem
|
|
* @text
|
|
* @desc
|
|
* @arg questid
|
|
* @type number
|
|
*
|
|
* @command QuestResult
|
|
* @text
|
|
* @desc
|
|
* @arg questid
|
|
* @type string
|
|
*
|
|
* @command QuestHint
|
|
* @text
|
|
* @desc
|
|
* @arg questid
|
|
* @type string
|
|
*
|
|
* @arg message
|
|
* @type multiline_string
|
|
*
|
|
*/
|
|
|
|
|
|
(() => {
|
|
const pluginName = "SH_QuestResult";
|
|
|
|
//収集クエスト
|
|
|
|
PluginManager.registerCommand(pluginName, "ItemQuest", function (args) {
|
|
var questid = args.questid; // データベースから1番のアイテムを取得
|
|
|
|
var questType = $dataItems[questid].meta.Type;
|
|
|
|
//アイテム判定
|
|
$gameVariables._data[620] = CallItemId(questid)
|
|
|
|
});
|
|
|
|
PluginManager.registerCommand(pluginName, "LoseQuestItem", function (args) {
|
|
|
|
var questid = 105; // データベースから1番のアイテムを取得
|
|
CallItemId(questid)
|
|
var ItemIdVar = 601; ItemNumNar = ItemIdVar + 10
|
|
if ($gameVariables.value(ItemIdVar) >= 1) { $gameParty.loseItem($dataItems[$gameVariables.value(ItemIdVar)], $gameVariables.value(ItemNumNar)) }
|
|
var ItemIdVar = 602; ItemNumNar = ItemIdVar + 10
|
|
if ($gameVariables.value(ItemIdVar) >= 1) { $gameParty.loseItem($dataItems[$gameVariables.value(ItemIdVar)], $gameVariables.value(ItemNumNar)) }
|
|
var ItemIdVar = 603; ItemNumNar = ItemIdVar + 10
|
|
if ($gameVariables.value(ItemIdVar) >= 1) { $gameParty.loseItem($dataItems[$gameVariables.value(ItemIdVar)], $gameVariables.value(ItemNumNar)) }
|
|
});
|
|
|
|
PluginManager.registerCommand(pluginName, "QuestProgress", function (args) {
|
|
var questid = args.questid; // データベースから1番のアイテムを取得
|
|
questid = ConvertCC(questid)
|
|
var questVar = Number($dataItems[questid].meta.questvar);
|
|
|
|
$gameVariables._data[questVar].progress = Number(args.progress)//受諾
|
|
console.log($gameVariables.value(questVar).progress)
|
|
if ($gameVariables.value(questVar).progress >= 100) { $gameVariables._data[questVar].progress = 100 }
|
|
});
|
|
|
|
|
|
PluginManager.registerCommand(pluginName, "QuestClearFlag", function (args) {
|
|
var questid = args.questid; // データベースから1番のアイテムを取得
|
|
questid = ConvertCC(questid)
|
|
var questVar = Number($dataItems[questid].meta.questvar);
|
|
|
|
$gameVariables._data[questVar].clearflag = 'true'//受諾
|
|
});
|
|
|
|
|
|
PluginManager.registerCommand(pluginName, "QuestAccept", function (args) {
|
|
var questid = args.questid; // データベースから1番のアイテムを取得
|
|
questid = ConvertCC(questid)
|
|
var questVar = Number($dataItems[questid].meta.questvar);
|
|
|
|
$gameVariables._data[questVar].accept = 'true'//受諾
|
|
});
|
|
|
|
|
|
|
|
PluginManager.registerCommand(pluginName, "QuestEnd", function (args) {
|
|
var questid = args.questid; // データベースから1番のアイテムを取得
|
|
questid = ConvertCC(questid)
|
|
var questVar = Number($dataItems[questid].meta.questvar);
|
|
|
|
|
|
|
|
$gameVariables._data[questVar].clear = 'true'//クリア
|
|
$gameVariables._data[questVar].accept = 'false'//受諾中フラグリセット
|
|
$gameVariables._data[questVar].cleartimes += 1//クリア回数
|
|
});
|
|
|
|
|
|
PluginManager.registerCommand(pluginName, "QuestFailed", function (args) {
|
|
var questid = args.questid; // データベースから1番のアイテムを取得
|
|
questid = ConvertCC(questid)
|
|
console.log(questid)
|
|
var questVar = Number($dataItems[questid].meta.questvar);
|
|
|
|
|
|
|
|
$gameVariables._data[questVar].clear = 'false'//クリア
|
|
$gameVariables._data[questVar].accept = 'false'//受諾中フラグリセット
|
|
$gameVariables._data[questVar].clearflag = 'false'
|
|
$gameVariables._data[questVar].progress = 0
|
|
$gameVariables._data[questVar].questhint = ' '
|
|
});
|
|
|
|
|
|
|
|
PluginManager.registerCommand(pluginName, "QuestResult", function (args) {
|
|
var questid = args.questid; // データベースから1番のアイテムを取得4
|
|
questid = ConvertCC(questid)
|
|
var questObj = $dataItems[questid]
|
|
//var questType = questObj.meta.Type;//ミニゲームなどを判定(いまのところ無意味?)
|
|
|
|
var Money = Number(questObj.meta.Money || 0)
|
|
var Exp = Number(questObj.meta.Exp || 0)
|
|
//var Bustle = Number(questObj.meta.Bustle || 0)
|
|
var Lust = Number(questObj.meta.Lust || 0)
|
|
if (questObj.meta.resultPointVar) {//ポイントによる報酬変動
|
|
var resultPointVar = Number(questObj.meta.resultPointVar || 0)
|
|
Money = Money * $gameVariables.value(resultPointVar)
|
|
$gameVariables._data[resultPointVar] = 0
|
|
}
|
|
|
|
var resultVar = Number(questObj.meta.resultVar || 0)//変数報酬
|
|
var resultP = Number(questObj.meta.resultP || 0)
|
|
var resultVar2 = Number(questObj.meta.resultVar || 0)
|
|
var resultP2 = Number(questObj.meta.resultP || 0)
|
|
$TM.show('Quest Complete!')
|
|
|
|
//アイテム判定
|
|
if (Money != 0) { $gameParty.gainGold(Money); tickergamevar('Rewards', Money); }
|
|
if (Exp != 0) {
|
|
//$gameActors.actor(1).changeExp(Exp);tickergamevar('Exp',Exp);
|
|
if ($gameActors.actor(1).isStateAffected(96)) {
|
|
Exp = Math.round(Exp * 1.5)//お祈り効果
|
|
$TM.show('Experience and rewards increased through blessings by prayer.');
|
|
}
|
|
$gameParty.changeExp(Exp); tickergamevar('Exp', Exp);
|
|
|
|
}
|
|
//if(Bustle |= 0){$gameVariables._data[117] += Bustle;tickergamevar('Bustle',Bustle) }
|
|
if (Lust != 0) { paraUpCommon(Lust, "lust") }
|
|
if (resultVar != 0) { $gameVariables._data[resultVar] += resultP; }
|
|
if (resultVar2 != 0) { $gameVariables._data[resultVar2] += resultP2; }
|
|
|
|
|
|
});
|
|
|
|
|
|
PluginManager.registerCommand(pluginName, "QuestHint", function (args) {
|
|
var questid = args.questid; // データベースから1番のアイテムを取得4
|
|
questid = ConvertCC(questid)
|
|
var hint = args.message
|
|
hint = 'Next : ' + hint
|
|
var questvar = Number($dataItems[questid].meta.questvar)
|
|
$gameVariables._data[questvar].questhint = hint
|
|
$TM.show('Quests have been updated.')
|
|
});
|
|
|
|
|
|
|
|
function CallItemId(questid) {
|
|
var ItemId = 0
|
|
var ItemNum = 0
|
|
var ItemId2 = 0
|
|
var ItemNum2 = 0
|
|
var ItemId3 = 0
|
|
var ItemNum3 = 0
|
|
var ItemId4 = 0
|
|
var ItemNum4 = 0
|
|
var ItemId5 = 0
|
|
var ItemNum5 = 0
|
|
|
|
if ($dataItems[questid].meta.NeedItemId) {
|
|
var ItemId = Number($dataItems[questid].meta.NeedItemId)
|
|
var ItemNum = Number($dataItems[questid].meta.NeedItemNum)
|
|
$gameVariables._data[601] = ItemId; $gameVariables._data[611] = ItemNum
|
|
}
|
|
|
|
if ($dataItems[questid].meta.NeedItemId2) {
|
|
var ItemId2 = Number($dataItems[questid].meta.NeedItemId2)
|
|
var ItemNum2 = Number($dataItems[questid].meta.NeedItemNum2)
|
|
$gameVariables._data[602] = ItemId2; $gameVariables._data[612] = ItemNum2
|
|
}
|
|
|
|
if ($dataItems[questid].meta.NeedItemId3) {
|
|
var ItemId3 = Number($dataItems[questid].meta.NeedItemId3)
|
|
var ItemNum3 = Number($dataItems[questid].meta.NeedItemNum3)
|
|
$gameVariables._data[603] = ItemId3; $gameVariables._data[613] = ItemNum3
|
|
}
|
|
|
|
if ($dataItems[questid].meta.NeedItemId4) {
|
|
var ItemId4 = Number($dataItems[questid].meta.NeedItemId4)
|
|
var ItemNum4 = Number($dataItems[questid].meta.NeedItemNum4)
|
|
$gameVariables._data[604] = ItemId4; $gameVariables._data[614] = ItemNum4
|
|
}
|
|
|
|
if ($dataItems[questid].meta.NeedItemId5) {
|
|
var ItemId5 = Number($dataItems[questid].meta.NeedItemId5)
|
|
var ItemNum5 = Number($dataItems[questid].meta.NeedItemNum5)
|
|
$gameVariables._data[605] = ItemId5; $gameVariables._data[615] = ItemNum5
|
|
}
|
|
|
|
console.log($gameParty.numItems($dataItems[ItemId]))
|
|
if (ItemNum <= $gameParty.numItems($dataItems[ItemId]) && ItemNum2 <= $gameParty.numItems($dataItems[ItemId2]) && ItemNum3 <= $gameParty.numItems($dataItems[ItemId3]) && ItemNum4 <= $gameParty.numItems($dataItems[ItemId4]) && ItemNum5 <= $gameParty.numItems($dataItems[ItemId5])) {
|
|
var Successflag = 1
|
|
} else {
|
|
var Successflag = 0
|
|
}
|
|
return Successflag
|
|
}
|
|
|
|
|
|
|
|
|
|
})(); |