瘋天堂私服發佈網站廣告欄位!
瘋天堂私服發佈網站您最佳的選擇!
免費曝光天堂私服的方式!
害怕天堂私服倒閉嗎?快使用天堂分析師!
天堂私服抽獎扭蛋物品及機率測試器
天堂私服稱號顏色製造器
瘋天堂私服發佈網站教您註冊推文收藏私服!
天堂私服血量魔力計算器
瘋天堂私服發布網站廣告贊助及爆料私服客服
教您如何不用註冊也可以推文天堂私服!
天堂私服270怪物查詢掉落資料庫
天堂私服盟徽製造器
test0428
2010-02-21 17:09

天堂設定跟隨祭司的寫法!

1.在SQL裡的NPC設定:複製貼上再自行修改200047 200048 200049是NPCID
200047 銀光祭司 【銀光祭司】 另類娃娃 L1Monster 3894 60 300 400 1 1 20 1 20 20 1 0 0 small 0 0 0 400 0 0 0 0 0 0 0 0 0 0 0 -1 -1 0 0 1 0 0 5000 10
200048 黃金祭司 【黃金祭司】 另類娃娃 L1Monster 3897 75 500 500 1 1 30 1 30 30 1 0 0 small 0 0 0 300 0 0 0 0 0 0 0 0 0 0 0 -1 -1 0 0 1 0 0 4000 20
200049 白金祭司 【白金祭司】 另類娃娃 L1Monster 3900 85 700 700 1 1 40 1 40 40 1 0 0 small 0 0 0 200 0 0 0 0 0 0 0 0 0 0 0 -1 -1 0 0 1 0 0 3000 30


2.在SQL裡的etcitem設定:複製貼上再自行修改60052 60053 60054是item_id
60052 \fD銀光祭司召喚卷軸 \fD銀光祭司召喚卷軸 \fD銀光祭司召喚卷軸 other normal paper 12000 3072 863 0 1
60053 \fO黃金祭司召喚卷軸 \fO黃金祭司召喚卷軸 \fO黃金祭司召喚卷軸 other normal paper 12000 3072 863 0 1
60054 \fW白金祭司召喚卷軸 \fW白金祭司召喚卷軸 \fW白金祭司召喚卷軸 other normal paper 12000 3072 863 0 1


3.L1DollInstance.java

一.在一開頭會看到0,1,2....的排序,在祭司娃娃寫上數字這裡9,10,11是舉例

public static final int DOLLTYPE_BUGBEAR = 0;
public static final int DOLLTYPE_SUCCUBUS = 1;
public static final int DOLLTYPE_WAREWOLF = 2;
.
.
新增

public static final int DOLLTYPE_A = 9;// 祭司娃娃:白銀祭司
public static final int DOLLTYPE_B = 10;// 祭司娃娃:黃金祭司
public static final int DOLLTYPE_C = 11;// 祭司娃娃:白金祭司

二.先編譯L1DollInstance.java


4.C_ItemUSe.java

一.搜尋:

else if (itemId == 41248 || itemId == 41249
|| itemId == 41250 || itemId == 49037
|| itemId == 49038 || itemId == 49039
|| itemId == 60035 || itemId == 60036
|| itemId == 60037) { // 
useMagicDoll(pc, itemId, itemObjid);
}
//在下面新增:
else if (itemId == 60052 || itemId == 60053 || itemId == 60054) //祭司娃娃
{
useMagicDoll(pc, itemId, itemObjid);
pc.getInventory().removeItem(l1iteminstance, 1);//這是使用卷軸方式扣一
}
二.搜尋:

int dollType = 0;

//在下面新增:
else if (itemId == 60052) {//祭司娃娃:白銀祭司卷軸
npcId = 200047;
dollType = L1DollInstance.DOLLTYPE_A;
} else if (itemId == 60053) {//祭司娃娃:黃金祭司卷軸
npcId = 200048;
dollType = L1DollInstance.DOLLTYPE_B;
} else if (itemId == 60054) {//祭司娃娃:白金祭司卷軸
npcId = 200049;
dollType = L1DollInstance.DOLLTYPE_C;
}

三.編譯C_ItemUSe.java

5.L1Character.java

一.搜尋:

public void setOwnLightSize(int i) {
_ownLightSize = i;
}

在下面新增加入:


// 祭司娃娃
private int _hierarch = 0;

public int getHierarch() {
return _hierarch;
}

public void setHierarch(int i) {
_hierarch = i;
}
// 祭司娃娃 end


二.編譯L1Character.java

6.C_NPCAction.java

一.搜尋:

這是舉例看你想加在哪

else if (s.equalsIgnoreCase("enca")) { // 防具門家 / 防具強化魔法受
L1ItemInstance item = pc.getInventory().getItemEquipped(2, 2);
if (item != null) {
L1SkillUse l1skilluse = new L1SkillUse();
l1skilluse.handleCommands(pc, BLESSED_ARMOR, item
.getId(), 0, 0, null, 0, L1SkillUse.TYPE_SPELLSC);
} else {
pc.sendPackets(new S_ServerMessage(79));
}

htmlid = ""; // 消
}

在下面加入:

// 祭司說話檔設定
else if(((L1NpcInstance) obj).getNpcTemplate().get_npcId() == 200047
|| ((L1NpcInstance) obj).getNpcTemplate().get_npcId() == 200048
|| ((L1NpcInstance) obj).getNpcTemplate().get_npcId() == 200049 ){
if (s.equalsIgnoreCase("Hierarch_1")&&((L1NpcInstance) obj).getHierarch() == 1) { // -1

if (pc.getHierarch() > 0) {
pc.setHierarch(pc.getHierarch() - 1);
}

String msg0 = "";
String msg1 = String.valueOf(pc.getHierarch() * 10);
if (((L1NpcInstance) obj).getHierarch() == 1) {
msg0 = "輔助";
} else {
msg0 = "跟隨";
}
htmldata = new String[] { ((L1NpcInstance) obj).getName(), String.valueOf(((L1NpcInstance) obj).getCurrentMp()), String.valueOf(((L1NpcInstance) obj).getMaxMp()), msg0, msg1 };
htmlid = "Hierarch";
} else if (s.equalsIgnoreCase("Hierarch_2")&&((L1NpcInstance) obj).getHierarch() == 1) { // +1

if (pc.getHierarch() < 10) {
pc.setHierarch(pc.getHierarch() + 1);
}

String msg0 = "";
String msg1 = String.valueOf(pc.getHierarch() * 10);
if (((L1NpcInstance) obj).getHierarch() == 1) {
msg0 = "輔助";
} else {
msg0 = "跟隨";
}
htmldata = new String[] { ((L1NpcInstance) obj).getName(), String.valueOf(((L1NpcInstance) obj).getCurrentMp()), String.valueOf(((L1NpcInstance) obj).getMaxMp()), msg0, msg1 };
htmlid = "Hierarch";
} else if (s.equalsIgnoreCase("Hierarch_3")) { // 切換狀態

((L1NpcInstance) obj).setHierarch(1);

String msg0 = "";
String msg1 = String.valueOf(pc.getHierarch() * 10);
if (((L1NpcInstance) obj).getHierarch() == 1) {
msg0 = "輔助";
} else {
msg0 = "跟隨";
}
htmldata = new String[] { ((L1NpcInstance) obj).getName(), String.valueOf(((L1NpcInstance) obj).getCurrentMp()), String.valueOf(((L1NpcInstance) obj).getMaxMp()), msg0, msg1 };
htmlid = "Hierarch";
} else if (s.equalsIgnoreCase("Hierarch_4")) { // 切換狀態

((L1NpcInstance) obj).setHierarch(0);

String msg0 = "";
String msg1 = String.valueOf(pc.getHierarch() * 10);
if (((L1NpcInstance) obj).getHierarch() == 1) {
msg0 = "輔助";
} else {
msg0 = "跟隨";
}
htmldata = new String[] { ((L1NpcInstance) obj).getName(), String.valueOf(((L1NpcInstance) obj).getCurrentMp()), String.valueOf(((L1NpcInstance) obj).getMaxMp()), msg0, msg1 };
htmlid = "Hierarch";
}
}
// 祭司說話檔設定 end


二.編譯C_NPCAction.java


7.L1DollInstance.java

一.加入:

import l1j.server.server.utils.Random;//祭司新增 有的版本沒有自行加上
import l1j.server.server.serverpackets.S_AttackMissPacket;//祭司新增
import l1j.server.server.serverpackets.S_ServerMessage;//祭司新增
import l1j.server.server.serverpackets.S_SystemMessage;//祭司新增
import l1j.server.server.serverpackets.S_HPUpdate;//祭司新增
import l1j.server.server.serverpackets.S_MPUpdate;//祭司新增
import l1j.server.server.serverpackets.S_Strup;//祭司新增
import l1j.server.server.serverpackets.S_Dexup;//祭司新增
import l1j.server.server.serverpackets.S_NPCTalkReturn;//祭司新增

二.搜尋:

public boolean noTarget() {
if (_master.isDead()) {
deleteDoll();
return true;
}

在下面新增加入:

else if (_master != null
&& (_master.getCurrentHp() > 0)
&& (_master.getCurrentHp() <= ((_master.getMaxHp() * _master.getHierarch()) / 10))
&& (getCurrentMp() > 15)
&& (getLocation().getTileLineDistance(_master.getLocation()) < 7)
&& (_master.glanceCheck(_master.getX(), _master.getY()) == true)
&& (getHierarch() == 1)&&
(getNpcTemplate().get_npcId()== 200047 )) { // 銀光祭司主動補血
if (_master instanceof L1PcInstance) {
Random random = new Random();
L1PcInstance player = (L1PcInstance) _master;
broadcastPacket(new S_SkillSound(player.getId(), 830));
broadcastPacket(new S_AttackMissPacket(this, player.getId(), 19));
player.setCurrentHp(player.getCurrentHp() + (80 + random.nextInt(75)));
player.sendPackets(new S_ServerMessage(77, ""));//你覺得舒服多了。
player.sendPackets(new S_HPUpdate(player.getCurrentHp(), player.getMaxHp()));
setCurrentMp(getCurrentMp() - 20);

if (player.isInParty()) {
player.getParty().updateMiniHP(player);
}
}
}else if (_master != null
&& (_master.getCurrentHp() > 0)
&& (_master.getCurrentHp() <= ((_master.getMaxHp() * _master.getHierarch()) / 10))
&& (getCurrentMp() > 19)
&& (getLocation().getTileLineDistance(_master.getLocation()) < 7)
&& (_master.glanceCheck(_master.getX(), _master.getY()) == true)
&& (getHierarch() == 1)&&
(getNpcTemplate().get_npcId()== 200048)) { // 黃金祭司主動補血
if (_master instanceof L1PcInstance) {
Random random = new Random();
L1PcInstance player = (L1PcInstance) _master;
broadcastPacket(new S_SkillSound(player.getId(), 830));
broadcastPacket(new S_AttackMissPacket(this, player.getId(), 19));
player.setCurrentHp(player.getCurrentHp() + (105 + random.nextInt(75)));
player.sendPackets(new S_ServerMessage(77, ""));//你覺得舒服多了。
player.sendPackets(new S_HPUpdate(player.getCurrentHp(), player.getMaxHp()));
setCurrentMp(getCurrentMp() - 20);

if (player.isInParty()) {
player.getParty().updateMiniHP(player);
}
}
}
else if (_master != null
&& (_master.getCurrentHp() > 0)
&& (_master.getCurrentHp() <= ((_master.getMaxHp() * _master.getHierarch()) / 10))
&& (getCurrentMp() > 19)
&& (getLocation().getTileLineDistance(_master.getLocation()) < 7)
&& (_master.glanceCheck(_master.getX(), _master.getY()) == true)
&& (getHierarch() == 1)&&
(getNpcTemplate().get_npcId()== 200049)) { // 白金祭司主動補血
if (_master instanceof L1PcInstance) {
Random random = new Random();
L1PcInstance player = (L1PcInstance) _master;
broadcastPacket(new S_SkillSound(player.getId(), 830));
broadcastPacket(new S_AttackMissPacket(this, player.getId(), 19));
player.setCurrentHp(player.getCurrentHp() + (125 + random.nextInt(75)));
player.sendPackets(new S_ServerMessage(77, ""));//你覺得舒服多了。
player.sendPackets(new S_HPUpdate(player.getCurrentHp(), player.getMaxHp()));
&am

上一篇文章:天堂版本升級3.63的教學!
下一篇文章:天堂設定排程讓MySQL自動最佳化資料表!

分享文章:分享到微博! 分享到臉書! 分享到噗浪! 分享到維特! 分享到Google+! 分享到LINE!