PDA

View Full Version : [JXOFFLINE]Cách Viết Nhiệm Vụ Môn Phái



vhungnt
22-05-07, 09:43 AM
Sau đây mình sẽ trình bày một số hàm hỗ trợ các bạn trong quá trình viết script nhiệm vụ.
Hàm giao nhiệm vụ : SetTask(id,value)
dùng để giao nhiệm vụ cho nhân vật khi nói chuyện với npc
id là id của nhiệm vụ, cái này là tự mình đặt, các id nhiệm vụ nên qui hoạch cụ thể và không nên giống nhau.
Ví dụ SetTask(1,10) : giao nhiệm vụ 1 cho nhân vật, giá trị là 10

Hàm kiểm tra nhiệm vụ : GetTask(id)
dùng để kiểm tra nhiệm vụ cho nhân vật khi nói chuyện với npc
id là id của nhiệm vụ, ví dụ nếu sử dụng lệnh GetTask(1) ta sẽ được giá trị là 10

Hàm thêm item nhiệm vụ : AddEventItem(id)
Hàm này có 2 cách sử dụng add bằng id hoặc tên của đồ vật cũng được. Thông tin này chứa trong file questkey.txt trong thư mục settings/item

Ví dụ Thêm miếng da trâu : id 178
AddEventItem(178)

Hàm HaveItem(id) để kiểm tra item trên hành trang(rương) của nhân vật
Ngược lại với hàm trên
DelItem()
Xóa item đi khi đã hoàn thành nv
----------------------------------------------------------
Qua các hàm trên mình nên thống nhất với nhau id nhiệm vụ môn phái qui ước như sau :
Thiếu lâm : 1
Thiên Vương : 2
Ngũ Độc : 3
Đường Môn : 4
Thúy Yên : 5
Nga My : 6
Cái Bang : 7
Thiên Nhẫn : 8
Côn Lôn : 9
Võ Đang : 10
----------------------------------------------------------
Ví dụ về nhiệm vụ : Tôi xin lấy nhiệm vụ cấp 10 phái Cái bang làm ví dụ để mọi người dễ hiểu nha :
Nhiệm vụ cấp 10: - Sẽ được phong là: Chấp Đại Đệ tử - Học được võ công: Cái Bang Bổng pháp , Cái Bang Chưởng pháp - Nơi tiếp nhận nhiệm vụ: Bang chủ Hà Nhân Ngã Các bước thực hiện nhiệm vụ:
Bước 1: Đến gặp Bang chủ Hà Nhân Ngã (191/231) , tiếp nhận nhiệm vụ đi mua rượu.
Bước 2: Đến Tửu lầu ở Dương Châu, gặp ông chủ tửu điếm (216/189), nhấp vào lời thoại. Mua được bốn loại rượu , duy chỉ có Huệ Tuyền tửu thì vừa bán cho Túy Bán Tiên mất rồi!
Bước 3: Nhìn sang bên cạnh thấy Túy Bán Tiên đang đứng uống rượu, trả lời đúng ba câu hỏi sẽ nhận được Huệ Tuyền Tửu (Đáp án chính xác là : C, B, D).
Bước 4: Mang năm loại rượu về giao cho Bang chủ Hà Nhân Ngã , hoàn thành nhiệm vụ.

-------------------------------------------------------
Đó là nguyên văn trên web võ lâm.
Phân tích :
Người chơi sẽ qua các bước sau :
0 : Người chơi chưa làm gì hết
1 : Nhận nhiệm vụ tại chỗ HNN
2 : Mua được rượu nhưng thiếu Huệ Huyền Tửu
3 : Trả lời câu hỏi 1 đáp án c/4 câu
4 : trả lời câu hỏi 2 đáp án b/4 câu
5 : trả lời câu hỏi 3 đáp án d/4 câu và nhận Huệ Huyền Tửu
6 : Gặp HNN hoàn thành nv
Hàm ví dụ :
-------------------------------------------------------
Script add vào file Hà Nhân Ngã :
function main(sel)
if (GetTask(7) == 0) then --Bat dau nhan nhiem vu
SayEx({"Ha Nhan Nga : Nhan nhiem vu mua ruou?", "Dong y./yes", "Tu Choi./no"}); -- Hoi xem co muon nhan nhiem vu khong
elseif (GetTask(7) == 5) then --Kiem tra xem da hoan thanh nhiem vu chua
if HaveItem(76) then -- Kiem tra xem co Hue Huyen Tuu hay khong
Talk(1, "", "Ha Nhan Nga : Da hoan thanh nhiem vu")
SetTask(7,6) -- Danh dau da hoan thanh nhiem vu
DelItem(76) -- Xoa item nay di
AddMagic(115) -- Hoc duoc Cai bang bong phap
AddMagic(116) -- Hoc duoc Cai bang chuong phap
else
Talk(1, "", "Ha Nhan Nga : chua co ruou Hue Tuyen Tuu")
end
else -- Neu khong phai gia tri 0 hoac 5
Talk(1, "", "Ha Nhan Nga : Hay lam xong nhiem vu hay den day")
end
end;
function yes()
Talk(1, "", "Ha Nhan Nga : Di mua ruou di.") --Nhan nhiem vu di mua ruou
SetTask(7,1) --Set nhiem vu gia tri 1
end;
function no()
end;
-------------------------------------------------------------------
Script add vào file Chủ tiệm rượu :
function main(sel)
if (GetTask(7) == 1) then --Kiem tra xem co dang thuc hien nv mua ruou hay ko
SayEx({"Chu tiem : Mua ruou?", "Dong y./yes", "Tu Choi./no"}); -- Hoi xem co muon mua ruou khong
else
Talk(1, "", "Ha Nhan Nga : Mua ruou di.")
end
end;
function yes()
Talk(1, "","Chu tiem : Thieu ruou Hue Huyen tuu.");
SetTask(7,2) -- Set gia tri 2
end;
function no()
end;
--------------------------------------------------------------------------
Script add vào file Túy bán tiên :
function main(sel)
if (GetTask(7) == 2) then --Kiem tra xem co dang thuc hien nv mua ruou hay ko
SayEx({"Tuy ban tien : tra loi cau hoi 1?", "dap an 1./sai","dap an 2./sai","dap an 3./dung1", "dap an 4./sai"}); -- Hoi nguoi choi cau hoi 1
elseif (GetTask(7) == 3) then --Kiem tra xem da tra loi dung cau hoi 1 chua
SayEx({"Tuy ban tien : tra loi cau hoi 2?", "dap an 1./sai","dap an 2./dung2","dap an 3./sai", "dap an 4./sai"}); -- Hoi nguoi choi cau hoi 2
elseif (GetTask(7) == 4) then --Kiem tra xem da tra loi dung cau hoi 2 chua
SayEx({"Tuy ban tien : tra loi cau hoi 3?", "dap an 1./sai","dap an 2./sai","dap an 3./sai", "dap an 4./dung3"}); -- Hoi nguoi choi cau hoi 3
else
Talk(1, "", "Ha Nhan Nga : Uong ruou di.")
end
end;
function dung1()
SetTask(7,3) --Set nv len 3
main() -- Hoi cau hoi tiep
end;
function dung2()
SetTask(7,4) -- Set nv len 4
main() -- Hoi cau hoi tiep
end;
function dung3()
SetTask(7,5) --Set nv len 5
AddEventItem(76) -- Cho Ha Huyen Tuu
end;
function sai()
main() -- Hoi cau hoi tiep
end;
function no()
end;

hoangthien66
04-07-07, 11:46 AM
Chào Vhungnt
Bạn cho mình hỏi SetRank cho mỗi môn phái như thế nào
Td: Thiếu Lâm SetRank =1 còn các phái khác SetRank bằng bao nhiệu
Cám ơn trước

Byokugan
04-07-07, 03:06 PM
Rank mà bạn nói thực ra chỉ là nhiệm vụ.
VD:
Bạn ngầm định TY là nhiệm vụ của Thúy Yên thì cứ task của thúy yên là bạn chỉ cần gõ SetTask(TY,xxx) là được thôi không cần câu nệ hình thức 1,2,3,4 là gì. Còn nếu không thì làm theo vhungnt cũng được:
Thiếu lâm : 1
Thiên Vương : 2
Ngũ Độc : 3
Đường Môn : 4
Thúy Yên : 5
Nga My : 6
Cái Bang : 7
Thiên Nhẫn : 8
Côn Lôn : 9
Võ Đang : 10