local charactor = {“10359”, “10361”, “10363”, “10365”, “10368”, “10369”, “10370”, “10376”} local select_button = {
"7466769901929621097_58", "7466769901929621097_59", "7466769901929621097_60", "7466769901929621097_65", "7466769901929621097_30", "7466769901929621097_61", "7466769901929621097_64", "7466769901929621097_63"
} local phantramra = {13.5, 12.5, 12.5, 12.5, 12.5, 12.5, 12.5, 12.5}
– Các element của kho lưu trữ (hiển thị kết quả chưa ghép) local kho_du_tru = {
"7466769901929621097_18", "7466769901929621097_19", "7466769901929621097_20", "7466769901929621097_21", "7466769901929621097_22", "7466769901929621097_23", "7466769901929621097_51", "7466769901929621097_52"
}
– Biến tích lũy số lần trúng “con nguyện vọng” của vòng hiện tại local round_nguyen = 0
– XỬ LÝ THAY ĐỔI TỶ LỆ CHỌN NGUYỆN VỌNG –
function xulyphantram(e)
if e.uielement == select_button[1] then phantramra = {13.5, 12.5, 12.5, 12.5, 12.5, 12.5, 12.5, 12.5} Customui:showElement(e.eventobjid, "7466769901929621097", "7466769901929621097_42") Customui:hideElement(e.eventobjid, "7466769901929621097", "7466769901929621097_44") Customui:hideElement(e.eventobjid, "7466769901929621097", "7466769901929621097_45") Customui:hideElement(e.eventobjid, "7466769901929621097", "7466769901929621097_46") Customui:hideElement(e.eventobjid, "7466769901929621097", "7466769901929621097_47") Customui:hideElement(e.eventobjid, "7466769901929621097", "7466769901929621097_48") Customui:hideElement(e.eventobjid, "7466769901929621097", "7466769901929621097_49") Customui:hideElement(e.eventobjid, "7466769901929621097", "7466769901929621097_50") elseif e.uielement == select_button[2] then phantramra = {12.5, 13.5, 12.5, 12.5, 12.5, 12.5, 12.5, 12.5} Customui:hideElement(e.eventobjid, "7466769901929621097", "7466769901929621097_42") Customui:showElement(e.eventobjid, "7466769901929621097", "7466769901929621097_44") Customui:hideElement(e.eventobjid, "7466769901929621097", "7466769901929621097_45") Customui:hideElement(e.eventobjid, "7466769901929621097", "7466769901929621097_46") Customui:hideElement(e.eventobjid, "7466769901929621097", "7466769901929621097_47") Customui:hideElement(e.eventobjid, "7466769901929621097", "7466769901929621097_48") Customui:hideElement(e.eventobjid, "7466769901929621097", "7466769901929621097_49") Customui:hideElement(e.eventobjid, "7466769901929621097", "7466769901929621097_50") elseif e.uielement == select_button[3] then phantramra = {12.5, 12.5, 13.5, 12.5, 12.5, 12.5, 12.5, 12.5} Customui:hideElement(e.eventobjid, "7466769901929621097", "7466769901929621097_42") Customui:hideElement(e.eventobjid, "7466769901929621097", "7466769901929621097_44") Customui:showElement(e.eventobjid, "7466769901929621097", "7466769901929621097_45") Customui:hideElement(e.eventobjid, "7466769901929621097", "7466769901929621097_46") Customui:hideElement(e.eventobjid, "7466769901929621097", "7466769901929621097_47") Customui:hideElement(e.eventobjid, "7466769901929621097", "7466769901929621097_48") Customui:hideElement(e.eventobjid, "7466769901929621097", "7466769901929621097_49") Customui:hideElement(e.eventobjid, "7466769901929621097", "7466769901929621097_50") elseif e.uielement == select_button[4] then phantramra = {12.5, 12.5, 12.5, 13.5, 12.5, 12.5, 12.5, 12.5} Customui:hideElement(e.eventobjid, "7466769901929621097", "7466769901929621097_42") Customui:hideElement(e.eventobjid, "7466769901929621097", "7466769901929621097_44") Customui:hideElement(e.eventobjid, "7466769901929621097", "7466769901929621097_45") Customui:showElement(e.eventobjid, "7466769901929621097", "7466769901929621097_46") Customui:hideElement(e.eventobjid, "7466769901929621097", "7466769901929621097_47") Customui:hideElement(e.eventobjid, "7466769901929621097", "7466769901929621097_48") Customui:hideElement(e.eventobjid, "7466769901929621097", "7466769901929621097_49") Customui:hideElement(e.eventobjid, "7466769901929621097", "7466769901929621097_50") elseif e.uielement == "7466769901929621097_62" then phantramra = {12.5, 12.5, 12.5, 12.5, 13.5, 12.5, 12.5, 12.5} Customui:hideElement(e.eventobjid, "7466769901929621097", "7466769901929621097_42") Customui:hideElement(e.eventobjid, "7466769901929621097", "7466769901929621097_44") Customui:hideElement(e.eventobjid, "7466769901929621097", "7466769901929621097_45") Customui:hideElement(e.eventobjid, "7466769901929621097", "7466769901929621097_46") Customui:showElement(e.eventobjid, "7466769901929621097", "7466769901929621097_47") Customui:hideElement(e.eventobjid, "7466769901929621097", "7466769901929621097_48") Customui:hideElement(e.eventobjid, "7466769901929621097", "7466769901929621097_49") Customui:hideElement(e.eventobjid, "7466769901929621097", "7466769901929621097_50") elseif e.uielement == select_button[6] then phantramra = {12.5, 12.5, 12.5, 12.5, 12.5, 13.5, 12.5, 12.5} Customui:hideElement(e.eventobjid, "7466769901929621097", "7466769901929621097_42") Customui:hideElement(e.eventobjid, "7466769901929621097", "7466769901929621097_44") Customui:hideElement(e.eventobjid, "7466769901929621097", "7466769901929621097_45") Customui:hideElement(e.eventobjid, "7466769901929621097", "7466769901929621097_46") Customui:hideElement(e.eventobjid, "7466769901929621097", "7466769901929621097_47") Customui:showElement(e.eventobjid, "7466769901929621097", "7466769901929621097_48") Customui:hideElement(e.eventobjid, "7466769901929621097", "7466769901929621097_49") Customui:hideElement(e.eventobjid, "7466769901929621097", "7466769901929621097_50") elseif e.uielement == select_button[7] then phantramra = {12.5, 12.5, 12.5, 12.5, 12.5, 12.5, 13.5, 12.5} Customui:hideElement(e.eventobjid, "7466769901929621097", "7466769901929621097_42") Customui:hideElement(e.eventobjid, "7466769901929621097", "7466769901929621097_44") Customui:hideElement(e.eventobjid, "7466769901929621097", "7466769901929621097_45") Customui:hideElement(e.eventobjid, "7466769901929621097", "7466769901929621097_46") Customui:hideElement(e.eventobjid, "7466769901929621097", "7466769901929621097_47") Customui:hideElement(e.eventobjid, "7466769901929621097", "7466769901929621097_48") Customui:showElement(e.eventobjid, "7466769901929621097", "7466769901929621097_49") Customui:hideElement(e.eventobjid, "7466769901929621097", "7466769901929621097_50") elseif e.uielement == select_button[8] then phantramra = {12.5, 12.5, 12.5, 12.5, 13.5, 12.5, 12.5, 13.5} Customui:hideElement(e.eventobjid, "7466769901929621097", "7466769901929621097_42") Customui:hideElement(e.eventobjid, "7466769901929621097", "7466769901929621097_44") Customui:hideElement(e.eventobjid, "7466769901929621097", "7466769901929621097_45") Customui:hideElement(e.eventobjid, "7466769901929621097", "7466769901929621097_46") Customui:hideElement(e.eventobjid, "7466769901929621097", "7466769901929621097_47") Customui:hideElement(e.eventobjid, "7466769901929621097", "7466769901929621097_48") Customui:hideElement(e.eventobjid, "7466769901929621097", "7466769901929621097_49") Customui:showElement(e.eventobjid, "7466769901929621097", "7466769901929621097_50") end
if e.uielement == "7466769901929621097_66" then Customui:hideElement(e.eventobjid, "7466769901929621097", "7466769901929621097_32") for i, v in ipairs(phantramra) do print("Phần tử " .. i .. ": " .. v) end end
end ScriptSupportEvent:registerEvent(“UI.Button.Click”, xulyphantram)
– HÀM CHỌN NHÂN VẬT THEO TỶ LỆ & NGUYỆN VỌNG –
local function get_random_character()
local rand = math.random() * 100 -- Random từ 0 đến 100 local cumulative = 0 for i = 1, #phantramra do cumulative = cumulative + phantramra[i] if rand <= cumulative then local chosen = charactor[i] if chosen == "10376" then round_nguyen = round_nguyen + 1 Player:notifyGameInfo2Self(nil, "Trúng con nguyện vọng! Điểm +1. Tổng điểm vòng này: " .. round_nguyen) phantramra[i] = math.max(phantramra[i] * 0.8, 1) end return chosen end end local chosen = charactor[#charactor] if chosen == "10376" then round_nguyen = round_nguyen + 1 print("Trúng con nguyện vọng! Điểm +1. Tổng điểm vòng này: " .. round_nguyen) phantramra[#phantramra] = math.max(phantramra[#phantramra] * 0.8, 1) end return chosen
end
– CẤU HÌNH VỚI “TÚI QUAY” & “DỰ PHÒNG” –
local spin_slots = { – Danh sách các slot quay (theo thứ tự)
"7466769901929621097_24", "7466769901929621097_25", "7466769901929621097_26", "7466769901929621097_27", "7466769901929621097_28", "7466769901929621097_29", "7466769901929621097_30", "7466769901929621097_31"
}
local tui_status = {} for i, slot in ipairs(spin_slots) do
tui_status[slot] = 0
end
local bangnv_du = {
"7466769901929621097_18", "7466769901929621097_19", "7466769901929621097_20", "7466769901929621097_21", "7466769901929621097_22", "7466769901929621097_23"
}
– tui_list lưu các nhân vật quay được (bao gồm “con đơn” từ các vòng trước) local tui_list = {} local total_pairs = 0 – Tổng số cặp tích lũy qua các vòng
– solandcquay: số lượt quay của vòng hiện tại (vòng đầu = 8) local solandcquay = 8 – solan: số lượt đã thực hiện trong vòng hiện tại local solan = 0
– HÀM QUAY “TÚI” VÀ CẬP NHẬT GIAO DIỆN –
function boctuimu(e)
if tui_status[e.uielement] == 0 and solan < solandcquay then local selected_char = get_random_character() Customui:setTexture(e.eventobjid, "7466769901929621097", e.uielement, selected_char) solan = solan + 1 print("Số lần mở túi (vòng này): " .. solan .. " / " .. solandcquay) table.insert(tui_list, {id = selected_char, slot = e.uielement}) tui_status[e.uielement] = 1 if solan == solandcquay then print("Đã đủ lượt quay của vòng, bắt đầu xử lý ghép cặp.") -- Sau khi bốc full, reset texture của kho lưu trữ (hiển thị các spin chưa ghép) reset_kho_du_tru(e) Trigger:wait(0.1) process_duplicates(e) end end
end
– HÀM XỬ LÝ GHÉP CẶP VÀ TÍNH LẠI LƯỢT QUAY VÒNG MỚI –
function process_duplicates(e)
local found_pairs = {} local round_pairs = 0 -- Số cặp ghép được (tính từ toàn bộ tui_list) for _, data in ipairs(tui_list) do found_pairs[data.id] = (found_pairs[data.id] or 0) + 1 end for char, count in pairs(found_pairs) do local pairs_for_char = math.floor(count / 2) round_pairs = round_pairs + pairs_for_char total_pairs = total_pairs + pairs_for_char print("🔹 Ghép được " .. pairs_for_char .. " cặp của nhân vật ID: " .. char) end Trigger:wait(0.1) update_ui() local next_round_spins = (round_pairs) + round_nguyen if next_round_spins < 0 then next_round_spins = 0 end print("Vòng này: " .. round_pairs .. " cặp ghép, " .. round_nguyen .. " lần trúng nguyện vọng.") print("=> Lượt quay cho vòng mới: " .. next_round_spins) solandcquay = next_round_spins print("Tổng số cặp tích lũy: " .. total_pairs) Trigger:wait(2) Customui:showElement(e.eventobjid, "7466769901929621097", "7466769901929621097_69") Customui:setText(e.eventobjid, "7466769901929621097", "7466769901929621097_70", "Vòng này: " .. round_pairs .. " cặp ghép, " .. round_nguyen .. " lần trúng nguyện vọng.") -- Loại bỏ các spin đã ghép khỏi tui_list (chỉ giữ lại những spin chưa ghép) local new_tui_list = {} for spin, count in pairs(found_pairs) do local remainder = count % 2 for i = 1, remainder do table.insert(new_tui_list, {id = spin}) end end tui_list = new_tui_list -- Reset lại giao diện kho lưu trữ với danh sách tui_list mới reset_kho_du_tru(e) xulyui(e) if solandcquay > 0 then solan = 0 round_nguyen = 0 for i, slot in ipairs(spin_slots) do if i <= solandcquay then tui_status[slot] = 0 Customui:showElement(e.eventobjid, "7466769901929621097", slot) else tui_status[slot] = 1 Customui:hideElement(e.eventobjid, "7466769901929621097", slot) end end print("Bắt đầu vòng mới với " .. solandcquay .. " lượt quay.") else print("Trò chơi kết thúc. Không còn lượt quay.") Player:hideUIView(e.eventobjid,"7466769901929621097") Chat:sendSystemMsg("Hết lượt quay") end
end
– CẬP NHẬT GIAO DIỆN “CON ĐƠN” (dành cho slot dự phòng) –
function update_ui()
for i = 1, solandcquay do local texture = "10041" if tui_list[i] then texture = tui_list[i].id end Customui:setTexture(nil, "7466769901929621097", "7466769901929621097_" .. tostring(17 + i), texture) end
end
– HÀM RESET TEXTURE CHO KHO LƯU TRỮ –
– Ở đây, kho lưu trữ sẽ được cập nhật với dữ liệu của tui_list (chỉ chứa spin chưa ghép) function reset_kho_du_tru(e)
for i, slot in ipairs(kho_du_tru) do local texture = "10041" if tui_list[i] then texture = tui_list[i].id end Customui:setTexture(e.eventobjid, "7466769901929621097", slot, texture) end
end
– XỬ LÝ UI: Ẩn các túi chưa được bốc (hoặc reset giao diện) –
function xulyui(e)
if e.uielement == "7466769901929621097_71" then Customui:hideElement(e.eventobjid, "7466769901929621097", "7466769901929621097_69") for i, slot in ipairs(spin_slots) do Customui:setTexture(e.eventobjid, "7466769901929621097", slot, "20040") end end if e.uielement == "7466769901929621097_71" and next_round_spins == 0 then
end end
– ĐĂNG KÝ SỰ KIỆN CHO NÚT –
ScriptSupportEvent:registerEvent(“UI.Button.Click”, boctuimu) ScriptSupportEvent:registerEvent(“UI.Button.Click”, xulyui)