class Game_Actor < Game_Battler #-------------------------------------------------------------------------- # ● 基本 MaxHP の取得 #-------------------------------------------------------------------------- def base_maxhp n = $data_armors[@class_id].price / 1000 return actor.parameters[0, @level] * n / 100 end #-------------------------------------------------------------------------- # ● 基本 MaxMP の取得 #-------------------------------------------------------------------------- def base_maxmp n = $data_armors[@class_id].price % 1000 return actor.parameters[1, @level] * n / 100 end #-------------------------------------------------------------------------- # ● 基本攻撃力の取得 #-------------------------------------------------------------------------- def base_atk n = actor.parameters[2, @level] * $data_armors[@class_id].atk / 100 for item in equips.compact do n += item.atk end return n end #-------------------------------------------------------------------------- # ● 基本防御力の取得 #-------------------------------------------------------------------------- def base_def n = actor.parameters[3, @level] * $data_armors[@class_id].def / 100 for item in equips.compact do n += item.def end return n end #-------------------------------------------------------------------------- # ● 基本精神力の取得 #-------------------------------------------------------------------------- def base_spi n = actor.parameters[4, @level] * $data_armors[@class_id].spi / 100 for item in equips.compact do n += item.spi end return n end #-------------------------------------------------------------------------- # ● 基本敏捷性の取得 #-------------------------------------------------------------------------- def base_agi n = actor.parameters[5, @level] * $data_armors[@class_id].agi / 100 for item in equips.compact do n += item.agi end return n end end
#-------------------------------------------------------------------------- # ● 獲得したドロップアイテムの表示 #-------------------------------------------------------------------------- def display_drop_items drop_items = $game_troop.make_drop_items for item in drop_items $game_party.gain_item(item, 1) text = sprintf(Vocab::ObtainItem, item.name) $game_message.texts.push(text) $game_variables[■] += i if item == ○ end wait_for_message end
# Ref. Sprite_Base #-------------------------------------------------------------------------- # ● フレーム更新 #-------------------------------------------------------------------------- def update super if @animation != nil @animation_duration -= 1 if @animation_duration % 4 == 0 update_animation end end @@animations.clear end
これである程度は対応できるかな module Note def self.matching(obj, pattern = /.+/m) result = [] note = obj.note.gsub(/\r\n/, " ") note = note.gsub(/,/, " ") note = note.gsub(/\s+/, " ") note.scan(pattern){|item| if item.is_a?(Array) for i in item result += i.split(/ /) end else result += item.split(/ /) end } result.collect!{|item| if item =~ /^(-|\+|\d)(\d*)$/ item = item.to_i else item = item end } return result end end
#-------------------------------------------------------------------------- # ● 攻撃力の取得 #-------------------------------------------------------------------------- def atk n = [[base_atk + @atk_plus, 1].max, 999].min for state in states do n *= state.atk_rate / 100.0 end n = [[Integer(n), 1].max, 999].min return n end