Bài viết này Gia sẽ hướng dẫn anh em cách chỉnh tỷ lệ rớt đồ trong game Võ Lâm Truyền Kỳ Offline. Chỉnh thế nào để sever rớt toàn đồ khủng đây nhỉ? Mời anh em theo dõi!

Lưu ý: Bài viết này áp dụng cho phiên bản võ lâm mã nguồn Jx-win bản Ngạo Tuyết/ Tuyệt Phẩm.

Tìm hiểu file quy định đồ rớt

Trong game Võ lâm truyền kỳ, tùy theo các bản đồ, loại npc mà có các file quy định tỷ lệ rớt đồ riêng. Mình sẽ chia ra 2 loại, bao gồm:

Các file quy định đồ rớt ở đâu

a. File tỷ lệ rớt đồ trên các bản đồ luyện công

Bản đồ luyện công trong Võ Lâm sẽ phân chia theo level như nhân vật. Ví dụ như từ level 1 đến 10 sẽ luyện tại các thôn, 10 đến 20 sẽ luyện tại các thành thị. Cứ như vậy sẽ có bản đồ 3x, 4x… đến 10x. Tỷ lệ rớt đồ của các loại bản đồ này sẽ nằm tại thư mục Droprate. Đường dẫn thư mục như sau: Thư mục sever/script/global/droprate (bản Ngạo Tuyết)

Mở thư mục này ra ae sẽ thấy các file có tên: “droprate0x.lua” “droprate1x.lua“… Đây chính là các file quy định cho các loại bản đồ mà mình nói ở trên.

b. Tỷ lệ rớt đồ theo loại NPC

Ngoài rớt theo bản đồ, Võ Lâm Truyền Kỳ còn có thể quy định rớt vật phẩm cho từng NPC (quái, boss). Mình sẽ lấy ví dụ về tỷ lệ rớt đồ của Boss Tiểu Hoàng Kim để anh em dễ theo dõi. File quy định tỷ lệ rớt trang bị của Boss Tiểu Hoàng Kim là: sever/script/global/droprate/drop_tieuhk.lua

Sever Võ Lâm Truyền Kỳ

Tương tự cho những loại NPC, Boss khác trong Võ Lâm. Anh em có thể tìm ra các file này để chỉnh sửa các loại trang bị có thể rớt ra.

Tìm hiểu cấu trúc của 1 file tỷ lệ rớt đồ

Đa số anh em nghĩ rằng việc chỉnh code trong Võ Lâm rất phức tạp nhưng mình dám chắc đọc xong bài này ae sẽ dễ dàng chỉnh code như 1 pro lập trình. (Yên tâm đọc tiếp nhé :D)

Đọc sơ qua các file quy định tỷ lệ rớt này, ae sẽ thấy nó tương tự nhau. Chỉ khác một vài chổ để quy định độ VIP hay vật phẩm cụ thể sẽ rớt ra.

Mình sẽ lấy ví dụ file droprate9x.lua, file quy định tỷ lệ rớt đồ của bản đồ 9x (Khỏa Lang Động, Sa Mạc, Trường Sơn Nam,,,)

Include("\\script\\header\\event_endtime.lua"); -- khai báo event
ITEMLIST = {5,2,13,0,1,3,1,13,1,1}
MONEY = 500 -- quy dinh so tien rot ra
function DropRate(NpcIndex)
local btype = GetBossType(NpcIndex); -- kiem tra quai thuong hay boss xanh
local ser = GetNpcSer(NpcIndex);
local pluck = GetLucky(); --may man cua nguoi choi
local maxlev = 5; -- chỉ số "Vip" của thuộc tính trang bị tối đa
local nSel = random(0,25); -- hàm chạy ngẫu nhiên từ 0 đến 25
local nItemIdx = 0;
if(RANDOM(750) <= pluck) then -- nếu mang may mắn cao sẽ có cơ hội ra đồ vip 
maxlev = 8
end
---------------- Phan 1 - Boss Xanh-----------------------------------------------------------
if(btype == 1) then--boss xanh
local bluedetail,blueparti,dropnum;
dropnum = 8; --so' luong. cuc. do` roi
for i=1,dropnum do
	nSel = random(0,10);
	if(nSel < 3) then
		DropNpcMoney(NpcIndex,MONEY)
	elseif(nSel == 9) then
		nItemIdx = ItemSetAdd(0, 2,12,0,0,5,0,0);
		SetItemPickDel(nItemIdx,1)
		DropNpcItemID(NpcIndex, nItemIdx);
	else
		if (RANDOM(2000)==500) then
			DropNpcItem(NpcIndex, 0, 2,7,0,0,5,0,0);
		else
		bluedetail = RANDOM(9);
		blueparti = RANDOM(ITEMLIST[bluedetail+1]);
		DropNpcItem(NpcIndex, 0, 0,bluedetail,blueparti,RANDOM(6,10),ser,pluck,
		RANDOM(4,maxlev),RANDOM(3,maxlev),RANDOM(2,maxlev),RANDOM(maxlev),RANDOM(maxlev),RANDOM(maxlev));
		end
	end
end
return end
--================================ Phan 2 Event ================================--
	DropEventMap9x(NpcIndex)
	c = random(150)
	if c == 20 then
		local nItemIdx = ItemSetAdd(0,4,65,0,0,5,1,0)
		DropNpcItemID(NpcIndex, nItemIdx);
	end
--------------------------------------------------------------------------------
if(nSel > 5) then	--khong rot
return end

------------------------Phan 3 - quai thuong
local minluck = 1;
local detail = RANDOM(9);
local parti = RANDOM(ITEMLIST[detail+1]);
	if(nSel < 2) then
		DropNpcMoney(NpcIndex,MONEY)
	elseif(nSel == 5) then
		nItemIdx = ItemSetAdd(0, 2,4,0,0,5,0,0);
		SetItemPickDel(nItemIdx,1)
		DropNpcItemID(NpcIndex, nItemIdx);
        elseif(nSel == 3) then
             if random(1,10) == 10 then
                DropNpcItem(NpcIndex, 0, 2,13,0,0,5,0,0)
             end   
	elseif(nSel == 4) then
		if(RANDOM(pluck) > 0) then
		minluck = 2;
		end
		DropNpcItem(NpcIndex, 0, 0,detail,parti,RANDOM(6,10),ser,pluck,
		RANDOM(minluck,maxlev),RANDOM(minluck,maxlev),RANDOM(maxlev),RANDOM(maxlev),RANDOM(maxlev),RANDOM(maxlev))
	end
end

Trong file code ở trên, ae sẽ thấy nội dung file này gồm 4 phần.

  • Phần 1: Khai báo các biến và lấy chỉ số may mắn của người chơi
  • Phần 2: Tỷ lệ rớt nếu là boss xanh
  • Phần 3: Tỷ lệ rớt event (nếu có)
  • Phần 4: Tỷ lệ rớt cho quái thưởng

Như vậy ae có thể hiểu được là nếu đánh trên các bản đồ này sẽ có thể rơi 1 trong các loại đồ quy định ở đây. Ví dự như:

  • Dòng DropNpcMoney(NpcIndex,MONEY) sẽ rơi tiền theo quy định.
  • Dòng “DropNpcItem(NpcIndex, 0, 2,7,0,0,5,0,0);” sẽ là phi phong

Tùy theo điều kiện nào thỏa mãn trước (hàm IF) thì các dòng trong đó sẽ thực hiện. Nếu không hiểu các hàm như “DropNpcItem“, “DropNpcMoney“, “DropNpcItemID” anh em có thể tham khảo cụ thể hơn tại đây