zouzouge 發表於 2024-3-7 14:25

核心问题求解,363模擬器里如何能解除攻擊目標?

                                pc._hateList.remove(cha);
                                pc._hateList.clear();
                                target = targetPc;
                                finalL1Character target = null;
                                pc.checkTarget();
                                pc.targetClear();
                                pc.setFirstAttack(false);
用以上方法,都不能解除打手的攻擊目標,只要主人打了怪物一下,打手就會一直打怪物,直到死亡,才會繼續跟隨主人,主人走遠以後自動傳送打手到主人身邊,打手就會又跑回去打先前沒有打死的怪物。。。頭痛慾裂,不知道怎麼解決了。
貼上代碼,求大大幫忙看看!

                        if (pc.glanceCheck(targets.getX(), targets.getY()) &&
                                pc.getLocation().getTileLineDistance(targetPc.getLocation()) < 16 &&
//                                pc.getMapId() == targetPc.getMapId() &&
                                !targets.isDead()){
//                                targets.onAction(pc);
//                                pc.setNowTarget(targets);
                                pc._hateList.add(cha, 0);
                                pc.attackTarget(targets);
                        } else {
                                pc._hateList.remove(cha);
                                pc._hateList.clear();
                                target = targetPc;
                                finalL1Character target = null;
//                                pc.checkTarget();
//                                pc.targetClear();
//                                pc.setFirstAttack(false);
//                                pc.setNowTarget(null);// 解除目前攻击目标设置
                                pc.allTargetClear();
                                pc.setTeleportX(targetPc.getX());
                                pc.setTeleportY(targetPc.getY());
                                pc.setTeleportMapId((short) targetPc.getMapId());
                                pc.setTeleportHeading(pc.getHeading());
                                teleportation(pc);
                                MoveCha(pc , targetPc);
//                                target = null;
//                                pc.setFirstAttack(false);
//                                this.setNowTarget(null);// 解除目前攻击目标设置
                                return;

yasioukon 發表於 2024-3-7 14:56

打手是指寵物 召喚物吧?

停留命令 不是可以讓他停止攻擊嗎

所以先寫停留 再下攻擊 就可以讓他停止攻擊

會跟著走 飛走也不會再回去追

zouzouge 發表於 2024-3-7 15:08

yasioukon 發表於 2024-3-7 14:56
打手是指寵物 召喚物吧?

停留命令 不是可以讓他停止攻擊嗎


不是寵物,是跟隨功能,一個人創建兩個帳號,兩個角色,一個為主號,一個是小號,小號角色跟隨主號角色,并自動跟隨主號角色攻擊主號角色所攻擊的怪物,就是打手

zouzouge 發表於 2024-3-7 15:44

yasioukon 發表於 2024-3-7 14:56
打手是指寵物 召喚物吧?

停留命令 不是可以讓他停止攻擊嗎


請問大大,停留命令是什麼?

yasioukon 發表於 2024-3-7 15:59

那你這是要改AI 不是改寵物

寵物才是用停留的方式

看AI攻擊條件if括號內是什麼

讓條件不符合 就不會打了

zouzouge 發表於 2024-3-7 16:07

yasioukon 發表於 2024-3-7 15:59
那你這是要改AI 不是改寵物

寵物才是用停留的方式


pcAI?好像有道理,我去試試,感謝大大指點
頁: [1]
查看完整版本: 核心问题求解,363模擬器里如何能解除攻擊目標?