查看: 2436|回复: 12

[有事请教] 有没有方法在事件里用函数改变某个敌人的攻击防御

[复制链接]
梦石
0
星屑
1410
在线时间
183 小时
注册时间
2017-1-29
回帖
70
发表于 2018-5-27 10:27:08 | 显示全部楼层 |阅读模式

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

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

×
有没有方法在事件里用函数改变某个敌人的攻击防御
梦石
0
星屑
489
在线时间
84 小时
注册时间
2018-4-16
回帖
43
发表于 2018-5-27 11:00:00 | 显示全部楼层
可以设置一个状态或者被动技能,在事件中附加此状态或者学会此技能。
回复

使用道具 举报

梦石
0
星屑
12161
在线时间
4435 小时
注册时间
2014-4-11
回帖
5616

开拓者

发表于 2018-5-27 11:53:03 | 显示全部楼层
敌人在这个里面
$gameTroop._enemies
一号是  $gameTroop._enemies[0]
以此类推


然后加减能力值
可以用
addParam
用法是
$gameTroop._enemies[0].addParam(序号 , 数值)
序号就是0是HP,1是MP,自己数。
回复

使用道具 举报

梦石
0
星屑
1410
在线时间
183 小时
注册时间
2017-1-29
回帖
70
 楼主| 发表于 2018-5-27 17:26:43 | 显示全部楼层
yang1zhi 发表于 2018-5-27 11:53
敌人在这个里面
$gameTroop._enemies
一号是  $gameTroop._enemies[0]

大佬 $gameTroop._enemies[0].addParam(0,100) 报错呢

点评

另外,这是战斗中敌人列表。只有战斗中的敌人有产生数据  发表于 2018-5-27 18:35
报错的那里,你按F8,截图  发表于 2018-5-27 18:34
回复

使用道具 举报

梦石
0
星屑
1410
在线时间
183 小时
注册时间
2017-1-29
回帖
70
 楼主| 发表于 2018-5-28 09:04:16 | 显示全部楼层
yang1zhi 发表于 2018-5-27 11:53
敌人在这个里面
$gameTroop._enemies
一号是  $gameTroop._enemies[0]

$dataEnemies[1].params[0]=100   原来params[0]是个数组以前还以为只能读取数据  这样就可以在非战斗中改变数据库中敌人的HP了

点评

不可以,data是数据库,不要改数据库。没用的。敌人的数据没有建立,全都是战斗时才建立的。  发表于 2018-5-28 10:28
回复

使用道具 举报

梦石
0
星屑
1410
在线时间
183 小时
注册时间
2017-1-29
回帖
70
 楼主| 发表于 2018-5-28 09:27:02 | 显示全部楼层
yang1zhi 发表于 2018-5-27 11:53
敌人在这个里面
$gameTroop._enemies
一号是  $gameTroop._enemies[0]

大佬$gameActors._data[1]和$gameActors.actor(1)  有什么区别吗?
回复

使用道具 举报

梦石
0
星屑
12161
在线时间
4435 小时
注册时间
2014-4-11
回帖
5616

开拓者

发表于 2018-5-28 10:25:04 | 显示全部楼层
风之竹 发表于 2018-5-28 09:27
大佬$gameActors._data[1]和$gameActors.actor(1)  有什么区别吗?

有区别,也没区别。
actor()是个方法(函数),函数是什么呢
你可以理解为一套武功,一套武功呢,他有各种招式吧。
那个_data就可以理解为招式了。

然后我们来看看$gameActors.actor这个函数都有什么内容

Game_Actors.prototype.actor = function(actorId) {
//判断数据库里是否有这个ID
    if ($dataActors[actorId]) {
//判断已经生成的列表里是否有这个ID
        if (!this._data[actorId]) {
//假如没有,就新生成
            this._data[actorId] = new Game_Actor(actorId);
        }
//输出列表里的这个ID所在内容,并结束
        return this._data[actorId];
    }
//输出空值
    return null;
};

我们可以看出这套武功里面其实也是读取的$gameActors._data
不同的是他有两条分别判断数据库和列表里是否存在
假如你自己能区分,自然直接使用$gameActors._data和使用$gameActors.actor是没什么区别的
使用$gameActors.actor的话,就会帮你判断了。
不过其实你应该是知道你要用的角色是不是存在的。判断不判断影响不大。

当然有些函数里面就只是指向一个值,那就没什么区别。
后面有带()的就是函数
回复

使用道具 举报

梦石
0
星屑
1410
在线时间
183 小时
注册时间
2017-1-29
回帖
70
 楼主| 发表于 2018-5-28 18:11:07 | 显示全部楼层
yang1zhi 发表于 2018-5-28 10:25
有区别,也没区别。
actor()是个方法(函数),函数是什么呢
你可以理解为一套武功,一套武功呢,他有 ...

大佬事件页里 等待的函数怎么写?我在网上查的$gameInterpreter.wait(60);   好像不行

点评

函数要用这样的要过。你就要不断的去执行这个函数,然后在函数里判断是否到了执行的时间了  发表于 2018-5-28 18:17
写不了。等待只对事件有用,对函数没用。所以你就用事件的等待就好。  发表于 2018-5-28 18:16
回复

使用道具 举报

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

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部