Project1

标题: 如何设置可以使不同的人装备同一把武器的伤害画面不同? [打印本页]

作者: 我心飞扬    时间: 2011-11-9 14:18
标题: 如何设置可以使不同的人装备同一把武器的伤害画面不同?
目前RMXP在数据库中的设置,一把武器只有一个伤害画面。伤害画面只对应武器不对应人。而敌人的伤害画面是对应人的。
比方说己方队员同样是使剑的,一个攻击动作是劈砍一个是横斩,这样在敌人身上的造成的伤害画面就应该是一个从右上到左下的另一个是左到右的。两个人在装备同样武器的情况下是无法区别伤害画面的。
这种情况下,应该怎么设置才能实现同一把武器因为装备的人不同伤害画面也不同?
dsu_plus_rewardpost_czw
作者: 精灵使者    时间: 2011-11-9 14:51
可以做同一种武器(名字一样,伤害一样),不同的攻击画面+装备角色不同就应该可以了吧= =
作者: 我心飞扬    时间: 2011-11-9 14:58
本帖最后由 我心飞扬 于 2011-11-9 15:08 编辑
精灵使者 发表于 2011-11-9 14:51
可以做同一种武器(名字一样,伤害一样),不同的攻击画面+装备角色不同就应该可以了吧= = ...


这样也不行,比方说剑系最基本的“长剑”是可以在武器店内买到的,难道要设计成两把不同的长剑?高级的武器可以象你说的这样设计,不同名字都行,但是我要的是就同一把武器。即可装备A队员又可装备B队员。简单的说,就是伤害画面针对人而不是针对武器。
作者: 精灵使者    时间: 2011-11-9 15:02
case actor.id
when 1
return...
when 2
return...
...
end
建议在显示动画的时候根据角色弄个条件分歧什么的。
作者: 我心飞扬    时间: 2011-11-9 15:09
精灵使者 发表于 2011-11-9 15:02
case actor.id
when 1
return...

需要用脚本来实现这个功能吗?晕,我是个脚本盲呀。
作者: 精灵使者    时间: 2011-11-9 15:36
我也是脚本盲……敬请高明指点
作者: 小白玩家    时间: 2011-11-9 17:56
敌人动作是在脚本里啊,只能在脚本改
作者: 我心飞扬    时间: 2011-11-9 17:57
小白玩家 发表于 2011-11-9 17:56
敌人动作是在脚本里啊,只能在脚本改

敌人动作不用脚本,RMXP的数据库设置就有
作者: 步兵中尉    时间: 2011-11-9 19:08
后知后觉写的脚本,插入就可以使用。
固定方式是角色ID加100就是该角色使用武器动画,角色ID加200就是该角色武器命中敌人动画
  1. #==============================================================================
  2. # ■ Game_Actor
  3. #==============================================================================

  4. class Game_Actor < Game_Battler
  5.   #--------------------------------------------------------------------------
  6.   # ● 普通攻击 获取攻击方动画 ID
  7.   #--------------------------------------------------------------------------
  8.   def animation1_id
  9.     weapon = $data_weapons[@weapon_id]
  10.     return weapon != nil ? @actor_id + 100 : 0
  11.   end
  12.   #--------------------------------------------------------------------------
  13.   # ● 普通攻击 获取对像方动画 ID
  14.   #--------------------------------------------------------------------------
  15.   def animation2_id
  16.     weapon = $data_weapons[@weapon_id]
  17.     return weapon != nil ? @actor_id + 200 : 0
  18.   end
  19. end
复制代码

作者: 我心飞扬    时间: 2011-11-9 19:41
步兵中尉 发表于 2011-11-9 19:08
后知后觉写的脚本,插入就可以使用。
固定方式是角色ID加100就是该角色使用武器动画,角色ID加200就是该角 ...

能详细的讲解一该怎么做吗?
作者: 步兵中尉    时间: 2011-11-9 19:46
具体操作就如同你之前插入脚本那样,先插入上述脚本。
然后数据库里角色编号对应武器动画。
例如1号角色为剑士,那么动画101对应他出手动画(可以设置为1帧无动画),201对应命中敌人动画。
每个角色以此类推;不过这样以来每个角色的攻击动画就固定了。
话说你这次有添加了些什么脚本?这些不说清楚没法完整解答问题的。
作者: 我心飞扬    时间: 2011-11-9 21:00
步兵中尉 发表于 2011-11-9 19:46
具体操作就如同你之前插入脚本那样,先插入上述脚本。
然后数据库里角色编号对应武器动画。
例如1号角色为 ...

我没添加脚本,还是原来的“★Window_Message by 柳柳”这个对话框脚本。我只是在我的工程中的事件中的对话前加上了“$mes_id = 7  $mes_name = "巡城校尉"”这样的脚本。这是原来的脚本就有的功能,我以前不会用,现在才明白而已。我发给你的工程就是这个脚本。但是,这个脚本在选项方面还有问题,在给你的工程中应该能看到。我觉得这个脚本肯定是有我不了解的功能,因为我实在是个脚本盲。只好拜托请你帮忙看看,那个脚本里关于选项的设置是怎样的。
作者: 步兵中尉    时间: 2011-11-9 21:07
那就用那个脚本吧!不过该角色的攻击动画就彻底固定了。
作者: 后知后觉    时间: 2011-11-9 23:52
改成这样吧.用 数据库-变量 来记录这些id.方便转职啊什么的东西.
两个公式.

计算出的结果是记录角色行动方动画id的那个变量的id
100 + @actor_id * 2 - 1

计算出的结果是记录角色对象方动画id的那个变量的id
100 + @actor_id * 2

1号角色就是101和102号变量
3号角色就是105和106号变量

游戏才开始的时候用 事件的变量操作进行设置就可以了
  1. #==============================================================================
  2. # ■ Game_Actor
  3. #==============================================================================

  4. class Game_Actor < Game_Battler
  5.   #--------------------------------------------------------------------------
  6.   # ● 普通攻击 获取攻击方动画 ID
  7.   #--------------------------------------------------------------------------
  8.   def animation1_id
  9.     weapon = $data_weapons[@weapon_id]
  10.     return weapon != nil ? $game_variables[100 + @actor_id * 2 - 1] : 0
  11.   end
  12.   #--------------------------------------------------------------------------
  13.   # ● 普通攻击 获取对像方动画 ID
  14.   #--------------------------------------------------------------------------
  15.   def animation2_id
  16.     weapon = $data_weapons[@weapon_id]
  17.     return weapon != nil ? $game_variables[100 + @actor_id * 2] : 0
  18.   end
  19. end
复制代码





欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1