Điều này dẫn chúng ta đến giai đoạn cuối của chuỗi trò chơi - mua nâng cấp. Bằng cách cho phép người chơi mua nâng cấp nâng cỡ hành khách, họ có thể thu thập nhiều món đồ hơn mỗi chuyến đi và kiếm thêm vàng.
Tạo một Cửa hàng
Mỗi cửa hàng sẽ có một nút mà người chơi nhấp để mua túi lớn hơn. Shop chính sẽ là một phần với một SurfaceGui, một món đồ cho phép người ta viết vào các bộ phận.
Tạo dấu hiệu
Trong Workspace, tạo một mô hình mới có tên là Shop.
Trong Cửa hàng, tạo một phần mới có tên là BuyButton.
Trong BuyButton, thêm một Surface GUI mới bằng cách nhấp vào + và cuộn vào GUI.
Trong Surface GUI, thêm một cái TextLabel mới tên là BuyText. Một nhãn nhỏ sẽ xuất hiện ở đâu đó trên bộ phận.
Tùy thuộc vào cách phần được làm, nhãn có thể ở đâu đó khác. Nếu bạn không thấy chữ nói trên bên bạn muốn, hãy vào SurfaceGUI và tìm thấy thuộc tính Mặt. Thay đổi thuộc tính này cho đến khi bạn thấy nhãn nói.
Đổi văn bản dấu hiệu
Ngay bây giờ, TextLabel thực sự nhỏ và khó để người chơi nhìn thấy. Nó cần phải được thu nhỏ.
Trong các thuộc tính BuyText, nhấp vào mũi tên bên cạnh Kích thước . Thay đổi Offset cho X (bên trái và bên phải) và Y (trên và dưới) để 0.
Đổi kích thước thực tế của X và Y lên 0.5 để tạo một hình chữ nhật.
Cuộn dây lên trong các thuộc tính TextLabel và nhấp vào mũi tên bên trái của AnchorPoint . Nhập 0.5 cho X và Y. Điều này di chuyển một phần của nhãn của bạn khỏi khỏi tầm mắt nhưng bạn sẽ đặt nó đúng cách tiếp theo.
Cuộn dưới trong các tính năng và mở vị trí . Thay đổi kích thước của X và Y để 0.5 để hộp được trung tâm.
Trong các thuộc tính Mua Văn Bản, cuộn dưới và thay đổi Văn Bản để một cái gì đó miêu tả. Ví ví dụ / trường hợp: "Buy Larger Bag: 100 gold" .
Kiểm tra TextScaled để được trên . Điều này tự động thu nhỏ chữ của bạn để nó phù hợp với hộp.
Thêm một điều khiển nhấp chuột
Người chơi sẽ mua hàng bằng cách nhấp vào cửa hàng thay vì chỉ nhìn vào nó. Script sẽ sử dụng một người bán hàng để cho biết nếu một người chơi đã nhấp vào dấu hiệu cửa hàng. ClickDetectors là những thống kê cho phép người dùng tương tác với một cái gì đó trong
Trong nút Mua, hãy thêm một ClickDetector.
Trong BuyButton, thêm một script mới có tên là BuyScript và cho nó một bình luận mô tả.
Trong BuyScript, tạo các biến để lưu bộ phận nút và nhấp vào detector.
-- Hãy cho phép người chơi nhấp vào nút để mua một nâng cấp tăng không gianlocal buyButton = script.Parentlocal clickDetector = buyButton.ClickDetectorTạo một chức năng mới có tên là giveUpgrade() để nhận một biến nằm trong tên người chơi. Chức năng này sẽ nâng cấp không gian của người chơi mỗi khi họ nhấp vào nút.
local buyButton = script.Parentlocal clickDetector = buyButton.ClickDetectorlocal function giveUpgrade(player)endSau chức năng, hãy nhập connect kết hợp nhà máy chủ của hành động MouseClick đến giveUpgrade() để hành động.
local function giveUpgrade(player)endclickDetector.MouseClick:Connect(giveUpgrade)Thêm một tuyên bố in ở giveUpgrade() để kiểm tra chức năng.
local function giveUpgrade(player)print("Someone clicked the button.")endChơi dự án của bạn. Nhấp vào nút và kiểm tra rằng bạn thấy chữ trong Cửa sổ Ra mắt.
Mẹo dịch vụ
Vấn đề: Bạn không thể nhấp vào nút hoặc một chuột không xuất hiện trên nút.
- Hãy đảm bảo rằng đối tượng ClickDetector là con của bộ phận bạn đang cố gắng nhấp vào.
- Kiểm tra rằng nhân vật của bạn đủ gần nút. Or, make sure that the tool is not equipped.
Mua Nâng cấp
Với một nút hoạt động, đã đến lúc thêm mã vào giveUpgrade để loại bỏ vàng của một người chơi để đổi lấy một túi nâng cấp.
Thêm biến nâng cấp
Mỗi lần nâng cấp sẽ có hai biến: chi phí nâng cấp và số lượng không gian nó có.
Trong BuyScript, dưới local clickDetector , tạo hai biến:
- newSpace : Số lượng không gian mà nâng cấp thêm khi mua.
- upgradeCost : Chi phí của một nâng cấp duy nhất
-- Biến cho nâng cấplocal newSpaces = 10local upgradeCost = 100
Cấp Nâng Cấp
Trước khi bán người chơi nâng cấp, bạn cần kiểm tra họ có đủ tiền không. Nếu họ có, bạn sẽ thêm vào số tiền tối đa của họ.
Trong giveUpgrade() , hãy nhập những ngôn từ sau đây để nhận được bảng xếp hạng của người chơi để bạn có thể truy cập vào vàng và các biến đổi không gian của họ.
local function giveUpgrade(player)print("Someone clicked the button")-- Lấy bảng xếp hạng của người chơi để nhận các giá trị kháclocal playerStats = player:FindFirstChild("leaderstats")if playerStats then-- Nhận tiền và không gian của người chơi để thực hiện các thay đổilocal playerGold = playerStats:FindFirstChild("Gold")local playerSpaces = playerStats:FindFirstChild("Spaces")endendSau khi viết các biến cho các khu vực, tạo một if statement để if the value of playerGold is more or equal to the upgrade cost.
local function giveUpgrade(player)local playerStats = player:FindFirstChild("leaderstats")if playerStats thenlocal playerGold = playerStats:FindFirstChild("Gold")local playerSpaces = playerStats:FindFirstChild("Spaces")-- Kiểm tra xem người chơi có đủ tiền để nâng cấpif playerGold and playerSpaces and playerGold.Value >= upgradeCost thenendendendTrong câu if, hãy trừ số tiền nâng cấp của nhà phát triển khỏi vàng của người chơi.
if playerGold and playerSpaces and playerGold.Value >= upgradeCost then-- Giảm chi phí của món vật phẩmkhỏi tiền của người chơiplayerGold.Value -= upgradeCostendỞ dòng tiếp theo, thêm số lượng các không gian hiện tại của người chơi với số không gian mới được cấp cho mỗi nâng cấp.
if playerGold and playerSpaces and playerGold.Value >= upgradeCost thenplayerGold.Value -= upgradeCostplayerSpaces.Value += newSpacesendChơi dự án của bạn và kiểm tra bảng xếp hạng để kiểm tra xem nâng cấp không gian hoạt động như thế nào.
Mẹo dịch vụ
Tại thời điểm này, các nâng cấp không hoạt động như ý muốn, hãy thử một trong những cái sau đây.
- Đảm bạo bất kỳ thứ gì trong () của FindFirstChild() có dấu chấm câu trên cả hai bên, giống như “leaderstats” .
- Kiểm tra mỗi dòng trong FindFirstChild giống như tên của IntValue trong script PlayerSetup. Ví dụ, nếu mã của bạn sử dụng Ruby như tiền, bạn nên có FindFirstChild("Rubies") .
- Đảm bạo rằng giveUpgrade() được trên clickDetector.MouseClick .
Hoàn thành mua script
Một phiên bản hoàn thành của script có thể được tham khảo ở dưới đây.
-- Hãy cho phép người chơi nhấp vào nút để mua một nâng cấp tăng MaxSpaces
local buyButton = script.Parent
local clickDetector = buyButton.ClickDetector
-- Biến cho nâng cấp
local newSpaces = 10
local upgradeCost = 100
local function giveUpgrade(player)
print("Someone clicked the button")
-- Lấy bảng xếp hạng của người chơi để nhận các giá trị khác
local playerStats = player:FindFirstChild("leaderstats")
if playerStats then
-- Nhận tiền và không gian của người chơi để thực hiện các thay đổi
local playerGold = playerStats:FindFirstChild("Gold")
local playerSpaces = playerStats:FindFirstChild("Spaces")
-- Kiểm tra xem người chơi có đủ tiền để nâng cấp
if playerGold and playerSpaces and playerGold.Value >= upgradeCost then
print("Player can buy item")
-- Giảm chi phí của món vật phẩmkhỏi tiền của người chơi
playerGold.Value -= upgradeCost
playerSpaces.Value += newSpaces
end
end
end
clickDetector.MouseClick:Connect(giveUpgrade)