From 61bdd84c2e0aeb3c54a41b3be67d08c0c1961584 Mon Sep 17 00:00:00 2001 From: Cooldude2606 Date: Wed, 18 Apr 2018 19:32:55 +0100 Subject: [PATCH] Fixed Bonus After Death And Instant Respawn --- Addons/Commands/bonus.lua | 24 ++++++++++++++++++++++++ Addons/playerRanks.lua | 3 ++- 2 files changed, 26 insertions(+), 1 deletion(-) diff --git a/Addons/Commands/bonus.lua b/Addons/Commands/bonus.lua index b2e7a40d..9ebbe5da 100644 --- a/Addons/Commands/bonus.lua +++ b/Addons/Commands/bonus.lua @@ -17,11 +17,18 @@ local settings = { {key='character_inventory_slots_bonus',scale=200} } +local function _bonus(reset) + global.addons = not reset and global.addons or {} + global.addons.homes = not reset and global.addons.bonus or {} + return global.addons.bonus +end + commands.add_command('bonus', 'Set your player bonus (default is 20, guest has 0)', {'bonus'}, function(event,args) local player = Game.get_player(event) local bonus = tonumber(args.bonus) if not bonus or bonus < 0 or bonus > 50 then player_return{'commands.invalid-range',0,50} return commands.error end for _,setting in pairs(settings) do player[setting.key] = setting.scale*math.floor(bonus)*0.01 end + _bonus()[player.index]=bonus player_return('Bonus set to: '..math.floor(bonus)..'%') end) @@ -29,7 +36,24 @@ Event.register(defines.events.rank_change,function(event) local player = Game.get_player(event) if event.new_rank:allowed('bonus') then for _,setting in pairs(settings) do player[setting.key] = setting.scale*0.2 end + _bonus()[player.index]=0.2 else for _,setting in pairs(settings) do player[setting.key] = 0 end + _bonus()[player.index]=nil + end +end) + +Event.register(defines.events.on_player_respawned,fucntion(event) + local player = Game.get_player(event) + local bonus = _bonus()[player.index] + if bonus then + for _,setting in pairs(settings) do player[setting.key] = setting.scale*math.floor(bonus)*0.01 end + end +end) + +Event.register(defines.events.on_player_died,function(event) + local player = Game.get_player(event) + if Ranking.get_rank(player):allowed('bonus-respawn') then + player.ticks_to_respawn = nil end end) \ No newline at end of file diff --git a/Addons/playerRanks.lua b/Addons/playerRanks.lua index 8801a98d..9cb19c79 100644 --- a/Addons/playerRanks.lua +++ b/Addons/playerRanks.lua @@ -189,7 +189,8 @@ ranks['Donator']:edit('allow',false,{ ['set-home']=true, ['home']=true, ['return']=true, - ['bonus']=true + ['bonus']=true, + ['bonus-respawn']=true }) ranks['Veteran']:edit('allow',false,{ ['tree-decon']=true,