(1)資料庫新增沙蟲npc,圖檔代號10071 ,此範例 npcid 為 99011584
(2)尋找檔案L1MonsterInstance.java
(3)尋找hide函式,紅色部分為修改處
private void hide() {
int npcid = getNpcTemplate().get_npcId();
int GfxId = getNpcTemplate().get_gfxid();//TODO 思克巴瀕死傳送延遲
if ((npcid == 45061 // カーズドスパルトイ)
|| (npcid == 45161 // スパルトイ)
|| (npcid == 45181 // スパルトイ)
|| (npcid == 45455)
|| (npcid == 45455)
|| (npcid == 99011584)//沙蟲血量低於3分之1,有機率縮地板
) { // デッドリースパルトイ
if (getMaxHp() / 3 > getCurrentHp())
{
int rnd = Random.nextInt(10);
if (2 > rnd)
{
allTargetClear();
setHiddenStatus(HIDDEN_STATUS_SINK);
broadcastPacket(new S_DoActionGFX(getId(),
ActionCodes.ACTION_Hide));
setStatus(11);
broadcastPacket(new S_CharVisualUpdate(this, getStatus()));
}
}
(4)尋找initHideForMinion函式,紅色部分為修改處
public void initHideForMinion(L1NpcInstance leader) {
// グループに属するモンスターの出現直後の隠れる動作(リーダーと同じ動作にする)
int npcid = getNpcTemplate().get_npcId();
if (leader.getHiddenStatus() == HIDDEN_STATUS_SINK)
{
if ((npcid == 45061 // カーズドスパルトイ)
|| (npcid == 45161 // スパルトイ)
|| (npcid == 45181 // スパルトイ
)
|| (npcid == 45455)
|| (npcid == 99011584)//玩家靠近,沙蟲自動爬起 ) { // デッドリースパルトイsetHiddenStatus(HIDDEN_STATUS_SINK);
setStatus(11);
}
(5)尋找 initHide 函式,紅色部分為修改處
public void initHide() {
// 出現直後の隠れる動作
// 潜るMOBは一定の確率で地中に潜った状態に、
// 飛ぶMOBは飛んだ状態にしておく
int npcid = getNpcTemplate().get_npcId();
if ((npcid == 45061 // カーズドスパルトイ
)
|| (npcid == 45161 // スパルトイ
) || (npcid == 45181 // スパルトイ
) || (npcid == 45455)) { // デッドリースパルトイ
int rnd = Random.nextInt(3);
if (1 > rnd) {
setHiddenStatus(HIDDEN_STATUS_SINK);
setStatus(11);
}
}else if(npcid == 99011584)/*3.53沙蟲初始地板 RR-新增*/
{
setHiddenStatus(HIDDEN_STATUS_SINK);
setStatus(11);
}
else if ((npcid == 45045 // クレイゴーレム
)
|| (npcid == 45126 // ストーンゴーレム
) || (npcid == 45134 // ストーンゴーレム
) || (npcid == 45281)) { // ギランストーンゴーレム
int rnd = Random.nextInt(3);
if (1 > rnd) {
setHiddenStatus(HIDDEN_STATUS_SINK);
setStatus(4);
}
}