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

Project1

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

[已经解决] 如何在敌人释放技能时【也】变化变量?

[复制链接]

Lv2.观梦者

梦石
0
星屑
325
在线时间
252 小时
注册时间
2014-4-11
帖子
265
跳转到指定楼层
1
发表于 2016-11-15 14:00:08 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

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

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

x
本帖最后由 眼中目之瞳 于 2016-11-15 14:24 编辑

以前有问过如何让我方角色设置不同的变量来触发不同的分歧条件——
https://rpg.blue/forum.php?mod=viewthread&tid=396576
所以现在想解决的问题是让敌人在释放技能时,也根据敌人的编号来控制变量……
以下是我方人物的,不知道有没有用ORZ

  1. class Scene_Battle < Scene_Base
  2.   #--------------------------------------------------------------------------
  3.   # ● 使用技能/物品
  4.   #--------------------------------------------------------------------------
  5.   alias sny46_161005_use_item use_item
  6.   def use_item
  7.     # 如果使用者是我方角色,11号变量在释放的时候赋值为使用者ID
  8.     $game_variables[11] = @subject.id if @subject.is_a?(Game_Actor)
  9.     sny46_161005_use_item
  10.   end
  11. end
复制代码



还有敌人的强制战斗指令是不是只能针对于在某一个位置上的敌人,而不是使用上一个技能的敌人?

评分

参与人数 1星屑 +50 收起 理由
RaidenInfinity + 50 结帖

查看全部评分

Lv2.观梦者

梦石
0
星屑
644
在线时间
830 小时
注册时间
2016-7-24
帖子
649

开拓者

9
发表于 2016-11-19 22:42:47 | 只看该作者
範例在這裡,如果無法理解的話只要複製貼上,
然後公共事件改一下技能ID
Project9.rar (1.41 MB, 下载次数: 64)

点评

感谢,看着范例才弄好了ORZ  发表于 2016-11-21 22:37

评分

参与人数 1星屑 +500 梦石 +1 收起 理由
RaidenInfinity + 500 + 1 认可答案

查看全部评分

2016/07/17 加入RPG製作,勿忘初衷!
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
644
在线时间
830 小时
注册时间
2016-7-24
帖子
649

开拓者

8
发表于 2016-11-18 22:50:54 | 只看该作者
本帖最后由 QQ蚊子湯 于 2016-11-18 22:56 编辑



RUBY 代码复制
  1. iterate_battler( 0, $game_variables[3]) do
  2. |battler|
  3.       next if battler.death_state?
  4.   battler.force_action(10, -2)
  5.       BattleManager.force_action(battler)
  6.       Fiber.yield while
  7. BattleManager.action_forced?
  8.     end




從原本的command_339下去改
RUBY 代码复制
  1. iterate_battler(@params[0], @params[1]) do |battler|
  2.       next if battler.death_state?
  3.       battler.force_action(@params[2], @params[3])
  4.       BattleManager.force_action(battler)
  5.       Fiber.yield while BattleManager.action_forced?
  6.     end

參照6樓
params[0] 0敵 1我
params[1] 號位
params[2] 技能
params[3] 對象號位,-1隨機, -2上一個目標

点评

我这里还是弄不好ORZ,我放弃了,要是以后有人想做类似系统的话给他例子好了  发表于 2016-11-19 22:03
2016/07/17 加入RPG製作,勿忘初衷!
回复 支持 1 反对 0

使用道具 举报

Lv2.观梦者

梦石
0
星屑
325
在线时间
252 小时
注册时间
2014-4-11
帖子
265
7
 楼主| 发表于 2016-11-18 22:18:29 | 只看该作者
本帖最后由 眼中目之瞳 于 2016-11-18 22:31 编辑
QQ蚊子湯 发表于 2016-11-18 02:16
非常抱歉,我花了比改腳本多好幾倍的時間都不能理解您的追問想要什麼

變數3會變成當前行動的敵人場內的編 ...


我是这样做的

这个是我在数据库里关于技能和变量的修改

但是,我的敌人是从上往下排列的,最上面的敌人正常攻击了,下面的敌人就出现了

这样的问题。
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
644
在线时间
830 小时
注册时间
2016-7-24
帖子
649

开拓者

6
发表于 2016-11-18 02:16:05 | 只看该作者
本帖最后由 QQ蚊子湯 于 2016-11-18 04:02 编辑

非常抱歉,我花了比改腳本多好幾倍的時間都不能理解您的追問想要什麼

變數3會變成當前行動的敵人場內的編號

難道您不是想要取得現在行動的敵人是幾號位嗎?

把這段放在公共事件中,變數3號位的敵人會發動10號技能至上一個目標
RUBY 代码复制
  1. @params[0] = 0
  2. @params[1] = $game_variables[3]  #配合上方的檢索編號
  3. @params[2] = 10  #技能編號
  4. @params[3] = -2  #至上一個目標
  5. command_339





PS:您的提問方式令我十分困擾,請不要再追加新問題,如果需要追加問題請另開新帖,由其他人來回答,補充上述的問題依然可以提問!

点评

可能是我表达不好吧……我另外开贴提问好了。  发表于 2016-11-18 21:23
2016/07/17 加入RPG製作,勿忘初衷!
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
325
在线时间
252 小时
注册时间
2014-4-11
帖子
265
5
 楼主| 发表于 2016-11-17 22:36:59 | 只看该作者
QQ蚊子湯 发表于 2016-11-16 15:18
現在3號變數會變成敵人的編號

    class Scene_Battle < Scene_Base

抱歉我还是没看懂怎么设置, $game_variables[1]对应的时我方角色,我把1改成了11;   $game_variables[2]对应地方角色,2我改成了12;那么  $game_variables[3]对应的是啥?

点评

$game_variables[3]对应敌人编号,设置的话变量3的值0~7分别对应数据库中的编号1~8,(只是目测,不对的话表理我=w=)<--  发表于 2016-11-18 00:07
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
644
在线时间
830 小时
注册时间
2016-7-24
帖子
649

开拓者

4
发表于 2016-11-16 15:18:00 | 只看该作者
本帖最后由 QQ蚊子湯 于 2016-11-16 15:19 编辑
眼中目之瞳 发表于 2016-11-16 10:53
感谢~~

不过追问可能理解错了……敌人可以强制攻击上一目标这我是知道的(因为强制攻击里有这项),但我 ...


現在3號變數會變成敵人的編號

RUBY 代码复制
  1. class Scene_Battle < Scene_Base
  2.       #--------------------------------------------------------------------------
  3.       # ● 使用技能/物品
  4.       #--------------------------------------------------------------------------
  5.       alias sny46_161005_use_item use_item
  6.       def use_item
  7.         $game_variables[1] = @subject.id if @subject.is_a?(Game_Actor)
  8.         if @subject.is_a?(Game_Enemy)
  9.         $game_variables[2] = @subject.enemy_id
  10.         $game_variables[3] = @subject.index  
  11.         end
  12.         sny46_161005_use_item
  13.       end
  14.     end

順帶一提,編號是從0開始,不要設定錯了哦!
2016/07/17 加入RPG製作,勿忘初衷!
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
325
在线时间
252 小时
注册时间
2014-4-11
帖子
265
3
 楼主| 发表于 2016-11-16 10:53:35 | 只看该作者
本帖最后由 眼中目之瞳 于 2016-11-16 11:05 编辑
QQ蚊子湯 发表于 2016-11-15 14:26
改造完成
    class Scene_Battle < Scene_Base
      #------------------------------------------------ ...


感谢~~

不过追问可能理解错了……敌人可以强制攻击上一目标这我是知道的(因为强制攻击里有这项),但我不知道如何让同一个敌人触发,“强制行动”的敌人列表显示的是编号“1~8”,而不是在场内的敌人,打个比方就是我设定了两个一模一样的敌人,2号位的敌人释放技能时,之后的强制行动只会让我在公共事件里指定的“*”号位的敌人强制行动。
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
644
在线时间
830 小时
注册时间
2016-7-24
帖子
649

开拓者

2
发表于 2016-11-15 14:26:05 | 只看该作者
本帖最后由 QQ蚊子湯 于 2016-11-15 14:28 编辑

改造完成
RUBY 代码复制
  1. class Scene_Battle < Scene_Base
  2.       #--------------------------------------------------------------------------
  3.       # ● 使用技能/物品
  4.       #--------------------------------------------------------------------------
  5.       alias sny46_161005_use_item use_item
  6.       def use_item
  7.         # 如果使用者是我方角色,11号变量在释放的时候赋值为使用者ID
  8.         $game_variables[1] = @subject.id if @subject.is_a?(Game_Actor)
  9.         $game_variables[2] = @subject.enemy_id if @subject.is_a?(Game_Enemy)
  10.         sny46_161005_use_item
  11.       end
  12.     end


現在角色ID會改變1號變量
敵人ID會改變2號變量

不過其實都放同一個變量也可以,這邊方便觀看

回答你的追問
敵人的強制行動也有上一個目標
2016/07/17 加入RPG製作,勿忘初衷!
回复 支持 1 反对 0

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-17 01:51

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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