PDA

View Full Version : [KT] em xin hàm đếm quái vật trên bản đồ



bangtamvnn
04-01-24, 12:32 PM
hiện tại kiếm thế của em thả 10 con boss ra,cho em hỏi có hàm nào đếm hoặc tìm kiếm được số boss em thả trong map đó theo tên hoặc id ko ạ ? để mỗi lần giết quái đó sẽ tính và hiện lên thông báo số quái còn lại.em cảm ơn ạ.

devgame1988
04-01-24, 02:04 PM
hiện tại kiếm thế của em thả 10 con boss ra,cho em hỏi có hàm nào đếm hoặc tìm kiếm được số boss em thả trong map đó theo tên hoặc id ko ạ ? để mỗi lần giết quái đó sẽ tính và hiện lên thông báo số quái còn lại.em cảm ơn ạ.

tạo task nha bạn , tao task ròi gắn vào player.lua thoi la dc

bangtamvnn
06-01-24, 11:43 AM
tạo task nha bạn , tao task ròi gắn vào player.lua thoi la dc

em đang làm cách này rồi nhưng có cách nào tốt hơn ko bác ? chứ player gắn nhiều hàm quá :D có hàm nào rút gọn đếm ko ạ. giống hàm xóa npc trong map ý :v

satthupro95
27-05-24, 01:38 AM
Sử dụng hàm này

local nTempIdNpc = ; -- ID của NPC
local szNameNPC = KNpc.GetNameByTemplateId(nTempIdNpc);

local nMapIdNeedCheck = me.nMapId;

local tbNpcList = KNpc.GetMapNpcWithName(nMapIdNeedCheck, szNameNPC);
if tbNpcList then
if (#tbNpcList > 0) then
me.Msg("Số lượng NPC "..szNameNPC.." có trên bản đồ là ".. #tbNpcList .."");
end
end

volamchina1
27-05-24, 10:30 PM
Sử dụng hàm này

local nTempIdNpc = ; -- ID của NPC
local szNameNPC = KNpc.GetNameByTemplateId(nTempIdNpc);

local nMapIdNeedCheck = me.nMapId;

local tbNpcList = KNpc.GetMapNpcWithName(nMapIdNeedCheck, szNameNPC);
if tbNpcList then
if (#tbNpcList > 0) then
me.Msg("Số lượng NPC "..szNameNPC.." có trên bản đồ là ".. #tbNpcList .."");
end
end

lâu quá không lên DD muốn liên với ông qua zalo thì làm sao đây ???

sindhand
10-06-24, 03:16 AM
Sử dụng hàm này

local nTempIdNpc = ; -- ID của NPC
local szNameNPC = KNpc.GetNameByTemplateId(nTempIdNpc);

local nMapIdNeedCheck = me.nMapId;

local tbNpcList = KNpc.GetMapNpcWithName(nMapIdNeedCheck, szNameNPC);
if tbNpcList then
if (#tbNpcList > 0) then
me.Msg("Số lượng NPC "..szNameNPC.." có trên bản đồ là ".. #tbNpcList .."");
end
end

Hàm này chỉ dùng cho đứng cùng map vs boss
vậy nếu ở map khác mà muốn check boss còn hay chết thì có hàm nào không ạ
nếu có cho mình xin với. tks nhiều ạ

anubisng
10-06-24, 11:00 PM
Hàm này chỉ dùng cho đứng cùng map vs boss
vậy nếu ở map khác mà muốn check boss còn hay chết thì có hàm nào không ạ
nếu có cho mình xin với. tks nhiều ạ

Có cách là dùng task chung toàn server để check. ví dụ quái xuất hiện thì task = 1, nếu quái chết thì set về 0. Nếu có nhiều npc giống nhau thì task chung = số npc khi nào npc chết thì task chung bị trừ dần đi

satthupro95
19-06-24, 06:07 PM
Khởi tạo 1 hàm Timer dạng

function ServerEvent:EventCheckCountNPCInMap_GS()
ServerEvent.nCountNPCInMap = 0;

if ServerEvent.nTimerStartNoteCountNPCInMap then
if ServerEvent.nTimerStartNoteCountNPCInMap > 0 then
Timer:Close(ServerEvent.nTimerStartNoteCountNPCInM ap);
ServerEvent.nTimerStartNoteCountNPCInMap = 0;
end
end

ServerEvent.nTimerStartNoteCountNPCInMap = Timer:Register(1 * Env.GAME_FPS, ServerEvent.TimerStartNoteCountNPCInMap, ServerEvent)
end

function ServerEvent:TimerStartNoteCountNPCInMap()
local nTempIdNpc = 1; -- ID của NPC
local szNameNPC = KNpc.GetNameByTemplateId(nTempIdNpc);

local nMapIdNeedCheck = 116; -- Khai báo IdMap muốn check

local tbNpcList = KNpc.GetMapNpcWithName(nMapIdNeedCheck, szNameNPC);
if tbNpcList then
if (#tbNpcList > 0) then
ServerEvent.nCountNPCInMap = #tbNpcList;
end
end
end

Đăng ký nó vào sự kiện mỗi khi mở server
ServerEvent:RegisterServerStartFunc(ServerEvent.Ev entCheckCountNPCInMap_GS, ServerEvent);

Với hàm này cứ 1 sẽ check số quái trên bản đồ lưu vào biến ServerEvent.nCountNPCInMap, muốn check thì gọi biến ServerEvent.nCountNPCInMap này ra là xong