PDA

View Full Version : [KT] Xin hàm check danh hiệu



omasa
28-05-13, 01:55 AM
Mình đã thử hàm me.GetAllTitle mà sao vẫn ko check đc nhỉ. Cao thủ nào chỉ giáo dùm cái :(

__Jie__
28-05-13, 04:19 AM
local tbAllTitle = me.GetAllTitle();
-- 如果原来有师徒称号的话,把原有的� �徒称号取消掉
for _, tbTitleInfo in pairs(tbAllTitle) do
if (tbTitleInfo.byTitleGenre == 250) then -- 自定义称号大类的id是250
local szTitle = tbTitleInfo.szTitleName;
local nStart, nEnd = string.find(szTitle, EventManager.IVER_szTeacherTitle);
if (nStart and nEnd and nStart ~= nEnd and nEnd == string.len(szTitle)) then
me.RemoveSpeTitle(szTitle);
end
end
end

thử phát xem 250 là Genre của title đó :x

Bonus thêm cái mới tìm ra đầy đủ 4 thuộc tính tha hồ check :D


function TaskCond:HaveTitle(byTitleGenre, byTitleDetailType, byTitleLevel, dwTitleParam)
local tbTitles = me.GetAllTitle(nCamp, nClass);
for _, tbTitle in ipairs(tbTitles) do
if (tbTitle.byTitleGenre == byTitleGenre and
tbTitle.byTitleDetailType == byTitleDetailType and
tbTitle.byTitleLevel == byTitleLevel and
tbTitle.dwTitleParam == dwTitleParam) then
return 1;
end;
end;
return nil, "称号尚未达到要求";
end;

G9 chúc thành công \:D/

omasa
28-05-13, 12:40 PM
local tbAllTitle = me.GetAllTitle();
-- 如果原来有师徒称号的话,把原有的� �徒称号取消掉
for _, tbTitleInfo in pairs(tbAllTitle) do
if (tbTitleInfo.byTitleGenre == 250) then -- 自定义称号大类的id是250
local szTitle = tbTitleInfo.szTitleName;
local nStart, nEnd = string.find(szTitle, EventManager.IVER_szTeacherTitle);
if (nStart and nEnd and nStart ~= nEnd and nEnd == string.len(szTitle)) then
me.RemoveSpeTitle(szTitle);
end
end
end

thử phát xem 250 là Genre của title đó :x

Bonus thêm cái mới tìm ra đầy đủ 4 thuộc tính tha hồ check :D


function TaskCond:HaveTitle(byTitleGenre, byTitleDetailType, byTitleLevel, dwTitleParam)
local tbTitles = me.GetAllTitle(nCamp, nClass);
for _, tbTitle in ipairs(tbTitles) do
if (tbTitle.byTitleGenre == byTitleGenre and
tbTitle.byTitleDetailType == byTitleDetailType and
tbTitle.byTitleLevel == byTitleLevel and
tbTitle.dwTitleParam == dwTitleParam) then
return 1;
end;
end;
return nil, "称号尚未达到要求";
end;

G9 chúc thành công \:D/

Code này mình cũng đang thử test rùi. Khi chyaj thì GS chả báo gì àm nó cũng chả check nên mới bí vậy :((

omasa
28-05-13, 05:31 PM
Sao vẫn ko chịu check nhỉ. Anh em giúp tí :((



function TaskCond:Checkdanhhieu(byTitleGenre, byTitleDetailType, byTitleLevel, dwTitleParam)
local tbTitles = me.GetAllTitle(nCamp, nClass);
for _, tbTitle in ipairs(tbTitles) do
if (tbTitle.byTitleGenre == 2 and
tbTitle.byTitleDetailType == 2 and
tbTitle.byTitleLevel < 4 and
tbTitle.dwTitleParam < 4) then
return 1;
end;
end;
return nil, "Danh hiệu chưa đạt yêu cầu";
end;

__Jie__
28-05-13, 05:53 PM
function tbLiGuan:CheckDanhHieu()
local nCheck = 0;
local tbTitles = me.GetAllTitle();
if tbTitles then
for _, pTitle in ipairs(tbTitles) do
local szTitleGenre = pTitle.byTitleGenre;
local szTitleDetail = pTitle.byTitleDetailType;
if szTitleGenre == 4 and szTitleDetail == 1 then -- neu dat danh hieu tan nhan vuong thi se thuc hien
nCheck = 1;
break;
end
end
end
if nCheck == 1 then
me.AddItem(18,1,1,1);
else
Dialog:Say(string.format("Nguoi khong co danh hieu."));
return 0;
end
end

XONG ;)

omasa
28-05-13, 06:01 PM
function tbLiGuan:CheckDanhHieu()
local nCheck = 0;
local tbTitles = me.GetAllTitle();
if tbTitles then
for _, pTitle in ipairs(tbTitles) do
local szTitleGenre = pTitle.byTitleGenre;
local szTitleDetail = pTitle.byTitleDetailType;
if szTitleGenre == 4 and szTitleDetail == 1 then -- neu dat danh hieu tan nhan vuong thi se thuc hien
nCheck = 1;
break;
end
end
end
if nCheck == 1 then
me.AddItem(18,1,1,1);
else
Dialog:Say(string.format("Nguoi khong co danh hieu."));
return 0;
end
end

XONG ;)

Hóng mãi mới có hàng. Thanks nhiều nhá =D>

vuachemgio
28-05-13, 07:03 PM
Anh osama ơi cho em hỏi cái đi ạ giúp em cái này với

omasa
28-05-13, 10:53 PM
Anh osama ơi cho em hỏi cái đi ạ giúp em cái này với

Hỏi gì bạn cứ post lên 4rum nhé

__Jie__
28-05-13, 10:57 PM
Hỏi gì bạn cứ post lên 4rum nhé
Xài được không tình yêu ;;) ta viết chưa test nữa 8-x

vuachemgio
28-05-13, 11:07 PM
Hỏi gì bạn cứ post lên 4rum nhé

cái file chuyển map là tên gì ạ em muốn bỏ đoạn code đó vào file chuyển map anh giúp em vs

omasa
29-05-13, 09:19 PM
Xài được không tình yêu ;;) ta viết chưa test nữa 8-x

Xài ngon ấy chứ.
Đây là demo đoạn check danh hiệu Tống Kim cho anh em tham khảo. Ai xài nhớ thanks bạc Jie chứ đừng thanks mình ;))



local nCheck = 0;
local tbTitles = me.GetAllTitle();
if tbTitles then
for _, pTitle in ipairs(tbTitles) do
local szTitleGenre = pTitle.byTitleGenre;
local szTitleDetail = pTitle.byTitleDetailType;
local szTitleLevel = pTitle.byTitleLevel;
if szTitleGenre == 2 and szTitleDetail == 2 and szTitleLevel > 3 then -- Check danh hieu tai day
nCheck = 1;
break;
end
end
end
if nCheck == 1 then
GeneralProcess:StartProcess("Chờ xíu...", DELAY_TIME * Env.GAME_FPS, {self.GetQuest, self, me.nId, him.dwId}, nil, tbEvent);
else
Dialog:Say(string.format("Điểm cá nhân hiện tại chưa đạt 3000 điểm."));
return 0;
end