======Script Nhận thưởng đăng nhập [Hằng ngày]-[Không cần thao tác]======
====Chức năng====
* Kịch bản xét điều kiện nhận thưởng đăng nhập hằng ngày. Clip chỉ mang tính chất minh họa 😗
{{ :script:feature:login_everyday_1_.mp4?direct&400 |}}\\
**Chú ý:**\\
* Kịch bản chỉ xác định, tiến hành khi sự kiện đăng nhập vào bản đồ diễn ra
====Khái quát cơ chế====
* Biến riêng chuỗi Y_m_d được lưu trữ trên cloud sẽ lưu trữ ngày, tháng, năm đăng nhập gần đây nhất. Khi người chơi đăng nhập vào bản đồ sẽ so sánh biến chuỗi này với chuỗi thời gian hiện tại để xác định
====Thư viện biến số====
* Tạo biến chuỗi riêng gán chuỗi: Năm - Tháng - Ngày
{{ :script:feature:login_everyday_2_.png?direct&600 |}}\\
====Giải thích các dòng lệnh====
local function Login(event)
* Định nghĩa một hàm cục bộ tên là Login, hàm này sẽ được gọi khi một sự kiện xảy ra. Biến event chứa thông tin về sự kiện.
----
local uid = event.eventobjid
* Lấy ID duy nhất của người chơi (người kích hoạt sự kiện) từ đối tượng sự kiện event.
----
local Y_m_d = Trigger.World:getDate('server'):match('^(%S+)')
* Lấy ngày giờ hiện tại từ máy chủ đám mây hiện tại dưới dạng chuỗi đồng thời lọc ra phần đầu tiên của chuỗi (Là định dạng YYYY-MM-DD). Chuỗi được gán vào biến Y_m_d
----
if Y_m_d ~= select(2,VarLib2:getPlayerVarByName(uid, 4, 'Y-m-d')) then
* So sánh chuỗi biến riêng đã lưu với chuỗi thời gian hiện tại với điều kiện khác nhau
----
VarLib2:setPlayerVarByName(uid, 4, 'Y-m-d', Y_m_d)
* Cập nhật giá trị mới cho biến riêng Y-m-d của người chơi.
----
ScriptSupportEvent:registerEvent('Game.AnyPlayer.EnterGame', Login)
* Đăng ký sự kiện Game.AnyPlayer.EnterGame (khi bất kỳ người chơi nào tham gia trò chơi) với hàm xử lý Login. Khi sự kiện xảy ra, hàm Login sẽ được gọi.
----
====Kịch Bản Tham Khảo:====
* Chú ý: Kịch bản cần bổ sung các chức năng cần thiết để hoạt động
-- Sự kiện đăng nhập
local function Login(event)
Trigger:wait(2)
local uid = event.eventobjid
local Y_m_d = Trigger.World:getDate('server'):match('^(%S+)')
-- Cập nhật giá trị năm, tháng, ngày vào nhóm giá trị nếu có sự khác biệt
if Y_m_d ~= select(2,VarLib2:getPlayerVarByName(uid, 4, 'Y-m-d')) then
VarLib2:setPlayerVarByName(uid, 4, 'Y-m-d', Y_m_d)
--[[ Các chức năng khác được tiến hành khi xác nhận người chơi đăng nhập lần đầu trong ngày ]]--
--[[ Ví dụ: Nhận vật phẩm, hiện giao diện thông báo, ... ]]--
end
end
ScriptSupportEvent:registerEvent('Game.AnyPlayer.EnterGame', Login)
\\
--- //Cre:**[[https://www.facebook.com/fb.ngkhanh.mc|Nguyễn Khánh]]** 2024/12/21 06:59//
----
Nếu bạn có bất kỳ câu hỏi nào về Chế Độ DEV Nâng Cao, vui lòng tham gia\\
**[[https://www.facebook.com/groups/miniworldvn.developer|Mini World Developer Việt Nam]]** chính thức của chúng tôi