Project1

标题: 增加出战人数和改变角色站位问题(已解决) [打印本页]

作者: catxiaolang    时间: 2023-8-11 04:01
标题: 增加出战人数和改变角色站位问题(已解决)
本帖最后由 catxiaolang 于 2023-8-11 17:40 编辑

本人是召唤流爱好者,玩暗黑2和4都一定要选死灵法师招一堆骷髅去刷的那种。
所以执念的希望能够在自己的游戏中加入召唤流派。然而尝试了一些方法,得到的效果都不是很好。

设计是这样:
队伍角色上限为4人;
此外有4个额外的召唤物位置,排在4名角色前面;

理想的画面是这样的(图的P的)



和这样的

然而当我用Visu系插件Party System插件把最大出战人数修改到8后,得到的画面却是
这样的



甚至当队伍只有1人时画面是这样的

研究以后发现Party System插件只给了个修改每个角色的偏移量选项,不能从第几位开始另起一行。

随后又试图用MZ官方自带的Svactor插件修改坐标,得到的却是当角色普攻时游戏崩溃并出现一长串报错。
rmmz_managers.js:2036 TypeError: Cannot read property 'bitmap' of undefined
    at Sprite_Weapon.setPosition (SVActorPositionMZpro.js:458)
    at Sprite_Weapon.setup (SVActorPositionMZpro.js:453)
    at Sprite_Actor.<computed> [as forceWeaponAnimation] (VisuMZ_1_BattleCore.js:19985)
    at Game_Actor.Game_Battler.<computed>.startWeaponAnimation (VisuMZ_1_BattleCore.js:19985)
    at Game_Actor.<computed> [as performWeaponAnimation] (VisuMZ_1_BattleCore.js:19985)
    at Game_Actor.Game_Battler.requestMotion (VisuMZ_1_BattleCore.js:19985)
    at Game_Actor.performAttack (rmmz_objects.js:4656)
    at Game_Actor.Game_Battler.<computed>.<computed> [as performActionMotions] (VisuMZ_1_BattleCore.js:19985)
    at Game_Actor.<computed> [as performAction] (VisuMZ_1_BattleCore.js:19985)
    at Window_BattleLog.performAction (rmmz_windows.js:5517)
咱也不懂,问了ChatGPT它也说解决不了,叫我联系开发者。

又在以往的帖子里翻到了一个宠物召唤插件Pet Summon
https://rpg.blue/thread-493172-1-1.html
它的效果非常理想,可以选择把召唤物直接召唤到召唤者前面,也不用修改出战人数了,
但是我在自己的工程文件里却不知为何无法生效,
哪怕关了插件起个新工程文件也不行,很诡异,参考了原作者给的示例文件也没找到自己哪一步遗漏了。
在出处看到原作者似乎一直在努力试图解决与VS系列插件的兼容问题但不是很成功。

因为一些其它的设计需要,已经基本上绑定了Visu系列插件的框架。希望能够在兼容的前提下解决。
不知道有无大佬能指点迷津。

作者: zf756268    时间: 2023-8-11 08:09
花钱定制吧

作者: sunhihi    时间: 2023-8-11 08:51
我看你應該是用了VisuStella的戰鬥插件
很遺憾地跟你說
VisuStella的插件跟大多數的免費插件都不相容
所以你如果想要召喚系統只有發信建議VisuStella做一套

然後你再花錢買XD
作者: rfvtgbzxc    时间: 2023-8-11 10:39
本帖最后由 rfvtgbzxc 于 2023-8-11 10:41 编辑

是不是使用了vs_battlecore?
站位算法在其插件参数中修改:


附一个每3人一行的站位算法:
JAVASCRIPT 代码复制
  1. // Declare Constants
  2. const sprite = this;
  3. const actor = this._actor;
  4. const index = arguments[0];
  5.  
  6. const columnIndex = parseInt(index / 3);
  7. const rowIndex = parseInt(index % 3);
  8. // Make Calculations
  9. const diffX = 16, columnDX = 64;
  10. let x = Math.round((Graphics.width / 2) + 250)
  11. x -= Math.floor((Graphics.width - Graphics.boxWidth) / 2);
  12. x += columnIndex * columnDX + rowIndex * diffX;
  13.  
  14. const columnDiffY = 20, rowDY = 64, columnMaxMembers = 3;
  15. let y = (Graphics.height - 120) - (columnMaxMembers * rowDY);
  16. y -= Math.floor((Graphics.height - Graphics.boxHeight) / 2);
  17. y += rowIndex * rowDY + (columnIndex % 2) * columnDiffY;
  18.  
  19. // Home Position Offsets
  20. const offsetNote = /<SIDEVIEW HOME OFFSET:[ ]([\+\-]\d+),[ ]([\+\-]\d+)>/i;
  21. const xOffsets = actor.traitObjects().map((obj) => (obj && obj.note.match(offsetNote) ? Number(RegExp.$1) : 0));
  22. const yOffsets = actor.traitObjects().map((obj) => (obj && obj.note.match(offsetNote) ? Number(RegExp.$2) : 0));
  23. x = xOffsets.reduce((r, offset) => r + offset, x);
  24. y = yOffsets.reduce((r, offset) => r + offset, y);
  25.  
  26. // Set Home Position
  27. this.setHome(x, y);


不过不清楚多了partysystem插件以后还能生效不
作者: 草泥马之草泥马    时间: 2023-8-11 15:23
这个我看了b站上有人出过visu改变站位的教程,你可以搜一下,具体是那个我忘了,这套插件不好用,会卡死的。
作者: catxiaolang    时间: 2023-8-11 17:13
rfvtgbzxc 发表于 2023-8-11 10:39
是不是使用了vs_battlecore?
站位算法在其插件参数中修改:

可行!谢谢你!

原来参数里就有只是不懂代码的我不理解它
正在让GPT教我怎么按需调整。
作者: 恶魔痕迹    时间: 2023-8-27 23:11
ChangeMaxUnitBattleParty.js这个可解决
作者: 309988769    时间: 2023-9-19 18:59
rfvtgbzxc 发表于 2023-8-11 10:39
是不是使用了vs_battlecore?
站位算法在其插件参数中修改:

每个角色单独设置坐标数字,不用计算公式,该怎么写呢




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