2014年2月1日 星期六

【Java教學】沙地格利芬飛天

此寫法還有修正的空間可以延伸
如果需要用判斷丟道具物品讓他快點下來

就必須再修改L1NpcInstance.java

你的版本中有寫入物品無法丟棄或者丟棄後刪除
那麼要再到C_DropItem.java去寫入額外的判斷

修改l1j\server\server\model\Instance\L1MonsterInstance.java
找到



QUOTE:
} else if (npcid == 46107
|| npcid == 46108) {
if (getMaxHp() / 4 > getCurrentHp()) {
int rnd = _random.nextInt(10);
if (1 > rnd) {
allTargetClear();
setHiddenStatus(HIDDEN_STATUS_SINK);
broadcastPacket(new S_DoActionGFX(getId(),ActionCodes.ACTION_Hide));
setStatus(13);
broadcastPacket(new S_NPCPack(this));
}
}


底下追加



QUOTE:
} else if ( npcid == 81310) {//TODO 沙地格利芬
if (getMaxHp() / 3 > getCurrentHp()) {//TODO 暫定剩餘血量
int rnd = _random.nextInt(100) + 1;//TODO 代表隨機0到99後面加1表示隨機1到100
if (40 >= rnd) {//TODO 沙地格利芬判斷百分之多少機率觸發隱藏的治療的機率
allTargetClear();
setHiddenStatus(HIDDEN_STATUS_FLY);
broadcastPacket(new S_DoActionGFX(getId(),ActionCodes.ACTION_Moveup));
setStatus(4);
broadcastPacket(new S_NPCPack(this));
}
}
}
}


在往下尋找



QUOTE:
} else if (npcid >= 46125 && npcid <= 46128) {
setHiddenStatus(L1NpcInstance.HIDDEN_STATUS_ICE);
setStatus(4);


底下追加



QUOTE:
} else if (npcid == 81310) {//TODO 沙地格利芬
int rnd = _random.nextInt(3);
if (10 > rnd) {
setHiddenStatus(HIDDEN_STATUS_SINK);
setStatus(4);
}
}
}


在下往下尋找



QUOTE:
} else if (npcid == 46107
|| npcid == 46108) {
setHiddenStatus(HIDDEN_STATUS_SINK);
setStatus(13);
}


底下追加



QUOTE:
} else if(npcid == 81310) {//TODO 沙地格利芬
setHiddenStatus(HIDDEN_STATUS_SINK);
setStatus(13);


天堂透視鏡


文章出處 浪漫物語網路社區

沒有留言:

張貼留言