Rewrote blackholes (gravitational anomalies) and wormholes to try and optimise them a little. If you have any concerns about how I've done so just give me a shout and I'll either rework them or revert my changes back. Wormholes especially seem a bit faster on my laptop. Smoke has temporarily been removed from the blackhole event until I get time to investigate why the hell effect_systems are using so much memory ( spark effects were using 40% of my processor a second ago D: ). To compensate this I made them a new sprite.

Commented out the authentication system. It was the remnants of the old goon authentication stuff (or maybe even older) and wasn't actually used in our code at all (at least not in any useful way, it was merely called and short-circuited to 1, so all those if(authenticated) were totally pointless. This has removed 3 unused variables from every client, a bunch of unused variables from the config and two empty text files!

Committed (as a config option) a feature requested by Apoc station. It causes a 'reply to' window to popup when an admin PMs a non-admin player. It's meant to grab their attention so they can't say "I didn't see your PM". It defaults to off. To turn it on just uncomment the #POPUP_ADMIN_PM line in config/config.txt

Fixed a derp in isday where it was fetching the month instead of the day.

Removed medal references from Gib()

Removed the medal_hub global variables because they aren't used in any way shape or form.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@3444 316c924e-a436-60f5-8080-3fe189b3f50e
This commit is contained in:
elly1989@rocketmail.com
2012-04-12 21:54:51 +00:00
parent bf52ba01d4
commit 04f0a79866
52 changed files with 315 additions and 319 deletions

View File

@@ -7,7 +7,7 @@ var/global/BSACooldown = 0
var/rendered = "<span class=\"admin\"><span class=\"prefix\">ADMIN LOG:</span> <span class=\"message\">[text]</span></span>"
log_adminwarn(rendered)
for (var/mob/M in world)
if (M && M.client && M.client.holder && M.client.authenticated)
if (M && M.client && M.client.holder)
if (admin_ref)
M << dd_replaceText(rendered, "%admin_ref%", "\ref[M]")
else
@@ -959,15 +959,15 @@ var/global/BSACooldown = 0
log_admin("[key_name(usr)] has sent [key_name(M)] to the thunderdome. (Observer.)")
message_admins("[key_name_admin(usr)] has sent [key_name_admin(M)] to the thunderdome. (Observer.)", 1)
if (href_list["adminauth"])
if ((src.rank in list( "Admin Candidate", "Temporary Admin", "Trial Admin", "Badmin", "Game Admin", "Game Master" )))
var/mob/M = locate(href_list["adminauth"])
if (ismob(M) && !M.client.authenticated && !M.client.authenticating)
M.client.verbs -= /client/proc/authorize
M.client.authenticated = text("admin/[]", usr.client.authenticated)
log_admin("[key_name(usr)] authorized [key_name(M)]")
message_admins("\blue [key_name_admin(usr)] authorized [key_name_admin(M)]", 1)
M.client << text("You have been authorized by []", usr.key)
// if (href_list["adminauth"])
// if ((src.rank in list( "Admin Candidate", "Temporary Admin", "Trial Admin", "Badmin", "Game Admin", "Game Master" )))
// var/mob/M = locate(href_list["adminauth"])
// if (ismob(M) && !M.client.authenticated && !M.client.authenticating)
// M.client.verbs -= /client/proc/authorize
// M.client.authenticated = text("admin/[]", usr.client.authenticated)
// log_admin("[key_name(usr)] authorized [key_name(M)]")
// message_admins("\blue [key_name_admin(usr)] authorized [key_name_admin(M)]", 1)
// M.client << text("You have been authorized by []", usr.key)
if (href_list["revive"])
if ((src.rank in list( "Trial Admin", "Badmin", "Game Admin", "Game Master" )))
@@ -1803,32 +1803,16 @@ var/global/BSACooldown = 0
world << sound('granomalies.ogg')
var/turf/T = pick(blobstart)
var/obj/effect/bhole/bh = new /obj/effect/bhole( T.loc, 30 )
spawn(rand(50, 300))
spawn(rand(100, 600))
del(bh)
if("timeanomalies")
if("timeanomalies") //dear god this code was awful :P Still needs further optimisation
feedback_inc("admin_secrets_fun_used",1)
feedback_add_details("admin_secrets_fun_used","STA")
command_alert("Space-time anomalies detected on the station. There is no additional data.", "Anomaly Alert")
world << sound('spanomalies.ogg')
var/list/turfs = list( )
var/turf/picked
for(var/turf/T in world)
if(T.z == 1 && istype(T,/turf/simulated/floor) && !istype(T,/turf/space))
turfs += T
for(var/turf/T in world)
set background = 1
if(prob(20) && T.z == 1 && istype(T,/turf/simulated/floor))
spawn(50+rand(0,3000))
picked = pick(turfs)
var/obj/effect/portal/P = new /obj/effect/portal( T )
P.target = picked
P.creator = null
P.icon = 'objects.dmi'
P.failchance = 0
P.icon_state = "anom"
P.name = "wormhole"
spawn(rand(300,600))
del(P)
//moved to its own dm so I could split it up and prevent the spawns copying variables over and over
//can be found in code\game\game_modes\events\wormholes.dm
wormhole_event()
if("goblob")
feedback_inc("admin_secrets_fun_used",1)
feedback_add_details("admin_secrets_fun_used","BL")
@@ -2218,10 +2202,10 @@ var/global/BSACooldown = 0
var/dat = "<html><head><title>Options for [M.key]</title></head>"
var/foo = "\[ "
if (ismob(M) && M.client)
if(!M.client.authenticated && !M.client.authenticating)
foo += text("<A HREF='?src=\ref[src];adminauth=\ref[M]'>Authorize</A> | ")
else
foo += text("<B>Authorized</B> | ")
// if(!M.client.authenticated && !M.client.authenticating)
// foo += text("<A HREF='?src=\ref[src];adminauth=\ref[M]'>Authorize</A> | ")
// else
// foo += text("<B>Authorized</B> | ")
foo += text("<A HREF='?src=\ref[src];prom_demot=\ref[M.client]'>Promote/Demote</A> | ")
if(!istype(M, /mob/new_player))
if(!ismonkey(M))
@@ -2518,14 +2502,14 @@ var/global/BSACooldown = 0
for(var/mob/CM in world)
if(CM.client)
if(config.vote_no_default || (config.vote_no_dead && CM.stat == 2) || !CM.client.authenticated)
if(config.vote_no_default || (config.vote_no_dead && CM.stat == 2))
CM.client.vote = "none"
else
CM.client.vote = "default"
for(var/mob/CM in world)
if(CM.client)
if(config.vote_no_default || (config.vote_no_dead && CM.stat == 2) || !CM.client.authenticated)
if(config.vote_no_default || (config.vote_no_dead && CM.stat == 2))
CM.client.vote = "none"
else
CM.client.vote = "default"

View File

@@ -523,7 +523,7 @@
/client/proc/stealth()
set category = "Admin"
set name = "Stealth Mode"
if(!authenticated || !holder)
if(!holder)
src << "Only administrators may use this command."
return
stealth = !stealth
@@ -546,7 +546,7 @@
set category = "Special Verbs"
set name = "Warn"
set desc = "Warn a player"
if(!authenticated || !holder)
if(!holder)
src << "Only administrators may use this command."
return
if(M.client && M.client.holder && (M.client.holder.level >= holder.level))
@@ -662,7 +662,7 @@
/client/proc/toggle_clickproc() //TODO ERRORAGE (This is a temporary verb here while I test the new clicking proc)
set name = "Toggle NewClickProc"
set category = "Admin"
set category = "Debug"
if(!holder) return
using_new_click_proc = !using_new_click_proc

View File

@@ -1,9 +1,6 @@
/mob/verb/adminhelp(msg as text)
set category = "Admin"
set name = "Adminhelp"
if(!usr.client.authenticated)
src << "Please authorize before sending these messages."
return
msg = copytext(sanitize(msg), 1, MAX_MESSAGE_LEN)

View File

@@ -2,7 +2,7 @@
set name = "Jump to Area"
set desc = "Area to jump to"
set category = "Admin"
if(!src.authenticated || !src.holder)
if(!src.holder)
src << "Only administrators may use this command."
return
@@ -17,7 +17,7 @@
/client/proc/jumptoturf(var/turf/T in world)
set name = "Jump to Turf"
set category = "Admin"
if(!src.authenticated || !src.holder)
if(!src.holder)
src << "Only administrators may use this command."
return
if(config.allow_admin_jump)
@@ -32,7 +32,7 @@
set category = "Admin"
set name = "Jump to Mob"
if(!src.authenticated || !src.holder)
if(!src.holder)
src << "Only administrators may use this command."
return
@@ -53,7 +53,7 @@
set category = "Admin"
set name = "Jump to Coordinate"
if (!authenticated || !holder)
if (!holder)
src << "Only administrators may use this command."
return
@@ -72,7 +72,7 @@
set category = "Admin"
set name = "Jump to Key"
if(!src.authenticated || !src.holder)
if(!src.holder)
src << "Only administrators may use this command."
return
@@ -94,7 +94,7 @@
set category = "Admin"
set name = "Get Mob"
set desc = "Mob to teleport"
if(!src.authenticated || !src.holder)
if(!src.holder)
src << "Only administrators may use this command."
return
if(config.allow_admin_jump)
@@ -109,7 +109,7 @@
set name = "Get Key"
set desc = "Key to teleport"
if(!src.authenticated || !src.holder)
if(!src.holder)
src << "Only administrators may use this command."
return
@@ -134,7 +134,7 @@
/client/proc/sendmob(var/mob/M in world, var/area/A in world)
set category = "Admin"
set name = "Send Mob"
if(!src.authenticated || !src.holder)
if(!src.holder)
src << "Only administrators may use this command."
return
if(config.allow_admin_jump)

View File

@@ -3,9 +3,7 @@
set name = "Asay" //Gave this shit a shorter name so you only have to time out "asay" rather than "admin say" to use it --NeoFite
set hidden = 1
// All admins should be authenticated, but... what if?
if (!src.authenticated || !src.holder)
if (!src.holder)
src << "Only administrators may use this command."
return
@@ -23,7 +21,7 @@
for (var/mob/M in world)
if (M.client && M.client.holder)
if (src.holder.rank == "Admin Observer")
M << "<span class=\"gfartadmin\"><span class=\"prefix\">ADMIN:</span> <span class=\"name\">[key_name(usr, M)]:</span> <span class=\"message\">[msg]</span></span>"
M << "<span class='adminobserver'><span class='prefix'>ADMIN:</span> <EM>[key_name(usr, M)]:</EM> <span class='message'>[msg]</span></span>"
else
M << "<span class=\"admin\"><span class=\"prefix\">ADMIN:</span> <span class=\"name\">[key_name(usr, M)]</span> (<A HREF='?src=\ref[M.client.holder];adminplayerobservejump=\ref[mob]'>JMP</A>): <span class=\"message\">[msg]</span></span>"
M << "<span class='admin'><span class='prefix'>ADMIN:</span> <EM>[key_name(usr, M)]</EM> (<A HREF='?src=\ref[M.client.holder];adminplayerobservejump=\ref[mob]'>JMP</A>): <span class='message'>[msg]</span></span>"

View File

@@ -1,7 +1,7 @@
/client/proc/atmosscan()
set category = "Mapping"
set name = "Check Plumbing"
if(!src.authenticated || !src.holder)
if(!src.holder)
src << "Only administrators may use this command."
return

View File

@@ -3,7 +3,7 @@
set name = "Dsay" //Gave this shit a shorter name so you only have to time out "dsay" rather than "dead say" to use it --NeoFite
set hidden = 1
// All admins should be authenticated, but... what if?
if(!src.authenticated || !src.holder)
if(!src.holder)
src << "Only administrators may use this command."
return
if(!src.mob)

View File

@@ -1,7 +1,7 @@
/client/proc/Debug2()
set category = "Debug"
set name = "Debug-Game"
if(!authenticated || !holder)
if(!holder)
src << "Only administrators may use this command."
return
if(holder.rank == "Game Admin")
@@ -32,7 +32,7 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that
/client/proc/callproc()
set category = "Debug"
set name = "Advanced ProcCall"
if(!authenticated || !holder)
if(!holder)
src << "Only administrators may use this command."
return
var/target = null

View File

@@ -180,7 +180,7 @@
jump_to_dead_group()
set name = "Jump to dead group"
set category = "Debug"
if(!authenticated || !holder)
if(!holder)
src << "Only administrators may use this command."
return
@@ -199,7 +199,7 @@
set name = "Kill Local Airgroup"
set desc = "Use this to allow manual manupliation of atmospherics."
set category = "Debug"
if(!authenticated || !holder)
if(!holder)
src << "Only administrators may use this command."
return

View File

@@ -23,7 +23,7 @@
/client/proc/massmodify_variables(var/atom/O, var/var_name = "", var/method = 0)
var/list/locked = list("vars", "key", "ckey", "client")
if(!src.authenticated || !src.holder)
if(!src.holder)
src << "Only administrators may use this command."
return

View File

@@ -269,7 +269,7 @@ var/list/forbidden_varedit_object_types = list(
/client/proc/modify_variables(var/atom/O, var/param_var_name = null, var/autodetect_class = 0)
var/list/locked = list("vars", "key", "ckey", "client", "firemut", "ishulk", "telekinesis", "xray", "virus", "cuffed", "ka", "last_eaten", "urine", "poo", "icon", "icon_state")
if(!src.authenticated || !src.holder)
if(!src.holder)
src << "Only administrators may use this command."
return

View File

@@ -3,7 +3,7 @@
set name = "Play Global Sound"
//if(Debug2)
if(!src.authenticated || !src.holder)
if(!src.holder)
src << "Only administrators may use this command."
return
@@ -37,7 +37,7 @@
set category = "Fun"
set name = "Play Local Sound"
if(!src.authenticated || !src.holder)
if(!src.holder)
src << "Only administrators may use this command."
return
@@ -62,7 +62,7 @@
for(var/mob/living/carbon/human/CP in world)
if(CP.real_name=="Cuban Pete" && CP.key!="Rosham")
CP << "Your body can't contain the rhumba beat"
CP.gib(1)
CP.gib()
/client/proc/bananaphone()

View File

@@ -1,9 +1,6 @@
/mob/verb/pray(msg as text)
set category = "IC"
set name = "Pray"
if(!usr.client.authenticated)
src << "Please authorize before sending these messages."
return
msg = copytext(sanitize(msg), 1, MAX_MESSAGE_LEN)

View File

@@ -1,7 +1,7 @@
/client/proc/cmd_admin_drop_everything(mob/M as mob in world)
set category = null
set name = "Drop Everything"
if(!authenticated || !holder)
if(!holder)
src << "Only administrators may use this command."
return
for(var/obj/item/W in M)
@@ -13,7 +13,7 @@
/client/proc/cmd_admin_prison(mob/M as mob in world)
set category = "Admin"
set name = "Prison"
if(!authenticated || !holder)
if(!holder)
src << "Only administrators may use this command."
return
if (ismob(M))
@@ -41,7 +41,7 @@
set name = "Subtle Message"
if(!ismob(M)) return
if (!authenticated || !holder)
if (!holder)
src << "Only administrators may use this command."
return
@@ -61,7 +61,7 @@
set category = "Special Verbs"
set name = "Global Narrate"
if (!authenticated || !holder)
if (!holder)
src << "Only administrators may use this command."
return
@@ -77,7 +77,7 @@
set category = "Special Verbs"
set name = "Direct Narrate"
if(!authenticated || !holder)
if(!holder)
src << "Only administrators may use this command."
return
var/msg = input("Message:", text("Enter the text you wish to appear to your target:")) as text
@@ -89,7 +89,7 @@
/client/proc/cmd_admin_pm_context(mob/M as mob in world)
set category = null
set name = "Admin PM Mob"
if(!authenticated || !holder)
if(!holder)
src << "\red Error: Admin-PM-Context: Only administrators may use this command."
return
if( !ismob(M) || !M.client ) return
@@ -99,7 +99,7 @@
/client/proc/cmd_admin_pm_panel()
set category = "Admin"
set name = "Admin PM"
if(!authenticated || !holder)
if(!holder)
src << "\red Error: Admin-PM-Panel: Only administrators may use this command."
return
var/list/client/targets[0]
@@ -118,7 +118,7 @@
cmd_admin_pm(targets[target])
//takes input from cmd_admin_pm_context, cmd_admin_pm_panel or /client/Topic and sends them a PM after fetching a message to send.
/client/proc/cmd_admin_pm(var/client/C = null)
/client/proc/cmd_admin_pm(var/client/C = null, var/t = null)
if( !C || !istype(C,/client) )
src << "\red Error: Admin-PM: Client not found."
return
@@ -127,15 +127,17 @@
return
//get message text, limit it's length.and clean/escape html
var/t = input("Message:", "Private message to [C.key]") as text|null
if(!t) return
if(!C)
src << "\red Error: Admin PM: Client not found."
if(!t)
t = input("Message:", "Private message to [C.key]") as text|null
if(!t) return
if(!C)
src << "\red Error: Admin PM: Client not found."
return
if( !holder || !(holder.rank in list("Game Admin", "Game Master")) ) //clean the message if it's not sent by a GA or GM
//clean the message if it's not sent by a GA or GM
if( !holder || !(holder.rank in list("Game Admin", "Game Master")) )
t = sanitize(copytext(t,1,500))
if(!t) return
if(!t) return
if(C.holder)
@@ -161,6 +163,22 @@
//always play non-admin recipients the adminhelp sound
C << 'adminhelp.ogg'
//AdminPM popup for ApocStation and anybody else who wants to use it. Set it with POPUP_ADMIN_PM in config.txt ~Carn
if(config.popup_admin_pm)
spawn() //so we don't hold the caller proc up
var/sender = src
var/sendername = key
var/reply = input(C, t,"Admin PM from-[sendername]", "") as text|null //show message and await a reply
if(C && reply)
if(sender)
C.cmd_admin_pm(sender,reply) //sender is still about, let's reply to them
else
for(var/client/X) //sender has left! find another admin to pm
if(X.holder)
return C.cmd_admin_pm(X,reply)
C << "<font class='red'>Error: Admin PM: Client not found.</font>" //couldn't find one
return
else //neither are admins
src << "<font class='red'>Error: Admin PM: Non-admin to non-admin PM communication is forbidden.</font>"
return
@@ -175,7 +193,7 @@
/client/proc/cmd_admin_godmode(mob/M as mob in world)
set category = "Special Verbs"
set name = "Godmode"
if(!authenticated || !holder)
if(!holder)
src << "Only administrators may use this command."
return
if (M.nodamage == 1)
@@ -191,7 +209,7 @@
/client/proc/cmd_admin_mute(mob/M as mob in world)
set category = "Special Verbs"
set name = "Admin Mute"
if(!authenticated || !holder)
if(!holder)
src << "Only administrators may use this command."
return
if (M.client && M.client.holder && (M.client.holder.level >= holder.level))
@@ -211,7 +229,7 @@
/client/proc/cmd_admin_add_random_ai_law()
set category = "Fun"
set name = "Add Random AI Law"
if(!authenticated || !holder)
if(!holder)
src << "Only administrators may use this command."
return
log_admin("[key_name(src)] has added a random AI law.")
@@ -234,7 +252,7 @@
set desc = "Spawns a xenomorph for all those boring rounds, without having you to do so manually."
set popup_menu = 0
if(!authenticated || !holder)
if(!holder)
src << "Only administrators may use this command."
return
@@ -294,7 +312,7 @@ Traitors and the like can also be revived with the previous role mostly intact.
set category = "Special Verbs"
set name = "Respawn Character"
set desc = "Respawn a person that has been gibbed/dusted/killed. They must be a ghost for this to work and preferably should not have a body to go back into."
if(!authenticated || !holder)
if(!holder)
src << "Only administrators may use this command."
return
var/input = input(src, "Please specify which key will be respawned.", "Key", "")
@@ -513,7 +531,7 @@ Traitors and the like can also be revived with the previous role mostly intact.
/client/proc/cmd_admin_add_freeform_ai_law()
set category = "Fun"
set name = "Add Custom AI law"
if(!authenticated || !holder)
if(!holder)
src << "Only administrators may use this command."
return
var/input = input(usr, "Please enter anything you want the AI to do. Anything. Serious.", "What?", "") as text|null
@@ -540,8 +558,7 @@ Traitors and the like can also be revived with the previous role mostly intact.
/client/proc/cmd_admin_rejuvenate(mob/living/M as mob in world)
set category = "Special Verbs"
set name = "Rejuvenate"
// All admins should be authenticated, but... what if?
if(!authenticated || !holder)
if(!holder)
src << "Only administrators may use this command."
return
if(!mob)
@@ -577,7 +594,7 @@ Traitors and the like can also be revived with the previous role mostly intact.
/client/proc/cmd_admin_create_centcom_report()
set category = "Special Verbs"
set name = "Create Command Report"
if(!authenticated || !holder)
if(!holder)
src << "Only administrators may use this command."
return
var/input = input(usr, "Please enter anything you want. Anything. Serious.", "What?", "") as message|null
@@ -601,7 +618,7 @@ Traitors and the like can also be revived with the previous role mostly intact.
set category = "Admin"
set name = "Delete"
if (!authenticated || !holder)
if (!holder)
src << "Only administrators may use this command."
return
@@ -614,7 +631,7 @@ Traitors and the like can also be revived with the previous role mostly intact.
set category = "Admin"
set name = "List free slots"
if (!authenticated || !holder)
if (!holder)
src << "Only administrators may use this command."
return
if(job_master)
@@ -625,7 +642,7 @@ Traitors and the like can also be revived with the previous role mostly intact.
set category = "Special Verbs"
set name = "Explosion"
if (!authenticated || !holder)
if (!holder)
src << "Only administrators may use this command."
return
@@ -655,7 +672,7 @@ Traitors and the like can also be revived with the previous role mostly intact.
set category = "Special Verbs"
set name = "EM Pulse"
if (!authenticated || !holder)
if (!holder)
src << "Only administrators may use this command."
return
@@ -678,7 +695,7 @@ Traitors and the like can also be revived with the previous role mostly intact.
set category = "Special Verbs"
set name = "Gib"
if (!authenticated || !holder)
if (!holder)
src << "Only administrators may use this command."
return
@@ -736,7 +753,6 @@ Traitors and the like can also be revived with the previous role mostly intact.
return
if(M)
AddBan(M.ckey, M.computer_id, reason, usr.ckey, 1, mins)
M.unlock_medal("Banned", 1)
M << "\red<BIG><B>You have been banned by [usr.client.ckey].\nReason: [reason].</B></BIG>"
M << "\red This is a temporary ban, it will be removed in [mins] minutes."
M << "\red To try to resolve this matter head to http://ss13.donglabs.com/forum/"
@@ -752,7 +768,6 @@ Traitors and the like can also be revived with the previous role mostly intact.
if(!reason)
return
AddBan(M.ckey, M.computer_id, reason, usr.ckey, 0, 0)
M.unlock_medal("Banned", 1)
M << "\red<BIG><B>You have been banned by [usr.client.ckey].\nReason: [reason].</B></BIG>"
M << "\red This is a permanent ban."
M << "\red To try to resolve this matter head to http://ss13.donglabs.com/forum/"
@@ -779,7 +794,7 @@ Traitors and the like can also be revived with the previous role mostly intact.
/client/proc/cmd_admin_remove_plasma()
set category = "Debug"
set name = "Stabilize Atmos."
if(!authenticated || !holder)
if(!holder)
src << "Only administrators may use this command."
return
// DEFERRED
@@ -824,7 +839,7 @@ Traitors and the like can also be revived with the previous role mostly intact.
if ((!( ticker ) || emergency_shuttle.location))
return
if (!authenticated || !holder)
if (!holder)
src << "Only administrators may use this command."
return
@@ -851,7 +866,7 @@ Traitors and the like can also be revived with the previous role mostly intact.
if ((!( ticker ) || emergency_shuttle.location || emergency_shuttle.direction == 0))
return
if (!authenticated || !holder)
if (!holder)
src << "Only administrators may use this command."
return

View File

@@ -6,7 +6,7 @@ var/global/sent_strike_team = 0
set category = "Fun"
set name = "Spawn Death Squad"
set desc = "Spawns a squad of commandos in CentCom if you want to run an admin event."
if(!src.authenticated || !src.holder)
if(!src.holder)
src << "Only administrators may use this command."
return
if(!ticker)

View File

@@ -6,7 +6,7 @@ var/global/sent_syndicate_strike_team = 0
set category = "Fun"
set name = "Spawn Syndicate Strike Team"
set desc = "Spawns a squad of commandos in the Syndicate Mothership if you want to run an admin event."
if(!src.authenticated || !src.holder)
if(!src.holder)
src << "Only administrators may use this command."
return
if(!ticker)

View File

@@ -5,7 +5,7 @@
set name = "Set Ticklag"
set desc = "Sets a new tick lag. Recommend you don't mess with this too much! Stable, time-tested ticklag value is 0.9"
if(Debug2)
if(src.authenticated && src.holder)
if(src.holder)
if(!src.mob) return
if(src.holder.rank in list("Game Admin", "Game Master"))