Project1

标题: 关于战斗乘降系统 [打印本页]

作者: linphy    时间: 2017-5-14 10:10
标题: 关于战斗乘降系统
目前正在做战斗中乘降战车,思路就是把人和战车位置互换:

JAVASCRIPT 代码复制
  1. // 加入角色
  2.             var id = actorId[index];
  3.             $gameParty.addActor(id);
  4.             // 替换位置
  5.             $gameParty.swapOrder(index,$gameParty.size() - 1);
  6.             // 战车离开
  7.             $gameParty.removeActor(10 + actorTankId[index]);


总是出现错误:
TypeError: Cannot read property 'setAttack' of undefined

跟踪半天不知道原因在哪儿,我怀疑是设置角色action的地方要修改,求大神指点:
作者: guoxiaomi    时间: 2017-5-14 17:26
会不会是,角色的action只对出战队员有设置,战斗中把非出战队员换上来,系统在设置or读取行动的时候报错?
作者: linphy    时间: 2017-5-14 17:49
guoxiaomi 发表于 2017-5-14 17:26
会不会是,角色的action只对出战队员有设置,战斗中把非出战队员换上来,系统在设置or读取行动的时候报错? ...

捣鼓了半天,看起来初步能用了,代码贴上来,做点好事:)

  1. Scene_Battle.prototype.commandRide = function() {
  2.     var index = BattleManager.actor().index();
  3.     var id = BattleManager.actor().actorId();
  4.     if (id > actorId[index]) {
  5.             // 加入角色
  6.             var id = actorId[index];
  7.             $gameParty.addActor(id);
  8.             // 替换位置
  9.             $gameParty.swapOrder(index,$gameParty.size() - 1);
  10.             // 战车离开
  11.             $gameParty.removeActor(10 + actorTankId[index]);
  12.             
  13.             $gameParty.members()[index].makeActions();
  14.             BattleManager.selectNextCommand(true, index);
  15.             //$gameActors.actor(10 + actorTankId[index]).makeActions();
  16.             //$gameParty.members(index).makeActions();
  17.             // 激活窗口
  18.             this.startActorCommandSelection();


  19.     } else if (actorTankId[index] > 0) {
  20.             // 加入战车
  21.             var tankId = actorTankId[index];
  22.             $gameParty.addActor(10 + tankId);
  23.             // 替换位置
  24.             $gameParty.swapOrder(index,$gameParty.size() - 1);
  25.             // 角色离开
  26.             $gameParty.removeActor(id);

  27.             BattleManager.selectNextCommand(true, index);
  28.             this.startActorCommandSelection();

  29.     }
  30. };

  31. BattleManager.selectNextCommand = function(flag = false,index = 0) {
  32.     do {
  33.         if (!this.actor() || !this.actor().selectNextCommand()) {
  34.             if (flag == true) {
  35.                 this._actorIndex--;
  36.             }
  37.             this.changeActor(this._actorIndex + 1, 'waiting');
  38.                        
  39.             if (this._actorIndex >= $gameParty.size()) {
  40.                 this.startTurn();
  41.                 break;
  42.             }
  43.         }
  44.     } while (!this.actor().canInput());
  45. };
复制代码

作者: walf_man    时间: 2017-5-29 19:03
重装的兄弟要支持,欢迎加入团队作战
作者: 烟FFS花    时间: 2017-5-30 19:01
版主能加Q探讨下么,或者把完整承浆发布下,你这个我们不会设置啊,只有战斗时候能用,平时能承浆么




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