Project1

标题: 怎么样实现特殊商店,不能出售武器,只能出售道具 [打印本页]

作者: 55808888    时间: 2023-5-6 15:16
标题: 怎么样实现特殊商店,不能出售武器,只能出售道具
如题,我做了一个特殊商店,希望里面只能出售道具,武器和防具不能出售,怎么实现?

作者: 小秋橙    时间: 2023-5-6 17:31
我说说思路吧,首先商店界面Scene_Menu中有下面的函数负责显示所有的道具类别:
Scene_Shop.prototype.createCategoryWindow = function() {
    this._categoryWindow = new Window_ItemCategory();
    this._categoryWindow.setHelpWindow(this._helpWindow);
    this._categoryWindow.y = this._dummyWindow.y;
    this._categoryWindow.hide();
    this._categoryWindow.deactivate();
    this._categoryWindow.setHandler('ok',     this.onCategoryOk.bind(this));
    this._categoryWindow.setHandler('cancel', this.onCategoryCancel.bind(this));
    this.addWindow(this._categoryWindow);
};
而其中第一行的new Window_ItemCategory()则默认会生成【物品、武器、防具、重要物品】四类,也就是下面的函数:
Window_ItemCategory.prototype.makeCommandList = function() {
    this.addCommand(TextManager.item,    'item');
    if ($gameSwitches.value(1)) return; // 本行为新增内容,表示当开关1开启时不再执行下面三行
    this.addCommand(TextManager.weapon,  'weapon');
    this.addCommand(TextManager.armor,   'armor');
    this.addCommand(TextManager.keyItem, 'keyItem');
};
那么为了实现楼主想要的效果,可以在第二个函数中进行条件判断,比如某某开关打开的话则只生成【物品】不生成另外三个,然后在进入和退出这个特殊商店前后改变该开关。
第二个函数位于rpg_windows.js的第1888行左右。
作者: 55808888    时间: 2023-5-10 12:06
小秋橙 发表于 2023-5-6 17:31
我说说思路吧,首先商店界面Scene_Menu中有下面的函数负责显示所有的道具类别:
Scene_Shop.prototype.crea ...

大神你说的我看懂了,但是我用的是Drill_SceneShop自定义商店插件,里面的这段代码被改掉了,这个怎么破?

Scene_Shop.prototype.createCategoryWindow = function() {
        var data = {
                "x": DrillUp.g_SSh_category_x,
                "y": DrillUp.g_SSh_category_y,
                "width": DrillUp.g_SSh_category_width,
                "height": DrillUp.g_SSh_category_height,
                "fontsize": DrillUp.g_SSh_category_fontsize,
               
                "slideMoveType": DrillUp.g_SSh_category_slideAnim['slideMoveType'],
                "slideTime": DrillUp.g_SSh_category_slideAnim['slideTime'],
                "slideDelay": DrillUp.g_SSh_category_slideAnim['slideDelay'],
                "slidePosType": DrillUp.g_SSh_category_slideAnim['slidePosType'],
                "slideX": DrillUp.g_SSh_category_slideAnim['slideX'],
                "slideY": DrillUp.g_SSh_category_slideAnim['slideY'],
                "slideAbsoluteX": DrillUp.g_SSh_category_slideAnim['slideAbsoluteX'],
                "slideAbsoluteY": DrillUp.g_SSh_category_slideAnim['slideAbsoluteY'],
               
                "layoutType": DrillUp.g_SSh_category_layout['layoutType'],
                "layoutX": DrillUp.g_SSh_category_layout['layoutX'],
                "layoutY": DrillUp.g_SSh_category_layout['layoutY'],
                "layoutSrc": DrillUp.g_SSh_category_layout['layoutSrc'],
                "layoutSrcFile": DrillUp.g_SSh_category_layout['layoutSrcFile'],
作者: monkeyjess    时间: 2023-12-8 00:41
drill插件里面物品自定义分类设置,在备注栏里设定开关。可以在商店里隐藏该类物品 实现你的功能。




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