查看: 2771|回复: 6

[已经解决] 关于如何读取状态的编号到变量里

[复制链接]
梦石
0
星屑
1618
在线时间
267 小时
注册时间
2019-1-18
回帖
129
发表于 2022-1-26 20:15:47 | 显示全部楼层 |阅读模式
悬赏50星屑已解决
本帖最后由 造小梦 于 2022-1-30 17:29 编辑

如题,我想制作一个技能,它可以将敌方所带的所有buff消除,并转移到使用者身上,这种技能可以用原版的脚本或其他方式实现吗?望大佬指点

最佳答案

查看完整内容

你看看这个符合你的要求么[pre lang="ruby"]#============================================================================== # # ¥ Yami Engine Symphony - Transfer States # -- Last Updated: 2012.12.16 # -- Level: Easy # -- Requires: n/a # #============================================================================== $imported = {} if $imported.nil? $imported["YES-TransferStates"] = true #====== ...

评分

参与人数 1赞 +1 收起 理由
哇哇哇啊叭叭 + 1 哎...来晚了

查看全部评分

梦石
0
星屑
29901
在线时间
5734 小时
注册时间
2016-3-8
回帖
1653
发表于 2022-1-26 20:15:48 | 显示全部楼层
你看看这个符合你的要求么[pre lang="ruby"]#==============================================================================
#
# ¥ Yami Engine Symphony - Transfer States
# -- Last Updated: 2012.12.16
# -- Level: Easy
# -- Requires: n/a
#
#==============================================================================

$imported = {} if $imported.nil?
$imported["YES-TransferStates"] = true

#==============================================================================
# ¥ Updates
# =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
# 2012.12.16 - Started and Finished Script.
#
#==============================================================================
# ¥ Introduction
# =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
# This script provides transfering states ability for battlers.
#
#==============================================================================
# ¥ Instructions
# =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
# To install this script, open up your script editor and copy/paste this script
# to an open slot below ¥ Materials/‘fÞ but above ¥ Main. Remember to save.
#
# -----------------------------------------------------------------------------
# Skill Notetags - These notetags go in the skill notebox in the database.
# -----------------------------------------------------------------------------
# <transfer allow: x, x, x>
# Limits states id that skill can transfer. Replace x with state ID.
#
# <transfer n states: string>
# Transfers n states from user to target. String can be:
#   last states
#   high priority
#   low priority
#
#==============================================================================
# ¥ Compatibility
# =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
# This script is made strictly for RPG Maker VX Ace. It is highly unlikely that
# it will run with RPG Maker VX without adjustments.
#
#==============================================================================

#==============================================================================
# ¥ Editting anything past this point may potentially result in causing
# computer damage, incontinence, explosion of user's head, coma, death, and/or
# halitosis so edit at your own risk.
#==============================================================================

#==============================================================================
# ¡ Regular Expression
#==============================================================================

module REGEXP
  module TRANSFER_STATES
    TRANSFER_ALLOW = /<(?:TRANSFER_ALLOW|transfer allow):[ ]*(.*)>/i
    TRANSFER_STATE = /<(?:TRANSFER (\d+) STATES):[ ]*(.*)>/i
  end # TRANSFER_STATES
end # REGEXP

#==============================================================================
# ¡ DataManager
#==============================================================================

module DataManager
   
  #--------------------------------------------------------------------------
  # alias method: load_database
  #--------------------------------------------------------------------------
  class <<self; alias load_database_transfer_states load_database; end
  def self.load_database
    load_database_transfer_states
    initialize_transfer_states
  end
  
  #--------------------------------------------------------------------------
  # new method: initialize_transfer_states
  #--------------------------------------------------------------------------
  def self.initialize_transfer_states
    groups = [$data_skills, $data_items]
    groups.each { |group|
      group.each { |obj|
        next if obj.nil?
        obj.initialize_transfer_states
      }
    }
  end
  
end # DataManager

#==============================================================================
# ¡ RPG::BaseItem
#==============================================================================

class RPG::BaseItem
  
  #--------------------------------------------------------------------------
  # * Public Instance Variables
  #--------------------------------------------------------------------------
  attr_accessor :transfer_allow
  attr_accessor :transfer_states

  #--------------------------------------------------------------------------
  # new method: initialize_transfer_states
  #--------------------------------------------------------------------------
  def initialize_transfer_states
    self.note.split(/[\r\n]+/).each { |line|
      case line
      when REGEXP::TRANSFER_STATES::TRANSFER_ALLOW
        @transfer_allow ||= []
        $1.scan(/\d+/).each { |id| @transfer_allow.push(id.to_i) }
      when REGEXP::TRANSFER_STATES::TRANSFER_STATE
        @transfer_states = [$1.to_i, $2.to_s]
      end
    }
  end
  
end # RPG::BaseItem

#==============================================================================
# ¡ Game_Battler
#==============================================================================

class Game_Battler < Game_BattlerBase
  
  #--------------------------------------------------------------------------
  # alias method: item_test
  #--------------------------------------------------------------------------
  alias yes_transfer_states_item_test item_test
  def item_test(user, item)
    return true if transfering_states(user, item).size > 0
    return yes_transfer_states_item_test(user, item)
  end
  
  #--------------------------------------------------------------------------
  # alias method: item_apply
  #--------------------------------------------------------------------------
  alias yes_transfer_states_item_user_effect item_user_effect
  def item_user_effect(user, item)
    item_effect_transfer_states(user, item)
    yes_transfer_states_item_user_effect(user, item)
  end
  
  #--------------------------------------------------------------------------
  # new method: item_effect_transfer_states
  #--------------------------------------------------------------------------
  def item_effect_transfer_states(user, item)
    return unless @result.hit?
    return unless item.transfer_states
    @result.success = true
    hash = transfering_states(user, item)
    hash.each { |id|
      self.add_state(id)
      user.remove_state(id)
    }
  end
  
  #--------------------------------------------------------------------------
  # new method: transfering_states
  #--------------------------------------------------------------------------
  def transfering_states(user, item)
    return [] unless item.transfer_states
    result = []
    hash = item.transfer_states
    allow = item.transfer_allow
    states_hash = user.states
    #---
    case hash[1].upcase
    when "last", "last states", "last state"
      states_hash = user.result.added_states.reverse
    when "low", "low priority", "lower priority"
      states_hash.reverse!
    when "random"
      states_hash.shuffle!
    end
    #---
    states_hash.each { |state|
      next if allow && !allow.include?(state.id)
      result.push(state.id) unless result.include?(state.id)
      break if result.size >= hash[0]
    }
    return result
  end

end # Game_Battler

#==============================================================================
#
# ¥ End of File
#
#==============================================================================[/pre]

评分

参与人数 1赞 +1 收起 理由
哇哇哇啊叭叭 + 1 精品文章

查看全部评分

回复

使用道具 举报

梦石
10
星屑
39550
在线时间
1919 小时
注册时间
2010-11-14
回帖
3214

R考场第七期纪念奖

发表于 2022-2-1 16:19:54 | 显示全部楼层
本帖最后由 KB.Driver 于 2022-2-5 00:51 编辑

2022.2.5编辑

不好意思忘记从敌人身上消除状态了,完整的请参考这个
[pre lang="ruby"]b.states.each{|s|a.add_state(s.id);b.remove_state(s.id)};[/pre]

=======================================

技能的伤害公式这样写。
开头先写这个:
[pre lang="ruby"]b.states.each{|s|a.add_state(s.id)};[/pre]
然后在后面再正常写技能的伤害公式

评分

参与人数 2星屑 +5 赞 +1 收起 理由
alexncf125 + 5 大佬没看清题目?少了转出的效果唉,,,.
哇哇哇啊叭叭 + 1 精品文章

查看全部评分

用头画头像,用脚写脚本
回复

使用道具 举报

梦石
0
星屑
1618
在线时间
267 小时
注册时间
2019-1-18
回帖
129
 楼主| 发表于 2022-2-3 01:02:12 | 显示全部楼层
alexncf125 发表于 2022-2-2 12:01
你看看这个符合你的要求么#=========================================================================== ...

看不懂哎,具体是怎么用的?

评分

参与人数 1星屑 -5 收起 理由
alexncf125 -5 伸手

查看全部评分

回复

使用道具 举报

梦石
0
星屑
29901
在线时间
5734 小时
注册时间
2016-3-8
回帖
1653
发表于 2022-2-3 02:09:41 | 显示全部楼层
造小梦 发表于 2022-2-3 01:02
看不懂哎,具体是怎么用的?

请问你有拿去翻译么...
  1. # ¥ 简介
  2. # =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  3. # 此脚本为战斗者提供状态转移能力。
  4. #
  5. #=================================================== ==============================
  6. # ¥ 说明
  7. # =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  8. # 要安装这个脚本,打开你的脚本编辑器并复制/粘贴这个脚本
  9. # 到 ¥ Materials/‘f Þ 下方但高于 ¥ Main 的空位。 记得保存。
  10. #
  11. #------------------------------------------------ ----------------------------
  12. # 技能注释标签 - 这些注释标签进入数据库的技能注释框中。
  13. #------------------------------------------------ ----------------------------
  14. # <传输允许:x, x, x>
  15. # 限制技能可以转移的状态 id。 将 x 替换为状态 ID。
  16. #
  17. # <转移n个状态:字符串>
  18. # 将 n 个状态从用户转移到目标。 字符串可以是:
  19. # 最后的状态
  20. # 高优先级
  21. #   低优先级
复制代码
回复

使用道具 举报

梦石
0
星屑
1618
在线时间
267 小时
注册时间
2019-1-18
回帖
129
 楼主| 发表于 2022-2-4 00:59:24 | 显示全部楼层
alexncf125 发表于 2022-2-3 02:09
请问你有拿去翻译么...

粘贴到到 ¥ Materials/‘f Þ 下方但高于 ¥ Main 的空位是什么意思?找不到这串字符
回复

使用道具 举报

梦石
0
星屑
1618
在线时间
267 小时
注册时间
2019-1-18
回帖
129
 楼主| 发表于 2022-2-4 01:22:56 | 显示全部楼层
alexncf125 发表于 2022-2-3 02:09
请问你有拿去翻译么...

抱歉抱歉,高三了学习有点紧没来得及去翻译
回复

使用道具 举报

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

本版积分规则

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

在本版发帖返回顶部