Vietnamese translation of Zictionary (#903)

Co-authored-by: Hưng Nguyễn <>
This commit is contained in:
Nguyễn Quốc Hưng
2023-07-03 08:53:55 +07:00
committed by GitHub
parent ed11faf909
commit b3a8724538
7 changed files with 2415 additions and 151 deletions

Binary file not shown.

View File

@@ -348,7 +348,7 @@ FNNS and {"Support 3",
{"Tetris (N3TWORK)", {"Tetris (N3TWORK)",
"tetris n3twork mobile phone", "tetris n3twork mobile phone",
"game", "game",
"iOS/Android | Singleplayer\nThe mobile Tetris game from N3TWORK Inc. It has a 3-minute ultra mode, a marathon mode, and a 100-player Royale mode.\n[The UI is great, but its controls are not so good.]", "iOS/Android | Singleplayer\nA Tetris game, formerly developed by N3TWORK; but now development rights have been in the hands of PlayStudio from the end of November 2021. It has a Quick Play (3-minutes Ultra) mode, a Marathon mode, a 100-player Royale mode, and an Adventure mode (a mode in which you complete an objective in a limited number of moves).\n\nFrom November/December 2022 onwards, all new accounts only has access to Marathon and Adventure modes.\n[The user interface is great, but its controls are not very good.]",
}, },
{"Tetris Beat", {"Tetris Beat",
"n3twork rhythm", "n3twork rhythm",

2124
parts/language/dict_vi.lua Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -1,4 +1,8 @@
local C=COLOR local C=COLOR
-- There are some strings, due to game's history, temproary be commented just in case
-- If it is not used anymore, it will be removed, in one day…
return { return {
fallback='en', fallback='en',
loadText={ loadText={
@@ -71,16 +75,16 @@ return {
switchSpawnSFX="Vui lòng bật Spawn SFX để chơi!", switchSpawnSFX="Vui lòng bật Spawn SFX để chơi!",
needRestart="Khởi động lại để áp dụng mọi thay đổi.", needRestart="Khởi động lại để áp dụng mọi thay đổi.",
loadError_errorMode="'$1' tải lên thất bại: không có chế độ tải lên '$2'", loadError_errorMode="Tải '$1' thất bại: không có chế độ tải '$2'",
loadError_read="'$1' tải lên thất bại: đọc thất bại", loadError_read="Tải tệp '$1' thất bại: đọc thất bại",
loadError_noFile="'$1' tải lên thất bại: không có file", loadError_noFile="Tải tệp '$1' thất bại: không có tệp",
loadError_other="'$1' tải lên thất bại: $2", loadError_other="Tải tệp '$1' thất bại: $2",
loadError_unknown="'$1' tải lên thất bại: không rõ lý do", loadError_unknown="Tải tệp '$1' thất bại: không rõ lý do",
saveError_duplicate="'$1' lưu thất bại: trùng tên file", saveError_duplicate="Lưu tệp '$1' thất bại: trùng tên tệp",
saveError_encode="'$1' lưu thất bại: mã hoá thất bại", saveError_encode="Lưu tệp '$1' thất bại: mã hoá thất bại",
saveError_other="'$1' lưu thất bại: $2", saveError_other="Lưu tệp '$1' thất bại: $2",
saveError_unknown="'$1' lưu thất bại: không rõ lý do", saveError_unknown="Lưu tệp '$1' thất bại: không rõ lý do",
copyDone="Đã sao chép!", copyDone="Đã sao chép!",
saveDone="Đã lưu dữ liệu", saveDone="Đã lưu dữ liệu",
@@ -140,12 +144,13 @@ return {
noticeNotFound="Không có thông báo", noticeNotFound="Không có thông báo",
}, },
PlayerManager={ PlayerManager={
-- invalidEmail="Email không hợp lệ",
-- playerNotFound="Không tìm thấy người chơi",
-- invalidEmailPass="Email hoặc người chơi không hợp lệ",
-- emailExists="Email đã tồn tại",
-- emailSendError="Lỗi gửi email",
invalidCode="Mã không hợp lệ", invalidCode="Mã không hợp lệ",
invalidEmail="Email không hợp lệ", invalidAccessToken="Mã xác thực không hợp lệ",
playerNotFound="Không tìm thấy người chơi",
invalidEmailPass="Email hoặc người chơi không hợp lệ",
emailExists="Email đã tồn tại",
emailSendError="Lỗi gửi email",
}, },
-- Strategies -- Strategies
PlayerRole={ PlayerRole={
@@ -167,17 +172,18 @@ return {
versionNotMatch="Phiên bản không khớp", versionNotMatch="Phiên bản không khớp",
notFinished="Sắp ra mắt!", notFinished="Sắp ra mắt!",
noUsername="Vui lòng nhập email của bạn", -- Deprecated
wrongEmail="Địa chỉ email không hợp lệ", -- noUsername="Vui lòng nhập email của bạn",
wrongCode="Mã xác minh không hợp lệ", -- wrongEmail="Địa chỉ email không hợp lệ",
noPassword="Vui lòng nhập mật khẩu của bạn", -- wrongCode="Mã xác minh không hợp lệ",
diffPassword="Mật khẩu không đúng", -- noPassword="Vui lòng nhập mật khẩu của bạn",
checkEmail="Yêu cầu đăng ký đã được gửi.", -- diffPassword="Mật khẩu không đúng",
-- checkEmail="Yêu cầu đăng ký đã được gửi.",
wsFailed="Kết nối WebSocket đã thất bại: $1", wsFailed="Kết nối WebSocket đã thất bại: $1",
wsClose="WebSocket đã đóng: $1", wsClose="WebSocket đã đóng: $1",
netTimeout="Kết nối đã quá hạn", netTimeout="Kết nối đã quá hạn",
serverDown="Ối! Server bị sập rồi", serverDown="Ối! Server sập! Hãy quay lại sau",
requestFailed="Yêu cầu thất bại", requestFailed="Yêu cầu thất bại",
onlinePlayerCount="Trực tuyến: $1", onlinePlayerCount="Trực tuyến: $1",
@@ -193,13 +199,13 @@ return {
keySettingInstruction="Nhấn một phím để gán phím đó\nescape (esc): Huỷ\nbackspace: Xoá", keySettingInstruction="Nhấn một phím để gán phím đó\nescape (esc): Hủy\nbackspace: Xoá",
customBGhelp="Kéo một tấm ảnh vào đây để áp dụng ảnh nền tuỳ chỉnh", customBGhelp="Kéo một tấm ảnh vào đây để áp dụng ảnh nền tuỳ chỉnh",
customBGloadFailed="Định dạng ảnh không được hỗ trợ", customBGloadFailed="Định dạng ảnh không được hỗ trợ",
errorMsg="Techmino bị lỗi và cần phải được khởi động lại\nBạn có thể gửi error log để giúp dev sửa game nhanh hơn.", errorMsg="Techmino bị lỗi và cần phải được khởi động lại\nBạn có thể gửi error log để giúp dev sửa game nhanh hơn.",
modInstruction="Hãy chọn mod bạn muốn.\nMod sẽ cho bạn thay đổi trò chơi, và có thể làm sập trò chơi.\nĐiểm sẽ không được lưu lại khi dùng mod.", modInstruction="Hãy chọn mod bạn muốn.\nMod cho phép bạn có thể tùy biến game, nhưng cũng có thể làm game sập.\nĐiểm sẽ không được lưu lại khi dùng mod.",
modInfo={ modInfo={
next="NEXT\nGhi đè số gạch hiển thị ở cột NEXT", next="NEXT\nGhi đè số gạch hiển thị ở cột NEXT",
hold="HOLD\nGhi đè số lượng gạch được giữ ở cột HOLD", hold="HOLD\nGhi đè số lượng gạch được giữ ở cột HOLD",
@@ -218,8 +224,8 @@ return {
forceB2B="B2B Only\nKết thúc trò chơi khi cột B2B giảm xuống dưới vạch ban đầu", forceB2B="B2B Only\nKết thúc trò chơi khi cột B2B giảm xuống dưới vạch ban đầu",
forceFinesse="Finesse Only\nKết thúc trò chơi khi có lỗi di chuyển", forceFinesse="Finesse Only\nKết thúc trò chơi khi có lỗi di chuyển",
tele="Teleport\nDAS = 0, ARR = 0", tele="Teleport\nDAS = 0, ARR = 0",
noRotation="No Rotation\nKhông được xoay gạch", noRotation="No Rotation\nKhông thể xoay gạch",
noMove="No Movement\nKhông được di chuyển trái phải", noMove="No Movement\nKhông thể di chuyển trái phải",
customSeq="Randomizer\nGhi đè trình xáo gạch", customSeq="Randomizer\nGhi đè trình xáo gạch",
pushSpeed="Garbage Speed\nGhi đề tốc độ xuất hiện của hàng rác", pushSpeed="Garbage Speed\nGhi đề tốc độ xuất hiện của hàng rác",
boneBlock="[ ]\nChơi với skin [ ]", boneBlock="[ ]\nChơi với skin [ ]",
@@ -231,7 +237,7 @@ return {
"Hàng/Đào:", "Hàng/Đào:",
"Gửi/Gửi khi đào:", "Gửi/Gửi khi đào:",
"Nhận:", "Nhận:",
"Clear:", "Xóa (hàng):",
"Spin:", "Spin:",
"B2B/B3B/PC/HPC:", "B2B/B3B/PC/HPC:",
"Lỗi di chuyển:", "Lỗi di chuyển:",
@@ -246,22 +252,22 @@ return {
"Gạch/Hàng/Gửi:", "Gạch/Hàng/Gửi:",
"Nhận/Phản/Đẩy:", "Nhận/Phản/Đẩy:",
"Đào/Gửi khi đào:", "Đào/Gửi khi đào:",
"Eff./Dig Eff.:", "H.quả/H.quả khi Đào:",
"B2B/B3B:", "B2B/B3B:",
"PC/HPC:", "PC/HPC:",
"Lỗi di chuyển/Tỉ lệ:", "Lỗi di chuyển/Tỉ lệ:",
}, },
aboutTexts={ aboutTexts={
"Đây chỉ là một trò chơi xếp gạch *thông thường*. Không, thật đấy, chỉ có vậy thôi", "Đây chỉ là một trò chơi xếp gạch *thông thường*. Không, thật đấy, chỉ có vậy thôi",
"Lấy cảm hứng từ C2/IO/JS/WWC/KOS etc.", "Lấy cảm hứng từ C2/IO/JS/WWC/KOS v.v.",
"", "",
"Chạy bằng LÖVE", "Chạy bằng LÖVE",
"Chúng tôi đánh giá cao mọi đề xuất và báo cáo lỗi do các bạn gửi đến", "Chúng tôi đánh giá cao mọi đề xuất và báo cáo lỗi do các bạn gửi đến",
"Hãy đảm bảo trò chơi được tải về từ nguồn chính thức", "Hãy đảm bảo trò chơi được tải về từ nguồn chính thức",
"vì các nguồn khác có thể không an toàn.", "vì các nguồn khác có thể không an toàn.",
"Tác giả KHÔNG CHỊU TRÁCH NHIỆM với bất kỳ bản sửa đổi nào.", "Tác giả KHÔNG CHỊU TRÁCH NHIỆM với bất kỳ bản sửa đổi nào.",
FNNS and "/" or "Trò chơi này hoàn toàn miễn phí! Nếu các bạn thích nó, các bạn có thể ủng hộ chúng tôi!", FNNS and "" or "Trò chơi này hoàn toàn miễn phí! Nếu các bạn thích nó, các bạn có thể ủng hộ chúng tôi!",
FNNS and "/" or "Kiểm tra Zictionary để có thêm thông tin chi tiết", FNNS and "" or "Kiểm tra Zictionary để có thêm thông tin chi tiết",
}, },
staff={ staff={
"ĐƯỢC SÁNG TÁC BỞI MrZ", "ĐƯỢC SÁNG TÁC BỞI MrZ",
@@ -424,7 +430,7 @@ return {
}, },
net_rooms={ net_rooms={
password="Mật khẩu", password="Mật khẩu",
refreshing="Đang làm mới...", refreshing="Đang làm mới",
noRoom="Hiện không có phòng nào", noRoom="Hiện không có phòng nào",
refresh="Làm mới", refresh="Làm mới",
new="Phòng mới", new="Phòng mới",
@@ -461,7 +467,7 @@ return {
b2bKill="Không phá B2B", b2bKill="Không phá B2B",
lockout="Thua khi Lock Out", lockout="Thua khi Lock Out",
easyFresh="Lock Reset Thường", easyFresh="Lock Reset Thường",
deepDrop="Thả Sâu", deepDrop="Thả rơi sâu",
bone="Dùng skin []", bone="Dùng skin []",
eventSet="Rule Set", eventSet="Rule Set",
@@ -475,7 +481,7 @@ return {
net_game={ net_game={
ready="Sẵn sàng", ready="Sẵn sàng",
spectate="Theo dõi", spectate="Theo dõi",
cancel="Huỷ sẵn sàng", cancel="Huỷ",
}, },
setting_game={ setting_game={
title="Cài đặt trò chơi", title="Cài đặt trò chơi",
@@ -483,16 +489,20 @@ return {
sound="Âm thanh→", sound="Âm thanh→",
style="Trang trí", style="Trang trí",
ctrl="Cài đặt điều khiển", -- ctrl="Cài đặt điều khiển",
key="Cài đặt bố cục phím", -- key="Cài đặt bố cục phím",
touch="Cài đặt cảm ứng", -- touch="Cài đặt cảm ứng",
ctrl="Điều chỉnh thg. số", -- ctrl="Điều chỉnh độ nhạy"
key="Sửa bố cục bàn phím",
touch="Sửa bố cục cảm ứng",
showVK="Bật điều khiển bằng cảm ứng", -- Pull from Galaxy showVK="Bật điều khiển bằng cảm ứng", -- Pull from Galaxy
reTime="Đếm ngược bắt đầu", reTime="Đếm ngược bắt đầu",
RS="Hệ thống xoay gạch", RS="Hệ thống xoay gạch",
menuPos="Vị trí nút Menu", menuPos="Vị trí nút Menu",
sysCursor="Sử dụng con trỏ chuột của hệ thống", sysCursor="Sử dụng con trỏ chuột của hệ thống",
autoPause="Tạm dừng khi nhấn ngoài game", autoPause="Tạm dừng khi ngoài game",
autoSave="Tự động lưu các thành tích", autoSave="Tự động lưu thành tích mới",
simpMode="Chế độ Đơn giản", simpMode="Chế độ Đơn giản",
}, },
setting_video={ setting_video={
@@ -503,7 +513,7 @@ return {
block="Hiện gạch đang rơi", block="Hiện gạch đang rơi",
smooth="Rơi mượt", smooth="Rơi mượt",
upEdge="Gạch 3D", upEdge="Gạch 3D",
bagLine="Vạch tách Bag", bagLine="Vạch tách Túi gạch",
ghostType="Loại bóng gạch", ghostType="Loại bóng gạch",
ghost="Độ bóng", ghost="Độ bóng",
@@ -511,21 +521,21 @@ return {
grid="Lưới", grid="Lưới",
lineNum="# hàng", lineNum="# hàng",
lockFX="Lock FX", lockFX="H.ứng Khóa gạch",
dropFX="Drop FX", dropFX="H.ứng Thả nhẹ",
moveFX="Move FX", moveFX="H.ứng Di chuyển",
clearFX="Clear FX", clearFX="H.ứng Xóa hàng",
splashFX="Splash FX", splashFX="H.ứng Gạch “rụng”",
shakeFX="Độ Nảy Bảng", shakeFX="Độ nảy bảng",
atkFX="Atk FX", atkFX="H.ứng Tấn công",
frame="Tần suất cập nhật khung hình (%)", frame="Tần suất cập nhật khung hình (%)",
text="Hiển thị loại xoá hàng", text="Hiện loại xoá hàng",
score="Hiển thị điểm thành phần", score="Hiện điểm thành phần",
bufferWarn="Hiển thị số hàng rác", bufferWarn="Hiện số hàng rác",
showSpike="Hin thị Spike", showSpike="Hin độ lớn spike",
nextPos="Hin thị chỗ Spawn", nextPos="Hin chỗ spawn",
highCam="Trượt bảng", highCam="Trượt bảng",
warn="Cảnh báo nguy hiểm", warn="Cảnh báo nguy hiểm",
@@ -534,7 +544,7 @@ return {
clean="Vẽ nhanh", clean="Vẽ nhanh",
fullscreen="Toàn màn hình", fullscreen="Toàn màn hình",
portrait="Để dọc", portrait="Để dọc",
msaa="MSAA level", msaa="Khử r.cưa (MSAA)",
bg_on="Ảnh nền thường", bg_on="Ảnh nền thường",
bg_off="Không ảnh nền", bg_off="Không ảnh nền",
@@ -553,40 +563,41 @@ return {
bgm="Nhạc nền", bgm="Nhạc nền",
sfx="Hiệu ứng", sfx="Hiệu ứng",
stereo="Stereo", stereo="Stereo",
spawn="Spawn SFX", spawn="Hiệu ứng spawn",
warn="Cảnh báo SFX", warn="Hiệu ứng cảnh báo",
vib="Rung", vib="Rung",
voc="Giọng", voc="Giọng",
autoMute="Tắt tiếng nếu nhấn ngoài game", autoMute="Tắt tiếng nếu đang ở ngoài game",
fine="Âm thanh báo lỗi di chuyển", fine="Âm thanh báo lỗi di chuyển",
sfxPack="Gói SFX", sfxPack="Gói SFX",
vocPack="Gói Voice", vocPack="Gói Voice",
apply="Chọn", apply="Chọn",
}, },
setting_control={ setting_control={
title="Cài đặt Điều khiển", -- title="Cài đặt Điều khiển",
title="Đ.chỉnh thg. số",
preview="Xem trước", preview="Xem trước",
das="DAS",arr="ARR", das="DAS",arr="ARR",
dascut="DAS cut", dascut="DAS cut",
dropcut="Auto-lock cut", dropcut="Auto-lock cut",
sddas="Soft Drop DAS",sdarr="Soft Drop ARR", sddas="DAS thả nhẹ",sdarr="ARR thả nhẹ",
ihs="Initial Hold", ihs="Giữ tức thì",
irs="Initial Rotation", irs="Xoay tức thì",
ims="Initial Movement", ims="Di chuyển tức thì",
reset="Đặt lại", reset="Đặt lại",
}, },
setting_key={ setting_key={
a1="Sang Trái", a1 ="Sang Trái",
a2="Sang Phải", a2 ="Sang Phải",
a3="Xoay Phải", a3 ="Xoay Phải",
a4="Xoay Trái", a4 ="Xoay Trái",
a5="Xoay 180°", a5 ="Xoay 180°",
a6="Thả Mạnh", a6 ="Thả Mạnh",
a7="Thả Nhẹ", a7 ="Thả Nhẹ",
a8="Giữ (Hold)", a8 ="Giữ",
a9="Chức năng 1 (F1)", a9 ="Chức năng 1 (F1)",
a10="Chức năng 2 (F2)", a10="Chức năng 2 (F2)",
a11="Trái tức thì", a11="Trái tức thì",
a12="Phải tức thì", a12="Phải tức thì",
@@ -613,11 +624,26 @@ return {
shape="Hình dạng", shape="Hình dạng",
}, },
setting_touchSwitch={ setting_touchSwitch={
b1= "Sang Trái:", b2="Sang Phải:", b3="Xoay Phải:", b4="Xoay Trái:", b1 ="Sang Trái:",
b5= "Xoay 180°:", b6="Thả Mạnh:", b7="Thả Nhẹ:", b8="Giữ:", b2 ="Sang Phải:",
b9= "Chức năng 1 (F1):", b10="Chức năng 2 (F2):", b11="Trái tức thì:", b12="Phải tức thì:", b3 ="Xoay Phải:",
b13="Thả nhanh:", b14="Xuống 1:", b15="Xuống 4:", b16="Xuống 10:", b4 ="Xoay Trái:",
b17="Thả Trái:", b18="Thả Phải:", b19="Zangi Trái:", b20="Zangi Phải:", b5 ="Xoay 180° (F):",
b6 ="Thả Mạnh:",
b7 ="Thả Nhẹ:",
b8 ="Giữ (H):",
b9 ="Chức năng 1 (F1):",
b10="Chức năng 2 (F2):",
b11="Trái tức thì:",
b12="Phải tức thì:",
b13="Thả Nhanh:",
b14="Xuống 1:",
b15="Xuống 4:",
b16="Xuống 10:",
b17="Thả Trái:",
b18="Thả Phải:",
b19="Zangi Trái:",
b20="Zangi Phải:",
norm="Thường", norm="Thường",
pro="Nâng cao", pro="Nâng cao",
@@ -651,7 +677,7 @@ return {
reset="Đặt lại (del)", reset="Đặt lại (del)",
advance="More (A)", advance="More (A)",
mod="Mods (F1)", mod="Mod (F1)",
field="Cài đặt bảng (F)", field="Cài đặt bảng (F)",
sequence="C. đặt Trình xáo gạch (S)", sequence="C. đặt Trình xáo gạch (S)",
mission="Cài đặt Nhiệm vụ (M)", mission="Cài đặt Nhiệm vụ (M)",
@@ -680,7 +706,7 @@ return {
lockout="Thua khi Lock Out", lockout="Thua khi Lock Out",
easyFresh="Lock Reset Thường", easyFresh="Lock Reset Thường",
deepDrop="Thả Sâu", deepDrop="Thả Sâu",
bone="Dùng skin []", bone="Dùng gạch []",
}, },
custom_field={ custom_field={
title="Chế độ Tự do", title="Chế độ Tự do",
@@ -749,17 +775,17 @@ return {
title="Đăng Nhập", title="Đăng Nhập",
ticket="Mã uỷ quyền", ticket="Mã uỷ quyền",
authorize="Mở trang uỷ quyền", authorize="Mở trang uỷ quyền",
-- paste="Paste Ticket", paste="Dán mã",
submit="Gửi", submit="Gửi",
}, },
reset_password={ -- reset_password={
title="Đặt lại Mật khẩu", -- title="Đặt lại Mật khẩu",
send="Gửi mã", -- send="Gửi mã",
code="Mã xác nhận", -- code="Mã xác nhận",
password="Mật khẩu", -- password="Mật khẩu",
password2="Nhập lại Mật khẩu", -- password2="Nhập lại Mật khẩu",
setPW="Đặt mật khẩu", -- setPW="Đặt mật khẩu",
}, -- },
account={ account={
title="Tài khoản", title="Tài khoản",
}, },
@@ -806,7 +832,7 @@ return {
unlock="Tiến trình", unlock="Tiến trình",
data="Thống kê", data="Thống kê",
setting="Cài đặt", setting="Cài đặt",
vk="Bố cục phím ảo", vk="Bố cục cảm ứng",
couldSave="Lưu qua Cloud (CẢNH BÁO: ĐANG THỬ NGHIỆM)", couldSave="Lưu qua Cloud (CẢNH BÁO: ĐANG THỬ NGHIỆM)",
notLogin="[Đăng nhập để lưu]", notLogin="[Đăng nhập để lưu]",
@@ -820,7 +846,7 @@ return {
['sprint_40l']= {"Sprint", "40L", "Xoá 40 hàng!"}, ['sprint_40l']= {"Sprint", "40L", "Xoá 40 hàng!"},
['sprint_100l']= {"Sprint", "100L", "Xoá 100 hàng!"}, ['sprint_100l']= {"Sprint", "100L", "Xoá 100 hàng!"},
['sprint_400l']= {"Sprint", "400L", "Xoá 400 hàng!"}, ['sprint_400l']= {"Sprint", "400L", "Xoá 400 hàng!"},
['sprint_1000l']= {"Sprint", "1,000L", "Xoá 1,000 hàng!"}, ['sprint_1000l']= {"Sprint", "1,000L", "Xoá 1,000 hàng!"},
['sprintPenta']= {"Sprint", "PENTOMINO", "Xoá 40 hàng với 18 pentomino"}, ['sprintPenta']= {"Sprint", "PENTOMINO", "Xoá 40 hàng với 18 pentomino"},
['sprintMPH']= {"Sprint", "MPH", "Memoryless\nPreviewless\nHoldless"}, ['sprintMPH']= {"Sprint", "MPH", "Memoryless\nPreviewless\nHoldless"},
['sprint123']= {"Sprint", "M123", "Xoá 40 hàng chỉ với monomino, domino, và trimino"}, ['sprint123']= {"Sprint", "M123", "Xoá 40 hàng chỉ với monomino, domino, và trimino"},
@@ -835,92 +861,92 @@ return {
['dig_eff_400l']= {"Dig", "EFFICIENCY 400L","Đào 400 hàng rác càng ít gạch càng tốt!"}, ['dig_eff_400l']= {"Dig", "EFFICIENCY 400L","Đào 400 hàng rác càng ít gạch càng tốt!"},
['dig_quad_10l']= {"Dig", "TECHRASH 10L", "Đào 10 hàng rác nhưng chỉ dùng techrash!"}, ['dig_quad_10l']= {"Dig", "TECHRASH 10L", "Đào 10 hàng rác nhưng chỉ dùng techrash!"},
['drought_n']= {"Drought", "100L", "Không có thanh dài"}, ['drought_n']= {"Drought", "100L", "Không có thanh dài"},
['drought_l']= {"Drought+", "100L", "W T F"}, ['drought_l']= {"Drought+", "100L", "C L G T"},
['marathon_n']= {"Marathon", "THƯỜNG", "Xoá 200 hàng với tốc độ nhanh dần"}, ['marathon_n']= {"Marathon", "THƯỜNG", "Xoá 200 hàng với tốc độ nhanh dần"},
['marathon_h']= {"Marathon", "KHÓ", "Xoá 200 hàng với tốc độ cao"}, ['marathon_h']= {"Marathon", "KHÓ", "Xoá 200 hàng với tốc độ cao"},
['solo_e']= {"Battle", "DỄ", "Đánh bại AI!"}, ['solo_e']= {"Battle", "DỄ", "Đánh bại AI!"},
['solo_n']= {"Battle", "THƯỜNG", "Đánh bại AI!"}, ['solo_n']= {"Battle", "THƯỜNG", "Đánh bại AI!"},
['solo_h']= {"Battle", "KHÓ", "Đánh bại AI!"}, ['solo_h']= {"Battle", "KHÓ", "Đánh bại AI!"},
['solo_l']= {"Battle", "RẤT KHÓ", "Đánh bại AI!"}, ['solo_l']= {"Battle", "RẤT KHÓ", "Đánh bại AI!"},
['solo_u']= {"Battle", "THÁCH ĐẤU", "Đánh bại AI!"}, ['solo_u']= {"Battle", "THÁCH ĐẤU", "Đánh bại AI!"},
['techmino49_e']= {"Tech 49", "DỄ", "Cuộc chiến 49 người.\nNgười trụ lại cuối cùng giành chiến thắng"}, ['techmino49_e']= {"Tech 49", "DỄ", "Cuộc chiến 49 người.\nNgười trụ lại cuối cùng giành chiến thắng"},
['techmino49_h']= {"Tech 49", "KHÓ", "Cuộc chiến 49 người.\nNgười trụ lại cuối cùng giành chiến thắng"}, ['techmino49_h']= {"Tech 49", "KHÓ", "Cuộc chiến 49 người.\nNgười trụ lại cuối cùng giành chiến thắng"},
['techmino49_u']= {"Tech 49", "THÁCH ĐẤU", "Cuộc chiến 49 người.\nNgười trụ lại cuối cùng giành chiến thắng"}, ['techmino49_u']= {"Tech 49", "THÁCH ĐẤU", "Cuộc chiến 49 người.\nNgười trụ lại cuối cùng giành chiến thắng"},
['techmino99_e']= {"Tech 99", "DỄ", "Cuộc chiến 99 người.\nNgười trụ lại cuối cùng giành chiến thắng"}, ['techmino99_e']= {"Tech 99", "DỄ", "Cuộc chiến 99 người.\nNgười trụ lại cuối cùng giành chiến thắng"},
['techmino99_h']= {"Tech 99", "KHÓ", "Cuộc chiến 99 người.\nNgười trụ lại cuối cùng giành chiến thắng"}, ['techmino99_h']= {"Tech 99", "KHÓ", "Cuộc chiến 99 người.\nNgười trụ lại cuối cùng giành chiến thắng"},
['techmino99_u']= {"Tech 99", "THÁCH ĐẤU", "Cuộc chiến 99 người.\nNgười trụ lại cuối cùng giành chiến thắng"}, ['techmino99_u']= {"Tech 99", "THÁCH ĐẤU", "Cuộc chiến 99 người.\nNgười trụ lại cuối cùng giành chiến thắng"},
['round_e']= {"Turn-Based", "DỄ", "Chơi theo lượt và đánh bại AI!"}, ['round_e']= {"Turn-Based", "DỄ", "Chơi theo lượt và đánh bại AI!"},
['round_n']= {"Turn-Based", "THƯỜNG", "Chơi theo lượt và đánh bại AI!"}, ['round_n']= {"Turn-Based", "THƯỜNG", "Chơi theo lượt và đánh bại AI!"},
['round_h']= {"Turn-Based", "KHÓ", "Chơi theo lượt và đánh bại AI!"}, ['round_h']= {"Turn-Based", "KHÓ", "Chơi theo lượt và đánh bại AI!"},
['round_l']= {"Turn-Based", "RẤT KHÓ", "Chơi theo lượt và đánh bại AI!"}, ['round_l']= {"Turn-Based", "RẤT KHÓ", "Chơi theo lượt và đánh bại AI!"},
['round_u']= {"Turn-Based", "THÁCH ĐẤU", "Chơi theo lượt và đánh bại AI!"}, ['round_u']= {"Turn-Based", "THÁCH ĐẤU", "Chơi theo lượt và đánh bại AI!"},
['big_n']= {"Big", "THƯỜNG", "Chơi với một bảng nhỏ hơn!"}, ['big_n']= {"Big", "THƯỜNG", "Chơi với một bảng nhỏ hơn!"},
['big_h']= {"Big", "KHÓ", "Chơi với một bảng nhỏ hơn!"}, ['big_h']= {"Big", "KHÓ", "Chơi với một bảng nhỏ hơn!"},
['master_n']= {"Master", "THƯỜNG", "Dành cho người mới chơi 20G"}, ['master_n']= {"Master", "THƯỜNG", "Dành cho người mới chơi 20G"},
['master_h']= {"Master", "KHÓ", "Dành cho người chơi đã quen 20G"}, ['master_h']= {"Master", "KHÓ", "Dành cho người chơi đã quen 20G"},
['master_m']= {"Master", "M21", "Dành cho cao thủ 20G"}, ['master_m']= {"Master", "M21", "Dành cho cao thủ 20G"},
['master_final']= {"Master", "FINAL", "Dành cho các pháp sư 20G"}, ['master_final']= {"Master", "FINAL", "Dành cho các pháp sư 20G"},
['master_ph']= {"Master", "PHANTASM", "Hả???"}, ['master_ph']= {"Master", "PHANTASM", "Hả???"},
['master_g']= {"Master", "GRADED", "Lấy điểm cao nhất có thể!"}, ['master_g']= {"Master", "GRADED", "Lấy điểm cao nhất có thể!"},
['master_ex']= {"GrandMaster", "EXTRA", "Cũng là lấy điểm cao nhất có thể nhưng mà gắt hơn!"}, ['master_ex']= {"GrandMaster", "EXTRA", "Cũng là lấy điểm cao nhất có thể nhưng mà gắt hơn!"},
['master_instinct']={"Master", "INSTINCT", "Lấy điểm cao nhất có thể nhưng với gạch tàng hình!"}, ['master_instinct']={"Master", "INSTINCT", "Lấy điểm cao nhất có thể nhưng với gạch tàng hình!"},
['strategy_e']= {"Strategy", "DỄ", "Quyết định nhanh hoặc là thua"}, ['strategy_e']= {"Strategy", "DỄ", "Quyết định nhanh hoặc là thua"},
['strategy_h']= {"Strategy", "KHÓ", "Quyết định nhanh hoặc là thua"}, ['strategy_h']= {"Strategy", "KHÓ", "Quyết định nhanh hoặc là thua"},
['strategy_u']= {"Strategy", "THÁCH ĐẤU", "Quyết định nhanh hoặc là thua"}, ['strategy_u']= {"Strategy", "THÁCH ĐẤU", "Quyết định nhanh hoặc là thua"},
['strategy_e_plus']={"Strategy", "DỄ+", "Quyết định nhanh và không được Hold!"}, ['strategy_e_plus']={"Strategy", "DỄ+", "Quyết định nhanh và không được Hold!"},
['strategy_h_plus']={"Strategy", "KHÓ+", "Quyết định nhanh và không được Hold!"}, ['strategy_h_plus']={"Strategy", "KHÓ+", "Quyết định nhanh và không được Hold!"},
['strategy_u_plus']={"Strategy", "THÁCH ĐẤU+", "Quyết định nhanh và không được Hold!"}, ['strategy_u_plus']={"Strategy", "THÁCH ĐẤU+", "Quyết định nhanh và không được Hold!"},
['blind_e']= {"Invisible", "DỄ", "Dành cho người mới"}, ['blind_e']= {"Invisible", "DỄ", "Dành cho người mới"},
['blind_n']= {"Invisible", "THƯỜNG", "Dành cho người đã quen"}, ['blind_n']= {"Invisible", "THƯỜNG", "Dành cho người đã quen"},
['blind_h']= {"Invisible", "KHÓ", "Dành cho người đã có kinh nghiệm"}, ['blind_h']= {"Invisible", "KHÓ", "Dành cho người đã có kinh nghiệm"},
['blind_l']= {"Invisible", "KHÓ+", "Dành cho người chơi chuyên nghiệp"}, ['blind_l']= {"Invisible", "KHÓ+", "Dành cho người chơi chuyên nghiệp"},
['blind_u']= {"Invisible", "?", "Bạn đã sẵn sàng chưa?"}, ['blind_u']= {"Invisible", "?", "Bạn đã sẵn sàng chưa?"},
['blind_wtf']= {"Invisible", "CLGT?", "Bạn chưa đủ trình cho màn này đâu!"}, ['blind_wtf']= {"Invisible", "CLGT?", "Bạn chưa đủ trình cho màn này đâu!"},
['classic_e']= {"Classic", "DỄ", "Chế độ cổ điển từ thập niên 80"}, ['classic_e']= {"Classic", "DỄ", "Chế độ cổ điển từ thập niên 80"},
['classic_h']= {"Classic", "KHÓ", "Chế độ cổ điển từ thập niên 80 với tốc độ cao hơn"}, ['classic_h']= {"Classic", "KHÓ", "Chế độ cổ điển từ thập niên 80 với tốc độ cao hơn"},
['classic_l']= {"Classic", "RẤT KHÓ", "Chế độ cổ điển từ thập niên 80 với tốc độ rất cao"}, ['classic_l']= {"Classic", "RẤT KHÓ", "Chế độ cổ điển từ thập niên 80 với tốc độ rất cao"},
['classic_u']= {"Classic", "THÁCH ĐẤU", "Chế độ cổ điển từ thập niên 80 với tốc độ nhanh như chớp"}, ['classic_u']= {"Classic", "THÁCH ĐẤU", "Chế độ cổ điển từ thập niên 80 với tốc độ nhanh như chớp"},
['survivor_e']= {"Survival", "DỄ", "Bạn có thể trụ được bao lâu?"}, ['survivor_e']= {"Survival", "DỄ", "Bạn có thể trụ được bao lâu?"},
['survivor_n']= {"Survival", "THƯỜNG", "Bạn có thể trụ được bao lâu?"}, ['survivor_n']= {"Survival", "THƯỜNG", "Bạn có thể trụ được bao lâu?"},
['survivor_h']= {"Survival", "KHÓ", "Bạn có thể trụ được bao lâu?"}, ['survivor_h']= {"Survival", "KHÓ", "Bạn có thể trụ được bao lâu?"},
['survivor_l']= {"Survival", "RẤT KHÓ", "Bạn có thể trụ được bao lâu?"}, ['survivor_l']= {"Survival", "RẤT KHÓ", "Bạn có thể trụ được bao lâu?"},
['survivor_u']= {"Survival", "THÁCH ĐẤU", "Bạn có thể trụ được bao lâu?"}, ['survivor_u']= {"Survival", "THÁCH ĐẤU", "Bạn có thể trụ được bao lâu?"},
['attacker_h']= {"Attacker", "KHÓ", "Luyện tập kỹ năng tấn công!"}, ['attacker_h']= {"Attacker", "KHÓ", "Luyện tập kỹ năng tấn công!"},
['attacker_u']= {"Attacker", "THÁCH ĐẤU", "Luyện tập kỹ năng tấn công!"}, ['attacker_u']= {"Attacker", "THÁCH ĐẤU", "Luyện tập kỹ năng tấn công!"},
['defender_n']= {"Defender", "THƯỜNG", "Luyện tập kỹ năng phòng thủ!"}, ['defender_n']= {"Defender", "THƯỜNG", "Luyện tập kỹ năng phòng thủ!"},
['defender_l']= {"Defender", "RẤT KHÓ", "Luyện tập kỹ năng phòng thủ!"}, ['defender_l']= {"Defender", "RẤT KHÓ", "Luyện tập kỹ năng phòng thủ!"},
['dig_h']= {"Driller", "KHÓ", "Luyện tập kỹ năng đào xuống!"}, ['dig_h']= {"Driller", "KHÓ", "Luyện tập kỹ năng đào xuống!"},
['dig_u']= {"Driller", "THÁCH ĐẤU", "Luyện tập kỹ năng đào xuống!"}, ['dig_u']= {"Driller", "THÁCH ĐẤU", "Luyện tập kỹ năng đào xuống!"},
['c4wtrain_n']= {"C4W Training", "THƯỜNG", "Combo vô tận"}, ['c4wtrain_n']= {"C4W Training", "THƯỜNG", "Combo vô tận"},
['c4wtrain_l']= {"C4W Training", "RẤT KHÓ", "Combo vô tận"}, ['c4wtrain_l']= {"C4W Training", "RẤT KHÓ", "Combo vô tận"},
['pctrain_n']= {"PC Training", "THƯỜNG", "Luyện tập Perfect Clear"}, ['pctrain_n']= {"PC Training", "THƯỜNG", "Luyện tập Perfect Clear"},
['pctrain_l']= {"PC Training", "RẤT KHÓ", "Luyện tập Perfect Clear nhưng khó hơn"}, ['pctrain_l']= {"PC Training", "RẤT KHÓ", "Luyện tập Perfect Clear nhưng khó hơn"},
['pc_n']= {"PC Challenge", "THƯỜNG", "Lấy càng nhiều PC càng tốt trong 100 hàng!"}, ['pc_n']= {"PC Challenge", "THƯỜNG", "Lấy càng nhiều PC càng tốt trong 100 hàng!"},
['pc_h']= {"PC Challenge", "KHÓ", "Lấy càng nhiều PC càng tốt trong 100 hàng!"}, ['pc_h']= {"PC Challenge", "KHÓ", "Lấy càng nhiều PC càng tốt trong 100 hàng!"},
['pc_l']= {"PC Challenge", "RẤT KHÓ", "Lấy càng nhiều PC càng tốt trong 100 hàng!"}, ['pc_l']= {"PC Challenge", "RẤT KHÓ", "Lấy càng nhiều PC càng tốt trong 100 hàng!"},
['pc_inf']= {"Inf. PC Challenge", "", "Lấy càng nhiều PC càng tốt"}, ['pc_inf']= {"Inf. PC Challenge", "", "Lấy càng nhiều PC càng tốt"},
['tech_n']= {"Tech", "THƯỜNG", "Cố gắng không phá B2B!"}, ['tech_n']= {"Tech", "THƯỜNG", "Cố gắng không phá B2B!"},
['tech_n_plus']= {"Tech", "THƯỜNG+", "Chỉ được clear Spin hoặc PC"}, ['tech_n_plus']= {"Tech", "THƯỜNG+", "Chỉ được clear Spin hoặc PC"},
['tech_h']= {"Tech", "KHÓ", "Cố gắng không phá B2B!"}, ['tech_h']= {"Tech", "KHÓ", "Cố gắng không phá B2B!"},
['tech_h_plus']= {"Tech", "KHÓ+", "Chỉ được clear Spin hoặc PC"}, ['tech_h_plus']= {"Tech", "KHÓ+", "Chỉ được clear Spin hoặc PC"},
['tech_l']= {"Tech", "RẤT KHÓ", "Cố gắng không phá B2B!"}, ['tech_l']= {"Tech", "RẤT KHÓ", "Cố gắng không phá B2B!"},
['tech_l_plus']= {"Tech", "RẤT KHÓ+", "Chỉ được clear Spin hoặc PC"}, ['tech_l_plus']= {"Tech", "RẤT KHÓ+", "Chỉ được clear Spin hoặc PC"},
['tech_finesse']= {"Tech", "HOÀN HẢO", "Không được phép có lỗi di chuyển!"}, ['tech_finesse']= {"Tech", "HOÀN HẢO", "Không được phép có lỗi di chuyển!"},
['tech_finesse_f']= {"Tech", "HOÀN HẢO+", "Không được phép có lỗi di chuyển hoặc loại Xoá hàng thường!"}, ['tech_finesse_f']= {"Tech", "HOÀN HẢO+", "Không được phép có lỗi di chuyển hoặc loại Xoá hàng thường!"},
['tsd_e']= {"TSD Challenge", "DỄ", "Chỉ được clear T-Spin Double!"}, ['tsd_e']= {"TSD Challenge", "DỄ", "Chỉ được làm T-Spin Double!"}, -- Chỉ được clear…
['tsd_h']= {"TSD Challenge", "KHÓ", "Chỉ được clear T-Spin Double!"}, ['tsd_h']= {"TSD Challenge", "KHÓ", "Chỉ được làm T-Spin Double!"},
['tsd_u']= {"TSD Challenge", "THÁCH ĐẤU", "Chỉ được clear T-Spin Double!"}, ['tsd_u']= {"TSD Challenge", "THÁCH ĐẤU", "Chỉ được làm T-Spin Double!"},
['backfire_n']= {"Backfire", "THƯỜNG", "Sống sót những hàng rác do chính bạn gửi"}, ['backfire_n']= {"Backfire", "THƯỜNG", "Sống sót những hàng rác do chính bạn gửi"},
['backfire_h']= {"Backfire", "KHÓ", "Sống sót những hàng rác do chính bạn gửi"}, ['backfire_h']= {"Backfire", "KHÓ", "Sống sót những hàng rác do chính bạn gửi"},
['backfire_l']= {"Backfire", "RẤT KHÓ", "Sống sót những hàng rác do chính bạn gửi"}, ['backfire_l']= {"Backfire", "RẤT KHÓ", "Sống sót những hàng rác do chính bạn gửi"},
['backfire_u']= {"Backfire", "THÁCH ĐẤU", "Sống sót những hàng rác do chính bạn gửi"}, ['backfire_u']= {"Backfire", "THÁCH ĐẤU", "Sống sót những hàng rác do chính bạn gửi"},
['sprintAtk']= {"Sprint", "100 Attack", "Gửi 100 hàng!"}, ['sprintAtk']= {"Sprint", "100 Attack", "Gửi 100 hàng!"},
['sprintEff']= {"Sprint", "Efficiency", "Gửi càng nhiều hàng càng tốt trong 40 hàng"}, ['sprintEff']= {"Sprint", "Efficiency", "Gửi càng nhiều hàng càng tốt trong 40 hàng"},
['zen']= {'Zen', "200", "Xoá 200 hàng nhưng không có thời gian giới hạn"}, ['zen']= {'Zen', "200", "Xoá 200 hàng nhưng không có thời gian giới hạn"},
['ultra']= {'Ultra', "EXTRA", "Lấy càng nhiều điểm càng tốt trong 2 phút"}, ['ultra']= {'Ultra', "EXTRA", "Lấy càng nhiều điểm càng tốt trong 2 phút"},
['infinite']= {"Infinite", "", "Chỉ là một chế độ tự do"}, ['infinite']= {"Infinite", "", "Chỉ là một chế độ tự do"},
['infinite_dig']= {"Infinite: Dig", "", "Đào, đào nữa, đào mãi"}, ['infinite_dig']= {"Infinite: Dig", "", "Đào, đào nữa, đào mãi"},
['marathon_inf']= {"Marathon", "VÔ TẬN", "Marathon vô hạn."}, ['marathon_inf']= {"Marathon", "VÔ TẬN", "Marathon không có điểm dừng."},
['custom_clear']= {"Custom", "NORMAL"}, ['custom_clear']= {"Custom", "NORMAL"},
['custom_puzzle']= {"Custom", "PUZZLE"}, ['custom_puzzle']= {"Custom", "PUZZLE"},
@@ -961,7 +987,7 @@ return {
"Đừng để những thứ nhỏ nhặt làm bạn nản chí!", "Đừng để những thứ nhỏ nhặt làm bạn nản chí!",
"Đây không phải là lỗi, đây là tính năng!", "Đây không phải là lỗi, đây là tính năng!",
"Hệ thống xoay gạch của Techmino rất đẹp trai!", "Hệ thống xoay gạch của Techmino rất đẹp trai!",
"Em rất tốt nhưng anh rất tiếc...", "Em rất tốt nhưng anh rất tiếc",
"Đừng quên xem qua phần cài đặt!", "Đừng quên xem qua phần cài đặt!",
"Nếu bạn thấy có vấn đề gì, hãy lên trang GitHub báo lại cho chúng tôi!", "Nếu bạn thấy có vấn đề gì, hãy lên trang GitHub báo lại cho chúng tôi!",
"Game xếp gạch nhưng có thêm chế độ FFA!", "Game xếp gạch nhưng có thêm chế độ FFA!",
@@ -972,16 +998,16 @@ return {
"Khuyến khích đeo tai nghe để có trải nghiệm tốt hơn", "Khuyến khích đeo tai nghe để có trải nghiệm tốt hơn",
"Hello world!", "Hello world!",
"Chỉ có 2 loại trimino là I3 và L3", "Chỉ có 2 loại trimino là I3 và L3",
" if a==true", "if a==true",
"Việc tăng tần số khung hình sẽ mang trải nghiệm tốt hơn cho bạn", "Việc tăng tần số khung hình sẽ mang trải nghiệm tốt hơn cho bạn",
"Initial [insert action] system có thể cứu bạn đấy", "[Hành động] tức thì có thể cứu bạn đấy!",
"B2B2B2B là gì? Ăn được không?", "B2B2B2B là gì? Ăn được không?",
"Nó vừa load cutscene, vừa load game đấy!", "Nó vừa load cutscene, vừa load game đấy!",
"Bạn có thể xoá 40 hàng mà không cần dùng nút trái/phải", "Bạn có thể xoá 40 hàng mà không cần dùng nút trái/phải",
"Bạn có thể xoá 40 hàng mà không cần dùng nút xoay", "Bạn có thể xoá 40 hàng mà không cần dùng nút xoay",
"Hãy tham gia Discord của chúng tôi!", "Hãy tham gia Discord của chúng tôi!",
"l-=-1", "l-=-1",
"Nổi lửa lên em, NỔI LỬA LÊN EM", "Nổi lửa lên em, NỔI LỬA LÊN EM!",
"Việc giảm tần số khung hình sẽ mang trải nghiệm tệ hơn cho bạn", "Việc giảm tần số khung hình sẽ mang trải nghiệm tệ hơn cho bạn",
"LrL RlR LLr RRl RRR LLL FFF RfR RRf rFF", "LrL RlR LLr RRl RRR LLL FFF RfR RRf rFF",
"Lua No.1", "Lua No.1",
@@ -1004,10 +1030,10 @@ return {
"sudo rm -rf /*", "sudo rm -rf /*",
"Techmino là sự kết hợp giữa “technique” và “tetromino”", "Techmino là sự kết hợp giữa “technique” và “tetromino”",
"Hình như mình nghiện Techmino rồi!", "Hình như mình nghiện Techmino rồi!",
"Techmino trên Nspire-CX: Vâng, nó tồn tại", "Techmino trên Nspire-CX ư? Có thật đấy! Mà khoan đã, hai game này không giống nhau chút nào cả!",
"TetroDictionary (không phải tiếng Việt) đã ra mắt", "TetroDictionary đã ra mắt (đã có bản tiếng Việt rồi, nhưng mà hơi bruh, thôi vẫn đủ xài!)",
"Những cái tên xuất hiện ở phần nền trong trang Đội Ngũ là danh sách các nhà tài trợ của chúng tôi", "Những cái tên xuất hiện ở phần nền trong trang Đội Ngũ là danh sách các nhà tài trợ của chúng tôi",
"Nhạc game này đã có mặt trên Soundcloud!", "Toàn bộ nhạc game này đã có mặt trên Soundcloud rồi đấy!",
"The stacker future is yours in Techmino!", "The stacker future is yours in Techmino!",
"Bạn có biết: Có một số chế độ đã bị ẩn khỏi map không?", "Bạn có biết: Có một số chế độ đã bị ẩn khỏi map không?",
"Có tất cả 18 miếng pentomino khác nhau", "Có tất cả 18 miếng pentomino khác nhau",
@@ -1020,7 +1046,7 @@ return {
"Thế còn 23 PC trong 100 hàng?", "Thế còn 23 PC trong 100 hàng?",
"26 TSD có nổi không thế?", "26 TSD có nổi không thế?",
"Game rác v*i c*t", "Game rác v*i c*t",
" while (false)", "while (false)",
"Bạn là Nhất!", "Bạn là Nhất!",
"Bạn có thể giúp chúng tôi viết BGM và SFX!", "Bạn có thể giúp chúng tôi viết BGM và SFX!",
"Bạn có thể cắm bàn phím vào điện thoại hoặc máy tính bảng (đối với iOS thì không)", "Bạn có thể cắm bàn phím vào điện thoại hoặc máy tính bảng (đối với iOS thì không)",

View File

@@ -0,0 +1,111 @@
Lối chơi:
Hệ thống sẽ cung cấp bạn các tetromino (gạch 4 ô),
có tổng 7 loại, và người chơi cần điều khiển chúng (di chuyển sang trái và phải; xoay 90, 180, hoặc 270 độ).
Cứ mỗi hàng được lấp đầy trong bảng, chúng sẽ bị xóa.
Nếu có đối thủ, đối thủ sẽ bị tấn công mạnh nhẹ thế nào tùy vào kiểu xóa bạn vừa thực hiện.
Chơi hết hoặc đạt mục tiêu của cấp độ để chiến thắng.
Hệ thống xoay gạch:
Mặc định sẽ sử dụng TRS (Techmino Rotation System - Hệ thống xoay gạch Techmino).
Game cho phép người chơi chọn các hệ thống xoay gạch phổ biến khác (thường không cần thiết)
Cách phát hiện spin:
Thỏa mãn quy tắc “3 góc” +2 điểm
Thỏa mãn quy tắc “bất động” +2 điểm
- Cứ một trong hai điều kiện trên được thỏa mãn, thì sẽ được tính là Spin
Nếu việc xoay không đạt điều kiện thứ hai của hệ thống xoay, +1 điểm
- Spin sẽ là Mini nếu chỉ được 2 điểm;
gạch dùng để làm là S, Z, J, L hoặc T VÀ gạch đó không được xóa hết sau khi xóa hàng.
Hệ thống tấn công:
Kiểu xóa Đặc biệt (Special clear):
Kiểu xóa Đặc biệt chỉ trường hợp bạn thực hiện spin, Techrash (hoặc xóa hơn 4 hàng cùng lúc), PC, hoặc HPC.
Kiểu xóa Đặc biệt có thể làm đầy thanh B2B.
Kiểu xóa Siêu cấp (Super clear):
Kiểu xóa Siêu cấp chỉ trường hợp bạn thực hiện Kiểu xóa Đặc biệt khi thanh B2B không trống.
Kiểu xóa Đặc biệt (spin): gửi đòn tấn công (số hàng xóa × 2) hàng,
- B2B gửi thêm 1/1/2/4/8 cho Spin Đơn/Spin Đôi/Spin Tam/Techrash/Techrash+
- B2B2B gửi thêm (số hàng xóa × 0.5) trên B2B và +1 hàng để hủy rác tới
- Mini sẽ bị cắt còn 25% (hệ số × 0.25)
Kiểu xóa Đặc biệt (Techrash/Techrash+ không dùng spin):
- Techrash gửi 4 hàng; Techrash+ gửi hơn 4 hàng (chưa biết chính xác là bao nhiêu hàng)
- B2B gửi thêm 1 hàng
- B2B2B sẽ boost 50% tấn công và +1 hàng để hủy rác tới
Kiểu xóa không Đặc biệt: gửi (số hàng vừa xóa - 0,5) hàng
Combo (REN):
Số combo = số lần bạn xóa hàng liên tiếp - 1 (dừng tính ở combo 12, từ combo 13 trở đi sẽ tính là combo 12).
Toàn bộ sát thương kể trên (trừ tấn công từ PC/HPC) nhận thêm bonus (combo × 25%) HOẶC (combo × 15%) nếu chỉ xóa 1 hàng.
+1 hàng để tấn công từ Combo 2 trở đi.
Hemi Perfect Clear (PC mà “vẫn còn gạch ở dưới.”). Nếu chỉ còn 1 hàng xóa, thì toàn bộ gạch còn lại không phải do người chơi đặt:
- +4 hàng để tấn công, +2 hàng để hủy rác tới
Perfect Clear (All Clear):
- Gửi 8 → 16 hàng rác (6 + 2 * số PC đã làm; tính tối đa 5PC) HOẶC sát thương thường, tùy vào sát thương nào mạnh hơn.
- +2 hàng để hủy rác.
Sau khi tính toán xong, lượng sát thương sẽ bị làm tròn XUỐNG trước khi gửi.
Thanh Back to Back (B2B):
Thanh B2B có giá trị từ 0 tới 1,000. Kiểu xóa đặc biệt là B2B nếu thanh vượt qua vạch 50, B2B2B nếu qua vạch 800.
Nếu có hàng được xóa:
Kiểu xóa đặc biệt:
- Spin Đơn/Đôi/Tam/Techrash/Techrash+ + 50/100/180/800/1000 (×50% nếu là Mini)
- Techrash/Techrash+ + 150/200/...
- PC nếu số PC làm được trong một ván >4, +800
- HPC, +100
Kiểu xóa thường -250
Nếu không:
- Spin (0 hàng) +20.
Thanh B2B không thể làm đầy qua vạch 800 bằng cách này.
Hệ thống tính điểm:
[Sea: hệ thống tính điểm rất phức tạp + bản dịch tiếng Anh không ghi thông tin nên chẳng biết phải viết gì.
Nên thành ra mình tạm thời hoàn toàn không biết gì về cách tính điểm
Và mình cũng không thể đọc được bản tiếng Trung, nên đành để trống vậy
Mình sẽ cập nhật phần này ở những phiên bản sau của Techmino]
Khoảng thời gian chờ trước khi tấn công:
Sát thường từ Đôi và Tam có hiệu lực nhanh nhất;
Theo sau là Techrash và Spin, chúng thường gửi tấn công chậm hơn;
Combo dài gửi lâu nhất;
Với B2B và B2B2B, có thể kéo dài thời gian chờ cũng như có thể thêm hàng;
Minis cũng góp phần kéo dài thời gian chờ nữa.
Phản công:
Khi bạn gửi tấn công, nếu có rác trong hàng chờ, thì ưu tiên dùng hàng để hủy rác trước, sau đó mới dùng tới hàng để tấn công sau.
Tỉ lệ phản công sẽ là 1:1
Bất kỳ hàng nào để phản công không dùng tới sẽ bỏ hết; cuối cùng, số hàng để tấn công còn lại sẽ gửi tới đối thủ của bạn.
Chế độ Battle Royale:
Một chế độ có nhiều người chơi cùng chơi trong một ván cùng lúc (nhưng mà là AI, chứ không phải người thật).
Cứ sau một số người chơi bị loại nhất định, gạch sẽ rơi nhanh hơn, và rác cũng sẽ phát tác sớm hơn và dâng nhanh hơn.
Đánh bật đối thủ khác để nhận một huy hiệu và toàn bộ huy hiệu của người chơi để tăng sức mạnh tấn công.
Người chơi có thể chọn 1 trong 4 chế độ tấn công sau đây:
1. Ngẫu nhiên: Cứ mỗi lần tấn công, có 10% khả năng nhắm vào một người chơi ngẫu nhiên.
2. Huy hiệu: Sau khi bạn tấn công, hoặc mục tiêu bị chết, tư động ngắm vào người chơi có nhiều huy hiệu nhất.
3. K.O.: Nhắm vào người chơi có bảng cao nhất sau khi bạn tấn công hoặc đối thủ bạn đang nhắm đã chết.
4. Phản công: tấn công tất cả người chơi đang khóa vào chính mình.
Bạn sẽ gửi tấn công đến tất cả bọn họ.
Nếu bạn không nhắm vào mục tiêu nào, thì bạn sẽ tấn công một người chơi ngẫu nhiên (không nhắm)
Khi toàn bộ đối thủ bị triệt hạ, thì người sống sót tận cùng sẽ chiến thắng.
Chế độ tự do:
Bạn có thể tự do tùy chỉnh nhiều thông số (nhưng không bao gồm các hiệu ứng đặc biệt từ các chế độ khác).
Bạn có thể vẽ một cái bảng để tập xóa hoặc làm mẫu để tập build.
Ở trong chế độ Build (Puzzle):
Nhấn phím F1 để hiện/ẩn mẫu
ô có X thì không được có gạch;
ô trống thì có thể ở bất kỳ tình trạng nào;
ô có màu thì gạch đặt vào ô phải khớp màu;
ô có màu của hàng rác thì có thể là bất kỳ gạch nào nhưng không thể là không khí.
Một khi bạn làm khớp với mẫu ban đầu, bạn thắng.
.

View File

@@ -59,10 +59,13 @@ end
local function _search() local function _search()
local input=inputBox:getText():lower() local input=inputBox:getText():lower()
_clearResult() _clearResult()
-- This change was made by Sea. Should the search function prioritize the best match result and move it to the top of the search result
-- Usually yes except Vietnamese version of Zictionary
local prioritizeBestMatch=not SETTING.locale:find"vi"
local first local first
for i=1,#dict do for i=1,#dict do
local pos=find(dict[i].title:lower(),input,nil,true) or find(dict[i].keywords,input,nil,true) local pos=find(dict[i].title:lower(),input,nil,true) or find(dict[i].keywords:lower(),input,nil,true)
if pos==1 and not first then if pos==1 and not first and prioritizeBestMatch then
ins(result,1,dict[i]) ins(result,1,dict[i])
first=true first=true
elseif pos then elseif pos then
@@ -76,7 +79,7 @@ local function _search()
end end
function scene.enter() function scene.enter()
dict=require("parts.language.dict_"..(SETTING.locale:find'zh' and 'zh' or SETTING.locale:find'ja' and 'ja' or 'en')) dict=require("parts.language.dict_"..(SETTING.locale:find'zh' and 'zh' or SETTING.locale:find'ja' and 'ja' or SETTING.locale:find'vi' and 'vi' or 'en'))
_scanDict(dict) _scanDict(dict)
inputBox:clear() inputBox:clear()

View File

@@ -2,7 +2,7 @@ local scene={}
function scene.enter() function scene.enter()
BG.set('cubes') BG.set('cubes')
local fileData=FILE.load('parts/language/manual_'..(SETTING.locale:find'zh' and 'zh' or SETTING.locale:find'ja' and 'ja' or 'en')..'.txt','-string') local fileData=FILE.load('parts/language/manual_'..(SETTING.locale:find'zh' and 'zh' or SETTING.locale:find'ja' and 'ja' or SETTING.locale:find'vi' and 'vi' or 'en')..'.txt','-string')
if fileData then if fileData then
scene.widgetList.texts:setTexts(fileData:split('\n')) scene.widgetList.texts:setTexts(fileData:split('\n'))
else else