2014年5月20日 星期二

新增連點武防捲

新增連點武防捲

首先先在資料庫新增數筆新物品資料
以我的做範例
40783    +9連衝的對武器施法的卷軸    scroll    0    normal    paper    0    1500000    1    468    22        0    0    0    0    0    0    0    0    0    0
40784    +8連衝的對武器施法的卷軸    scroll    0    normal    paper    0    1500000    1    468    22        0    0    0    0    0    0    0    0    0    0
40785    +7連衝的對武器施法的卷軸    scroll    0    normal    paper    0    1500000    1    468    22        0    0    0    0    0    0    0    0    0    0
40786    +6連衝的對武器施法的卷軸    scroll    0    normal    paper    0    1500000    1    468    22        0    0    0    0    0    0    0    0    0    0
40787    +5連衝的對武器施法的卷軸    scroll    0    normal    paper    0    1500000    1    468    22        0    0    0    0    0    0    0    0    0    0  
40788    +4連衝的對武器施法的卷軸    scroll    0    normal    paper    0    1500000    1    468    22        0    0    0    0    0    0    0    0    0    0
40789    +9連衝的對盔甲施法的卷軸    scroll    0    normal    paper    0    1500000    1    468    22        0    0    0    0    0    0    0    0    0    0
40790    +8連衝的對盔甲施法的卷軸    scroll    0    normal    paper    0    1500000    1    468    22        0    0    0    0    0    0    0    0    0    0  
40791    +7連衝的對盔甲施法的卷軸    scroll    0    normal    paper    0    1500000    1    468    22        0    0    0    0    0    0    0    0    0    0
40792    +6連衝的對盔甲施法的卷軸    scroll    0    normal    paper    0    1500000    1    468    22        0    0    0    0    0    0    0    0    0    0  
40793    +5連衝的對盔甲施法的卷軸    scroll    0    normal    paper    0    1500000    1    468    22        0    0    0    0    0    0    0    0    0    0
40794    +4連衝的對盔甲施法的卷軸    scroll    0    normal    paper    0    1500000    1    468    22        0    0    0    0    0    0    0    0    0    0
首先先修改C_RequestItemUSe
找到
else if (k == 40074 || k == 40087 || k == 40126 || k == 40767
                || k == 40768 || k == 40769 || k == 40770 || k == 40007
                || k == 40008)
                l = readD();
在判斷式中加入所新增的物品編號
在來是修改武防捲部份,就用連衝武捲為例
我用的方法是複製武捲在修改,如看得懂的可以直接在武捲上面的判斷是新增編號然後在程式中修改就好
防捲也用此方法
//          連衝武捲修改 ////////////////////////////////Start///////////////////////////////
if (k >= 40783 && k <= 40788) // 武器強化?????
                {
                        int ItemLvUp;
                        
                        ItemLvUp = 40783-k+9; //強化次數判斷
                        
                        if (l1iteminstance1 != null        && l1iteminstance1.getItem().getType2() == 1) 
                        {
                                for (int LvUpTimes = 1; LvUpTimes <= ItemLvUp; LvUpTimes++)
                                {
                            int i1 = l1iteminstance1.getItem().getItemId();
                            int k2 = l1iteminstance1.getItem().getType2();
                            int j5 = l1iteminstance1.getItem().get_safeenchant();
                            int k6 = l1iteminstance1.getIsid();
                            String s1 = l1iteminstance1.get_itemnameid();
                            String pm = "";
                            if (i1 == 67 || i1 == 68) //判斷是否為古劍、古巨
                                l1pcinstance.sendPackets(new S_ServerMessage(79, ""));
                            else if (k2 == 1) {
                            if (l1iteminstance1.getEnchantLevel() < j5) {
                                    SuccessEnchant(l1pcinstance, l1iteminstance1,clientthread, 1);
                                } else {
                                    int i8 = L1Character.getRnd().nextInt(100) + 1;
                                    int i9 = Config.ENCHANT_CHANCE_WEAPON;
                                    if (i8 < i9 && l1iteminstance1.getEnchantLevel() < 16) {
                                                SuccessEnchant(l1pcinstance, l1iteminstance1,clientthread, 1);        
                                    } else if (i8 > i9 || l1iteminstance1.getEnchantLevel() >= 16) {
                                        FailureEnchant(l1pcinstance, l1iteminstance1,clientthread);
                                        LvUpTimes=10; //強制取消強化
                                    } else {
                                        String s3 = "";
                                        if (k6 == 0        || l1iteminstance.getEnchantLevel() == 0)
                                            l1pcinstance.sendPackets(new S_ServerMessage(160, s1, "$245", "$248")); 
                                        else {
                                            if (l1iteminstance.getEnchantLevel() > 0)
                                                pm = "+";
                                            s3 = (new StringBuilder()).append(pm + l1iteminstance1.getEnchantLevel()).append(" ").append(s1).toString(); 
                                            l1pcinstance.sendPackets(new S_ServerMessage(160, s3, "$245", "$248")); 
                                        }
                                    }
                                }
                            } else {
                                l1pcinstance.sendPackets(new S_ServerMessage(79, ""));
                            }
                                }
                        } else {
                    l1pcinstance.sendPackets(new S_ServerMessage(79, ""));
                        }
                if (l1iteminstance1.getItem().getType2() == 1) l1pcinstance.getInventory().removeItem(l1iteminstance, 1);
}
//                修改結束      /////////////////////////////////End///////////////////////////////////

在找到S_SendInvOnLogin裡的
switch (i1) {
在下面新增
        case 40783:        //+9                // 連衝+4~+9武捲
        case 40784:        //+8
                case 40785:        //+7
                case 40786:        //+6
                case 40787:        //+5
                case 40788:        //+4
                    writeC(26);
                    break;
                  
                
                case 40789:        //+9                // 連衝+4~+9防捲
                case 40790:        //+8
                case 40791:        //+7
                case 40792:        //+6
                case 40793:        //+5
                case 40794:        //+4
                    writeC(27);
                    break;
最後找到S_InvList裡的
switch (k) {
              
case 40783:        //+9                // 連衝+4~+9武捲
                case 40784:        //+8
                case 40785:        //+7
                case 40786:        //+6
                case 40787:        //+5
                case 40788:        //+4
                    writeC(26);
                    break;
                  
                
                case 40789:        //+9                // 連衝+4~+9防捲
                case 40790:        //+8
                case 40791:        //+7
                case 40792:        //+6
                case 40793:        //+5
                case 40794:        //+4
                    writeC(27);
                    break;
不用懷疑!!就是那麼簡單  

沒有留言:

張貼留言