Простой способ справиться с этим - установить логическое значение от false до true, когда он был нажат один раз, и проверить в верхней части функции, является ли логическое значение true или false, прежде чем продолжить.
local debounce = false
function foo()
if not debounce then
debounce = true
print("Hi!")
end
end
foo() -- Will print "Hi!"
foo() -- Will not print anything
Вы можете применить ту же логику к вашему сценарию.Если вы уверены, что хотите, чтобы это произошло только один раз, вы можете отключить событие OnServerEvent после его запуска.Соединение события может быть сохранено как переменная и позже: Disconnect () - ed, аналогично тому, как вы: Connect ().
local myConnection
myConnection = myEvent:Connect(function()
myConnection:Disconnect()
print("Hello!")
end)
myEvent:Fire() -- Prints "Hello!"
myEvent:Fire() -- Does nothing, because it is no longer connected/listening for input.