PDA

View Full Version : [JX] Hỏi về event trồng cây jx ATN



taoaccts13
27-08-14, 02:18 PM
Cái script này là mình down sv trên forum về có sẵn chẳng chỉnh sửa gì hết, lúc trồng đc 10 cây nó báo "hôm nay bạn đã trồng 10 cây, ngày mai hãy quay lại." Qua hôm sau nó cũng bị y như vậy luôn, 8-x Ai biết fix ko ạ 8-x


-- Author: ATNTem
-- Date: TienThaoLo/01/13
-- Script vat pham tien thao lo 1
Include("\\script\\global\\sourceatn.lua")
Include("\\script\\global\\tasklist.lua")


function main()
local T_TrongCay = 9
local ThungNuoc = 130
local eHeo = GetEventItemCount(ThungNuoc)
local aHeo = GetTaskTemp(TMP_TRONGCAY)
if (aHeo == 0) and (GetLevel() < 200) then
if (GetFightState() == 0) then
SetTask(T_TrongCayTN,GetTask(T_TrongCayTN) + 1)
local aSky = GetTask(T_TrongCayTN)
if (aSky < 10) then
if (eHeo >= 1) then
DelEventItem(ThungNuoc)
if (GetEventItemCount(ThungNuoc) == (eHeo - 1)) then
local nW, nX, nY = GetWorldPos()
npcmapindex= SubWorldID2Idx(nW)
local nPosx = nX * 32
local nPosy = nY * 32
SetTaskTemp(TMP_TOADOX,nX)
SetTaskTemp(TMP_TOADOY,nY)
local HatHoaHong = AddObj(470, npcmapindex, nPosx, nPosy,32, 1, "\\script\\event\\trongcay\\mamcay.lua");
SetTaskTemp(TMP_GiaiDoan,1)
SetTaskTemp(TMP_TRONGCAY,1)
SetTaskTemp(TMP_INDEXTC,HatHoaHong)
SetTimer(18*5,T_TrongCay)
return
end
end
else
Msg2Player("H«m nay b¹n ®· trång 10 c©y råi, ngµy mai h·y tiÕp tôc")
return
end
else
Msg2Player("Khu vùc chiÕn ®Êu kh«ng thÓ trång c©y")
return
end
else
Msg2Player("B¹n ®ang trång v©y råi, h·y ch¨m sãc cho thËt tèt.")
return
end
end

dang_gamezone
27-08-14, 03:06 PM
Chắc là ở Timeserver phải settask nó về 0 :(

SetTask(T_TrongCayTN,0)

taoaccts13
27-08-14, 06:26 PM
Chắc là ở Timeserver phải settask nó về 0 :(

SetTask(T_TrongCayTN,0)

Bạn ơi hướng dẫn mình chút đc ko :(

Sửa ở file trên hay là sao bạn

Nếu ở file trên thì sửa chỗ nào bạn :H


SetTask(T_TrongCayTN,GetTask(T_TrongCayTN) + 1)
local aSky = GetTask(T_TrongCayTN)

azurciel79
27-08-14, 06:53 PM
Bạn ơi hướng dẫn mình chút đc ko :(

Sửa ở file trên hay là sao bạn

Nếu ở file trên thì sửa chỗ nào bạn :H


SetTask(T_TrongCayTN,GetTask(T_TrongCayTN) + 1)
local aSky = GetTask(T_TrongCayTN)

Tìm hàm nào Update ngày mới ấy rùi SetTask(T_TrongCayTN, 0)
Search thử UpdateDay xem sao :)

MinYeuVy
27-08-14, 06:57 PM
-- Author: ATNTem
-- Date: TienThaoLo/01/13
-- Script vat pham tien thao lo 1
Include("\\script\\global\\sourceatn.lua")
Include("\\script\\global\\tasklist.lua")


function main()
local T_TrongCay = 9
local ThungNuoc = 130
local eHeo = GetEventItemCount(ThungNuoc)
local aHeo = GetTaskTemp(TMP_TRONGCAY)
if (aHeo == 0) and (GetLevel() < 200) then
if (GetFightState() == 0) then
SetTask(T_TrongCayTN,GetTask(T_TrongCayTN) + 1)
local aSky = GetTask(T_TrongCayTN)
-- if (aSky < 10) then
if (eHeo >= 1) then
DelEventItem(ThungNuoc)
if (GetEventItemCount(ThungNuoc) == (eHeo - 1)) then
local nW, nX, nY = GetWorldPos()
npcmapindex= SubWorldID2Idx(nW)
local nPosx = nX * 32
local nPosy = nY * 32
SetTaskTemp(TMP_TOADOX,nX)
SetTaskTemp(TMP_TOADOY,nY)
local HatHoaHong = AddObj(470, npcmapindex, nPosx, nPosy,32, 1, "\\script\\event\\trongcay\\mamcay.lua");
SetTaskTemp(TMP_GiaiDoan,1)
SetTaskTemp(TMP_TRONGCAY,1)
SetTaskTemp(TMP_INDEXTC,HatHoaHong)
SetTimer(18*5,T_TrongCay)
return
end
end
-- else
-- Msg2Player("H«m nay b¹n ®· trång 10 c©y råi, ngµy mai h·y tiÕp tôc")
-- return
-- end
else
Msg2Player("Khu vùc chiÕn ®Êu kh«ng thÓ trång c©y")
return
end
else
Msg2Player("B¹n ®ang trång v©y råi, h·y ch¨m sãc cho thËt tèt.")
return
end
end

Muốn trồng không giới hạn thì copy cái này :D

lzlsky301
27-08-14, 07:08 PM
Muốn trồng không giới hạn thì copy cái này :D
<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>

taoaccts13
27-08-14, 07:09 PM
Muốn trồng không giới hạn thì copy cái này :D

Mình cần giới hạn trồng 1 ngày 10 cây mà bạn :3 .

lzlsky301
27-08-14, 07:10 PM
Cái đấy có gì khác đâu bạn :3 .
Khác chứ. Đã bỏ check số lượng cây đã trồng

Sesshomaru
27-08-14, 07:13 PM
Chưa Có hàm reset khi qua ngày mới.Nên Chỉ được dùng 10 lần suốt thời gian diễn ra sự kiện

taoaccts13
27-08-14, 07:14 PM
Khác chứ. Đã bỏ check số lượng cây đã trồng

Cái đó mình cũng biết làm, cùng lắm sửa cái sky kia thành 1000 cũng đc ko cần thêm dấu -- vào :3

Qua ngày mới nó ko update, cái đó mới là vấn đề ~X(

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


Chưa Có hàm reset khi qua ngày mới.Nên Chỉ được dùng 10 lần suốt thời gian diễn ra sự kiện

Chỉ em với mod :D .

lzlsky301
27-08-14, 07:17 PM
Cái đó mình cũng biết làm, cùng lắm sửa cái sky kia thành 1000 cũng đc ko cần thêm dấu -- vào :3

Qua ngày mới nó ko update, cái đó mới là vấn đề ~X(

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



Chỉ em với mod :D .

Thì tìm hảm Update ngày mới :|

Sesshomaru
27-08-14, 07:24 PM
Một cách là tìm hàm update ngày của hệ thống.
Cách khác là đặt thêm 1 task nữa.Ví dụ task trồng cây là 250.Đặt thêm 1 task là 251.
Task này dùng để đếm ngày



local nToDay = Hàm lấy ngày trong jx
if GetTask(251) < nToDay then --nToDay là hàm lấy ngày theo jx(cái này mình ko biết nên tự tìm)

SetTask(251,nToDay);
SetTask(250,0);
end

Đặt đoạn trên sau cái function main() là được

Hàm trên có nghĩa là khi bạn khởi động main()
nó sẽ kiểm tra giá trị Task 251.Nếu Task nhỏ hơn ngày hôm nay thì sẽ Set lại task 251 giá trị ngày hôm nay.Đồng thời set task trồng cây về giá trị 0.
Ví dụ hôm nay có giá trị 1000.
Khi qua ngày mai thì giá trị ToDay sẽ là 1001.
Task 251 = 1000 < 1001 nên sẽ tiếp tục vòng lặp Set Task 251 giá trị 1001. SetTask 250 giá trị 0.
Qua ngày mai giá trị ngày là 1002 thì nó lại thực hiện hàm này.Nếu trong ngày thì ko thực hiện

MinYeuVy
27-08-14, 07:24 PM
Cái đó mình cũng biết làm, cùng lắm sửa cái sky kia thành 1000 cũng đc ko cần thêm dấu -- vào :3

Qua ngày mới nó ko update, cái đó mới là vấn đề ~X(

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



Chỉ em với mod :D .

Ý bạn muốn làm sao nhỉ? Nếu muốn qua ngày nó tự reset thì thêm vô timerserver :D

function updateNgay()
local nNgay_Thang_Nam = tonumber(date("%d%m%y"))
if (GetTask(T_LuuNgayThangNam) ~= nNgay_Thang_Nam) then
SetTask(T_TrongCayTN,0)
SetTask(T_LuuNgayThangNam, nNgay_Thang_Nam)
end
end

HoangTVT
27-08-14, 07:39 PM
Tới đó thì chưa đủ, cần thêm check ngày ở script online nhân vật nữa, bởi vì timer kia chỉ tác dụng vs player đang online thôi.

taoaccts13
27-08-14, 07:39 PM
Cảm ơn mấy bạn + mod nha, nhiệt tình quá :X để mình thêm vô rồi chờ qua 12h xem sao ^m^

taoaccts13
27-08-14, 09:34 PM
Mình làm theo hướng dẫn của mod, ko biết viết như vậy đúng ko nhỉ o:-)

-- Author: ATNTem
-- Date: TienThaoLo/01/13
-- Script vat pham tien thao lo 1
Include("\\script\\global\\sourceatn.lua")
Include("\\script\\global\\tasklist.lua")


function main()
local nToDay = nNgay
if GetTask(T_TrongCayN) < nToDay then
SetTask(T_TrongCayN,nToDay)
SetTask(T_TrongCayTN,0)
end
local T_TrongCay = 9
local ThungNuoc = 130
local eHeo = GetEventItemCount(ThungNuoc)
local aHeo = GetTaskTemp(TMP_TRONGCAY)
if (aHeo == 0) and (GetLevel() < 200) then
if (GetFightState() == 0) then
SetTask(T_TrongCayTN,GetTask(T_TrongCayTN) + 1)
local aSky = GetTask(T_TrongCayTN)
if (aSky < 10) then
if (eHeo >= 1) then
DelEventItem(ThungNuoc)
if (GetEventItemCount(ThungNuoc) == (eHeo - 1)) then
local nW, nX, nY = GetWorldPos()
npcmapindex= SubWorldID2Idx(nW)
local nPosx = nX * 32
local nPosy = nY * 32
SetTaskTemp(TMP_TOADOX,nX)
SetTaskTemp(TMP_TOADOY,nY)
local HatHoaHong = AddObj(470, npcmapindex, nPosx, nPosy,32, 1, "\\script\\event\\trongcay\\mamcay.lua");
SetTaskTemp(TMP_GiaiDoan,1)
SetTaskTemp(TMP_TRONGCAY,1)
SetTaskTemp(TMP_INDEXTC,HatHoaHong)
SetTimer(18*5,T_TrongCay)
return
end
end
else
Msg2Player("H«m nay b¹n ®· trång 10 c©y råi, ngµy mai h·y tiÕp tôc")
return
end
else
Msg2Player("Khu vùc chiÕn ®Êu kh«ng thÓ trång c©y")
return
end
else
Msg2Player("B¹n ®ang trång v©y råi, h·y ch¨m sãc cho thËt tèt.")
return
end
end

azurciel79
27-08-14, 09:58 PM
Sửa chút như này nhé :D

-- Author: ATNTem
-- Date: TienThaoLo/01/13
-- Script vat pham tien thao lo 1
Include("\\script\\global\\sourceatn.lua")
Include("\\script\\global\\tasklist.lua")


function main()
local nToDay = tonumber(date("%d%m%y"))
if GetTask(T_TrongCayN) ~= nToDay then
SetTask(T_TrongCayN,nToDay)
SetTask(T_TrongCayTN,0)
end
local T_TrongCay = 9
local ThungNuoc = 130
local eHeo = GetEventItemCount(ThungNuoc)
local aHeo = GetTaskTemp(TMP_TRONGCAY)
if (aHeo == 0) and (GetLevel() < 200) then
if (GetFightState() == 0) then
SetTask(T_TrongCayTN,GetTask(T_TrongCayTN) + 1)
local aSky = GetTask(T_TrongCayTN)
if (aSky < 10) then
if (eHeo >= 1) then
DelEventItem(ThungNuoc)
if (GetEventItemCount(ThungNuoc) == (eHeo - 1)) then
local nW, nX, nY = GetWorldPos()
npcmapindex= SubWorldID2Idx(nW)
local nPosx = nX * 32
local nPosy = nY * 32
SetTaskTemp(TMP_TOADOX,nX)
SetTaskTemp(TMP_TOADOY,nY)
local HatHoaHong = AddObj(470, npcmapindex, nPosx, nPosy,32, 1, "\\script\\event\\trongcay\\mamcay.lua");
SetTaskTemp(TMP_GiaiDoan,1)
SetTaskTemp(TMP_TRONGCAY,1)
SetTaskTemp(TMP_INDEXTC,HatHoaHong)
SetTimer(18*5,T_TrongCay)
return
end
end
else
Msg2Player("H«m nay b¹n ®· trång 10 c©y råi, ngµy mai h·y tiÕp tôc")
return
end
else
Msg2Player("Khu vùc chiÕn ®Êu kh«ng thÓ trång c©y")
return
end
else
Msg2Player("B¹n ®ang trång v©y råi, h·y ch¨m sãc cho thËt tèt.")
return
end
end

taoaccts13
27-08-14, 11:27 PM
Sửa chút như này nhé :D


Thanks ạ ^^ , mình mới tập tành dev VL đc gần 2 tháng thôi nên còn gà mờ >:)

Tạm thời hết lỗi nhưng chưa biết có reset đc chưa nữa, đợi qua 12h vậy =D>

taoaccts13
28-08-14, 11:29 AM
@azurciel79 : thanks bác, chuẩn luôn :)))

azurciel79
28-08-14, 02:36 PM
@azurciel79 : thanks bác, chuẩn luôn :)))

Trong script sourceatn.lua hình như có hàm UpdateNgay đó thớt :D

taoaccts13
28-08-14, 04:23 PM
Trong script sourceatn.lua hình như có hàm UpdateNgay đó thớt :D

Ù ôi, thấy rồi bạn ơi, cơ mà làm theo mod kia mất rồi, vẫn có tác dụng =)) thôi lỡ set task như mod rồi thì thôi vậy :)) mà vào sourceATN settask nó khỏe hơn nhể, thank bác tập 2 :)))