2013年6月17日 星期一

【Java教學】【★★★★★】須曼的設定

參考資料:天堂透視鏡
http://gametsg.techbang.com/lineage/index.php?view=npc&npc=40011

在下只是按照資料中的字面解釋下去做這隻怪物的...

使用版本:Rev2021.

以下是大概能實裝的作法:

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

搜尋這一段:

private void hide() {

在迴圈中新增這一段:

} else if (npcid == 怪物的ID) {
        if (getMaxHp() / 3 > getCurrentHp()) { //暫定剩餘血量
                if (1 > _random.nextInt(20)) { //暫定閉殼治療的機率
                        allTargetClear();
                        setHiddenStatus(HIDDEN_STATUS_FLY);
                        broadcastPacket(new S_DoActionGFX(getId(),
                                        4));
                        setStatus(4);
                        broadcastPacket(new S_NPCPack(this));
                }
        }

再找到這一段:

} else if (leader.getHiddenStatus() == HIDDEN_STATUS_FLY) {

if敘述中插入你怪物的ID

--------------------------------------------------

再來修改:
l1j\server\server\model\Instance\L1NpcInstance.java

找到這一段:

int pickupIndex = (int) (Math.random() * gInventorys.size());
L1GroundInventory inventory = gInventorys.get(pickupIndex);
for (L1ItemInstance item : inventory.getItems()) {
...以下省略

整段改成以下

int pickupIndex = (int) (Math.random() * gInventorys.size());L1GroundInventory inventory = gInventorys.get(pickupIndex);
for (L1ItemInstance item : inventory.getItems()) {
if (getInventory().checkAddItem(item, item.getCount()) == L1Inventory.OK) { 
if (getPassispeed() > 0) {
_targetItem = item;
_targetItemList.add(_targetItem);
}
}
if (_npcTemplate.get_npcId() == 8888) {//TODO 怪物編號
        int item_Id = item.getItem().getItemId();
        if (item_Id == 1234 && (item.getItem().getType() != 6 || item.getItem().getType() != 7)) {//TODO 品質寶石編號
                if (getHiddenStatus() == HIDDEN_STATUS_FLY) {
                        L1Inventory groundInventory = L1World.getInstance()
                        .getInventory(item.getX(), item.getY(), item.getMapId());
                        setHiddenStatus(HIDDEN_STATUS_NONE);
                        broadcastPacket(new S_DoActionGFX(getId(), 11));
                        setStatus(0);
                        broadcastPacket(new S_NPCPack(this));
                        onNpcAI();
                        startChat(CHAT_TIMING_HIDE);
                        groundInventory.removeItem(item);
                }
        }
}
}
}

----------------------------------------------------

DB的部分


gfxId 5767
passispeed 0
atkSpeed 1000
alt_atk_speed 960
atk_magic_speed 1100
sub_magic_speed 1100

arrowgfx 5773

skillgfx 5771


attack actionid 1,18,19,30

沒有留言:

張貼留言