Нужна помощь с QuestLog

Больше
8 года 2 мес. назад #102371 от VulfKing
Доброго всем времени суток! Помогите пожалуйста решить проблему!

Проблема такая - не работает плагин MrTravel_QuestLog. При выборе квест лога в меню персонажа вылезает вот такая вот ошибка.

[IMG


Аналогичная проблема и с плагином PHQuestBook. Пробывал множество плагинов на систему квестов, но все выдают ошибки. Чаще всего вылезает ошибка с "cannot ready property "leght" undrfindet" или нечто такое.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

1 место в Готв 3 место Учитель Разработчик 3 место Готв Ветеран Писатель 2 место Тестер
Больше
8 года 2 мес. назад #102372 от Демий
Демий ответил в теме Нужна помощь с QuestLog
Возможно есть другие плагины, которые конфликтуют с этим. Надо попробовать отключить все и оставить только квест лог, если ошибка исчезла, тол дальше включать по одному, пока не возникнет снова. Если же останется, то текст плагина в студию.
Спасибо сказали: akito66

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

  • akito66
  • Не в сети
  • Завсегдатай
  • Завсегдатай
  • В Иркутске пески холодные, но когда ты рядом, мне становится теплее.
Проект месяца 2 место Композитор Разработчик Даритель Стимкея Проект месяца 3 место Организатор конкурсов Оратор Паладин Учитель Ветеран Проект месяца 1 место
Больше
8 года 2 мес. назад #102374 от akito66
akito66 ответил в теме Нужна помощь с QuestLog
Согласен с Демием. Добавлю что иногда важен порядок подключаемых плагинов.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Больше
8 года 2 мес. назад - 8 года 2 мес. назад #102375 от VulfKing
VulfKing ответил в теме Нужна помощь с QuestLog
Попробовал отключить все плагины - ошибка осталась. Собственно, вот код самого плагина нужного QuestLoga:
Code:
//============================================================================= // MrTS_QuestLog.js //============================================================================= /*: * @plugindesc Tracks quests, awards players for completing them. * @author Mr. Trivel * * @param --Icons-- * @default * * @param All Quests Icon * @desc Icon ID for all quests tab. * Default: 93 * @default 93 * * @param Ongoing Quests Icon * @desc Icon ID for ongoing quests. * Default: 92 * @default 92 * * @param Completed Quests Icon * @desc Icon ID for completed quests tab. * Default: 90 * @default 90 * * @param Failed Quests Icon * @desc Icon ID for failed quests tab. * Default: 91 * @default 91 * * @param Gold Icon * @desc Icon ID for gold rewards. * Default: 313 * @default 313 * * @param --Text-- * @default * * @param Description Text * @desc Description text. * Default: Description * @default Description * * @param Objective Text * @desc Current Objective text. * Default: Current Objective * @default Current Objective * * @param Rewards Text * @desc Rewards Text * Default: Rewards * @default Rewards * * @param Quest Log Text * @desc Quest Log Text in menu. * Default: Quest Log * @default Quest Log * * @param No Objective Text * @desc Text to show in objectives when quest failed or finished. * Default: - No Objectives * @default - No Objectives * * @param --Colors-- * @default * * @param Started Color * @desc Started quest color. * Default: #FFFFFF * @default #FFFFFF * * @param Completed Color * @desc Completed quest color. * Default: #11FF11 * @default #11FF11 * * @param Failed Color * @desc Failed quest color. * Default: #FF1111 * @default #FF1111 * * @param --Windows-- * @default * * @param Quest Log Menu * @desc Is Quest log accessible from menu? True/False * Default: True * @default True * * @param Quest Category X * @desc X Position of Quest Category Window * Default: Graphics.boxWidth/2 - 816/2 * @default Graphics.boxWidth/2 - 816/2 * * @param Quest Category Y * @desc Y Position of Quest Category Window * Default: Graphics.boxHeight/2 - 624/2 * @default Graphics.boxHeight/2 - 624/2 * * @param Quest Category Width * @desc Quest Category Window's Width * Default: 266 * @default 266 * * @param Quest Category Height * @desc Quest Category Window's Height * Default: 72 * @default 72 * * @param Quest List X * @desc X Position of Quest List * Default: Graphics.boxWidth/2 - 816/2 * @default Graphics.boxWidth/2 - 816/2 * * @param Quest List Y * @desc Y Position of Quest List * Default: Graphics.boxHeight/2 - 624/2 + 72 * @default Graphics.boxHeight/2 - 624/2 + 72 * * @param Quest List Width * @desc Width of Quest List * Default: 266 * @default 266 * * @param Quest List Height * @desc Height of Quest List * Default: 624-72 * @default 624-72 * * @param Description X * @desc X Position of Description window. * Default: Graphics.boxWidth/2 - 816/2 + 266 * @default Graphics.boxWidth/2 - 816/2 + 266 * * @param Description Y * @desc Y Position of Description window. * Default: Graphics.boxHeight/2 - 624/2 * @default Graphics.boxHeight/2 - 624/2 * * @param Description Width * @desc Description window Width. * Default: 816-266 * @default 816-266 * * @param Description Height * @desc Description window Height. * Default: 624 * @default 624 * * @help * -------------------------------------------------------------------------------- * Terms of Use * -------------------------------------------------------------------------------- * Don't remove the header or claim that you wrote this plugin. * Credit Mr. Trivel if using this plugin in your project. * Free for commercial and non-commercial projects. * -------------------------------------------------------------------------------- * Version 1.0a * -------------------------------------------------------------------------------- * * -------------------------------------------------------------------------------- * How to Set Up Quests * -------------------------------------------------------------------------------- * Create a new file in Data folder: * Quests.json * * Quests file will hold data regarding quests. I highly recommend checking sample * that file that is located in the demo of this plugin * -------------------------------------------------------------------------------- * * -------------------------------------------------------------------------------- * Quests.json * -------------------------------------------------------------------------------- * Quest object looks like this: * { * "ID": 1337, * "Name": "Tutorial Island 1", * "IconID": 83, * "Description": "The island on a tutorial or the tutorial on an island.", * "Rewards": [Reward Object, * Reward Object, * Reward Object, * ...], * "Steps": ["This is step 1", * "This shall be step II", * "And this is not the last step.", * ...] * } * * You can use special characters in Steps text, just add extra backslash. * E.g. "Collect rare weapons - \\V[20] from 100" * * Reward object looks like this: * { * "Type": "weapon" * "ID": 99999, * "Amount": 99 * "Text": "Text for text reward type" * } * Type being "weapon", "armor", "item", "gold", "exp", "text" * "gold", "exp" and "text" types don't need "ID". * If ID is specified for exp, actor of that ID will get the exp. * * * File itself should look like this: * [ * null, * Quest Object, * Quest Object, * ... * Quest Object * ] * -------------------------------------------------------------------------------- * * -------------------------------------------------------------------------------- * Plugin Commands * -------------------------------------------------------------------------------- * QuestLog Start ID - Starts quest * QuestLog Advance ID - Advances quest by a single step * QuestLog SetStep ID STEP - Sets quest to a specific step * QuestLog Finish ID - Finishes quest and gives rewards * QuestLog Fail ID - Fails a quest * QuestLog Enter - Enters quest log scene * -------------------------------------------------------------------------------- * * -------------------------------------------------------------------------------- * Script Calls * -------------------------------------------------------------------------------- * $gameSystem.getQuestStep(id) - returns step number of a quest * $gameSystem.isQuestStarted(id) - returns true/false is quest started * $gameSystem.isQuestFinished(id) - returns true/false is quest finished * $gameSystem.isQuestFailed(id) - returns true/false is quest failed * -------------------------------------------------------------------------------- * * -------------------------------------------------------------------------------- * Version History * -------------------------------------------------------------------------------- * 1.0 - Release * 1.0a - Window size bug fix. */ var $dataQuests = null; DataManager._databaseFiles.push({name: '$dataQuests', src: 'Quests.json'}); (function() { var parameters = PluginManager.parameters('MrTS_QuestLog'); var paramAllQuestsIcon = Number(parameters['All Quests Icon'] || 93); var paramCompletedQuestsIcon = Number(parameters['Completed Quests Icon'] || 90); var paramFailedQuestsIcon = Number(parameters['Failed Quests Icon'] || 91); var paramOngoingQuestsIcon = Number(parameters['Ongoing Quests Icon'] || 92); var paramGoldIcon = Number(parameters['Gold Icon'] || 313); var paramDescriptionText = String(parameters['Description Text'] || "Description"); var paramObjectiveText = String(parameters['Objective Text'] || "Current Objective"); var paramRewardsText = String(parameters['Rewards Text'] || "Rewards"); var paramQuestLogText = String(parameters['Quest Log Text'] || "Quest Log"); var paramNoObjectivesText = String(parameters['No Objectives Text'] || "- No Objectives"); var paramStartedColor = String(parameters['Started Color'] || "#FFFFFF"); var paramCompletedColor = String(parameters['Completed Color'] || "#11FF11"); var paramFailedColor = String(parameters['Failed Color'] || "#FF1111"); var paramQuestLogMenu = (parameters['Quest Log Menu'] || "True").toLowerCase() === "true"; var paramQuestCategoryX = String(parameters['Quest Category X'] || "Graphics.boxWidth/2 - 816/2"); var paramQuestCategoryY = String(parameters['Quest Category Y'] || "Graphics.boxHeight/2 - 624/2"); var paramQuestCategoryWidth = String(parameters['Quest Category Width'] || "266"); var paramQuestCategoryHeight = String(parameters['Quest Category Height'] || "624"); var paramQuestListX = String(parameters['Quest List X'] || "Graphics.boxWidth/2 - 816/2"); var paramQuestListY = String(parameters['Quest List Y'] || "Graphics.boxHeight/2 - 624/2 + 72"); var paramQuestListWidth = String(parameters['Quest List Width'] || "266"); var paramQuestListHeight = String(parameters['Quest List Height'] || "624 - 72"); var paramQuestDescriptionX = String(parameters['Description X'] || "Graphics.boxWidth/2 - 816/2 + 266"); var paramQuestDescriptionY = String(parameters['Description Y'] || "Graphics.boxHeight/2 - 624/2"); var paramQuestDescriptionWidth = String(parameters['Description Width'] || "816-266"); var paramQuestDescriptionHeight = String(parameters['Description Height'] || "624"); //-------------------------------------------------------------------------- // Game_Interpreter // var _Game_Interpreter_pluginCommand = Game_Interpreter.prototype.pluginCommand; Game_Interpreter.prototype.pluginCommand = function(command, args) { _Game_Interpreter_pluginCommand.call(this, command, args); if (command.toLowerCase() === "questlog") { switch (args[0].toUpperCase()) { case 'START': { $gameSystem.startQuest(Number(args[1])); } break; case 'ADVANCE': { var id = Number(args[1]); var step = $gameSystem.getQuestStep(id); $gameSystem.setQuestStep(id, step+1); } break; case 'SETSTEP': { var id = Number(args[1]); var step = Number(args[2]); $gameSystem.setQuestStep(id, step); } break; case 'FINISH': { $gameSystem.finishQuest(Number(args[1])); } break; case 'FAIL': { $gameSystem.failQuest(Number(args[1])); } break; case 'ENTER': { SceneManager.push(Scene_QuestLog); } break; } } }; //-------------------------------------------------------------------------- // Game_System // var _Game_System_initialize = Game_System.prototype.initialize; Game_System.prototype.initialize = function() { _Game_System_initialize.call(this); this.initializeQuestLog(); }; Game_System.prototype.initializeQuestLog = function(first_argument) { this._quests = []; for (var i = 0; i < $dataQuests.length; i++) { if (!$dataQuests[i]) continue; var quest = {}; var data = $dataQuests[i]; quest.ID = data["ID"]; quest.name = data["Name"]; quest.iconId = data["IconID"]; quest.description = data["Description"]; quest.rewards = data["Rewards"]; quest.steps = data["Steps"]; quest.currentStep = 0; quest.started = false; quest.finished = false; quest.failed = false; this._quests[i] = quest; } }; Game_System.prototype.getAllQuests = function() { var quests = []; for (var i = 0; i < this._quests.length; i++) { if (!this._quests[i]) continue; if (this._quests[i].started || this._quests[i].finished || this._quests[i].failed) quests.push(i); } return quests; }; Game_System.prototype.getStartedQuests = function() { var quests = []; for (var i = 0; i < this._quests.length; i++) { if (!this._quests[i]) continue; if (this._quests[i].started && !this._quests[i].finished && !this._quests[i].failed) quests.push(i); } return quests; }; Game_System.prototype.getCompletedQuests = function() { var quests = []; for (var i = 0; i < this._quests.length; i++) { if (!this._quests[i]) continue; if (this._quests[i].finished) quests.push(i); } return quests; }; Game_System.prototype.getFailedQuests = function() { var quests = []; for (var i = 0; i < this._quests.length; i++) { if (!this._quests[i]) continue; if (this._quests[i].failed) quests.push(i); } return quests; }; Game_System.prototype.getQuest = function(id) { return this._quests[id]; }; Game_System.prototype.getQuestStep = function(id) { if (!this._quests[id]) { console.warn("FAILED TO GET QUEST STEP! Quest with ID " + id + " does not exist!"); return -1; } return this._quests[id].currentStep; }; Game_System.prototype.isQuestStarted = function(id) { if (!this._quests[id]) { console.warn("FAILED TO GET IS QUEST STARTED! Quest with ID " + id + " does not exist!"); return false; } return this._quests[id].started; }; Game_System.prototype.isQuestFinished = function(id) { if (!this._quests[id]) { console.warn("FAILED TO GET IS QUEST FINISHED! Quest with ID " + id + " does not exist!"); return false; } return this._quests[id].finished; }; Game_System.prototype.isQuestFailed = function(id) { if (!this._quests[id]) { console.warn("FAILED TO GET IS QUEST FAILED! Quest with ID " + id + " does not exist!"); return false; } return this._quests[id].failed; }; Game_System.prototype.startQuest = function(id) { if (!this._quests[id]) { console.warn("FAILED TO START QUEST! Quest with ID " + id + " does not exist!"); return; } this._quests[id].started = true; }; Game_System.prototype.finishQuest = function(id) { if (!this._quests[id]) { console.warn("FAILED TO FINISh QUEST! Quest with ID " + id + " does not exist!"); return; } this._quests[id].finished = true; rewards = this._quests[id].rewards; for (var i = 0; i < rewards.length; i++) { switch (rewards[i].Type) { case 'weapon': { var amount = rewards[i].Amount; $gameParty.gainItem($dataWeapons[rewards[i].ID], amount); } break; case 'armor': { var amount = rewards[i].Amount; $gameParty.gainItem($dataArmors[rewards[i].ID], amount); } break; case 'item': { var amount = rewards[i].Amount; $gameParty.gainItem($dataItems[rewards[i].ID], amount); } break; case 'gold': { var amount = rewards[i].Amount; $gameParty.gainGold(amount); } break; case 'exp': { var amount = rewards[i].Amount; var id = rewards[i].ID; if (id) { $gameActors.actor(id).gainExp(amount); } else { $gameParty.allMembers().forEach(function(actor) { actor.gainExp(amount); }); } } break; } } }; Game_System.prototype.failQuest = function(id) { if (!this._quests[id]) { console.warn("FAILED TO FAIL QUEST! Quest with ID " + id + " does not exist!"); return; } this._quests[id].failed = true; }; Game_System.prototype.setQuestStep = function(id, step) { if (!this._quests[id]) { console.warn("FAILED TO SET QUEST TO STEP " + step + "! Quest with ID " + id + " does not exist!"); return; } if (!this._quests[id].steps[step]) { console.warn("FAILED TO SET QUEST TO STEP " + step + "! Step does not exist! Did you mean to finish the quest instead?"); return; } this._quests[id].currentStep = step; }; //-------------------------------------------------------------------------- // Scene_QuestLog // // Scene which displays log with quests. function Scene_QuestLog() { this.initialize.apply(this, arguments); }; Scene_QuestLog.prototype = Object.create(Scene_MenuBase.prototype); Scene_QuestLog.prototype.constructor = Scene_QuestLog; Scene_QuestLog.prototype.initialize = function() { Scene_MenuBase.prototype.initialize.call(this); }; Scene_QuestLog.prototype.create = function() { Scene_MenuBase.prototype.create.call(this); this.createWindowLayer(); }; Scene_QuestLog.prototype.create = function() { Scene_MenuBase.prototype.create.call(this); this.createCategoryWindow(); this.createListWindow(); this.createInfoWindow(); }; Scene_QuestLog.prototype.createCategoryWindow = function() { var wx = eval(paramQuestCategoryX); var wy = eval(paramQuestCategoryY); var ww = eval(paramQuestCategoryWidth); var wh = eval(paramQuestCategoryHeight); this._categoryWindow = new Window_QuestLogCategory(wx, wy, ww, wh); this._categoryWindow.setHandler('ok', this.onCategoryOk.bind(this)); this._categoryWindow.setHandler('cancel', this.popScene.bind(this)); this.addWindow(this._categoryWindow); this._categoryWindow.activate(); this._categoryWindow.select(0); }; Scene_QuestLog.prototype.createListWindow = function() { var wx = eval(paramQuestListX); var wy = eval(paramQuestListY); var ww = eval(paramQuestListWidth); var wh = eval(paramQuestListHeight); this._listWindow = new Window_QuestLogList(wx, wy, ww, wh); this._listWindow.setHandler('cancel', this.onListCancel.bind(this)); this.addWindow(this._listWindow); }; Scene_QuestLog.prototype.createInfoWindow = function() { var wx = eval(paramQuestDescriptionX); var wy = eval(paramQuestDescriptionY); var ww = eval(paramQuestDescriptionWidth); var wh = eval(paramQuestDescriptionHeight); this._infoWindow = new Window_QuestLogDescription(wx, wy, ww, wh); this.addWindow(this._infoWindow); this._listWindow.setDescriptionWindow(this._infoWindow); }; Scene_QuestLog.prototype.onCategoryOk = function() { this._listWindow.activate(); this._listWindow.select(0); }; Scene_QuestLog.prototype.onListCancel = function() { this._listWindow.deselect(); this._categoryWindow.activate(); }; Scene_QuestLog.prototype.update = function() { Scene_MenuBase.prototype.update.call(this); if (this._cIndex !== this._categoryWindow.index()) { this._cIndex = this._categoryWindow.index(); switch (this._categoryWindow.index()) { case 0: { this._listWindow._data = $gameSystem.getStartedQuests(); } break; case 1: { this._listWindow._data = $gameSystem.getAllQuests(); } break; case 2: { this._listWindow._data = $gameSystem.getCompletedQuests(); } break; case 3: { this._listWindow._data = $gameSystem.getFailedQuests(); } break; } this._listWindow.refresh(); } }; //-------------------------------------------------------------------------- // Window_QuestLogCategory // // Shows icons for quest categories. function Window_QuestLogCategory() { this.initialize.apply(this, arguments); }; Window_QuestLogCategory.prototype = Object.create(Window_Selectable.prototype); Window_QuestLogCategory.prototype.constructor = Window_QuestLogCategory; Window_QuestLogCategory.prototype.initialize = function(x, y, w, h) { Window_Selectable.prototype.initialize.call(this, x, y, w, h); this.refresh(); }; Window_QuestLogCategory.prototype.maxCols = function() { return 4; }; Window_QuestLogCategory.prototype.maxItems = function() { return 4; }; Window_QuestLogCategory.prototype.itemHeight = function() { return Window_Base._iconHeight + 4; }; Window_QuestLogCategory.prototype.itemWidth = function() { return Window_Base._iconWidth + 4; }; Window_QuestLogCategory.prototype.itemRect = function(index) { var maxCols = this.maxCols(); var rect = new Rectangle(); rect.width = this.itemWidth(); rect.height = this.itemHeight(); var quarter = this.contentsWidth()/4; rect.x = (quarter*index) - Window_Base._iconWidth/2 + quarter/2; rect.y = Math.floor(index / maxCols) * rect.height - this._scrollY; return rect; }; Window_QuestLogCategory.prototype.drawItem = function(index) { var rect = this.itemRect(index); var icon = 0; switch (index) { case 0: { icon = paramOngoingQuestsIcon; } break; case 1: { icon = paramAllQuestsIcon; } break; case 2: { icon = paramCompletedQuestsIcon; } break; case 3: { icon = paramFailedQuestsIcon; } break; } this.drawIcon(icon, rect.x+2, rect.y+2); }; //-------------------------------------------------------------------------- // Window_QuestLogList // // Shows quests depending on category. function Window_QuestLogList() { this.initialize.apply(this, arguments); }; Window_QuestLogList.prototype = Object.create(Window_Selectable.prototype); Window_QuestLogList.prototype.constructor = Window_QuestLogList; Window_QuestLogList.prototype.initialize = function(x, y, w, h) { Window_Selectable.prototype.initialize.call(this, x, y, w, h); this._data = $gameSystem.getStartedQuests(); this.refresh(); }; Window_QuestLogList.prototype.maxItems = function() { return this._data ? this._data.length : 1; }; Window_QuestLogList.prototype.drawItem = function(index) { var quest = $gameSystem.getQuest(this._data[index]); if (quest) { var rect = this.itemRectForText(index); var iconId = quest.iconId; var name = quest.name; this.drawIcon(iconId, rect.x, rect.y+1); if (quest.failed) this.changeTextColor(paramFailedColor); else if (quest.finished) this.changeTextColor(paramCompletedColor); else this.changeTextColor(paramStartedColor); this.drawText(name, rect.x+Window_Base._iconWidth, rect.y); this.resetTextColor(); } }; Window_QuestLogList.prototype.setDescriptionWindow = function(_window) { this._descriptionWindow = _window; }; Window_QuestLogList.prototype.update = function() { Window_Selectable.prototype.update.call(this); this.updateDescription(); }; Window_QuestLogList.prototype.updateDescription = function() { if (!this._descriptionWindow) return; this._descriptionWindow.setQuest(this._data[this.index()]); }; //-------------------------------------------------------------------------- // Window_QuestLogDescription // // Shows quest's information. function Window_QuestLogDescription() { this.initialize.apply(this, arguments); }; Window_QuestLogDescription.prototype = Object.create(Window_Base.prototype); Window_QuestLogDescription.prototype.constructor = Window_QuestLogDescription; Window_QuestLogDescription.prototype.initialize = function(x, y, w, h) { Window_Base.prototype.initialize.call(this, x, y, w, h); }; Window_QuestLogDescription.prototype.refresh = function() { this.contents.clear(); var quest = $gameSystem.getQuest(this._quest); if (!quest) return; // Name var textWidth = this.textWidth(quest.name); var nameWidth = textWidth + Window_Base._iconWidth + 2; this.drawIcon(quest.iconId, this.contentsWidth()/2 - nameWidth/2, 0); this.drawText(quest.name, this.contentsWidth()/2 - nameWidth/2 + Window_Base._iconWidth + 2, 0); // Description this.changeTextColor(this.systemColor()); this.drawText(paramDescriptionText, 0, this.lineHeight()); this.resetTextColor(); var x = 0; var y = this.lineHeight()*2; var tWidth = this.contentsWidth(); var words = quest.description.split(" "); for (var i = 0; i < words.length; i++) { var word = words[i]; var width = this.textWidth(word); var sWidth = this.textWidth(" "); if (x + width >= tWidth) { x = 0; y += this.lineHeight(); } this.drawText(word + " ", x, y); x += width + sWidth; } y += this.lineHeight()*2; // Objetive this.changeTextColor(this.systemColor()); this.drawText(paramObjectiveText, 0, y); y += this.lineHeight(); this.resetTextColor(); if (quest.finished || quest.failed) this.drawText(paramNoObjectivesText, 0, y); else this.drawTextEx(quest.steps[quest.currentStep], 0, y); y += this.lineHeight()*2; // Rewards this.changeTextColor(this.systemColor()); this.drawText(paramRewardsText, 0, y); y += this.lineHeight(); this.resetTextColor(); for (var i = 0; i < quest.rewards.length; i++) { switch (quest.rewards[i].Type) { case 'weapon': { var amount = quest.rewards[i].Amount; var txt = amount + "x"; this.drawText(txt, 0, y); this.drawItemName($dataWeapons[quest.rewards[i].ID], this.textWidth(txt)+2, y); } break; case 'armor': { var amount = quest.rewards[i].Amount; var txt = amount + "x"; this.drawText(txt, 0, y); this.drawItemName($dataArmors[quest.rewards[i].ID], this.textWidth(txt)+2, y); } break; case 'item': { var amount = quest.rewards[i].Amount; var txt = amount + "x"; this.drawText(txt, 0, y); this.drawItemName($dataItems[quest.rewards[i].ID], this.textWidth(txt)+2, y); } break; case 'gold': { var amount = quest.rewards[i].Amount; this.drawIcon(paramGoldIcon, 2, y+1); this.drawText(amount, Window_Base._iconWidth + 4, y); } break; case 'exp': { var amount = quest.rewards[i].Amount; var id = quest.rewards[i].ID; if (id) this.drawText(amount + " " + TextManager.expA + " for " + $gameActors.actor(id).name(), 0, y); else this.drawText(amount + " " + TextManager.expA + " for each party member.", 0, y); } break; case 'text': { this.drawText(quest.rewards[i].Text, 0, y); } break; } y += this.lineHeight(); } }; Window_QuestLogDescription.prototype.setQuest = function(id) { if (this._quest === id) return; this._quest = id; this.refresh(); }; //-------------------------------------------------------------------------- // QuestLog Command // var _Scene_Menu_createCommandWindow = Scene_Menu.prototype.createCommandWindow; Scene_Menu.prototype.createCommandWindow = function() { _Scene_Menu_createCommandWindow.call(this); this._commandWindow.setHandler('questlog', this.commandQuestLog.bind(this)); }; Scene_Menu.prototype.commandQuestLog = function() { SceneManager.push(Scene_QuestLog); }; Window_MenuCommand.prototype.addOriginalCommands = function() { if (paramQuestLogMenu) { this.addCommand(paramQuestLogText, 'questlog', true); } }; })();
Последнее редактирование: 8 года 2 мес. назад пользователем VulfKing.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Больше
8 года 2 мес. назад #102376 от KageDesu
KageDesu ответил в теме Нужна помощь с QuestLog
Может быть проблема в оформлении Quests.json файла, который плагин использует как базу данных квестов.
У меня с пустым Quests.json на MV 1.6.0 работает плагин.
Спасибо сказали: Dmy

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Больше
8 года 2 мес. назад - 8 года 2 мес. назад #102381 от RadicalDreamer
Насколько я могу судить по коду плагина, у вас почему-то не отрабатывает метод initializeQuestLog (т.к. это единственное место, где инициализируется _quests).
Вы не пробовали в месте, где возникает ошибка, дописать вызов инициализации:
Code:
Game_System.prototype.getStartedQuests = function() { var quests = []; if (this._quests == undefined) this.initialize(); // или просто this.initializeQuestLog() ? for (var i = 0; i < this._quests.length; i++) { if (!this._quests[i]) continue; if (this._quests[i].started && !this._quests[i].finished && !this._quests[i].failed) quests.push(i); } return quests; };

Знаю, больше походит на хак, чем на реальное решение, но почему бы не попробовать.
Последнее редактирование: 8 года 2 мес. назад пользователем RadicalDreamer.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Время создания страницы: 0.095 секунд
Работает на Kunena форум