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

Project1

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

[已经过期] 如何装备护甲或者武器,让该人物在战斗中有指定的状态

[复制链接]

Lv1.梦旅人

梦石
0
星屑
85
在线时间
7 小时
注册时间
2018-2-28
帖子
5
跳转到指定楼层
1
发表于 2018-2-28 21:09:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
目前游戏中都是装备或者武器有属性值,直接计算
怎么才能让装备某件护甲,进入战斗的人物带有设定的状态

比如,
一个装备是加速鞋,装备后进入战斗,初始就会获得一个加速的状态,
或者装备是荆棘头盔,装备后进入战斗,初始就会获得一个流血状态。

Lv3.寻梦者

梦石
0
星屑
2512
在线时间
215 小时
注册时间
2017-9-27
帖子
613
2
发表于 2018-2-28 22:59:59 | 只看该作者
你需要用到这个
  1. #===============================================================================
  2. # ■ 战斗中自动附加被动状态
  3. # By :VIPArcher [email: [email protected]]
  4. #  -- 本脚本来自 http://rm.66rpg.com 使用或转载请保留以上信息。
  5. #==============================================================================
  6. # ■ 在战斗开始时自动为每一位战斗者附加上设置好的状态,战斗结束时移除
  7. # 使用说明:
  8. #   在角色|职业|装备|敌人的备注栏备注<被动状态:状态ID> 例如 <被动状态:18>
  9. #   同时备注多个被动状态亦可叠加,都会为其附加上对应的状态。只有战斗开始时附加一次状态
  10. #   的备注栏应该也可以用,只要战斗开始前有某状态亦可附加上该状态备注栏里指定对的状态
  11. #==============================================================================
  12. $VIPArcherScript ||= {};$VIPArcherScript[:battle_state] = 20141102
  13. #--------------------------------------------------------------------------------
  14. class Game_Battler < Game_BattlerBase
  15.   #--------------------------------------------------------------------------
  16.   # ● 战斗开始处理
  17.   #--------------------------------------------------------------------------
  18.   alias state_battle_start on_battle_start
  19.   def on_battle_start
  20.     state_battle_start
  21.     self.feature_objects.each {|obj| obj.note.split(/[\r\n]+/).each{ |line|
  22.     self.add_state($1.to_i) if line =~ /<被动状态:\s*(\d+)>/}}
  23.   end
  24.   #--------------------------------------------------------------------------
  25.   # ● 战斗结束处理
  26.   #--------------------------------------------------------------------------
  27.   alias state_on_battle_end on_battle_end
  28.   def on_battle_end
  29.     state_on_battle_end
  30.     self.feature_objects.each {|obj| obj.note.split(/[\r\n]+/).each{ |line|
  31.     self.remove_state($1.to_i) if line =~ /<被动状态:\s*(\d+)>/}}
  32.   end
  33. end
复制代码

点评

还需要一个【戦闘不能時残留】脚本,不然战斗中死了就失效了  发表于 2018-3-3 20:04
额 嗯 没注意  发表于 2018-3-1 15:55
不会啊,这是VIP的,你没看到吗  发表于 2018-3-1 06:46
= = 你15岁就会写代码了?  发表于 2018-3-1 03:03
浅尝辄止,宜乎众矣。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
85
在线时间
7 小时
注册时间
2018-2-28
帖子
5
3
 楼主| 发表于 2018-3-1 13:38:17 | 只看该作者
纯萌新,有错误请包涵。
我新建脚本页,代码粘进去了。
然后在database中,把比如皮帽,这件装备的备注加上了<被动状态:2> 这个2就是状态毒的id
然后保存,进入游戏。战斗。

没有任何变化……

我应该怎么做才能生效呢。

点评

脚本粘在脚本页的哪里了  发表于 2018-3-1 20:42
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
85
在线时间
7 小时
注册时间
2018-2-28
帖子
5
4
 楼主| 发表于 2018-3-2 10:29:47 | 只看该作者
脚本页不是有标准库么,在标准库下边新建了一个脚本页,然后在正文粘了你发的脚本,
运行游戏没有提示错误,
现在我怀疑2点,
1、这个状态ID是不是数据库状态页签的值。
2、是不是有什么脚本会进入战斗时候自动清空状态和这个脚本冲突。

点评

你确定是在MAIN以上请插入脚本以下插入的吗  发表于 2018-3-4 00:00
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
2512
在线时间
215 小时
注册时间
2017-9-27
帖子
613
5
发表于 2018-3-4 00:01:33 | 只看该作者
那你看看这个可以用吗,老鹰的,亲测可用
  1. #==============================================================================
  2. # ■ 装备/敌人战斗中自动附加状态  by 老鹰
  3. #------------------------------------------------------------------------------
  4. #   - 新增在战斗中指定时刻,装备携带者/敌人的自动附加指定状态
  5. #   - 在装备/敌人栏备注内填入下式(可用空格或逗号分隔内部各项)(可重复填入多行)
  6. #      <状态附加时机: 状态id, 附加概率分子, 附加概率分母, 出现条件>
  7. #       状态附加时机(替换为下列英语):
  8. #          Battle Start State  -  战斗开始时
  9. #          Turn Start State    -  回合开始时  *需碧轨战斗顺序,默认战斗者无该时刻
  10. #          Action End State    -  行动结束时
  11. #          Turn End State      -  回合结束时
  12. #       状态id: 填入需要自动附加的状态id号
  13. #       附加概率分子、附加概率分母(可选): 状态附加的概率为 分子/分母,不填则为 1
  14. #       出现条件(可选):被eval后如果返回真,才能进行附加,不填则默认为 真
  15. #         注: 可用 s 代表 $game_switches, v 代表 $game_variables
  16. #   - 举例:
  17. #       在 1 号护甲备注里填入 <Battle Start State: 1>, 1号角色装备中
  18. #         作用:在战斗开始时,1号角色自动附加一次1号状态
  19. #       在 2 号护甲备注里填入 <Turn End State: 2, 1,2>,2号角色装备中
  20. #         作用:在每次回合结束时,2号角色有 1/2 的概率附加2号状态
  21. #       在 1 号敌人备注里填入 <Action End State: 3, 1,5, $game_switches[1]>
  22. #         作用:1号敌人每次技能使用结束、且1号开关开启时,有 1/5 的概率附加3号状态
  23. #   - 实质:在战斗各个时机,角色自身的处理中追加状态的附加
  24. #==============================================================================

  25. class Game_Battler < Game_BattlerBase
  26.   #--------------------------------------------------------------------------
  27.   # ● 获取需要提取附加状态的对象的数组
  28.   #--------------------------------------------------------------------------
  29.   def get_battler_auto_states_notes_array
  30.     return equips if actor?
  31.     return [self] if enemy?
  32.     return []
  33.   end
  34.   #--------------------------------------------------------------------------
  35.   # ● 处理自动状态的附加
  36.   #--------------------------------------------------------------------------
  37.   def eagle_check_auto_add_states(type)
  38.     array = get_battler_auto_states_notes_array
  39.     case type
  40.     when :on_battle_start
  41.       exp = /<Battle Start State:[ ,]*(\d+)[ ,]*(\d*)[ ,]*(\d*)[ ,]*(.*)>/
  42.     when :on_turn_start
  43.       exp = /<Turn Start State:[ ,]*(\d+)[ ,]*(\d*)[ ,]*(\d*)[ ,]*(.*)>/
  44.     when :on_action_end
  45.       exp = /<Action End State:[ ,]*(\d+)[ ,]*(\d*)[ ,]*(\d*)[ ,]*(.*)>/
  46.     when :on_turn_end
  47.       exp = /<Turn End State:[ ,]*(\d+)[ ,]*(\d*)[ ,]*(\d*)[ ,]*(.*)>/
  48.     end
  49.     s = $game_switches
  50.     v = $game_variables
  51.     array.each do |a|
  52.       next if a == nil
  53.       a.note.split(/[\r\n]+/).each do |line|
  54.         line =~ exp
  55.         # $1 - 状态id $2$3 - 概率 $4 - eval条件
  56.         next if $1 == nil
  57.         next if $4 != "" && eval($4) == false
  58.         p1 = $2 == "" ? 1 : $2.to_i
  59.         p2 = $3 == "" ? 1 : $3.to_i
  60.         next if rand > (p1 * 1.0 / p2)
  61.         add_state($1.to_i)
  62.       end
  63.     end
  64.   end

  65.   #--------------------------------------------------------------------------
  66.   # ● 战斗开始处理
  67.   #--------------------------------------------------------------------------
  68.   alias eagle_battler_auto_states_on_battle_start on_battle_start
  69.   def on_battle_start
  70.     eagle_check_auto_add_states(:on_battle_start)
  71.     eagle_battler_auto_states_on_battle_start
  72.   end  

  73.   #--------------------------------------------------------------------------
  74.   # ○ 回合开始
  75.   #  需要 碧轨战斗行动顺序系统
  76.   #--------------------------------------------------------------------------
  77.   if Scene_Battle.include?(Saba::Kiseki)
  78.   alias eagle_battler_auto_states_on_turn_start on_turn_start
  79.   def on_turn_start
  80.     eagle_check_auto_add_states(:on_turn_start)
  81.     eagle_battler_auto_states_on_turn_start
  82.   end
  83.   end

  84.   #--------------------------------------------------------------------------
  85.   # ● 战斗行动结束时的处理
  86.   #--------------------------------------------------------------------------
  87.   alias eagle_battler_auto_states_on_action_end on_action_end
  88.   def on_action_end
  89.     eagle_check_auto_add_states(:on_action_end)
  90.     eagle_battler_auto_states_on_action_end
  91.   end
  92.   #--------------------------------------------------------------------------
  93.   # ● 回合结束处理
  94.   #--------------------------------------------------------------------------
  95.   alias eagle_battler_auto_states_on_turn_end on_turn_end
  96.   def on_turn_end
  97.     eagle_check_auto_add_states(:on_turn_end)
  98.     eagle_battler_auto_states_on_turn_end
  99.   end
  100. end
复制代码
浅尝辄止,宜乎众矣。
回复 支持 1 反对 1

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
85
在线时间
7 小时
注册时间
2018-2-28
帖子
5
6
 楼主| 发表于 2018-3-4 12:16:16 | 只看该作者
如果   #  需要 碧轨战斗行动顺序系统
这个方法在,就会报错。
uninitialized constant Game_Battler::Saba

如果上边的注释掉,战斗时就会报错
54行
undefined method 'note' for # <Game_Enemy:0xd5946a8>
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
85
在线时间
7 小时
注册时间
2018-2-28
帖子
5
7
 楼主| 发表于 2018-3-4 12:52:25 | 只看该作者
本帖最后由 qqqq6118 于 2018-3-4 12:57 编辑

而且,第一给我的方法,其中
    self.add_state($1.to_i) if line =~ /<被动状态:\s*(\d+)>/}}

改成

   self.add_state(2) }}

就变成敌人中这个状态。
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-17 11:22

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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