古树旋律 发表于 2023-6-9 11:40:08

实时调整敌人的名称、属性、能力等

首先要知道,在游戏运行过程中,调用管理后台,输入$dataEnemies即可看到对应ID的敌人属性。比如缝合尖塔的一串截图。



最基本的一些信息。

【actions】使用的技能。
【battlerName】敌人的战斗图片名称
【dropItems]掉落物品
【exp】掉落经验
【gold】掉落金币
【name】敌人名字
【params】敌人的8项基础属性。这是以数组形式保存的,依次为mhp,mmp,atk,def,mat,mdf,agi,luk

知道这些之后,就可以搞事情了。比如通过事件中的脚本调用:
$dataEnemies.params=9999;
//id为74的敌人,最大生命变为9999

如果想搞一些更有趣、更随机的功能,可以写一个函数,然后在游戏中运行,比如《缝合尖塔》中用到的:
function changeRandomEnemy(id) {
        var randomEnemyName = ["不完整","猎奇","诡异","偷懒","无名","闯入"];
        var randomEnemyBattleName = ["fhg_01","fhg_02","fhg_03","fhg_04","fhg_05"];
        var enemy_value = $gameActors.actor($gameParty._actors);
        $dataEnemies.name = randomEnemyName+"尖塔猎手";
        $dataEnemies.battlerName = randomEnemyBattleName;
        $dataEnemies.params = enemy_value.mhp*4;
        $dataEnemies.params = 9999;
        $dataEnemies.params = enemy_value.atk*2;
        $dataEnemies.params = enemy_value.def*2;
        $dataEnemies.params = enemy_value.mat*2;
        $dataEnemies.params = enemy_value.mdf*2;
        $dataEnemies.params = enemy_value.agi*2;
        $dataEnemies.params = enemy_value.luk*2;       
}
这是一个让敌人名字随机、图片随机、属性是队伍中1号位角色的2倍。

触发战斗后,这个ID为171的敌人先来一段变身的动画,然后就变成设定好的“随机敌人”了。这种方法很适合偷懒做RogueLike,或者是需要大批量做野怪。



北望 发表于 2023-8-27 21:01:53

做个标记,刚好有做这类游戏的构思!下次拿来用下
页: [1]
查看完整版本: 实时调整敌人的名称、属性、能力等