chenhui540

修正楓之谷鍛造任務

發表於 2022-10-3 00:02:56
chenhui540 發表於 2022-10-3 00:02:56 | 顯示全部樓層 |閱讀模式
楓之谷大爆炸之前的鍛造任務,很多端通過修改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);//刷新任務



QQ图片20221003000045.png


修復鍛造任務具體說明與腳本(已更新语法).rar (5.71 KB, 下載次數: 2752)








瀏覽 4678 回復 13

您需要登錄後才可以回帖 登錄 | 註冊會員

返回頂部