3 cách làm việc với kho dữ liệu trên Roblox

Mục lục:

3 cách làm việc với kho dữ liệu trên Roblox
3 cách làm việc với kho dữ liệu trên Roblox
Anonim

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

7815950 1
7815950 1

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.

7815950 2
7815950 2

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")

7815950 3
7815950 3

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

7815950 4
7815950 4

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)

7815950 5
7815950 5

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)

  • Lưu ý: Điều này sẽ không hoạt động, trừ khi bạn đã bật quyền truy cập API. Để làm điều này, hãy đọc hướng dẫn đầu tiên của hướng dẫn này.
7815950 6
7815950 6

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)

  • Trong trường hợp này, chúng tôi gọi giá trị cũ là "old". Bên trong hàm này, chúng ta sẽ cần tạo một biến tính cho điểm đã cập nhật của chúng ta và sau đó trả về biến đó để nó có thể hiển thị điểm mới của chúng ta.
  • 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)

  • Lưu ý rằng máy chủ sẽ trả về nil nếu khóa không tồn tại hoặc không được gán chính xác.
  • Nếu chức năng không tồn tại, bản cập nhật sẽ bị hủy bỏ.
7815950 7
7815950 7

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

7815950 8
7815950 8

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)

  • Thao tác này sẽ tự động tạo một khóa duy nhất chỉ dành cho người chơi đó, đối với mỗi người chơi sẽ có một ID duy nhất. "User_" sẽ không thành vấn đề.
7815950 9
7815950 9

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)

  • Trong chức năng này, chúng tôi thiết lập một chức năng khác, cũ. "cũ" là dữ liệu đã lưu trước đây của chúng tôi. Trong trường hợp này, mỗi khi người chơi vào máy chủ, máy chủ sẽ định vị khóa của nó, đó là userId của họ và nó sẽ cập nhật dữ liệu thêm 50 điểm, trả về và hiển thị giá trị mới đó.
7815950 10
7815950 10

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".

Đề xuất: