Project1

标题: 敌人技能bug [打印本页]

作者: jgf1000    时间: 2018-4-25 23:14
标题: 敌人技能bug
出现一个很奇怪的现象.......
除了一号敌人,,其他的敌人都不会使用“攻击”指令(就是默认1号技能位的那个)
我试过通过更改最大值来创建一个默认新敌人,自带技能攻击,实战不使用,直接跳过回合。。。
但唯独一号可以用,也检查过他和其他的并没有什么不同,直接复制一号敌人创造出来的敌人可以使用攻击指令。。。
有没有大佬知道怎么回事?
作者: yang1zhi    时间: 2018-4-25 23:33
敌人战斗中攻击技能是这里设置的
Game_Action.prototype.setEnemyAction = function(action) {
作者: jgf1000    时间: 2018-4-26 17:05
yang1zhi 发表于 2018-4-25 23:33
敌人战斗中攻击技能是这里设置的
Game_Action.prototype.setEnemyAction = function(action) { ...

不懂QAQ怎么具体设置呢,是在哪里加上这段话么= =

作者: jgf1000    时间: 2018-4-26 22:47
yang1zhi 发表于 2018-4-25 23:33
敌人战斗中攻击技能是这里设置的
Game_Action.prototype.setEnemyAction = function(action) { ...

emmmm......只是从编辑器里改而已......学过c++但没学过js,想问个问题,如果想要知道一些操作的脚本(比如id x 的角色 穿上 id y 的装备)应该从哪里看,系统文件么= =但是那么多怎么找
作者: yang1zhi    时间: 2018-4-26 22:57
本帖最后由 yang1zhi 于 2018-4-26 23:04 编辑
jgf1000 发表于 2018-4-26 22:47
emmmm......只是从编辑器里改而已......学过c++但没学过js,想问个问题,如果想要知道一些操作的脚本(比 ...


要找装备。装备的英文是equip,所以首先是用脚本编辑器打开所有脚本。然后按CTRL+F在里面查找equip。
角色就是actor
敌人就是enemy
数据库就是$dataActors,$dataEnemies
地图界面就是Scene_Map
要建个笔记本,用来记下觉得有用的一些MV代码,以后找起来方便。


你想学的话,我这个笔记可能对你有用
JAVASCRIPT 代码复制
  1. console.log()   #在控制台输出
  2. require('nw.gui').Window.get().showDevTools()   脚本呼叫控制台
  3. alert('输出');    #输出
  4. alert(JSON.stringify($gameParty._actors[0]));  #输出对象内容
  5.  
  6. //重复触摸OK
  7. TouchInput.isRepeated('ok')
  8.  
  9. //单次触摸OL
  10. TouchInput.isTriggered('ok')
  11.  
  12. //预载图片
  13. ImageManager.reserveFace(actor.faceName());
  14.  
  15. //当前界面
  16. SceneManager._scene
  17.  
  18.  
  19. //计算括号内的字符串,可包含JS代码
  20. eval(string)
  21.  
  22. //判断类型名字
  23. this.constructor.name
  24.  
  25. //深复制
  26. JsonEx.makeDeepCopy(
  27. var actor = JsonEx.makeDeepCopy(this._actor);
  28.  
  29. //是否在战斗中
  30. $gameParty.inBattle()
  31.  
  32. //删除精灵
  33. .removeChild();
  34.  
  35. //判断是否是字符串
  36. Object.prototype.toString.call(变量) === "[object String]"
  37.  
  38. this._direction    #事件面向
  39.  
  40. this.moveForward(); 事件向前移动
  41.  
  42. $gameTemp.setDestination(1, 1);   #主角自动寻路目的地
  43.  
  44. $gameMap.regionId(x,y)  #得到地图区域ID
  45.  
  46.  
  47. unique  #去掉数组重复
  48.  
  49. this._targetIndex  #技能对象的所在队伍index
  50. decideRandomTarget #决定随机目标
  51.  
  52. AudioManager.playBgm($dataMap.bgm); #播放BGM
  53. AudioManager.playBgs($dataMap.bgs);  #播放BGS
  54.  
  55. center  #居中对齐
  56. left     #左对齐
  57. right    #右对齐
  58.  
  59. actor.learnSkill(item.id); #学会技能
  60. actor.forgetSkill(item.id); #遗忘技能
  61.  
  62. .slice(0,0);   #复制数组,从00
  63.  
  64.  
  65. .splice(1,1)  #删除数组(1个位置,1个数)
  66.  
  67. Math.max(0, 1);  #数组中的最大数
  68.  
  69.  
  70. $gameSwitches._data[10]    #开关
  71. $gameVariables._data[10]   #变量
  72.  
  73. $gameParty.gainGold(1); #获得金钱
  74.  
  75. $gameParty.gainItem($dataItems[id], 数量);  #获得物品
  76.  
  77. if ($gameParty.numItems($dataItems[id]) > 0)   #判断道具数量
  78.  
  79. .toFixed(0)  #数字转字符串
  80. parseFloat("1000")  #字符串转数字
  81.  
  82. $gameParty.qiu_zhujiao()
  83.  
  84. length #数组中单元的个数
  85.  
  86. $gameMap.regionId(x, y);  #求地图区域ID
  87.  
  88. var c = q.concat( b );  #两个数组合并
  89.  
  90. $gameParty._items    #队伍道具
  91.  
  92. $gameParty._actors  #队伍角色,里面是ID,我改成是对象
  93.  
  94. $gameParty.members #队伍角色
  95. $gameActors.actor() #队伍角色
  96. $gameActors._data[actorId] #队伍角色
  97.  
  98. $gameParty.removeActor(this._params[0]);  #队友离开
  99. $gameParty.addActor(this._params[0]);    #队友加入
  100.  
  101. .addState(id)   #添加状态
  102. .removeState(id)   #解除状态
  103.  
  104. $gameMap.mapId()  #当前地图ID
  105.  
  106. .contains('LV0')   #包含
  107.  
  108. #循环 0-4
  109. for (var i=0; i<4; i++)
  110.   {
  111.  
  112. continue #下一个循环
  113. ##########
  114.  
  115. #前往新地图
  116. $gamePlayer.reserveTransfer(2, 1, 1);
  117.         this.fadeOutAll();
  118.         SceneManager.goto(Scene_Map);
  119. ################################################
  120.  
  121. Window.prototype.itemHeight = function() {    #设定选项的间距高

作者: jgf1000    时间: 2018-4-26 23:10
yang1zhi 发表于 2018-4-26 22:57
要找装备。装备的英文是equip,所以首先是用脚本编辑器打开所有脚本。然后按CTRL+F在里面查找equip。
角 ...

感谢大佬分享经验

作者: jgf1000    时间: 2018-5-10 15:32
yang1zhi 发表于 2018-4-26 22:57
要找装备。装备的英文是equip,所以首先是用脚本编辑器打开所有脚本。然后按CTRL+F在里面查找equip。
角 ...

现在大致会了一点,现在基本上就是用F8看看数据存在那里然后直接赋值更改的水平(T . T),但因为很多都是用数组存的,大佬知道怎么给其加一项么?
作者: jgf1000    时间: 2018-5-10 16:04
yang1zhi 发表于 2018-4-26 22:57
要找装备。装备的英文是equip,所以首先是用脚本编辑器打开所有脚本。然后按CTRL+F在里面查找equip。
角 ...

emmmm.....这个我是知道的,我的意思是,比如一开始编辑器里设定的敌人技能只有两个,我看数据时里面的action就是只有两项的数组,每个对应着一个技能,虽然我现在可以修改这两个技能,但我加不了第三个技能,就是怎么把这个数组项数加一...
作者: jgf1000    时间: 2018-5-10 16:16
本帖最后由 jgf1000 于 2018-5-10 16:18 编辑
yang1zhi 发表于 2018-4-26 22:57
要找装备。装备的英文是equip,所以首先是用脚本编辑器打开所有脚本。然后按CTRL+F在里面查找equip。
角 ...



现在是这么个样子...应该怎么样加和之前一样格式的呢= =
原谅我这个小萌新....




会了会了,感谢大佬指点!比心~
作者: yang1zhi    时间: 2018-5-10 16:33
本帖最后由 yang1zhi 于 2018-5-10 16:35 编辑
jgf1000 发表于 2018-5-10 16:16
现在是这么个样子...应该怎么样加和之前一样格式的呢= =
原谅我这个小萌新....


data是数据库内容,你不能改数据库内容,那只是个参照表,你要改的应该是游戏中生成的内容。而武器默认是没有独立的,你想添加特性还要把他独立出来。那是个非常麻烦的事情。不建议新手去做。
原理就是用
var wuqi = JsonEx.makeDeepCopy($dataWeapons[3]);
这样把武器数据从数据库复制一个出来,由于使用了 JsonEx.makeDeepCopy深复制,这个wuqi变量就和数据库没关联了。
然后你再把这个wuqi变量存到你想存的变量里去就可以了
之后你再调用这个新的变量里的这个wuqi,对它进行修改

然后你游戏中使用的武器应该全部都是新变量里的wuqi而不是数据库了。
数据库只在一开始生成这个wuqi时用

--------------------

结论就是,新手不要修改武器
作者: ekmomo    时间: 2018-5-10 16:43
是不是你普通攻击有蓝耗什么的,没改脚本的话只能是敌人属性有区别你妹发现。
作者: jgf1000    时间: 2018-5-10 16:48
本帖最后由 jgf1000 于 2018-5-10 16:55 编辑
yang1zhi 发表于 2018-5-10 16:33
data是数据库内容,你不能改数据库内容,那只是个参照表,你要改的应该是游戏中生成的内容。而武器默认是 ...


问个问题:游戏运行中调用数据是从哪调用的,$data下的么,还是$game下的,或者都是,我刚刚试验的结果是通过控制台将武器特性(添加技能3)改成(添加技能4)是可以实时在战斗中反应出来的,所以我不是很懂数据库到底是怎么用的,我的目的是做一个和同伴一样的敌人,因为同伴的装备,属性,技能在游戏进行中会变化,所以我这个敌人也需要动态变化的,目前的想法是写个脚本在战斗前将$gameActor(x)  下的技能id全部拷到数据库里的那个敌人下的action,并且将其的装备id记下,拷到掉落物那里,不知道这样生成的敌人能不能符合我的想法,总之感谢大佬不厌其烦地打了这么多(虽然看的不是很懂orz)
作者: yang1zhi    时间: 2018-5-10 16:59
jgf1000 发表于 2018-5-10 16:48
问个问题:游戏运行中调用数据是从哪调用的,$data下的么,还是$game下的,或者都是,我刚刚试验的结果是 ...

数据库一般是用来看的,不是用来写的。
不是说不能写,但是不会被保存。
而且,你一修改,所有参考数据库的内容都被修改了。
假设你有十把铁剑,你把数据库的铁剑改了,十把铁剑就都改了。

调用是都可以的,没有固定说要从哪调用。不过有$game的就说明游戏中有生成这个东西了,已经不是数据库了,是可以被保存的。
作者: jgf1000    时间: 2018-5-11 01:14
yang1zhi 发表于 2018-5-10 16:59
数据库一般是用来看的,不是用来写的。
不是说不能写,但是不会被保存。
而且,你一修改,所有参考数据库 ...

不知道哪里出了问题…

DD0F87D3-D477-4A15-9767-C06B9F54D8F0.jpeg (52.54 KB, 下载次数: 52)

DD0F87D3-D477-4A15-9767-C06B9F54D8F0.jpeg

作者: jgf1000    时间: 2018-5-11 08:24
本帖最后由 jgf1000 于 2018-5-11 08:29 编辑
yang1zhi 发表于 2018-5-10 16:59
数据库一般是用来看的,不是用来写的。
不是说不能写,但是不会被保存。
而且,你一修改,所有参考数据库 ...


好我试试改$gameTroop里的enemy
但我想问的是,为什么我只改了dropItem[6].kind,但dropItem[0].kind,dropItem[4].kind,dropItem[5].kind也变了但1和2没变…
这个不知道怎么解决感觉改那个也没用…
作者: yang1zhi    时间: 2018-5-11 08:32
jgf1000 发表于 2018-5-11 08:24
好我试试改$gameTroop里的enemy
但我想问的是,为什么我只改了dropItem[6].kind,但dropItem[0].kind,dro ...

Game_Enemy.prototype.makeDropItems = function() {
掉宝相关的【函数】慢慢看
作者: jgf1000    时间: 2018-5-11 13:37
yang1zhi 发表于 2018-5-11 08:32
Game_Enemy.prototype.makeDropItems = function() {
掉宝相关的【函数】慢慢看

谢谢大佬,,看了一中午终于改好了...





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