微信扫一扫 分享朋友圈

已有 2641 人浏览分享

[服務器教學] 自定義轉蛋上綠廣之物品

  [複製鏈接]

集團新軍

Rank: 1

29

威望

130

金錢

0

A幣
主題
1
帖子
4
精華
0
綜合社群主題發文量
3
電玩社群主題發文量
0
娛樂社群主題發文量
0
技術社群主題發文量
0
閱讀權限
10
註冊時間
2019-3-11
  • TA的每日心情

    2020-10-29 00:01
  • 簽到天數: 33 天

    [LV.5]常住居民I

    longay 發表於  2019-3-19 04:09:48 | 顯示全部樓層 | 閱讀模式
    本帖最後由 longay 於 2019-3-19 11:31 編輯


    本篇使用白狐113作為示範

    鑒於看到版上另一篇文章
    來實做一下

    首先,轉蛋機給予物品使用的函式是
    gainGachaponItem(int itemid, int quantity);
    先來查詢此function實際做的內容是甚麼
    對於NPC內使用的函式多位於 NPCConversationManager裡
    進而搜尋之後可以看到
    1.     public int gainGachaponItem(int id, int quantity) {
    2.         return gainGachaponItem(id, quantity, c.getPlayer().getMap().getStreetName() + " - " + c.getPlayer().getMap().getMapName());
    3.     }

    4.     public int gainGachaponItem(int id, int quantity, final String msg) {
    5.         try {
    6.             if (!MapleItemInformationProvider.getInstance().itemExists(id)) {
    7.                 return -1;
    8.             }
    9.             final IItem item = MapleInventoryManipulator.addbyId_Gachapon(c, id, (short) quantity);

    10.             if (item == null) {
    11.                 return -1;
    12.             }
    13.             final byte rareness = GameConstants.gachaponRareItem(item.getItemId());
    14.             if (rareness > 0) {
    15.                 World.Broadcast.broadcastMessage(MaplePacketCreator.getGachaponMega("[" + msg + "] " + c.getPlayer().getName(), " : 從轉蛋機轉到了!", item, rareness,c.getChannel()-1).getBytes());
    16.             }
    17.             return item.getItemId();
    18.         } catch (Exception e) {
    19.             e.printStackTrace();
    20.         }
    21.         return -1;
    22.     }
    複製代碼
    在js裡呼叫的是
    1. public int gainGachaponItem(int id, int quantity) {
    2.         return gainGachaponItem(id, quantity, c.getPlayer().getMap().getStreetName() + " - " + c.getPlayer().getMap().getMapName());
    3.     }
    複製代碼
    然而他這邊又回傳一個同名稱的function
    也就是下面的那串
    利用簡單的英文可以辨別出上綠廣的條件,rareness
    這邊他為了查詢輸入的物品id是否為rareness
    呼叫了這個function
    1. GameConstants.gachaponRareItem(item.getItemId());
    複製代碼
    透過滑鼠右鍵 navigate->go to declaretion 可以直接查看這個function的實作內容(此為相當實用的操作方法)
    1.     public static byte gachaponRareItem(final int id) {
    2.         switch (id) {
    3.             case 2049100: // Chaos Scroll
    4.             case 1102042: // Purple Adventurer Cape
    5.                 return 2;
    6.             //1 = wedding msg o.o
    7.         }
    8.         return 0;
    9.     }
    複製代碼
    很清楚的他直接透過switch 然後針對特定物品代碼return 2;

    了解了背後在做甚麼後
    這邊有兩個解決方案
    一個是直接在他gachaponRareItem內添加你想要上廣的物品代碼
    缺點是過於冗長,且後面的擴充刪減相當不便

    因此接下來要實做的是能夠透過多一個boolean參數來決定是否為稀有物品(上廣)
    有鑑於在原本的function直接添加新參數會導致其餘地方應用該function時少了新參數進而出錯
    找到所有呼叫這個function的地方並做修改是有點不切實際而且耗費相當多時間的
    所以選擇使用Overloaded function的原理來操作
    這邊直接複製上方實際呼叫的 gainGachaponItem 在下方貼上
    並修改為
    遊客,如果您要查看本帖隱藏內容請回復
    由於省去了上方的第一次回傳跟呼叫 缺少了msg 參數,我選擇直接刪除該參數並在原本使用的地方直接放入第一個函式的傳入值,之後添加新的參數boolean rare
    然後修改上方判斷是否為稀有道具的判斷式,直接放入傳入的參數
    至此大功告成
    將來在js裡面應用時只需要用
    1. gainGachaponItem(itemid, quantity, true);
    複製代碼
    即可讓該道具上廣。

    有任何不夠清楚的地方歡迎討論
    內容若有錯誤或者不夠乾淨,希望能夠指點,謝謝
    內容歡迎轉載,轉載前請告知並附上原文
    共收到 0 A幣
    打賞榜
    暫無
    暫無
    暫無
    暫無
    ----
    暫無
    ----
    暫無
    ----
    暫無
    ----
    lcchu

    集團新軍

    Rank: 1

    1

    威望

    13

    金錢

    0

    A幣
    主題
    0
    帖子
    3
    精華
    0
    綜合社群主題發文量
    3
    電玩社群主題發文量
    0
    娛樂社群主題發文量
    0
    技術社群主題發文量
    0
    閱讀權限
    10
    註冊時間
    2019-3-13
  • TA的每日心情

    2019-3-19 13:38
  • 簽到天數: 1 天

    [LV.1]初來乍到

    止水 發表於 2019-3-19 13:45:20 | 顯示全部樓層
    謝大大教學 這對還在學習的我大有幫助 謝謝

    集團新軍

    Rank: 1

    100

    威望

    394

    金錢

    255

    A幣
    主題
    3
    帖子
    25
    精華
    1
    綜合社群主題發文量
    11
    電玩社群主題發文量
    0
    娛樂社群主題發文量
    0
    技術社群主題發文量
    3
    閱讀權限
    10
    註冊時間
    2018-6-10
  • TA的每日心情

    5 天前
  • 簽到天數: 77 天

    [LV.6]常住居民II

    a66843000 發表於 2019-4-16 03:15:04 | 顯示全部樓層
    謝大大教學 太感謝了唷

    集團新軍

    Rank: 1

    0

    威望

    6

    金錢

    0

    A幣
    主題
    0
    帖子
    1
    精華
    0
    綜合社群主題發文量
    1
    電玩社群主題發文量
    0
    娛樂社群主題發文量
    0
    技術社群主題發文量
    0
    閱讀權限
    10
    註冊時間
    2019-5-8
  • TA的每日心情

    2019-5-9 17:33
  • 簽到天數: 1 天

    [LV.1]初來乍到

    joe85101 發表於 2019-5-9 17:35:21 | 顯示全部樓層
    感謝大大的分享

    集團新軍

    Rank: 1

    12

    威望

    114

    金錢

    2

    A幣
    主題
    0
    帖子
    4
    精華
    0
    綜合社群主題發文量
    3
    電玩社群主題發文量
    0
    娛樂社群主題發文量
    0
    技術社群主題發文量
    0
    閱讀權限
    10
    註冊時間
    2019-4-21
  • TA的每日心情

    2019-5-27 00:54
  • 簽到天數: 13 天

    [LV.3]偶爾看看II

    bluesad1110 發表於 2019-5-16 11:27:26 | 顯示全部樓層
    學習研究中 感謝分享

    集團新軍

    Rank: 1

    36

    威望

    155

    金錢

    0

    A幣
    主題
    1
    帖子
    7
    精華
    0
    綜合社群主題發文量
    2
    電玩社群主題發文量
    0
    娛樂社群主題發文量
    0
    技術社群主題發文量
    0
    閱讀權限
    10
    註冊時間
    2017-2-26
  • TA的每日心情

    2019-7-29 11:23
  • 簽到天數: 41 天

    [LV.5]常住居民I

    zxcv851220 發表於 2019-6-20 13:52:39 | 顯示全部樓層
    研究一下 感謝分享

    集團新軍

    Rank: 1

    1

    威望

    6

    金錢

    0

    A幣
    主題
    0
    帖子
    2
    精華
    0
    綜合社群主題發文量
    2
    電玩社群主題發文量
    0
    娛樂社群主題發文量
    0
    技術社群主題發文量
    0
    閱讀權限
    10
    註冊時間
    2019-7-25
  • TA的每日心情

    2019-7-27 18:39
  • 簽到天數: 2 天

    [LV.1]初來乍到

    LIN 發表於 2019-7-26 16:52:28 | 顯示全部樓層
    本帖最後由 LIN 於 2019-7-26 19:05 編輯

    這方法不錯,可以另外加這個要上廣就不用打true了
    public int gainGachaponItem(int id, int quantity) {
            return gainGachaponItem(id,quantity, true);
    }

    集團新軍

    Rank: 1

    19

    威望

    55

    金錢

    0

    A幣
    主題
    0
    帖子
    1
    精華
    0
    綜合社群主題發文量
    1
    電玩社群主題發文量
    0
    娛樂社群主題發文量
    0
    技術社群主題發文量
    0
    閱讀權限
    10
    註冊時間
    2019-7-27
  • TA的每日心情

    2020-9-6 16:28
  • 簽到天數: 19 天

    [LV.4]偶爾看看III

    max0928 發表於 2019-8-12 00:29:31 | 顯示全部樓層
    這個方法更方便了!!

    集團新軍

    Rank: 1

    15

    威望

    55

    金錢

    0

    A幣
    主題
    0
    帖子
    2
    精華
    0
    綜合社群主題發文量
    2
    電玩社群主題發文量
    0
    娛樂社群主題發文量
    0
    技術社群主題發文量
    0
    閱讀權限
    10
    註冊時間
    2020-3-22
  • TA的每日心情

    2020-5-9 15:24
  • 簽到天數: 15 天

    [LV.4]偶爾看看III

    arvin830806 發表於 2020-4-18 18:09:44 | 顯示全部樓層
    來學看看

    集團新軍

    Rank: 1

    95

    威望

    79

    金錢

    12

    A幣
    主題
    0
    帖子
    16
    精華
    0
    綜合社群主題發文量
    5
    電玩社群主題發文量
    0
    娛樂社群主題發文量
    0
    技術社群主題發文量
    0
    閱讀權限
    10
    註冊時間
    2020-4-18
  • TA的每日心情
    擦汗
    7 天前
  • 簽到天數: 59 天

    [LV.5]常住居民I

    wsx414 發表於 2020-5-7 23:36:07 | 顯示全部樓層
    感謝教學 正好需要綠廣的用法

    集團新軍

    Rank: 1

    0

    威望

    4

    金錢

    0

    A幣
    主題
    0
    帖子
    3
    精華
    0
    綜合社群主題發文量
    0
    電玩社群主題發文量
    0
    娛樂社群主題發文量
    0
    技術社群主題發文量
    0
    閱讀權限
    10
    註冊時間
    2021-9-14

    該用戶從未簽到

    qqkkqq 發表於 2021-9-19 09:57:48 | 顯示全部樓層
    感謝大大的分享

    集團新軍

    Rank: 1

    3

    威望

    19

    金錢

    1

    A幣
    主題
    1
    帖子
    15
    精華
    0
    綜合社群主題發文量
    0
    電玩社群主題發文量
    0
    娛樂社群主題發文量
    0
    技術社群主題發文量
    0
    閱讀權限
    10
    註冊時間
    2020-12-17
  • TA的每日心情

    2021-1-24 20:47
  • 簽到天數: 2 天

    [LV.1]初來乍到

    上人 發表於 2022-1-19 10:01:59 | 顯示全部樓層
    感謝教學,要來綠廣洗頻了。

    小有建樹

    Rank: 5Rank: 5

    1389

    威望

    2268

    金錢

    13

    A幣
    主題
    1
    帖子
    51
    精華
    0
    綜合社群主題發文量
    7
    電玩社群主題發文量
    0
    娛樂社群主題發文量
    0
    技術社群主題發文量
    0
    閱讀權限
    70
    註冊時間
    2020-6-23
  • TA的每日心情

    1 小時前
  • 簽到天數: 524 天

    [LV.9]以壇為家II

    vic 發表於 2022-1-28 12:20:21 | 顯示全部樓層
    我的GMS083不知道為什麼找NPC代碼沒腳本
    參考自己重弄一個!

    集團新軍

    Rank: 1

    2

    威望

    6

    金錢

    0

    A幣
    主題
    0
    帖子
    2
    精華
    0
    綜合社群主題發文量
    0
    電玩社群主題發文量
    0
    娛樂社群主題發文量
    0
    技術社群主題發文量
    0
    閱讀權限
    10
    註冊時間
    2022-2-8

    該用戶從未簽到

    冥王星o 發表於 2022-2-9 00:50:24 | 顯示全部樓層
    來學習一下思路 最近對廣挺感興趣的 因為幾乎都是 bug xddd
    您需要登錄後才可以回帖 登錄 | 註冊會員

    本版積分規則

    4

    發文

    130

    金錢

    0

    A幣

    ----------榮譽勳章----------

    熱門推薦
    圖文推薦
    • 關於我們
    • 企業文化
    • 人才招聘
    • 常見問題
    • 建議反饋
    • 合作夥伴
    • 新聞媒體
    • 商家合作
    • 客戶案例
    • 產品服務
    • 聯繫我們

    AICL社群娛樂集團

    GMT+8, 2022-5-23 01:04 , 網路刷新 0.140101 秒 .

    歡迎來到 AICL網路社群

    版權AICL社群所有 2011-2021.

    Total:123 Today:213 Online:322