PDA

View Full Version : [KT] Nâng cấp giáp ấn



co_do
02-08-14, 08:20 AM
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!

na.ilusm89
02-08-14, 08:27 AM
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

satthupro95
02-08-14, 08:41 AM
Khai báo thêm ở đây \setting\item\001\extern\signet\levelsetting.txt đủ 1500 hoặc thêm nữa tùy bạn

__Jie__
05-08-14, 10:07 PM
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 :D

mrkutepro
05-08-14, 10:12 PM
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 :D

hú này hú chia sẻ hay thu phí vậy:-/

dothieuxuyen
05-08-14, 10:44 PM
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 :D

Nếu bạn chia sẽ thi cho mình xin , vì mình chơi cho vui . cám ơn trước .:look_down:

__Jie__
07-08-14, 04:28 PM
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

OsinLove
07-08-14, 04:39 PM
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 :D

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 ?

mrkutepro
07-08-14, 04:43 PM
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ả:ar!

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

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


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


if not pEquip then
Txt_SetTxt(self.UIGROUP, TXT_MESSAGE, "◆Bỏ Ấn giám vào ô trên!");
return;
end


chèn thêm 1 đoạn 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ề


-----------------------------------------------------
--τݾĻ ú uiEquipEnhance.lua
<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>
--Դݨʱݤ ú 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;
<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>
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_STRENGTHE N);
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_ENHAN CE);
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_COMPO SE);
elseif self.nMode == Item.ENHANCE_MODE_UPGRADE then
UiManager:ReleaseUiState(UiManager.UIS_EQUIP_UPGRA DE);
elseif self.nMode == Item.ENHANCE_MODE_REFINE then
UiManager:ReleaseUiState(UiManager.UIS_EQUIP_REFIN E);
elseif self.nMode == Item.ENHANCE_MODE_STRENGTHEN then
UiManager:ReleaseUiState(UiManager.UIS_EQUIP_STREN GTHEN);
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;
<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>
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
<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>
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
-- *************************************

<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>
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)

<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>
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()
<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>
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

__Jie__
07-08-14, 05:14 PM
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 đó.

mrkutepro
07-08-14, 05:40 PM
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 đó.

Mình cũng không phải là thằng ăn sẵn, code co đủng các kiểu mình có thể làm, mình hỏi bạn là hú chia sẻ hay thú phí thì ko thấy nói gì, chắc là thu phí nên share cho ace chơi luôn8-x
diễn đàn có tới có rất nhiều thành phần
1. chuyên đi hỏi
2. tự học và trao đổi
3. ăn sẵn, loại này thường bê về, ít thấy thanks và cmt \:D/
4. show hàng là chính

..............

mitomcaket123
08-08-14, 10:06 AM
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ả:ar!

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

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


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


if not pEquip then
Txt_SetTxt(self.UIGROUP, TXT_MESSAGE, "◆Bỏ Ấn giám vào ô trên!");
return;
end


chèn thêm 1 đoạn 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ề


-----------------------------------------------------
--τݾĻ ú uiEquipEnhance.lua
<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>
--Դݨʱݤ ú 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;
<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>
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_STRENGTHE N);
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_ENHAN CE);
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_COMPO SE);
elseif self.nMode == Item.ENHANCE_MODE_UPGRADE then
UiManager:ReleaseUiState(UiManager.UIS_EQUIP_UPGRA DE);
elseif self.nMode == Item.ENHANCE_MODE_REFINE then
UiManager:ReleaseUiState(UiManager.UIS_EQUIP_REFIN E);
elseif self.nMode == Item.ENHANCE_MODE_STRENGTHEN then
UiManager:ReleaseUiState(UiManager.UIS_EQUIP_STREN GTHEN);
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;
<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>
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
<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>
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
-- *************************************

<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>
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)

<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>
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()
<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>
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


Cái này ở Ui, vậy không phải do sever quy định thì làm sao mà lên được cậu, mình đã thử fix và copy hản cái của cậu cũng k có đc!

dothieuxuyen
14-08-14, 12:17 AM
1. chuyên đi hỏi
2. tự học và trao đổi
3. ăn sẵn, loại này thường bê về, ít thấy thanks và cmt \:D/
4. show hàng là chính

..............
loại 3 làm cho bài viết mình đi vào quên lãng luôn .....................ít ai chỉ giùm mà có chỉ cũng ăn hành là nhiều , 2014 mình mới tham gia CLBgame mà hòi nào ít hỏi mà hỏi xong trả lời cũng ko biết làm vì chỉ 10 % thì làm sao làm , toàn ngồi hóng :-"

mrkutepro
14-08-14, 03:02 PM
Cái này ở Ui, vậy không phải do sever quy định thì làm sao mà lên được cậu, mình đã thử fix và copy hản cái của cậu cũng k có đc!

Thì tự mình nghiên cứu thêm đi thầy[-X