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

Project1

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

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

[复制链接]

Lv3.寻梦者

梦石
0
星屑
1422
在线时间
245 小时
注册时间
2019-1-18
帖子
190
跳转到指定楼层
1
发表于 2022-1-26 20:15:47 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
50星屑
本帖最后由 造小梦 于 2022-1-30 17:29 编辑

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

最佳答案

查看完整内容

你看看这个符合你的要求么#============================================================================== # # ¥ 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 哎...来晚了

查看全部评分

Lv5.捕梦者

梦石
0
星屑
24317
在线时间
5050 小时
注册时间
2016-3-8
帖子
1620
2
发表于 2022-1-26 20:15:48 | 只看该作者
你看看这个符合你的要求么
RUBY 代码复制
  1. #==============================================================================
  2. #
  3. # ¥ Yami Engine Symphony - Transfer States
  4. # -- Last Updated: 2012.12.16
  5. # -- Level: Easy
  6. # -- Requires: n/a
  7. #
  8. #==============================================================================
  9.  
  10. $imported = {} if $imported.nil?
  11. $imported["YES-TransferStates"] = true
  12.  
  13. #==============================================================================
  14. # ¥ Updates
  15. # =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  16. # 2012.12.16 - Started and Finished Script.
  17. #
  18. #==============================================================================
  19. # ¥ Introduction
  20. # =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  21. # This script provides transfering states ability for battlers.
  22. #
  23. #==============================================================================
  24. # ¥ Instructions
  25. # =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  26. # To install this script, open up your script editor and copy/paste this script
  27. # to an open slot below ¥ Materials/‘fÞ but above ¥ Main. Remember to save.
  28. #
  29. # -----------------------------------------------------------------------------
  30. # Skill Notetags - These notetags go in the skill notebox in the database.
  31. # -----------------------------------------------------------------------------
  32. # <transfer allow: x, x, x>
  33. # Limits states id that skill can transfer. Replace x with state ID.
  34. #
  35. # <transfer n states: string>
  36. # Transfers n states from user to target. String can be:
  37. #   last states
  38. #   high priority
  39. #   low priority
  40. #
  41. #==============================================================================
  42. # ¥ Compatibility
  43. # =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  44. # This script is made strictly for RPG Maker VX Ace. It is highly unlikely that
  45. # it will run with RPG Maker VX without adjustments.
  46. #
  47. #==============================================================================
  48.  
  49. #==============================================================================
  50. # ¥ Editting anything past this point may potentially result in causing
  51. # computer damage, incontinence, explosion of user's head, coma, death, and/or
  52. # halitosis so edit at your own risk.
  53. #==============================================================================
  54.  
  55. #==============================================================================
  56. # ¡ Regular Expression
  57. #==============================================================================
  58.  
  59. module REGEXP
  60.   module TRANSFER_STATES
  61.     TRANSFER_ALLOW = /<(?:TRANSFER_ALLOW|transfer allow):[ ]*(.*)>/i
  62.     TRANSFER_STATE = /<(?:TRANSFER (\d+) STATES):[ ]*(.*)>/i
  63.   end # TRANSFER_STATES
  64. end # REGEXP
  65.  
  66. #==============================================================================
  67. # ¡ DataManager
  68. #==============================================================================
  69.  
  70. module DataManager
  71.  
  72.   #--------------------------------------------------------------------------
  73.   # alias method: load_database
  74.   #--------------------------------------------------------------------------
  75.   class <<self; alias load_database_transfer_states load_database; end
  76.   def self.load_database
  77.     load_database_transfer_states
  78.     initialize_transfer_states
  79.   end
  80.  
  81.   #--------------------------------------------------------------------------
  82.   # new method: initialize_transfer_states
  83.   #--------------------------------------------------------------------------
  84.   def self.initialize_transfer_states
  85.     groups = [$data_skills, $data_items]
  86.     groups.each { |group|
  87.       group.each { |obj|
  88.         next if obj.nil?
  89.         obj.initialize_transfer_states
  90.       }
  91.     }
  92.   end
  93.  
  94. end # DataManager
  95.  
  96. #==============================================================================
  97. # ¡ RPG::BaseItem
  98. #==============================================================================
  99.  
  100. class RPG::BaseItem
  101.  
  102.   #--------------------------------------------------------------------------
  103.   # * Public Instance Variables
  104.   #--------------------------------------------------------------------------
  105.   attr_accessor :transfer_allow
  106.   attr_accessor :transfer_states
  107.  
  108.   #--------------------------------------------------------------------------
  109.   # new method: initialize_transfer_states
  110.   #--------------------------------------------------------------------------
  111.   def initialize_transfer_states
  112.     self.note.split(/[\r\n]+/).each { |line|
  113.       case line
  114.       when REGEXP::TRANSFER_STATES::TRANSFER_ALLOW
  115.         @transfer_allow ||= []
  116.         $1.scan(/\d+/).each { |id| @transfer_allow.push(id.to_i) }
  117.       when REGEXP::TRANSFER_STATES::TRANSFER_STATE
  118.         @transfer_states = [$1.to_i, $2.to_s]
  119.       end
  120.     }
  121.   end
  122.  
  123. end # RPG::BaseItem
  124.  
  125. #==============================================================================
  126. # ¡ Game_Battler
  127. #==============================================================================
  128.  
  129. class Game_Battler < Game_BattlerBase
  130.  
  131.   #--------------------------------------------------------------------------
  132.   # alias method: item_test
  133.   #--------------------------------------------------------------------------
  134.   alias yes_transfer_states_item_test item_test
  135.   def item_test(user, item)
  136.     return true if transfering_states(user, item).size > 0
  137.     return yes_transfer_states_item_test(user, item)
  138.   end
  139.  
  140.   #--------------------------------------------------------------------------
  141.   # alias method: item_apply
  142.   #--------------------------------------------------------------------------
  143.   alias yes_transfer_states_item_user_effect item_user_effect
  144.   def item_user_effect(user, item)
  145.     item_effect_transfer_states(user, item)
  146.     yes_transfer_states_item_user_effect(user, item)
  147.   end
  148.  
  149.   #--------------------------------------------------------------------------
  150.   # new method: item_effect_transfer_states
  151.   #--------------------------------------------------------------------------
  152.   def item_effect_transfer_states(user, item)
  153.     return unless @result.hit?
  154.     return unless item.transfer_states
  155.     @result.success = true
  156.     hash = transfering_states(user, item)
  157.     hash.each { |id|
  158.       self.add_state(id)
  159.       user.remove_state(id)
  160.     }
  161.   end
  162.  
  163.   #--------------------------------------------------------------------------
  164.   # new method: transfering_states
  165.   #--------------------------------------------------------------------------
  166.   def transfering_states(user, item)
  167.     return [] unless item.transfer_states
  168.     result = []
  169.     hash = item.transfer_states
  170.     allow = item.transfer_allow
  171.     states_hash = user.states
  172.     #---
  173.     case hash[1].upcase
  174.     when "last", "last states", "last state"
  175.       states_hash = user.result.added_states.reverse
  176.     when "low", "low priority", "lower priority"
  177.       states_hash.reverse!
  178.     when "random"
  179.       states_hash.shuffle!
  180.     end
  181.     #---
  182.     states_hash.each { |state|
  183.       next if allow && !allow.include?(state.id)
  184.       result.push(state.id) unless result.include?(state.id)
  185.       break if result.size >= hash[0]
  186.     }
  187.     return result
  188.   end
  189.  
  190. end # Game_Battler
  191.  
  192. #==============================================================================
  193. #
  194. # ¥ End of File
  195. #
  196. #==============================================================================

评分

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

查看全部评分

回复

使用道具 举报

Lv5.捕梦者

梦石
10
星屑
39440
在线时间
1914 小时
注册时间
2010-11-14
帖子
3315

R考场第七期纪念奖

3
发表于 2022-2-1 16:19:54 | 只看该作者
本帖最后由 KB.Driver 于 2022-2-5 00:51 编辑

2022.2.5编辑

不好意思忘记从敌人身上消除状态了,完整的请参考这个
RUBY 代码复制
  1. b.states.each{|s|a.add_state(s.id);b.remove_state(s.id)};


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

技能的伤害公式这样写。
开头先写这个:
RUBY 代码复制
  1. b.states.each{|s|a.add_state(s.id)};

然后在后面再正常写技能的伤害公式

评分

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

查看全部评分

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

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1422
在线时间
245 小时
注册时间
2019-1-18
帖子
190
4
 楼主| 发表于 2022-2-3 01:02:12 | 只看该作者
alexncf125 发表于 2022-2-2 12:01
你看看这个符合你的要求么#=========================================================================== ...

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

评分

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

查看全部评分

回复

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
24317
在线时间
5050 小时
注册时间
2016-3-8
帖子
1620
5
发表于 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. #   低优先级
复制代码
回复

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1422
在线时间
245 小时
注册时间
2019-1-18
帖子
190
6
 楼主| 发表于 2022-2-4 00:59:24 | 只看该作者
alexncf125 发表于 2022-2-3 02:09
请问你有拿去翻译么...

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

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1422
在线时间
245 小时
注册时间
2019-1-18
帖子
190
7
 楼主| 发表于 2022-2-4 01:22:56 | 只看该作者
alexncf125 发表于 2022-2-3 02:09
请问你有拿去翻译么...

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

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-4-29 00:29

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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