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

Project1

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

[已经解决] 战斗中持续消耗sp

[复制链接]

Lv1.梦旅人

梦石
0
星屑
47
在线时间
55 小时
注册时间
2010-8-4
帖子
299
跳转到指定楼层
1
发表于 2010-10-15 21:08:31 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

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

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

x
想做一个增强型特技的效果,战斗中使用后持续消耗sp
于是该特技带了一个公共事件,内容是用变量、等待,分歧等做的一个几十帧消耗1点sp的事件
但是只有在行走时才会开始运行
怎么让他在战斗中也可以执行?
努力制作金庸主题的高自由度武侠game..求爱好者协助

Lv1.梦旅人

梦石
0
星屑
50
在线时间
48 小时
注册时间
2010-6-26
帖子
292
2
发表于 2010-10-15 22:07:56 | 只看该作者
LZ可以尝试用状态的方式来完成~或者用脚本.脚本在下就不说了- -(别提我脚本无能了唉)...来说说状态的大概做法吧..LZ说的是特技吧...LZ说只有在行走时才会发生..试试这样吧...先把技能设置成使用后打开开关X.....再在数据库-队伍(什么!?队伍???没错~就是队伍..继续)-战斗事件内进行设置..事件出现条件调为①回合0、0②开关X   ON ..事件叶内设置增减SP...恭喜OK!!(注:这个方法有点麻烦..需要在没个队伍里都进行同意的设置..其实就是弄一个队伍然后复制也就可以了- -)
就是这样了...我承认我的方法很笨很麻烦....
板子呀板子
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
63 小时
注册时间
2008-11-20
帖子
45
3
发表于 2010-10-16 16:02:08 | 只看该作者
本帖最后由 希望化身 于 2010-10-16 19:47 编辑

楼主可以用脚本来实现这个效果,首先,在你那个“大招”的状态上勾选“连续伤害”这一项
然后,在你的工程脚本Game_Battler 3里面最后几行(默认脚本行号是318)处找到如下代码:
  1.   #--------------------------------------------------------------------------
  2.   # ● 应用连续伤害效果
  3.   #--------------------------------------------------------------------------
  4.   def slip_damage_effect
  5.     # 设置伤害
  6.     self.damage = self.maxhp / 10
  7.     # 分散
  8.     if self.damage.abs > 0
  9.       amp = [self.damage.abs * 15 / 100, 1].max
  10.       self.damage += rand(amp+1) + rand(amp+1) - amp
  11.     end
  12.     # HP 的伤害减法运算
  13.     self.hp -= self.damage
  14.     # 过程结束
  15.     return true
  16.   end
复制代码
这里就是处理“连续伤害”的那段代码了。
我们想要的效果是,“中毒”这个连续伤害效果扣血(保持原样),你新设置的这个“大招状态”连续效果是扣蓝,所以可以用条件分歧来做这个效果。
代码如下:
  1.   #--------------------------------------------------------------------------
  2.   # ● 应用连续伤害效果
  3.   #--------------------------------------------------------------------------
  4.   def slip_damage_effect
  5.     # 判断
  6.     if self.state?(19) #假设你大招状态序号是19
  7.       self.damage_sp = self.maxsp / 10 #例如每回合扣10%总sp
  8.       # SP 的伤害减法运算
  9.       self.sp -= self.damage_sp
  10.     else
  11.     # 设置中毒伤害
  12.     self.damage = self.maxhp / 10
  13.     # 分散
  14.     if self.damage.abs > 0
  15.       amp = [self.damage.abs * 15 / 100, 1].max
  16.       self.damage += rand(amp+1) + rand(amp+1) - amp
  17.     end
  18.     # HP 的伤害减法运算
  19.     self.hp -= self.damage
  20.     # 过程结束
  21.     return true
  22.      end
  23.   end
复制代码

点评

我感觉到一颗新星正在崛起……  发表于 2010-10-16 16:04

评分

参与人数 1星屑 +2 收起 理由
fux2 + 2 已在底部加辛苦分

查看全部评分

回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
47
在线时间
55 小时
注册时间
2010-8-4
帖子
299
4
 楼主| 发表于 2010-10-16 19:35:25 | 只看该作者
ls
self.damage_sp = self.maxsp / 10 #例如每回合扣10%总sp
这句话报错
并且我不是像中毒那样的
而是固定帧数内消耗一定sp
比如每20帧消耗3sp
且我用了rtab
努力制作金庸主题的高自由度武侠game..求爱好者协助
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
63 小时
注册时间
2008-11-20
帖子
45
5
发表于 2010-10-16 20:39:46 | 只看该作者
……呃,RTAB的话,那段代码可以这么写:
  1.   #--------------------------------------------------------------------------
  2.   # ● 应用连续伤害效果
  3.   #--------------------------------------------------------------------------
  4.   def slip_damage_effect
  5.     # 判断
  6.     if self.state?(19) #假设你大招状态序号是19
  7.       self.damage_sp["slip"] = self.maxsp / 10 #例如每回合扣10%总sp
  8.       # SP 的伤害减法运算
  9.       self.sp -= self.damage_sp["slip"]
  10.     else
  11.     # 设置中毒伤害
  12.     self.damage["slip"] = self.maxhp / 10
  13.     # 分散
  14.     if self.damage["slip"].abs > 0
  15.       amp = [self.damage["slip"].abs * 15 / 100, 1].max
  16.       self.damage["slip"] += rand(amp+1) + rand(amp+1) - amp
  17.     end
  18.     # HP 的伤害减法运算
  19.     self.hp -= self.damage["slip"]
  20.     # 过程结束
  21.     return true
  22.      end
  23.   end
复制代码
这是用连续伤害……也就是每次行动之后结算的方法……如果用xx帧的话……就不是在这里改(RTAB的话,不是有个行动槽么?所以我揣测你是想根据那个来造成sp伤害)
改法为:
找到Scene_Battle 2 R中81行开始这一段
  1.         else
  2.           battler.at += battler.agi
  3.           if battler.guarding?
  4.             battler.at += battler.agi
  5.           end
  6.           if battler.movable?
  7.             battler.atp = 100 * battler.at / @max
  8.           end
复制代码
改为:
  1.         else
  2.           battler.at += battler.agi
  3.           if battler.guarding?
  4.             battler.at += battler.agi
  5.           end
  6.           if battler.movable?
  7.             battler.atp = 100 * battler.at / @max
  8.             if battler.state?(19) #你大招的状态
  9.               act = battler.at / battler.agi
  10.               total = @max / battler.agi
  11.               ticks = 5 #一次行动中要造成几次伤害
  12.               for i in 1..ticks
  13.                 if act == i * total / ticks
  14.                   battler.damage_sp["slip"] = battler.maxsp / 10 #假设还是10%
  15.                   battler.sp -= battler.damage_sp["slip"]
  16.                   battler.damage_pop["slip"] = true
  17.                 end
  18.               end
  19.             end
  20.           end
复制代码
………………你看这样行不?

评分

参与人数 1星屑 +2 收起 理由
fux2 + 2 已在底部加辛苦分

查看全部评分

回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
47
在线时间
55 小时
注册时间
2010-8-4
帖子
299
6
 楼主| 发表于 2010-10-16 20:46:01 | 只看该作者
减法运算
# SP 的伤害减法运算

      self.sp -= self.damage_sp["slip"]

    else
这里边哪个是数值额?
slip?
努力制作金庸主题的高自由度武侠game..求爱好者协助
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
63 小时
注册时间
2008-11-20
帖子
45
7
发表于 2010-10-16 20:54:58 | 只看该作者
这个……是rtab里面描绘damage的hash表的目标名字……就是默认脚本和rtab脚本的写法不一样……你要改sp数值是在 :
battler.damage_sp["slip"] = battler.maxsp / 10
改,等于号后边……比如你要每次扣200就改为:
battler.damage_sp["slip"] = 200

评分

参与人数 1星屑 +2 收起 理由
DBZ-1 + 2

查看全部评分

回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
47
在线时间
55 小时
注册时间
2010-8-4
帖子
299
8
 楼主| 发表于 2010-10-16 21:08:55 | 只看该作者
Scene_Battle 2里没找到你说的那一段话
在rtab战斗系统里边都到了
改了以后
还是没反应
但是没报错

点评

我就是搜的那句话 Scene_Battle 2里没有 rtab主脚本里有  发表于 2010-10-16 21:42
……你试试全局搜索battler.at += battler.agi 应该能找到……  发表于 2010-10-16 21:12
努力制作金庸主题的高自由度武侠game..求爱好者协助
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
63 小时
注册时间
2008-11-20
帖子
45
9
发表于 2010-10-17 07:55:24 | 只看该作者
……文字讲不清楚……上图。我有从主站重新下了一个RTAB的程序。

这个是我下载下来的版本……希望跟你的一致

然后设置状态:


修改脚本:


设置战斗测试:


测试结果:

评分

参与人数 2星屑 +1334 收起 理由
DBZ-1 + 2
fux2 + 1332 我了个娘来,真辛苦啊,不给分不行~ ...

查看全部评分

回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
47
在线时间
55 小时
注册时间
2010-8-4
帖子
299
10
 楼主| 发表于 2010-10-17 19:43:39 | 只看该作者
55555555我感动的快要哭了
太感谢了ls终于成功了
虽然跟我理想的稍微有一点点偏差
努力制作金庸主题的高自由度武侠game..求爱好者协助
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-12-23 11:22

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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