楓之谷大爆炸之前的鍛造任務,很多端通過修改wz檔來達到完成任務的效果,只是因為這個任務的流程條件,比較繁瑣,現在我們只需要簡單的修改源碼與腳本,就可以完成這個任務的流程。
任務 6029 史丹的新技術
起始任務條件
<imgdir name="6029">
<imgdir name="0">
<int name="npc" value="2110004" /> 接任務的NPC
<int name="lvmin" value="45" /> 角色等級
完成任務條件
<imgdir name="1">
<int name="npc" value="2110004" />完成任務的NPC
<imgdir name="infoex">
<imgdir name="0">
<string name="value" value="111" />每完成一個附屬任務給予一個1的條件。當完成附屬的3個任務時,就達成完成任務條件。
</imgdir>
</imgdir>
<imgdir name="quest">
<imgdir name="0">
<int name="id" value="6031" />任務6031達到完成狀態
<int name="state" value="2" />
</imgdir>
<imgdir name="1">
<int name="id" value="6032" />任務6032達到完成狀態
<int name="state" value="2" />
</imgdir>
<imgdir name="2">
<int name="id" value="6030" />任務6030達到完成狀態
<int name="state" value="2" />
起始任務的條件
<imgdir name="6030">
<imgdir name="0">
<int name="npc" value="2110004" />
<int name="lvmin" value="45" />
<int name="interval" value="0" />
<int name="infoNumber" value="6029" />任務代碼
<imgdir name="infoex">
<imgdir name="0">
<string name="value" value="000" /> 注意000,這個任務條件只有在修改源碼的情況下,在接取6029任務的時候才能給予的條件。
</imgdir> 第一個0,代表任務6030未完成狀態,第二個0,代表6031未完成狀態,第三個0,代表6032未完成狀態
<imgdir name="1">
<string name="value" value="010" /> 第2個0現在變成了1,說明6031任務是完成狀態。
</imgdir>
<imgdir name="2">
<string name="value" value="011" /> 第2個與第3個0,都變成了1,說明6031,6032的任務都是完成狀態。
</imgdir>
<imgdir name="3">
<string name="value" value="001" /> 第2個0現在變成了1,說明6032任務是完成狀態。
</imgdir>
針對這樣的複雜的情況,可以用服務端的通用語法來實現這樣的效果!
public void start(MapleCharacter c, int npc) {
final int[] ss = {6029, 6030, 6031, 6032}; //添加特殊任務的ID號
for (int i : ss) {
if (this.id == i){
forceStart(c, npc, null);
if (this.id == 6029) c.getQuestNAdd(MapleQuest.getInstance(6029)).setCustomData("000");//當任務是 6029 的時候 給與 000 的條件
c.getClient().getPlayer().updateQuest(c.getClient().getPlayer().getQuest(MapleQuest.getInstance(6029)), true);//刷新6029任務
return;
}
}
腳本部分 已更新语法
針對000條件
if (qm.getQuestRecord(6029).getCustomData()=="000")
qm.getQuestRecord(6029).setCustomData("001");//給予條件
if (qm.getQuestRecord(6029).getCustomData()=="100")
qm.getQuestRecord(6029).setCustomData("101");//給予條件
if (qm.getQuestRecord(6029).getCustomData()=="110")
qm.getQuestRecord(6029).setCustomData("111");//給予條件
if (qm.getQuestRecord(6029).getCustomData()=="010")
qm.getQuestRecord(6029).setCustomData("011");//給予條件
qm.getPlayer().updateQuest(qm.getQuestRecord(6029), true);//刷新任務
修復鍛造任務具體說明與腳本(已更新语法).rar
(5.71 KB, 下載次數: 2751)
|