扫描二维码关注官方公众号
返回列表
+ 发新帖
查看: 175|回复: 0

[转载发布] 給装备附加多个自动状态

[复制链接]
累计送礼:
0 个
累计收礼:
0 个
  • TA的每日心情
    开心
    昨天 18:01
  • 签到天数: 114 天

    连续签到: 4 天

    [LV.6]常住居民II

    2338

    主题

    403

    回帖

    1万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    VIP
    6
    卡币
    10622
    OK点
    16
    推广点
    0
    同能卷
    0
    积分
    13391

    灌水之王

    发表于 2024-4-19 15:47:33 | 显示全部楼层 |阅读模式
    那個啥?一個自動狀態根本就不夠用嘛!
    1. #==============================================================================# 附加多於一個自動狀態# 禾西#==============================================================================module RPG  class Weapon    def auto_state_set      auto_state_set = []      return [] if @description.split(/@s/)[1].nil?      a = @description.split(/@s/)[1].split(/,/)      a.each {|i| auto_state_set.push(i.to_i)}      return auto_state_set.nil? ? [] : auto_state_set    end    def description      description = @description.split(/@s/)[0]      return description.nil? ? '' : description    end  end  class Armor    def auto_state_set      auto_state_set = []      return [] if @description.split(/@s/)[1].nil?      a = @description.split(/@s/)[1].split(/,/)      a.each {|i| auto_state_set.push(i.to_i)}      return auto_state_set.nil? ? [] : auto_state_set    end    def description      description = @description.split(/@s/)[0]      return description.nil? ? '' : description    end  endend#==============================================================================# ■ Game_Actor#------------------------------------------------------------------------------#  处理角色的类。本类在 Game_Actors 类 ($game_actors)# 的内部使用、Game_Party 类请参考 ($game_party) 。#==============================================================================class Game_Actor < Game_Battler  #--------------------------------------------------------------------------#  # ● 更新自动状态組(新方法)                                                #  #     old_armor : 卸下防具                                                 #  #     new_armor : 装备防具                                                 #  #--------------------------------------------------------------------------#  def update_auto_state_set(old_armor, new_armor)    # 强制解除卸下防具的自动状态    if old_armor != nil and old_armor.auto_state_set.empty? != true      for i in 0...old_armor.auto_state_set.size        if @states.include? old_armor.auto_state_set[i]          remove_state(old_armor.auto_state_set[i], true)        end      end    end    # 强制附加装备防具的自动状态    if new_armor != nil and new_armor.auto_state_set.empty? != true      for i in 0...new_armor.auto_state_set.size        add_state(new_armor.auto_state_set[i], true)      end    end  end #----------------------------------------------------------------------------# ● 召喚舊方法#----------------------------------------------------------------------------  #--------------------------------------------------------------------------  # ● 设置  #     actor_id : 角色 ID  #--------------------------------------------------------------------------  alias sidaf_setup setup  def setup(actor_id)    sidaf_setup(actor_id)#---------------------刷新自动状态組---------------------#    update_auto_state_set(nil, $data_weapons[@weapon_id])    update_auto_state_set(nil, $data_armors[@armor1_id])    update_auto_state_set(nil, $data_armors[@armor2_id])    update_auto_state_set(nil, $data_armors[@armor3_id])    update_auto_state_set(nil, $data_armors[@armor4_id])#--------------------------------------------------------#  end  #--------------------------------------------------------------------------  # ● 变更装备  #     equip_type : 装备类型  #     id    : 武器 or 防具 ID  (0 为解除装备)  #--------------------------------------------------------------------------  def equip(equip_type, id)    case equip_type    when 0  # 武器      if id == 0 or $game_party.weapon_number(id) > 0        # 刷新自動狀態組---------------------------------------------------------        update_auto_state_set($data_weapons[@weapon_id], $data_weapons[id])# 完了-------------------------------------------------------------------------                $game_party.gain_weapon(@weapon_id, 1)        @weapon_id = id        $game_party.lose_weapon(id, 1)      end    when 1  # 盾      if id == 0 or $game_party.armor_number(id) > 0                # 刷新自動狀態組---------------------------------------------------------        update_auto_state_set($data_armors[@armor1_id], $data_armors[id])# 完了-------------------------------------------------------------------------                update_auto_state($data_armors[@armor1_id], $data_armors[id])        $game_party.gain_armor(@armor1_id, 1)        @armor1_id = id        $game_party.lose_armor(id, 1)      end    when 2  # 头      if id == 0 or $game_party.armor_number(id) > 0                # 刷新自動狀態組---------------------------------------------------------        update_auto_state_set($data_armors[@armor2_id], $data_armors[id])# 完了-------------------------------------------------------------------------                update_auto_state($data_armors[@armor2_id], $data_armors[id])        $game_party.gain_armor(@armor2_id, 1)        @armor2_id = id        $game_party.lose_armor(id, 1)      end    when 3  # 身体      if id == 0 or $game_party.armor_number(id) > 0                # 刷新自動狀態組---------------------------------------------------------        update_auto_state_set($data_armors[@armor3_id], $data_armors[id])# 完了-------------------------------------------------------------------------                update_auto_state($data_armors[@armor3_id], $data_armors[id])        $game_party.gain_armor(@armor3_id, 1)        @armor3_id = id        $game_party.lose_armor(id, 1)      end    when 4  # 装饰品      if id == 0 or $game_party.armor_number(id) > 0        # 刷新自動狀態組---------------------------------------------------------        update_auto_state_set($data_armors[@armor4_id], $data_armors[id])# 完了-------------------------------------------------------------------------                update_auto_state($data_armors[@armor4_id], $data_armors[id])        $game_party.gain_armor(@armor4_id, 1)        @armor4_id = id        $game_party.lose_armor(id, 1)      end    end  endend复制代码
    复制代码
    使用方法如下圖:


    說明 + @s + 狀態ID1, 狀態ID2, 狀態ID3
    設定方法武器防具通用
    放假很無聊……外加近來沒有找到想寫的東西T T

                  [本贴由 风雪优游 于 2008-3-19 22:20:22 进行了编辑]
                 本帖来自P1论坛作者禾西,因Project1站服务器在国外有时候访问缓慢不方便作者交流学习,经联系P1站长fux2同意署名转载一起分享游戏制作经验,共同为国内独立游戏作者共同创造良好交流环境,原文地址:https://rpg.blue/forum.php?mod=viewthread&tid=80420  若有侵权,发帖作者可联系底部站长QQ在线咨询功能删除,谢谢。
    天天去同能,天天有童年!
    回复 送礼论坛版权

    使用道具 举报

    文明发言,和谐互动
    文明发言,和谐互动
    高级模式
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    关闭

    幸运抽奖

    社区每日抽奖来袭,快来试试你是欧皇还是非酋~

    立即查看

    聊天机器人
    Loading...

    QQ|Archiver|手机版|小黑屋|同能RPG制作大师 ( 沪ICP备12027754号-3 )

    GMT+8, 2025-3-15 00:08 , Processed in 0.135643 second(s), 54 queries .

    Powered by Discuz! X3.4

    Copyright © 2001-2020, Tencent Cloud.

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