mirror of
https://github.com/PHIDIAS0303/ExpCluster.git
synced 2026-11-14 16:14:53 +09:00
Fixed Jail
This commit is contained in:
1 parent
b92a4af064
commit
55ac27054c
2 files changed
+49
-44
No files matched your search
+1
-1
@@ -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='Jail',tag='[Jail]',power=7,colour={r=50,g=50,b=50}}},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={},jail={}}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;jail=gTable.jail end;loadVar(defaults)function saveVar()gTable.itemRotated=itemRotated;gTable.ranks=ranks;gTable.autoRanks=autoRanks;gTable.selected=selected;gTable.jail=jail;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 local r={}for f,rank in pairs(ranks)do if rank.name:lower()==string:lower()then return rank end;if rank.name:lower():find(string:lower())then table.insert(r,rank)end end;if#r==1 then return r[1]end end end;function callRank(s,rank,t)local rank=stringToRank(rank)or stringToRank('Mod')local t=t or false;for f,q in pairs(game.players)do rankPower=getRank(q).power;if t then if rankPower>=rank.power then q.print(s)end else if rankPower<=rank.power then if rank.shortHand then q.print('['..rank.shortHand..']: '..s)else q.print('[Everyone]: '..s)end end end end end;function giveRank(q,rank,u)local u=u or'system'oldRank=getRank(q)local v='demoted'if rank.power<=oldRank.power then v='promoted'end;callRank(q.name..' was '..v..' to '..rank.name..' by '..u.name,oldRank.name)q.tag=rank.tag;drawToolbar(q)drawPlayerList()end;function autoRank(q)local w=getRank(q)local x=nil;for rank,y in pairs(autoRanks)do local z=false;for f,p in pairs(y)do if q.name==p then x=stringToRank(rank)z=true;break end end;if z then break end end;if x then if w.power>x.power then q.tag=x.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 jail(q,A)if q.character then if q.character.active then jail[q.index][1]=true;jail[q.index][2]=getRank(q).name;giveRank(q,'Jail',A)q.character.active=false else jail[q.index][1]=false;local rank=stringToRank(jail[q.index][2])or stringToRank('Guest')giveRank(q,rank,A)q.character.active=true end;saveVar()end end;function ticktohour(B)local C=tostring(math.floor(B/(216000*game.speed)))return C end;function ticktominutes(B)local D=math.floor(B/(3600*game.speed))return D 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)callRLine 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=50,g=50,b=50}}},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={},jail={}}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;jail=gTable.jail end;loadVar(defaults)function saveVar()gTable.itemRotated=itemRotated;gTable.ranks=ranks;gTable.autoRanks=autoRanks;gTable.selected=selected;gTable.jail=jail;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 local r={}for f,rank in pairs(ranks)do if rank.name:lower()==string:lower()then return rank end;if rank.name:lower():find(string:lower())then table.insert(r,rank)end end;if#r==1 then return r[1]end end end;function callRank(s,rank,t)local rank=stringToRank(rank)or stringToRank('Mod')local t=t or false;for f,q in pairs(game.players)do rankPower=getRank(q).power;if t then if rankPower>=rank.power then q.print('[Everyone]: '..s)end else if rankPower<=rank.power then if rank.shortHand~=''then q.print('['..rank.shortHand..']: '..s)else q.print('[Everyone]: '..s)end end end end end;function giveRank(q,rank,u,v)local u=u or'system'local rank=stringToRank(rank)or rank;local w=getRank(q)local x='demoted'if rank.power<=w.power then x='promoted'end;if u.name then callRank(q.name..' was '..x..' to '..rank.name..' by '..u.name,w.name)else callRank(q.name..' was '..x..' to '..rank.name..' by <system>',w.name)end;q.tag=rank.tag;drawToolbar(q)drawPlayerList()if v then else game.print(jail[q.index][1])game.print(rank.name)game.print(jail[q.index][1]and rank.name~='Jail')if rank.name=='Jail'and not jail[q.index][1]then jailPlayer(q,u)elseif jail[q.index][1]and rank.name~='Jail'then game.print('Unjail')jail[q.index][1]=false;q.character.active=true end end end;function autoRank(q)local y=getRank(q)local z=nil;for rank,A in pairs(autoRanks)do local B=false;for f,p in pairs(A)do if q.name==p then z=stringToRank(rank)B=true;break end end;if B then break end end;if z then if y.power>z.power then q.tag=z.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;if jail[q.index]==nil then jail[q.index]={false,getRank(q).name}end;if jail[q.index][1]then q.tag=stringToRank('Jail').tag;if q.character then q.character.active=false end end;saveVar()end;function jailPlayer(q,C)if q.character then if q.character.active then jail[q.index][1]=true;jail[q.index][2]=getRank(q).name;giveRank(q,'Jail',C,true)q.character.active=false else jail[q.index][1]=false;local rank=jail[q.index][2]or'Guest'giveRank(q,ranLine truncated
|
||||
+48
-43
@@ -119,27 +119,44 @@ function callRank(msg, rank, inv)
|
||||
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(msg) end else
|
||||
if rankPower <= rank.power then
|
||||
if rank.shortHand then
|
||||
player.print(('['..(rank.shortHand)..']: '..msg))
|
||||
else
|
||||
player.print(('[Everyone]: '..msg))
|
||||
end
|
||||
if inv then
|
||||
if rankPower >= rank.power then
|
||||
player.print(('[Everyone]: '..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
|
||||
end
|
||||
|
||||
function giveRank(player,rank,byPlayer)
|
||||
function giveRank(player,rank,byPlayer,sys)
|
||||
local byPlayer = byPlayer or 'system'
|
||||
oldRank = getRank(player)
|
||||
local rank = stringToRank(rank) or rank
|
||||
local 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.name,oldRank.name)
|
||||
if byPlayer.name then
|
||||
callRank(player.name..' was '..message..' to '..rank.name..' by '..byPlayer.name,oldRank.name)
|
||||
else
|
||||
callRank(player.name..' was '..message..' to '..rank.name..' by <system>',oldRank.name)
|
||||
end
|
||||
player.tag = rank.tag
|
||||
drawToolbar(player)
|
||||
drawPlayerList()
|
||||
if sys then else
|
||||
game.print(jail[player.index][1])
|
||||
game.print(rank.name)
|
||||
game.print(jail[player.index][1] and rank.name ~= 'Jail')
|
||||
if rank.name == 'Jail' and not jail[player.index][1] then
|
||||
jailPlayer(player,byPlayer)
|
||||
elseif jail[player.index][1] and rank.name ~= 'Jail' then
|
||||
game.print('Unjail')
|
||||
jail[player.index][1]=false
|
||||
player.character.active = true
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function autoRank(player)
|
||||
@@ -162,19 +179,27 @@ function autoRank(player)
|
||||
if getRank(player).power <= 3 and not player.admin then
|
||||
callRank(player.name..' needs to be promoted.')
|
||||
end
|
||||
if jail[player.index] == nil then
|
||||
jail[player.index]={false,getRank(player).name}
|
||||
end
|
||||
if jail[player.index][1] then
|
||||
player.tag=stringToRank('Jail').tag
|
||||
if player.character then player.character.active = false end
|
||||
end
|
||||
saveVar()
|
||||
end
|
||||
|
||||
function jail(player,byplayer)
|
||||
function jailPlayer(player,byplayer)
|
||||
if player.character then
|
||||
if player.character.active then
|
||||
jail[player.index][1]=true
|
||||
jail[player.index][2]=getRank(player).name
|
||||
giveRank(player,'Jail',byplayer)
|
||||
giveRank(player,'Jail',byplayer,true)
|
||||
player.character.active = false
|
||||
else
|
||||
jail[player.index][1]=false
|
||||
local rank = stringToRank(jail[player.index][2]) or stringToRank('Guest')
|
||||
giveRank(player,rank,byplayer)
|
||||
local rank = jail[player.index][2] or 'Guest'
|
||||
giveRank(player,rank,byplayer,true)
|
||||
player.character.active = true
|
||||
end
|
||||
saveVar()
|
||||
@@ -198,15 +223,15 @@ function clearSelection(player)
|
||||
end
|
||||
|
||||
function autoMessage()
|
||||
rank = stringToRank('Regular')
|
||||
hrank = stringToRank('Mod')
|
||||
local lrank = 'Regular'
|
||||
local hrank = '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)
|
||||
callRank('Please join us on:',lrank,true)
|
||||
callRank('Discord: https://discord.gg/RPCxzgt',lrank,true)
|
||||
callRank('Forum: explosivegaming.nl',lrank,true)
|
||||
callRank('Steam: http://steamcommunity.com/groups/tntexplosivegaming',lrank,true)
|
||||
callRank('To see these links again goto: Readme > Server Info',lrank,true)
|
||||
end
|
||||
----------------------------------------------------------------------------------------
|
||||
---------------------------Table Functions----------------------------------------------
|
||||
@@ -553,12 +578,6 @@ function drawPlayerList()
|
||||
clearElement(Plist)
|
||||
Plist.style.maximal_height = 200
|
||||
for i, player in pairs(game.connected_players) do
|
||||
if player.character then
|
||||
if player.tag == '[Jail]' or player.character.active == false then
|
||||
player.character.active = false
|
||||
player.tag = '[Jail]'
|
||||
end
|
||||
end
|
||||
playerRank = getRank(player)
|
||||
if playerRank.power <= 3 then
|
||||
if playerRank.shortHand ~= '' then Plist.add{type = "label", name=player.name, style="caption_label_style", caption={"", ticktohour(player.online_time), " H - " , player.name , ' - '..playerRank.shortHand}}
|
||||
@@ -589,21 +608,7 @@ addButton('bring',
|
||||
local p = game.players[frame.parent.name]
|
||||
p.teleport(game.surfaces[player.surface.name].find_non_colliding_position("player", player.position, 32, 1))
|
||||
end)
|
||||
addButton('jail',
|
||||
function(player,frame)
|
||||
local p = game.players[frame.parent.name]
|
||||
if p.character then
|
||||
if p.character.active then
|
||||
p.character.active = false
|
||||
p.tag = '[Jail]'
|
||||
drawPlayerList()
|
||||
else
|
||||
p.character.active = true
|
||||
p.tag = '[Guest]'
|
||||
drawPlayerList()
|
||||
end
|
||||
end
|
||||
end)
|
||||
addButton('jail',function(player,frame) jailPlayer(game.players[frame.parent.name],player) end)
|
||||
addButton('kill',
|
||||
function(player,frame)
|
||||
local p = game.players[frame.parent.name]
|
||||
@@ -652,7 +657,7 @@ function drawPlayerTable(player, frame, commands, select,filters)
|
||||
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
|
||||
drawButton(frame.playerTable[p.name],'jail','Ja','Jail/Unjail player player')
|
||||
drawButton(frame.playerTable[p.name],'jail','Ja','Jail/Unjail player')
|
||||
drawButton(frame.playerTable[p.name],'kill','Ki','Kill this player')
|
||||
end
|
||||
elseif select then
|
||||
|
||||
Reference in new issue
Block a user