PDA

View Full Version : [KT] Hỏi về task_def trong player



linhmoi11
23-05-15, 12:16 PM
pro nào biết chỉ e với e đang thử làm cái nhiệm vụ đếm đủ số quái quy định thì sẽ nhận đc phần thưởng nhưng e không biết khai task trong task_def như nào. tks pro ấy nhiều lắm :D

localhost169
23-05-15, 01:14 PM
ko gửi script lên để người ta xem mà nói kiểu đó thì đố ai mà biết dc :T

__Jie__
23-05-15, 01:23 PM
1. Khai báo task trong task_deft.txt
Số nhiu cũng dc ko trùng là dc
2. Vào file death của NPC gán task điếm cho nó ví dụ
local nTask = pPlayer.GetTask(3001,1);
pPlayer.SetTask(3001,1,nTask + 1);
3. Về trả nv thì thực hiện lệnh cho task về 0

linhmoi11
23-05-15, 02:17 PM
ko gửi script lên để người ta xem mà nói kiểu đó thì đố ai mà biết dc :T

đây a :D script diệt yêu trừ ma em đang nghịch


function tbNpc:Event_TDYQ()
local nCount1990 = me.GetTask(4027,1);
local nCount1991 = me.GetTask(4028,1);
local Msg = "\n"..
"Số <color=cyan>Yêu Quái<color> tiêu diệt : <color=green>"..nCount1990.."<color>\n"..
"Số <color=cyan>Điểm Phúc Duyên<color> hiện có : <color=green>"..nCount1991.."<color>\n"..
"\n"..
" <pic=202><color=gold>Nhận Danh Hiệu<color><pic=202>\n"..
"\n"..
" <pic=204>"
local tbOpt ={
{"Nhận Danh Hiệu <color=green>Diệt Yêu Trừ Ma<color>", self.Event_TDYQ_DH, self},
{"Đổi Phúc Duyên lấy<color=green>Xâu Tiền<color>", self.Event_TDYQ_TienXu, self},
{"Để ta suy nghĩ lại đã"},
}
Dialog:Say(Msg, tbOpt);
end
function tbNpc:Event_TDYQ_DH()
local nCount1990 = me.GetTask(4027,1);
local Msg = "\n"..
"Số <color=cyan>Yêu Quái<color> đã tiêu diệt : <color=green>"..nCount1990.."<color>\n"..
"\n"..
"Số <color=cyan>Yêu Quái<color> tiêu diệt đạt <color=green>1000<color> bạn sẽ nhận được\n"..
"\n"..
" <pic=202><color=gold>Nhận Danh Hiệu<color><pic=202>\n"..
"\n"..
" <pic=204>"
local tbOpt ={
{"Nhận Danh Hiệu <color=green>Diệt Yêu Trừ Ma<color>", self.Event_TDYQ_DH_1, self},
{"Để ta suy nghĩ lại đã"},
}
Dialog:Say(Msg, tbOpt);
end
function tbNpc:Event_TDYQ_DH_1()
local nCount1990 = me.GetTask(4027,1);
if nCount1990 < 1000 then
Dialog:Say("<color=yellow>Số <color=green>Yêu Quái<color> tiêu diệt mới được <color=green>"..nCount1990.."/1000<color>")
return
end
me.AddTitle(18,1,1,1) -- Ad DH Diệt Yêu Trừ Ma
me.Msg("\n<color=yellow>Tiêu diệt đủ 1.000 <color=green>Yêu Quái<color>\nNhận danh hiệu <color=green>Diệt Yêu Trừ Ma<color>")
KDialog.MsgToGlobal("<color=yellow>Người chơi <color=green>["..me.szName.."]<color> đã dũng cảm tiêu diệt được <color=green>1000 Yêu Quái<color> . Xứng đáng nhận danh hiệu \n <pic=204> \n tại NPC Nhạn Nhạn - <pos=8,1723,3380><color>");
me.SetCurTitle(18, 1, 1, 0);
me.SetTask(4027,1, nCount1990 - 1000);
end

khi e giết quái thì nó lại ko nhận. ko biết bên script hiện quái có cần khai thêm task gì ko?? hiện giờ e chỉ có mỗi script gọi quái

--- Chế độ gộp bài viết ---


1. Khai báo task trong task_deft.txt
Số nhiu cũng dc ko trùng là dc
2. Vào file death của NPC gán task điếm cho nó ví dụ
local nTask = pPlayer.GetTask(3001,1);
pPlayer.SetTask(3001,1,nTask + 1);
3. Về trả nv thì thực hiện lệnh cho task về 0

còn tạo task trong file task_def.txt thì e thắc mắc 1 chỗ
ví dụ task

3001 20 20 Thái Vân Truy Nguyệt (cộng điểm tiềm năng)

2 số 20 nó có nghĩa là gì hả anh? chỉnh khác số đó đc ko??
tks anh :D

na.ilusm89
23-05-15, 02:26 PM
đây a :D script diệt yêu trừ ma em đang nghịch


function tbNpc:Event_TDYQ()
local nCount1990 = me.GetTask(4027,1);
local nCount1991 = me.GetTask(4028,1);
local Msg = "\n"..
"Số <color=cyan>Yêu Quái<color> tiêu diệt : <color=green>"..nCount1990.."<color>\n"..
"Số <color=cyan>Điểm Phúc Duyên<color> hiện có : <color=green>"..nCount1991.."<color>\n"..
"\n"..
" <pic=202><color=gold>Nhận Danh Hiệu<color><pic=202>\n"..
"\n"..
" <pic=204>"
local tbOpt ={
{"Nhận Danh Hiệu <color=green>Diệt Yêu Trừ Ma<color>", self.Event_TDYQ_DH, self},
{"Đổi Phúc Duyên lấy<color=green>Xâu Tiền<color>", self.Event_TDYQ_TienXu, self},
{"Để ta suy nghĩ lại đã"},
}
Dialog:Say(Msg, tbOpt);
end
function tbNpc:Event_TDYQ_DH()
local nCount1990 = me.GetTask(4027,1);
local Msg = "\n"..
"Số <color=cyan>Yêu Quái<color> đã tiêu diệt : <color=green>"..nCount1990.."<color>\n"..
"\n"..
"Số <color=cyan>Yêu Quái<color> tiêu diệt đạt <color=green>1000<color> bạn sẽ nhận được\n"..
"\n"..
" <pic=202><color=gold>Nhận Danh Hiệu<color><pic=202>\n"..
"\n"..
" <pic=204>"
local tbOpt ={
{"Nhận Danh Hiệu <color=green>Diệt Yêu Trừ Ma<color>", self.Event_TDYQ_DH_1, self},
{"Để ta suy nghĩ lại đã"},
}
Dialog:Say(Msg, tbOpt);
end
function tbNpc:Event_TDYQ_DH_1()
local nCount1990 = me.GetTask(4027,1);
if nCount1990 < 1000 then
Dialog:Say("<color=yellow>Số <color=green>Yêu Quái<color> tiêu diệt mới được <color=green>"..nCount1990.."/1000<color>")
return
end
me.AddTitle(18,1,1,1) -- Ad DH Diệt Yêu Trừ Ma
me.Msg("\n<color=yellow>Tiêu diệt đủ 1.000 <color=green>Yêu Quái<color>\nNhận danh hiệu <color=green>Diệt Yêu Trừ Ma<color>")
KDialog.MsgToGlobal("<color=yellow>Người chơi <color=green>["..me.szName.."]<color> đã dũng cảm tiêu diệt được <color=green>1000 Yêu Quái<color> . Xứng đáng nhận danh hiệu \n <pic=204> \n tại NPC Nhạn Nhạn - <pos=8,1723,3380><color>");
me.SetCurTitle(18, 1, 1, 0);
me.SetTask(4027,1, nCount1990 - 1000);
end

khi e giết quái thì nó lại ko nhận. ko biết bên script hiện quái có cần khai thêm task gì ko?? hiện giờ e chỉ có mỗi script gọi quái


Tạo 1 hàm OnDeath Kill cho fuction NPC Muốn Gắn Task Đếm Khi Nó Kill 1 NPC Đó sẻ tính hàm ncount của task lên cho + mấy thì nó get số điểm lên là nhiêu đó


local nCount1990 = me.GetTask(4027,1) -- Task Đếm Số Quái Giết Gắn Task
pPlayer.SetTask(4027,1, nCount19902 +1); -- + 1 Điểm Sau Khi Kill NPC Gắn Task

linhmoi11
23-05-15, 02:57 PM
hiểu rồi :)) tưởng gì khó lắm chứ chủ yếu là cách khai task ở script chứ ko phải ở task_def.txt :))

__Jie__
24-05-15, 10:38 AM
Tự làm khó bản thân mình, khi không chịu thử và test mà thôi
Khai ở task_deft là để GS ko báo lỗi khi load thôi.