Project1

标题: 请问具体如何使用 [打印本页]

作者: j296196585    时间: 2017-10-5 23:58
标题: 请问具体如何使用
本帖最后由 j296196585 于 2017-10-6 00:10 编辑

请问 路过的道友
这个到底怎么使用。。。
我想增加499号敌人血量$gameTroop.members().hp//生命
比方这样设置$gameTroop.members(90000)[499].hp//生命  好像是错误

$gameTroop.members()[499].hp//90000好像还是错

然后我想了想 $gameTroop.members(0)[499].hp//90000.。还是错误

求 教  如何使用。。

JAVASCRIPT 代码复制
  1. $gameTroop.members()[i].hp//生命
  2. $gameTroop.members()[i].mp//MP
  3. $gameTroop.members()[i].tp//TP
  4. $gameTroop.members()[i].atk//攻击力
  5. $gameTroop.members()[i].def//防御力
  6. $gameTroop.members()[i].gainHp(n);//增减生命
  7. $gameTroop.members()[i].gainMp(n);//增减MP
  8. $gameTroop.members()[i].gainTp(n);//增减TP
  9. $gameTroop.members()[i].addState(n);//增加状态
  10. $gameTroop.members()[i].removeState(n);//去除状态
  11. $gameTroop.members()[i].recoverAll();//完全恢复
  12. $gameTroop.members()[i].transform(n);//更换敌人



JAVASCRIPT 代码复制
  1. $gameTroop.members()[i].agi//敏捷
  2. $gameTroop.members()[i].mdf//魔防
  3. $gameTroop.members()[i].mat//魔攻
  4. $gameTroop.members()[i].luk//幸运




360截图20171005224408796.jpg (51.58 KB, 下载次数: 1)

360截图20171005224408796.jpg

360截图20171006001000198.jpg (60.16 KB, 下载次数: 1)

360截图20171006001000198.jpg

作者: moy    时间: 2017-10-6 00:15
你应该使用gainhp
$gameTroop.members()[i].gainHp(n);//增减生命

另 // 代表着其之后到一行末尾的部分,仅为注释
以你的例子,实际使用是
$gameTroop.members()[499].gainHp(90000);
作者: yang1zhi    时间: 2017-10-6 03:10

一般,数值的前面是有带_符号的。这样容易记
HP也就是_hp
作者: a02821145    时间: 2017-10-6 09:17
$gameTroop.members()[499]._hp =90000
不过推荐你用2楼的方法
直接等于太粗暴
作者: j296196585    时间: 2017-10-6 21:55
本帖最后由 j296196585 于 2017-10-6 22:01 编辑
a02821145 发表于 2017-10-6 09:17
$gameTroop.members()[499]._hp =90000
不过推荐你用2楼的方法
直接等于太粗暴

不行 脚本错误 我想的是包括2楼的方法也不行
我只是想随意调动怪物属性 设置成

普通怪物


勇士怪物


王者怪物


英雄怪

  
英雄怪物
这样的属性 而已不清楚为什么不能生效

JAVASCRIPT 代码复制
  1. =begin
  2.  
  3.  
  4. $data_enemies[敌人ID].maxhp = 数值
  5. $data_enemies[敌人ID].maxsp = 数值
  6. $data_enemies[敌人ID].str = 数值
  7. $data_enemies[敌人ID].dex = 数值
  8. $data_enemies[敌人ID].agi = 数值
  9. $data_enemies[敌人ID].int = 数值
  10. $data_enemies[敌人ID].atk = 数值
  11. $data_enemies[敌人ID].pdef = 数值
  12. $data_enemies[敌人ID].mdef = 数值
  13. $data_enemies[1].exp=3000000 经验
  14. $data_enemies[1].gold=3000000价钱
  15.  
  16. =end



能不能想XP那样设置 好不容易找到一个居然不会用












360截图20171006124417095.jpg (69.32 KB, 下载次数: 1)

360截图20171006124417095.jpg

作者: a02821145    时间: 2017-10-6 22:06
本帖最后由 a02821145 于 2017-10-6 22:31 编辑
j296196585 发表于 2017-10-6 21:55
不行 脚本错误 我想的是包括2楼的方法也不行
我只是想随意调动怪物属性 设置成

额,那就只有更粗暴的方法了
$dataEnemies[499].params[0] = 90000
不过,此方法是直接修改json配置
会在重启游戏后重置为原生属性,并且在本次战斗结束后
不关闭游戏的情况下再次遇到这个怪物还是修改之后的属性
params数组对应的属性类别分别是:最大HP、最大MP、攻击力、防御力、魔法攻击、魔法防御、敏捷、幸运
例如$dataEnemies[499].params[2]返回的就是攻击力

多解释一下$gameTroop把,我也是没过脑子就直接回复了一下
这个方法必须在战斗中才能获取到正在对战的怪物列表,所以直接赋值怪物ID是肯定不行。
如果想要修改$gameTroop里面的怪物,那么你就必须知道正在触发的dataTroop(敌群数据)的ID是哪个。
然后根据你在这个敌群ID下放置怪物的顺序,分别赋予这些怪物在dataTroop这个配置当中的ID值
简单举个例子


这个怪物在敌人配置为:$dataEnemies[3](其实就是3号敌人)
如果在敌群中想要获取他为:$dataTroops[3].members[0](即3号敌群配置中用于存放怪物列表members数组的第一个值,也就是在编辑器中操作这个数据时放入的第一个敌人)
如果在战斗中遇到了这个敌群,获取他应该这样写:$gameTroop._enemies[0] 或 $gameTroop.members()[0](当前敌群数据中用于存放怪物列表的_enemies数组的第一个敌人,也就是编辑器操作这个数据时放入的第一个敌人
不过这里建议使用第二种方式,即$gameTroop.members()[0]


为了加深理解,我在这个敌群里面在放入一个敌人


这个怪物在敌人配置为:$dataEnemies[4](其实就是4号敌人)
如果在敌群中想要获取他为:$dataTroops[3].members[1](即3号敌群配置中用于存放怪物列表members数组的第二个值,也就是在编辑器中操作这个数据时放入的第二个敌人)
如果在战斗中遇到了这个敌群,获取他应该这样写:$gameTroop.members()[1](当前敌群数据中用于存放怪物列表的_enemies数组的第二个敌人,也就是编辑器操作这个数据时放入的第二个敌人


综上所述,如果你想要在战斗开始前使用$gameTroop那是不可能的。因为那个时候战斗尚未发生。这个对象里面没有敌人列表。
你也可以尝试在战斗中进行修改,那时是可以获取到数据的。




作者: j296196585    时间: 2017-10-6 23:05
本帖最后由 j296196585 于 2017-10-6 23:14 编辑
a02821145 发表于 2017-10-6 22:06
额,那就只有更粗暴的方法了
$dataEnemies[499].params[0] = 90000
不过,此方法是直接修改json配置

第一个理解了
第二个不理解
不知道 新加入第二个怪物  怎么理解
$dataEnemies[499].params[0] = 90000

360截图20171006230218571.jpg (75.63 KB, 下载次数: 1)

360截图20171006230218571.jpg

作者: j296196585    时间: 2017-10-6 23:37
j296196585 发表于 2017-10-6 21:55
不行 脚本错误 我想的是包括2楼的方法也不行
我只是想随意调动怪物属性 设置成

$gameTroop.members()[499]._hp 9000
这样设置吗?
作者: a02821145    时间: 2017-10-7 00:16
j296196585 发表于 2017-10-6 23:37
$gameTroop.members()[499]._hp 9000
这样设置吗?

不是
$gameTroop这个方法是当前正在和你进行战斗的敌群
$gameTroop.members()是当前正和你进行战斗的敌人列表
这个列表最多8个,也就是编辑器内放置敌人数量的上限。
也就是说最大值为$gameTroop.members()[7],就是编辑器内放入的第8个敌人
敌人表内ID为499号的敌人,可以是在$gameTroop.members()的0-7号任意位置,处于什么位置看你在编辑过程中放入的顺序
第一个放进入,那就是$gameTroop.members()[0];第三个放进去就是$gameTroop.members()[2]
并且可以放置多个相同ID(如果基础概念没理解透这部分我就不多说了)按照你7楼举例的图,当你正在和这组敌人对战时
$gameTroop.members()[1] = $dataEnemies[1]
当前战斗的敌人列表第二个敌人 = 敌人配置表中1号敌人的数据
如果在战斗中设置这个敌人的血量:$gameTroop.members()[1] ._hp = 90000
如果在战斗前设置这个敌人的血量:$dataEnemies[1].params[0] = 90000
最后我再列一下
$gameTroop.members()[0]  当前敌人列表中第1个敌人
$gameTroop.members()[1]  当前敌人列表中第2个敌人
$gameTroop.members()[2]  当前敌人列表中第3个敌人
$gameTroop.members()[3]  当前敌人列表中第4个敌人
$gameTroop.members()[4]  当前敌人列表中第5个敌人
$gameTroop.members()[5]  当前敌人列表中第6个敌人
$gameTroop.members()[6]  当前敌人列表中第7个敌人
$gameTroop.members()[7]  当前敌人列表中第8个敌人
敌人的顺序由编辑器内依次添加的顺序





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