mirror of
https://github.com/PHIDIAS0303/ExpCluster.git
synced 2025-12-30 20:41:41 +09:00
Fixed calling set_controller during on_close
This commit is contained in:
@@ -48,8 +48,10 @@ function Public.stop_spectate(player)
|
|||||||
local character = spectating[player.index]
|
local character = spectating[player.index]
|
||||||
spectating[player.index] = nil
|
spectating[player.index] = nil
|
||||||
if character and character.valid then
|
if character and character.valid then
|
||||||
|
local opened = player.opened
|
||||||
player.teleport(character.position, character.surface)
|
player.teleport(character.position, character.surface)
|
||||||
player.set_controller{ type = defines.controllers.character, character = character }
|
player.set_controller{ type = defines.controllers.character, character = character }
|
||||||
|
if opened then player.opened = opened end -- Maintain opened after controller change
|
||||||
else
|
else
|
||||||
player.ticks_to_respawn = 300
|
player.ticks_to_respawn = 300
|
||||||
end
|
end
|
||||||
@@ -118,8 +120,12 @@ Gui.element(function(event_trigger, parent, target)
|
|||||||
|
|
||||||
return label
|
return label
|
||||||
end)
|
end)
|
||||||
:on_close(Public.stop_follow)
|
|
||||||
:on_click(Public.stop_follow)
|
:on_click(Public.stop_follow)
|
||||||
|
:on_close(function(player)
|
||||||
|
-- Dont call set_controller during on_close as it invalidates the controller
|
||||||
|
-- Setting an invalid position (as to not equal their current) will call stop_follow on the next tick
|
||||||
|
following[player.index][3] = {}
|
||||||
|
end)
|
||||||
|
|
||||||
----- Events -----
|
----- Events -----
|
||||||
|
|
||||||
@@ -148,7 +154,7 @@ end
|
|||||||
Event.add(defines.events.on_tick, update_all)
|
Event.add(defines.events.on_tick, update_all)
|
||||||
|
|
||||||
-- Check for player leaving
|
-- Check for player leaving
|
||||||
Event.add(defines.events.on_player_left_game, function(event)
|
Event.add(defines.events.on_pre_player_left_game, function(event)
|
||||||
local player = game.players[event.player_index]
|
local player = game.players[event.player_index]
|
||||||
Public.stop_follow(player)
|
Public.stop_follow(player)
|
||||||
for _, data in pairs(following) do
|
for _, data in pairs(following) do
|
||||||
|
|||||||
Reference in New Issue
Block a user