查看: 1149|回复: 3

月光寶盒改為腳本讀取 實作方法

[复制链接]
  • TA的每日心情

    2022-12-15 19:48
  • 签到天数: 6 天

    [LV.2]偶尔看看I

    74

    主题

    9

    回帖

    355

    积分

    中级会员

    Rank: 3Rank: 3

    积分
    355
    QQ
    发表于 2022-12-1 17:35:07 | 显示全部楼层 |阅读模式
    此腳本免費提供 , 使用我端口者 直接拿腳本就能用。


    腳本說明:

    打開腳本後裡面可以設定寶盒抽中物品的機率 以及物品內容

    另外此腳本可以設定期數

    [JavaScript] 纯文本查看 复制代码
    var setname = "月光寶盒期數";
    sm.setServerSet(setname, 1);

    設定及為第一期的物品。 會取得 Prizelist 的第一個陣列 來當作寶盒的內容物品。





    腳本使用方法:

    丟到scripts/server 路徑裡面 名稱隨便改都可以 開服會自動讀取。

    重載腳本指令: !servernpc


    >> 四種寶盒腳本載點


    接下來說明 如果不是我的端者 要怎麼改

    我們搜尋找到以下

    [Java] 纯文本查看 复制代码
    public static final void UseXmaxsSurprise

    接下來 直接在 function 內加入腳本讀取 我這寫法如下:
    [Java] 纯文本查看 复制代码
     int[][] reward = null;
    
                switch (item.getItemId()) {
                    case 5222000:
                        reward = NpcSetConstants.XMAXS_SURPRISE;
                        break;
                    case 5222004:
                        reward = NpcSetConstants.XMAXS_SURPRISE_2;
                        break;
                    case 5222005:
                        reward = NpcSetConstants.XMAXS_SURPRISE_3;
                        break;
                    case 5222006:
                        reward = NpcSetConstants.XMAXS_SURPRISE_4;
                        break;
                }
    
                final int RewardIemId = RandomRewards.getInstance().getXmasreward();
                //final CashItem rewardItem = c.isnewcs() ? CashItemFactoryNew.getInstance().getItemId(RewardIemId) : CashItemFactory.getInstance().getItemId(RewardIemId);
                List<CashItem> rewardItems = CashItemFactory.getInstance().getAllItems();
                IItem itemz = null;
                CashItem rewardItem = null;
    
                if (reward.length > 0) {
    
                    int Maternal = 0;
                    int A = 0;
                    for (var i = 0; i < reward.length; i++) {
                        Maternal += reward[i][1];
                    }
                    int choose = Randomizer.rand(1, Maternal);
                    int index = -1;
                    for (var i = 0; i < reward.length; i++) {
                        int B = A;
                        A += reward[i][1];
                        if (choose >= B && choose <= A) {
                            index = i;
                            break;
                        }
                    }
                    int itemid = reward[index][0];
                    if (MapleItemInformationProvider.getInstance().itemExists(itemid)) {
                        itemz = (GameConstants.getInventoryType(itemid) == MapleInventoryType.EQUIP) ? MapleItemInformationProvider.getInstance().getEquipById(itemid) : new Item(itemid, (short) 0, (short) 1, (byte) 0);
                    }
    
                }

    至於 NpcSetConstants.XMAXS_SURPRISE 這個則由腳本的方式載入保箱內容物 這樣就搞定了。



    专注于GMS研究,有偿调试架设,全网最低,公益群:915210346。
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2024-8-25 05:19
  • 签到天数: 5 天

    [LV.2]偶尔看看I

    4

    主题

    65

    回帖

    347

    积分

    中级会员

    Rank: 3Rank: 3

    积分
    347
    发表于 2024-4-4 03:05:48 | 显示全部楼层
    22222222222222222222222
    回复

    使用道具 举报

  • TA的每日心情
    奋斗
    2024-6-28 07:37
  • 签到天数: 10 天

    [LV.3]偶尔看看II

    2

    主题

    66

    回帖

    71

    积分

    注册会员

    Rank: 2

    积分
    71
    发表于 2024-6-19 18:12:44 | 显示全部楼层

    666666666666666
    回复

    使用道具 举报

  • TA的每日心情
    慵懒
    2024-7-4 11:28
  • 签到天数: 6 天

    [LV.2]偶尔看看I

    0

    主题

    55

    回帖

    168

    积分

    注册会员

    Rank: 2

    积分
    168
    发表于 2024-6-29 07:46:51 | 显示全部楼层
    666666666666666666666
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    快速回复 返回顶部 返回列表