PDA

View Full Version : [JX] Xóa NPC đã thêm trong mảng ?



phamngochai2
22-06-21, 10:57 PM
Cháo các bác, e có add NPC vào mảng để quản lý, lúc add thì ok, nhưng đến lúc chạy hàm xóa thì lại ko xóa được. Nhờ các cao nhân giúp đỡ ạ.


script_bantiec = "\\script\\event\\yentiecthitnuong\\bantiec.lua"
NPC_BANTIEC = {}


function addbantiec()
npcid = 1658
w,x,y = GetWorldPos()
npcmapindex = SubWorldID2Idx(w)
for i=1,10 do
a = random(-15,15)
b = random(-15,15)
nposx = (x+a)*32
nposy = (y+b)*32
NPC_BANTIEC[i] = AddNpc(npcid,1, npcmapindex, nposx, nposy)
SetNpcScript(NPC_BANTIEC[i], script_bantiec)
end
end


function XoaNPCBanTiec()
for i=1,10 do
if (NPC_BANTIEC[i] ~= nil or NPC_BANTIEC[i] ~= 0) then
DelNpc(NPC_BANTIEC[i])
end
end
end

HoangTVT
23-06-21, 12:24 AM
Bạn dùng cách này vô cùng k an toàn vì chỉ là temple thôi. Thử cách này nhé


function ClearMapNpcWithName(nMapID, szNpcName)
local tNpcID = GetMapNpcIdx(nMapID)
local nNpcCount = getn(tNpcID)
local nDelCount = 0
if nNpcCount > 0 then
for i=1,getn(tNpcID) do
if GetNpcName(tNpcID[i]) == szNpcName then
SetNpcLifeTime(tNpcID[i], 0)
nDelCount = nDelCount + 1
end
end
end
return nDelCount
end

lengoctuan.dl
23-06-21, 07:47 AM
Cháo các bác, e có add NPC vào mảng để quản lý, lúc add thì ok, nhưng đến lúc chạy hàm xóa thì lại ko xóa được. Nhờ các cao nhân giúp đỡ ạ.


script_bantiec = "\\script\\event\\yentiecthitnuong\\bantiec.lua"
NPC_BANTIEC = {}


function addbantiec()
npcid = 1658
w,x,y = GetWorldPos()
npcmapindex = SubWorldID2Idx(w)
for i=1,10 do
a = random(-15,15)
b = random(-15,15)
nposx = (x+a)*32
nposy = (y+b)*32
NPC_BANTIEC[i] = AddNpc(npcid,1, npcmapindex, nposx, nposy)
SetNpcScript(NPC_BANTIEC[i], script_bantiec)
end
end


function XoaNPCBanTiec()
for i=1,10 do
if (NPC_BANTIEC[i] ~= nil or NPC_BANTIEC[i] ~= 0) then
DelNpc(NPC_BANTIEC[i])
end
end
end

Sử dụng hàm SetNpcTimeOut để set thời gian DelNpc khỏi cần phải bỏ vào mảng

phamngochai2
23-06-21, 09:24 AM
Sử dụng hàm SetNpcTimeOut để set thời gian DelNpc khỏi cần phải bỏ vào mảng

cám ơn bác, để e thử xem sao.
30char

--- Chế độ gộp bài viết ---


Bạn dùng cách này vô cùng k an toàn vì chỉ là temple thôi. Thử cách này nhé


function ClearMapNpcWithName(nMapID, szNpcName)
local tNpcID = GetMapNpcIdx(nMapID)
local nNpcCount = getn(tNpcID)
local nDelCount = 0
if nNpcCount > 0 then
for i=1,getn(tNpcID) do
if GetNpcName(tNpcID[i]) == szNpcName then
SetNpcLifeTime(tNpcID[i], 0)
nDelCount = nDelCount + 1
end
end
end
return nDelCount
end

hàm này sv win có dùng được ko bác nhỉ ?

xomnhalalop12
23-06-21, 11:32 PM
cám ơn bác, để e thử xem sao.
30char

--- Chế độ gộp bài viết ---



hàm này sv win có dùng được ko bác nhỉ ?

HoangTVTeam là trùm WIN mà .................

hoivegame
24-06-21, 12:10 PM
Nếu bạn dùng jxwin thì hàm add và hàm del của table đó bạn cần phải được gọi chung 1 file.lua thì nó mới có thể lưu được data và del data chuẩn nha bạn.

phamngochai2
24-06-21, 07:53 PM
Nếu bạn dùng jxwin thì hàm add và hàm del của table đó bạn cần phải được gọi chung 1 file.lua thì nó mới có thể lưu được data và del data chuẩn nha bạn.

code mình có để ở trên đó bạn, đều nằm trên 1 file lua hết. Mình tham khảo cách addnpc từ event quả huy hoàng, nhưng ko hiểu sao quả huy hoàng delnpc dc, mà mình lưu vào mảng thì ko del dc