[KT] Giúp đỡ làm NPC tự di chuyển theo tọa độ
Hello & Welcome to our community. Is this your first visit? Đăng Ký
Follow us on
Follow us on Facebook Follow us on Twitter Linked In Flickr Watch us on YouTube My Space Blogger
 
Trang 1 của 2 1 2 CuốiCuối
Kết quả 1 đến 10 của 20
  1. #1
    Vi phạm quy định kebactinh86's Avatar
    Ngày tham gia
    Apr 2010
    Đang ở
    https://t.me*********
    Bài viết
    217
    Thanks
    32
    Thanked 97 Times in 40 Posts

    Icon8 Giúp đỡ làm NPC tự di chuyển theo tọa độ

    Số là đang mò viết code vận tiêu lục tung các code các npc thì thấy có cái code towerdefen có cái hộ tống npc viết bằng code nên mần mò viết theo .Code chạy ko có báo lỗi load nhưng khi thực thi hàm npcMove thì nó chỉ xóa npc tạo lại npc ngay vị trí đó chứ npc ko di chuyển ai ghóp ý code với
    Code:
    local tbNpc = Npc:GetClass("npc_tudichuyen");
    
    tbNpc.tbNpcMoveLeft		= {};		
    tbNpc.tbNpcMoveRight	= {};		
    function tbNpc:OnDialog()
    	DoScript("\\script\\npc\\npc_tudichuyen.lua");
    
    	local tbOpt = {};
    		table.insert(tbOpt, 1, {"<pic=283><color=yellow>[Chức năng]<color> <color=cyan>NPC di chuyển<color>", self.SetNpcMoveAI, self,9713});
    
    		table.insert(tbOpt, 2, {"<pic=288>Kết Thúc đối thoại"});
    	
    	Dialog:Say("<color=green>Xin Chào <color=cyan>" ..me.szName.. "<color>.",tbOpt);
    end
    
    local tbMove_Right = Lib:LoadTabFile("\\script\\npc\\toado\\npc_move_right.txt");
    local tbBossMove = Lib:LoadTabFile("\\script\\ncp\\toado\\boss_move.txt");
    
    for _, pos in ipairs(tbMove_Right) do
        table.insert(tbNpc.tbNpcMoveRight, {tonumber(pos["TRAPX"]), tonumber(pos["TRAPY"])});
    end
    
    
    function tbNpc:SetNpcMoveAI(nNpcId)
    	local pNpc = KNpc.GetById(nNpcId);
    	if not pNpc then
    		return 0;
    	end
    	local tbNpcMove = {};
    			tbNpcMove = self.tbNpcMoveRight;
    			
    	local nCurMapId, nCurPosX, nCurPosY = him.GetWorldPos();
    	him.Delete();
    	
    	local pFightNpc		= KNpc.Add2(9713, 150, -1, nCurMapId, nCurPosX, nCurPosY, 0, 0, 1);
    	
    
    --	tbInstancing.nGirlId	= pFightNpc.dwId;
    	
    	pFightNpc.szName	= "Tiểu Liên";
    	pFightNpc.SetTitle("Do đội của <color=yellow>"..me.szName.."<color> hộ tống");
    	pFightNpc.SetCurCamp(0);
    	
    	pFightNpc.RestoreLife();
    	
    --	pFightNpc.GetTempTable("Npc").tbOnArrive = {tbNpc.OnArrive, tbNpc, pFightNpc, me};
    
    	pFightNpc.AI_ClearPath();
    	
    	for _,Pos in ipairs(tbNpcMove) do
    		if (Pos[1] and Pos[2]) then
    			pFightNpc.AI_AddMovePos(tonumber(Pos[1])*32, tonumber(Pos[2])*32)
    			Dialog:Say("<color=green>Xin Chào <color=cyan>" ..tonumber(Pos[1])*32 .. " + " ..tonumber(Pos[2])*32 .. "<color>.",tbOpt);
    		end
    	end;
    	
    	pFightNpc.SetNpcAI(9, 50, 1,-1, 25, 25, 25, 0, 0, 0, me.GetNpc().nIndex);
    	
    --	tbInstancing.nGirlProStep = 1;
    end
    các cao thủ ẩn dật hết rùi pm vài ng mà ko ai trả lời nên vọc vạch tự viết trình gà mong mọi ng giúp đỡ
    Khách viếng thăm hãy cùng kebactinh86 xây dựng diễn đàn CLBGAMESVN vững mạnh nhé!

  2. #2
    Thành Viên visaothe123's Avatar
    Ngày tham gia
    Aug 2014
    Đang ở
    zalo: 0898240744
    Bài viết
    261
    Thanks
    30
    Thanked 82 Times in 55 Posts

    Ðề: Giúp đỡ làm NPC tự di chuyển theo tọa độ

    Trích dẫn Gửi bởi kebactinh86 [Only registered and activated users can see links. ]
    Số là đang mò viết code vận tiêu lục tung các code các npc thì thấy có cái code towerdefen có cái hộ tống npc viết bằng code nên mần mò viết theo .Code chạy ko có báo lỗi load nhưng khi thực thi hàm npcMove thì nó chỉ xóa npc tạo lại npc ngay vị trí đó chứ npc ko di chuyển ai ghóp ý code với
    Code:
    local tbNpc = Npc:GetClass("npc_tudichuyen");
    
    tbNpc.tbNpcMoveLeft		= {};		
    tbNpc.tbNpcMoveRight	= {};		
    function tbNpc:OnDialog()
    	DoScript("\\script\\npc\\npc_tudichuyen.lua");
    
    	local tbOpt = {};
    		table.insert(tbOpt, 1, {"<pic=283><color=yellow>[Chức năng]<color> <color=cyan>NPC di chuyển<color>", self.SetNpcMoveAI, self,9713});
    
    		table.insert(tbOpt, 2, {"<pic=288>Kết Thúc đối thoại"});
    	
    	Dialog:Say("<color=green>Xin Chào <color=cyan>" ..me.szName.. "<color>.",tbOpt);
    end
    
    local tbMove_Right = Lib:LoadTabFile("\\script\\npc\\toado\\npc_move_right.txt");
    local tbBossMove = Lib:LoadTabFile("\\script\\ncp\\toado\\boss_move.txt");
    
    for _, pos in ipairs(tbMove_Right) do
        table.insert(tbNpc.tbNpcMoveRight, {tonumber(pos["TRAPX"]), tonumber(pos["TRAPY"])});
    end
    
    
    function tbNpc:SetNpcMoveAI(nNpcId)
    	local pNpc = KNpc.GetById(nNpcId);
    	if not pNpc then
    		return 0;
    	end
    	local tbNpcMove = {};
    			tbNpcMove = self.tbNpcMoveRight;
    			
    	local nCurMapId, nCurPosX, nCurPosY = him.GetWorldPos();
    	him.Delete();
    	
    	local pFightNpc		= KNpc.Add2(9713, 150, -1, nCurMapId, nCurPosX, nCurPosY, 0, 0, 1);
    	
    
    --	tbInstancing.nGirlId	= pFightNpc.dwId;
    	
    	pFightNpc.szName	= "Tiểu Liên";
    	pFightNpc.SetTitle("Do đội của <color=yellow>"..me.szName.."<color> hộ tống");
    	pFightNpc.SetCurCamp(0);
    	
    	pFightNpc.RestoreLife();
    	
    --	pFightNpc.GetTempTable("Npc").tbOnArrive = {tbNpc.OnArrive, tbNpc, pFightNpc, me};
    
    	pFightNpc.AI_ClearPath();
    	
    	for _,Pos in ipairs(tbNpcMove) do
    		if (Pos[1] and Pos[2]) then
    			pFightNpc.AI_AddMovePos(tonumber(Pos[1])*32, tonumber(Pos[2])*32)
    			Dialog:Say("<color=green>Xin Chào <color=cyan>" ..tonumber(Pos[1])*32 .. " + " ..tonumber(Pos[2])*32 .. "<color>.",tbOpt);
    		end
    	end;
    	
    	pFightNpc.SetNpcAI(9, 50, 1,-1, 25, 25, 25, 0, 0, 0, me.GetNpc().nIndex);
    	
    --	tbInstancing.nGirlProStep = 1;
    end
    các cao thủ ẩn dật hết rùi pm vài ng mà ko ai trả lời nên vọc vạch tự viết trình gà mong mọi ng giúp đỡ
    Code này liên quan tới file txt tọa độ, nên k thể duy chuyển, nhưng Code này k thể dùng đc, liên kết rất nhiều script và txt.. Bác Tính làm hộ tống vạn tiêu ???.................
    Lần sửa cuối bởi visaothe123, ngày 19-09-16 lúc 04:46 PM.
    Khách viếng thăm hãy cùng visaothe123 xây dựng diễn đàn CLBGAMESVN vững mạnh nhé!

  3. #3
    Vi phạm quy định kebactinh86's Avatar
    Ngày tham gia
    Apr 2010
    Đang ở
    https://t.me*********
    Bài viết
    217
    Thanks
    32
    Thanked 97 Times in 40 Posts

    Ðề: Giúp đỡ làm NPC tự di chuyển theo tọa độ

    Vâng bác chính là cái độ tống vận tiêu đó.Mình có thử xuất 2 biến tọa độ load từ trong file txt ra thì thấy tọa độ chuẩn so vs mình để bên file txt rồi mà sao npc chỉ xóa npc cũ và tạo 1 npc mới đứng yên đó thôi bác ah
    Khách viếng thăm hãy cùng kebactinh86 xây dựng diễn đàn CLBGAMESVN vững mạnh nhé!

  4. #4
    Thành Viên visaothe123's Avatar
    Ngày tham gia
    Aug 2014
    Đang ở
    zalo: 0898240744
    Bài viết
    261
    Thanks
    30
    Thanked 82 Times in 55 Posts

    Ðề: Giúp đỡ làm NPC tự di chuyển theo tọa độ

    Trích dẫn Gửi bởi kebactinh86 [Only registered and activated users can see links. ]
    Vâng bác chính là cái độ tống vận tiêu đó.Mình có thử xuất 2 biến tọa độ load từ trong file txt ra thì thấy tọa độ chuẩn so vs mình để bên file txt rồi mà sao npc chỉ xóa npc cũ và tạo 1 npc mới đứng yên đó thôi bác ah
    ip sdt add yahoo.. code đó fixx nhiều thứ, vì nó liên kết với n.vụ .. nên cần fix nhiều file.
    Khách viếng thăm hãy cùng visaothe123 xây dựng diễn đàn CLBGAMESVN vững mạnh nhé!

  5. #5
    Vi phạm quy định
    Ngày tham gia
    Mar 2014
    Bài viết
    365
    Thanks
    118
    Thanked 25 Times in 25 Posts

    Ðề: Giúp đỡ làm NPC tự di chuyển theo tọa độ

    Trích dẫn Gửi bởi visaothe123 [Only registered and activated users can see links. ]
    ip sdt add yahoo.. code đó fixx nhiều thứ, vì nó liên kết với n.vụ .. nên cần fix nhiều file.
    chỉ e làm với a .. e cũng mún thử cái scrip vận tiêu này mà làm hoài k dc
    Khách viếng thăm hãy cùng hxhhxhz xây dựng diễn đàn CLBGAMESVN vững mạnh nhé!

  6. #6
    Thành Viên Tâm Huyết satthupro95's Avatar
    Ngày tham gia
    Jan 2012
    Bài viết
    2,395
    Thanks
    2,566
    Thanked 1,828 Times in 869 Posts

    Ðề: Giúp đỡ làm NPC tự di chuyển theo tọa độ

    nghiên cứu cái protect npc, truyền tham số vào hàm
    Khách viếng thăm hãy cùng satthupro95 xây dựng diễn đàn CLBGAMESVN vững mạnh nhé!

  7. #7
    Thành Viên Tâm Huyết __Jie__'s Avatar
    Ngày tham gia
    Sep 2008
    Bài viết
    1,314
    Thanks
    256
    Thanked 738 Times in 558 Posts

    Ðề: Giúp đỡ làm NPC tự di chuyển theo tọa độ

    Làm trong code thì hình như chỉ di chuyển dc trong 1 map không thể qua map khác (chưa view sâu vào code nên không biết có thể mở rộng không).

    Nên nghiên cứu về task_publish lão toại hình như biết pm lão thử
    Nhận viết sự kiện Kiếm Thế PC - Kiếm Thế Mobile
    Bishop check pass 100% kiếm thế win
    Web: [Only registered and activated users can see links. ]

  8. #8
    Vi phạm quy định kebactinh86's Avatar
    Ngày tham gia
    Apr 2010
    Đang ở
    https://t.me*********
    Bài viết
    217
    Thanks
    32
    Thanked 97 Times in 40 Posts

    Ðề: Giúp đỡ làm NPC tự di chuyển theo tọa độ

    Task mình có unpack ra cũng tìm tới chỗ nó gọi protec NPC cơ mà ko thấy khúc truyền tọa độ và ko biết khúc npc gọi hoặc load file xml ra sao hihi
    Khách viếng thăm hãy cùng kebactinh86 xây dựng diễn đàn CLBGAMESVN vững mạnh nhé!

  9. #9
    Vi phạm quy định kebactinh86's Avatar
    Ngày tham gia
    Apr 2010
    Đang ở
    https://t.me*********
    Bài viết
    217
    Thanks
    32
    Thanked 97 Times in 40 Posts

    Ðề: Giúp đỡ làm NPC tự di chuyển theo tọa độ

    Code:
    local tbNpc		= Npc:GetClass("hotongMiNu");
    
    tbNpc.tbTrack	= {
    	{1696, 3659},
    	{1680, 3613},
    	{1674, 3581},
    	{1647, 3544},
    	{1604, 3522},
    	{1640, 3483	},
    	{1630, 3417},
    	{1652, 3361},
    	{1645, 3313},
    	{1679, 3374},
    	{1727, 3348},
    	{1769, 3367},
    	
    }
    
    tbNpc.NRANGE = 200; 	
    
    local tbEvent = 
    {
    	Player.ProcessBreakEvent.emEVENT_MOVE,
    	Player.ProcessBreakEvent.emEVENT_ATTACK,
    	Player.ProcessBreakEvent.emEVENT_SITE,
    	Player.ProcessBreakEvent.emEVENT_USEITEM,
    	Player.ProcessBreakEvent.emEVENT_ARRANGEITEM,
    	Player.ProcessBreakEvent.emEVENT_DROPITEM,
    	Player.ProcessBreakEvent.emEVENT_SENDMAIL,		
    	Player.ProcessBreakEvent.emEVENT_TRADE,
    	Player.ProcessBreakEvent.emEVENT_CHANGEFIGHTSTATE,
    	Player.ProcessBreakEvent.emEVENT_CLIENTCOMMAND,
    	Player.ProcessBreakEvent.emEVENT_ATTACKED,
    	Player.ProcessBreakEvent.emEVENT_DEATH,
    	Player.ProcessBreakEvent.emEVENT_LOGOUT,
    }
    
    
    function tbNpc:OnDialog()
    DoScript("\\script\\Copdakto\\npc\\HoTong.lua");
    	local nKeys		= me.GetItemCountInBags(18,1,95,1);
    	
    	--if nKeys > 0 then
    		Dialog:Say("Hiệp sĩ, không tìm được chiếc chìa khóa đó sao?", {
    				  {"Nào, để ta giúp ngươi mở chiếc khóa này!", tbNpc.Release, tbNpc, him.dwId},
    				  {"Hãy đợi", tbNpc.OnExit, tbNpc},
    				});
    	--else
    		--Dialog:Say("Cái bọn khốn khiếp đó…chỉ cần ngươi mở giúp ta cái khóa chết tiệt này, ta sẽ giúp ngươi mở đại môn đó, tiêu diệt sạch lũ cướp kia!");
    		--return;
    	--end;
    end;
    
    
    function tbNpc:Release(nNpcId)
    	local nKeys		= me.GetItemCountInBags(18,1,95,1);
    	
    	--if nKeys <=0 then
    	--	Dialog:Say("Hầy!...Cứ đi trong thành, ráng tìm cho được chiếc chìa khóa đó đi!");
    	--	return;
    	--end;
    	
    	local pNpc	= KNpc.GetById(nNpcId);
    	
    	if not pNpc then return; end;
    	
    	me.ConsumeItemInBags(1, 18, 1, 95, 1);
    	
    local pDialogNpc = KNpc.GetById(pNpc.dwId);
    	
    	
    	local tbFightNpc = {10141, 10234, 20152, 2421, 2422, 2423, 2424, 2425, 2426};
    	local nRand = MathRandom(#tbFightNpc);
    	local tbNpcFight = tbFightNpc[nRand];
    	local nCurMapId, nCurPosX, nCurPosY = pNpc.GetWorldPos();
    	--pNpc.Delete();
    	
    			local pFightNpc		= KNpc.Add2(tbNpcFight, 1, -1, nCurMapId, nCurPosX, nCurPosY, 0, 0, 1);
    
    			
    			--pFightNpc.szName	= "Úy Lữ";
    			pFightNpc.SetTitle(" Do đội <color=yellow>"..me.szName.."<color> bảo vệ");
    			pFightNpc.SetCurCamp(0);
    	
    			pFightNpc.RestoreLife();
    
    			pFightNpc.AI_ClearPath();
    			--pFightNpc.AddTaskState(1475);
    			for _,Pos in ipairs(self.tbTrack) do
    				if (Pos[1] and Pos[2]) then
    					pFightNpc.AI_AddMovePos(tonumber(Pos[1])*32, tonumber(Pos[2])*32)
    				end
    			end
    
    		pFightNpc.SetNpcAI(9, 0, 0, -1, 25, 25, 25, 0, 0, 0, 0, me.GetNpc().nIndex);
    		--Timer:Register(12 * Env.GAME_FPS, self.Chat, self, pFightNpc);
    
    end;
    
    function tbNpc:Chat(pFightNpc)
    	if pFightNpc then
    	local tbMsg = {"Bọn bây rồi sẽ biết mùi vị đau đớn như thế nào...",
    				   "Đói bụng quá không thể về nhà được~~~",
    				   "Các ngươi đâu cả rồi~~~",
    				   "Hãy xem ta đây~~~", 
    				   "Theo gái sướng hơn~~~",
    				   "Giết hết, giết hết~~~~",
    				   "Nơi đây vốn không phải là địa bàn của các ngươi!~~~",
    				   "Chào mừng bạn đến với Ngọa Long Kiếm!"};
    		local nRand = MathRandom(#tbMsg);
    		pFightNpc.SendChat(tbMsg[nRand]);
    	end
    end;
    
    -- 護送 NPC 小憐被殺死
    function tbNpc:OnDeath(pNpc)
    	local nMapId, nMapX, nMapY	= him.GetWorldPos();
    	local tbInstancing = TreasureMap:GetInstancing(nMapId);
    	
    	tbInstancing.nGirlKilled	= 1;
    end;
    Mình đã làm cho npc di chuyển theo tọa độ add bên trên trong map dc rồi.Nói chung chỉ cần di chuyển trong map cố định thôi không cần quá cáo siêu.Nhưng bây giờ mình muốn chèn cái code khi đến vị trí cuối thì nhận thưởng và xóa npc tiêu xa
    Code:
    for _,Pos in ipairs(self.tbTrack) do
    				if (tonumber(Pos[1])==1769 and tonumber(Pos[2])==3367) then
    					thực thi lệnh xóa npc và add phần thưởng
    				end
    			end
    nhưng mình không biết chèn code này vào khúc nào để nó thực thi so sánh tọa độ cuối.Ah còn cái check ng chơi bên cạnh nữa hjhj bí quá cao nhân nào giúp với
    Khách viếng thăm hãy cùng kebactinh86 xây dựng diễn đàn CLBGAMESVN vững mạnh nhé!

  10. #10
    Thành Viên Tâm Huyết wermanhme1990's Avatar
    Ngày tham gia
    Apr 2008
    Bài viết
    1,594
    Thanks
    78
    Thanked 669 Times in 483 Posts

    Ðề: Giúp đỡ làm NPC tự di chuyển theo tọa độ

    nếu cách đó đang bí, có thể dùng cách trả tiêu xa cho npc như bên phong thần vậy.
    Khách viếng thăm hãy cùng wermanhme1990 xây dựng diễn đàn CLBGAMESVN vững mạnh nhé!

 

 
Trang 1 của 2 1 2 CuốiCuối

Các Chủ đề tương tự

  1. [JX] Help Đổi xếp hạng ? k xếp theo rank mà xếp hiện thị theo số lượng tinh lực
    Bởi HungDevJX trong diễn đàn Hỏi Đáp/ Yêu Cầu
    Trả lời: 20
    Bài viết cuối: 30-07-16, 11:21 AM
  2. [TLBB] Dịch Chuyển Theo Thời Gian Hệ THống
    Bởi haxlaye trong diễn đàn Hỏi Đáp/ Yêu Cầu
    Trả lời: 1
    Bài viết cuối: 02-10-15, 11:23 PM
  3. Chuyên dụng chẩn đoán và theo dõi sức khỏe của ổ đĩa
    Bởi anhkhongdoiqua trong diễn đàn Công cụ dành cho PC
    Trả lời: 0
    Bài viết cuối: 02-11-14, 05:40 PM
  4. Mepmedia Absolute Audio Converter - Chuyển đổi âm thanh chuyên nghiệp gọn nhẹ
    Bởi PandavB trong diễn đàn Phần mềm dành cho Giải Trí
    Trả lời: 0
    Bài viết cuối: 20-02-14, 09:22 AM
  5. [MU] Vẫn chuyện của ngày xưa: Máy chủ tăng ram dần dần theo time chạy Server
    Bởi eva0001 trong diễn đàn Hỏi Đáp/ Yêu Cầu
    Trả lời: 1
    Bài viết cuối: 09-09-12, 11:48 AM

Quyền viết bài

  • Bạn Không thể gửi Chủ đề mới
  • Bạn Không thể Gửi trả lời
  • Bạn Không thể Gửi file đính kèm
  • Bạn Không thể Sửa bài viết của mình
  •  
Múi giờ GMT +7. Bây giờ là 02:25 PM.
vBulletin®, Copyright ©2000-2011, Jelsoft Enterprises Ltd.
CLBGamesVN không chịu trách nhiệm về Luật Bản Quyền của các tài liệu, bài viết v.v...được đăng tải trên diễn đàn này.
Diễn đàn phát triển dưới sự đóng góp của tất cả thành viên. BQT chỉ là những người thành lập ra sân chơi, quản lý và duy trì về mặt kỹ thuật, nội dung khi hợp lệ.