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

Project1

 找回密码
 注册会员
搜索

指令"全部卸下"的事件脚本语法?

查看数: 3035 | 评论数: 6 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2013-6-14 15:52

正文摘要:

自己游戏内是更换人物作为游戏主角,但因为设计上有点不同... 例:a法师带着法师装备--->变身成为b战士...我是用a离队b加入...但a的装备该如何卸下?

回复

lirn 发表于 2013-6-15 16:13:14
Sion 发表于 2013-6-14 20:47
全体玩家是$game_party.all_members, 战斗中的全体 $game_party.battle_members, 这些对象都是包含在数组 ...

不是,因为我有在战斗中更换队员脚本,所以我是希望在战斗中能进行判断,

但是这判断某角色是不是在场上似乎不是这个。
if $game_party.battle_members.include?($game_actors[4])
lirn 发表于 2013-6-15 10:51:18
Sion 发表于 2013-6-14 20:47
全体玩家是$game_party.all_members, 战斗中的全体 $game_party.battle_members, 这些对象都是包含在数组 ...

其实我是根据P叔的脚本修改,想做一个类似物品的光环效果,只要角色在场上且装备了某物品,就自动附加状态,但是判断语句搞错了,直接单角色附加状态也无效。
  1. def auto_state_by_equips
  2.    if $game_party.battle_members.include?($game_actors[4]) #$game_actors[4].in_battle=====》这个也无效
  3.      if $game_actors[4].armors.include?($data_armors[488])
  4.        $game_party.battle_members.each {|member| member.add_new_state(260)}
  5.        $game_party.battle_members.each {|member| member.erase_state(261)}
  6.        $game_party.battle_members.each {|member| member.erase_state(262)}
  7.      elsif $game_actors[4].armors.include?($data_armors[489])
  8.        $game_party.battle_members.each {|member| member.add_new_state(261)}
  9.        $game_party.battle_members.each {|member| member.erase_state(262)}
  10.        $game_party.battle_members.each {|member| member.erase_state(263)}
  11.      elsif $game_actors[4].armors.include?($data_armors[490])  
  12.        $game_party.battle_members.each {|member| member.add_new_state(262)}
  13.        $game_party.battle_members.each {|member| member.erase_state(263)}
  14.        $game_party.battle_members.each {|member| member.erase_state(260)}
  15.      elsif $game_actors[4].armors.include?($data_armors[491])
  16.        $game_party.battle_members.each {|member| member.add_new_state(263)}
  17.        $game_party.battle_members.each {|member| member.erase_state(261)}
  18.        $game_party.battle_members.each {|member| member.erase_state(260)}
  19.       end
  20.      elsif !$game_actors[4].in_battle or  $game_actors[4].state?(1)
  21.        $game_party.battle_members.each {|member| member.erase_state(260)}
  22.        $game_party.battle_members.each {|member| member.erase_state(261)}
  23.        $game_party.battle_members.each {|member| member.erase_state(262)}
  24.        $game_party.battle_members.each {|member| member.erase_state(263)}
  25.      end
  26.    end
  27. end
复制代码

点评

这个应该在战斗开始时执行一次就好。  发表于 2013-6-15 15:04
逻辑是:遍历所有战斗角色判断是否装备指定物品,如果有的话就全员附加状态。  发表于 2013-6-15 15:04
Sion 发表于 2013-6-14 20:47:27
lirn 发表于 2013-6-14 19:24
单体附加状态我倒知道。但全体附加的话我不知道具体用语是什么。
如果己方全体附加状态是不是
$Game_Acto ...


全体玩家是$game_party.all_members, 战斗中的全体 $game_party.battle_members, 这些对象都是包含在数组里的,要使用.each 方法来遍历每个对象:
  1. $game_party.all_members.each {|member| member.add_new_state(x)} # x 是状态id
复制代码
lirn 发表于 2013-6-14 19:24:55
Sion 发表于 2013-6-14 16:59
对 Game_Actor 对象使用:clear_equipments

@lirn

单体附加状态我倒知道。但全体附加的话我不知道具体用语是什么。
如果己方全体附加状态是不是
$Game_Actor_add_new_state(id)_to_all?
Sion 发表于 2013-6-14 16:59:20
本帖最后由 Sion 于 2013-6-14 18:48 编辑

对 Game_Actor 对象使用:clear_equipments

@lirn

附加状态,对敌人(Game_Enemy)或者盟友(Game_Actor)实例使用 add_new_state(id)
移除则使用:erase_state(id)
id 是状态对应的 id

这些在脚本里搜索一下关键词就可以找到了。

点评

lirn 的问题我会通过私聊处理。  发表于 2013-6-15 20:19
感谢~可以有该效果了,但是...这帖子要改为已经解决吗?lirn的问题貌似没解决...  发表于 2013-6-15 20:12
那我想问一下,给自己所有同伴添加和解除某状态的语法是什么?  发表于 2013-6-14 18:27
拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

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

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

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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