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

Project1

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

[已经解决] 求助:技能如何做到伤害大小与mp有关且技能使用完毕mp=0?

[复制链接]

Lv3.寻梦者

梦石
0
星屑
3298
在线时间
1120 小时
注册时间
2009-4-15
帖子
815
跳转到指定楼层
1
发表于 2013-9-30 14:18:33 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

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

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

x
求助:技能如何做到伤害大小与mp有关且技能使用完毕mp=0?
我想做一个技能,技能对象是全体敌人,技能的伤害大小与使用者的mp有关,而且使用完技能后使用者的mp=0
我在技能公式里设定了伤害公式:v[17]=a.mp;a.mp=0;v[17]意思就是伤害直接等于使用者当前mp,并且技能发动完毕后使用者mp=0.
可是问题来了,我这个技能的伤害对象是全体敌人,现在这样设定会导致这样一个现象:假设敌人有3个,那么其中1个受到的伤害确实与mp有关,但是其他2个受到的伤害为0,我特意检查了几遍,发现是因为技能伤害运算机制是先计算针对1号敌人的伤害,然后在计算2号敌人的伤害,…X号敌人的伤害,所以我在伤害公式里把mp=0时,在计算第二个敌人的伤害也就跟着变成了0。先求助大家如何修改这个技能?

Lv1.梦旅人

梦石
0
星屑
50
在线时间
256 小时
注册时间
2013-5-27
帖子
196
7
发表于 2013-10-1 02:08:58 | 只看该作者
再多一个 变量18用作判断。

if v[18] == 0;v[18] = $game_troop.alive_members.size;v[17] = a.mp;end; v[18] -= 1;a.mp=0;v[17]

点评

好厉害!真的可以把分号当换行符用!  发表于 2013-10-1 07:26
……这代码是不是有错?真的可以运行?  发表于 2013-10-1 06:46

评分

参与人数 1星屑 +80 收起 理由
熊喵酱 + 80 认可答案

查看全部评分

回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
3298
在线时间
1120 小时
注册时间
2009-4-15
帖子
815
6
 楼主| 发表于 2013-9-30 15:18:39 | 只看该作者
喵呜喵5 发表于 2013-9-30 15:02
另外,其实可以直接用来获取使用技能者的ID的……

谢谢喵呜喵5!~
回复 支持 反对

使用道具 举报

Lv5.捕梦者 (暗夜天使)

只有笨蛋才会看到

梦石
1
星屑
21636
在线时间
9415 小时
注册时间
2012-6-19
帖子
7118

开拓者短篇九导演组冠军

5
发表于 2013-9-30 15:02:34 | 只看该作者
tan12345 发表于 2013-9-30 14:34
公共事件不好判定使用者。
另外,每回合重置v[]的脚本在哪个地方插入?

另外,其实可以直接用
  1. a.id
复制代码
来获取使用技能者的ID的……

评分

参与人数 1星屑 +120 收起 理由
熊喵酱 + 120 认可答案

查看全部评分

回复 支持 反对

使用道具 举报

Lv5.捕梦者 (暗夜天使)

只有笨蛋才会看到

梦石
1
星屑
21636
在线时间
9415 小时
注册时间
2012-6-19
帖子
7118

开拓者短篇九导演组冠军

4
发表于 2013-9-30 14:53:39 | 只看该作者
tan12345 发表于 2013-9-30 14:34
公共事件不好判定使用者。
另外,每回合重置v[]的脚本在哪个地方插入?
  1. class Scene_Battle
  2.   
  3.   alias m5_process_action_end process_action_end
  4.   def process_action_end
  5.     m5_process_action_end
  6.     $game_variables[17] = 0
  7.     #在这里设置需要重置的变量
  8.   end
  9.   
  10. end
复制代码
像普通脚本那样扔到main以上素材以下即可,如果有添加其他战斗脚本还有放到这些战斗脚本之下
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
3298
在线时间
1120 小时
注册时间
2009-4-15
帖子
815
3
 楼主| 发表于 2013-9-30 14:34:23 | 只看该作者
喵呜喵5 发表于 2013-9-30 14:24
治标不治本的改法:(只有当a的mp不为0时变量17才等于a的mp)
然后每回合重置一下v[17]的值……

公共事件不好判定使用者。
另外,每回合重置v[]的脚本在哪个地方插入?
回复 支持 反对

使用道具 举报

Lv5.捕梦者 (暗夜天使)

只有笨蛋才会看到

梦石
1
星屑
21636
在线时间
9415 小时
注册时间
2012-6-19
帖子
7118

开拓者短篇九导演组冠军

2
发表于 2013-9-30 14:24:09 | 只看该作者
本帖最后由 喵呜喵5 于 2013-9-30 14:32 编辑

治标不治本的改法:
  1. v[17]=a.mp if a.mp!=0;a.mp=0;v[17]
复制代码
(只有当a的mp不为0时变量17才等于a的mp)
然后每回合重置一下v[17]的值……


不过应该也可以做成技能使用结束后执行公共事件,事件内容是使用者的MP清零之类的效果吧
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-17 14:39

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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