查看: 1234|回复: 7

[有事请教] 技能消耗金钱怎么做?

[复制链接]
梦石
0
星屑
1321
在线时间
157 小时
注册时间
2006-2-12
回帖
157
发表于 2025-2-11 19:00:48 | 显示全部楼层 |阅读模式

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

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

×
如题,之前用了 XdRs SkillConsumeItms 不过那是消耗物品的,想问下有消耗金钱的嘛?
梦石
0
星屑
962
在线时间
276 小时
注册时间
2023-3-16
回帖
66
发表于 2025-2-11 21:23:32 | 显示全部楼层
不在乎占个公共事件的话技能绑定一个公共事件,两个技能。第一个技能红包雨,常态挂在角色身上,没有消耗。没有伤害,绑定公共事件红包雨判定。第二个技能红包雨(真)名字和图标跟第一个一样,但不要给角色学,做上想要的伤害或者效果。公共事件红包雨判定先判断金币够不够用,不够直接弹个释放失败的对话框,够的话先给角色学习红包雨(真),强制战斗行动:角色释放红包雨(真),角色遗忘红包雨(真),减少金币。实际用的时候角色释放红包雨-启动公共事件红包雨判定-学会红包雨(真)-释放红包雨(真)-遗忘红包雨(真)-减去消耗的金币。
回复

使用道具 举报

梦石
0
星屑
1321
在线时间
157 小时
注册时间
2006-2-12
回帖
157
 楼主| 发表于 2025-2-11 22:56:19 | 显示全部楼层
4887441 发表于 2025-2-11 21:23
不在乎占个公共事件的话技能绑定一个公共事件,两个技能。第一个技能红包雨,常态挂在角色身上,没有消耗。 ...

最后的办法吧能有个插件是最好的,直接写个插件指令……
回复

使用道具 举报

梦石
0
星屑
962
在线时间
276 小时
注册时间
2023-3-16
回帖
66
发表于 2025-2-12 09:34:35 | 显示全部楼层
douqunbo 发表于 2025-2-11 22:56
最后的办法吧能有个插件是最好的,直接写个插件指令……

一定想要插件的话专门的插件不知到有没有,不过你可以利用消耗物品插件,做个物品金币,然后用一个并行公共事件让金币数量=金币物品数量,然后再用插件来消耗。
回复

使用道具 举报

梦石
0
星屑
1494
在线时间
135 小时
注册时间
2020-6-1
回帖
8
发表于 2025-2-12 14:16:27 | 显示全部楼层
这个功能很简单,基本上复制粘贴修改一下游戏框架的代码就能实现 现写了一个很简单的示例(没啥优化)
[pre lang="JavaScript" line="0" file="SkillPayCostGold.js"]//============================================================
//  SkillPayCostGold.js
//============================================================

var POG_SPCost = POG_SPCost || {};
POG_SPCost.FUNC = POG_SPCost.FUNC || {};

/*:
* @author Pogt
* @plugindesc 简单的技能消耗金钱插件
* @target MZ
* @help
* ============================================================================
*  介绍
* ============================================================================
* 该插件可用于指定一个技能消耗特定的金钱,如果金钱不足,将无法使用该技能
* 在技能的备注栏中加入:<GOLD:1>
* 代表使用该技能需要消耗1个单位的金钱
* 显示消耗金钱的数字将会以黄色呈现
*
* ============================================================================
*  修改内容
* ============================================================================
* 类Game_BattlerBase:
*  新增方法:
*      skillGoldCost
*  重定义:
*      canPaySkillCost
*      paySkillCost
* 类ColorManager:
*  新增方法:
*      GoldCostColor
* 窗口Window_SkillList:
*  重定义:
*      drawSkillCost
*/

//  提取注释的内容
function matchcomment(comment){
    // 定义正则表达式来匹配 <GOLD:数字>
    const regex = /<GOLD:(\d+)>/;
    // 使用正则表达式匹配并提取数字
    var match = comment.match(regex);
    if (match && match[1]) {
        var GoldValue = match[1];
        return GoldValue;
    }
    return 0;
}

//  获取金钱的消耗量
Game_BattlerBase.prototype.skillGoldCost = function(skill) {
    var id = skill.id;
    var cost = matchcomment($dataSkills[id].note);
    return cost;
};

// 重定义:能否支付使用技能的消耗
POG_SPCost.FUNC.GBB_canPaySkillCost = Game_BattlerBase.prototype.canPaySkillCost;
Game_BattlerBase.prototype.canPaySkillCost = function(skill) {
    if(!POG_SPCost.FUNC.GBB_canPaySkillCost.call(this,skill)){
        return false;
    }
    if($gameParty._gold < this.skillGoldCost(skill)){
        return false;
    }
    return true;
}

POG_SPCost.FUNC.GBB_paySkillCost = Game_BattlerBase.prototype.paySkillCost;
Game_BattlerBase.prototype.paySkillCost = function(skill) {
    POG_SPCost.FUNC.GBB_paySkillCost.call(this,skill);
    $gameParty.loseGold(this.skillGoldCost(skill));
};

//  消耗金钱用的颜色
ColorManager.GoldCostColor = function() {
    return this.textColor(6);
};

//  重定义:绘画技能消耗量
POG_SPCost.FUNC.WSL_drawSkillCost = Window_SkillList.prototype.drawSkillCost;
Window_SkillList.prototype.drawSkillCost = function(skill, x, y, width) {
    POG_SPCost.FUNC.WSL_drawSkillCost.call(this,skill, x, y, width);
    if(this._actor.skillGoldCost(skill) > 0){
        this.changeTextColor(ColorManager.GoldCostColor());
        this.drawText(this._actor.skillGoldCost(skill), x - 35, y, width, 'right');
    }
};
[/pre]
回复 1 0

使用道具 举报

梦石
0
星屑
1321
在线时间
157 小时
注册时间
2006-2-12
回帖
157
 楼主| 发表于 2025-2-12 16:17:40 | 显示全部楼层
13851402 发表于 2025-2-12 14:16
这个功能很简单,基本上复制粘贴修改一下游戏框架的代码就能实现 现写了一个很简单的示例(没啥优 ...

谢谢,除了显示消耗金币那里跟VisuMZ的战斗插件有点冲突,其他完美,不过按照你的注释我删掉了显示消耗金币,也不影响~
回复

使用道具 举报

梦石
0
星屑
2575
在线时间
124 小时
注册时间
2020-2-24
回帖
39
发表于 2025-2-21 09:36:55 | 显示全部楼层
vs技能核心自带的功能,自定义技能消耗成本,可以是血量,可以是金币,也可以是消耗物品,还能写js来自定义消耗成本。
回复

使用道具 举报

梦石
0
星屑
2575
在线时间
124 小时
注册时间
2020-2-24
回帖
39
发表于 2025-2-21 09:39:00 | 显示全部楼层
kissice 发表于 2025-2-21 09:36
vs技能核心自带的功能,自定义技能消耗成本,可以是血量,可以是金币,也可以是消耗物品,还能写js来自定义 ...

需要插件:vs技能与状态核心。
格式:
<type Cost: +x>
<type Cost: -x>
<type Cost: x%>
将type换成hp、mp、tp、金币。
案例:
Examples:
  <HP Cost: +20>
  <MP Cost: -10>
  <Gold Cost: 50%>
  <Potion Cost: 200%>
回复

使用道具 举报

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

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部