Many Many Bug Fixes Later

This commit is contained in:
Cooldude2606 committed 2017-04-07 20:07:00 +01:00
1 parent 5f68bf8062
commit 89fd43c05c
2 files changed
+37 -31

No files matched your search

+1 -1
View File
@@ -1 +1 @@
entityRemoved={}entityCache={}guis={frames={},buttons={}}defaults={itemRotated={},ranks={{name='Owner',shortHand='Owner',tag='[Owner]',power=0,colour={r=170,g=0,b=0}},{name='Community Manager',shortHand='CM',tag='[Com Mngr]',power=1,colour={r=150,g=68,b=161}},{name='Developer',shortHand='Dev',tag='[Dev]',power=1,colour={r=179,g=125,b=46}},{name='Admin',shortHand='Admin',tag='[Admin]',power=2,colour={r=170,g=41,b=170}},{name='Mod',shortHand='Mod',tag='[Mod]',power=3,colour={r=233,g=63,b=233}},{name='Donator',shortHand='P2W',tag='[P2W]',power=4,colour={r=233,g=63,b=233}},{name='Member',shortHand='Mem',tag='[Member]',power=5,colour={r=24,g=172,b=188}},{name='Regular',shortHand='Reg',tag='[Regukar]',power=5,colour={r=24,g=172,b=188}},{name='Guest',shortHand='',tag='[Guest]',power=6,colour={r=255,g=159,b=27}},{name='Jail',shortHand='Owner',tag='[Owner]',power=7,colour={r=170,g=0,b=0}}},autoRanks={Owner={'badgamernl'},['Community Manager']={'arty714'},Developer={'Cooldude2606'},Admin={'eissturm','PropangasEddy'},Mod={'Alanore','Aquaday','cafeslacker','CrashKonijn','Drahc_pro','Flip','freek18','Hobbitkicker','hud','Matthias','MeDDish','Mindxt20','MottledPetrel','Mr_Happy_212','Phoenix27833','Sand3r205','ScarbVis','Smou','steentje77','TopHatGaming123'},Donator={},Member={},Regular={},Guest={},Jail={}},selected={}}warningAllowed=nil;timeForRegular=180;CHUNK_SIZE=32;function loadVar(a)if a==nil then local b=nil;if game.players[1].gui.left.hidden then b=game.players[1].gui.left.hidden.caption else b=game.players[1].gui.left.add{type='frame',name='hidden',caption=table.tostring(defaults)}.caption;game.players[1].gui.left.hidden.style.visible=false end;gTable=loadstring('return '..b)()else gTable=a end;itemRotated=gTable.itemRotated;ranks=gTable.ranks;autoRanks=gTable.autoRanks;selected=gTable.selected end;function saveVar()gTable.itemRotated=itemRotated;gTable.ranks=ranks;gTable.autoRanks=autoRanks;selected=gTable.selected;game.players[1].gui.left.hidden.caption=table.tostring(gTable)end;local function c(d,e)if d.find_entities_filtered{area=e,type="decorative"}then for f,g in pairs(d.find_entities_filtered{area=e,type="decorative"})do if g.name~="red-bottleneck"and g.name~="yellow-bottleneck"and g.name~="green-bottleneck"then g.destroy()end end end end;local function h(d,i,j,k,l)c(d,{{i,j},{i+k,j+l}})end;local function m()local d=game.surfaces["nauvis"]for n in d.get_chunks()do h(d,n.x*CHUNK_SIZE,n.y*CHUNK_SIZE,CHUNK_SIZE-1,CHUNK_SIZE-1)end;callRank("Decoratives have been removed")end;script.on_event(defines.events.on_chunk_generated,function(o)c(o.surface,o.area)end)function getRank(q)if q then for f,rank in pairs(ranks)do if q.tag==rank.tag then return rank end end;return stringToRank('Guest')end end;function stringToRank(string)if type(string)=='string'then for f,rank in pairs(ranks)do if rank.name==string then return rank end end end end;function callRank(r,rank,s)if rank==nil then rank=stringToRank('Mod')else rank=stringToRank(rank)end;for f,q in pairs(game.players)do rankPower=getRank(q).power;if s then if rankPower>=rank.power then q.print('['..rank.shortHand..']: '..r)end else if rankPower<=rank.power then q.print('['..rank.shortHand..']: '..r)end end end end;function giveRank(q,rank,t)local t=t or'system'oldRank=getRank(q)local u='demoted'if rank.power<=oldRank.power then u='promoted'end;callRank(q.name..' was '..u..' to '..rank.name..' by '..byplayer,oldRank)q.tag=rank.tag;drawToolbar(q)drawPlayerList()end;function autoRank(q)local v=getRank(q)local w=nil;for rank,x in pairs(autoRanks)do local y=false;for f,p in pairs(x)do if q.name==p then w=stringToRank(rank)y=true;break end end;if y then break end end;if w then if v.power>w.power then q.tag=w.tag end elseif ticktominutes(q.online_time)>=timeForRegular then q.tag=stringToRank('Regular').tag end;if getRank(q).power<=3 and not q.admin then callRank(q.name..' needs to be promoted.')end end;function ticktohour(z)local A=tostring(math.floor(z/(216000*game.speed)))return A end;function ticktominutes(z)local B=math.floor(z/(3600*game.speed))return B end;function callRank(r)for f,q in pairs(game.connected_players)do if q.admin then q.print(r)end end end;function clearSelection(q)selected[q.index]={}end;function autoMessage()rank=stringToRank('Regular')hrank=stringToRank('Mod')callRank('There are '..#game.connected_players..' players online',hrank,true)callRank('This map has been on for '..ticktohour(game.tick)..' Hours and '..ticktominutes(game.tick)-60*ticktohour(game.tick)..' Minutes',hrank,true)callRank('Please join us on:',rank,true)callRank('Discord: https://discord.gg/RPCxzgt',rank,true)callRank('Forum: explosivegaming.nl',rank,true)callRank('Steam: http://steamcommunity.com/groups/tntexplosivegaming',rank,true)callRank('To see these links again goto: Readme > Server Info',rank,true)end;function table.val_to_str(C)if"string"==type(C)then C=string.gsub(C,"\n","\\n")if string.match(string.gsub(C,"[^'\"]",""),'^"+$')then return"'"..C.."'"end;return'"'..string.gLine truncated
entityRemoved={}entityCache={}guis={frames={},buttons={}}defaults={itemRotated={},ranks={{name='Owner',shortHand='Owner',tag='[Owner]',power=0,colour={r=170,g=0,b=0}},{name='Community Manager',shortHand='CM',tag='[Com Mngr]',power=1,colour={r=150,g=68,b=161}},{name='Developer',shortHand='Dev',tag='[Dev]',power=1,colour={r=179,g=125,b=46}},{name='Admin',shortHand='Admin',tag='[Admin]',power=2,colour={r=170,g=41,b=170}},{name='Mod',shortHand='Mod',tag='[Mod]',power=3,colour={r=233,g=63,b=233}},{name='Donator',shortHand='P2W',tag='[P2W]',power=4,colour={r=233,g=63,b=233}},{name='Member',shortHand='Mem',tag='[Member]',power=5,colour={r=24,g=172,b=188}},{name='Regular',shortHand='Reg',tag='[Regukar]',power=5,colour={r=24,g=172,b=188}},{name='Guest',shortHand='',tag='[Guest]',power=6,colour={r=255,g=159,b=27}},{name='Jail',shortHand='Jail',tag='[Jail]',power=7,colour={r=170,g=0,b=0}}},autoRanks={Owner={'badgamernl'},['Community Manager']={'arty714'},Developer={'Cooldude2606'},Admin={'eissturm','PropangasEddy'},Mod={'Alanore','Aquaday','cafeslacker','CrashKonijn','Drahc_pro','Flip','freek18','Hobbitkicker','hud','Matthias','MeDDish','Mindxt20','MottledPetrel','Mr_Happy_212','Phoenix27833','Sand3r205','ScarbVis','Smou','steentje77','TopHatGaming123'},Donator={},Member={},Regular={},Guest={},Jail={}},selected={}}warningAllowed=nil;timeForRegular=180;CHUNK_SIZE=32;function loadVar(a)if a==nil then local b=nil;if game.players[1].gui.left.hidden then b=game.players[1].gui.left.hidden.caption else b=game.players[1].gui.left.add{type='frame',name='hidden',caption=table.tostring(defaults)}.caption;game.players[1].gui.left.hidden.style.visible=false end;gTable=loadstring('return '..b)()else gTable=a end;itemRotated=gTable.itemRotated;ranks=gTable.ranks;autoRanks=gTable.autoRanks;selected=gTable.selected end;function saveVar()gTable.itemRotated=itemRotated;gTable.ranks=ranks;gTable.autoRanks=autoRanks;selected=gTable.selected;game.players[1].gui.left.hidden.caption=table.tostring(gTable)end;local function c(d,e)if d.find_entities_filtered{area=e,type="decorative"}then for f,g in pairs(d.find_entities_filtered{area=e,type="decorative"})do if g.name~="red-bottleneck"and g.name~="yellow-bottleneck"and g.name~="green-bottleneck"then g.destroy()end end end end;local function h(d,i,j,k,l)c(d,{{i,j},{i+k,j+l}})end;local function m()local d=game.surfaces["nauvis"]for n in d.get_chunks()do h(d,n.x*CHUNK_SIZE,n.y*CHUNK_SIZE,CHUNK_SIZE-1,CHUNK_SIZE-1)end;callRank("Decoratives have been removed")end;script.on_event(defines.events.on_chunk_generated,function(o)c(o.surface,o.area)end)function getRank(q)if q then for f,rank in pairs(ranks)do if q.tag==rank.tag then return rank end end;return stringToRank('Guest')end end;function stringToRank(string)if type(string)=='string'then for f,rank in pairs(ranks)do if rank.name==string then return rank end end end end;function callRank(r,rank,s)local rank=stringToRank(rank)or stringToRank('Mod')local s=s or false;for f,q in pairs(game.players)do rankPower=getRank(q).power;if s then if rankPower>=rank.power then q.print(r)end else if rankPower<=rank.power then q.print('['..rank.shortHand..']: '..r)end end end end;function giveRank(q,rank,t)local t=t or'system'oldRank=getRank(q)local u='demoted'if rank.power<=oldRank.power then u='promoted'end;callRank(q.name..' was '..u..' to '..rank.name..' by '..t.name,oldRank.name)q.tag=rank.tag;drawToolbar(q)drawPlayerList()end;function autoRank(q)local v=getRank(q)local w=nil;for rank,x in pairs(autoRanks)do local y=false;for f,p in pairs(x)do if q.name==p then w=stringToRank(rank)y=true;break end end;if y then break end end;if w then if v.power>w.power then q.tag=w.tag end elseif ticktominutes(q.online_time)>=timeForRegular then q.tag=stringToRank('Regular').tag end;if getRank(q).power<=3 and not q.admin then callRank(q.name..' needs to be promoted.')end end;function ticktohour(z)local A=tostring(math.floor(z/(216000*game.speed)))return A end;function ticktominutes(z)local B=math.floor(z/(3600*game.speed))return B end;function clearSelection(q)selected[q.index]={}end;function autoMessage()rank=stringToRank('Regular')hrank=stringToRank('Mod')callRank('There are '..#game.connected_players..' players online',hrank,true)callRank('This map has been on for '..ticktohour(game.tick)..' Hours and '..ticktominutes(game.tick)-60*ticktohour(game.tick)..' Minutes',hrank,true)callRank('Please join us on:',rank,true)callRank('Discord: https://discord.gg/RPCxzgt',rank,true)callRank('Forum: explosivegaming.nl',rank,true)callRank('Steam: http://steamcommunity.com/groups/tntexplosivegaming',rank,true)callRank('To see these links again goto: Readme > Server Info',rank,true)end;function table.val_to_str(C)if"string"==type(C)then C=string.gsub(C,"\n","\\n")if string.match(string.gsub(C,"[^'\"]",""),'^"+$')then return"'"..C.."'"end;return'"'..string.gsub(C,'"','\\"')..'"'else return"table"==type(C)and table.tostring(C)or tostring(C)end end;function table.key_to_str(D)if"string"==tLine truncated
+36 -30
View File
@@ -15,7 +15,7 @@ defaults = {
{name='Member',shortHand='Mem',tag='[Member]',power=5,colour={r=24,g=172,b=188}},
{name='Regular',shortHand='Reg',tag='[Regukar]',power=5,colour={r=24,g=172,b=188}},
{name='Guest',shortHand='',tag='[Guest]',power=6,colour={r=255,g=159,b=27}},
{name='Jail',shortHand='Owner',tag='[Owner]',power=7,colour={r=170,g=0,b=0}}
{name='Jail',shortHand='Jail',tag='[Jail]',power=7,colour={r=170,g=0,b=0}}
},
autoRanks={
Owner={'badgamernl'},
@@ -109,11 +109,17 @@ function stringToRank(string)
end
function callRank(msg, rank, inv)
if rank == nil then rank = stringToRank('Mod') else rank = stringToRank(rank) end -- default mod or higher
local rank = stringToRank(rank) or stringToRank('Mod') -- default mod or higher
local inv = inv or false
for _, player in pairs(game.players) do
rankPower = getRank(player).power
if inv then if rankPower >= rank.power then player.print('['..rank.shortHand..']: '..msg) end else
if rankPower <= rank.power then player.print('['..rank.shortHand..']: '..msg) end
if inv then if rankPower >= rank.power then player.print(msg) end else
if rankPower <= rank.power then
if rank.shortHand then
player.print(('['..(rank.shortHand)..']: '..msg))
else
player.print(('[Everyone]: '..msg))
end
end
end
end
@@ -123,7 +129,7 @@ function giveRank(player,rank,byPlayer)
oldRank = getRank(player)
local message = 'demoted'
if rank.power <= oldRank.power then message = 'promoted' end
callRank(player.name..' was '..message..' to '..rank.name..' by '..byplayer,oldRank)
callRank(player.name..' was '..message..' to '..rank.name..' by '..byPlayer.name,oldRank.name)
player.tag = rank.tag
drawToolbar(player)
drawPlayerList()
@@ -163,14 +169,6 @@ function ticktominutes (tick)
return minutes
end
function callRank(msg)
for _, player in pairs(game.connected_players) do
if player.admin then
player.print(msg)
end
end
end
function clearSelection(player)
selected[player.index] = {}
end
@@ -376,13 +374,13 @@ end)
script.on_event(defines.events.on_gui_text_changed, function(event)
local player = game.players[event.player_index]
if event.element.parent.parent.filterTable then
if event.element.parent.name == 'filterTable' then
local frame = event.element
local filters = {}
local commands = false
local select = false
if frame.parent.parent.parent.name == 'Admin' then commands = true filters[#filters+1] = 'online' end
if frame.parent.parent.parent.name == 'Admin+' then select = true filters[#filters+1] = 'lower' end
if frame.parent.parent.parent.name == 'Admin' and not frame.parent.sel_input then commands = true filters[#filters+1] = 'online' end
if frame.parent.parent.parent.name == 'Admin' and frame.parent.sel_input then select = true filters[#filters+1] = 'lower' end
if frame.parent.parent.filterTable.status_input and not commands then
local status_input = frame.parent.parent.filterTable.status_input.text
if status_input == 'yes' or status_input == 'online' or status_input == 'true' or status_input == 'y' then filters[#filters+1] = 'online'
@@ -394,7 +392,7 @@ script.on_event(defines.events.on_gui_text_changed, function(event)
local name_input = frame.parent.parent.filterTable.name_input.text
if name_input then filters[#filters+1] = name_input end
end if frame.parent.parent.filterTable.sel_input then
local sel_input = frame.parent.parent.filterTable.name_input.text
local sel_input = frame.parent.parent.filterTable.sel_input.text
if sel_input == 'yes' or sel_input == 'online' or sel_input == 'true' or sel_input == 'y' then filters[#filters+1] = 'selected' end
end
if frame.parent.parent.playerTable then frame.parent.parent.playerTable.destroy() end
@@ -587,6 +585,7 @@ addButton('kill',
if p.character then p.character.die() end
end)
function drawPlayerTable(player, frame, commands, select,filters)
if frame.playerTable then frame.playerTable.destroy() end
frame.add{name='playerTable', type="table", colspan=5}
frame.playerTable.style.minimal_width = 500
frame.playerTable.style.maximal_width = 500
@@ -597,15 +596,15 @@ function drawPlayerTable(player, frame, commands, select,filters)
frame.playerTable.add{name="online_time", type="label", caption="Online Time "}
frame.playerTable.add{name="rank", type="label", caption="Rank "}
if commands then frame.playerTable.add{name="commands", type="label", caption="Commands"} end
if select then frame.playerTable.add{name="select", type="label", caption="Selection"} end
if select then frame.playerTable.add{name="select_label", type="label", caption="Selection"} end
for i, p in pairs(game.players) do
local addPlayer = true
for _,filter in pairs(filters) do
if filter == 'admin' then if p.admin == false then addPlayer = false break end
elseif filter == 'online' then if p.connected == false then addPlayer = false break end
elseif filter == 'offline' then if p.connected == true then addPlayer = false break end
elseif filter == 'lower' then if getRank(p).power <= getRank(player.power) then addPlayer = false break end
elseif filter == 'selected' then if frame.playerTable[p.name].state == false then addPlayer = false break end
elseif filter == 'lower' then if getRank(p).power <= getRank(player).power then addPlayer = false break end
elseif filter == 'selected' then local Break = nil for _,name in pairs(selected[player.index]) do if name == p.name then Break = true break end end if not Break then addPlayer = false break end
elseif type(filter)=='number' then if filter > ticktominutes(p.online_time) then addPlayer = false break end
elseif type(filter)=='string' then if p.name:lower():find(filter:lower()) == nil then addPlayer = false break end
end
@@ -614,7 +613,7 @@ function drawPlayerTable(player, frame, commands, select,filters)
if frame.playerTable[p.name] == nil then
frame.playerTable.add{name=i .. "id", type="label", caption=i}
frame.playerTable.add{name=p.name..'_name', type="label", caption=p.name}
if not commands then
if not commands and not select then
if p.connected == true then
frame.playerTable.add{name=p.name .. "Status", type="label", caption="ONLINE"}
else
@@ -627,7 +626,7 @@ function drawPlayerTable(player, frame, commands, select,filters)
frame.playerTable.add{name=p.name, type="flow"}
drawButton(frame.playerTable[p.name],'goto','Tp','Goto to the players location')
drawButton(frame.playerTable[p.name],'bring','Br','Bring player player to your location')
if getRank(p).power >= getRank(player).power then else
if getRank(p).power >= getRank(player).power then
drawButton(frame.playerTable[p.name],'jail','Ja','Jail/Unjail player player')
drawButton(frame.playerTable[p.name],'kill','Ki','Kill this player')
end
@@ -635,7 +634,7 @@ function drawPlayerTable(player, frame, commands, select,filters)
frame.playerTable.add{name=p.name, type="flow"}
local state = false
for _,name in pairs(selected[player.index]) do if name == p.name then state = true break end end
frame.playerTable.add{name='select', type="checkbox",state=state}
frame.playerTable[p.name].add{name='select', type="checkbox",state=state}
end
end
end
@@ -724,21 +723,24 @@ addButton('btn_toolbar_automessage',function() autoMessage() end)
addButton('tp_all',function(player,frame) for i,p in pairs(game.connected_players) do local pos = game.surfaces[player.surface.name].find_non_colliding_position("player", player.position, 32, 1) if p ~= player then p.teleport(pos) end end end)
addButton('revive_dead_entitys_range',function(player,frame) if tonumber(frame.parent.range.text) then local range = tonumber(frame.parent.range.text) for key, entity in pairs(game.surfaces[1].find_entities_filtered({area={{player.position.x-range,player.position.y-range},{player.position.x+range,player.position.y+range}},type = "entity-ghost"})) do entity.revive() end end end)
addButton('add_dev_items',function(player,frame) player.insert{name="deconstruction-planner", count = 1} player.insert{name="blueprint-book", count = 1} player.insert{name="blueprint", count = 20} end)
addButton('setRanks',
addButton('sendMessage',function(player,frame) local rank = stringToRank(frame.parent.message.rank.text) if rank then callRank(frame.parent.message.message.text,rank.name) else for _,rank in pairs(ranks) do player.print(rank.name) end end)
addButton('setRanks',player.print(frame.parent.rank_input.text..' is not a Rank, Ranks are:')
function(player,frame)
rank = stringToRank(frame.parent.rank.rank_input.text)
rank = stringToRank(frame.parent.rank_input.text)
if rank then
for _,playerName in pairs(selected[player.index]) do
p=game.players[playerName]
if getRank(player).power < getRank(p).power and rank.power > getRank(p) then
if getRank(player).power < getRank(p).power and rank.power > getRank(player).power then
giveRank(p,rank,player)
else
player.print('You can not edit '..p.name..' rank there rank or the rank you have slected is too high')
player.print('You can not edit '..p.name.."'s rank there rank is too high (or the rank you have slected is above you)")
end
end
end
else
player.print(frame.parent.rank_input.text..' is not a Rank, Ranks are:') for _,rank in pairs(ranks) do if rank.power > getRank(player).power then player.print(rank.name) end end
end
end)
addButton('clearSelection',function(player,fram) clearSelection(player) end)
addButton('clearSelection',function(player,frame) clearSelection(player) drawPlayerTable(player, frame.parent.parent, false, true, {}) end)
addTab('Admin', 'Commands', 'Random useful commands',
function(player, frame)
@@ -746,6 +748,10 @@ addTab('Admin', 'Commands', 'Random useful commands',
drawButton(frame,'add_dev_items','Get Blueprints','Get all the blueprints')
drawButton(frame,'revive_dead_entitys_range','Revive Entitys','Brings all dead machines back to life in player range')
frame.add{type='textfield',name='range',text='Range'}
frame.add{type='flow',name='message'}
frame.message.add{type='textfield',name='message',text='Enter message'}
frame.message.add{type='textfield',name='rank',text='Endter rank'}
drawButton(frame,'sendMessage','Send Message','Send a message to all ranks higher than the slected')
drawButton(frame,'tp_all','TP All Here','Brings all players to you')
end)
addTab('Admin','Edit Ranks', 'Edit the ranks of players below you',
@@ -761,7 +767,7 @@ addTab('Admin','Edit Ranks', 'Edit the ranks of players below you',
frame.rank.add{name='rank_input',type='textfield'}
drawButton(frame.rank,'setRanks','Set Ranks','Sets the rank of all selected players')
drawButton(frame.rank,'clearSelection','Clear Selection','Clears all currently selected players')
drawPlayerTable(player, frame, false, true, {})
drawPlayerTable(player, frame, false, true, {'lower'})
end)
addTab('Admin', 'Player List', 'Send player message to all players',
function(player, frame)