PDA

View Full Version : Nghiên cứu,tìm hiểu hàm SetTimer



hongtu1
24-02-09, 11:32 AM
mình thấy trên 4rum chưa thấy nói đến hàm này, nay trình một chút thông tin vừa mới tìm hiểu được về hàm SetTimer, nếu pro nào biết rồi đừng cười chê nha.

Khi mình viết nhiệm vụ Liên kết võ lâm cho server,đọc trong HD làm nv thì thấy rằng nv này có thể làm lại sau 24h.Đây là một bế tắc,mình đã tìm hiểu và biết dược rằng nv ở đây cần SD hàm SetTiner.Sau đây là cấu trúc:

SetTimer(time,idTimeTask);

ở đây- time là TGian thực hiện hàm được tính như sau:số giây *18
- idTimeTask là số id khai báo trong file TimeTask.txt ở Settings.
-vd mình viết nv LKVL,sau khi trả nv mình thêm hàm như sau:

Talk(1,"","Tot lam! Nuoc <color=yellow>Tong<color> cua chung ta se co co hoi de danh duoi bon giac <color=red>Kim<color>.")
SetTask(20,2)
SetTimer(540,1) ---- nv co the lam lai sau 5 phut---
Talk(1,"phanthuong","<color=yellow>Doc Co Kiem<color>: Day la phan thuong cua nguoi:")

-trong file TimeTask.txt ở Settings mình khai báo như sau:

TASK SCRIPT
1 \script\nv_lkvl\lkvl_ontime.lua

-trong file lkvl_ontime.lua ở script mình khai báo như sau:

--tinh tg lam nv LKVL---
function OnTimer()
StopTimer()
Msg2Player("Gio Nguoi co the lam lai nhiem vu Lien Ket Vo Lam");
SetTask(20, 0); --set ve 0,làm lai nv---
end;

-Lúc đó khi trả nv thì hàm SetTimer,file lkvl_ontime.lua sẽ thực thi và khi hết TG sẽ thông báo cho người chơi qua file lkvl_ontime.lua
-Như vậy nhờ vào hàm SetTimer mà ta có thể viết một số nv cho sát với Onlline như nv ký danh của Thiên Vương(cân phải chờ sao 1h mới nấu xong rượu Bồng Lai Xuân)

-Những ai chưa hiểu có thể Down hệ thông nv Liên kết võ lâm này của mình về tham khảo nhé:

link:<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>

-đây là một chút hiểu biết của mình,nếu pro nào biết hơn thì pm nha.

thachlong78
24-02-09, 12:08 PM
Lệnh SetTimer(x*18,y)
Có thể hiểu là sau khi kích hoạt lệnh x giây thì sẽ thự hiện lệnh có đường dẫn là file thứ y trong tỉmetask (file này ở setting nhé).Và sẽ liên tục lặp lại như vậy, có nghĩa là lại sau y giây nữa lại thực hiện lại lệnh đó tiếp.Muốn dừng lại bạn phải dùng lệnh
StopTime()
là được, cho lệnh vào file lua có đường dẫn vừa khai báo là nó thỉ thực hiện 1 lần rồi dừng lại, còn muốn chỉnh bao nhiêu lần thì thêm mấy cái lệnh SetTask, GetTask.
Bạn có thể ứng dụng vào làm x2 khi đánh quái khá đơn giản chỉ cần lệnh SetTimer cho và SetTask, GetTask là được.
Cám ơn bạn nhé lệnh này khi xem mấy file TQ mình cũng đoán được như vậy có bạn nói mình mới dám khẳng định, tí nữa viết cái x2 kinh nghiệm đánh quái.

tranminhdo
24-02-09, 05:03 PM
nghiên cứu thêm mấy hàm liên quan đến thời gian của Mission nữa cho đủ bộ!!!!:big_smile:

hongtu1
25-02-09, 12:35 PM
Lệnh SetTimer(x*18,y)
Có thể hiểu là sau khi kích hoạt lệnh x giây thì sẽ thự hiện lệnh có đường dẫn là file thứ y trong tỉmetask (file này ở setting nhé).Và sẽ liên tục lặp lại như vậy, có nghĩa là lại sau y giây nữa lại thực hiện lại lệnh đó tiếp.Muốn dừng lại bạn phải dùng lệnh
StopTime()
là được, cho lệnh vào file lua có đường dẫn vừa khai báo là nó thỉ thực hiện 1 lần rồi dừng lại, còn muốn chỉnh bao nhiêu lần thì thêm mấy cái lệnh SetTask, GetTask.
Bạn có thể ứng dụng vào làm x2 khi đánh quái khá đơn giản chỉ cần lệnh SetTimer cho và SetTask, GetTask là được.
Cám ơn bạn nhé lệnh này khi xem mấy file TQ mình cũng đoán được như vậy có bạn nói mình mới dám khẳng định, tí nữa viết cái x2 kinh nghiệm đánh quái.






thank bạn vù đã góp ý nha.Tớ thấy cậu nói về x2 kinh nghiệm cũng hay hay về viết thử xem

sangpronhat
25-02-09, 07:41 PM
Lệnh SetTimer(x*18,y)
Có thể hiểu là sau khi kích hoạt lệnh x giây thì sẽ thự hiện lệnh có đường dẫn là file thứ y trong tỉmetask (file này ở setting nhé).Và sẽ liên tục lặp lại như vậy, có nghĩa là lại sau y giây nữa lại thực hiện lại lệnh đó tiếp.Muốn dừng lại bạn phải dùng lệnh
StopTime()
là được, cho lệnh vào file lua có đường dẫn vừa khai báo là nó thỉ thực hiện 1 lần rồi dừng lại, còn muốn chỉnh bao nhiêu lần thì thêm mấy cái lệnh SetTask, GetTask.
Bạn có thể ứng dụng vào làm x2 khi đánh quái khá đơn giản chỉ cần lệnh SetTimer cho và SetTask, GetTask là được.
Cám ơn bạn nhé lệnh này khi xem mấy file TQ mình cũng đoán được như vậy có bạn nói mình mới dám khẳng định, tí nữa viết cái x2 kinh nghiệm đánh quái.




Về cái x2 kinh nghiệm xin nói thế này
Nếu như ta muốn khi đánh quái mà kinh nghiệm đánh nhận đuợc x2 thì đây là vấn đề nan giải tôi vẫn chưa tìm ra
Còn nếu vào 1 khoản thời gian nào đó add exp x2 và lấy exp hiện tại nhân hai
thì tôi có thể làm được không biết THANHLONG làm theo kiểu nào
sằn đây nói thêm vài hàm mission đã có rồi cho anh em biết
OpenMission(misionID)
StartMissionTimer(id mission,id TimerTask,thoigian)
2 hàm này cũng liên quan đến thời gian
missionID : nằm trong settings\task\mission.txt
timertask : chắc ai cũng biết
thời gian: giêy*18
Thực chất nếu không muốn ngồi nhân dài dòng làm như sau
nếu là phút
ta theo cấu trúc: phut*60*18
theo giờ: gio*60*60*18
Thế thui AI biết rùi đừng chê
Còn nữa nếu là nhân đôi exp trong 1 khoản thời gian nào tui làm như sau:

file khoidong.lua
function main()
SetTimer(5*60*18,2);
end;
--File trong timertask.txt là 2 \script\start.lua
file thoi gian
function OnTimer()
if gettask(TK_T) < 10 then
t = GetEXP()
AddOwnExp(t*2)
SetTask(TK_T,GEtTask(TK_T)+1)
else
StopTimer()
SetTask(TK_T,0)
end
end;
--thế thui
ah` xin nói thêm nếu dùng hàm StartMissionTimer()
thì GS sẽ hiện dòng timer link
test thử rùi biết
:beat_brick:

thachlong78
26-02-09, 12:27 PM
Làm x4 fx khá đơn giản(mình làm x4 nhé)
Lệnh thế này:
SetTask(221,3) --nếu x4 tì set là 3, còn x2 set là 1.
SetTimer(30*60*18,14)
Msg2Player("Ban nhan duoc 30 phut x 4 kinh nghiem danh quai")
Sau dó đường dẫn spit ở file thứ 14 trong timetask
script\assexp\x4kinhnghiem.lua
Trong file đó lệnh thế này

function OnTimer()
StopTimer()
Msg2Player("Ban da het thoi gian x 4 kinh nghiem danh quai")
SetTask(221,0)
end;

Sau đó vào file KN của tường loại quái ở script\assexp, ở đó có các file kn vủa quái từ cấp 80 trở lên còn cấp nhỏ hơn mình không làm vì mất thêm TG mà chẳng bao giờ dùng đến:
Chỉnh như sau:
knx = GetTask(221) + 1
AddOwnExp(knx*600000)
Phải +1 vì thời điểm bình thường là x1 kn mà GetTask(221) mặc định bình thườn là 0.
Nói chung bạn có thể add đủ thứ vào quái các loại.sau 3 tháng trời học làm sever mình rút ra 1 điều lệnh tuy không đến mức khó lắm nhưng những kinh nghiệm về từng phần của sever mới là thứ khó.Vì vậy ai có những kinh nghiệm về những phần gì ở sever pót lên cho mọi người nhé.
Mà nhân tiện cho mình hỏi
GetTask(TK_T) hay bất cứ chữ gì cũng được không cần giá trị quy ra số hả bạn. Mình làm sever luôn sợ sẽ trùng mã với cái gì đó và có tất cả hơn 250 số thôi.
Mà bạn có biết gì về map không, mình muốn nhân cái map đáu trường thành nhiều map giống nhau, để viết liên đấu mới nhưng không biết cách.Biết chỉ dùm nhé ,thank trước.

hongtu1
26-02-09, 05:04 PM
À cho mình hỏi lun cái vụ cưới hỏi ở chõ nguyet lao làm kiểu gì mà khi tổ chức đám cuori có đủ đk rồi mà vẫn ko dc vậy

hongtu1
26-02-09, 07:38 PM
Làm x4 fx khá đơn giản(mình làm x4 nhé)
Lệnh thế này:
SetTask(221,3) --nếu x4 tì set là 3, còn x2 set là 1.
SetTimer(30*60*18,14)
Msg2Player("Ban nhan duoc 30 phut x 4 kinh nghiem danh quai")
Sau dó đường dẫn spit ở file thứ 14 trong timetask
script\assexp\x4kinhnghiem.lua
Trong file đó lệnh thế này

function OnTimer()
StopTimer()
Msg2Player("Ban da het thoi gian x 4 kinh nghiem danh quai")
SetTask(221,0)
end;

Sau đó vào file KN của tường loại quái ở script\assexp, ở đó có các file kn vủa quái từ cấp 80 trở lên còn cấp nhỏ hơn mình không làm vì mất thêm TG mà chẳng bao giờ dùng đến:
Chỉnh như sau:
knx = GetTask(221) + 1
AddOwnExp(knx*600000)
Phải +1 vì thời điểm bình thường là x1 kn mà GetTask(221) mặc định bình thườn là 0.
Nói chung bạn có thể add đủ thứ vào quái các loại.sau 3 tháng trời học làm sever mình rút ra 1 điều lệnh tuy không đến mức khó lắm nhưng những kinh nghiệm về từng phần của sever mới là thứ khó.Vì vậy ai có những kinh nghiệm về những phần gì ở sever pót lên cho mọi người nhé.
Mà nhân tiện cho mình hỏi
GetTask(TK_T) hay bất cứ chữ gì cũng được không cần giá trị quy ra số hả bạn. Mình làm sever luôn sợ sẽ trùng mã với cái gì đó và có tất cả hơn 250 số thôi.
Mà bạn có biết gì về map không, mình muốn nhân cái map đáu trường thành nhiều map giống nhau, để viết liên đấu mới nhưng không biết cách.Biết chỉ dùm nhé ,thank trước.
về cái SetTask,GetTask thì do mình quy dịnh bất cứ là chữ hay số đều dc.con về phần map thì cậu về xem file MapList tìm các map vươt ải sẽ thấy rằng tuy các map này có ID, tên khác nhau nhưng đương link dẫn đến file .wor trong map thì vẫn giống nhau.Thực chất các map này là 1,như vạy câu đã hiểu và có thể nhân cái map đấu trương của mình thành nhiều map để viết liên đấu rồi chứ,rễ thôi mà.
<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>

giangleloi
26-02-09, 08:00 PM
topic very good,xứng đáng lắm bạn ạ!

TranDoanDuc
26-02-09, 09:58 PM
topic very good,xứng đáng lắm bạn ạ!
Anh giang ơi , bữa nào rãnh làm sạch phần topic dán vào lưu trữ rồi chừa lại cái " những topic có ích ..." thui ! chứ giờ nó choáng quá !

thachlong78
26-02-09, 10:00 PM
Bạn hongtu1 có thể lập 1 tipic mới về chia sẽ JX được không cả về lệnh lua và Setting, Maps, giờ mình đang bận chút chuyện nên không co thời gian lắm, nếu bạn có thể lập topic nhé để mọi người vào bàn luận nhé, mình lệnh biết ít lắm có lệnh nào tận dụng tối đa lệnh đó để viết.Do mình làm sever onine nên không có có nhiều TG và DK để thử các lệnh nên cái nào mình đoán chắc mình mới làm được, mỗi ngày mình chỉ có 3h bảo trì.
Yahoo bạn chờ chút mình pmm giờ.

hongtu1
27-02-09, 03:08 PM
Bạn hongtu1 có thể lập 1 tipic mới về chia sẽ JX được không cả về lệnh lua và Setting, Maps, giờ mình đang bận chút chuyện nên không co thời gian lắm, nếu bạn có thể lập topic nhé để mọi người vào bàn luận nhé, mình lệnh biết ít lắm có lệnh nào tận dụng tối đa lệnh đó để viết.Do mình làm sever onine nên không có có nhiều TG và DK để thử các lệnh nên cái nào mình đoán chắc mình mới làm được, mỗi ngày mình chỉ có 3h bảo trì.
Yahoo bạn chờ chút mình pmm giờ.
cảm ơn bạn đã ủng hộ nhưng mình mới biết có sơ qua thôi mà,có biết nhiều lắm đâu

sangpronhat
27-02-09, 07:58 PM
Script theo suy nghia cua cau tren kia
co chinh sua
file Khoidong.lua
function main(sel)
Say("Nguoi co muon x4 kinh nghiem khi danh quai khong",2,"Ta muon/ok","Ta khong muon/out")
end
function ok()
SetTimer(30*60*18,14)
SetTask(221,0)
SetGlbMissionV(256,1)
Msg2Player("Bat

thachlong78
27-02-09, 09:35 PM
Script theo suy nghia cua cau tren kia
co chinh sua
file Khoidong.lua
function main(sel)
Say("Nguoi co muon x4 kinh nghiem khi danh quai khong",2,"Ta muon/ok","Ta khong muon/out")
end
function ok()
SetTimer(30*60*18,14)
SetTask(221,0)
SetGlbMissionV(256,1)
Msg2Player("Bat

SetTask(221,0) thi không được bạn à phải là 3 nếu không sẽ là x1, mà mình x4 cho tường nhân vật đâu có thể dùng SetGlbMissionV(256,1) được bạn, cái này theo suy đoán của mình là cho giá trị ứng với mã của 256 của sever là 1.
Thực ra cách làm x4 của mình là cho 1 giá trị vào người nhân vật , sau đó add thêm lệnh kiểm tra vào quái nếu đúng thì kn sẽ x4 không thì thôi vậy thôi chứ hem có gì cả.
Cái lệnh lua theo mình biết có 1 đặc điểm phải có nhân tố kích hoạt.Ví dụ như kích vào NPC, hoặc khi NPC chết, hoặc khi bản thân nhân vật chết, hoặc khi nháy vào cái gì đó vì dụ skill trong bảng F5 để nâng skill chẳng hạn.Cái nâng skill này được ứng dụng để viết file skilllvup, bạn có thể dùng mấy cái lệnh kiểm tra if để có thể đặt hướng nâng skill, ví dụ cho cấp nào nâng được nâng cần gì không, bạn cũng có thể cho nâng skil không cần ki năng mà chỉ cần dùng tiền.Cũng có thể dựa vào đó đẻ viết luyện skill kiểu như vng, mình viết luyện skill theo cách này.
Nhân tiện đây là skill 200 ình làm:
<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>
(Bạn chú ý là từ người có 3 cái tia trắng ra 3 hướng sau dó xuất hiện vũng lửa di chuyển được )
Bạn hongtu1 có gì pót bài ở đây luôn cũng được mình chỉ biết 1 số thứ khá dễ thôi. Nếu có thể giúp gì mnihf giúp tận tình, mà còn 1 số cái phải nhờ bạn nữa, pót bài lên diễn đàn cho mọi người đọc luôn nhé.À mình hem biết pmm yahoo chỉ biết ADD nhưng yahoo của ban mình ADD hem được.

hongtu1
28-02-09, 10:44 AM
SetTask(221,0) thi không được bạn à phải là 3 nếu không sẽ là x1, mà mình x4 cho tường nhân vật đâu có thể dùng SetGlbMissionV(256,1) được bạn, cái này theo suy đoán của mình là cho giá trị ứng với mã của 256 của sever là 1.
Thực ra cách làm x4 của mình là cho 1 giá trị vào người nhân vật , sau đó add thêm lệnh kiểm tra vào quái nếu đúng thì kn sẽ x4 không thì thôi vậy thôi chứ hem có gì cả.
Cái lệnh lua theo mình biết có 1 đặc điểm phải có nhân tố kích hoạt.Ví dụ như kích vào NPC, hoặc khi NPC chết, hoặc khi bản thân nhân vật chết, hoặc khi nháy vào cái gì đó vì dụ skill trong bảng F5 để nâng skill chẳng hạn.Cái nâng skill này được ứng dụng để viết file skilllvup, bạn có thể dùng mấy cái lệnh kiểm tra if để có thể đặt hướng nâng skill, ví dụ cho cấp nào nâng được nâng cần gì không, bạn cũng có thể cho nâng skil không cần ki năng mà chỉ cần dùng tiền.Cũng có thể dựa vào đó đẻ viết luyện skill kiểu như vng, mình viết luyện skill theo cách này.
Nhân tiện đây là skill 200 ình làm:
<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>
(Bạn chú ý là từ người có 3 cái tia trắng ra 3 hướng sau dó xuất hiện vũng lửa di chuyển được )
Bạn hongtu1 có gì pót bài ở đây luôn cũng được mình chỉ biết 1 số thứ khá dễ thôi. Nếu có thể giúp gì mnihf giúp tận tình, mà còn 1 số cái phải nhờ bạn nữa, pót bài lên diễn đàn cho mọi người đọc luôn nhé.À mình hem biết pmm yahoo chỉ biết ADD nhưng yahoo của ban mình ADD hem được.
cậu có thể sửa hộ mình skill 120 dcj ko vì skill hiện giờ ko đúng đâu.ví dụ skill 120 của thiếu lâm phái là Đại Thừa Như Lai Chú (ID 413)cơ,mình sửa dc rồi nhưng nó ko hiện icon ở bên tay trái cho mình bup(mặc dù cộng dc max 20)

thachlong78
28-02-09, 11:15 AM
cậu có thể sửa hộ mình skill 120 dcj ko vì skill hiện giờ ko đúng đâu.ví dụ skill 120 của thiếu lâm phái là Đại Thừa Như Lai Chú (ID 413)cơ,mình sửa dc rồi nhưng nó ko hiện icon ở bên tay trái cho mình bup(mặc dù cộng dc max 20)
Sever TQ skill 120 bạn nói là skill phụ trợ bị động còn skill 150 mới là skill buf, bạn lưu ý skill Đại thừa như lai là skill 150 của thiếu lâm, bạn muốn chỉnh thì chỉnh trong skilllvup.lua ,tìm cái phần 150 của TL chỉnh đẳng cấp nâng về 120 là được.

giangleloi
28-02-09, 11:31 AM
hehe bạn có thể chỉ mình làm sao cho cái time nó unlimited dc ko, chạy script mãi ko dừng đó

thachlong78
28-02-09, 12:49 PM
hehe bạn có thể chỉ mình làm sao cho cái time nó unlimited dc ko, chạy script mãi ko dừng đó
Bạn hỏi về x4 à. Bạn khai báo vào timetask với đường dẫn spit có lệnh stoptimer() đó, bạn xem lại chỗ bài mình viết nhé cái Setime chỉ để dứng spit sau thời gian quy định thôi, cái lệnh stoptimer() là để dừng đó bạn, nạm xem lại đoạn này nhé:

Sau dó đường dẫn spit ở file thứ 14 trong timetask
script\assexp\x4kinhnghiem.lua
Trong file đó lệnh thế này

function OnTimer()
StopTimer()
Msg2Player("Ban da het thoi gian x 4 kinh nghiem danh quai")
SetTask(221,0)
end;

hongtu1
28-02-09, 03:45 PM
Sever TQ skill 120 bạn nói là skill phụ trợ bị động còn skill 150 mới là skill buf, bạn lưu ý skill Đại thừa như lai là skill 150 của thiếu lâm, bạn muốn chỉnh thì chỉnh trong skilllvup.lua ,tìm cái phần 150 của TL chỉnh đẳng cấp nâng về 120 là được.
nếu như cậu nói thế thì skill 120 hiên giờ của Cai Bang tự nó buf cho nó sụt 1000MP à ,nói chính xác thì skill này phải buf cho đối phương mới đúng và một số skill khác của các môn phái

thachlong78
28-02-09, 04:46 PM
Ứ skill sever TQ là tư buff cho bản thân mình.Bạn lên down cái skill và spit của mình đã fix mấy cái dòng lung tung chút rồi, vẩn tự buf cho bản thân mình nhé, mà bạn à đây là vo lam prive khác hặn với VNG nhé cái này là bản viết lại, bản cua VNG khác bạn à,.Những chiêu mình sửa chỉ phù hợp với bản prive thôi bạn à.

hongtu1
01-03-09, 08:49 AM
Ứ skill sever TQ là tư buff cho bản thân mình.Bạn lên down cái skill và spit của mình đã fix mấy cái dòng lung tung chút rồi, vẩn tự buf cho bản thân mình nhé, mà bạn à đây là vo lam prive khác hặn với VNG nhé cái này là bản viết lại, bản cua VNG khác bạn à,.Những chiêu mình sửa chỉ phù hợp với bản prive thôi bạn à.
thôi dc dù gì cũng thank.còn mấy cái update cậu share mnhf dã dow hết rồi mà