由於新手可能爬文都只爬到部分章節~或是之前範例程式碼(只有寫出200%其它要自己新增)
也或許近日小弟一直被詢問到此類問題,故發出此篇教學~希望能解決大家的困擾~也能暫緩讓小弟休息一下!
小弟只是將部分散亂的章節重新再整理一遍而已並非原創,然而原創我也不知道是哪位大大~
廢話不多說~我直接講重點~!!
整合的地方為CITEMUSE整段程式碼整合,不需要再寫入一堆else if(itemId==xxx) 了!!
進入教學:
****O**P**Q**L**O****【【步驟1】】****分**享**於**月**光**論**壇****
/ /model/skill/L1SkillId.java
直接拉到最下面 在最後 } 的上面加入以下
public static final int EDD1 = 991000; //經驗1.5倍
public static final int EDD2 = 991001; //經驗2倍
public static final int EDD3 = 991002; //經驗3倍
再來左上角找到儲存~按下去!
****O**P**Q**L**O****【【步驟2】】****分**享**於**月**光**論**壇****
/ /clientpackets/C_itemUSe.java
搜尋 import static l1j. . .model.skill.L1SkillId.WIND_WALK;
在下方加入
import static l1j. . .model.skill.L1SkillId.EDD1;
import static l1j. . .model.skill.L1SkillId.EDD2;
import static l1j. . .model.skill.L1SkillId.EDD3;
****O**P**Q**L**O****【【步驟3】】****分**享**於**月**光**論**壇****
/ /clientpackets/C_itemUSe.java
搜尋 else if (itemId == L1ItemId.POTION_OF_HEA G
在上方加入:
} else if (itemId >= 999000&&itemId<=999002) { // 經驗加倍藥水(150%~300%)整合目標1
if (pc.hasSkillEffect(EDD1) == false
&& pc.hasSkillEffect(EDD2) == false
&& pc.hasSkillEffect(EDD3) == false) { // 確認 狀態
int time = 60 * 60 * 1000; // 設置時間為60分
int effect = itemId-8000; //節省程式碼輸入的重點 整合目標2
pc.sendPackets(new S_SkillSound(pcObjid, 7013)); //右上角經驗圖示(目前只找到20%的圖)
pc.broadcastPacket(new S_SkillSound(pcObjid, 7013, time));
pc.setSkillEffect(effect, time); // 增加魔法狀態(effect:道具編號-8000=狀態編號)
pc.getInventory().removeItem(l1iteminstance, 1); // 移除物品
pc.sendPackets(new S_SystemMessage("狩獵獲取經驗上升了!"));
} else{
pc.sendPackets(new S_SystemMessage("經驗加倍效果已存在"));
}
}
****O**P**Q**L**O****【【步驟4】】****分**享**於**月**光**論**壇****
/ /model/L1SkillTimer.java
搜尋 } else if (skillId == STATUS_CHAT_PROHIBITED) { // チャット禁止
if (cha instanceof L1PcInstance) {
L1PcInstance pc = (L1PcInstance) cha;
pc.sendPackets(new S_ Message(288)); // チャットができるようになりました。
}
再下方加入:
} else if (skillId >= EDD1 && skillId <= EDD3) { // 經驗狀態
if (cha instanceof L1PcInstance) {
L1PcInstance pc = (L1PcInstance) cha;
pc.sendPackets(new S_SystemMessage("獲取經驗恢復正常!"));
}
****O**P**Q**L**O****【【步驟5】】****分**享**於**月**光**論**壇****
/ /utils/CalcExp.java
在 import java.util.ArrayList; 上方匯入宣告
import static l1j. . .model.skill.L1SkillId.EDD1;
import static l1j. . .model.skill.L1SkillId.EDD2;
import static l1j. . .model.skill.L1SkillId.EDD3;
****O**P**Q**L**O****【【步驟6】】****分**享**於**月**光**論**壇****
/ /utils/CalcExp.java
搜尋 double expup = 1; 在下方插入
double DEXP = 1.0;
然後在下面的
if (pc.gasSkillEffect(XXXXXXXXXXXXXXXXXX
的上方加入以下
if (pc.hasSkillEffect(EDD1)) { DEXP = 1.5; }
if (pc.hasSkillEffect(EDD2)) { DEXP = 2; }
if (pc.hasSkillEffect(EDD3)) { DEXP = 3; }
****O**P**Q**L**O****【【步驟7】】****分**享**於**月**光**論**壇****
/ /utils/CalcExp.java
搜尋 iint add_exp = (int) (exp * exppenalty *
在 exp * 後方加入 DEXP*
存檔~編譯核心~
****O**P**Q**L**O****【【步驟8】】****分**享**於**月**光**論**壇****
將附件 etcitem 中的經驗卷軸複製貼上你DB中的 etcitem
(注意小弟的沒有裝上"打寶公告"~所以請自行調整)
http://bbs.djorz.com/job.php?action=download&pid=tpc&tid=194424&aid=26870
重新啟動~完成上線測試吧!!
****O**P**Q**L**O****【【完成】】****分**享**於**月**光**論**壇****
也或許近日小弟一直被詢問到此類問題,故發出此篇教學~希望能解決大家的困擾~也能暫緩讓小弟休息一下!
小弟只是將部分散亂的章節重新再整理一遍而已並非原創,然而原創我也不知道是哪位大大~
廢話不多說~我直接講重點~!!
整合的地方為CITEMUSE整段程式碼整合,不需要再寫入一堆else if(itemId==xxx) 了!!
進入教學:
****O**P**Q**L**O****【【步驟1】】****分**享**於**月**光**論**壇****
/ /model/skill/L1SkillId.java
直接拉到最下面 在最後 } 的上面加入以下
public static final int EDD1 = 991000; //經驗1.5倍
public static final int EDD2 = 991001; //經驗2倍
public static final int EDD3 = 991002; //經驗3倍
再來左上角找到儲存~按下去!
****O**P**Q**L**O****【【步驟2】】****分**享**於**月**光**論**壇****
/ /clientpackets/C_itemUSe.java
搜尋 import static l1j. . .model.skill.L1SkillId.WIND_WALK;
在下方加入
import static l1j. . .model.skill.L1SkillId.EDD1;
import static l1j. . .model.skill.L1SkillId.EDD2;
import static l1j. . .model.skill.L1SkillId.EDD3;
****O**P**Q**L**O****【【步驟3】】****分**享**於**月**光**論**壇****
/ /clientpackets/C_itemUSe.java
搜尋 else if (itemId == L1ItemId.POTION_OF_HEA G
在上方加入:
} else if (itemId >= 999000&&itemId<=999002) { // 經驗加倍藥水(150%~300%)整合目標1
if (pc.hasSkillEffect(EDD1) == false
&& pc.hasSkillEffect(EDD2) == false
&& pc.hasSkillEffect(EDD3) == false) { // 確認 狀態
int time = 60 * 60 * 1000; // 設置時間為60分
int effect = itemId-8000; //節省程式碼輸入的重點 整合目標2
pc.sendPackets(new S_SkillSound(pcObjid, 7013)); //右上角經驗圖示(目前只找到20%的圖)
pc.broadcastPacket(new S_SkillSound(pcObjid, 7013, time));
pc.setSkillEffect(effect, time); // 增加魔法狀態(effect:道具編號-8000=狀態編號)
pc.getInventory().removeItem(l1iteminstance, 1); // 移除物品
pc.sendPackets(new S_SystemMessage("狩獵獲取經驗上升了!"));
} else{
pc.sendPackets(new S_SystemMessage("經驗加倍效果已存在"));
}
}
****O**P**Q**L**O****【【步驟4】】****分**享**於**月**光**論**壇****
/ /model/L1SkillTimer.java
搜尋 } else if (skillId == STATUS_CHAT_PROHIBITED) { // チャット禁止
if (cha instanceof L1PcInstance) {
L1PcInstance pc = (L1PcInstance) cha;
pc.sendPackets(new S_ Message(288)); // チャットができるようになりました。
}
再下方加入:
} else if (skillId >= EDD1 && skillId <= EDD3) { // 經驗狀態
if (cha instanceof L1PcInstance) {
L1PcInstance pc = (L1PcInstance) cha;
pc.sendPackets(new S_SystemMessage("獲取經驗恢復正常!"));
}
****O**P**Q**L**O****【【步驟5】】****分**享**於**月**光**論**壇****
/ /utils/CalcExp.java
在 import java.util.ArrayList; 上方匯入宣告
import static l1j. . .model.skill.L1SkillId.EDD1;
import static l1j. . .model.skill.L1SkillId.EDD2;
import static l1j. . .model.skill.L1SkillId.EDD3;
****O**P**Q**L**O****【【步驟6】】****分**享**於**月**光**論**壇****
/ /utils/CalcExp.java
搜尋 double expup = 1; 在下方插入
double DEXP = 1.0;
然後在下面的
if (pc.gasSkillEffect(XXXXXXXXXXXXXXXXXX
的上方加入以下
if (pc.hasSkillEffect(EDD1)) { DEXP = 1.5; }
if (pc.hasSkillEffect(EDD2)) { DEXP = 2; }
if (pc.hasSkillEffect(EDD3)) { DEXP = 3; }
****O**P**Q**L**O****【【步驟7】】****分**享**於**月**光**論**壇****
/ /utils/CalcExp.java
搜尋 iint add_exp = (int) (exp * exppenalty *
在 exp * 後方加入 DEXP*
存檔~編譯核心~
****O**P**Q**L**O****【【步驟8】】****分**享**於**月**光**論**壇****
將附件 etcitem 中的經驗卷軸複製貼上你DB中的 etcitem
(注意小弟的沒有裝上"打寶公告"~所以請自行調整)
http://bbs.djorz.com/job.php?action=download&pid=tpc&tid=194424&aid=26870
重新啟動~完成上線測試吧!!
****O**P**Q**L**O****【【完成】】****分**享**於**月**光**論**壇****
ectitem下載
沒有留言:
張貼留言