Bạn muốn lưu dữ liệu và tải lại chúng mỗi khi người chơi vào lại trò chơi? Kể từ khi Data Persistence trở nên vô ích, ROBLOX giới thiệu các kho dữ liệu hoạt động hiệu quả hơn nhiều. Hướng dẫn cách thực hiện sau đây sẽ cho phép bạn làm việc với kho dữ liệu cho ROBLOX.
Các bước
Phương pháp 1/3: Thiết lập Kho dữ liệu
Bước 1. Định cấu hình API
Điều này không liên quan đến bất kỳ bit nào của tập lệnh, nhưng để kích hoạt tất cả API lưu trữ dữ liệu, trước tiên bạn phải kích hoạt quyền truy cập API. Để làm điều này, hãy chuyển đến tab Phát triển và nhấp vào "Trò chơi". Điều này sẽ hướng bạn đến tất cả các địa điểm trò chơi hiện tại mà bạn sở hữu. Tìm trò chơi của bạn và nhấp vào bánh răng. Sẽ xuất hiện một menu thả xuống và chỉ cần nhấn "Định cấu hình". Chọn hộp đã bật "Bật quyền truy cập của Studio vào Dịch vụ API" và lưu. Bây giờ bạn sẽ có quyền truy cập vào API hoàn chỉnh.
Bước 2. Truy xuất kho dữ liệu
Sử dụng API cửa hàng dữ liệu để gọi kho dữ liệu, vì chúng tôi sẽ cần tham chiếu nó. Để bắt đầu, hãy mở một tập lệnh trên ROBLOX và đặt tên cho một biến mà chúng tôi muốn sử dụng để gọi tham chiếu.
local datastore = game: GetService ("DataStoreService"): GetDataStore ("tên")
Bước 3. Sử dụng biến khi cần thiết
Bạn đã gọi thành công kho dữ liệu với biến "kho dữ liệu". Bây giờ, bất cứ khi nào bạn cần truy xuất kho dữ liệu, bạn có thể chỉ cần đặt tên cho nó theo biến của nó.
Xin lưu ý rằng nếu một kho dữ liệu chưa được tạo, nó sẽ tự động tạo một kho mới
Phương pháp 2/3: Sử dụng phương pháp lưu trữ dữ liệu
Bước 1. GetAsync
Sử dụng GetAsync để trả về giá trị của mục nhập trong kho dữ liệu với khóa đã cho. Đảm bảo cung cấp cho mỗi người chơi một bộ khóa duy nhất, vì việc đặt hai người chơi cùng một khóa sẽ ghi đè dữ liệu trong trò chơi của chính họ, gây ra hỗn loạn giữa hai bên. Nếu bạn muốn biết cách đặt khóa duy nhất, hãy đọc tiếp.
- Đoạn mã sau sẽ xuất ra nil, vì máy chủ không thể tìm thấy bất kỳ giá trị nào liên kết đến khóa; điều quan trọng là phải hiển thị cho máy chủ chính xác những gì chúng ta đang cố gắng xuất ra, để máy chủ sẽ biết những gì cần được hiển thị.
local datastore = game: GetService ("DataStoreService"): GetDataStore ("name") game. Players. PlayerAdded: kết nối (function (player) local key = "user_".. player.userId datastore: GetAsync (key) end)
Bước 2. SetAsync
Sử dụng SetAsync để đặt giá trị của khóa và ghi đè tất cả dữ liệu hiện có được lưu trữ cho khóa duy nhất.
- Nếu bộ thông tin trước đó là quan trọng, hãy xem xét sử dụng UpdateAsync, sẽ được hướng dẫn bên dưới.
- Đoạn mã sau chỉ cho bạn cách triển khai cả hai phương thức ": GetAsync ()" và ": SetAsync ()".
local datastore = game: GetService ("DataStoreService"): GetDataStore ("name") game. Players. PlayerAdded: kết nối (function (player) local key = "user_".. player.userId Kho dữ liệu: SetAsync (key, 90) - - đặt khóa thành giá trị, 90 local data_stored = datastore: GetAsync (key) - có thể phát hiện in thay đổi giá trị (data_stored) - in kết thúc đầu ra)
Bước 3. Sử dụng UpdateAsync để trả về giá trị của khóa và cập nhật nó với một giá trị mới
Điều này xác nhận dữ liệu và do đó phải đợi cho đến khi máy chủ có thể tìm thấy thời gian để cập nhật nó. Để điều này hoạt động, bạn sẽ cần truyền hai tham số; đầu tiên là một chuỗi lấy khóa duy nhất mà bạn đã thiết lập: "'user_'.. player.userId", và chuỗi thứ hai là một hàm sẽ nhận giá trị cũ.
local datastore = game: GetService ("DataStoreService"): GetDataStore ("name") game. Players. PlayerAdded: kết nối (function (player) local key = "user_".. player.userId datastore: UpdateAsync (key, function (old) - làm mọi thứ kết thúc) kết thúc)
local datastore = game: GetService ("DataStoreService"): GetDataStore ("name") game. Players. PlayerAdded: kết nối (function (player) local key = "user_".. player.userId datastore: UpdateAsync (key, function (old) local new = old hoặc 0 - có thể là nil new = new + 1 - thêm 1 vào giá trị cũ trả về new - trả về giá trị mới end) end)
Bước 4. Sử dụng IncrementAsync để tăng giá trị cho một khóa và trả về giá trị đã tăng
Phương pháp này chỉ hoạt động trên số nguyên.
Phương pháp 3/3: Sự kiện trong kho dữ liệu và cập nhật dữ liệu
Bước 1. Đặt một khóa duy nhất
Điều cực kỳ quan trọng là mỗi người chơi phải có một chìa khóa duy nhất cho họ. Họ sẽ giữ khóa đó, khóa này sẽ lưu trữ tất cả dữ liệu của họ. Để làm điều này, chúng tôi sử dụng ID của người chơi. Khi bạn đã đặt kho dữ liệu, chỉ cần gọi một hàm để tải trình phát, sau đó tìm ID của người chơi. Mã sẽ trông như sau:
local datastore = game: GetService ("DataStoreService"): GetDataStore ("name") game. Players. PlayerAdded: kết nối (function (player) local key = "user_".. player.userId end)
Bước 2. Cập nhật dữ liệu
Bây giờ bạn đã có một khóa duy nhất cho mỗi người chơi, bạn đã sẵn sàng thực hiện cập nhật kho dữ liệu và truy xuất dữ liệu. Bên dưới khóa của bạn, bạn sẽ muốn thêm một phương pháp phù hợp nhất với nhu cầu của mình. Trong trường hợp này, chúng tôi sẽ sử dụng "UpdateAsync".
- Bắt đầu với một chức năng để giúp máy chủ hiểu những gì bạn đang có ý định làm.
local datastore = game: GetService ("DataStoreService"): GetDataStore ("name") game. Players. PlayerAdded: kết nối (function (player) local key = "user_".. player.userId datastore: UpdateAsync (key, function (old) local newValue = old hoặc 0 - có thể là nil newValue = newValue + 50 return newValue end) end)
Bước 3. Xin chúc mừng
Bạn đã lưu trữ và cập nhật thành công dữ liệu của một người chơi.
Cảnh báo
- Khi lần đầu tiên tạo kho dữ liệu của bạn, hãy đảm bảo có "trò chơi: GetService (" DataStoreService ")", với cách viết hoa chính xác. Nó sẽ không chạy hiệu quả, nếu nó được gọi không chính xác.
- Đảm bảo biết khi nào sử dụng "SetAsync" và "UpdateAsync", vì sử dụng sai có thể biến mọi thứ trở nên lộn xộn khi truy xuất dữ liệu. Trong hầu hết các trường hợp, các nhà phát triển sẽ sử dụng "UpdateAsync".