Project1

标题: 请问如何写出 出战队伍4名成员的平均等级并用于公共事件 [打印本页]

作者: 13687023691    时间: 2022-1-27 02:13
标题: 请问如何写出 出战队伍4名成员的平均等级并用于公共事件
先说一下设想:
一、比方说我队伍有18个角色,出战的只能有4个角色,这4个角色的等级之和   再除以4,就是队伍的平均等级。
二、一个物品,使用之后根据队伍平均等级的不同,小于等于10级、小于等于20级,等等,会触发不同的事件。

问题:我自己在变量操作中,编写了18个变量对应18个角色的等级,但是没有办法将其中4个变量的和再除以4得到新的变量。
    如何使得一个变量等于队伍的平均等级,是不是要脚本才能写出来,我在数据库研究了很久,没想明白,希望得到解答。
作者: guihuasheng    时间: 2022-2-10 17:24
本帖最后由 guihuasheng 于 2022-2-10 17:50 编辑

直接写脚本(事件指令第3页-高级-脚本),设定临时变量,获取队出战成员的数量,并得到他们的等级,计算出平均等级,再赋值给数据库中的变量。
可以在p1中搜索脚本调用大全,我发的rpgmz教学视频中也有“高级-脚本”的一些教程(例如课程5中的Advanced - Logic Puzzles),写起来比很多插件简单些。
作者: HM495    时间: 2022-2-11 01:04
本帖最后由 HM495 于 2022-2-11 01:29 编辑

完全不用脚本的土办法:

变量1 = 0 (记等级 )
变量2 = 0 (记队伍人数)

条件分歧(角色A是否在队伍中)
是——
变量1 += 角色A的等级
变量2 += 1
……
……
……把你的18个人 都判断一遍
变量1 /= 变量2 (取平均值)
最后变量1就是你要的等级平均值

用脚本的办法
JS 代码复制
  1. lv = 0;
  2. count = 0; //初始化两个临时变量
  3. for (var i=0;i<$gameParty._actors.length;i++) //遍历一下队伍,累加队伍成员的等级
  4. {
  5.     lv += $gameActors.actor($gameParty._actors[i])._level;
  6.     count += 1;
  7. }
  8. lv /= count; //取平均数
  9. $gameVariables.setValue(1,lv) //把平均等级赋值给变量1


第二个问题
道具效果绑个公共事件
这个公共事件里先调用一次上面判断平均等级的公共事件
然后用平均等级的变量做分歧条件 把你要的效果做在对应的分支里




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