PDA

View Full Version : [KT] Hàm check điểm danh vọng tài phú hoặc FF



dongahchu
27-05-13, 08:24 AM
Hàm check điểm danh vọng tài phú hoặc FF .
Nếu FF không đủ yêu cầu sẽ không sử dụng được 2 vật phẩm gì đó ...

Mong nhận đc sự giúp đỡ . Cảm ơn

omasa
27-05-13, 02:53 PM
Hàm check điểm danh vọng tài phú hoặc FF .
Nếu FF không đủ yêu cầu sẽ không sử dụng được 2 vật phẩm gì đó ...

Mong nhận đc sự giúp đỡ . Cảm ơn

Hàm của bác __Jie__ nhé. Nhớ thanks bác ấy:




if me.GetCamp() == 6 then ​
me.Msg("FF so phuong roi hay noi");
return 0;
end

dongahchu
28-05-13, 01:47 PM
if me.GetCamp() == 6 then ​
me.Msg("FF so phuong roi hay noi");
return 0;
end

Cảm ơn bạn đã trả lời !

Mình add vào Phù nhưng bật gs lại báo lỗi



function tbChuangsongfu:OnTransBattle(nItemId)
if me.GetCamp() == 9 then ​
me.Msg("Phi phong chí tôn và vô song mới có thể tham gia Tống Kim đại chiến lúc 21 giờ ngày 28/5/2013");
return 0;
end
local pItem = KItem.GetObjById(nItemId);
if (not pItem) then
return;
end
Setting:SetGlobalObj(me, him, pItem);
Item:GetClass("songjinzhaoshu"):OnUse();
Setting:RestoreGlobalObj();
end

Có thể giúp minh đoạn code check danh vọng này khi đủ điều kiện là FF9 và FF10 không ?
Cảm ơn bạn !

omasa
28-05-13, 01:55 PM
Cảm ơn bạn đã trả lời !

Mình add vào Phù nhưng bật gs lại báo lỗi



Có thể giúp minh đoạn code check danh vọng này khi đủ điều kiện là FF9 và FF10 không ?
Cảm ơn bạn !



if me.GetCamp() < 9 then ​
me.Msg("Phi phong chí tôn và vô song mới có thể tham gia Tống Kim đại chiến lúc 21 giờ ngày 28/5/2013");
return 0;
end

dongahchu
28-05-13, 03:23 PM
if me.GetCamp() < 9 then ​
me.Msg("Phi phong chí tôn và vô song mới có thể tham gia Tống Kim đại chiến lúc 21 giờ ngày 28/5/2013");
return 0;
end




function tbChuangsongfu:OnTransBattle(nItemId)
if me.GetCamp() < 9 then ​
me.Msg("Phi phong chí tôn và vô song mới có thể tham gia Tống Kim đại chiến lúc 21 giờ ngày 28/5/2013");
return 0;
end
local pItem = KItem.GetObjById(nItemId);
if (not pItem) then
return;
end
Setting:SetGlobalObj(me, him, pItem);
Item:GetClass("songjinzhaoshu"):OnUse();
Setting:RestoreGlobalObj();
end

nhưng vẫn báo lỗi .
giúp mình với !

satthupro95
28-05-13, 03:27 PM
function tbChuangsongfu:OnTransBattle(nItemId)
if me.GetCamp() < 9 then ​
me.Msg("Phi phong chí tôn và vô song mới có thể tham gia Tống Kim đại chiến lúc 21 giờ ngày 28/5/2013");
return 0;
end
local pItem = KItem.GetObjById(nItemId);
if (not pItem) then
return;
end
Setting:SetGlobalObj(me, him, pItem);
Item:GetClass("songjinzhaoshu"):OnUse();
Setting:RestoreGlobalObj();
end

nhưng vẫn báo lỗi .
giúp mình với !

thử tất cả các kiểu vào thêm bớt cái hàm đấy các chỗ thử xem
<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>

omasa
28-05-13, 04:37 PM
thử tất cả các kiểu vào thêm bớt cái hàm đấy các chỗ thử xem
<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>

Vẫn chưa ngâm đc vụ check danh hiệu à satthu :ar!

__Jie__
28-05-13, 05:04 PM
Đầu tiên cần viết ra ý tưởng đã mọi người mới giúp dc bạn ví dụ

Bạn muốn

Phi phong chí tôn và vô song mới có thể tham gia Tống Kim đại chiến lúc 21 giờ ngày 28/5/2013

Tiếp tục ta thức hiện , không phải fix trong phù mà fix trong NPC báo danh
script\mission\battle\npc\mubingxiaowei.lua




local pPlayer = me;
local nCheckResult = self:CheckPlayer();

if (1 == nCheckResult) then
local nPLLevel = Battle.LEVEL_LIMIT[self.nLevel];
Dialog:Say(string.format(self.tbDialog[2], nPLLevel),
{
{string.format("Ta muốn gia nhập quân <color=red>%s<color>", Battle.NAME_CAMP[self.nCampId]), self.OnSingleJoin, self, pPlayer},
{"Để ta suy nghĩ đã"},
}
);
elseif (2 == nCheckResult) then
Dialog:Say("Ngươi muốn vào chiến trường bây giờ sao? Lúc chiến đấu, ngươi và người khác hợp thành tổ đội giết địch, một công đôi việc.",
{
{"Ta muốn vào chiến trường", self.OnSingleJoin, self, pPlayer},
{"Chờ chút hãy nói"},
}
);
end
Tiếp tục fix lại mình có nhầm lẫn tí về check Phi Phong nên post lại lun


function tbNpc:GetMantleLevel(pPlayer)
local pItem = pPlayer.GetItem(Item.ROOM_EQUIP, Item.EQUIPPOS_MANTLE, 0);
if not pItem then
return 0;
end
return pItem.nLevel;
end
-- ham check FF
if self:GetMantleLevel(me) < 9 then
Dialog:Say(" Khu đực trị khối u ác tính mang FF9 rồi vào");
return 0;
end



Fix.



local pPlayer = me;
local nCheckResult = self:CheckPlayer();
if self:GetMantleLevel(me) < 9 then
Dialog:Say(" Khu đực trị khối u ác tính mang FF9 rồi vào");
return 0;
end
if (1 == nCheckResult) then
local nPLLevel = Battle.LEVEL_LIMIT[self.nLevel];
Dialog:Say(string.format(self.tbDialog[2], nPLLevel),
{
{string.format("Ta muốn gia nhập quân <color=red>%s<color>", Battle.NAME_CAMP[self.nCampId]), self.OnSingleJoin, self, pPlayer},
{"Để ta suy nghĩ đã"},
}
);
elseif (2 == nCheckResult) then
Dialog:Say("Ngươi muốn vào chiến trường bây giờ sao? Lúc chiến đấu, ngươi và người khác hợp thành tổ đội giết địch, một công đôi việc.",
{
{"Ta muốn vào chiến trường", self.OnSingleJoin, self, pPlayer},
{"Chờ chút hãy nói"},
}
);
end

Nên thêm biến check time để chính xác là 21h mới chạy còn không cái trên h nào củng check b-(

vipbk
28-05-13, 05:40 PM
Hàm kiểm tra cấp vinh dự hiện tại : Áp dụng để đeo phi phong

me.GetHonorLevel();
VD: Nhân vật đang có vinh dự Võ Lâm cấp x, vinh dự Thủ Lĩnh cấp y, vinh dự Tài Phú cấp z
=> Hàm trên trả về giá trị max(x,y,z)

dongahchu
28-05-13, 08:34 PM
GetMantleLevel


Hàm này chắc chắn đúng rồi anh ạ
Em thử xem sao . Cảm ơn mấy a đã trả lời !

dongahchu
28-05-13, 08:45 PM
Đầu tiên cần viết ra ý tưởng đã mọi người mới giúp dc bạn ví dụ

Bạn muốn

Phi phong chí tôn và vô song mới có thể tham gia Tống Kim đại chiến lúc 21 giờ ngày 28/5/2013

Tiếp tục ta thức hiện , không phải fix trong phù mà fix trong NPC báo danh
script\mission\battle\npc\mubingxiaowei.lua




local pPlayer = me;
local nCheckResult = self:CheckPlayer();

if (1 == nCheckResult) then
local nPLLevel = Battle.LEVEL_LIMIT[self.nLevel];
Dialog:Say(string.format(self.tbDialog[2], nPLLevel),
{
{string.format("Ta muốn gia nhập quân <color=red>%s<color>", Battle.NAME_CAMP[self.nCampId]), self.OnSingleJoin, self, pPlayer},
{"Để ta suy nghĩ đã"},
}
);
elseif (2 == nCheckResult) then
Dialog:Say("Ngươi muốn vào chiến trường bây giờ sao? Lúc chiến đấu, ngươi và người khác hợp thành tổ đội giết địch, một công đôi việc.",
{
{"Ta muốn vào chiến trường", self.OnSingleJoin, self, pPlayer},
{"Chờ chút hãy nói"},
}
);
end
Tiếp tục fix lại mình có nhầm lẫn tí về check Phi Phong nên post lại lun


function tbNpc:GetMantleLevel(pPlayer)
local pItem = pPlayer.GetItem(Item.ROOM_EQUIP, Item.EQUIPPOS_MANTLE, 0);
if not pItem then
return 0;
end
return pItem.nLevel;
end
-- ham check FF
if self:GetMantleLevel(me) < 9 then
Dialog:Say(" Khu đực trị khối u ác tính mang FF9 rồi vào");
return 0;
end



Fix.



local pPlayer = me;
local nCheckResult = self:CheckPlayer();
if self:GetMantleLevel(me) < 9 then
Dialog:Say(" Khu đực trị khối u ác tính mang FF9 rồi vào");
return 0;
end
if (1 == nCheckResult) then
local nPLLevel = Battle.LEVEL_LIMIT[self.nLevel];
Dialog:Say(string.format(self.tbDialog[2], nPLLevel),
{
{string.format("Ta muốn gia nhập quân <color=red>%s<color>", Battle.NAME_CAMP[self.nCampId]), self.OnSingleJoin, self, pPlayer},
{"Để ta suy nghĩ đã"},
}
);
elseif (2 == nCheckResult) then
Dialog:Say("Ngươi muốn vào chiến trường bây giờ sao? Lúc chiến đấu, ngươi và người khác hợp thành tổ đội giết địch, một công đôi việc.",
{
{"Ta muốn vào chiến trường", self.OnSingleJoin, self, pPlayer},
{"Chờ chút hãy nói"},
}
);
end

Nên thêm biến check time để chính xác là 21h mới chạy còn không cái trên h nào củng check b-(






--------------------------------


Đoạn này mình chưa hiểu lắm

Vậy trong file
script\mission\battle\npc\mubingxiaowei.lua


local pPlayer = me;
local nCheckResult = self:CheckPlayer();

function tbNpc:GetMantleLevel(pPlayer)
local pItem = pPlayer.GetItem(Item.ROOM_EQUIP, Item.EQUIPPOS_MANTLE, 0);
if not pItem then
return 0;
end
return pItem.nLevel;
end

if self:GetMantleLevel(me) < 9 then
Dialog:Say(" Chỉ chấp nhận Chí tôn và Vô Song mới có thể tham gia Tống Kim Đại Chiến");
return 0;
end


if (1 == nCheckResult) then
local nPLLevel = Battle.LEVEL_LIMIT[self.nLevel];
Dialog:Say(string.format(self.tbDialog[2], nPLLevel),
{
{string.format("Ta muốn gia nhập quân <color=red>%s<color>", Battle.NAME_CAMP[self.nCampId]), self.OnSingleJoin, self, pPlayer},
{"Để ta suy nghĩ đã"},
}
;
elseif (2 == nCheckResult) then
Dialog:Say("Ngươi muốn vào chiến trường bây giờ sao? Lúc chiến đấu, ngươi và người khác hợp thành tổ đội giết địch, một công đôi việc.",
{
{"Ta muốn vào chiến trường", self.OnSingleJoin, self, pPlayer},
{"Chờ chút hãy nói"},
}
;
end


Cho cả đoạn màu đỏ + xanh vào hay chỉ xanh hoặc đỏ ?

dongahchu
28-05-13, 08:57 PM
đã làm đc , cảm ơn mấy anh nhiều !

__Jie__
28-05-13, 08:59 PM
share rõ rồi còn gì

Viết 1 hàm mới giống thế này ở file cần

function tbNpc:GetMantleLevel(pPlayer)
local pItem = pPlayer.GetItem(Item.ROOM_EQUIP, Item.EQUIPPOS_MANTLE, 0);
if not pItem then
return 0;
end
return pItem.nLevel;
end

sử dụng if check bên dưới chèn vào chổ cần check


if self:GetMantleLevel(me) < 9 then
Dialog:Say(" Khu đực trị khối u ác tính mang FF9 rồi vào");
return 0;
end