Dalam arsitektur modern Roblox Studio, perubahan yang dilakukan oleh LocalScript di perangkat pemain (Client) tidak akan langsung terlihat oleh pemain lain demi alasan keamanan. Agar aksi pemain—seperti menekan tombol beli di layar—dapat diproses secara sah oleh server, kita memerlukan jembatan komunikasi bernama RemoteEvent dan RemoteFunction.
1. Kapan Menggunakan RemoteEvent vs RemoteFunction?
- RemoteEvent (Komunikasi Satu Arah): Digunakan ketika pengirim hanya perlu mengirim sinyal perintah tanpa harus menunggu nilai balasan langsung (Fire and Forget).
- RemoteFunction (Komunikasi Dua Arah): Digunakan ketika Client meminta informasi ke Server dan kode harus menunggu hingga Server mengembalikan hasil (Return Value).
2. Contoh Penggunaan RemoteEvent untuk Membeli Item di Toko
Buat sebuah objek RemoteEvent bernama BeliItemEvent di dalam layanan ReplicatedStorage (karena layanan ini dapat diakses oleh Client maupun Server).
Kode di Sisi Client (LocalScript pada Tombol GUI):
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local beliEvent = ReplicatedStorage:WaitForChild("BeliItemEvent")
local tombol = script.Parent
tombol.MouseButton1Click:Connect(function()
beliEvent:FireServer("PedangKayu")
end)
Kode di Sisi Server (Script di ServerScriptService):
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local beliEvent = ReplicatedStorage:WaitForChild("BeliItemEvent")
local daftarHarga = {
PedangKayu = 100,
PerisaiBesi = 250
}
beliEvent.OnServerEvent:Connect(function(player, namaBarang)
local harga = daftarHarga[namaBarang]
if not harga then return end -- Validasi: tolak jika nama barang tidak sah
local koin = player.leaderstats.Koin
if koin.Value >= harga then
koin.Value -= harga
print(player.Name .. " berhasil membeli " .. namaBarang)
end
end)
3. Aturan Keamanan Wajib: Jangan Pernah Percaya Input Client
Jangan pernah mengirimkan jumlah harga atau jumlah koin dariLocalScriptke Server! Selalu simpan daftar harga di sisi Server dan lakukan pengecekan saldo koin langsung di dalamServerScriptServiceagar game Anda 100% aman dari manipulasi.
Belum ada komentar. Jadilah yang pertama memberikan tanggapan pada artikel ini!