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

Project1

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

[已经解决] 求教战斗公共事件读取敌人编号的问题

[复制链接]

Lv1.梦旅人

梦石
0
星屑
46
在线时间
1502 小时
注册时间
2010-8-27
帖子
392
跳转到指定楼层
1
发表于 2013-10-10 07:25:57 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
3星屑
本帖最后由 存档不能 于 2013-10-10 20:00 编辑

我的问题是这样的:如何在技能调用的公共事件中获取当前使用这个技能的敌人队伍编号(就是设置队伍时第一位、第二位的那个编号,不是敌人的id)
我的目的是让使用这个技能的敌人显示一个动画,同时防止队伍中相同的敌人行动时已经行动的重复该动画


我所说的队伍编号是指

敌人A-1       敌人B-2    敌人C-3

如上的,玩家在队伍设置中,设置的敌人序号(即是我第一个放上的敌人,第二个放上的敌人……这个顺序,是事件中强制行动指定目标使用的序号)

最佳答案

查看完整内容

LZ在Main组前面加上这一小块脚本: 然后把技能关联公共事件就可以了,全局变量$t里面存储的就是使用这个特技的敌人编号,可以直接使用。

点评

晕~,是敌人序号,不是队伍 ID 嗦  发表于 2013-10-10 20:19
意思是说敌人用某个特技的行动方动画和角色不一样?  发表于 2013-10-10 20:04

Lv4.逐梦者 (版主)

梦石
0
星屑
9532
在线时间
5073 小时
注册时间
2013-6-21
帖子
3580

开拓者贵宾剧作品鉴家

2
发表于 2013-10-10 07:25:58 | 只看该作者
LZ在Main组前面加上这一小块脚本:
  1. class Game_Battler
  2.   alias old_skill_effect skill_effect
  3.   def skill_effect(user,skill)
  4.     if user.is_a?(Game_Enemy)
  5.       $t = user.index + 1
  6.     end
  7.     old_skill_effect(user,skill)
  8.   end
  9. end
复制代码

然后把技能关联公共事件就可以了,全局变量$t里面存储的就是使用这个特技的敌人编号,可以直接使用。

点评

嗯,我试一下  发表于 2013-10-10 20:14

评分

参与人数 1星屑 +75 收起 理由
myownroc + 75 认可答案

查看全部评分

回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
100
在线时间
211 小时
注册时间
2011-8-16
帖子
300
3
发表于 2013-10-10 10:32:35 | 只看该作者
队伍=$game_troop
队伍成员=$game_troop.enemies[]
成员行动=$game_troop.enemies[].current_action

如果你只是想让这个队伍执行一次动画而不是重复执行,完全可以用一个“开关”
在你执行动画的时候添加上个布尔变量,不就解决了。

点评

就如你列出来的那些脚本举例:要如何让三号变量=当前行动的敌人的队伍编号?  发表于 2013-10-10 10:40
不是队伍执行动画,而是队伍中使用这个技能中的角色显示动画,并且还要规避队伍中其它接着行动的相同敌人显示动画的混乱问题  发表于 2013-10-10 10:38
RPGMaker 脚本/学习交流群:143356012
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
100
在线时间
211 小时
注册时间
2011-8-16
帖子
300
4
发表于 2013-10-10 11:04:24 | 只看该作者
举个栗子吧
回复

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
3582
在线时间
3065 小时
注册时间
2011-11-17
帖子
980
5
发表于 2013-10-10 12:19:10 | 只看该作者
  #--------------------------------------------------------------------------
  # ● 刷新画面 (主回合步骤 3 : 行动方动画)
  #--------------------------------------------------------------------------
  def update_phase4_step3
    $user = @active_battler#####这里
    # 行动方动画 (ID 为 0 的情况下是白色闪烁)
    if @animation1_id == 0
      @active_battler.white_flash = true
    else
      @active_battler.animation_id = @animation1_id
      @active_battler.animation_hit = true
    end
    # 移至步骤 4
    @phase4_step = 4
  end


然后你公共事件就用$user做事情就行了

点评

是在执行公共事件前,全局搜索过了  发表于 2013-10-10 13:24
如果在执行公共事件的后面肯定会报错的  发表于 2013-10-10 13:01
你确定 插入$user = @active_battler 在 common_event = $data_common_events....(执行公共事件) 的前面了?  发表于 2013-10-10 13:00
不行,我在def update_phase4_step3之后插入$user = @active_battler 然后再公共事件中调用$user.animation_id = xx,结果出错了  发表于 2013-10-10 12:57
谢谢,请让我试一下  发表于 2013-10-10 12:40

评分

参与人数 1星屑 +12 收起 理由
存档不能 + 12 感谢回答

查看全部评分

回复

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
33442
在线时间
5108 小时
注册时间
2012-11-19
帖子
4878

开拓者

6
发表于 2013-10-10 18:30:33 | 只看该作者
在战斗场景有一句:
  1. # 准备队伍
  2.     @troop_id = $game_temp.battle_troop_id
复制代码
用: $game_temp.battle_troop_id    试试

点评

if $game_temp.battle_troop_id == xxx?没效果艾  发表于 2013-10-10 18:46
xp vx va mv  va mz 各类型脚本/插件定制
回复

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
33442
在线时间
5108 小时
注册时间
2012-11-19
帖子
4878

开拓者

7
发表于 2013-10-10 18:50:35 | 只看该作者
哦,抱歉,没看清楚问题哈。
这样试试,在应用特技效果时,获取使用的敌人的队伍ID
  1. #===============================================================================
  2. class Game_Battler
  3.   #--------------------------------------------------------------------------
  4.   alias add_skill_effect_xdrs skill_effect
  5.   def skill_effect(user, skill)
  6.     get_user_troop_id(user) if user.is_a?(Game_Enemy)
  7.     add_skill_effect_xdrs(user, skill)
  8.   end
  9.   #---------------------------------------------------------------------------
  10.   def get_user_troop_id(user)
  11.     $user_troop_id = 0
  12.     unless $game_temp.in_battle
  13.       return
  14.     end
  15.     for i in 1..$data_troops.size
  16.       troop = $data_troops[i]
  17.       if troop.members.include?(user.id) and
  18.        $game_temp.battle_troop_id == troop.id
  19.         $user_troop_id = troop.id
  20.         break
  21.       end
  22.     end
  23.   end
  24. end
  25. #===============================================================================
复制代码
里面的那个全局变量:$user_troop_id   就是当前队伍ID ,在公共事件里试试。

点评

OK,我试一下  发表于 2013-10-10 18:53
xp vx va mv  va mz 各类型脚本/插件定制
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
46
在线时间
1502 小时
注册时间
2010-8-27
帖子
392
8
 楼主| 发表于 2013-10-10 19:06:59 | 只看该作者
芯☆淡茹水 发表于 2013-10-10 18:50
哦,抱歉,没看清楚问题哈。
这样试试,在应用特技效果时,获取使用的敌人的队伍ID里面的那个全局变量:$us ...

出错了

点评

恩,我还没试过,改改先。  发表于 2013-10-10 19:10
回复

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
33442
在线时间
5108 小时
注册时间
2012-11-19
帖子
4878

开拓者

9
发表于 2013-10-10 19:31:28 | 只看该作者
改后:
  1. #===============================================================================
  2. class Game_Battler
  3.   #--------------------------------------------------------------------------
  4.   alias add_skill_effect_xdrs skill_effect
  5.   def skill_effect(user, skill)
  6.     get_user_troop_id(user) if user.is_a?(Game_Enemy)
  7.     add_skill_effect_xdrs(user, skill)
  8.   end
  9.   #---------------------------------------------------------------------------
  10.   def get_user_troop_id(user)
  11.     $user_troop_id = $game_temp.in_battle ? $game_temp.battle_troop_id : 0
  12.    end
  13. end
  14. #===============================================================================
复制代码
话说直接用  $game_temp.battle_troop_id  能行啊

下面是我刚试过的,战斗事件 和 公共事件

Project2.rar (214.71 KB, 下载次数: 75)

点评

我实际想使用这个做到的就多了,上面的动画只是一方面,其它的攻击技能使用的敌人变身啦、强制行动之类的,都需要用这种方式做到  发表于 2013-10-10 20:12
请看上面更新的帖子内容,是我的表述错误  发表于 2013-10-10 20:09
xp vx va mv  va mz 各类型脚本/插件定制
回复

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
33442
在线时间
5108 小时
注册时间
2012-11-19
帖子
4878

开拓者

10
发表于 2013-10-10 19:37:25 | 只看该作者
要不就是这个,下面范例里“水”这个技能关联了公共事件,公共事件显示队伍 ID,
不过要在技能发动后才显示。

Project2.rar (214.86 KB, 下载次数: 68)

点评

很抱歉因为表述问题浪费了你不少时间  发表于 2013-10-10 19:56
抱歉,我仔细看了一下,应该是我的理解和表述出现了严重的错误,请看上面更新的主贴  发表于 2013-10-10 19:53

评分

参与人数 2星屑 +57 收起 理由
myownroc + 45 塞糖
存档不能 + 12 感谢回答

查看全部评分

xp vx va mv  va mz 各类型脚本/插件定制
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-17 21:59

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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