找回密码
 注册用户
查看: 203|回复: 0

[RMMZ] 【汉化】简易技能cd

[复制链接]

85

主题

7

回帖

1268

积分

资深会员

积分
1268
发表于 2024-7-14 01:36:36 | 显示全部楼层 |阅读模式
本帖最后由 烁灵 于 2024-7-14 01:55 编辑

原地址: https://forums.rpgmakerweb.com/i ... cooldown-mz.126885/
简单的按回合数设置技能CD

脚本:保存为 SimpleSkillColldown.js
  1. /*:@target MZ
  2. @url https://github.com/theoallen/RMMZ
  3. @plugindesc v1.0.0 - Simple Skill Cooldown
  4. 汉化 by 烁灵 更多插件请访问 www.hknmtt.com
  5. @author TheoAllen
  6. @help
  7. 本插件允许你设置技能冷却回合,cd每次回合结束时更新

  8. 使用方法:
  9. 在技能备注中填写 <cooldown: x> x为回合数

  10. Next plan:
  11. - Customizable CD text in the skill window
  12. - Give me more ideas...

  13. Terms of Use:
  14. - Free for commercial
  15. */
  16. var Theo = Theo || {}
  17. Theo.SkillCD = function(){
  18.     const _ = Theo.SkillCD
  19.     const $ = Game_Battler.prototype

  20.     _.version = '1.0.0'
  21.     _.cooldownRGX = /<cooldown[\s_]*:\s*(\d+)>/i
  22.     $._cooldowns = {}

  23.     _.skillInCooldown = function(skillId){
  24.         return this._cooldowns[String(skillId)] && this._cooldowns[String(skillId)] > 0
  25.     }

  26.     _.resetCooldown = function(){
  27.         this._cooldowns = {}
  28.     }

  29.     _.updateCooldown = function(){
  30.         Object.keys(this._cooldowns).forEach(cd => {
  31.             this._cooldowns[cd] -= 1
  32.         });
  33.     }

  34.     _.setCooldown = function(skillId, turn){
  35.         this._cooldowns[String(skillId)] = turn
  36.     }

  37.     _.initMembers = $.initMembers
  38.     $.initMembers = function(){
  39.         _.initMembers.call(this)
  40.         _.resetCooldown.call(this)
  41.     }

  42.     _.onTurnEnd = $.onTurnEnd
  43.     $.onTurnEnd = function() {
  44.         _.onTurnEnd.call(this)
  45.         _.updateCooldown.call(this)
  46.     }

  47.     _.onBattleStart = $.onBattleStart
  48.     $.onBattleStart = function(advantageous) {
  49.         _.resetCooldown.call(this)
  50.         _.onBattleStart.call(this, advantageous)
  51.     }

  52.     _.onBattleEnd = $.onBattleEnd
  53.     $.onBattleEnd = function() {
  54.         _.resetCooldown.call(this)
  55.         _.onBattleEnd.call(this)
  56.     }

  57.     _.paySkillCost = $.paySkillCost
  58.     $.paySkillCost = function(skill) {
  59.         _.paySkillCost.call(this, skill)
  60.         _.setCooldown.call(this, skill.id, skill._skillCD)
  61.     };

  62.     _.canPaySkillCost = $.canPaySkillCost
  63.     $.canPaySkillCost = function(skill) {
  64.         return _.canPaySkillCost.call(this, skill) && !_.skillInCooldown.call(this, skill.id)
  65.     };

  66.     wskill = Window_SkillList.prototype
  67.     _.drawSkillCost = wskill.drawSkillCost
  68.     wskill.drawSkillCost = function(skill, x, y, width) {
  69.         if(_.skillInCooldown.call(this._actor, skill.id)){
  70.             this.changeTextColor(ColorManager.textColor(8))
  71.             let text = this._actor._cooldowns[String(skill.id)] + " CD"
  72.             this.drawText(text, x, y, width, "right")
  73.             return
  74.         }
  75.         _.drawSkillCost.call(this, skill, x, y, width)
  76.     };

  77.     _.dbLoaded = DataManager.isDatabaseLoaded;
  78.     DataManager.isDatabaseLoaded = function(){
  79.         if (!_.dbLoaded.call(this)) {return false};
  80.         if (!_.skillCDLoaded) {
  81.             $dataSkills.forEach(function(db){
  82.                 if(db === null){return}
  83.                 _.loadDB(db)
  84.             })
  85.             _.skillCDLoaded = true
  86.         }
  87.         return true;
  88.     }

  89.     _.loadDB = function(db){
  90.         if(db._skillCD){
  91.             db._skillCD = 0
  92.         }
  93.         let notedata = db.note.split(/[\r\n]+/)
  94.         notedata.forEach(function(line){
  95.             if(line.match(_.cooldownRGX)){
  96.                 db._skillCD = Number(RegExp.$1)
  97.             }
  98.         });
  99.     }
  100. }
  101. Theo.SkillCD()
复制代码



回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册用户

本版积分规则

Archiver|QQ群: 48625831|爱上RPG|哈库纳玛塔塔 |网站地图 Clicky

GMT+8, 2024-9-8 11:16 , Processed in 0.047615 second(s), 18 queries .

Powered by Discuz! X3.5

Copyright © 2001-2020, Tencent Cloud.

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