[KT] Nâng cấp giáp ấn
Hello & Welcome to our community. Is this your first visit? Đăng Ký
Follow us on
Follow us on Facebook Follow us on Twitter Linked In Flickr Watch us on YouTube My Space Blogger
 
Trang 1 của 2 1 2 CuốiCuối
Kết quả 1 đến 10 của 14

Chủ đề: Nâng cấp giáp ấn

  1. #1
    Thành Viên
    Ngày tham gia
    Jul 2014
    Bài viết
    5
    Thanks
    3
    Thanked 0 Times in 0 Posts

    Nâng cấp giáp ấn

    Các cậu ơi cho mình hỏi, Luân hồi ấn có thể nâng cấp lên 1500 nhưng mình chỉ nâng cấp lên được có 1000. Vậy các cậu cho mình hỏi là muốn nâng cấp lên 1500 thì phải fix như thế nào? thanks!
    Khách viếng thăm hãy cùng co_do xây dựng diễn đàn CLBGAMESVN vững mạnh nhé!

  2. #2
    ✎﹏ Nà Ní Team ❖ ︻╦╤─ ҉ - na.ilusm89's Avatar
    Ngày tham gia
    May 2012
    Bài viết
    1,084
    Thanks
    99
    Thanked 707 Times in 402 Posts

    Ðề: Nâng cấp giáp ấn

    Trích dẫn Gửi bởi co_do [Only registered and activated users can see links. ]
    Các cậu ơi cho mình hỏi, Luân hồi ấn có thể nâng cấp lên 1500 nhưng mình chỉ nâng cấp lên được có 1000. Vậy các cậu cho mình hỏi là muốn nâng cấp lên 1500 thì phải fix như thế nào? thanks!
    file trong dã luyện đại sư chưa xem nhưng cường hóa bằng Lệnh này thì lên được


    function tbGMCard:UpWuXingYin2(nMagicIndex)
    local pSignet = me.GetItem(Item.ROOM_EQUIP,Item.EQUIPPOS_SIGNET, 0);
    if not pSignet then
    Dialog:Say("Thăng cấp thành công.");
    return 0;
    end
    local nLevel = pSignet.GetGenInfo(nMagicIndex * 2 - 1, 0);
    if nLevel >= 1500 then
    Dialog:Say("Luân Hồi Ấn đã thăng cấp tối đa.");
    return 0;
    end
    nLevel = nLevel + 1500;
    if nLevel > 1500 then
    nLevel = 1500;
    end
    Item:SetSignetMagic(pSignet, nMagicIndex, nLevel, 0);
    Dialog:Say("Chúc mừng bạn Thăng cấp Luân Hồi Ấn Thành công");
    end
    ℵóα

  3. Các thành viên gởi lời cảm ơn đến na.ilusm89 vì bài viết này !

    co_do (02-08-14)

  4. #3
    Thành Viên Tâm Huyết satthupro95's Avatar
    Ngày tham gia
    Jan 2012
    Bài viết
    2,394
    Thanks
    2,566
    Thanked 1,825 Times in 868 Posts

    Ðề: Nâng cấp giáp ấn

    Khai báo thêm ở đây \setting\item\001\extern\signet\levelsetting.txt đủ 1500 hoặc thêm nữa tùy bạn
    Khách viếng thăm hãy cùng satthupro95 xây dựng diễn đàn CLBGAMESVN vững mạnh nhé!

  5. Các thành viên gởi lời cảm ơn đến satthupro95 vì bài viết này !

    co_do (02-08-14)

  6. #4
    Thành Viên Tâm Huyết __Jie__'s Avatar
    Ngày tham gia
    Sep 2008
    Bài viết
    1,314
    Thanks
    256
    Thanked 738 Times in 558 Posts

    Ðề: Nâng cấp giáp ấn

    Tớ có thể làm cho 2.6 phân biệt 2 cấp bậc
    Ngũ Hành Ấn chỉ đến 1000
    Luân Hôi Ấn - Lôi Đình 1500
    Cần thì hú yahoo
    Nhận viết sự kiện Kiếm Thế PC - Kiếm Thế Mobile
    Bishop check pass 100% kiếm thế win
    Web: [Only registered and activated users can see links. ]

  7. #5
    Thành Viên mrkutepro's Avatar
    Ngày tham gia
    Apr 2012
    Đang ở
    SafeZone
    Bài viết
    523
    Thanks
    82
    Thanked 248 Times in 125 Posts

    Ðề: Nâng cấp giáp ấn

    Trích dẫn Gửi bởi __Jie__ [Only registered and activated users can see links. ]
    Tớ có thể làm cho 2.6 phân biệt 2 cấp bậc
    Ngũ Hành Ấn chỉ đến 1000
    Luân Hôi Ấn - Lôi Đình 1500
    Cần thì hú yahoo
    hú này hú chia sẻ hay thu phí vậy
    Khách viếng thăm hãy cùng mrkutepro xây dựng diễn đàn CLBGAMESVN vững mạnh nhé!

  8. #6
    Thành Viên dothieuxuyen's Avatar
    Ngày tham gia
    Mar 2014
    Bài viết
    58
    Thanks
    68
    Thanked 8 Times in 8 Posts

    Icon1 Ðề: Nâng cấp giáp ấn

    Trích dẫn Gửi bởi __Jie__ [Only registered and activated users can see links. ]
    Tớ có thể làm cho 2.6 phân biệt 2 cấp bậc
    Ngũ Hành Ấn chỉ đến 1000
    Luân Hôi Ấn - Lôi Đình 1500
    Cần thì hú yahoo
    Nếu bạn chia sẽ thi cho mình xin , vì mình chơi cho vui . cám ơn trước .
    Khách viếng thăm hãy cùng dothieuxuyen xây dựng diễn đàn CLBGAMESVN vững mạnh nhé!

  9. #7
    Thành Viên Tâm Huyết __Jie__'s Avatar
    Ngày tham gia
    Sep 2008
    Bài viết
    1,314
    Thanks
    256
    Thanked 738 Times in 558 Posts

    Ðề: Nâng cấp giáp ấn

    Không có gì khó chủ yếu là có chịu vọc không
    Tải 1 server linux bất kì về bản của mụ toại cũng được
    Tìm các thông tin liên quan đến Ấn Giáp là được
    Xem và đối chiếu giữa 2.6 và Linux khác nhau gì
    Gợi ý nLevel
    Nhận viết sự kiện Kiếm Thế PC - Kiếm Thế Mobile
    Bishop check pass 100% kiếm thế win
    Web: [Only registered and activated users can see links. ]

  10. #8
    Thành Viên
    Ngày tham gia
    Oct 2009
    Bài viết
    423
    Thanks
    80
    Thanked 118 Times in 44 Posts

    Ðề: Nâng cấp giáp ấn

    Trích dẫn Gửi bởi __Jie__ [Only registered and activated users can see links. ]
    Tớ có thể làm cho 2.6 phân biệt 2 cấp bậc
    Ngũ Hành Ấn chỉ đến 1000
    Luân Hôi Ấn - Lôi Đình 1500
    Cần thì hú yahoo
    Cường ấn ở ông dã luyện lên từ từ bằng ngũ hành hồn thạch hay 1 phát lên 1500 luôn ?
    Khách viếng thăm hãy cùng OsinLove xây dựng diễn đàn CLBGAMESVN vững mạnh nhé!

  11. #9
    Thành Viên mrkutepro's Avatar
    Ngày tham gia
    Apr 2012
    Đang ở
    SafeZone
    Bài viết
    523
    Thanks
    82
    Thanked 248 Times in 125 Posts

    Ðề: Nâng cấp giáp ấn

    Thôi thì em toạch ra đây cho các bác vậy, chả có gì gọi là to tát cả

    mờ file \ui\script\window\equipenhance.lua

    tìm tới hàm có tên:

    PHP Code:
    function uiEquipEnhance:UpdateUpgrade(pEquip
    dùng chức năng search của notepadd ++ mà tìm

    tiếp đó dưới đoạn này trong hàm vừa tìm

    PHP Code:
    if not pEquip then
            Txt_SetTxt
    (self.UIGROUPTXT_MESSAGE"◆Bỏ Ấn giám vào ô trên!");
            return;
        
    end 
    chèn thêm 1 đoạn code

    PHP Code:
    Item.tbMAX_SIGNET_LEVEL    =
        {
            [
    1] = 1000
            [
    2] = 1500,
        }
        
    Item.MAX_SIGNET_LEVEL Item.tbMAX_SIGNET_LEVEL[pEquip.nLevel or 1]; 
    xong lưu lại, chạy lại game.exe là ép ấn lên 1500 bình thường, không phải lôi thôi rách việc

    Còn đây là toàn bộ file của em, bác nào thích thì rinh về

    PHP Code:
    -----------------------------------------------------
    --
    τݾĻ        ú    uiEquipEnhance.lua
    --Դݨ֟        ú    tongxuehu@kingsoft.com
    --Դݨʱݤ        ú    2008-03-05
    --٦ŜĨ˶        ú    װѸǿۯ/ѾާѾkާĦ
    ------------------------------------------------------

    local uiEquipEnhance     Ui:GetClass("equipenhance");
    local tbObject           Ui.tbLogic.tbObject;
    local tbMouse            Ui.tbLogic.tbMouse;
    local tbTempItem         Ui.tbLogic.tbTempItem;

    local TXT_TITLE            "TxtTitle";
    local TXT_MESSAGE        "TxtMessage";
    local BTN_CONFIRM        "BtnOk";
    local BTN_CLOSE            "BtnClose";
    local BTN_CANCEL        "BtnCancel";
    local IMG_EFFECT        "ImgEffect";
    local OBJ_EQUIP            "ObjEquip";
    local OBJ_ENHITEM        "ObjEnhItem";
    local OBJ_PREVIEW        "ObjPreview";
    local OBJ_PRE_REFINE    "ObjPreRefine";
    local LIST_MAGIC_SELECT "LstMagicSelect";

    local PREVIEW_WIDTH        4;
    local PREVIEW_HEIGHT    4;

    local ENHITEM_CLASS        "xuanjing";        -- ǿۯրߟ`эúѾާ
    local ENHITEM_INDEX        = { nGenre = Item.SCRIPTITEM, nDetail = 1, nParticular = 114 };    -- Ѿާ

    local MODE_TEXT = 

        [Item.ENHANCE_MODE_ENHANCE]     = "Cường hóa trang bị", 
        [Item.ENHANCE_MODE_PEEL]         = "Tách Huyền Tinh", 
        [Item.ENHANCE_MODE_COMPOSE]         = "Ghép Huyền Tinh",
        [Item.ENHANCE_MODE_UPGRADE]     = "Tăng cấp Ấn giám",
        [Item.ENHANCE_MODE_REFINE]        = "Luyện trang bị",
        [Item.ENHANCE_MODE_STRENGTHEN]     = "Sửa trang bị",
    };

    function uiEquipEnhance:Init()
        self.nMode                  = Item.ENHANCE_MODE_NONE;
        self.tbTempItem           = {};
        self.bShowBindMsg        = 0;
        self.bShowTimeMsg        = 0;
        self.nMoneyEnoughFlag     = 0;
        self.bShowWarnning         = 1;
        -- by zhangjinpin@kingsoft
        self.bShowLowForbidden     = 0;
        self.bShowHighForbidden = 0;
    end

    local tbEquipCont     = { bUse = 0, nRoom = Item.ROOM_ENHANCE_EQUIP, bSendToGift = 1 };
    local tbEnhItemCont = { bUse = 0, nRoom = Item.ROOM_ENHANCE_ITEM, bSendToGift = 1 };
    local tbPreviewCont = { bUse = 0, bLink = 0, bSwitch = 0, bShowCd = 0, bSendToGift = 1 };
    local tbPreRefineCont = { bUse = 0, bLink = 0, bSwitch = 0, bShowCd = 0, bSendToGift = 1 };

    function tbEquipCont:CheckSwitchItem(pDrop, pPick, nX, nY)
        
        Ui(Ui.UI_EQUIPENHANCE):UpdateList(pDrop);
        if (not pDrop) then
            return    1;                -- ֻˇё֫ϷŃԶ4ì؜ˇԉ٦
        end

        if (self.nMode == Item.ENHANCE_MODE_COMPOSE) then
            me.Msg("Ghép Huyền Tinh, không được để gì vào ô này!");
            return 0;
        end
        
        if (1 ~= pDrop.IsEquip()) then
            me.Msg("Chỉ được bỏ trang bị cần " .. MODE_TEXT[self.nMode] .. " vào!");
            return    0;
        end

        if (self.nMode == Item.ENHANCE_MODE_ENHANCE) then        -- ԦԚǿۯәط״̬
            if (1 == pDrop.IsWhite()) then
                me.Msg("Vật phẩm này không thể cường hóa!");
                return    0;
            end
            if (pDrop.nEnhTimes >= Item:CalcMaxEnhanceTimes(pDrop)) then
                me.Msg("Trang bị đã cường hóa tối đa!");
                return    0;
            end
            if (pDrop.nDetail < Item.MIN_COMMON_EQUIP) or (pDrop.nDetail > Item.MAX_COMMON_EQUIP) then
                me.Msg("Chỉ cường hóa trang bị kích hoạt ngũ hành!");
                return 0;
            end
        elseif (self.nMode == Item.ENHANCE_MODE_PEEL) then        -- ԦԚѾkәط״̬
            if (1 == pDrop.IsWhite()) then
                me.Msg("Không thể tách vật phẩm này!");
                return    0;
            end
            if (pDrop.nEnhTimes <= 0) then
                me.Msg("Không thể tách vật phẩm chưa cường hóa!");
                return    0;
            end
            if (pDrop.nDetail < Item.MIN_COMMON_EQUIP) or (pDrop.nDetail > Item.MAX_COMMON_EQUIP) then
                me.Msg("Chỉ tách trang bị kích hoạt ngũ hành!");
                return    0;
            end
        elseif (self.nMode == Item.ENHANCE_MODE_UPGRADE) then
            if (pDrop.nDetail ~= Item.EQUIP_SIGNET) then
                me.Msg("Chỉ được bỏ vào Ấn giám để thăng cấp")
                return 0;
            end
        elseif (self.nMode == Item.ENHANCE_MODE_STRENGTHEN) then
            if (1 == pDrop.IsWhite()) then
                me.Msg("Vật phẩm này không thể sửa!");
                return    0;
            end
            if (pDrop.nEnhTimes <= 0) then
                me.Msg("Trang bị chưa cường hóa không thể sửa!");
                return    0;
            end
            if (pDrop.nDetail < Item.MIN_COMMON_EQUIP) or (pDrop.nDetail > Item.MAX_COMMON_EQUIP) then
                me.Msg("Chỉ sửa trang bị đã kích hoạt ngũ hành!");
                return    0;
            end
        end
        return    1;

    end

    function tbEnhItemCont:CheckSwitchItem(pDrop, pPick, nX, nY)
        if (not pDrop) then
            return    1;                -- ֻˇё֫ϷŃԶ4ì؜ˇԉ٦
        end
        local tbEnhUi = Ui(Ui.UI_EQUIPENHANCE);
        if (tbEnhUi.nMode == Item.ENHANCE_MODE_REFINE) then
            return 1;
        end
        if (tbEnhUi.nMode == Item.ENHANCE_MODE_STRENGTHEN) then
            if (pDrop.szClass == Item.STRENGTHEN_STUFF_CLASS) or (Item.STRENGTHEN_RECIPE_CALSS[pDrop.szClass]) then
                    return 1;
            else
                me.Msg("Chỉ được bỏ vào Huyền Tinh hoặc Bùa sửa");
                return 0;
            end
        end
        if (pDrop.szClass == Item.UPGRADE_ITEM_CLASS and tbEnhUi.nMode == Item.ENHANCE_MODE_UPGRADE) then
            return 1;
        elseif (tbEnhUi.nMode == Item.ENHANCE_MODE_UPGRADE) then
            me.Msg("Chỉ được bỏ Hồn Thạch")
            return 0;
        end
        if (pDrop.szClass ~= ENHITEM_CLASS) then
            me.Msg("Chỉ được bỏ Huyền Tinh cần thiết!");
            return    0;
        end
        if (tbEnhUi.nMode == Item.ENHANCE_MODE_COMPOSE) then
            if (pDrop.nLevel >= 12) then
                me.Msg("Chỉ được hợp thành Huyền Tinh dưới cấp 12");
                return 0;
            end
        end
        
        return    1;
    end

    function tbPreviewCont:FormatItem(tbItem)
        local tbObj = {};
        local pItem = tbItem.pItem;
        if not pItem then
            return;
        end
        tbObj.szBgImage = pItem.szIconImage;
        tbObj.bShowSubScript = 1;        -- ؜ДʾЂҪ˽ؖ
        return tbObj;
    end

    function tbPreviewCont:UpdateItem(tbItem, nX, nY)
        local pItem = tbItem.pItem;
        local nCount = self.tbEnhItem[pItem.nLevel];
        ObjGrid_ChangeSubScript(self.szUiGroup, self.szObjGrid, tostring(nCount), nX, nY);
        local nColor = (me.CanUseItem(pItem) ~= 1) and 0x60ff0000 or 0;
        ObjGrid_ChangeBgColor(self.szUiGroup, self.szObjGrid, nColor, nX, nY);
        ObjGrid_SetTransparency(self.szUiGroup, self.szObjGrid, pItem.szTransparencyIcon, nX, nY);
    end

    function uiEquipEnhance:OnCreate()
        self.tbEquipCont = tbObject:RegisterContainer(
            self.UIGROUP,
            OBJ_EQUIP,
            Item.ROOM_ENHANCE_EQUIP_WIDTH,
            Item.ROOM_ENHANCE_EQUIP_HEIGHT,
            tbEquipCont,
            "itemroom"
        );
        self.tbEnhItemCont = tbObject:RegisterContainer(
            self.UIGROUP,
            OBJ_ENHITEM,
            Item.ROOM_ENHANCE_ITEM_WIDTH,
            Item.ROOM_ENHANCE_ITEM_HEIGHT,
            tbEnhItemCont,
            "itemroom"
        );
        self.tbPreviewCont = tbObject:RegisterContainer(
            self.UIGROUP,
            OBJ_PREVIEW,
            PREVIEW_WIDTH,
            PREVIEW_HEIGHT,
            tbPreviewCont
        );
        self.tbPreRefineCont = tbObject:RegisterContainer(
            self.UIGROUP,
            OBJ_PRE_REFINE,
            1,1, tbPreRefineCont
        );
    end

    function uiEquipEnhance:OnDestroy()
        tbObject:UnregContainer(self.tbEquipCont);
        tbObject:UnregContainer(self.tbEnhItemCont);
        tbObject:UnregContainer(self.tbPreviewCont);
    end

    function uiEquipEnhance:OnOpen(nMode, nMoneyType)
        if nMode == Item.ENHANCE_MODE_ENHANCE then
            UiManager:SetUiState(UiManager.UIS_EQUIP_ENHANCE);
            Wnd_Show(self.UIGROUP, OBJ_EQUIP);
            Wnd_Show(self.UIGROUP, OBJ_ENHITEM);
        elseif nMode == Item.ENHANCE_MODE_PEEL then
            UiManager:SetUiState(UiManager.UIS_EQUIP_PEEL);
            Wnd_Show(self.UIGROUP, OBJ_EQUIP);
            Wnd_Show(self.UIGROUP, OBJ_PREVIEW);
        elseif nMode == Item.ENHANCE_MODE_COMPOSE then
            UiManager:SetUiState(UiManager.UIS_EQUIP_COMPOSE);
            Wnd_Show(self.UIGROUP, OBJ_EQUIP);
            Wnd_Show(self.UIGROUP, OBJ_ENHITEM);
        elseif nMode == Item.ENHANCE_MODE_UPGRADE then
            UiManager:SetUiState(UiManager.UIS_EQUIP_UPGRADE);
            Wnd_Show(self.UIGROUP, OBJ_EQUIP);
            Wnd_Show(self.UIGROUP, OBJ_ENHITEM);
        elseif nMode == Item.ENHANCE_MODE_REFINE then
            UiManager:SetUiState(UiManager.UIS_EQUIP_REFINE);
            Wnd_Show(self.UIGROUP, OBJ_PRE_REFINE)
            Wnd_Show(self.UIGROUP, OBJ_ENHITEM);
        elseif nMode == Item.ENHANCE_MODE_STRENGTHEN then
            UiManager:SetUiState(UiManager.UIS_EQUIP_STRENGTHEN);
            Wnd_Show(self.UIGROUP, OBJ_EQUIP);
            Wnd_Show(self.UIGROUP, OBJ_ENHITEM);
        else
            return 0;
        end
        UiManager:OpenWindow(Ui.UI_ITEMBOX);
        Txt_SetTxt(self.UIGROUP, TXT_TITLE, MODE_TEXT[nMode]);
        self.nMode = nMode;
        self.nMoneyType = nMoneyType;
        self.tbEquipCont.nMode = nMode;
        self:UpdateItem();
        self:UpdateList();
    end

    function uiEquipEnhance:OnClose()
        me.ApplyEnhance(Item.ENHANCE_MODE_NONE, 0);        -- ֪ͨؾϱ׋ȡлǿۯ/Ѿkәط
        self.tbEquipCont:ClearRoom();
        self.tbEnhItemCont:ClearRoom();
        self.tbPreviewCont:ClearObj();
        if self.nMode == Item.ENHANCE_MODE_ENHANCE then
            UiManager:ReleaseUiState(UiManager.UIS_EQUIP_ENHANCE);
        elseif self.nMode == Item.ENHANCE_MODE_PEEL then
            UiManager:ReleaseUiState(UiManager.UIS_EQUIP_PEEL);
        elseif self.nMode == Item.ENHANCE_MODE_COMPOSE then
            UiManager:ReleaseUiState(UiManager.UIS_EQUIP_COMPOSE);
        elseif self.nMode == Item.ENHANCE_MODE_UPGRADE then
            UiManager:ReleaseUiState(UiManager.UIS_EQUIP_UPGRADE);
        elseif self.nMode == Item.ENHANCE_MODE_REFINE then
            UiManager:ReleaseUiState(UiManager.UIS_EQUIP_REFINE);
        elseif self.nMode == Item.ENHANCE_MODE_STRENGTHEN then
            UiManager:ReleaseUiState(UiManager.UIS_EQUIP_STRENGTHEN);    
        end
        Lst_Clear(self.UIGROUP, LIST_MAGIC_SELECT);
        self.nRefineSelected = nil;
        self.pEquip = nil;
        self:DeleteTempAllStuff();
    end

    function uiEquipEnhance:UpdateList(pEquip)
        if pEquip and self.nMode == Item.ENHANCE_MODE_UPGRADE then
            local tbAttrib = pEquip.GetBaseAttrib();
            Lst_Clear(self.UIGROUP, LIST_MAGIC_SELECT);
            for i, tbMA in ipairs(tbAttrib) do
                local szDesc = FightSkill:GetMagicDesc(tbAttrib[i].szName, tbAttrib[i].tbValue, nil, 1);
                if szDesc ~= "" then
                    Lst_SetCell(self.UIGROUP, LIST_MAGIC_SELECT, i, 1, szDesc);
                end
            end
        elseif self.tbProduce and self.tbTempItem and self.nMode == Item.ENHANCE_MODE_REFINE then
            for i, pItem in pairs(self.tbTempItem) do
                Lst_SetCell(self.UIGROUP, LIST_MAGIC_SELECT, i, 1, pItem.szName);
            end
        else
            Lst_Clear(self.UIGROUP, LIST_MAGIC_SELECT);
        end
    end

    function uiEquipEnhance:OnListSel(szWnd, nParam)
        if nParam <= 0 then
            return;
        end
        if szWnd == LIST_MAGIC_SELECT then
            if self.nMode == Item.ENHANCE_MODE_UPGRADE then
                self:UpdateItem();
            elseif self.nMode == Item.ENHANCE_MODE_REFINE then            
                local nIndex = 1;
                if self.tbProduce and #self.tbProduce > 1 then
                    nIndex = Lst_GetCurKey(self.UIGROUP, LIST_MAGIC_SELECT);
                    if nIndex == 0 or not self.tbProduce or not self.tbProduce[nIndex] then
                        return 0;
                    end
                    self.nRefineSelected = nIndex;
                end    
                self:UpdateRefinePreview(nParam);
            end
        end
    end

    function uiEquipEnhance:OnButtonClick(szWnd, nParam)
        if (szWnd == BTN_CONFIRM) then
            if self.nMoneyEnoughFlag == 0 then
                local szMoney = ""
                if self.nMoneyType == Item.BIND_MONEY and self.nMode ~= Item.ENHANCE_MODE_PEEL then
                    szMoney = "Bạc khóa"
                else
                    szMoney = "Bạc"
                end
                
                me.Msg("Không đủ "..szMoney.." để trả phí " .. MODE_TEXT[self.nMode] .. ", không thể tiến hành" .. MODE_TEXT[self.nMode] .. ".");
                return;    
            -- նݓһࠉǿۯքƐ֨͡ʾúby zhangjinpin@kingsoft
            elseif ((self.bShowHighForbidden == 1 or self.bShowLowForbidden == 1) and self.nMode == Item.ENHANCE_MODE_ENHANCE) then
                local tbMsg = {};
                tbMsg.szMsg = "";
                if self.bShowHighForbidden == 1 and self.nMode == Item.ENHANCE_MODE_ENHANCE then
                    tbMsg.szMsg = "Bạn đã đặt vào quá nhiều Huyền Tinh. Xin đừng lãng phí!";
                elseif self.bShowLowForbidden == 1 and self.nMode == Item.ENHANCE_MODE_ENHANCE then
                    tbMsg.szMsg = "Tỷ lệ cường hóa thành công quá thấp, không thể cường hóa";
                end
                tbMsg.nOptCount = 1;
                UiManager:OpenWindow(Ui.UI_MSGBOX, tbMsg, self.nMode, self.nMoneyType);
            elseif (self.bShowBindMsg == 1 or (self.bShowWarnning == 1 and self.nMode == Item.ENHANCE_MODE_ENHANCE)) then
                local tbMsg = {};
                local szReason = ""
                tbMsg.szMsg = "";
                if self.bShowWarnning == 1 and self.nMode == Item.ENHANCE_MODE_ENHANCE then
                    tbMsg.szMsg = "Tỷ lệ <color=red>cường hóa chưa đạt 100%<color>,";
                end
                if self.bShowBindMsg == 1 then
                    if (self.nMoneyType == Item.BIND_MONEY) then
                        szReason = "Bạc khóa";
                    else
                        szReason = "Huyền Tinh khóa";
                    end
                    if (self.nMode == Item.ENHANCE_MODE_ENHANCE) then
                        tbMsg.szMsg = tbMsg.szMsg..string.format("Dùng <color=red>%s<color> cường hóa, trang bị sẽ <color=red>khóa<color> với nhân vật,", szReason);
                    elseif (self.nMode == Item.ENHANCE_MODE_COMPOSE) then
                        tbMsg.szMsg = tbMsg.szMsg..string.format("Bạn đã sử dụng <color=red>%s<color> hợp thành Huyền Tinh, Huyền Tinh sau khi hợp thành sẽ <color=red>khóa<color>, ", szReason);
                    elseif (self.nMode == Item.ENHANCE_MODE_STRENGTHEN) then
                        tbMsg.szMsg = tbMsg.szMsg..string.format("Dùng <color=red>%s<color> sửa trang bị, trang bị đã <color=red>khóa<color>, ", szReason);
                    end
                    
                end
                tbMsg.szMsg = tbMsg.szMsg.." tiếp tục không?"
                tbMsg.nOptCount = 2;
                function tbMsg:Callback(nOptIndex, nMode, nMoneyType, nProb)
                    if (nOptIndex == 2) then
                        me.ApplyEnhance(nMode, nMoneyType, (nProb or 0));
                    end
                end
                UiManager:OpenWindow(Ui.UI_MSGBOX, tbMsg, self.nMode, self.nMoneyType, self.nProb);
            elseif self.nMode == Item.ENHANCE_MODE_UPGRADE then
                local nMagicIndex = Lst_GetCurKey(self.UIGROUP, LIST_MAGIC_SELECT);
                if nMagicIndex == 0 then
                    return 0;
                end
                me.ApplyUpgradeSignet(nMagicIndex, self.nMoneyType);
            elseif self.nMode == Item.ENHANCE_MODE_REFINE then
                local nIndex = 1;
                if self.tbProduce and #self.tbProduce > 1 then
                    nIndex = Lst_GetCurKey(self.UIGROUP, LIST_MAGIC_SELECT);
                    if nIndex == 0 or not self.tbProduce or not self.tbProduce[nIndex] then
                        return 0;
                    end
                end
                local szMsg = "Trang bị sau khi luyện sẽ <color=green>khóa với nhân vật<color>, tiếp tục luyện không?";    
                self:UpdateMoneyFlag(self.tbProduce[nIndex].nFee + Item:CalcRefineMoney(self.pEquip))        
                if (self.nMoneyEnoughFlag == 1) then
                    szMsg ="<color=red>Dùng bạc để thay thế số bạc khóa không đủ,<color>"..szMsg;
                end
                
                local tbMsg = {};
                tbMsg.szMsg = szMsg;
                tbMsg.nOptCount = 2;
                function tbMsg:Callback(nOptIndex, nIdx)
                    if (nOptIndex == 2) then
                        me.ApplyRefine(nIdx);
                    end
                end
                UiManager:OpenWindow(Ui.UI_MSGBOX, tbMsg, self.tbProduce[nIndex].nIdx);
            elseif self.nMode == Item.ENHANCE_MODE_ENHANCE then
                me.ApplyEnhance(self.nMode, self.nMoneyType, (self.nProb or 0));
            elseif self.nMode == Item.ENHANCE_MODE_STRENGTHEN then
                local tbMsg = {};
                tbMsg.szMsg = "";
                if self.bShowHighForbidden == 1  then
                    tbMsg.szMsg = "Bạn đã đặt vào quá nhiều Huyền Tinh. Xin đừng lãng phí!";
                    tbMsg.nOptCount = 1;
                    UiManager:OpenWindow(Ui.UI_MSGBOX, tbMsg, self.nMode, self.nMoneyType);
                elseif (self.bShowBindMsg == 1) then
                    local tbMsg = {};
                    local szReason = ""
                    tbMsg.szMsg = "";
                    if (self.nMoneyType == Item.BIND_MONEY) then
                        szReason = "Bạc khóa";
                    else
                        szReason = "Huyền Tinh khóa";
                    end
                        
                    tbMsg.szMsg = tbMsg.szMsg..string.format("Dùng <color=red>%s<color> sửa trang bị, trang bị đã <color=red>khóa<color>, ", szReason);
        
                    tbMsg.szMsg = tbMsg.szMsg.." tiếp tục không?"
                    tbMsg.nOptCount = 2;
                    function tbMsg:Callback(nOptIndex, nMode, nMoneyType, nProb)
                        if (nOptIndex == 2) then
                            me.ApplyEnhance(nMode, nMoneyType, (nProb or 0));
                        end
                    end
                    UiManager:OpenWindow(Ui.UI_MSGBOX, tbMsg, self.nMode, self.nMoneyType, self.nProb);
                end
                me.ApplyEnhance(self.nMode, self.nMoneyType, (nProb or 0));
            else
                me.ApplyEnhance(self.nMode, self.nMoneyType);
            end
        elseif (szWnd == BTN_CANCEL) or (szWnd == BTN_CLOSE) then
            UiManager:CloseWindow(self.UIGROUP);
        end
    end

    function uiEquipEnhance:ShowMsgBox(nMode, nMoneyType)
        local tbTimeMsg = {};
        tbTimeMsg.szMsg = "Bạn dùng Huyền Tinh <color=red>có thời hạn<color> để hợp thành, Huyền Tinh sau khi hợp thành cũng có <color=red>thời hạn<color>, tiếp tục không?"
        tbTimeMsg.nOptCount = 2;
        function tbTimeMsg:Callback(nOptIndex, nMode, nMoneyType)
            if (nOptIndex == 2) then
                me.ApplyEnhance(nMode, nMoneyType);
            end
        end
    end

    function uiEquipEnhance:UpdateEnhance(pEquip)

        if pEquip and (pEquip.nEnhTimes >= Item:CalcMaxEnhanceTimes(pEquip)) then    -- ՚ִٕٕѐΪخٟܶҰǿۯәطʱɝǷoքװѸˇһŜՙ޸ѐǿۯք
            Txt_SetTxt(self.UIGROUP, TXT_MESSAGE, "◆Trang bị của bạn đã cường hóa tối đa!");
            return;
        end

        local tbEnhItem = {};

        for j = 0, Item.ROOM_ENHANCE_ITEM_HEIGHT - 1 do
            for i = 0, Item.ROOM_ENHANCE_ITEM_WIDTH - 1 do
                local pEnhItem = me.GetEnhanceItem(i, j);
                if pEnhItem and (pEnhItem.szClass == ENHITEM_CLASS) then
                    table.insert(tbEnhItem, pEnhItem);
                end
            end
        end

        if (not pEquip) and (#tbEnhItem <= 0) then
            local szReason = ""
            if self.nMoneyType == Item.BIND_MONEY then
                szReason = "Dùng bạc khóa để cường hóa, trang bị sau khi cường hóa sẽ khóa với nhân vật"
            else
                szReason = "Chú ý, khi dùng Huyền Tinh khóa cường hóa trang bị chưa khóa, nó cũng sẽ bị khóa."
            end
            Txt_SetTxt(self.UIGROUP, TXT_MESSAGE, string.format("◆Bỏ trang bị vào ô trên, Huyền Tinh vào ô dưới, nhấn \"Đồng ý\" để cường hóa.\n<color=yellow>%s", szReason));
        elseif (not pEquip) and (#tbEnhItem > 0) then
            Txt_SetTxt(self.UIGROUP, TXT_MESSAGE, "◆Hãy bỏ trang bị muốn cường hóa vào ô trên.");
        elseif pEquip and (#tbEnhItem <= 0) then
            Txt_SetTxt(self.UIGROUP, TXT_MESSAGE, "◆Hãy bỏ Huyền Tinh vào ô dưới.");
        else
            -- by zhangjinpin@kingsoft
            local nProb, nMoney, bBind, _, nValue, nTrueProb = Item:CalcEnhanceProb(pEquip, tbEnhItem, self.nMoneyType);
            
            self.nProb = nProb;
            self:UpdateMoneyFlag(nMoney);
            local szMsg = string.format(
                "◆Thu <color=yellow>bạc %s<color> %s%d lượng %s. (Tỷ suất bạc là <color=yellow>%d<color>)\n*Cường hóa thành công: %d%%.\n",
                (self.nMoneyType == Item.NORMAL_MONEY) and " thường" or " khóa",
                (self.nMoneyEnoughFlag == 1) and "" or "<color=red>",
                nMoney,
                (self.nMoneyEnoughFlag == 1) and "" or "<color>",
                Item:GetJbPrice() * 100,
                nProb
            );
            
            -- *******ۏؾԅܝìۏؾ7ͬ۳ڽǚ*******
            if GetTime() < KGblTask.SCGetDbTaskInt(DBTASK_COZONE_TIME) + 7 * 24 * 60 * 60 then
                szMsg = "<color=yellow>◆Hoạt động ưu đãi, giảm 20% phí cường hóa trang bị\n<color>"..szMsg;
            end
            -- *************************************
            
            -- by zhangjinpin@kingsoft
            if nProb < 10 then
                self.bShowLowForbidden = 1;
            else
                self.bShowLowForbidden = 0;
            end
            
            if (nTrueProb > 120 and nValue > 16796) then
                self.bShowHighForbidden = 1;
            else
                self.bShowHighForbidden = 0;
            end
            
            if nProb < 100 then
                szMsg = szMsg .. "◆Muốn tăng tỷ lệ thành công, có thể bỏ nhiều Huyền Tinh.\n";
                
            end
            if nProb < 100 and pEquip.nEnhTimes >= 11 then
                self.bShowWarnning = 1;
            else
                self.bShowWarnning = 0;
            end
            if pEquip.IsBind() == 1 then    -- װѸѾʭѳ֨քһ͡ʾ
                self.bShowBindMsg = 0;
            else
                self.bShowBindMsg = bBind;
            end
            local szTime = me.GetItemAbsTimeout(pEquip) or me.GetItemRelTimeout(pEquip);
            if szTime then
                self.bShowTimeMsg = 1;
            else
                self.bShowTimeMsg = 0;
            end
            Txt_SetTxt(self.UIGROUP, TXT_MESSAGE, szMsg);
            if (#tbEnhItem > 0) then
                Wnd_SetEnable(self.UIGROUP, BTN_CONFIRM, 1);
            end
        end

    end

    function uiEquipEnhance:UpdatePeel(pEquip)

        self.tbPreviewCont:ClearObj();        -- ЈȥԽԤ@ɝǷŚɝ
        self:DeleteTempAllStuff();                -- ˍ؅Јǰ̹ռԃք™ʱրߟ
        
        if (not pEquip) then
            Txt_SetTxt(self.UIGROUP, TXT_MESSAGE, "◆Hãy bỏ trang bị đã cường hóa muốn tách vào ô trên.");
            return;
        end
        
        Wnd_SetEnable(self.UIGROUP, BTN_CONFIRM, 1);
        
        if (pEquip.nEnhTimes <= 0) then        -- ՚ִٕٕѐΪѾkәطʱɝǷoքװѸˇһŜѾkք
            Txt_SetTxt(self.UIGROUP, TXT_MESSAGE, "◆Trang bị đã tách Huyền Tinh thành công.");
            return;
        end

        local tbEnhItem, nMoney, nBind = Item:CalcPeelItem(pEquip);
        if (not tbEnhItem) then
            return;
        end
        self:UpdateMoneyFlag(nMoney);
        local szMsg = string.format(
            "◆Tách Huyền Tinh giúp trang bị <color=yellow>khôi phục trạng thái chưa cường hóa<color>, đồng thời nhận được Huyền Tinh ở ô dưới.\n" ..
            "◆Tách <color=yellow>trả %d lượng<color>, hãy kiểm tra lại sau đó nhấn \"Đồng ý\".\n" ..
            "◆<color=yellow>Chú ý: Huyền Tinh tách được sẽ bị khóa<color>\n", 
            nMoney);

        self.tbPreviewCont.tbEnhItem = tbEnhItem;
        Txt_SetTxt(self.UIGROUP, TXT_MESSAGE, szMsg);

        local nX = 0;
        local nY = 0;

        for nLevel, nCount in pairs(tbEnhItem) do
            if nCount > 0 then
                self:AddTempEnhItem(nLevel, nX, nY);
                if nX < Item.ROOM_ENHANCE_ITEM_WIDTH then
                    nX = nX + 1;
                else
                    nX = 0;
                    nY = nY + 1;
                end
                if nY > Item.ROOM_ENHANCE_ITEM_HEIGHT then
                    break;
                end
            end
        end

    end

    function uiEquipEnhance:UpdateCompose()
        local tbEnhItem = {};
        for j = 0, Item.ROOM_ENHANCE_ITEM_HEIGHT - 1 do
            for i = 0, Item.ROOM_ENHANCE_ITEM_WIDTH - 1 do
                local pEnhItem = me.GetEnhanceItem(i, j);
                if pEnhItem and (pEnhItem.szClass == ENHITEM_CLASS) then
                    table.insert(tbEnhItem, pEnhItem);
                end
            end
        end

        if (#tbEnhItem <= 0) then
            Txt_SetTxt(self.UIGROUP, TXT_MESSAGE, "◆Hãy bỏ Huyền Tinh vào ô dưới.");
        else
            local nMinLevel, nMinLevelRate, nMaxLevel, nMaxLevelRate, nFee, bBind, tbAbsTime = Item:GetComposeBudget(tbEnhItem, self.nMoneyType);
            if nMinLevel <= 0 then
                return 0;
            end
            self:UpdateMoneyFlag(nFee);
            if self.nMinLevel == 0 then
                Txt_SetTxt(self.UIGROUP, TXT_MESSAGE, "◆Không phải Huyền Tinh, không thể hợp thành!");
                Wnd_SetEnable(self.UIGROUP, BTN_CONFIRM, 0);
            else
                local nMinRate = math.ceil(100 * nMinLevelRate / (nMinLevelRate + nMaxLevelRate));
                local szMsg = string.format("◆Thu <color=yellow>bạc %s<color> %s%d lượng %s. (Tỷ suất bạc là <color=yellow>%d<color>)\n◆Xác suất:\n  %d%% nhận Huyền Tinh cấp %d",
                    (self.nMoneyType == Item.NORMAL_MONEY) and " thường" or " khóa",
                    (self.nMoneyEnoughFlag == 1) and "" or "<color=red>",
                    nFee,
                    (self.nMoneyEnoughFlag == 1) and "" or "<color>",
                    Item:GetJbPrice() * 100,
                    nMinRate,
                    nMinLevel
                );
                if nMaxLevel > 0 then
                    szMsg = szMsg..string.format("\n  %d%% nhận được Huyền Tinh cấp %d", 100 - nMinRate, nMaxLevel)
                end
                if tbAbsTime then
                    szMsg = szMsg..string.format("\n◆Thời hạn <color=yellow>%d-%d-%d %d giờ %d phút<color>", unpack(tbAbsTime));
                end
                if nMaxLevel == 12 and nMinLevelRate == 0 then
                    szMsg = szMsg .. "\n◆Bạn đã có thể hợp thành Huyền Tinh cấp cao nhất\n";
                else
                    szMsg = szMsg .. "\n◆Muốn có Huyền Tinh cấp cao, có thể bỏ nhiều Huyền Tinh\n";
                end
                self.bShowBindMsg = bBind;
            
                Txt_SetTxt(self.UIGROUP, TXT_MESSAGE, szMsg);
                if (#tbEnhItem > 0) then
                    Wnd_SetEnable(self.UIGROUP, BTN_CONFIRM, 1);
                end
            end
        end

    end

    function uiEquipEnhance:UpdateUpgrade(pEquip)
        if not pEquip then
            Txt_SetTxt(self.UIGROUP, TXT_MESSAGE, "◆Bỏ Ấn giám vào ô trên!");
            return;
        end
        
        Item.tbMAX_SIGNET_LEVEL    =
        {
            [1] = 1000, 
            [2] = 1500,
        }
        Item.MAX_SIGNET_LEVEL = Item.tbMAX_SIGNET_LEVEL[pEquip.nLevel or 1];
        
        local nMagicIndex = Lst_GetCurKey(self.UIGROUP, LIST_MAGIC_SELECT);
        if nMagicIndex == 0 then
            Txt_SetTxt(self.UIGROUP, TXT_MESSAGE, "◆Chọn thuộc tính muốn nâng:");
            return 0;
        end
        local nCurLevel, nCurExp, nCurUpGradeExp = Item:CalcUpgrade(pEquip, nMagicIndex, 0);
        if nCurLevel >= Item.MAX_SIGNET_LEVEL then    
            Txt_SetTxt(self.UIGROUP, TXT_MESSAGE, "◆Thuộc tính này đã nâng tối đa!");
            return;
        end
        local nItemNum = 0;
        for j = 0, Item.ROOM_ENHANCE_ITEM_HEIGHT - 1 do
            for i = 0, Item.ROOM_ENHANCE_ITEM_WIDTH - 1 do
                local pItem = me.GetEnhanceItem(i, j);
                if pItem and pItem.szClass == Item.UPGRADE_ITEM_CLASS then
                    nItemNum = nItemNum + pItem.nCount;
                end
            end
        end
        if nItemNum == 0 then
            Txt_SetTxt(self.UIGROUP, TXT_MESSAGE, "◆Bỏ Ngũ Hành Hồn Thạch vào:");
            return 0;
        end
        local tbAttrib = pEquip.GetBaseAttrib();
        local szDesc = FightSkill:GetMagicDesc(tbAttrib[nMagicIndex].szName, tbAttrib[nMagicIndex].tbValue, nil, 1);
        local nLevel, nExp, nUpgradeExp = Item:CalcUpgrade(pEquip, nMagicIndex, nItemNum);
        local szIsFull = tonumber(nUpgradeExp);
        if (nLevel >= Item.MAX_SIGNET_LEVEL) then
            szIsFull = "<Thuộc tính đã đạt tối đa>"
        end
        local szMsg = string.format("◆%s(%d/%d)\n<color=gold>  →Tăng %d điểm (%d/%s)<color>", szDesc, nCurExp, nCurUpGradeExp, nLevel, nExp, szIsFull);
        
        Txt_SetTxt(self.UIGROUP, TXT_MESSAGE, szMsg);
        self.nMoneyEnoughFlag = 1;
        Wnd_SetEnable(self.UIGROUP, BTN_CONFIRM, 1);
    end

    function uiEquipEnhance:UpdateRefine()
        self.tbPreRefineCont:ClearObj();        -- ЈȥԽԤ@ɝǷŚɝ
        self:DeleteTempAllStuff();                -- ˍ؅Јǰ̹ռԃք™ʱրߟ
        Lst_Clear(self.UIGROUP, LIST_MAGIC_SELECT);
        local tbRefineItem = {};
        for j = 0, Item.ROOM_ENHANCE_ITEM_HEIGHT - 1 do
            for i = 0, Item.ROOM_ENHANCE_ITEM_WIDTH - 1 do
                local pEnhItem = me.GetEnhanceItem(i, j);
                if pEnhItem then
                    table.insert(tbRefineItem, pEnhItem);
                end
            end
        end
        if #tbRefineItem == 0 then
            Txt_SetTxt(self.UIGROUP, TXT_MESSAGE, "◆Hãy để trang bị muốn luyện, Cải Tạo Đồ vào ô dưới:");
            return;
        end
        
        local pEquip, pRefineItem, tbProduce, tbRefineStuff, tbRequireItem, nRefineDegree = Item:CalcRefineItem(tbRefineItem);
        self.pEquip = pEquip;
        self.nRefineDegree = nRefineDegree;
        if (not pEquip) then
            Txt_SetTxt(self.UIGROUP, TXT_MESSAGE, "◆Nguyên liệu hiện tại không thể luyện!");
            return;
        end
        
        self.tbProduce = tbProduce;
        for _, tbProduceItem in pairs(tbProduce) do
            -- Դݨ™ʱրߟהг
            local pItem = tbTempItem:Create(
                tbProduceItem.tbEquip[1],
                tbProduceItem.tbEquip[2],
                tbProduceItem.tbEquip[3],
                tbProduceItem.tbEquip[4],
                pEquip.nSeries,
                pEquip.nEnhTimes,
                pEquip.nLucky,
                nil,
                0,
                pEquip.dwRandSeed,
                pEquip.nIndex,
                pEquip.nStrengthen
                );    
            if not pItem then
                return;
            end
            table.insert(self.tbTempItem, pItem);    -- Ϊ‹ˍ؅׸݇¼֮
        end
        
        if #tbProduce > 1 then
            local szMsg = "◆Hãy chọn trang bị muốn luyện:";
            if nRefineDegree ~= 100 and #tbProduce > 0 then
                szMsg = "◆Độ luyện: <color=gold>"..nRefineDegree.."%<color> (chưa đạt 100%, cần thêm Huyền Tinh)\n"..szMsg;
            else
                szMsg = "◆Độ luyện: <color=gold>100%<color>\n"..szMsg;
            end

            Txt_SetTxt(self.UIGROUP, TXT_MESSAGE, szMsg);
            self:UpdateList();
            
            if self.nRefineSelected ~= nil then
                Lst_SetCurKey(self.UIGROUP, LIST_MAGIC_SELECT, self.nRefineSelected);
                return;
            end
        elseif #tbProduce == 0 then
            print("#tbProduce == 0");
        else
            self:UpdateRefinePreview(1);
        end
    end

    function uiEquipEnhance:UpdateRefinePreview(nIndex)
        local pItem = self.tbTempItem[nIndex]
        if not pItem or not self.tbProduce or not self.tbProduce[nIndex] then
            return;
        end
        
        local tbObj = {};
        tbObj.nType = Ui.OBJ_TEMPITEM;
        tbObj.pItem = pItem;
        self.tbPreRefineCont:SetObj(tbObj, nX, nY);
        self:UpdateMoneyFlag(self.tbProduce[nIndex].nFee + Item:CalcRefineMoney(self.pEquip));
        
        local szRefineDegreeMsg = "◆Độ luyện: <color=gold>"..self.nRefineDegree.."%<color>";
        if self.nRefineDegree ~= 100 then
            szRefineDegreeMsg = szRefineDegreeMsg.."(Chưa đạt 100%, cần thêm Huyền Tinh)\n";
        else
            szRefineDegreeMsg = szRefineDegreeMsg.."\n";
            Wnd_SetEnable(self.UIGROUP, BTN_CONFIRM, 1);
        end
        
        local szMsg = string.format("◆Luyện cần <color=yellow>bạc<color> %s%d lượng %s. (Ưu tiên sử dụng bạc khóa)\n",
                (self.nMoneyEnoughFlag > 0) and "" or "<color=red>",
                self.tbProduce[nIndex].nFee + Item:CalcRefineMoney(self.pEquip),
                (self.nMoneyEnoughFlag > 0) and "" or "<color>");
        Txt_SetTxt(self.UIGROUP, TXT_MESSAGE, szRefineDegreeMsg..szMsg);
    end

    -- װѸلլާĦټт
    function uiEquipEnhance:UpdateStrengthen(pEquip)    
        local tbStrItem = {};
        for j = 0, Item.ROOM_ENHANCE_ITEM_HEIGHT - 1 do
            for i = 0, Item.ROOM_ENHANCE_ITEM_WIDTH - 1 do
                local pStrItem = me.GetEnhanceItem(i, j);
                if pStrItem then
                    table.insert(tbStrItem, pStrItem);
                end
            end
        end

        if (not pEquip) and (#tbStrItem <= 0) then
            local szReason = "";
            if self.nMoneyType == Item.BIND_MONEY then
                szReason = "Dùng Bạc khóa sửa trang bị, sửa xong sẽ bị khóa";
            else
                szReason = "Chú ý: Dùng Huyền Tinh khóa sửa trang bị chưa khóa, trang bị sẽ bị khóa.";
            end
            Txt_SetTxt(self.UIGROUP, TXT_MESSAGE, string.format("*Hãy bỏ trang bị cần sửa vào ô trên, Huyền Tinh vào ô dưới, sau đó nhấn \"Đồng ý\" để sửa.\n<color=yellow>%s", szReason));
        elseif (not pEquip) and (#tbStrItem > 0) then
            Txt_SetTxt(self.UIGROUP, TXT_MESSAGE, "*Hãy bỏ trang bị cần sửa vào ô trên.");
        elseif Item:CheckStrengthenEquip(pEquip) ~= 1 then
            local _, szMsg = Item:CheckStrengthenEquip(pEquip)
            Txt_SetTxt(self.UIGROUP, TXT_MESSAGE, "<color=yellow>*"..szMsg.."<color>");
        elseif pEquip and (#tbStrItem <= 0) then
            Txt_SetTxt(self.UIGROUP, TXT_MESSAGE, "*Hãy bỏ Huyền Tinh và Bùa sửa tương ứng vào ô dưới.");
        elseif Item:CalStrengthenStuff(pEquip, tbStrItem) == 0 then
            Txt_SetTxt(self.UIGROUP, TXT_MESSAGE, "*Hãy bỏ Huyền Tinh và Bùa sửa tương ứng vào ô dưới.");        
        else
            local nRes, szMsg, nValue, bBind, tbStuffItem, pStrengthenRecipe = Item:CalStrengthenStuff(pEquip, tbStrItem);
            local nProb, nMoney, nTrueProb = Item:CalcProb(pEquip, nValue, Item.ENHANCE_MODE_STRENGTHEN);
            if self.nMoneyType == Item.BIND_MONEY then
                bBind = 1;
            end
            self.nProb = nProb;
            self:UpdateMoneyFlag(nMoney);
            local szMsg = string.format(
                "*Thu <color=yellow>bạc %s<color>%s%d lượng %s. (Tỷ suất bạc là <color=yellow>%d<color>)\n*Độ sửa: %d%%.\n",
                (self.nMoneyType == Item.NORMAL_MONEY) and " thường" or " khóa",
                (self.nMoneyEnoughFlag == 1) and "" or "<color=red>",
                nMoney,
                (self.nMoneyEnoughFlag == 1) and "" or "<color>",
                Item:GetJbPrice() * 100,
                nProb
            );
            
            -- *******ۏؾԅܝìۏؾ7ͬ۳ڽǚ*******
            if GetTime() < KGblTask.SCGetDbTaskInt(DBTASK_COZONE_TIME) + 7 * 24 * 60 * 60 then
                szMsg = "<color=yellow>*Hoạt động ưu đãi, giảm 20% phí sửa trang bị\n<color>"..szMsg;
            end
            -- *************************************
            
            if (nTrueProb > 120) then
                self.bShowHighForbidden = 1;
            else
                self.bShowHighForbidden = 0;
            end
            
            if nProb < 100 then
                szMsg = szMsg .. "*Nếu muốn tăng độ sửa, có thể bỏ nhiều Huyền Tinh.\n";
            end
            
            if pEquip.IsBind() == 1 then    -- װѸѾʭѳ֨քһ͡ʾ
                self.bShowBindMsg = 0;
            else
                self.bShowBindMsg = bBind;
            end
            local szTime = me.GetItemAbsTimeout(pEquip) or me.GetItemRelTimeout(pEquip);
            if szTime then
                self.bShowTimeMsg = 1;
            else
                self.bShowTimeMsg = 0;
            end
            Txt_SetTxt(self.UIGROUP, TXT_MESSAGE, szMsg);
            if (nProb == 100 and pStrengthenRecipe) then
                Wnd_SetEnable(self.UIGROUP, BTN_CONFIRM, 1);
            end
        end
    end
        
    function uiEquipEnhance:UpdateItem()
        local pEquip = me.GetEnhanceEquip();
        Wnd_SetEnable(self.UIGROUP, BTN_CONFIRM, 0);
        if self.nMode == Item.ENHANCE_MODE_ENHANCE then
            self:UpdateEnhance(pEquip);
        elseif self.nMode == Item.ENHANCE_MODE_PEEL then
            self:UpdatePeel(pEquip);
        elseif self.nMode == Item.ENHANCE_MODE_COMPOSE then
            self:UpdateCompose();
        elseif self.nMode == Item.ENHANCE_MODE_UPGRADE then
            self:UpdateUpgrade(pEquip);
        elseif self.nMode == Item.ENHANCE_MODE_REFINE then
            self:UpdateRefine();
        elseif self.nMode == Item.ENHANCE_MODE_STRENGTHEN then
            self:UpdateStrengthen(pEquip);
        end
    end

    function uiEquipEnhance:OnSyncItem(nRoom, nX, nY)
        if (nRoom == Item.ROOM_ENHANCE_EQUIP) or (nRoom == Item.ROOM_ENHANCE_ITEM) then
            self:UpdateItem();
        end
    end

    function uiEquipEnhance:AddTempEnhItem(nLevel, nX, nY)

        local pItem = tbTempItem:Create(
            ENHITEM_INDEX.nGenre,
            ENHITEM_INDEX.nDetail,
            ENHITEM_INDEX.nParticular,
            nLevel
        );    -- Դݨ™ʱրߟהг

        if not pItem then
            return;
        end

        table.insert(self.tbTempItem, pItem);    -- Ϊ‹ˍ؅׸݇¼֮

        local tbObj = {};
        tbObj.nType = Ui.OBJ_TEMPITEM;
        tbObj.pItem = pItem;
        self.tbPreviewCont:SetObj(tbObj, nX, nY);

    end

    function uiEquipEnhance:DeleteTempAllStuff()
        for _, pTemp in pairs(self.tbTempItem) do
            tbTempItem:Destroy(pTemp);
        end
        self.tbTempItem = {};
    end

    function uiEquipEnhance:OnAnimationOver(szWnd)
        if (szWnd == IMG_EFFECT) then
            Wnd_Hide(self.UIGROUP, IMG_EFFECT);    -- ҥ؅ΪҏìӾӘͼб
        end
    end

    function uiEquipEnhance:OnResult(nMode, nResult)

        self.tbEnhItemCont:ClearRoom();

        if nMode == Item.ENHANCE_MODE_ENHANCE then
            if (nResult == 1) then
                Wnd_Show(self.UIGROUP, IMG_EFFECT);
                 Img_PlayAnimation(self.UIGROUP, IMG_EFFECT);    -- 播放动画特效
                me.Msg("Cường hóa thành công!");
            elseif (nResult == 0) then
                me.Msg("Đáng tiếc, cường hóa thất bại.");
            else
                me.Msg("Không thể cường hóa trang bị!");
            end
        elseif nMode == Item.ENHANCE_MODE_PEEL then
            if (nResult == 1) then
                me.Msg("Tách Huyền Tinh thành công!");
            elseif (nResult == 0) then
                me.Msg("Đáng tiếc, tách Huyền Tinh thất bại.");
            else
                me.Msg("Không thể tách Huyền Tinh!");
            end
        elseif nMode == Item.ENHANCE_MODE_COMPOSE then
            if nResult > 0 then
                me.Msg("Bạn đã hợp thành 1 Huyền Tinh cấp "..nResult.."!");
            end
        elseif nMode == Item.ENHANCE_MODE_UPGRADE then
            if nResult > 0 then
                Wnd_Show(self.UIGROUP, IMG_EFFECT);
                 Img_PlayAnimation(self.UIGROUP, IMG_EFFECT);    -- 播放动画特效
                 local pEquip = me.GetEnhanceEquip();
                 self:UpdateList(pEquip);
                me.Msg("Thăng cấp Ấn giám thành công!");
            end
        elseif nMode == Item.ENHANCE_MODE_STRENGTHEN then
            if (nResult > 0) then
                Wnd_Show(self.UIGROUP, IMG_EFFECT);
                 Img_PlayAnimation(self.UIGROUP, IMG_EFFECT);    -- ҥ؅ۭ֯͘Ч
                me.Msg("Trang bị sửa thành công!");
            elseif (nResult == 0) then
                me.Msg("Sửa trang bị thất bại!");
            end
        end

        self:UpdateItem();
    end



    function uiEquipEnhance:UpdateMoneyFlag(nMoney)
        if self.nMode == Item.ENHANCE_MODE_PEEL then  -- ѾkһࠛǮ
            self.nMoneyEnoughFlag = 1;
        elseif self.nMode == Item.ENHANCE_MODE_REFINE then -- vۯһȸؖѳ֨ۍ؇ѳ֨Ӹ}
            if me.GetBindMoney() >= nMoney then 
                self.nMoneyEnoughFlag = 2;
            else
                self.nMoneyEnoughFlag = (me.nCashMoney + me.GetBindMoney() >= nMoney) and 1 or 0;
            end
        elseif self.nMoneyType == Item.BIND_MONEY then
            self.nMoneyEnoughFlag = (me.GetBindMoney() >= nMoney) and 1 or 0;
        else
            self.nMoneyEnoughFlag = (me.nCashMoney >= nMoney) and 1 or 0;
        end
    end

    function uiEquipEnhance:StateRecvUse(szUiGroup)
        if szUiGroup == self.UIGROUP then
            return;
        end
        
        if (UiManager:WindowVisible(self.UIGROUP) ~= 1) then
            return;
        end

        
        local tbObj = tbMouse:GetObj();
        local pItem = me.GetItem(tbObj.nRoom, tbObj.nX, tbObj.nY);
        
        if self.nMode == Item.ENHANCE_MODE_ENHANCE then                -- װѸǿۯ 
            if (pItem.IsEquip() == 1) then
                self.tbEquipCont:ClearRoom();
                self.tbEquipCont:SpecialStateRecvUse();
            else
                self.tbEnhItemCont:SpecialStateRecvUse();
            end                        
        elseif self.nMode == Item.ENHANCE_MODE_REFINE then            -- װѸvۯ
            
            self.tbEnhItemCont:SpecialStateRecvUse();    
            
        elseif (self.nMode == Item.ENHANCE_MODE_COMPOSE) then        -- Ѿާۏԉ
            
            self.tbEnhItemCont:SpecialStateRecvUse();
            
        elseif (self.nMode == Item.ENHANCE_MODE_PEEL) then             -- ѾާѾk
            --if (pItem.IsEquip() == 1) then
                self.tbEquipCont:ClearRoom();
                self.tbPreviewCont:ClearObj();
            --end    
            self.tbEquipCont:SpecialStateRecvUse();
            
        elseif (self.nMode == Item.ENHANCE_MODE_UPGRADE) then        -- ӡݸʽܶ
            
            if (pItem.nDetail == Item.EQUIP_SIGNET) then
                self.tbEquipCont:SpecialStateRecvUse();
            else
                self.tbEnhItemCont:SpecialStateRecvUse();
            end
            
        elseif (self.nMode == Item.ENHANCE_MODE_STRENGTHEN) then    -- װѸلլ
        if (pItem.IsEquip() == 1) then
                self.tbEquipCont:ClearRoom();
                self.tbEquipCont:SpecialStateRecvUse();
            else
                self.tbEnhItemCont:SpecialStateRecvUse();
            end                        
        end
    end
            

    function uiEquipEnhance:RegisterEvent()
        local tbRegEvent =
        {
            { UiNotify.emCOREEVENT_SYNC_ITEM,          self.OnSyncItem },        -- އɫրߟͬҽ˂ݾ
            { UiNotify.emCOREEVENT_ENHANCE_RESULT,    self.OnResult },        -- ͬҽǿۯ/Ѿkәطޡڻ
            { UiNotify.emCOREEVENT_MONEY_CHANGED,    self.UpdateItem },        -- ްǮעʺلҤ
            { UiNotify.emUIEVENT_OBJ_STATE_USE,    self.StateRecvUse},        
        };
        Lib:MergeTable(tbRegEvent, self.tbEquipCont:RegisterEvent());
        Lib:MergeTable(tbRegEvent, self.tbEnhItemCont:RegisterEvent());
        Lib:MergeTable(tbRegEvent, self.tbPreviewCont:RegisterEvent());
        Lib:MergeTable(tbRegEvent, self.tbPreRefineCont:RegisterEvent());
        return tbRegEvent;
    end

    function uiEquipEnhance:RegisterMessage()
        local tbRegMsg = {};
        Lib:MergeTable(tbRegMsg, self.tbEquipCont:RegisterMessage());
        Lib:MergeTable(tbRegMsg, self.tbEnhItemCont:RegisterMessage());
        Lib:MergeTable(tbRegMsg, self.tbPreviewCont:RegisterMessage());
        Lib:MergeTable(tbRegMsg, self.tbPreRefineCont:RegisterMessage());
        return tbRegMsg;
    end 
    Khách viếng thăm hãy cùng mrkutepro xây dựng diễn đàn CLBGAMESVN vững mạnh nhé!

  12. Các thành viên gởi lời cảm ơn đến mrkutepro vì bài viết này !

    mitomcaket123 (08-08-14)

  13. #10
    Thành Viên Tâm Huyết __Jie__'s Avatar
    Ngày tham gia
    Sep 2008
    Bài viết
    1,314
    Thanks
    256
    Thanked 738 Times in 558 Posts

    Ðề: Nâng cấp giáp ấn

    Cứ bê sẳn mà ăn nên 1 số thanh niên cứ lên và hỏi và chờ copy past
    Biết là như vậy sẽ tốt nhưng cứ thấy nó như thế nào đó.
    Nhận viết sự kiện Kiếm Thế PC - Kiếm Thế Mobile
    Bishop check pass 100% kiếm thế win
    Web: [Only registered and activated users can see links. ]

 

 
Trang 1 của 2 1 2 CuốiCuối

Quyền viết bài

  • Bạn Không thể gửi Chủ đề mới
  • Bạn Không thể Gửi trả lời
  • Bạn Không thể Gửi file đính kèm
  • Bạn Không thể Sửa bài viết của mình
  •  
Múi giờ GMT +7. Bây giờ là 02:59 PM.
vBulletin®, Copyright ©2000-2011, Jelsoft Enterprises Ltd.
CLBGamesVN không chịu trách nhiệm về Luật Bản Quyền của các tài liệu, bài viết v.v...được đăng tải trên diễn đàn này.
Diễn đàn phát triển dưới sự đóng góp của tất cả thành viên. BQT chỉ là những người thành lập ra sân chơi, quản lý và duy trì về mặt kỹ thuật, nội dung khi hợp lệ.