设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 1987|回复: 8
打印 上一主题 下一主题

[有事请教] 请问如何添加多种货币?

[复制链接]

Lv1.梦旅人

梦石
0
星屑
117
在线时间
19 小时
注册时间
2022-11-8
帖子
12
跳转到指定楼层
1
发表于 2022-11-24 09:05:48 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 ether弧人 于 2022-11-24 14:45 编辑

如题,一种货币是普通的金币,用于游戏内部流通;但另一种货币较为高级,可用于抽卡。
类似于《原神》的摩拉和原石,或者是《崩坏3rd》里的金币和水晶。
有考虑把抽卡货币直接当物品来处理,但是MV似乎不能判定某种物品是否超过某个值……
如此,蒟蒻很迷茫,还请各位大佬指教!谢谢!
Ether弧人
ENTP 8w7
为了热度而画画
退役OIer,JS一窍不通
RM小白一只
无情的%%%机器
交个朋友吧!
我使用所有代词,但偏好于“He/Him”

Lv3.寻梦者

梦石
0
星屑
3218
在线时间
210 小时
注册时间
2022-2-9
帖子
55
2
发表于 2022-11-24 09:36:20 | 只看该作者
可以试试看把当前的金币放到一个变量里然后从另一个变量里的数据转换成金钱
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
3218
在线时间
210 小时
注册时间
2022-2-9
帖子
55
3
发表于 2022-11-24 09:37:25 | 只看该作者
本帖最后由 tanurog2 于 2022-11-24 09:40 编辑

唯一缺点就是货币图案一毛一样,但是基本就能不用任何插件的方式完美实行多货币机制

example method 1.PNG (28.81 KB, 下载次数: 26)

example method 1.PNG

example method 2.PNG (28.53 KB, 下载次数: 23)

example method 2.PNG

example method 3.PNG (29.37 KB, 下载次数: 25)

example method 3.PNG
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
3218
在线时间
210 小时
注册时间
2022-2-9
帖子
55
4
发表于 2022-11-24 09:41:13 | 只看该作者
当你要用到特定的货币,用公共事件来换掉当前货币,完成后立刻换回原本的货币
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
2158
在线时间
441 小时
注册时间
2021-4-9
帖子
17
5
发表于 2022-11-24 11:03:38 | 只看该作者
1.YEP有多货币插件,需要YEP商店核心前置。
2.考虑到YEP多货币直接实现方式是在商店界面,和你抽卡需求可能不一致,
其实MV是可以判断物品的数量,你可以按照你的第二个思路来
$gameParty.numItems(item),获取指定item的拥有数量。在分支条件里的脚本填写,例如$gameParty.numItems($dataItems[1]) === 1,意思是物品1的数量等于1。
搭配以下符号就可以自由实现判断标准。
> ⼤于
<  ⼩于
>= ⼤于或等于
<= ⼩于或等于
=== 等于
&& 和
|| 或
!== 不等于
! 否
回复 支持 1 反对 0

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
117
在线时间
19 小时
注册时间
2022-11-8
帖子
12
6
 楼主| 发表于 2022-11-24 14:44:44 | 只看该作者
cmyx 发表于 2022-11-24 11:03
1.YEP有多货币插件,需要YEP商店核心前置。
2.考虑到YEP多货币直接实现方式是在商店界面,和你抽卡需求可能 ...

ohhh……非常感谢您!我会去尝试的
Ether弧人
ENTP 8w7
为了热度而画画
退役OIer,JS一窍不通
RM小白一只
无情的%%%机器
交个朋友吧!
我使用所有代词,但偏好于“He/Him”
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
88
在线时间
26 小时
注册时间
2023-3-11
帖子
9
7
发表于 2023-3-18 09:05:24 | 只看该作者
tanurog2 发表于 2022-11-24 09:41
当你要用到特定的货币,用公共事件来换掉当前货币,完成后立刻换回原本的货币 ...

学到了,感谢

点评

不客气,大大  发表于 2023-7-22 00:17
回复 支持 1 反对 0

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
98
在线时间
32 小时
注册时间
2023-9-30
帖子
33
8
发表于 2023-10-1 19:14:20 | 只看该作者
我定制过一个插件,就是那种变量值商店
像米家游戏,都是把抽卡道具做到商店里嘛,所以变量值商店也差不多
至于抽卡嘛...https://rpg.blue/forum.php?mod=viewthread&tid=478478&extra=page%3D1%26filter%3Dtypeid%26typeid%3D1306
你试试这个
下面是那个变量值商店的js:
//=============================================================================
// AnotherCurrencyShop.js
//-----------------------------------------------------------------------------
// Version
// 1.0.0 プラグイン公開
// 1.0.1 修正参数错误并指定购买窗口命令项名称
//=============================================================================
/*:
* @plugindesc 变量值交易商店
* @author rinne_grid 汉化:硕明云书
*
* @param Currency Name
* @desc 货币的名称。(指定MP、PT等)
* @default 灵石
*
* @param Variable Number
* @desc 用作货币的变量的值。(默认情况下指定第一个变量)
* @default 1
*
* @param Buy Command Name
* @desc 购买项目时显示的命令字符串。根据需要指定“交换”等
* @default 购买
*
* @param Sell Command Name
* @desc 出售项目时显示的命令字符串
* @default 出售
*
*
*
*
* @help
*
* 插件命令
*    AnotherCurrencyShop on varId nName buy sell  # 启用不使用金钱的商店,最后varId需要替换为指定的变量ID值,nName为添加新的名字,如果未填写则使用原版变量值,buy购买,sell出售,如果未填写,则使用默认名称
*    AnotherCurrencyShop off   # 禁用不使用金钱的商店
*
*
*
*
*
*
*  魔改作者: 流逝的岁月
*  魔改版本: v1.02
*
*
*  魔改内容v1.02: 添加新的插件参数
*  魔改内容v1.01: 添加新的插件参数
*  魔改内容v1.00: 修改原版指令 AnotherCurrencyShop on,支持多变量,如果未使用这个功能则为默认变量
*
*
*  此插件已进行付费魔改
*
*
*
------------------------------------------------------
* 无范围限制使用、商用需署名作者
*/

(function(){

    var parameters = PluginManager.parameters('AnotherCurrencyShop');
    var currencyName = String(parameters['Currency Name'] || 'PT');
    var variableNumber = String(parameters['Variable Number'] || '1');
    var buyCommandName = String(parameters['Buy Command Name'] || '購入する');
    var sellCommandName = String(parameters['Sell Command Name'] || '売却する');


        var Zzy = Zzy || {};
        Zzy.MACS = Zzy.MACS || {};
        Zzy.MACS.SetVarId = 0;
        Zzy.MACS.SetNName = '';
        Zzy.MACS.SetBuy = '';
        Zzy.MACS.SetSell = '';
       

    //-------------------------------------------------------------------------
    // 関数退避
    //-------------------------------------------------------------------------
    var _Game_Interpreter_pluginCommand =
            Game_Interpreter.prototype.pluginCommand;

    var _Scene_Shop_doBuy = Scene_Shop.prototype.doBuy;
    var _Scene_Shop_doSell = Scene_Shop.prototype.doSell;
    var _Window_Gold_value = Window_Gold.prototype.value;
    var _Window_Gold_currencyUnit = Window_Gold.prototype.currencyUnit;
    var _Window_ShopCommand_makeCommandList = Window_ShopCommand.prototype.makeCommandList;


    Game_Interpreter.prototype.pluginCommand = function(command, args) {
        _Game_Interpreter_pluginCommand.call(this, command, args);
        if(command === 'AnotherCurrencyShop')
                {
            switch(args[0]) {
            case 'on':
                       
                                var varId = args[1] === undefined ? 0 : parseInt(args[1]);
                                var nName = args[2] === undefined ? '' : String(args[2]);
                                var buy = args[3] === undefined ? '' : String(args[3]);
                                var sell = args[4] === undefined ? '' : String(args[4]);
                               
                               
                                Zzy.MACS.SetVarId = varId;
                                Zzy.MACS.SetNName = nName;
                                Zzy.MACS.SetBuy = buy;
                                Zzy.MACS.SetSell = sell;
                               
                $gameSystem.rngd_hook_on_AnotherCurrencyShop();
                break;
            case 'off':
                $gameSystem.rngd_hook_off_AnotherCurrecyShop();
                break;
            }
        }
    };

    //-------------------------------------------------------------------------
    // ゴールド以外のショップON
    //-------------------------------------------------------------------------
    Game_System.prototype.rngd_hook_on_AnotherCurrencyShop = function()
        {
        Scene_Shop.prototype.doBuy = function(number)
                {
                       
                        var vNumber = Zzy.MACS.SetVarId ? Zzy.MACS.SetVarId : variableNumber;
                       
       
            var _current = $gameVariables.value(vNumber);
            _current -= number * this.buyingPrice();
            $gameVariables.setValue(vNumber, _current);
            $gameParty.gainItem(this._item, number);
        };

        Scene_Shop.prototype.doSell = function(number)
                {
                        var vNumber = Zzy.MACS.SetVarId ? Zzy.MACS.SetVarId : variableNumber;
                       
                       
            var _current = $gameVariables.value(vNumber);
            _current += number * this.sellingPrice();
            $gameVariables.setValue(vNumber, _current);
            $gameParty.loseItem(this._item, number);
        };

        Window_Gold.prototype.value = function() {
            // プラグインで指定した変数の値を金額として返す
                        var vNumber = Zzy.MACS.SetVarId ? Zzy.MACS.SetVarId : variableNumber;
                       
                       
            return $gameVariables.value(vNumber);
        };

        Window_Gold.prototype.currencyUnit = function()
                {
                        var cName = '';
                        cName = Zzy.MACS.SetNName ? Zzy.MACS.SetNName : currencyName;
            return cName;
        };

        Window_ShopCommand.prototype.makeCommandList = function() {
            this.clearCommandList();
                       
                        var buy = Zzy.MACS.SetBuy ? Zzy.MACS.SetBuy : buyCommandName;
                        var sell = Zzy.MACS.SetSell ? Zzy.MACS.SetSell : sellCommandName;
                               
            this.addCommand(buy,    'buy');
            this.addCommand(sell,   'sell',   !this._purchaseOnly);
            this.addCommand(TextManager.cancel, 'cancel');
        };

    };

    //-------------------------------------------------------------------------
    // ゴールド以外のショップOFF
    //-------------------------------------------------------------------------
    Game_System.prototype.rngd_hook_off_AnotherCurrecyShop = function() {
        Scene_Shop.prototype.doBuy = function(number) {
            _Scene_Shop_doBuy.call(this, number);
        };

        Scene_Shop.prototype.doSell = function(number) {
            _Scene_Shop_doSell.call(this, number);
        };

        Window_Gold.prototype.value = function() {
            return _Window_Gold_value.call(this);
        };

        Window_Gold.prototype.currencyUnit = function() {
            return _Window_Gold_currencyUnit.call(this);
        };

        Window_ShopCommand.prototype.makeCommandList = function() {
            _Window_ShopCommand_makeCommandList.call(this);
        };

    };
       
       
       
    //-------------------------------------------------------------------------
    // ゴールド以外のショップOFF
    //-------------------------------------------------------------------------       
       
       
        Zzy.MACS.Scene_Shop_terminate = Scene_Shop.prototype.terminate;
        Scene_Shop.prototype.terminate = function() //退出恢复正常
        {
                Zzy.MACS.Scene_Shop_terminate.call(this);
                Zzy.MACS.SetVarId = 0;
                Zzy.MACS.SetNName = '';
                Zzy.MACS.SetBuy = '';
                Zzy.MACS.SetSell = '';               
               
        };
       

})();
回复 支持 反对

使用道具 举报

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

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-5-15 00:56

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表