2014年2月1日 星期六

【Java教學】自訂怪物喝水AI

因為很無聊,

所以隨便發個很簡單到不行的教學。


簡單來說,一般怪物身上有藥水時,在HP低於40%以下會有50%機率喝水,
這是個很一般的設定,而且通用於全部怪物。


那麼,來個比較不一樣的,

例如你希望你遊戲中的死亡騎士這隻BOSS身上有一堆白水,然後被打就會不停的喝,
或是你創立了一隻玩家外觀的怪物,你希望玩家在和他對打時玩家和怪物都會喝水。

嗯,看起來就像真人PK一樣(誤

那麼,可以修改這隻程式碼:

l1j\server\server\model\Instance\L1MonsterInstance.java

搜尋以下這一段


if (getCurrentHp() * 100 / getMaxHp() < 40) {
   useItem(USEITEM_HEAL, 50);
  }

這段的上面添加這句:


int NpcId = getNpcTemplate().get_npcId();

以下為範例修改:

if(NpcId == 45601 && getCurrentHp() < (getMaxHp() - 100)) {
   useItem(USEITEM_HEAL, 90); // 指定45601這隻怪物在HP少於100以上時,有90%機率喝水
  } else {
   if (getCurrentHp() * 100 / getMaxHp() < 40) {
    useItem(USEITEM_HEAL, 50);
   }
}

改寫為CASE
※應該是這樣吧..手邊沒有eclipse,而且已經不碰java很久了

switch(NpcId) {
  case 45601:
  case 45602:
  case 45603:
   if(getCurrentHp() < (getMaxHp() - 100)) {
    useItem(USEITEM_HEAL, 90);
    }
  } else {
   if (getCurrentHp() * 100 / getMaxHp() < 40) {
    useItem(USEITEM_HEAL, 50);
   }
}

以上,結束。


沒有留言:

張貼留言