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

Project1

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

[已经解决] 如何在ZTBS中实现连击效果[一次进攻伤害数与普通攻击相同]

 关闭 [复制链接]

Lv1.梦旅人

梦石
0
星屑
100
在线时间
142 小时
注册时间
2010-2-23
帖子
38
跳转到指定楼层
1
发表于 2011-8-14 09:00:15 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 小酋旺旺 于 2011-8-14 13:05 编辑

首先我是模仿黑暗圣剑传说来制作连击脚本。
我先在 Game_Battle 3 的 def skill_effect(user, skill) 的 return effective 前添加:
case skill.id
when 45 # 连击
  self.attack_effect(user)
    if self.hp > 0
      $message_string = "连击"
    end
end

再在 ZTBS 我方动作 中添加新阶段:
case $game_system.tactics_step
…………
when 901
  double_attack1
when 902
  double_attack2
…………
end

接着在 阶段9 末尾的 return 前加上:
if $message_string == "连击"
  @double_damage = @targets[ i ].damage
  $game_system.tactics_step = 901
else
  $game_system.tactics_step = 10
end

然后再加上这么个东东:
#--------------------------------------------------------------------------
# ● 刷新画面 (主回合步骤 901,902 : 连击技能)
#--------------------------------------------------------------------------
def double_attack1
  @active_battler.animation_id = @animation1_id
  @active_battler.animation_hit = true
  for i in @targets.keys
    $game_map.events[ i ].animation_id = @animation2_id
    $game_map.events[ i ].animation_hit = (@targets[ i ].damage != "Miss")
    if @double_damage != nil
      $game_map.events[ i ].damage = @double_damage
    end
  end
  $game_system.tactics_step = 902
end
def double_attack2
  for i in @targets.keys
    $game_map.events[ i ].damage = @double_damage
    if $game_map.events[ i ].damage != nil
      $game_map.events[ i ].damage_pop = true
    end
  end
$game_system.tactics_step = 10
end

测试的结果是:确实出现了两次攻击,但是第二次攻击虽然显示了动画和伤害却没有扣血,还有第一次攻击后消失的敌人第二次攻击时还会显示动画和伤害;更严重的是,就是以这样的方式打败敌人后,角色不会获得任何经验金钱物品。请问这里有什么原因?如果要修正那该怎么下手?

Lv1.梦旅人

虱子

梦石
0
星屑
121
在线时间
1782 小时
注册时间
2010-6-19
帖子
3597
2
发表于 2011-8-14 10:49:39 | 只看该作者
LZ不需要把$message_string量重置下么?不然发动了一个连击技能后其他技能都变成连击技能了
然后在攻击前再调用这个试试:
  1. # 动作结果作成
  2.         case @attacker.current_action.kind
  3.         when 0
  4.           make_basic_action_result
  5.         when 1
  6.           make_skill_action_result
  7.         when 2
  8.           make_item_action_result
  9.         end
复制代码

http://rpg.blue/thread-175056-1-2.html
PVZ型塔防物一个
http://rpg.blue/thread-155199-1-2.html
RMXP技术讨论区手动认可帖,得到答案请认可
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
100
在线时间
142 小时
注册时间
2010-2-23
帖子
38
3
 楼主| 发表于 2011-8-14 11:04:38 | 只看该作者
Wind2010 发表于 2011-8-14 10:49
LZ不需要把$message_string量重置下么?不然发动了一个连击技能后其他技能都变成连击技能了
然后在攻击前再 ...

这位爷,请问怎么调用?{:nm_3:}
回复

使用道具 举报

Lv1.梦旅人

虱子

梦石
0
星屑
121
在线时间
1782 小时
注册时间
2010-6-19
帖子
3597
4
发表于 2011-8-14 11:11:30 | 只看该作者
小酋旺旺 发表于 2011-8-14 11:04
这位爷,请问怎么调用?

例如就在double_attack1和double_attack2下面加上什么的

http://rpg.blue/thread-175056-1-2.html
PVZ型塔防物一个
http://rpg.blue/thread-155199-1-2.html
RMXP技术讨论区手动认可帖,得到答案请认可
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
100
在线时间
142 小时
注册时间
2010-2-23
帖子
38
5
 楼主| 发表于 2011-8-14 11:28:03 | 只看该作者
Wind2010 发表于 2011-8-14 11:11
例如就在double_attack1和double_attack2下面加上什么的

其实我真的不知怎样才是正确调用。我只是把你提供的那段脚本直接插在if $message_string == "连击"下面,虽说第二次攻击扣了血,但是第一次攻击后消失的敌人第二次攻击时仍然会显示伤害(动画就没显)。{:nm_9:}


小酋旺旺于2011-8-14 13:04补充以下内容:
有个更严重的问题,就是以这样的方式打败敌人后,角色不会获得任何经验金钱物品。

点评

如何做出这个判断呢?我拿$game_map.events[i].hp进去,结果系统说是NilClass。  发表于 2011-8-14 13:02
判断下那个敌人的HP是否为0  发表于 2011-8-14 12:05
回复

使用道具 举报

Lv1.梦旅人

辉瑞中国首席研究员<

梦石
0
星屑
50
在线时间
142 小时
注册时间
2008-1-18
帖子
2129
6
发表于 2011-8-14 17:01:13 | 只看该作者
但是第二次攻击虽然显示了动画和伤害却没有扣血

这个我没有手上脚本 不知道

第一次攻击后消失的敌人第二次攻击时还会显示动画和伤害

因为没有判断 都会进入902阶段


其实我觉得根本不必多加2个阶段 而是在进入10阶段后判断一下
如果是连击 再进入第6阶段(不知道记错没有)

点评

骚年 肯定有细节需要改 我只是说个大方向而已  发表于 2011-8-17 13:47
这样的话……第二次攻击时就不显动画和伤害了,直接扣血╮(╯▽╰)╭。  发表于 2011-8-16 17:58
来6r就是等某位仁兄的巨坑

褴褛着身行无端,囊中羞涩空心酸。
平生几无得意事,倒塔泡面宅寝室。
惟羡隔壁高帅富,雨露春风月夜声。
青丝无处觅其踪,只有硬盘苍井空。
莫云男儿空悲愁,鸿鹄岂不天际游。
坐断天下执鹿首,千百金帛万兜鍪。
夜深忽梦某年月,再见女神欲语迟。
吊丝终有逆袭日,木耳再无回粉时。
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2025-7-21 04:15

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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