Project1

标题: 请问:两个问题 [打印本页]

作者: kvkv97    时间: 2021-10-7 16:34
标题: 请问:两个问题
module SkillUpdate
  module_function
  #--------------------------------------------------------------------------
  # ● 連続攻撃系スクリプトとの併用化処理
  #    【仕様】連続攻撃系が動作中はレベルアップさせない。
  #    他の連続攻撃系との併用についてもこのメソッドで吸収させる。
  #--------------------------------------------------------------------------
  def can_update?(actor)
    # 追尾攻撃 併用時
    if defined?(ExtraAttack)
      return false if $scene.add_atk_exercise
    end
    # スキル連撃 併用時
    if defined?(ExtraSkill)
      return false if $scene.skill_chase_exercise
    end
    # 一人連携 併用時
    if defined?(SkillLink)
      return false if $scene.skill_linked
    end
    # 閃きシステム 併用時
    if defined?(SysFlash)
      return false if actor.flash_flg
    end

    return true # 有効
  end
end
问题一:module_function是什么意思,有什么用法?
问题二:defined?是什么意思?有什么用法?
作者: soulsaga    时间: 2021-10-7 19:11
Ruby defined? 运算符
defined? 是一个特殊的运算符,以方法调用的形式来判断传递的表达式是否已定义。它返回表达式的描述字符串,如果表达式未定义则返回 nil。

下面是 defined? 运算符的各种用法:

用法 1
defined? variable # 如果 variable 已经初始化,则为 True
例如:

foo = 42
defined? foo    # => "local-variable"
defined? $_     # => "global-variable"
defined? bar    # => nil(未定义)
用法 2
defined? method_call # 如果方法已经定义,则为 True
例如:

defined? puts        # => "method"
defined? puts(bar)   # => nil(在这里 bar 未定义)
defined? unpack      # => nil(在这里未定义)
用法 3
# 如果存在可被 super 用户调用的方法,则为 True
defined? super
例如:

defined? super     # => "super"(如果可被调用)
defined? super     # => nil(如果不可被调用)
用法 4
defined? yield   # 如果已传递代码块,则为 True
例如:

defined? yield    # => "yield"(如果已传递块)
defined? yield    # => nil(如果未传递块)




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1