Está bien, la costumbre de escribir en inglés xd
Mmm… ¿hay otro script que pueda usar esa id?
Mientras seleccionas la id, puedes hacer CTRL + Shift + F para buscar en todos los scripts.
Gracias por ese consejo de usar CTRL + Shift + F, pero solo sale que hay un script que tiene esa ID :C
Aunque ¿exactamente a que se refiere “We already gave out”? Entiendo que es que el usuario ya tiene esa insignia, pero me gustaría que aunque el usuario tenga la insignia, no salga ningún mensaje en la consola.
Como está en color amarillo, es una advertencia para que no se sobrecargue AwardBadge
y encontre el problema, el código se pausa hasta comprobar que el jugador tenga el badge, pero eso no significa que tenga que detenerse por completo, prueba esto
local badgeservice = game:GetService("BadgeService")
local id = 2124628997
local Checking = {}
script.Parent.Touched:Connect(function(hit)
local plr = game.Players:GetPlayerFromCharacter(hit.Parent)
if plr then
local Badges = plr:FindFirstChild("Badges") or Instance.new("Folder", plr)
Badges.Name = "Badges"
if not Badges:FindFirstChild(tostring(id)) then
if table.find(Checking, plr.UserId) then return end
table.insert(Checking, plr.UserId)
local success, hasBadge = pcall(function()
return badgeservice:UserHasBadgeAsync(plr.UserId, id)
end)
if success and not hasBadge then badgeservice:AwardBadge(plr.UserId,id) end
Instance.new("StringValue", Badges).Name = tostring(id)
table.remove(Checking, table.find(Checking, plr.UserId))
end
end
end)
en resumen, guardará al jugador para que no acepte el nuevo toque y así no se sobrecargue, en Studio se veía así.
Holaaaa, esto funciono :3
Muchas gracias, pero quería saber si es que esto no podría traer algún tipo de retraso en el juego xd, es que se ve que es un script grande y pues: #miedo
Nop, pausara una vez el código, pero solo para ese jugador, si otro toca la parte funcionara bien, de nada por ayudar ^ - ^
PD: marca mi publicación como solución para cerrar el post.