View Full Version : [KT] Hỏi Về Fix event Giao Thông  MariaOzaqua
 
 
visaothe123
11-12-14, 07:39 PM
Hiện Sever Có Event Giao Thông MariaOzawua, Lúc Giao Thông Thì Nó Delay 5 giay, gióng như mỡ rương thuốc vậy, lúc giao thông thành công thì sẽ nhận được PhầnThưỡng và MariOzawa Sẽ Biến Mắt.
Nhưng nó lỗi 1 cái là, 1 NPC MariaOzawua mà có thể Giao thông được nhiều lần Trong 1 Lúc. 
Ví Dụ:  Khi Giao Thông NPC  Maria0zawua Sẽ Delay 5 giay Sau Khi Giao Thông Xong Sẽ Nhận Đươc Phần Thưỡng, Mà Trong Lúc Giao Thông Có 4 Nhân Vật, Nhân Vật Thứ Nhất Giao Thông Trước và Đang Trong Tình Trạng Delay 5 giay, và 3 Nhân Vật Sau Cũng Đang Giao Thông Cùng 1 NPC Của Nhân Vật Thứ Nhất, Và Sau Đó Nhân Vật 1 Đã Giao Thông Thành Công Và Nhận Được Phần Thưỡng và NPC Cũng Biến Mắt Luôn, Nhưng 3 Nhân Vật Giao Thông Sau Đang Trong Tình Trang Delay, Sau Khi Hết Delay Mà Cũng Nhận Được Phần Thưỡng Trong Khi Đó NPC Đã Biến Mắt Trước Đó Rồi.
 Vậy Các Bác Cho Em Hỏi, Còn Thiếu Cái Hàm Nào Để Khi NPC biến Mắt rồi mà Nhân Vật Giao thông sau k nhận đc phần thưỡng nữa vậy.
skriptank
11-12-14, 08:54 PM
Á đù...KT có event nhạy cảm thế này sao                                                         :))
__Jie__
12-12-14, 07:11 AM
trong hàm nhận thưởng thêm 1 đoạn check kiểm tra có ID NPC đó ở gần đó không
Nếu không có break đi . Giải quyết xong vấn đề. Nhớ chèn trước đoạn xóa NPC nhé.
Vì theo mình nghỉ code theo dạng.
Nhận Thưởng trước xóa NPC sau.
Nên chèn check ID NPC trước nhận thưởng là được
visaothe123
12-12-14, 11:41 AM
uhm tks bác đã bày, nhưng code sau khi giao thông NPC thành công, mình để code như thế này, nhờ bác coi giúp và thêm task code như thế nào để mắt npc rồi, mà k nhận thưỡng đc, bác xem giúp
local tbItemId1	= {18,1,8009,1,0,0}; 
local nCount1 = me.GetItemCountInBags(18,1,8009,1)
	local i = 0;
	local nAdd = 0;
	local nRand = 0;
	local nIndex = 0;
	nRand = MathRandom(1, 100);
	local tbRate = {65, 16, 14, 5}; -- Rate Item
	local tbAward = {1 ,2, 3, 4}; -- Rate 4 con số
	for i = 1, 4 do
		nAdd = nAdd + tbRate[i];
		if nAdd >= nRand then
			nIndex = i;
			break;
		end
	end
if (tbAward[nIndex]==1) then 
me.AddStackItem(18,10,11,2,{bForceBind=0,},100) -- Mảnh Ấn
Task:DelItem(me, tbItemId1, 1); -- Xóa 1 Item tbItemId1 được khai báo ở trên
end
if (tbAward[nIndex]==2) then 
me.AddStackItem(18,10,11,2,{bForceBind=0,},100) -- Mảnh Ấn
Task:DelItem(me, tbItemId1, 1); -- Xóa 1 Item tbItemId1 được khai báo ở trên là
end
if (tbAward[nIndex]==3) then -- Xác xuất ra số 1 là 15/100 (15%)
me.AddStackItem(18,10,11,2,{bForceBind=0,},150) -- Mảnh Ấn
Task:DelItem(me, tbItemId1, 1); -- Xóa 1 Item tbItemId1 được khai báo ở trên là
end
if (tbAward[nIndex]==4) then -- Xác xuất ra số 1 là 5/100 (5%)
me.AddStackItem(18,10,11,2,{bForceBind=0,},200) -- Mảnh Ấn
Task:DelItem(me, tbItemId1, 1); -- Xóa 1 Item tbItemId1 được khai báo ở trên là
end
-------
local pNpc = KNpc.GetById(nNpcId);
pNpc.Delete();
if (not pNpc) then
return;
end
pNpc.Delete();
return 0
__Jie__
13-12-14, 07:24 AM
Tối pm yahoo giúp cho h đang trong cty không viết được
visaothe123
13-12-14, 02:09 PM
tks bac.
upppppppppppppppppppppppppppppp
__Jie__
13-12-14, 08:32 PM
Của bạn đây
	local nCheck = 0;
	local nTempId = 20123;-- ID của NPC Maria Ozawa
	local tbAroundNpc    = KNpc.GetAroundNpcList(me, 10);-- khoảng cách từ nhân vật đến NPC
		for _, pNpc in ipairs(tbAroundNpc) do
			if (pNpc.nTemplateId == nTempId) then
				nCheck = 1;
				break;
			end
		end	
		if nCheck ~= 1 then
			me.Msg("Xung quanh không có npc Maria Ozawa");
			return 0;
		end
local tbItemId1    = {18,1,8009,1,0,0};  
local nCount1 = me.GetItemCountInBags(18,1,8009,1) 
    local i = 0; 
    local nAdd = 0; 
    local nRand = 0; 
    local nIndex = 0; 
    nRand = MathRandom(1, 100); 
    local tbRate = {65, 16, 14, 5}; -- Rate Item 
    local tbAward = {1 ,2, 3, 4}; -- Rate 4 con số 
    for i = 1, 4 do 
        nAdd = nAdd + tbRate[i]; 
        if nAdd >= nRand then 
            nIndex = i; 
            break; 
        end 
    end 
if (tbAward[nIndex]==1) then  
me.AddStackItem(18,10,11,2,{bForceBind=0,},100) -- Mảnh Ấn 
Task:DelItem(me, tbItemId1, 1); -- Xóa 1 Item tbItemId1 được khai báo ở trên 
end 
if (tbAward[nIndex]==2) then  
me.AddStackItem(18,10,11,2,{bForceBind=0,},100) -- Mảnh Ấn 
Task:DelItem(me, tbItemId1, 1); -- Xóa 1 Item tbItemId1 được khai báo ở trên là 
end 
if (tbAward[nIndex]==3) then -- Xác xuất ra số 1 là 15/100 (15%) 
me.AddStackItem(18,10,11,2,{bForceBind=0,},150) -- Mảnh Ấn 
Task:DelItem(me, tbItemId1, 1); -- Xóa 1 Item tbItemId1 được khai báo ở trên là 
end 
if (tbAward[nIndex]==4) then -- Xác xuất ra số 1 là 5/100 (5%) 
me.AddStackItem(18,10,11,2,{bForceBind=0,},200) -- Mảnh Ấn 
Task:DelItem(me, tbItemId1, 1); -- Xóa 1 Item tbItemId1 được khai báo ở trên là 
end 
------- 
local pNpc = KNpc.GetById(nNpcId); 
pNpc.Delete(); 
if (not pNpc) then 
return; 
end 
pNpc.Delete(); 
return 0  
Phần màu đỏ là update thêm
 
Powered by vBulletin® Version 4.2.0 Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.