PDA

View Full Version : [KT] Xin hàm check npc



anhnhianh
11-07-15, 07:40 PM
ko biết hàm này có ko ạ. nếu có cho e xin. tks nhiều ạ :D

satthupro95
11-07-15, 09:48 PM
mỗi npc có sinh ra 1 cái dwId bác có thể dựa vào cái này để check :D

anhnhianh
11-07-15, 10:04 PM
mỗi npc có sinh ra 1 cái dwId bác có thể dựa vào cái này để check :D

nghĩa là sao vậy a? có thể cho ví dụ đc ko ạ :D

__Jie__
12-07-15, 08:25 PM
local tbAroundNpc = KNpc.GetAroundNpcList(me, 10); -- 10 la khoang cach tu nhan vat den npc
for _, pNpc in ipairs(tbAroundNpc) do
if (pNpc.nTemplateId == 200183) then -- 200183 la ma npc
-- cho nay thuc hien ý đồ của bạn
end
end

anhnhianh
12-07-15, 08:44 PM
local tbAroundNpc = KNpc.GetAroundNpcList(me, 10); -- 10 la khoang cach tu nhan vat den npc
for _, pNpc in ipairs(tbAroundNpc) do
if (pNpc.nTemplateId == 200183) then -- 200183 la ma npc
-- cho nay thuc hien ý đồ của bạn
end
end

đúng là hiện a ạ :)) tks a nhiều để test thử xem :)) đúng là cao nhân chỉ dạy :D

anhnhianh
14-07-15, 10:10 PM
đã test thử nhưng thất bại khi click phải vào thì nó báo như vầy
<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>
ĐÂY LÀ CODE

if (pNpc.nTemplateId == 9690) or (pNpc.nTemplateId == 9691) or (pNpc.nTemplateId == 9692) then
me.Msg("Đã có người bắt đầu rồi. giết hết boss đi rồi mở!!");
return
end
local nMapId, nPosX, nPosY = me.GetWorldPos();
KNpc.Add2(9690, 100, -1, 1834, 1448, 3461)
KNpc.Add2(9691, 100, -1, 1834, 1486, 3499)
end

ko biết có sai gì ko ạ. xin đc chỉ giáo ạ :)

satthupro95
14-07-15, 10:32 PM
đã test thử nhưng thất bại khi click phải vào thì nó báo như vầy
<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>
ĐÂY LÀ CODE

if (pNpc.nTemplateId == 9690) or (pNpc.nTemplateId == 9691) or (pNpc.nTemplateId == 9692) then
me.Msg("Đã có người bắt đầu rồi. giết hết boss đi rồi mở!!");
return
end
local nMapId, nPosX, nPosY = me.GetWorldPos();
KNpc.Add2(9690, 100, -1, 1834, 1448, 3461)
KNpc.Add2(9691, 100, -1, 1834, 1486, 3499)
end

ko biết có sai gì ko ạ. xin đc chỉ giáo ạ :)

Ý tưởng của bạn là gì ? ...................

anhnhianh
15-07-15, 08:46 AM
Ý tưởng của bạn là gì ? ...................

ý tưởng của em là e viết 1 script item. item đó sẽ gọi đc boss ra nhưng nếu có người gọi ra trước rồi thì sẽ ko gọi đc nữa giết boss đó xong thì mới gọi đc. ý tưởng e là thế ko biết a giúp đc ko ạ :(

__Jie__
15-07-15, 11:59 AM
Không biết code bạn lỗi gì vì bạn chưa show all tất cả ra
Lời khuyên không bao h check điều kiện return trong vòng lặp
Gán thêm 1 biến gọi để kiểm soát có hay không


Ví dụ : local nCheck = 0;
local tbAroundNpc = KNpc.GetAroundNpcList(me, 10); -- 10 la khoang cach tu nhan vat den npc
for _, pNpc in ipairs(tbAroundNpc) do
if (pNpc.nTemplateId == 200183) then -- 200183 la ma npc
nCheck = 1;
end
end
if nCheck > 0 then
me.Msg("Hoạt động đang diễn ra không thể bắt đầu nữa");
return 0;
end

anhnhianh
15-07-15, 10:15 PM
Không biết code bạn lỗi gì vì bạn chưa show all tất cả ra
Lời khuyên không bao h check điều kiện return trong vòng lặp
Gán thêm 1 biến gọi để kiểm soát có hay không


Ví dụ : local nCheck = 0;
local tbAroundNpc = KNpc.GetAroundNpcList(me, 10); -- 10 la khoang cach tu nhan vat den npc
for _, pNpc in ipairs(tbAroundNpc) do
if (pNpc.nTemplateId == 200183) then -- 200183 la ma npc
nCheck = 1;
end
end
if nCheck > 0 then
me.Msg("Hoạt động đang diễn ra không thể bắt đầu nữa");
return 0;
end


code đó là e show hết rồi.còn gs báo lỗi chỗ pNpc nó không hiểu chỗ này :(

__Jie__
16-07-15, 11:07 AM
Tôi chỉ thấy mỗi đoạn check if vs câu show ra và những lệnh add boss
Ngoài ra không thấy được hàm kiểm tra từ nhân vật đến npc

anhnhianh
16-07-15, 12:02 PM
Tôi chỉ thấy mỗi đoạn check if vs câu show ra và những lệnh add boss
Ngoài ra không thấy được hàm kiểm tra từ nhân vật đến npc

hàm kiểm tra từ nhân vật đến npc là sao hả a?

__Jie__
16-07-15, 12:56 PM
local tbAroundNpc = KNpc.GetAroundNpcList(me, 10); -- 10 la khoang cach tu nhan vat den npc
for _, pNpc in ipairs(tbAroundNpc) do
if (pNpc.nTemplateId == 200183) then -- 200183 la ma npc
-- cho nay thuc hien ý đồ của bạn
end
end

anhnhianh
16-07-15, 03:16 PM
ủa còn check khoảng cách nữa hả a? ko check đc trong map à?
ví dụ như trong map có npc đó rồi thì sẽ ko gọi đc thêm nữa??

__Jie__
16-07-15, 08:08 PM
Thế thì dùng Task Toàn SV mà Quyết định.
Tìm bài của satthu có share rồi .
Gán cho mỗi con boss khi chết trừ đi 1 là xong