PDA

View Full Version : [JX] Giúp mình giải thích cái điều kiện này với



calms1001
19-03-15, 10:19 AM
GIÚP MÌNH GIẢI THÍCH CÁI ĐIỀU KIỆN NÀY VỚI

local nTaskValue = self:GetActivityTask(nTaskId)
local nCurDate = tonumber(GetLocalDate("%y%m%d"))
if floor(nTaskValue/256) ~= nCurDate then
nTaskValue = nCurDate * 256
self:SetActivityTask(nTaskId, nTaskValue)

HIỆN TẠI MÌNH ĐANG MUỐN CHỈNH CHỨNG MiNH DÒNG IF floor(ntaskvalue/256) ~= nCurDate, tại sao nó bằng nCurDate,

và ntaskvalue có giá trị tối đa là mấy, có phải bằng 256 không?

thế bằng 1 con số cụ thể chứng mình giúp mình được không? chẳng hạn như 1 ngày nhận được nhiệm vụ đó 2 lần!!!

vipbk
19-03-15, 11:02 AM
Bạn nên nói rõ những thứ trên nằm ở file nào, nhận 2 lần/ngày nhiệm vụ gì ?

hoivegame
19-03-15, 11:51 AM
Cái bạn hỏi là set ngày, nTaskValue là task ngày đó. Còn 256 chỉ là số nhân với ngày thôi ko có j đâu, chia cho 256 là ra ngày được set task.
p/s: khi bạn inbox hỏi j vui lòng đừng post hết script^:)^

calms1001
19-03-15, 11:51 AM
Bạn nên nói rõ những thứ trên nằm ở file nào, nhận 2 lần/ngày nhiệm vụ gì ?

cái này là file playerfunlib: GetTaskDailyCount(nTaskId)

bạn lấy ví dụ nào cũng được, miễn sao giải thích dùm mình đoạn if floor(nTaskValue/256) ~= nCurDate then

tại sao nó lại ~=nCurDate nhỉ,

với lại mình thấy tại sao kết thúc ở các đoạn như end; return nil; return 1; vậy " ; " ở đây được hiểu thế nào nhỉ

calms1001
19-03-15, 11:57 AM
Cái bạn hỏi là set ngày, nTaskValue là task ngày đó. Còn 256 chỉ là số nhân với ngày thôi ko có j đâu, chia cho 256 là ra ngày được set task.
p/s: khi bạn inbox hỏi j vui lòng đừng post hết script^:)^

Ở ĐÂY MÌNH DÙNG HÀM GetTaskDailyCount mà chứ đâu phải dùng SetTask đâu, bạn tính cái nó ra SetTask luôn rồi

vipbk
19-03-15, 12:07 PM
local nCurDate = tonumber(GetLocalDate("%y%m%d"))
if floor(nTaskValue/256) ~= nCurDate then
nTaskValue = nCurDate * 256
self:SetActivityTask(nTaskId, nTaskValue)

Dòng đầu là đặt giá trị ngày hiện tại vào biến nCurDate
Sau đó kiểm tra điều kiện nếu nTaskValue/256 làm tròn xuống số nguyên gần nhất (ví dụ floor(3,67) = 3) KHÁC với ngày hiện tại thì gán giá trị nCurDate * 256 cho nTaskValue rồi thực hiện hàm SetActivityTask (toán tử KHÁC trong ngôn ngữ lua là ~=)
Hiểu biết của mình là vậy còn cụ thể bạn tự xem thêm file script đó

Bạn nói rõ nhận nhiệm vụ gì thì mới dễ định hướng

calms1001
19-03-15, 12:18 PM
Dòng đầu là đặt giá trị ngày hiện tại vào biến nCurDate
Sau đó kiểm tra điều kiện nếu nTaskValue/256 làm tròn xuống số nguyên gần nhất (ví dụ floor(3,67) = 3) KHÁC với ngày hiện tại thì gán giá trị nCurDate * 256 cho nTaskValue rồi thực hiện làm SetActivityTask (toán tử KHÁC trong ngôn ngữ lua là ~=)
Hiểu biết của mình là vậy còn cụ thể bạn tự xem thêm file script đó

Bạn nói rõ nhận nhiệm vụ gì thì mới dễ định hướng

chẳng hạn như làm nhiệm vụ võ lâm minh chủ 1 ngày làm được 1 lần ấy bạn, còn muốn 2 lần 3 lần thì làm thế nào? ví dụ vào cái này vào được không?

vipbk
19-03-15, 12:27 PM
chẳng hạn như làm nhiệm vụ võ lâm minh chủ 1 ngày làm được 1 lần ấy bạn, còn muốn 2 lần 3 lần thì làm thế nào? ví dụ vào cái này vào được không?

Phải tìm file script cụ thể của nhiệm vụ đó rồi sửa, ở trên là code khai báo chung. Lâu ko chơi nên mình ko nhớ nhiệm vụ trên như nào nữa

calms1001
19-03-15, 12:57 PM
Phải tìm file script cụ thể của nhiệm vụ đó rồi sửa, ở trên là code khai báo chung. Lâu ko chơi nên mình ko nhớ nhiệm vụ trên như nào nữa

cám ơn bạn mình hiểu được phần nào rồi!!! nhưng có điều nếu cuối nó thực hiện setActivityTask thì nó lại khác với cấu trúc chung ban đầu rồi, cấu trúc chung ban đầu

là PlayerFunLib: GetTaskDailyCount mà bạn?