mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-07-17 10:03:50 +01:00
Reduce lines by removing blank lines added by PJ's script
This commit is contained in:
@@ -94,7 +94,6 @@ datum/admins/proc/DB_ban_record(var/bantype, var/mob/banned_mob, var/duration =
|
||||
if(blockselfban)
|
||||
if(a_ckey == ckey)
|
||||
to_chat(usr, "<span class='danger'>You cannot apply this ban type on yourself.</span>")
|
||||
|
||||
return
|
||||
|
||||
var/who
|
||||
@@ -120,14 +119,12 @@ datum/admins/proc/DB_ban_record(var/bantype, var/mob/banned_mob, var/duration =
|
||||
var/adm_bans = text2num(adm_query.item[1])
|
||||
if(adm_bans >= MAX_ADMIN_BANS_PER_ADMIN)
|
||||
to_chat(usr, "<span class='danger'>You already logged [MAX_ADMIN_BANS_PER_ADMIN] admin ban(s) or more. Do not abuse this function!</span>")
|
||||
|
||||
return
|
||||
|
||||
var/sql = "INSERT INTO [format_table_name("ban")] (`id`,`bantime`,`serverip`,`bantype`,`reason`,`job`,`duration`,`rounds`,`expiration_time`,`ckey`,`computerid`,`ip`,`a_ckey`,`a_computerid`,`a_ip`,`who`,`adminwho`,`edits`,`unbanned`,`unbanned_datetime`,`unbanned_ckey`,`unbanned_computerid`,`unbanned_ip`) VALUES (null, Now(), '[serverip]', '[bantype_str]', '[reason]', '[job]', [(duration)?"[duration]":"0"], [(rounds)?"[rounds]":"0"], Now() + INTERVAL [(duration>0) ? duration : 0] MINUTE, '[ckey]', '[computerid]', '[ip]', '[a_ckey]', '[a_computerid]', '[a_ip]', '[who]', '[adminwho]', '', null, null, null, null, null)"
|
||||
var/DBQuery/query_insert = dbcon.NewQuery(sql)
|
||||
query_insert.Execute()
|
||||
to_chat(usr, "\blue Ban saved to database.")
|
||||
|
||||
message_admins("[key_name_admin(usr)] has added a [bantype_str] for [ckey] [(job)?"([job])":""] [(duration > 0)?"([duration] minutes)":""] with the reason: \"[reason]\" to the ban database.",1)
|
||||
|
||||
if(announceinirc)
|
||||
@@ -196,19 +193,16 @@ datum/admins/proc/DB_ban_unban(var/ckey, var/bantype, var/job = "")
|
||||
|
||||
if(ban_number == 0)
|
||||
to_chat(usr, "\red Database update failed due to no bans fitting the search criteria. If this is not a legacy ban you should contact the database admin.")
|
||||
|
||||
return
|
||||
|
||||
if(ban_number > 1)
|
||||
to_chat(usr, "\red Database update failed due to multiple bans fitting the search criteria. Note down the ckey, job and current time and contact the database admin.")
|
||||
|
||||
return
|
||||
|
||||
if(istext(ban_id))
|
||||
ban_id = text2num(ban_id)
|
||||
if(!isnum(ban_id))
|
||||
to_chat(usr, "\red Database update failed due to a ban ID mismatch. Contact the database admin.")
|
||||
|
||||
return
|
||||
|
||||
DB_ban_unban_by_id(ban_id)
|
||||
@@ -219,7 +213,6 @@ datum/admins/proc/DB_ban_edit(var/banid = null, var/param = null)
|
||||
|
||||
if(!isnum(banid) || !istext(param))
|
||||
to_chat(usr, "Cancelled")
|
||||
|
||||
return
|
||||
|
||||
var/DBQuery/query = dbcon.NewQuery("SELECT ckey, duration, reason FROM [format_table_name("ban")] WHERE id = [banid]")
|
||||
@@ -236,7 +229,6 @@ datum/admins/proc/DB_ban_edit(var/banid = null, var/param = null)
|
||||
reason = query.item[3]
|
||||
else
|
||||
to_chat(usr, "Invalid ban id. Contact the database admin")
|
||||
|
||||
return
|
||||
|
||||
reason = sql_sanitize_text(reason)
|
||||
@@ -249,7 +241,6 @@ datum/admins/proc/DB_ban_edit(var/banid = null, var/param = null)
|
||||
value = sql_sanitize_text(value)
|
||||
if(!value)
|
||||
to_chat(usr, "Cancelled")
|
||||
|
||||
return
|
||||
|
||||
var/DBQuery/update_query = dbcon.NewQuery("UPDATE [format_table_name("ban")] SET reason = '[value]', edits = CONCAT(edits,'- [eckey] changed ban reason from <cite><b>\\\"[reason]\\\"</b></cite> to <cite><b>\\\"[value]\\\"</b></cite><BR>') WHERE id = [banid]")
|
||||
@@ -260,7 +251,6 @@ datum/admins/proc/DB_ban_edit(var/banid = null, var/param = null)
|
||||
value = input("Insert the new duration (in minutes) for [pckey]'s ban", "New Duration", "[duration]", null) as null|num
|
||||
if(!isnum(value) || !value)
|
||||
to_chat(usr, "Cancelled")
|
||||
|
||||
return
|
||||
|
||||
var/DBQuery/update_query = dbcon.NewQuery("UPDATE [format_table_name("ban")] SET duration = [value], edits = CONCAT(edits,'- [eckey] changed ban duration from [duration] to [value]<br>'), expiration_time = DATE_ADD(bantime, INTERVAL [value] MINUTE) WHERE id = [banid]")
|
||||
@@ -272,11 +262,9 @@ datum/admins/proc/DB_ban_edit(var/banid = null, var/param = null)
|
||||
return
|
||||
else
|
||||
to_chat(usr, "Cancelled")
|
||||
|
||||
return
|
||||
else
|
||||
to_chat(usr, "Cancelled")
|
||||
|
||||
return
|
||||
|
||||
datum/admins/proc/DB_ban_unban_by_id(var/id)
|
||||
@@ -300,12 +288,10 @@ datum/admins/proc/DB_ban_unban_by_id(var/id)
|
||||
|
||||
if(ban_number == 0)
|
||||
to_chat(usr, "\red Database update failed due to a ban id not being present in the database.")
|
||||
|
||||
return
|
||||
|
||||
if(ban_number > 1)
|
||||
to_chat(usr, "\red Database update failed due to multiple bans having the same ID. Contact the database admin.")
|
||||
|
||||
return
|
||||
|
||||
if(!src.owner || !istype(src.owner, /client))
|
||||
@@ -343,7 +329,6 @@ datum/admins/proc/DB_ban_unban_by_id(var/id)
|
||||
establish_db_connection()
|
||||
if(!dbcon.IsConnected())
|
||||
to_chat(usr, "\red Failed to establish database connection")
|
||||
|
||||
return
|
||||
|
||||
var/output = "<div align='center'><table width='90%'><tr>"
|
||||
|
||||
@@ -107,26 +107,18 @@ var/savefile/Banlist
|
||||
Banlist.cd = "/base"
|
||||
if ( Banlist.dir.Find("[ckey][computerid]") )
|
||||
to_chat(usr, text("\red Ban already exists."))
|
||||
|
||||
return 0
|
||||
else
|
||||
Banlist.dir.Add("[ckey][computerid]")
|
||||
Banlist.cd = "/base/[ckey][computerid]"
|
||||
to_chat(Banlist["key"], ckey)
|
||||
|
||||
to_chat(Banlist["id"], computerid)
|
||||
|
||||
to_chat(Banlist["ip"], address)
|
||||
|
||||
to_chat(Banlist["reason"], reason)
|
||||
|
||||
to_chat(Banlist["bannedby"], bannedby)
|
||||
|
||||
to_chat(Banlist["temp"], temp)
|
||||
|
||||
if (temp)
|
||||
to_chat(Banlist["minutes"], bantimestamp)
|
||||
|
||||
if(!temp)
|
||||
add_note(ckey, "Permanently banned - [reason]", null, bannedby, 0)
|
||||
else
|
||||
@@ -220,23 +212,16 @@ var/savefile/Banlist
|
||||
Banlist.dir.Add("trash[i]trashid[i]")
|
||||
Banlist.cd = "/base/trash[i]trashid[i]"
|
||||
to_chat(Banlist["key"], "trash[i]")
|
||||
|
||||
else
|
||||
Banlist.cd = "/base"
|
||||
Banlist.dir.Add("[last]trashid[i]")
|
||||
Banlist.cd = "/base/[last]trashid[i]"
|
||||
to_chat(Banlist["key"], last)
|
||||
|
||||
to_chat(Banlist["id"], "trashid[i]")
|
||||
|
||||
to_chat(Banlist["reason"], "Trashban[i].")
|
||||
|
||||
to_chat(Banlist["temp"], a)
|
||||
|
||||
to_chat(Banlist["minutes"], CMinutes + rand(1,2000))
|
||||
|
||||
to_chat(Banlist["bannedby"], "trashmin")
|
||||
|
||||
last = "trash[i]"
|
||||
|
||||
Banlist.cd = "/base"
|
||||
|
||||
@@ -36,11 +36,9 @@
|
||||
if(!cleaned) continue
|
||||
F[cleaned] << 1
|
||||
to_chat(F["last_update"], world.realtime)
|
||||
|
||||
diary << "ToR data updated!"
|
||||
if(usr)
|
||||
to_chat(usr, "ToRban updated.")
|
||||
|
||||
return 1
|
||||
diary << "ToR data update aborted: no data."
|
||||
return 0
|
||||
@@ -76,19 +74,15 @@
|
||||
if(choice)
|
||||
F.dir.Remove(choice)
|
||||
to_chat(src, "<b>Address removed</b>")
|
||||
|
||||
if("remove all")
|
||||
to_chat(src, "<b>[TORFILE] was [fdel(TORFILE)?"":"not "]removed.</b>")
|
||||
|
||||
if("find")
|
||||
var/input = input(src,"Please input an IP address to search for:","Find ToR ban",null) as null|text
|
||||
if(input)
|
||||
if(ToRban_isbanned(input))
|
||||
to_chat(src, "<font color='green'><b>Address is a known ToR address</b></font>")
|
||||
|
||||
else
|
||||
to_chat(src, "<font color='red'><b>Address is not a known ToR address</b></font>")
|
||||
|
||||
return
|
||||
|
||||
#undef TORFILE
|
||||
|
||||
@@ -11,7 +11,6 @@ var/global/nologevent = 0
|
||||
if(R_SERVER & C.holder.rights)
|
||||
to_chat(C, msg)
|
||||
|
||||
|
||||
/proc/msg_admin_attack(var/text) //Toggleable Attack Messages
|
||||
log_attack(text)
|
||||
if(!nologevent)
|
||||
@@ -24,7 +23,6 @@ var/global/nologevent = 0
|
||||
to_chat(C, msg)
|
||||
|
||||
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////Panels
|
||||
|
||||
/datum/admins/proc/show_player_panel(var/mob/M in mob_list)
|
||||
@@ -34,7 +32,6 @@ var/global/nologevent = 0
|
||||
|
||||
if(!M)
|
||||
to_chat(usr, "You seem to be selecting a mob that doesn't exist anymore.")
|
||||
|
||||
return
|
||||
|
||||
if(!check_rights(R_ADMIN|R_MOD))
|
||||
@@ -474,9 +471,7 @@ var/global/nologevent = 0
|
||||
dat+="I'm sorry to break your immersion. This shit's bugged. Report this bug to Agouri, polyxenitopalidou@gmail.com"
|
||||
|
||||
// to_chat(world, "Channelname: [src.admincaster_feed_channel.channel_name] [src.admincaster_feed_channel.author]")
|
||||
|
||||
// to_chat(world, "Msg: [src.admincaster_feed_message.author] [src.admincaster_feed_message.body]")
|
||||
|
||||
usr << browse(dat, "window=admincaster_main;size=400x600")
|
||||
onclose(usr, "admincaster_main")
|
||||
|
||||
@@ -552,7 +547,6 @@ var/global/nologevent = 0
|
||||
message = adminscrub(message,500)
|
||||
message = replacetext(message, "\n", "<br>") // required since we're putting it in a <p> tag
|
||||
to_chat(world, "<span class=notice><b>[usr.client.holder.fakekey ? "Administrator" : usr.key] Announces:</b><p style='text-indent: 50px'>[message]</p></span>")
|
||||
|
||||
log_admin("Announce: [key_name(usr)] : [message]")
|
||||
feedback_add_details("admin_verb","A") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
|
||||
@@ -579,10 +573,8 @@ var/global/nologevent = 0
|
||||
config.looc_allowed = !(config.looc_allowed)
|
||||
if (config.looc_allowed)
|
||||
to_chat(world, "<B>The LOOC channel has been globally enabled!</B>")
|
||||
|
||||
else
|
||||
to_chat(world, "<B>The LOOC channel has been globally disabled!</B>")
|
||||
|
||||
log_and_message_admins("toggled LOOC.")
|
||||
feedback_add_details("admin_verb","TLOOC") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
|
||||
@@ -597,10 +589,8 @@ var/global/nologevent = 0
|
||||
config.dsay_allowed = !(config.dsay_allowed)
|
||||
if (config.dsay_allowed)
|
||||
to_chat(world, "<B>Deadchat has been globally enabled!</B>")
|
||||
|
||||
else
|
||||
to_chat(world, "<B>Deadchat has been globally disabled!</B>")
|
||||
|
||||
log_admin("[key_name(usr)] toggled deadchat.")
|
||||
message_admins("[key_name_admin(usr)] toggled deadchat.", 1)
|
||||
feedback_add_details("admin_verb","TDSAY") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc
|
||||
@@ -637,7 +627,6 @@ var/global/nologevent = 0
|
||||
return 1
|
||||
else
|
||||
to_chat(usr, "<font color='red'>Error: Start Now: Game has already started.</font>")
|
||||
|
||||
return 0
|
||||
|
||||
/datum/admins/proc/toggleenter()
|
||||
@@ -651,10 +640,8 @@ var/global/nologevent = 0
|
||||
enter_allowed = !( enter_allowed )
|
||||
if (!( enter_allowed ))
|
||||
to_chat(world, "<B>New players may no longer enter the game.</B>")
|
||||
|
||||
else
|
||||
to_chat(world, "<B>New players may now enter the game.</B>")
|
||||
|
||||
log_admin("[key_name(usr)] toggled new player game entering.")
|
||||
message_admins("[key_name_admin(usr)] toggled new player game entering.", 1)
|
||||
world.update_status()
|
||||
@@ -671,10 +658,8 @@ var/global/nologevent = 0
|
||||
config.allow_ai = !( config.allow_ai )
|
||||
if (!( config.allow_ai ))
|
||||
to_chat(world, "<B>The AI job is no longer chooseable.</B>")
|
||||
|
||||
else
|
||||
to_chat(world, "<B>The AI job is chooseable now.</B>")
|
||||
|
||||
message_admins("[key_name_admin(usr)] toggled AI allowed.")
|
||||
log_admin("[key_name(usr)] toggled AI allowed.")
|
||||
world.update_status()
|
||||
@@ -691,10 +676,8 @@ var/global/nologevent = 0
|
||||
abandon_allowed = !( abandon_allowed )
|
||||
if (abandon_allowed)
|
||||
to_chat(world, "<B>You may now respawn.</B>")
|
||||
|
||||
else
|
||||
to_chat(world, "<B>You may no longer respawn :(</B>")
|
||||
|
||||
message_admins("[key_name_admin(usr)] toggled respawn to [abandon_allowed ? "On" : "Off"].", 1)
|
||||
log_admin("[key_name(usr)] toggled respawn to [abandon_allowed ? "On" : "Off"].")
|
||||
world.update_status()
|
||||
@@ -729,11 +712,9 @@ var/global/nologevent = 0
|
||||
going = !( going )
|
||||
if (!( going ))
|
||||
to_chat(world, "<b>The game start has been delayed.</b>")
|
||||
|
||||
log_admin("[key_name(usr)] delayed the game.")
|
||||
else
|
||||
to_chat(world, "<b>The game will start soon.</b>")
|
||||
|
||||
log_admin("[key_name(usr)] removed the delay.")
|
||||
feedback_add_details("admin_verb","DELAY") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
|
||||
@@ -822,11 +803,9 @@ var/global/nologevent = 0
|
||||
|
||||
if(!istype(M))
|
||||
to_chat(usr, "This can only be used on instances of type /mob")
|
||||
|
||||
return
|
||||
if(!M.mind)
|
||||
to_chat(usr, "This mob has no mind!")
|
||||
|
||||
return
|
||||
|
||||
M.mind.edit_memory()
|
||||
@@ -843,10 +822,8 @@ var/global/nologevent = 0
|
||||
guests_allowed = !( guests_allowed )
|
||||
if (!( guests_allowed ))
|
||||
to_chat(world, "<B>Guests may no longer enter the game.</B>")
|
||||
|
||||
else
|
||||
to_chat(world, "<B>Guests may now enter the game.</B>")
|
||||
|
||||
log_admin("[key_name(usr)] toggled guests game entering [guests_allowed?"":"dis"]allowed.")
|
||||
message_admins("\blue [key_name_admin(usr)] toggled guests game entering [guests_allowed?"":"dis"]allowed.", 1)
|
||||
feedback_add_details("admin_verb","TGU") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
@@ -857,33 +834,27 @@ var/global/nologevent = 0
|
||||
ai_number++
|
||||
if(isAI(S))
|
||||
to_chat(usr, "<b>AI [key_name(S, usr)]'s laws:</b>")
|
||||
|
||||
else if(isrobot(S))
|
||||
var/mob/living/silicon/robot/R = S
|
||||
to_chat(usr, "<b>CYBORG [key_name(S, usr)]'s [R.connected_ai?"(Slaved to: [R.connected_ai])":"(Independent)"] laws:</b>")
|
||||
|
||||
else if (ispAI(S))
|
||||
var/mob/living/silicon/pai/P = S
|
||||
to_chat(usr, "<b>pAI [key_name(S, usr)]'s laws:</b>")
|
||||
to_chat(usr, "[P.pai_law0]")
|
||||
if(P.pai_laws)
|
||||
to_chat(usr, "[P.pai_laws]")
|
||||
|
||||
continue // Skip showing normal silicon laws for pAIs - they don't have any
|
||||
else
|
||||
to_chat(usr, "<b>SILICON [key_name(S, usr)]'s laws:</b>")
|
||||
|
||||
|
||||
if (S.laws == null)
|
||||
to_chat(usr, "[key_name(S, usr)]'s laws are null. Contact a coder.")
|
||||
|
||||
else
|
||||
S.laws.show_laws(usr)
|
||||
if(!ai_number)
|
||||
to_chat(usr, "<b>No AI's located.</b>")//Just so you know the thing is actually working and not just ignoring you.
|
||||
|
||||
|
||||
|
||||
log_admin("[key_name(usr)] checked the AI laws")
|
||||
message_admins("[key_name_admin(usr)] checked the AI laws")
|
||||
|
||||
@@ -964,7 +935,6 @@ var/gamma_ship_location = 1 // 0 = station , 1 = space
|
||||
continue
|
||||
if(message)
|
||||
to_chat(C, message)
|
||||
|
||||
kicked_client_names.Add("[C.ckey]")
|
||||
del(C)
|
||||
return kicked_client_names
|
||||
|
||||
@@ -25,7 +25,6 @@
|
||||
if(!F) return
|
||||
to_chat(F, "<small>[time_stamp()] \ref[src] ([x],[y],[z])</small> || [src] [message]<br>")
|
||||
|
||||
|
||||
//ADMINVERBS
|
||||
/client/proc/investigate_show( subject in list("hrefs","notes","pda","singulo","atmos","watchlist","ntsl","gold core","cult", "experimentor", "wires") )
|
||||
set name = "Investigate"
|
||||
@@ -36,7 +35,6 @@
|
||||
var/F = investigate_subject2file(subject)
|
||||
if(!F)
|
||||
to_chat(src, "<font color='red'>Error: admin_investigate: [INVESTIGATE_DIR][subject] is an invalid path or cannot be accessed.</font>")
|
||||
|
||||
return
|
||||
src << browse(F,"window=investigate[subject];size=800x300")
|
||||
|
||||
@@ -46,18 +44,15 @@
|
||||
src << browse(href_logfile,"window=investigate[subject];size=800x300")
|
||||
else
|
||||
to_chat(src, "<font color='red'>Error: admin_investigate: No href logfile found.</font>")
|
||||
|
||||
return
|
||||
else
|
||||
to_chat(src, "<font color='red'>Error: admin_investigate: Href Logging is not on.</font>")
|
||||
|
||||
return
|
||||
|
||||
if("pda") //general one-round-only stuff
|
||||
var/F = investigate_subject2file(subject)
|
||||
if(!F)
|
||||
to_chat(src, "<font color='red'>Error: admin_investigate: [INVESTIGATE_DIR][subject] is an invalid path or cannot be accessed.</font>")
|
||||
|
||||
return
|
||||
src << browse(F,"window=investigate[subject];size=800x300")
|
||||
|
||||
@@ -65,7 +60,6 @@
|
||||
var/F = investigate_subject2file(subject)
|
||||
if(!F)
|
||||
to_chat(src, "<font color='red'>Error: admin_investigate: [INVESTIGATE_DIR][subject] is an invalid path or cannot be accessed.</font>")
|
||||
|
||||
return
|
||||
src << browse(F,"window=investigate[subject];size=800x300")
|
||||
|
||||
@@ -73,7 +67,6 @@
|
||||
var/F = investigate_subject2file(subject)
|
||||
if(!F)
|
||||
to_chat(src, "<font color='red'>Error: admin_investigate: [INVESTIGATE_DIR][subject] is an invalid path or cannot be accessed.</font>")
|
||||
|
||||
return
|
||||
src << browse(F,"window=investigate[subject];size=800x300")
|
||||
|
||||
@@ -81,7 +74,6 @@
|
||||
var/F = investigate_subject2file(subject)
|
||||
if(!F)
|
||||
to_chat(src, "<font color='red'>Error: admin_investigate: [INVESTIGATE_DIR][subject] is an invalid path or cannot be accessed.</font>")
|
||||
|
||||
return
|
||||
src << browse(F,"window=investigate[subject];size=800x300")
|
||||
|
||||
@@ -89,7 +81,6 @@
|
||||
var/F = investigate_subject2file(subject)
|
||||
if(!F)
|
||||
to_chat(src, "<font color='red'>Error: admin_investigate: [INVESTIGATE_DIR][subject] is an invalid path or cannot be accessed.</font>")
|
||||
|
||||
return
|
||||
src << browse(F,"window=investigate[subject];size=800x300")
|
||||
|
||||
@@ -97,7 +88,6 @@
|
||||
var/F = investigate_subject2file(subject)
|
||||
if(!F)
|
||||
to_chat(src, "<font color='red'>Error: admin_investigate: [INVESTIGATE_DIR][subject] is an invalid path or cannot be accessed.</font>")
|
||||
|
||||
return
|
||||
src << browse(F,"window=investigate[subject];size=800x300")
|
||||
|
||||
|
||||
@@ -5,7 +5,6 @@
|
||||
return
|
||||
if(!dbcon.IsConnected())
|
||||
to_chat(src, "<span class='danger'>Failed to establish database connection.</span>")
|
||||
|
||||
return
|
||||
var/memotask = input(usr,"Choose task.","Memo") in list("Show","Write","Edit","Remove")
|
||||
if(!memotask)
|
||||
@@ -19,7 +18,6 @@
|
||||
return
|
||||
if(!dbcon.IsConnected())
|
||||
to_chat(src, "<span class='danger'>Failed to establish database connection.</span>")
|
||||
|
||||
return
|
||||
var/sql_ckey = sanitizeSQL(src.ckey)
|
||||
switch(task)
|
||||
@@ -31,7 +29,6 @@
|
||||
return
|
||||
if(query_memocheck.NextRow())
|
||||
to_chat(src, "You already have set a memo.")
|
||||
|
||||
return
|
||||
var/memotext = input(src,"Write your Memo","Memo") as message
|
||||
if(!memotext)
|
||||
@@ -57,7 +54,6 @@
|
||||
memolist += "[lkey]"
|
||||
if(!memolist.len)
|
||||
to_chat(src, "No memos found in database.")
|
||||
|
||||
return
|
||||
var/target_ckey = input(src, "Select whose memo to edit", "Select memo") as null|anything in memolist
|
||||
if(!target_ckey)
|
||||
@@ -105,7 +101,6 @@
|
||||
output += "<br>[memotext]</span><br>"
|
||||
if(!output && !silent)
|
||||
to_chat(src, "No memos found in database.")
|
||||
|
||||
return
|
||||
src << output
|
||||
if("Remove")
|
||||
@@ -120,7 +115,6 @@
|
||||
memolist += "[ckey]"
|
||||
if(!memolist.len)
|
||||
to_chat(src, "No memos found in database.")
|
||||
|
||||
return
|
||||
var/target_ckey = input(src, "Select whose memo to delete", "Select memo") as null|anything in memolist
|
||||
if(!target_ckey)
|
||||
|
||||
@@ -259,7 +259,6 @@ var/list/admin_verbs_proccall = list (
|
||||
verbs += /client/proc/show_verbs
|
||||
|
||||
to_chat(src, "<span class='interface'>Almost all of your adminverbs have been hidden.</span>")
|
||||
|
||||
feedback_add_details("admin_verb","TAVVH") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
return
|
||||
|
||||
@@ -274,7 +273,6 @@ var/list/admin_verbs_proccall = list (
|
||||
add_admin_verbs()
|
||||
|
||||
to_chat(src, "<span class='interface'>All of your adminverbs are now visible.</span>")
|
||||
|
||||
feedback_add_details("admin_verb","TAVVS") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
|
||||
/client/proc/admin_ghost()
|
||||
@@ -293,7 +291,6 @@ var/list/admin_verbs_proccall = list (
|
||||
feedback_add_details("admin_verb","P") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
else if(istype(mob,/mob/new_player))
|
||||
to_chat(src, "<font color='red'>Error: Aghost: Can't admin-ghost whilst in the lobby. Join or observe first.</font>")
|
||||
|
||||
else
|
||||
//ghostize
|
||||
var/mob/body = mob
|
||||
@@ -315,13 +312,11 @@ var/list/admin_verbs_proccall = list (
|
||||
if(mob.invisibility == INVISIBILITY_OBSERVER)
|
||||
mob.invisibility = initial(mob.invisibility)
|
||||
to_chat(mob, "<span class='danger'>Invisimin off. Invisibility reset.</span>")
|
||||
|
||||
//TODO: Make some kind of indication for the badmin that they are currently invisible
|
||||
else
|
||||
mob.invisibility = INVISIBILITY_OBSERVER
|
||||
to_chat(mob, "<span class='notice'>Invisimin on. You are now as invisible as a ghost.</span>")
|
||||
|
||||
|
||||
/client/proc/player_panel()
|
||||
set name = "Player Panel"
|
||||
set category = "Admin"
|
||||
@@ -480,7 +475,6 @@ var/list/admin_verbs_proccall = list (
|
||||
if(!warned_ckey || !istext(warned_ckey)) return
|
||||
if(warned_ckey in admin_datums)
|
||||
to_chat(usr, "<font color='red'>Error: warn(): You can't warn admins.</font>")
|
||||
|
||||
return
|
||||
|
||||
var/datum/preferences/D
|
||||
@@ -490,7 +484,6 @@ var/list/admin_verbs_proccall = list (
|
||||
|
||||
if(!D)
|
||||
to_chat(src, "<font color='red'>Error: warn(): No such ckey found.</font>")
|
||||
|
||||
return
|
||||
|
||||
if(++D.warns >= MAX_WARNS) //uh ohhhh...you'reee iiiiin trouuuubble O:)
|
||||
@@ -499,7 +492,6 @@ var/list/admin_verbs_proccall = list (
|
||||
message_admins("[key_name_admin(src)] has warned [key_name_admin(C)] resulting in a [AUTOBANTIME] minute ban")
|
||||
log_admin("[key_name(src)] has warned [key_name(C)] resulting in a [AUTOBANTIME] minute ban")
|
||||
to_chat(C, "<font color='red'><BIG><B>You have been autobanned due to a warning by [ckey].</B></BIG><br>This is a temporary ban, it will be removed in [AUTOBANTIME] minutes.")
|
||||
|
||||
del(C)
|
||||
else
|
||||
message_admins("[key_name_admin(src)] has warned [warned_ckey] resulting in a [AUTOBANTIME] minute ban")
|
||||
@@ -509,7 +501,6 @@ var/list/admin_verbs_proccall = list (
|
||||
else
|
||||
if(C)
|
||||
to_chat(C, "<font color='red'><BIG><B>You have been formally warned by an administrator.</B></BIG><br>Further warnings will result in an autoban.</font>")
|
||||
|
||||
message_admins("[key_name_admin(src)] has warned [key_name_admin(C)]. They have [MAX_WARNS-D.warns] strikes remaining.")
|
||||
log_admin("[key_name(src)] has warned [key_name(C)]. They have [MAX_WARNS-D.warns] strikes remaining.")
|
||||
else
|
||||
@@ -653,11 +644,9 @@ var/list/admin_verbs_proccall = list (
|
||||
if(air_processing_killed)
|
||||
air_processing_killed = 0
|
||||
to_chat(usr, "<b>Enabled air processing.</b>")
|
||||
|
||||
else
|
||||
air_processing_killed = 1
|
||||
to_chat(usr, "<b>Disabled air processing.</b>")
|
||||
|
||||
feedback_add_details("admin_verb","KA") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
log_admin("[key_name(usr)] used 'kill air'.")
|
||||
message_admins("\blue [key_name_admin(usr)] used 'kill air'.", 1)
|
||||
@@ -675,7 +664,6 @@ var/list/admin_verbs_proccall = list (
|
||||
verbs += /client/proc/readmin
|
||||
deadmins += ckey
|
||||
to_chat(src, "<span class='interface'>You are now a normal player.</span>")
|
||||
|
||||
feedback_add_details("admin_verb","DAS") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
|
||||
/client/proc/readmin()
|
||||
@@ -699,7 +687,6 @@ var/list/admin_verbs_proccall = list (
|
||||
if(!dbcon.IsConnected())
|
||||
message_admins("Warning, MySQL database is not connected.")
|
||||
to_chat(src, "Warning, MYSQL database is not connected.")
|
||||
|
||||
return
|
||||
var/sql_ckey = sanitizeSQL(ckey)
|
||||
var/DBQuery/query = dbcon.NewQuery("SELECT rank FROM [format_table_name("admin")] WHERE ckey = '[sql_ckey]'")
|
||||
@@ -711,7 +698,6 @@ var/list/admin_verbs_proccall = list (
|
||||
if(admin_ranks[rank] == null)
|
||||
error("Error while re-adminning [src], admin rank ([rank]) does not exist.")
|
||||
to_chat(src, "Error while re-adminning, admin rank ([rank]) does not exist.")
|
||||
|
||||
return
|
||||
|
||||
D = new(rank, admin_ranks[rank], ckey)
|
||||
@@ -725,11 +711,9 @@ var/list/admin_verbs_proccall = list (
|
||||
var/flags = query.item[3]
|
||||
if(!admin_ckey)
|
||||
to_chat(src, "Error while re-adminning, ckey [admin_ckey] was not found in the admin database.")
|
||||
|
||||
return
|
||||
if(admin_rank == "Removed") //This person was de-adminned. They are only in the admin list for archive purposes.
|
||||
to_chat(src, "Error while re-adminning, ckey [admin_ckey] is not an admin.")
|
||||
|
||||
return
|
||||
|
||||
if(istext(flags))
|
||||
@@ -745,7 +729,6 @@ var/list/admin_verbs_proccall = list (
|
||||
return
|
||||
else
|
||||
to_chat(src, "You are already an admin.")
|
||||
|
||||
verbs -= /client/proc/readmin
|
||||
deadmins -= ckey
|
||||
return
|
||||
@@ -761,12 +744,10 @@ var/list/admin_verbs_proccall = list (
|
||||
if(config.log_hrefs)
|
||||
config.log_hrefs = 0
|
||||
to_chat(src, "<b>Stopped logging hrefs</b>")
|
||||
|
||||
else
|
||||
config.log_hrefs = 1
|
||||
to_chat(src, "<b>Started logging hrefs</b>")
|
||||
|
||||
|
||||
/client/proc/check_ai_laws()
|
||||
set name = "Check AI Laws"
|
||||
set category = "Admin"
|
||||
@@ -840,7 +821,6 @@ var/list/admin_verbs_proccall = list (
|
||||
|
||||
if(!H.client)
|
||||
to_chat(usr, "Only mobs with clients can alter their own appearance.")
|
||||
|
||||
return
|
||||
|
||||
switch(alert("Do you wish for [H] to be allowed to select non-whitelisted races?","Alter Mob Appearance","Yes","No","Cancel"))
|
||||
@@ -865,7 +845,6 @@ var/list/admin_verbs_proccall = list (
|
||||
jobs += J.title
|
||||
if (!jobs.len)
|
||||
to_chat(usr, "There are no fully staffed jobs.")
|
||||
|
||||
return
|
||||
var/job = input("Please select job slot to free", "Free Job Slot") as null|anything in jobs
|
||||
if (job)
|
||||
@@ -884,11 +863,9 @@ var/list/admin_verbs_proccall = list (
|
||||
prefs.save_preferences(src)
|
||||
if (prefs.toggles & CHAT_ATTACKLOGS)
|
||||
to_chat(usr, "You now will get attack log messages")
|
||||
|
||||
else
|
||||
to_chat(usr, "You now won't get attack log messages")
|
||||
|
||||
|
||||
/client/proc/toggledrones()
|
||||
set name = "Toggle Maintenance Drones"
|
||||
set category = "Server"
|
||||
@@ -911,11 +888,9 @@ var/list/admin_verbs_proccall = list (
|
||||
prefs.save_preferences(src)
|
||||
if (prefs.toggles & CHAT_DEBUGLOGS)
|
||||
to_chat(usr, "You now will get debug log messages")
|
||||
|
||||
else
|
||||
to_chat(usr, "You now won't get debug log messages")
|
||||
|
||||
|
||||
/client/proc/man_up(mob/T as mob in mob_list)
|
||||
set category = "Admin"
|
||||
set name = "Man Up"
|
||||
@@ -925,10 +900,8 @@ var/list/admin_verbs_proccall = list (
|
||||
return
|
||||
|
||||
to_chat(T, "<span class='notice'><b><font size=3>Man up and deal with it.</font></b></span>")
|
||||
|
||||
to_chat(T, "<span class='notice'>Move on.</span>")
|
||||
|
||||
|
||||
log_admin("[key_name(usr)] told [key_name(T)] to man up and deal with it.")
|
||||
message_admins("[key_name_admin(usr)] told [key_name(T)] to man up and deal with it.")
|
||||
|
||||
@@ -945,9 +918,7 @@ var/list/admin_verbs_proccall = list (
|
||||
if(confirm == "Yes")
|
||||
for (var/mob/T as mob in mob_list)
|
||||
to_chat(T, "<br><center><span class='notice'><b><font size=4>Man up.<br> Deal with it.</font></b><br>Move on.</span></center><br>")
|
||||
|
||||
to_chat(T, 'sound/voice/ManUp1.ogg')
|
||||
|
||||
|
||||
log_admin("[key_name(usr)] told everyone to man up and deal with it.")
|
||||
message_admins("[key_name_admin(usr)] told everyone to man up and deal with it.")
|
||||
|
||||
@@ -34,7 +34,6 @@ DEBUG
|
||||
for(var/s in appearance_keylist)
|
||||
to_chat(world, s)
|
||||
|
||||
|
||||
/mob/verb/reload_appearances()
|
||||
set name = "reload appearances"
|
||||
|
||||
@@ -72,7 +71,6 @@ DEBUG
|
||||
var/savefile/S=new("data/appearance_full.ban")
|
||||
to_chat(S["keys[0]"], appearance_keylist)
|
||||
|
||||
|
||||
/proc/appearance_unban(mob/M)
|
||||
appearance_remove("[M.ckey]")
|
||||
appearance_savebanfile()
|
||||
|
||||
@@ -42,7 +42,6 @@ DEBUG
|
||||
for(var/s in jobban_keylist)
|
||||
to_chat(world, s)
|
||||
|
||||
|
||||
/mob/verb/reload_jobbans()
|
||||
set name = "reload jobbans"
|
||||
|
||||
@@ -95,7 +94,6 @@ DEBUG
|
||||
var/savefile/S=new("data/job_full.ban")
|
||||
to_chat(S["keys[0]"], jobban_keylist)
|
||||
|
||||
|
||||
/proc/jobban_unban(mob/M, rank)
|
||||
jobban_remove("[M.ckey] - [rank]")
|
||||
jobban_savebanfile()
|
||||
|
||||
@@ -150,79 +150,45 @@
|
||||
switch(mode)
|
||||
if(BASIC_BUILDMODE)
|
||||
to_chat(user, "<span class='notice'>***********************************************************</span>")
|
||||
|
||||
to_chat(user, "<span class='notice'>Left Mouse Button = Construct / Upgrade</span>")
|
||||
|
||||
to_chat(user, "<span class='notice'>Right Mouse Button = Deconstruct / Delete / Downgrade</span>")
|
||||
|
||||
to_chat(user, "<span class='notice'>Left Mouse Button + ctrl = R-Window</span>")
|
||||
|
||||
to_chat(user, "<span class='notice'>Left Mouse Button + alt = Airlock</span>")
|
||||
|
||||
to_chat(user, "")
|
||||
|
||||
to_chat(user, "<span class='notice'>Use the button in the upper left corner to</span>")
|
||||
|
||||
to_chat(user, "<span class='notice'>change the direction of built objects.</span>")
|
||||
|
||||
to_chat(user, "<span class='notice'>***********************************************************</span>")
|
||||
|
||||
if(ADV_BUILDMODE)
|
||||
to_chat(user, "<span class='notice'>***********************************************************</span>")
|
||||
|
||||
to_chat(user, "<span class='notice'>Right Mouse Button on buildmode button = Set object type</span>")
|
||||
|
||||
to_chat(user, "<span class='notice'>Left Mouse Button on turf/obj = Place objects</span>")
|
||||
|
||||
to_chat(user, "<span class='notice'>Right Mouse Button = Delete objects</span>")
|
||||
|
||||
to_chat(user, "")
|
||||
|
||||
to_chat(user, "<span class='notice'>Use the button in the upper left corner to</span>")
|
||||
|
||||
to_chat(user, "<span class='notice'>change the direction of built objects.</span>")
|
||||
|
||||
to_chat(user, "<span class='notice'>***********************************************************</span>")
|
||||
|
||||
if(VAR_BUILDMODE)
|
||||
to_chat(user, "<span class='notice'>***********************************************************</span>")
|
||||
|
||||
to_chat(user, "<span class='notice'>Right Mouse Button on buildmode button = Select var(type) & value</span>")
|
||||
|
||||
to_chat(user, "<span class='notice'>Left Mouse Button on turf/obj/mob = Set var(type) & value</span>")
|
||||
|
||||
to_chat(user, "<span class='notice'>Right Mouse Button on turf/obj/mob = Reset var's value</span>")
|
||||
|
||||
to_chat(user, "<span class='notice'>***********************************************************</span>")
|
||||
|
||||
if(THROW_BUILDMODE)
|
||||
to_chat(user, "<span class='notice'>***********************************************************</span>")
|
||||
|
||||
to_chat(user, "<span class='notice'>Left Mouse Button on turf/obj/mob = Select</span>")
|
||||
|
||||
to_chat(user, "<span class='notice'>Right Mouse Button on turf/obj/mob = Throw</span>")
|
||||
|
||||
to_chat(user, "<span class='notice'>***********************************************************</span>")
|
||||
|
||||
if(AREA_BUILDMODE)
|
||||
to_chat(user, "<span class='notice'>***********************************************************</span>")
|
||||
|
||||
to_chat(user, "<span class='notice'>Left Mouse Button on turf/obj/mob = Select corner</span>")
|
||||
|
||||
to_chat(user, "<span class='notice'>Right Mouse Button on buildmode button = Select generator</span>")
|
||||
|
||||
to_chat(user, "<span class='notice'>***********************************************************</span>")
|
||||
|
||||
if(COPY_BUILDMODE)
|
||||
to_chat(user, "<span class='notice'>***********************************************************</span>")
|
||||
|
||||
to_chat(user, "<span class='notice'>Left Mouse Button on obj/turf/mob = Spawn a Copy of selected target</span>")
|
||||
|
||||
to_chat(user, "<span class='notice'>Right Mouse Button on obj/mob = Select target to copy</span>")
|
||||
|
||||
to_chat(user, "<span class='notice'>***********************************************************</span>")
|
||||
|
||||
|
||||
/datum/click_intercept/buildmode/proc/change_settings(mob/user)
|
||||
switch(mode)
|
||||
if(BASIC_BUILDMODE)
|
||||
@@ -386,7 +352,6 @@
|
||||
object.vars[varholder] = valueholder
|
||||
else
|
||||
to_chat(user, "<span class='warning'>[initial(object.name)] does not have a var called '[varholder]'</span>")
|
||||
|
||||
if(right_click)
|
||||
if(object.vars.Find(varholder))
|
||||
log_admin("Build Mode: [key_name(user)] modified [object.name]'s [varholder] to [valueholder]")
|
||||
@@ -394,7 +359,6 @@
|
||||
else
|
||||
to_chat(user, "<span class='warning'>[initial(object.name)] does not have a var called '[varholder]'</span>")
|
||||
|
||||
|
||||
if(THROW_BUILDMODE)
|
||||
if(left_click)
|
||||
if(isturf(object))
|
||||
@@ -414,7 +378,6 @@
|
||||
if(cornerA && cornerB)
|
||||
if(!generator_path)
|
||||
to_chat(user, "<span class='warning'>Select generator type first.</span>")
|
||||
|
||||
else
|
||||
var/datum/mapGenerator/G = new generator_path
|
||||
G.defineRegion(cornerA.loc,cornerB.loc,1)
|
||||
@@ -432,5 +395,4 @@
|
||||
else if(right_click)
|
||||
if(ismovableatom(object)) // No copying turfs for now.
|
||||
to_chat(user, "<span class='notice'>[object] set as template.</span>")
|
||||
|
||||
stored = object
|
||||
|
||||
@@ -5,7 +5,6 @@
|
||||
return
|
||||
if(!dbcon.IsConnected())
|
||||
to_chat(src, "<span class='danger'>Failed to establish database connection.</span>")
|
||||
|
||||
return
|
||||
var/returned = create_poll_function()
|
||||
if(returned)
|
||||
@@ -28,7 +27,6 @@
|
||||
message_admins("[key_name_admin(usr)] has created a new server poll. Poll Type: [polltype] - Admin Only: [adminonly ? "Yes" : "No"]<br>Question: [question]")
|
||||
else
|
||||
to_chat(src, "Poll question created without any options, poll will be deleted.")
|
||||
|
||||
var/DBQuery/query_del_poll = dbcon.NewQuery("DELETE FROM [format_table_name("poll_question")] WHERE id = [returned]")
|
||||
if(!query_del_poll.Execute())
|
||||
var/err = query_del_poll.ErrorMsg()
|
||||
@@ -66,7 +64,6 @@
|
||||
endtime = query_validate_time.item[1]
|
||||
if(!endtime)
|
||||
to_chat(src, "Datetime entered is invalid.")
|
||||
|
||||
return
|
||||
var/DBQuery/query_time_later = dbcon.NewQuery("SELECT TIMESTAMP('[endtime]') < NOW()")
|
||||
if(!query_time_later.Execute())
|
||||
@@ -77,7 +74,6 @@
|
||||
var/checklate = text2num(query_time_later.item[1])
|
||||
if(checklate)
|
||||
to_chat(src, "Datetime entered is not later than current server time.")
|
||||
|
||||
return
|
||||
var/adminonly
|
||||
switch(alert("Admin only poll?",,"Yes","No","Cancel"))
|
||||
@@ -137,7 +133,6 @@
|
||||
return pollid
|
||||
if(minval >= maxval)
|
||||
to_chat(src, "Minimum rating value can't be more than maximum rating value")
|
||||
|
||||
return pollid
|
||||
descmin = input("Optional: Set description for minimum rating","Minimum rating description") as message|null
|
||||
if(descmin)
|
||||
|
||||
@@ -49,7 +49,6 @@ proc/admin_proc()
|
||||
if(!check_rights(R_ADMIN)) return
|
||||
to_chat(world, "you have enough rights!")
|
||||
|
||||
|
||||
NOTE: it checks usr! not src! So if you're checking somebody's rank in a proc which they did not call
|
||||
you will have to do something like if(client.holder.rights & R_ADMIN) yourself.
|
||||
*/
|
||||
@@ -62,14 +61,12 @@ you will have to do something like if(client.holder.rights & R_ADMIN) yourself.
|
||||
else
|
||||
if(show_msg)
|
||||
to_chat(user, "<font color='red'>Error: You do not have sufficient rights to do that. You require one of the following flags:[rights2text(rights_required," ")].</font>")
|
||||
|
||||
else
|
||||
if(user.client.holder)
|
||||
return 1
|
||||
else
|
||||
if(show_msg)
|
||||
to_chat(user, "<font color='red'>Error: You are not an admin.</font>")
|
||||
|
||||
return 0
|
||||
|
||||
//probably a bit iffy - will hopefully figure out a better solution
|
||||
@@ -82,7 +79,6 @@ you will have to do something like if(client.holder.rights & R_ADMIN) yourself.
|
||||
if( (usr.client.holder.rights & other.holder.rights) == other.holder.rights )
|
||||
return 1 //we have all the rights they have and more
|
||||
to_chat(usr, "<font color='red'>Error: Cannot proceed. They have more or equal rights to us.</font>")
|
||||
|
||||
return 0
|
||||
|
||||
/client/proc/deadmin()
|
||||
|
||||
@@ -7,7 +7,6 @@
|
||||
|
||||
if(!istype(M))
|
||||
to_chat(usr, "<span class='danger'>This can only be used on subtypes of /obj/machinery.</span>")
|
||||
|
||||
return
|
||||
|
||||
var/new_rating = input("Enter new rating:","Num") as num
|
||||
|
||||
@@ -142,27 +142,19 @@ var/savefile/Banlistjob
|
||||
Banlistjob.cd = "/base"
|
||||
if ( Banlistjob.dir.Find("[ckey][computerid][rank]") )
|
||||
to_chat(usr, text("\red Banjob already exists."))
|
||||
|
||||
return 0
|
||||
else
|
||||
Banlistjob.dir.Add("[ckey][computerid][rank]")
|
||||
Banlistjob.cd = "/base/[ckey][computerid][rank]"
|
||||
to_chat(Banlistjob["key"], ckey)
|
||||
|
||||
to_chat(Banlistjob["id"], computerid)
|
||||
|
||||
to_chat(Banlistjob["rank"], rank)
|
||||
|
||||
to_chat(Banlistjob["reason"], reason)
|
||||
|
||||
to_chat(Banlistjob["bannedby"], bannedby)
|
||||
|
||||
to_chat(Banlistjob["temp"], temp)
|
||||
|
||||
if (temp)
|
||||
to_chat(Banlistjob["minutes"], bantimestamp)
|
||||
|
||||
|
||||
return 1
|
||||
|
||||
/proc/RemoveBanjob(foldername)
|
||||
@@ -228,29 +220,21 @@ var/savefile/Banlistjob
|
||||
/*/datum/admins/proc/permjobban(ckey, computerid, reason, bannedby, temp, minutes, rank)
|
||||
if(AddBanjob(ckey, computerid, reason, usr.ckey, 0, 0, job))
|
||||
to_chat(M, "\red<BIG><B>You have been banned from [job] by [usr.client.ckey].\nReason: [reason].</B></BIG>")
|
||||
|
||||
to_chat(M, "\red This is a permanent ban.")
|
||||
|
||||
if(config.banappeals)
|
||||
to_chat(M, "\red To try to resolve this matter head to [config.banappeals]")
|
||||
|
||||
else
|
||||
to_chat(M, "\red No ban appeals URL has been set.")
|
||||
|
||||
log_admin("[usr.client.ckey] has banned from [job] [ckey].\nReason: [reason]\nThis is a permanent ban.")
|
||||
message_admins("\blue[usr.client.ckey] has banned from [job] [ckey].\nReason: [reason]\nThis is a permanent ban.")
|
||||
/datum/admins/proc/timejobban(ckey, computerid, reason, bannedby, temp, minutes, rank)
|
||||
if(AddBanjob(ckey, computerid, reason, usr.ckey, 1, mins, job))
|
||||
to_chat(M, "\red<BIG><B>You have been jobbanned from [job] by [usr.client.ckey].\nReason: [reason].</B></BIG>")
|
||||
|
||||
to_chat(M, "\red This is a temporary ban, it will be removed in [mins] minutes.")
|
||||
|
||||
if(config.banappeals)
|
||||
to_chat(M, "\red To try to resolve this matter head to [config.banappeals]")
|
||||
|
||||
else
|
||||
to_chat(M, "\red No ban appeals URL has been set.")
|
||||
|
||||
log_admin("[usr.client.ckey] has jobbanned from [job] [ckey].\nReason: [reason]\nThis will be removed in [mins] minutes.")
|
||||
message_admins("\blue[usr.client.ckey] has banned from [job] [ckey].\nReason: [reason]\nThis will be removed in [mins] minutes.")*/
|
||||
//////////////////////////////////// DEBUG ////////////////////////////////////
|
||||
@@ -270,23 +254,16 @@ var/savefile/Banlistjob
|
||||
Banlistjob.dir.Add("trash[i]trashid[i]")
|
||||
Banlistjob.cd = "/base/trash[i]trashid[i]"
|
||||
to_chat(Banlistjob["key"], "trash[i]")
|
||||
|
||||
else
|
||||
Banlistjob.cd = "/base"
|
||||
Banlistjob.dir.Add("[last]trashid[i]")
|
||||
Banlistjob.cd = "/base/[last]trashid[i]"
|
||||
to_chat(Banlistjob["key"], last)
|
||||
|
||||
to_chat(Banlistjob["id"], "trashid[i]")
|
||||
|
||||
to_chat(Banlistjob["reason"], "Trashban[i].")
|
||||
|
||||
to_chat(Banlistjob["temp"], a)
|
||||
|
||||
to_chat(Banlistjob["minutes"], CMinutes + rand(1,2000))
|
||||
|
||||
to_chat(Banlistjob["bannedby"], "trashmin")
|
||||
|
||||
last = "trash[i]"
|
||||
|
||||
Banlistjob.cd = "/base"
|
||||
|
||||
@@ -64,7 +64,6 @@
|
||||
|
||||
if(!dbcon.IsConnected())
|
||||
to_chat(usr, "\red Failed to establish database connection")
|
||||
|
||||
return
|
||||
|
||||
if(!adm_ckey || !new_rank)
|
||||
@@ -93,7 +92,6 @@
|
||||
var/DBQuery/log_query = dbcon.NewQuery("INSERT INTO `test`.[format_table_name("admin_log")] (`id` ,`datetime` ,`adminckey` ,`adminip` ,`log` ) VALUES (NULL , NOW( ) , '[usr.ckey]', '[usr.client.address]', 'Added new admin [adm_ckey] to rank [new_rank]');")
|
||||
log_query.Execute()
|
||||
to_chat(usr, "\blue New admin added.")
|
||||
|
||||
else
|
||||
if(!isnull(admin_id) && isnum(admin_id))
|
||||
var/DBQuery/insert_query = dbcon.NewQuery("UPDATE [format_table_name("admin")] SET rank = '[new_rank]' WHERE id = [admin_id]")
|
||||
@@ -102,7 +100,6 @@
|
||||
log_query.Execute()
|
||||
to_chat(usr, "\blue Admin rank changed.")
|
||||
|
||||
|
||||
/datum/admins/proc/log_admin_permission_modification(var/adm_ckey, var/new_permission)
|
||||
if(config.admin_legacy_system)
|
||||
return
|
||||
@@ -116,7 +113,6 @@
|
||||
establish_db_connection()
|
||||
if(!dbcon.IsConnected())
|
||||
to_chat(usr, "\red Failed to establish database connection")
|
||||
|
||||
return
|
||||
|
||||
if(!adm_ckey || !new_permission)
|
||||
@@ -151,14 +147,12 @@
|
||||
var/DBQuery/log_query = dbcon.NewQuery("INSERT INTO `test`.[format_table_name("admin_log")] (`id` ,`datetime` ,`adminckey` ,`adminip` ,`log` ) VALUES (NULL , NOW( ) , '[usr.ckey]', '[usr.client.address]', 'Removed permission [rights2text(new_permission)] (flag = [new_permission]) to admin [adm_ckey]');")
|
||||
log_query.Execute()
|
||||
to_chat(usr, "\blue Permission removed.")
|
||||
|
||||
else //This admin doesn't have this permission, so we are adding it.
|
||||
var/DBQuery/insert_query = dbcon.NewQuery("UPDATE [format_table_name("admin")] SET flags = '[admin_rights | new_permission]' WHERE id = [admin_id]")
|
||||
insert_query.Execute()
|
||||
var/DBQuery/log_query = dbcon.NewQuery("INSERT INTO `test`.[format_table_name("admin_log")] (`id` ,`datetime` ,`adminckey` ,`adminip` ,`log` ) VALUES (NULL , NOW( ) , '[usr.ckey]', '[usr.client.address]', 'Added permission [rights2text(new_permission)] (flag = [new_permission]) to admin [adm_ckey]')")
|
||||
log_query.Execute()
|
||||
to_chat(usr, "\blue Permission added.")
|
||||
|
||||
|
||||
/datum/admins/proc/updateranktodb(ckey,newrank)
|
||||
establish_db_connection()
|
||||
|
||||
@@ -3,7 +3,6 @@
|
||||
return
|
||||
if(!dbcon.IsConnected())
|
||||
to_chat(usr, "<span class='danger'>Failed to establish database connection.</span>")
|
||||
|
||||
return
|
||||
if(!target_ckey)
|
||||
var/new_ckey = ckey(input(usr,"Who would you like to add a note for?","Enter a ckey",null) as text|null)
|
||||
@@ -17,7 +16,6 @@
|
||||
return
|
||||
if(!query_find_ckey.NextRow())
|
||||
to_chat(usr, "<span class='redtext'>[new_ckey] has not been seen before, you can only add notes to known players.</span>")
|
||||
|
||||
return
|
||||
else
|
||||
target_ckey = new_ckey
|
||||
@@ -56,7 +54,6 @@
|
||||
var/adminckey
|
||||
if(!dbcon.IsConnected())
|
||||
to_chat(usr, "<span class='danger'>Failed to establish database connection.</span>")
|
||||
|
||||
return
|
||||
if(!note_id)
|
||||
return
|
||||
@@ -84,7 +81,6 @@
|
||||
return
|
||||
if(!dbcon.IsConnected())
|
||||
to_chat(usr, "<span class='danger'>Failed to establish database connection.</span>")
|
||||
|
||||
return
|
||||
if(!note_id)
|
||||
return
|
||||
|
||||
@@ -23,7 +23,6 @@
|
||||
if (get_stickyban_from_ckey(ckey))
|
||||
to_chat(usr, "<span class='adminnotice'>Error: Can not add a stickyban: User already has a current sticky ban</span>")
|
||||
|
||||
|
||||
if (data["reason"])
|
||||
ban["message"] = data["reason"]
|
||||
else
|
||||
@@ -45,13 +44,11 @@
|
||||
var/ban = get_stickyban_from_ckey(ckey)
|
||||
if (!ban)
|
||||
to_chat(usr, "<span class='adminnotice'>Error: No sticky ban for [ckey] found!</span>")
|
||||
|
||||
return
|
||||
if (alert("Are you sure you want to remove the sticky ban on [ckey]?","Are you sure","Yes","No") == "No")
|
||||
return
|
||||
if (!get_stickyban_from_ckey(ckey))
|
||||
to_chat(usr, "<span class='adminnotice'>Error: The ban disappeared.</span>")
|
||||
|
||||
return
|
||||
world.SetConfig("ban", ckey, null)
|
||||
|
||||
@@ -68,7 +65,6 @@
|
||||
var/ban = get_stickyban_from_ckey(ckey)
|
||||
if (!ban)
|
||||
to_chat(usr, "<span class='adminnotice'>Error: No sticky ban for [ckey] found!</span>")
|
||||
|
||||
return
|
||||
|
||||
var/found = 0
|
||||
@@ -80,7 +76,6 @@
|
||||
|
||||
if (!found)
|
||||
to_chat(usr, "<span class='adminnotice'>Error: [alt] is not linked to [ckey]'s sticky ban!</span>")
|
||||
|
||||
return
|
||||
|
||||
if (alert("Are you sure you want to disassociate [alt] from [ckey]'s sticky ban? \nNote: Nothing stops byond from re-linking them","Are you sure","Yes","No") == "No")
|
||||
@@ -90,7 +85,6 @@
|
||||
ban = get_stickyban_from_ckey(ckey)
|
||||
if (!ban)
|
||||
to_chat(usr, "<span class='adminnotice'>Error: The ban disappeared.</span>")
|
||||
|
||||
return
|
||||
|
||||
found = 0
|
||||
@@ -102,7 +96,6 @@
|
||||
|
||||
if (!found)
|
||||
to_chat(usr, "<span class='adminnotice'>Error: [alt] link to [ckey]'s sticky ban disappeared.</span>")
|
||||
|
||||
return
|
||||
|
||||
world.SetConfig("ban",ckey,list2stickyban(ban))
|
||||
@@ -117,7 +110,6 @@
|
||||
var/ban = get_stickyban_from_ckey(ckey)
|
||||
if (!ban)
|
||||
to_chat(usr, "<span class='adminnotice'>Error: No sticky ban for [ckey] found!")
|
||||
|
||||
return
|
||||
var/oldreason = ban["message"]
|
||||
var/reason = input(usr,"Reason","Reason","[ban["message"]]") as text|null
|
||||
@@ -127,7 +119,6 @@
|
||||
ban = get_stickyban_from_ckey(ckey)
|
||||
if (!ban)
|
||||
to_chat(usr, "<span class='adminnotice'>Error: The ban disappeared.</span>")
|
||||
|
||||
return
|
||||
ban["message"] = "[reason]"
|
||||
|
||||
|
||||
@@ -19,14 +19,10 @@
|
||||
|
||||
to_chat(C, 'sound/effects/adminhelp.ogg')
|
||||
|
||||
|
||||
to_chat(C, "<font color='red' size='4'><b>- AdminHelp Rejected! -</b></font>")
|
||||
|
||||
to_chat(C, "<font color='red'><b>Your admin help was rejected.</b></font>")
|
||||
|
||||
to_chat(C, "Please try to be calm, clear, and descriptive in admin helps, do not assume the admin has seen any related events, and clearly state the names of anybody you are reporting. If you asked a question, please ensure it was clear what you were asking.")
|
||||
|
||||
|
||||
message_admins("[key_name_admin(usr)] rejected [key_name_admin(C.mob)]'s admin help")
|
||||
log_admin("[key_name(usr)] rejected [key_name(C.mob)]'s admin help")
|
||||
|
||||
@@ -39,43 +35,35 @@
|
||||
log_admin("[key_name(usr)] has spawned a traitor.")
|
||||
if(!src.makeTraitors())
|
||||
to_chat(usr, "\red Unfortunately there weren't enough candidates available.")
|
||||
|
||||
if("2")
|
||||
log_admin("[key_name(usr)] has spawned a changeling.")
|
||||
if(!src.makeChanglings())
|
||||
to_chat(usr, "\red Unfortunately there weren't enough candidates available.")
|
||||
|
||||
if("3")
|
||||
log_admin("[key_name(usr)] has spawned revolutionaries.")
|
||||
if(!src.makeRevs())
|
||||
to_chat(usr, "\red Unfortunately there weren't enough candidates available.")
|
||||
|
||||
if("4")
|
||||
log_admin("[key_name(usr)] has spawned a cultists.")
|
||||
if(!src.makeCult())
|
||||
to_chat(usr, "\red Unfortunately there weren't enough candidates available.")
|
||||
|
||||
if("5")
|
||||
log_admin("[key_name(usr)] has spawned a malf AI.")
|
||||
if(!src.makeMalfAImode())
|
||||
to_chat(usr, "\red Unfortunately there weren't enough candidates available.")
|
||||
|
||||
if("6")
|
||||
log_admin("[key_name(usr)] has spawned a wizard.")
|
||||
if(!src.makeWizard())
|
||||
to_chat(usr, "\red Unfortunately there weren't enough candidates available.")
|
||||
|
||||
if("7")
|
||||
log_admin("[key_name(usr)] has spawned vampires.")
|
||||
if(!src.makeVampires())
|
||||
to_chat(usr, "\red Unfortunately there weren't enough candidates available.")
|
||||
|
||||
if("8")
|
||||
log_admin("[key_name(usr)] has spawned vox raiders.")
|
||||
if(!src.makeVoxRaiders())
|
||||
to_chat(usr, "\red Unfortunately there weren't enough candidates available.")
|
||||
|
||||
|
||||
else if(href_list["dbsearchckey"] || href_list["dbsearchadmin"] || href_list["dbsearchip"] || href_list["dbsearchcid"] || href_list["dbsearchbantype"])
|
||||
var/adminckey = href_list["dbsearchadmin"]
|
||||
var/playerckey = href_list["dbsearchckey"]
|
||||
@@ -115,45 +103,38 @@
|
||||
if(BANTYPE_PERMA)
|
||||
if(!banckey || !banreason)
|
||||
to_chat(usr, "Not enough parameters (Requires ckey and reason)")
|
||||
|
||||
return
|
||||
banduration = null
|
||||
banjob = null
|
||||
if(BANTYPE_TEMP)
|
||||
if(!banckey || !banreason || !banduration)
|
||||
to_chat(usr, "Not enough parameters (Requires ckey, reason and duration)")
|
||||
|
||||
return
|
||||
banjob = null
|
||||
if(BANTYPE_JOB_PERMA)
|
||||
if(!banckey || !banreason || !banjob)
|
||||
to_chat(usr, "Not enough parameters (Requires ckey, reason and job)")
|
||||
|
||||
return
|
||||
banduration = null
|
||||
if(BANTYPE_JOB_TEMP)
|
||||
if(!banckey || !banreason || !banjob || !banduration)
|
||||
to_chat(usr, "Not enough parameters (Requires ckey, reason and job)")
|
||||
|
||||
return
|
||||
if(BANTYPE_APPEARANCE)
|
||||
if(!banckey || !banreason)
|
||||
to_chat(usr, "Not enough parameters (Requires ckey and reason)")
|
||||
|
||||
return
|
||||
banduration = null
|
||||
banjob = null
|
||||
if(BANTYPE_ADMIN_PERMA)
|
||||
if(!banckey || !banreason)
|
||||
to_chat(usr, "Not enough parameters (Requires ckey and reason)")
|
||||
|
||||
return
|
||||
banduration = null
|
||||
banjob = null
|
||||
if(BANTYPE_ADMIN_TEMP)
|
||||
if(!banckey || !banreason || !banduration)
|
||||
to_chat(usr, "Not enough parameters (Requires ckey, reason and duration)")
|
||||
|
||||
return
|
||||
banjob = null
|
||||
|
||||
@@ -192,7 +173,6 @@
|
||||
if(!new_ckey) return
|
||||
if(new_ckey in admin_datums)
|
||||
to_chat(usr, "<font color='red'>Error: Topic 'editrights': [new_ckey] is already an admin</font>")
|
||||
|
||||
return
|
||||
adm_ckey = new_ckey
|
||||
task = "rank"
|
||||
@@ -200,7 +180,6 @@
|
||||
adm_ckey = ckey(href_list["ckey"])
|
||||
if(!adm_ckey)
|
||||
to_chat(usr, "<font color='red'>Error: Topic 'editrights': No valid ckey</font>")
|
||||
|
||||
return
|
||||
|
||||
var/datum/admins/D = admin_datums[adm_ckey]
|
||||
@@ -234,7 +213,6 @@
|
||||
new_rank = ckeyEx(new_rank)
|
||||
if(!new_rank)
|
||||
to_chat(usr, "<font color='red'>Error: Topic 'editrights': Invalid rank</font>")
|
||||
|
||||
return
|
||||
if(config.admin_legacy_system)
|
||||
if(admin_ranks.len)
|
||||
@@ -329,7 +307,6 @@
|
||||
var/mob/M = locate(href_list["mob"])
|
||||
if(!ismob(M))
|
||||
to_chat(usr, "This can only be used on instances of type /mob")
|
||||
|
||||
return
|
||||
|
||||
var/delmob = 0
|
||||
@@ -424,13 +401,9 @@
|
||||
message_admins("\blue [key_name_admin(usr)] edited [banned_key]'s ban. Reason: [reason] Duration: [duration]", 1)
|
||||
Banlist.cd = "/base/[banfolder]"
|
||||
to_chat(Banlist["reason"], reason)
|
||||
|
||||
to_chat(Banlist["temp"], temp)
|
||||
|
||||
to_chat(Banlist["minutes"], minutes)
|
||||
|
||||
to_chat(Banlist["bannedby"], usr.ckey)
|
||||
|
||||
Banlist.cd = "/base"
|
||||
feedback_inc("ban_edit",1)
|
||||
unbanpanel()
|
||||
@@ -443,18 +416,15 @@
|
||||
var/mob/M = locate(href_list["appearanceban"])
|
||||
if(!ismob(M))
|
||||
to_chat(usr, "This can only be used on instances of type /mob")
|
||||
|
||||
return
|
||||
if(!M.ckey) //sanity
|
||||
to_chat(usr, "This mob has no ckey")
|
||||
|
||||
return
|
||||
|
||||
var/banreason = appearance_isbanned(M)
|
||||
if(banreason)
|
||||
/* if(!config.ban_legacy_system)
|
||||
to_chat(usr, "Unfortunately, database based unbanning cannot be done through this panel")
|
||||
|
||||
DB_ban_panel(M.ckey)
|
||||
return */
|
||||
switch(alert("Reason: '[banreason]' Remove appearance ban?","Please Confirm","Yes","No"))
|
||||
@@ -467,7 +437,6 @@
|
||||
message_admins("\blue [key_name_admin(usr)] removed [key_name_admin(M)]'s appearance ban", 1)
|
||||
to_chat(M, "\red<BIG><B>[usr.client.ckey] has removed your appearance ban.</B></BIG>")
|
||||
|
||||
|
||||
else switch(alert("Appearance ban [M.ckey]?",,"Yes","No", "Cancel"))
|
||||
if("Yes")
|
||||
var/reason = input(usr,"Please state the reason","Reason") as message|null
|
||||
@@ -481,17 +450,12 @@
|
||||
add_note(M.ckey, "Appearance banned - [reason]", null, usr, 0)
|
||||
message_admins("\blue [key_name_admin(usr)] appearance banned [key_name_admin(M)]", 1)
|
||||
to_chat(M, "\red<BIG><B>You have been appearance banned by [usr.client.ckey].</B></BIG>")
|
||||
|
||||
to_chat(M, "\red <B>The reason is: [reason]</B>")
|
||||
|
||||
to_chat(M, "\red Appearance ban can be lifted only upon request.")
|
||||
|
||||
if(config.banappeals)
|
||||
to_chat(M, "\red To try to resolve this matter head to [config.banappeals]")
|
||||
|
||||
else
|
||||
to_chat(M, "\red No ban appeals URL has been set.")
|
||||
|
||||
if("No")
|
||||
return
|
||||
|
||||
@@ -501,16 +465,13 @@
|
||||
var/mob/M = locate(href_list["jobban2"])
|
||||
if(!ismob(M))
|
||||
to_chat(usr, "This can only be used on instances of type /mob")
|
||||
|
||||
return
|
||||
|
||||
if(!M.ckey) //sanity
|
||||
to_chat(usr, "This mob has no ckey")
|
||||
|
||||
return
|
||||
if(!job_master)
|
||||
to_chat(usr, "Job Master has not been setup!")
|
||||
|
||||
return
|
||||
|
||||
var/dat = ""
|
||||
@@ -835,7 +796,6 @@
|
||||
var/mob/M = locate(href_list["jobban4"])
|
||||
if(!ismob(M))
|
||||
to_chat(usr, "This can only be used on instances of type /mob")
|
||||
|
||||
return
|
||||
|
||||
if(M != usr) //we can jobban ourselves
|
||||
@@ -845,7 +805,6 @@
|
||||
|
||||
if(!job_master)
|
||||
to_chat(usr, "Job Master has not been setup!")
|
||||
|
||||
return
|
||||
|
||||
//get jobs for department if specified, otherwise just returnt he one job in a list.
|
||||
@@ -915,7 +874,6 @@
|
||||
if("Yes")
|
||||
if(config.ban_legacy_system)
|
||||
to_chat(usr, "\red Your server is using the legacy banning system, which does not support temporary job bans. Consider upgrading. Aborting ban.")
|
||||
|
||||
return
|
||||
var/mins = input(usr,"How long (in minutes)?","Ban time",1440) as num|null
|
||||
if(!mins)
|
||||
@@ -939,11 +897,8 @@
|
||||
add_note(M.ckey, "Banned from [msg] - [reason]", null, usr, 0)
|
||||
message_admins("\blue [key_name_admin(usr)] banned [key_name_admin(M)] from [msg] for [mins] minutes", 1)
|
||||
to_chat(M, "\red<BIG><B>You have been jobbanned by [usr.client.ckey] from: [msg].</B></BIG>")
|
||||
|
||||
to_chat(M, "\red <B>The reason is: [reason]</B>")
|
||||
|
||||
to_chat(M, "\red This jobban will be lifted in [mins] minutes.")
|
||||
|
||||
href_list["jobban2"] = 1 // lets it fall through and refresh
|
||||
return 1
|
||||
if("No")
|
||||
@@ -962,11 +917,8 @@
|
||||
add_note(M.ckey, "Banned from [msg] - [reason]", null, usr, 0)
|
||||
message_admins("\blue [key_name_admin(usr)] banned [key_name_admin(M)] from [msg]", 1)
|
||||
to_chat(M, "\red<BIG><B>You have been jobbanned by [usr.client.ckey] from: [msg].</B></BIG>")
|
||||
|
||||
to_chat(M, "\red <B>The reason is: [reason]</B>")
|
||||
|
||||
to_chat(M, "\red Jobban can be lifted only upon request.")
|
||||
|
||||
href_list["jobban2"] = 1 // lets it fall through and refresh
|
||||
return 1
|
||||
if("Cancel")
|
||||
@@ -977,7 +929,6 @@
|
||||
if(joblist.len) //at least 1 banned job exists in joblist so we have stuff to unban.
|
||||
if(!config.ban_legacy_system)
|
||||
to_chat(usr, "Unfortunately, database based unbanning cannot be done through this panel")
|
||||
|
||||
DB_ban_panel(M.ckey)
|
||||
return
|
||||
var/msg
|
||||
@@ -999,7 +950,6 @@
|
||||
if(msg)
|
||||
message_admins("\blue [key_name_admin(usr)] unbanned [key_name_admin(M)] from [msg]", 1)
|
||||
to_chat(M, "\red<BIG><B>You have been un-jobbanned by [usr.client.ckey] from [msg].</B></BIG>")
|
||||
|
||||
href_list["jobban2"] = 1 // lets it fall through and refresh
|
||||
return 1
|
||||
return 0 //we didn't do anything!
|
||||
@@ -1010,7 +960,6 @@
|
||||
if(!check_if_greater_rights_than(M.client))
|
||||
return
|
||||
to_chat(M, "\red You have been kicked from the server")
|
||||
|
||||
log_admin("[key_name(usr)] booted [key_name(M)].")
|
||||
message_admins("\blue [key_name_admin(usr)] booted [key_name_admin(M)].", 1)
|
||||
//M.client = null
|
||||
@@ -1095,18 +1044,14 @@
|
||||
AddBan(M.ckey, M.computer_id, reason, usr.ckey, 1, mins)
|
||||
ban_unban_log_save("[usr.client.ckey] has banned [M.ckey]. - Reason: [reason] - This will be removed in [mins] minutes.")
|
||||
to_chat(M, "\red<BIG><B>You have been banned by [usr.client.ckey].\nReason: [reason].</B></BIG>")
|
||||
|
||||
to_chat(M, "\red This is a temporary ban, it will be removed in [mins] minutes.")
|
||||
|
||||
feedback_inc("ban_tmp",1)
|
||||
DB_ban_record(BANTYPE_TEMP, M, mins, reason)
|
||||
feedback_inc("ban_tmp_mins",mins)
|
||||
if(config.banappeals)
|
||||
to_chat(M, "\red To try to resolve this matter head to [config.banappeals]")
|
||||
|
||||
else
|
||||
to_chat(M, "\red No ban appeals URL has been set.")
|
||||
|
||||
log_admin("[key_name(usr)] has banned [M.ckey].\nReason: [reason]\nThis will be removed in [mins] minutes.")
|
||||
message_admins("\blue [key_name_admin(usr)] has banned [M.ckey].\nReason: [reason]\nThis will be removed in [mins] minutes.")
|
||||
|
||||
@@ -1123,15 +1068,11 @@
|
||||
if("No")
|
||||
AddBan(M.ckey, M.computer_id, reason, usr.ckey, 0, 0)
|
||||
to_chat(M, "\red<BIG><B>You have been banned by [usr.client.ckey].\nReason: [reason].</B></BIG>")
|
||||
|
||||
to_chat(M, "\red This is a permanent ban.")
|
||||
|
||||
if(config.banappeals)
|
||||
to_chat(M, "\red To try to resolve this matter head to [config.banappeals]")
|
||||
|
||||
else
|
||||
to_chat(M, "\red No ban appeals URL has been set.")
|
||||
|
||||
ban_unban_log_save("[usr.client.ckey] has permabanned [M.ckey]. - Reason: [reason] - This is a permanent ban.")
|
||||
log_admin("[key_name(usr)] has banned [M.ckey].\nReason: [reason]\nThis is a permanent ban.")
|
||||
message_admins("\blue[key_name_admin(usr)] has banned [M.ckey].\nReason: [reason]\nThis is a permanent ban.")
|
||||
@@ -1238,7 +1179,6 @@
|
||||
log_admin("[key_name(usr)] set the mode as [master_mode].")
|
||||
message_admins("\blue [key_name_admin(usr)] set the mode as [master_mode].", 1)
|
||||
to_chat(world, "\blue <b>The mode is now: [master_mode]</b>")
|
||||
|
||||
Game() // updates the main game menu
|
||||
world.save_mode(master_mode)
|
||||
.(href, list("c_mode"=1))
|
||||
@@ -1262,7 +1202,6 @@
|
||||
var/mob/living/carbon/human/H = locate(href_list["monkeyone"])
|
||||
if(!istype(H))
|
||||
to_chat(usr, "This can only be used on instances of type /mob/living/carbon/human")
|
||||
|
||||
return
|
||||
|
||||
log_admin("[key_name(usr)] attempting to monkeyize [key_name(H)]")
|
||||
@@ -1276,7 +1215,6 @@
|
||||
var/mob/living/carbon/human/H = locate(href_list["corgione"])
|
||||
if(!istype(H))
|
||||
to_chat(usr, "This can only be used on instances of type /mob/living/carbon/human")
|
||||
|
||||
return
|
||||
|
||||
log_admin("[key_name(usr)] attempting to corgize [key_name(H)]")
|
||||
@@ -1290,7 +1228,6 @@
|
||||
if(!ismob(M))
|
||||
to_chat(usr, "this can only be used on instances of type /mob")
|
||||
|
||||
|
||||
var/speech = input("What will [key_name(M)] say?.", "Force speech", "")// Don't need to sanitize, since it does that in say(), we also trust our admins.
|
||||
if(!speech) return
|
||||
M.say(speech)
|
||||
@@ -1307,11 +1244,9 @@
|
||||
var/mob/M = locate(href_list["sendtoprison"])
|
||||
if(!ismob(M))
|
||||
to_chat(usr, "This can only be used on instances of type /mob")
|
||||
|
||||
return
|
||||
if(istype(M, /mob/living/silicon/ai))
|
||||
to_chat(usr, "This cannot be used on instances of type /mob/living/silicon/ai")
|
||||
|
||||
return
|
||||
|
||||
var/turf/prison_cell = pick(prisonwarp)
|
||||
@@ -1342,7 +1277,6 @@
|
||||
prisoner.equip_to_slot_or_del(new /obj/item/clothing/shoes/orange(prisoner), slot_shoes)
|
||||
|
||||
to_chat(M, "\red You have been sent to the prison station!")
|
||||
|
||||
log_admin("[key_name(usr)] sent [key_name(M)] to the prison station.")
|
||||
message_admins("\blue [key_name_admin(usr)] sent [key_name_admin(M)] to the prison station.", 1)
|
||||
|
||||
@@ -1354,12 +1288,10 @@
|
||||
|
||||
if(!isobserver(M))
|
||||
to_chat(usr, "<span class='notice'>You can only send ghost players back to the Lobby.</span>")
|
||||
|
||||
return
|
||||
|
||||
if(!M.client)
|
||||
to_chat(usr, "<span class='warning'>[M] doesn't seem to have an active client.</span>")
|
||||
|
||||
return
|
||||
|
||||
if(alert(usr, "Send [key_name(M)] back to Lobby?", "Message", "Yes", "No") != "Yes")
|
||||
@@ -1381,11 +1313,9 @@
|
||||
var/mob/M = locate(href_list["tdome1"])
|
||||
if(!ismob(M))
|
||||
to_chat(usr, "This can only be used on instances of type /mob")
|
||||
|
||||
return
|
||||
if(istype(M, /mob/living/silicon/ai))
|
||||
to_chat(usr, "This cannot be used on instances of type /mob/living/silicon/ai")
|
||||
|
||||
return
|
||||
|
||||
for(var/obj/item/I in M)
|
||||
@@ -1400,7 +1330,6 @@
|
||||
M.loc = pick(tdome1)
|
||||
spawn(50)
|
||||
to_chat(M, "\blue You have been sent to the Thunderdome.")
|
||||
|
||||
log_admin("[key_name(usr)] has sent [key_name(M)] to the thunderdome. (Team 1)")
|
||||
message_admins("[key_name_admin(usr)] has sent [key_name_admin(M)] to the thunderdome. (Team 1)", 1)
|
||||
|
||||
@@ -1413,11 +1342,9 @@
|
||||
var/mob/M = locate(href_list["tdome2"])
|
||||
if(!ismob(M))
|
||||
to_chat(usr, "This can only be used on instances of type /mob")
|
||||
|
||||
return
|
||||
if(istype(M, /mob/living/silicon/ai))
|
||||
to_chat(usr, "This cannot be used on instances of type /mob/living/silicon/ai")
|
||||
|
||||
return
|
||||
|
||||
for(var/obj/item/I in M)
|
||||
@@ -1432,7 +1359,6 @@
|
||||
M.loc = pick(tdome2)
|
||||
spawn(50)
|
||||
to_chat(M, "\blue You have been sent to the Thunderdome.")
|
||||
|
||||
log_admin("[key_name(usr)] has sent [key_name(M)] to the thunderdome. (Team 2)")
|
||||
message_admins("[key_name_admin(usr)] has sent [key_name_admin(M)] to the thunderdome. (Team 2)", 1)
|
||||
|
||||
@@ -1445,11 +1371,9 @@
|
||||
var/mob/M = locate(href_list["tdomeadmin"])
|
||||
if(!ismob(M))
|
||||
to_chat(usr, "This can only be used on instances of type /mob")
|
||||
|
||||
return
|
||||
if(istype(M, /mob/living/silicon/ai))
|
||||
to_chat(usr, "This cannot be used on instances of type /mob/living/silicon/ai")
|
||||
|
||||
return
|
||||
|
||||
M.Paralyse(5)
|
||||
@@ -1457,7 +1381,6 @@
|
||||
M.loc = pick(tdomeadmin)
|
||||
spawn(50)
|
||||
to_chat(M, "\blue You have been sent to the Thunderdome.")
|
||||
|
||||
log_admin("[key_name(usr)] has sent [key_name(M)] to the thunderdome. (Admin.)")
|
||||
message_admins("[key_name_admin(usr)] has sent [key_name_admin(M)] to the thunderdome. (Admin.)", 1)
|
||||
|
||||
@@ -1470,11 +1393,9 @@
|
||||
var/mob/M = locate(href_list["tdomeobserve"])
|
||||
if(!ismob(M))
|
||||
to_chat(usr, "This can only be used on instances of type /mob")
|
||||
|
||||
return
|
||||
if(istype(M, /mob/living/silicon/ai))
|
||||
to_chat(usr, "This cannot be used on instances of type /mob/living/silicon/ai")
|
||||
|
||||
return
|
||||
|
||||
for(var/obj/item/I in M)
|
||||
@@ -1493,7 +1414,6 @@
|
||||
M.loc = pick(tdomeobserve)
|
||||
spawn(50)
|
||||
to_chat(M, "\blue You have been sent to the Thunderdome.")
|
||||
|
||||
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)
|
||||
|
||||
@@ -1506,11 +1426,9 @@
|
||||
var/mob/M = locate(href_list["aroomwarp"])
|
||||
if(!ismob(M))
|
||||
to_chat(usr, "This can only be used on instances of type /mob")
|
||||
|
||||
return
|
||||
if(istype(M, /mob/living/silicon/ai))
|
||||
to_chat(usr, "This cannot be used on instances of type /mob/living/silicon/ai")
|
||||
|
||||
return
|
||||
|
||||
M.Paralyse(5)
|
||||
@@ -1518,7 +1436,6 @@
|
||||
M.loc = pick(aroomwarp)
|
||||
spawn(50)
|
||||
to_chat(M, "\blue You have been sent to the <b>Admin Room!</b>.")
|
||||
|
||||
log_admin("[key_name(usr)] has sent [key_name(M)] to the Admin Room")
|
||||
message_admins("[key_name_admin(usr)] has sent [key_name_admin(M)] to the Admin Room", 1)
|
||||
|
||||
@@ -1529,7 +1446,6 @@
|
||||
var/mob/living/L = locate(href_list["revive"])
|
||||
if(!istype(L))
|
||||
to_chat(usr, "This can only be used on instances of type /mob/living")
|
||||
|
||||
return
|
||||
|
||||
L.revive()
|
||||
@@ -1542,7 +1458,6 @@
|
||||
var/mob/living/carbon/human/H = locate(href_list["makeai"])
|
||||
if(!istype(H))
|
||||
to_chat(usr, "This can only be used on instances of type /mob/living/carbon/human")
|
||||
|
||||
return
|
||||
|
||||
message_admins("\red Admin [key_name_admin(usr)] AIized [key_name_admin(H)]!", 1)
|
||||
@@ -1564,7 +1479,6 @@
|
||||
var/mob/living/carbon/human/H = locate(href_list["makealien"])
|
||||
if(!istype(H))
|
||||
to_chat(usr, "This can only be used on instances of type /mob/living/carbon/human")
|
||||
|
||||
return
|
||||
|
||||
usr.client.cmd_admin_alienize(H)
|
||||
@@ -1575,7 +1489,6 @@
|
||||
var/mob/living/carbon/human/H = locate(href_list["makeslime"])
|
||||
if(!istype(H))
|
||||
to_chat(usr, "This can only be used on instances of type /mob/living/carbon/human")
|
||||
|
||||
return
|
||||
|
||||
usr.client.cmd_admin_slimeize(H)
|
||||
@@ -1586,7 +1499,6 @@
|
||||
var/mob/living/carbon/human/H = locate(href_list["makesuper"])
|
||||
if(!istype(H))
|
||||
to_chat(usr, "This can only be used on instances of type /mob/living/carbon/human")
|
||||
|
||||
return
|
||||
|
||||
usr.client.cmd_admin_super(H)
|
||||
@@ -1597,7 +1509,6 @@
|
||||
var/mob/living/carbon/human/H = locate(href_list["makerobot"])
|
||||
if(!istype(H))
|
||||
to_chat(usr, "This can only be used on instances of type /mob/living/carbon/human")
|
||||
|
||||
return
|
||||
|
||||
usr.client.cmd_admin_robotize(H)
|
||||
@@ -1608,7 +1519,6 @@
|
||||
var/mob/M = locate(href_list["makeanimal"])
|
||||
if(istype(M, /mob/new_player))
|
||||
to_chat(usr, "This cannot be used on instances of type /mob/new_player")
|
||||
|
||||
return
|
||||
|
||||
usr.client.cmd_admin_animalize(M)
|
||||
@@ -1619,7 +1529,6 @@
|
||||
var/mob/dead/observer/G = locate(href_list["incarn_ghost"])
|
||||
if(!istype(G))
|
||||
to_chat(usr, "This will only work on /mob/dead/observer")
|
||||
|
||||
log_admin("[key_name(G)] was incarnated by [key_name(src.owner)]")
|
||||
message_admins("[key_name_admin(G)] was incarnated by [key_name_admin(src.owner)]")
|
||||
G.incarnate_ghost()
|
||||
@@ -1630,7 +1539,6 @@
|
||||
var/mob/living/carbon/human/H = locate(href_list["togmutate"])
|
||||
if(!istype(H))
|
||||
to_chat(usr, "This can only be used on instances of type /mob/living/carbon/human")
|
||||
|
||||
return
|
||||
var/block=text2num(href_list["block"])
|
||||
//testing("togmutate([href_list["block"]] -> [block])")
|
||||
@@ -1687,7 +1595,6 @@
|
||||
var/mob/M = locate(href_list["adminmoreinfo"])
|
||||
if(!ismob(M))
|
||||
to_chat(usr, "This can only be used on instances of type /mob")
|
||||
|
||||
return
|
||||
|
||||
var/location_description = ""
|
||||
@@ -1728,25 +1635,18 @@
|
||||
else gender_description = "<font color='red'><b>[M.gender]</b></font>"
|
||||
|
||||
to_chat(src.owner, "<b>Info about [M.name]:</b> ")
|
||||
|
||||
to_chat(src.owner, "Mob type = [M.type]; Gender = [gender_description] Damage = [health_description]")
|
||||
|
||||
to_chat(src.owner, "Name = <b>[M.name]</b>; Real_name = [M.real_name]; Mind_name = [M.mind?"[M.mind.name]":""]; Key = <b>[M.key]</b>;")
|
||||
|
||||
to_chat(src.owner, "Location = [location_description];")
|
||||
|
||||
to_chat(src.owner, "[special_role_description]")
|
||||
|
||||
to_chat(src.owner, "(<a href='?src=\ref[usr];priv_msg=\ref[M]'>PM</a>) (<A HREF='?src=\ref[src];adminplayeropts=\ref[M]'>PP</A>) (<A HREF='?_src_=vars;Vars=\ref[M]'>VV</A>) (<A HREF='?src=\ref[src];subtlemessage=\ref[M]'>SM</A>) (<A HREF='?src=\ref[src];adminplayerobservefollow=\ref[M]'>FLW</A>) (<A HREF='?src=\ref[src];secretsadmin=check_antagonist'>CA</A>)")
|
||||
|
||||
|
||||
else if(href_list["adminspawncookie"])
|
||||
if(!check_rights(R_ADMIN|R_EVENT)) return
|
||||
|
||||
var/mob/living/carbon/human/H = locate(href_list["adminspawncookie"])
|
||||
if(!ishuman(H))
|
||||
to_chat(usr, "This can only be used on instances of type /mob/living/carbon/human")
|
||||
|
||||
return
|
||||
|
||||
H.equip_to_slot_or_del( new /obj/item/weapon/reagent_containers/food/snacks/cookie(H), slot_l_hand )
|
||||
@@ -1765,14 +1665,12 @@
|
||||
feedback_inc("admin_cookies_spawned",1)
|
||||
to_chat(H, "\blue Your prayers have been answered!! You received the <b>best cookie</b>!")
|
||||
|
||||
|
||||
else if(href_list["BlueSpaceArtillery"])
|
||||
if(!check_rights(R_ADMIN|R_EVENT)) return
|
||||
|
||||
var/mob/living/M = locate(href_list["BlueSpaceArtillery"])
|
||||
if(!isliving(M))
|
||||
to_chat(usr, "This can only be used on instances of type /mob/living")
|
||||
|
||||
return
|
||||
|
||||
if(alert(src.owner, "Are you sure you wish to hit [key_name(M)] with Bluespace Artillery?", "Confirm Firing?" , "Yes" , "No") != "Yes")
|
||||
@@ -1780,7 +1678,6 @@
|
||||
|
||||
if(BSACooldown)
|
||||
to_chat(src.owner, "Standby. Reload cycle in progress. Gunnery crews ready in five seconds!")
|
||||
|
||||
return
|
||||
|
||||
BSACooldown = 1
|
||||
@@ -1788,7 +1685,6 @@
|
||||
BSACooldown = 0
|
||||
|
||||
to_chat(M, "You've been hit by bluespace artillery!")
|
||||
|
||||
log_admin("[key_name(M)] has been hit by Bluespace Artillery fired by [key_name(src.owner)]")
|
||||
message_admins("[key_name_admin(M)] has been hit by Bluespace Artillery fired by [key_name_admin(src.owner)]")
|
||||
|
||||
@@ -1819,23 +1715,19 @@
|
||||
var/mob/living/carbon/human/H = locate(href_list["CentcommReply"])
|
||||
if(!istype(H))
|
||||
to_chat(usr, "This can only be used on instances of type /mob/living/carbon/human")
|
||||
|
||||
return
|
||||
if(!istype(H.l_ear, /obj/item/device/radio/headset) && !istype(H.r_ear, /obj/item/device/radio/headset))
|
||||
to_chat(usr, "The person you are trying to contact is not wearing a headset")
|
||||
|
||||
return
|
||||
|
||||
var/input = input(src.owner, "Please enter a message to reply to [key_name(H)] via their headset.","Outgoing message from Centcomm", "")
|
||||
if(!input) return
|
||||
|
||||
to_chat(src.owner, "You sent [input] to [H] via a secure channel.")
|
||||
|
||||
log_admin("[key_name(src.owner)] replied to [key_name(H)]'s Centcomm message with the message [input].")
|
||||
message_admins("[key_name_admin(src.owner)] replied to [key_name_admin(H)]'s Centcom message with: \"[input]\"")
|
||||
to_chat(H, "You hear something crackle in your headset for a moment before a voice speaks. \"Please stand by for a message from Central Command. Message as follows. [input]. Message ends.\"")
|
||||
|
||||
|
||||
else if(href_list["SyndicateReply"])
|
||||
if(!check_rights(R_ADMIN))
|
||||
return
|
||||
@@ -1843,46 +1735,37 @@
|
||||
var/mob/living/carbon/human/H = locate(href_list["SyndicateReply"])
|
||||
if(!istype(H))
|
||||
to_chat(usr, "This can only be used on instances of type /mob/living/carbon/human")
|
||||
|
||||
return
|
||||
if(H.stat != 0)
|
||||
to_chat(usr, "The person you are trying to contact is not conscious.")
|
||||
|
||||
return
|
||||
if(!istype(H.l_ear, /obj/item/device/radio/headset) && !istype(H.r_ear, /obj/item/device/radio/headset))
|
||||
to_chat(usr, "The person you are trying to contact is not wearing a headset")
|
||||
|
||||
return
|
||||
|
||||
var/input = input(src.owner, "Please enter a message to reply to [key_name(H)] via their headset.","Outgoing message from The Syndicate", "")
|
||||
if(!input) return
|
||||
|
||||
to_chat(src.owner, "You sent [input] to [H] via a secure channel.")
|
||||
|
||||
log_admin("[src.owner] replied to [key_name(H)]'s Syndicate message with the message [input].")
|
||||
to_chat(H, "You hear something crackle in your headset for a moment before a voice speaks. \"Please stand by for a message from your benefactor. Message as follows, agent. [input]. Message ends.\"")
|
||||
|
||||
|
||||
else if(href_list["HONKReply"])
|
||||
var/mob/living/carbon/human/H = locate(href_list["HONKReply"])
|
||||
if(!istype(H))
|
||||
to_chat(usr, "This can only be used on instances of type /mob/living/carbon/human")
|
||||
|
||||
return
|
||||
if(!istype(H.l_ear, /obj/item/device/radio/headset) && !istype(H.r_ear, /obj/item/device/radio/headset))
|
||||
to_chat(usr, "The person you are trying to contact is not wearing a headset")
|
||||
|
||||
return
|
||||
|
||||
var/input = input(src.owner, "Please enter a message to reply to [key_name(H)] via their headset.","Outgoing message from HONKplanet", "")
|
||||
if(!input) return
|
||||
|
||||
to_chat(src.owner, "You sent [input] to [H] via a secure channel.")
|
||||
|
||||
log_admin("[src.owner] replied to [key_name(H)]'s HONKplanet message with the message [input].")
|
||||
to_chat(H, "You hear something crackle in your headset for a moment before a voice speaks. \"Please stand by for a message from your HONKbrothers. Message as follows, HONK. [input]. Message ends, HONK.\"")
|
||||
|
||||
|
||||
else if(href_list["ErtReply"])
|
||||
if(!check_rights(R_ADMIN))
|
||||
return
|
||||
@@ -1891,25 +1774,20 @@
|
||||
var/mob/living/carbon/human/H = locate(href_list["ErtReply"])
|
||||
if(!istype(H))
|
||||
to_chat(usr, "This can only be used on instances of type /mob/living/carbon/human")
|
||||
|
||||
return
|
||||
if(H.stat != 0)
|
||||
to_chat(usr, "The person you are trying to contact is not conscious.")
|
||||
|
||||
return
|
||||
if(!istype(H.l_ear, /obj/item/device/radio/headset) && !istype(H.r_ear, /obj/item/device/radio/headset))
|
||||
to_chat(usr, "The person you are trying to contact is not wearing a headset")
|
||||
|
||||
return
|
||||
|
||||
var/input = input(src.owner, "Please enter a reason for denying [key_name(H)]'s ERT request.","Outgoing message from CentComm", "")
|
||||
if(!input) return
|
||||
|
||||
to_chat(src.owner, "You sent [input] to [H] via a secure channel.")
|
||||
|
||||
log_admin("[src.owner] denied [key_name(H)]'s ERT request with the message [input].")
|
||||
to_chat(H, "You hear something crackle in your headset for a moment before a voice speaks. \"Your ERT request has been denied for the following reasons: [input]. Message ends.\"")
|
||||
|
||||
else
|
||||
src.owner.response_team()
|
||||
|
||||
@@ -1939,7 +1817,6 @@
|
||||
else
|
||||
to_chat(usr, "\red The faxed item is not viewable. This is probably a bug, and should be reported on the tracker: [fax.type]")
|
||||
|
||||
|
||||
else if (href_list["AdminFaxViewPage"])
|
||||
if(!check_rights(R_ADMIN))
|
||||
return
|
||||
@@ -2071,7 +1948,6 @@
|
||||
if(destination != "All Departments")
|
||||
if(!fax.receivefax(P))
|
||||
to_chat(src.owner, "\red Message transmission failed.")
|
||||
|
||||
return
|
||||
else
|
||||
for(var/obj/machinery/photocopier/faxmachine/F in allfaxes)
|
||||
@@ -2080,7 +1956,6 @@
|
||||
if(!F.receivefax(P))
|
||||
to_chat(src.owner, "\red Message transmission to [F.department] failed.")
|
||||
|
||||
|
||||
var/datum/fax/admin/A = new /datum/fax/admin()
|
||||
A.name = P.name
|
||||
A.from_department = faxtype
|
||||
@@ -2095,12 +1970,10 @@
|
||||
A.sent_at = world.time
|
||||
|
||||
to_chat(src.owner, "\blue Message transmitted successfully.")
|
||||
|
||||
if(notify == "Yes")
|
||||
var/mob/living/carbon/human/H = sender
|
||||
if(istype(H) && H.stat == CONSCIOUS && (istype(H.l_ear, /obj/item/device/radio/headset) || istype(H.r_ear, /obj/item/device/radio/headset)))
|
||||
to_chat(sender, "Your headset pings, notifying you that a reply to your fax has arrived.")
|
||||
|
||||
if(sender)
|
||||
log_admin("[key_name(src.owner)] replied to a fax message from [key_name(sender)]: [input]")
|
||||
message_admins("[key_name_admin(src.owner)] replied to a fax message from [key_name_admin(sender)] (<a href='?_src_=holder;AdminFaxView=\ref[P]'>VIEW</a>).", 1)
|
||||
@@ -2156,7 +2029,6 @@
|
||||
var/mob/M = locate(href_list["traitor"])
|
||||
if(!ismob(M))
|
||||
to_chat(usr, "This can only be used on instances of type /mob.")
|
||||
|
||||
return
|
||||
show_traitor_panel(M)
|
||||
|
||||
@@ -2226,7 +2098,6 @@
|
||||
if("inhand")
|
||||
if (!iscarbon(usr) && !isrobot(usr))
|
||||
to_chat(usr, "Can only spawn in hand when you're a carbon mob or cyborg.")
|
||||
|
||||
where = "onfloor"
|
||||
target = usr
|
||||
|
||||
@@ -2239,11 +2110,9 @@
|
||||
if("inmarked")
|
||||
if(!marked_datum)
|
||||
to_chat(usr, "You don't have any object marked. Abandoning spawn.")
|
||||
|
||||
return
|
||||
else if(!istype(marked_datum,/atom))
|
||||
to_chat(usr, "The object you have marked cannot be used as a target. Target must be of type /atom. Abandoning spawn.")
|
||||
|
||||
return
|
||||
else
|
||||
target = marked_datum
|
||||
@@ -2309,7 +2178,6 @@
|
||||
else
|
||||
to_chat(usr, "You may only use this when the game is running.")
|
||||
|
||||
|
||||
else if(href_list["memoeditlist"])
|
||||
if(!check_rights(R_SERVER)) return
|
||||
var/sql_key = sanitizeSQL("[href_list["memoeditlist"]]")
|
||||
@@ -2387,7 +2255,6 @@
|
||||
if("gravity")
|
||||
if(!(ticker && ticker.mode))
|
||||
to_chat(usr, "Please wait until the game starts! Not sure how it will work otherwise.")
|
||||
|
||||
return
|
||||
gravity_is_on = !gravity_is_on
|
||||
for(var/area/A in world)
|
||||
@@ -2550,13 +2417,10 @@
|
||||
/* if("shockwave")
|
||||
ok = 1
|
||||
to_chat(world, "\red <B><big>ALERT: STATION STRESS CRITICAL</big></B>")
|
||||
|
||||
sleep(60)
|
||||
to_chat(world, "\red <B><big>ALERT: STATION STRESS CRITICAL. TOLERABLE LEVELS EXCEEDED!</big></B>")
|
||||
|
||||
sleep(80)
|
||||
to_chat(world, "\red <B><big>ALERT: STATION STRUCTURAL STRESS CRITICAL. SAFETY MECHANISMS FAILED!</big></B>")
|
||||
|
||||
sleep(40)
|
||||
for(var/mob/M in world)
|
||||
shake_camera(M, 400, 1)
|
||||
@@ -2611,7 +2475,6 @@
|
||||
if("floorlava")
|
||||
if(floorIsLava)
|
||||
to_chat(usr, "The floor is lava already.")
|
||||
|
||||
return
|
||||
feedback_inc("admin_secrets_fun_used",1)
|
||||
feedback_add_details("admin_secrets_fun_used","LF")
|
||||
@@ -2669,7 +2532,6 @@
|
||||
feedback_add_details("admin_secrets_fun_used","RET")
|
||||
for(var/mob/living/carbon/human/H in player_list)
|
||||
to_chat(H, "\red <B>You suddenly feel stupid.</B>")
|
||||
|
||||
H.setBrainLoss(60)
|
||||
message_admins("[key_name_admin(usr)] made everybody retarded")
|
||||
if("fakeguns")
|
||||
@@ -2691,7 +2553,6 @@
|
||||
W.item_color = "schoolgirl"
|
||||
message_admins("[key_name_admin(usr)] activated Japanese Animes mode")
|
||||
to_chat(world, sound('sound/AI/animes.ogg'))
|
||||
|
||||
if("eagles")//SCRAW
|
||||
feedback_inc("admin_secrets_fun_used",1)
|
||||
feedback_add_details("admin_secrets_fun_used","EgL")
|
||||
@@ -2799,7 +2660,6 @@
|
||||
if (ok)
|
||||
to_chat(world, text("<B>A secret has been activated by []!</B>", usr.key))
|
||||
|
||||
|
||||
else if(href_list["secretsadmin"])
|
||||
if(!check_rights(R_ADMIN)) return
|
||||
|
||||
@@ -2877,7 +2737,6 @@
|
||||
if (ok)
|
||||
to_chat(world, text("<B>A secret has been activated by []!</B>", usr.key))
|
||||
|
||||
|
||||
else if(href_list["secretscoder"])
|
||||
if(!check_rights(R_DEBUG)) return
|
||||
|
||||
|
||||
@@ -32,7 +32,5 @@
|
||||
var/F = file("broken_hand_icons.txt")
|
||||
fdel(F)
|
||||
to_chat(F, text)
|
||||
|
||||
to_chat(world, "Completed and written to [F]")
|
||||
|
||||
|
||||
|
||||
@@ -27,7 +27,6 @@
|
||||
|
||||
// to_chat(world, query_text)
|
||||
|
||||
|
||||
var/list/query_list = SDQL2_tokenize(query_text)
|
||||
|
||||
if(!query_list || query_list.len < 1)
|
||||
@@ -149,10 +148,8 @@
|
||||
d.vars[v] = vals[v]
|
||||
catch(var/exception/e)
|
||||
to_chat(usr, "<span class='warning'>A runtime error has occured during the execution of your query and your query has been aborted.</span>")
|
||||
|
||||
to_chat(usr, "[e]")
|
||||
|
||||
|
||||
/proc/SDQL_parse(list/query_list)
|
||||
var/datum/SDQL_parser/parser = new()
|
||||
var/list/querys = list()
|
||||
@@ -178,7 +175,6 @@
|
||||
querys_pos++
|
||||
else //There was an error so don't run anything, and tell the user which query has errored.
|
||||
to_chat(usr, "<span class='danger'>Parsing error on [querys_pos]\th query. Nothing was executed.</span>")
|
||||
|
||||
return list()
|
||||
query_tree = list()
|
||||
do_parse = 0
|
||||
@@ -200,28 +196,22 @@
|
||||
for(var/item in query_tree)
|
||||
if(istype(item, /list))
|
||||
to_chat(usr, "[spaces](")
|
||||
|
||||
SDQL_testout(item, indent + 1)
|
||||
to_chat(usr, "[spaces])")
|
||||
|
||||
|
||||
else
|
||||
to_chat(usr, "[spaces][item]")
|
||||
|
||||
|
||||
if(!isnum(item) && query_tree[item])
|
||||
|
||||
if(istype(query_tree[item], /list))
|
||||
to_chat(usr, "[spaces] (")
|
||||
|
||||
SDQL_testout(query_tree[item], indent + 2)
|
||||
to_chat(usr, "[spaces] )")
|
||||
|
||||
|
||||
else
|
||||
to_chat(usr, "[spaces] [query_tree[item]]")
|
||||
|
||||
|
||||
/proc/SDQL_from_objs(list/tree)
|
||||
if("world" in tree)
|
||||
return list(world)
|
||||
@@ -331,7 +321,6 @@
|
||||
result = (result || val)
|
||||
else
|
||||
to_chat(usr, "<span class='danger'>SDQL2: Unknown op [op]</span>")
|
||||
|
||||
result = null
|
||||
else
|
||||
result = val
|
||||
@@ -400,12 +389,10 @@
|
||||
else if(expression[start] == "\[" && start < expression.len)
|
||||
if(lowertext(copytext(expression[start + 1], 1, 3)) != "0x")
|
||||
to_chat(usr, "<span class='danger'>Invalid ref syntax: [expression[start + 1]]</span>")
|
||||
|
||||
return null
|
||||
v = locate("\[[expression[start + 1]]\]")
|
||||
if(!v)
|
||||
to_chat(usr, "<span class='danger'>Invalid ref: [expression[start + 1]]</span>")
|
||||
|
||||
return null
|
||||
start++
|
||||
else
|
||||
@@ -462,7 +449,6 @@
|
||||
else if(char == "'")
|
||||
if(word != "")
|
||||
to_chat(usr, "<span class='danger'>SDQL2: You have an error in your SDQL syntax, unexpected ' in query: \"<font color=gray>[query_text]</font>\" following \"<font color=gray>[word]</font>\". Please check your syntax, and try again.</span>")
|
||||
|
||||
return null
|
||||
|
||||
word = "'"
|
||||
@@ -483,7 +469,6 @@
|
||||
|
||||
if(i > len)
|
||||
to_chat(usr, "<span class='danger'>SDQL2: You have an error in your SDQL syntax, unmatched ' in query: \"<font color=gray>[query_text]</font>\". Please check your syntax, and try again.</span>")
|
||||
|
||||
return null
|
||||
|
||||
query_list += "[word]'"
|
||||
@@ -492,7 +477,6 @@
|
||||
else if(char == "\"")
|
||||
if(word != "")
|
||||
to_chat(usr, "<span class='danger'>SDQL2: You have an error in your SDQL syntax, unexpected \" in query: \"<font color=gray>[query_text]</font>\" following \"<font color=gray>[word]</font>\". Please check your syntax, and try again.</span>")
|
||||
|
||||
return null
|
||||
|
||||
word = "\""
|
||||
@@ -513,7 +497,6 @@
|
||||
|
||||
if(i > len)
|
||||
to_chat(usr, "<span class='danger'>SDQL2: You have an error in your SDQL syntax, unmatched \" in query: \"<font color=gray>[query_text]</font>\". Please check your syntax, and try again.</span>")
|
||||
|
||||
return null
|
||||
|
||||
query_list += "[word]\""
|
||||
|
||||
@@ -61,7 +61,6 @@
|
||||
/datum/SDQL_parser/proc/parse_error(error_message)
|
||||
error = 1
|
||||
to_chat(usr, "<span class='danger'>SQDL2 Parsing Error: [error_message]</span>")
|
||||
|
||||
return query.len + 1
|
||||
|
||||
/datum/SDQL_parser/proc/parse()
|
||||
|
||||
@@ -10,7 +10,6 @@ var/list/adminhelp_ignored_words = list("unknown","the","a","an","of","monkey","
|
||||
//handle muting and automuting
|
||||
if(prefs.muted & MUTE_ADMINHELP)
|
||||
to_chat(src, "<font color='red'>Error: Admin-PM: You cannot send adminhelps (Muted).</font>")
|
||||
|
||||
return
|
||||
|
||||
adminhelped = 1 //Determines if they get the message to reply by clicking the name.
|
||||
@@ -114,22 +113,17 @@ var/list/adminhelp_ignored_words = list("unknown","the","a","an","of","monkey","
|
||||
for(var/client/X in mentorholders + modholders + adminholders)
|
||||
if(X.prefs.sound & SOUND_ADMINHELP)
|
||||
to_chat(X, 'sound/effects/adminhelp.ogg')
|
||||
|
||||
to_chat(X, msg)
|
||||
|
||||
if("Adminhelp")
|
||||
msg = "<span class='adminhelp'>[selected_type]: </span><span class='boldnotice'>[key_name(src, 1, 1, selected_type)] (<A HREF='?_src_=holder;adminmoreinfo=[ref_mob]'>?</A>) (<A HREF='?_src_=holder;adminplayeropts=[ref_mob]'>PP</A>) (<A HREF='?_src_=vars;Vars=[ref_mob]'>VV</A>) (<A HREF='?_src_=holder;subtlemessage=[ref_mob]'>SM</A>) ([admin_jump_link(mob, "holder")]) (<A HREF='?_src_=holder;check_antagonist=1'>CA</A>) (<A HREF='?_src_=holder;rejectadminhelp=[ref_client]'>REJT</A>) [ai_found ? " (<A HREF='?_src_=holder;adminchecklaws=[ref_mob]'>CL</A>)" : ""]:</span> <span class='adminhelp'>[msg]</span>"
|
||||
for(var/client/X in modholders + adminholders)
|
||||
if(X.prefs.sound & SOUND_ADMINHELP)
|
||||
to_chat(X, 'sound/effects/adminhelp.ogg')
|
||||
|
||||
to_chat(X, msg)
|
||||
|
||||
|
||||
//show it to the person adminhelping too
|
||||
to_chat(src, "<span class='boldnotice'>[selected_type]</b>: [original_msg]</span>")
|
||||
|
||||
|
||||
var/admin_number_present = adminholders.len - admin_number_afk
|
||||
log_admin("[selected_type]: [key_name(src)]: [original_msg] - heard by [admin_number_present] non-AFK admins.")
|
||||
if(admin_number_present <= 0)
|
||||
|
||||
@@ -20,7 +20,6 @@
|
||||
var/turf/T = pick_n_take(turfs)
|
||||
if(!T)
|
||||
to_chat(src, "Nowhere to jump to!")
|
||||
|
||||
return
|
||||
|
||||
admin_forcemove(usr, T)
|
||||
@@ -59,7 +58,6 @@
|
||||
else
|
||||
to_chat(A, "This mob is not located in the game world.")
|
||||
|
||||
|
||||
/client/proc/jumptocoord(tx as num, ty as num, tz as num)
|
||||
set category = "Admin"
|
||||
set name = "Jump to Coordinate"
|
||||
@@ -88,7 +86,6 @@
|
||||
var/selection = input("Please, select a player!", "Admin Jumping", null, null) as null|anything in sortKey(keys)
|
||||
if(!selection)
|
||||
to_chat(src, "No keys found.")
|
||||
|
||||
return
|
||||
var/mob/M = selection:mob
|
||||
log_admin("[key_name(usr)] jumped to [key_name(M)]")
|
||||
|
||||
@@ -4,7 +4,6 @@
|
||||
set name = "Admin PM Mob"
|
||||
if(!holder)
|
||||
to_chat(src, "<font color='red'>Error: Admin-PM-Context: Only administrators may use this command.</font>")
|
||||
|
||||
return
|
||||
if( !ismob(M) || !M.client ) return
|
||||
cmd_admin_pm(M.client,null)
|
||||
@@ -16,7 +15,6 @@
|
||||
set name = "Admin PM Name"
|
||||
if(!holder)
|
||||
to_chat(src, "<font color='red'>Error: Admin-PM-Panel: Only administrators may use this command.</font>")
|
||||
|
||||
return
|
||||
var/list/client/targets[0]
|
||||
for(var/client/T)
|
||||
@@ -40,7 +38,6 @@
|
||||
set name = "Admin PM Key"
|
||||
if(!holder)
|
||||
to_chat(src, "<font color='red'>Error: Admin-PM-Panel: Only administrators may use this command.</font>")
|
||||
|
||||
return
|
||||
var/list/client/targets[0]
|
||||
for(var/client/T)
|
||||
@@ -64,7 +61,6 @@
|
||||
/client/proc/cmd_admin_pm(whom, msg, type = "PM")
|
||||
if(prefs.muted & MUTE_ADMINHELP)
|
||||
to_chat(src, "<font color='red'>Error: Private-Message: You are unable to use PM-s (muted).</font>")
|
||||
|
||||
return
|
||||
|
||||
var/client/C
|
||||
@@ -78,7 +74,6 @@
|
||||
if(!C)
|
||||
if(holder)
|
||||
to_chat(src, "<span class='danger'>Error: Private-Message: Client not found.</span>")
|
||||
|
||||
else
|
||||
adminhelp(msg) //admin we are replying to left. adminhelp instead
|
||||
return
|
||||
@@ -87,7 +82,6 @@
|
||||
//send a warning to admins, but have a delay popup for mods
|
||||
if(holder.rights & R_ADMIN)
|
||||
to_chat(src, "\red <b>Simultaneous PMs warning:</b> that player has been PM'd in the last [config.simultaneous_pm_warning_timeout / 10] seconds by: [C.ckey_last_pm]")
|
||||
|
||||
else
|
||||
if(alert("That player has been PM'd in the last [config.simultaneous_pm_warning_timeout / 10] seconds by: [C.ckey_last_pm]","Simultaneous PMs warning","Continue","Cancel") == "Cancel")
|
||||
return*/
|
||||
@@ -101,7 +95,6 @@
|
||||
if(!C)
|
||||
if(holder)
|
||||
to_chat(src, "<span class='danger'>Error: Admin-PM: Client not found.</span>")
|
||||
|
||||
else
|
||||
adminhelp(msg) //admin we are replying to has vanished, adminhelp instead
|
||||
return
|
||||
@@ -133,7 +126,6 @@
|
||||
|
||||
else if(!C.holder)
|
||||
to_chat(src, "<font color='red'>Error: Admin-PM: Non-admin to non-admin PM communication is forbidden.</font>")
|
||||
|
||||
return
|
||||
|
||||
var/recieve_message = ""
|
||||
@@ -142,7 +134,6 @@
|
||||
recieve_message = "<span class='[recieve_span]' size='3'>-- Click the [recieve_pm_type]'s name to reply --</span>\n"
|
||||
if(C.adminhelped)
|
||||
to_chat(C, recieve_message)
|
||||
|
||||
C.adminhelped = 0
|
||||
|
||||
//AdminPM popup for ApocStation and anybody else who wants to use it. Set it with POPUP_ADMIN_PM in config.txt ~Carn
|
||||
@@ -160,10 +151,8 @@
|
||||
|
||||
recieve_message = "<span class='[recieve_span]'>[type] from-<b>[recieve_pm_type][key_name(src, C, C.holder ? 1 : 0, type)]</b>: [msg]</span>"
|
||||
to_chat(C, recieve_message)
|
||||
|
||||
to_chat(src, "<font color='blue'>[send_pm_type][type] to-<b>[key_name(C, src, holder ? 1 : 0, type)]</b>: [msg]</font>")
|
||||
|
||||
|
||||
/*if(holder && !C.holder)
|
||||
C.last_pm_recieved = world.time
|
||||
C.ckey_last_pm = ckey*/
|
||||
@@ -173,7 +162,6 @@
|
||||
if(C.prefs.sound & SOUND_ADMINHELP)
|
||||
to_chat(C, 'sound/effects/adminhelp.ogg')
|
||||
|
||||
|
||||
log_admin("PM: [key_name(src)]->[key_name(C)]: [msg]")
|
||||
//we don't use message_admins here because the sender/receiver might get it too
|
||||
for(var/client/X in admins)
|
||||
@@ -185,20 +173,16 @@
|
||||
if("Mentorhelp")
|
||||
if(check_rights(R_ADMIN|R_MOD|R_MENTOR, 0, X.mob))
|
||||
to_chat(X, "<span class='mentorhelp'>[type]: [key_name(src, X, 0, type)]->[key_name(C, X, 0, type)]: [msg]</span>")
|
||||
|
||||
if("Adminhelp")
|
||||
if(check_rights(R_ADMIN|R_MOD, 0, X.mob))
|
||||
to_chat(X, "<span class='adminhelp'>[type]: [key_name(src, X, 0, type)]->[key_name(C, X, 0, type)]: [msg]</span>")
|
||||
|
||||
else
|
||||
if(check_rights(R_ADMIN|R_MOD, 0, X.mob))
|
||||
to_chat(X, "<span class='boldnotice'>[type]: [key_name(src, X, 0, type)]->[key_name(C, X, 0, type)]: [msg]</span>")
|
||||
|
||||
|
||||
/client/proc/cmd_admin_irc_pm()
|
||||
if(prefs.muted & MUTE_ADMINHELP)
|
||||
to_chat(src, "<font color='red'>Error: Private-Message: You are unable to use PM-s (muted).</font>")
|
||||
|
||||
return
|
||||
|
||||
var/msg = input(src,"Message:", "Private message to admins on IRC / 400 character limit") as text|null
|
||||
@@ -210,20 +194,16 @@
|
||||
|
||||
if(length(msg) > 400) // TODO: if message length is over 400, divide it up into seperate messages, the message length restriction is based on IRC limitations. Probably easier to do this on the bots ends.
|
||||
to_chat(src, "\red Your message was not sent because it was more then 400 characters find your message below for ease of copy/pasting")
|
||||
|
||||
to_chat(src, "\blue [msg]")
|
||||
|
||||
return
|
||||
|
||||
send2adminirc("PlayerPM from [key_name(src)]: [html_decode(msg)]")
|
||||
|
||||
to_chat(src, "<font color='blue'>IRC PM to-<b>IRC-Admins</b>: [msg]</font>")
|
||||
|
||||
|
||||
log_admin("PM: [key_name(src)]->IRC: [msg]")
|
||||
for(var/client/X in admins)
|
||||
if(X == src)
|
||||
continue
|
||||
if(check_rights(R_ADMIN|R_MOD|R_MENTOR, 0, X.mob))
|
||||
to_chat(X, "<B><font color='blue'>PM: [key_name(src, X, 0)]->IRC-Admins:</B> \blue [msg]</font>")
|
||||
|
||||
|
||||
@@ -14,7 +14,6 @@
|
||||
if(R_ADMIN & C.holder.rights)
|
||||
to_chat(C, "<span class='admin_channel'>ADMIN: <span class='name'>[key_name(usr, 1)]</span> ([admin_jump_link(mob, "holder")]): <span class='message'>[msg]</span></span>")
|
||||
|
||||
|
||||
feedback_add_details("admin_verb","M") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
|
||||
/client/proc/cmd_mod_say(msg as text)
|
||||
@@ -38,5 +37,4 @@
|
||||
if(check_rights(R_ADMIN|R_MOD, 0, C.mob))
|
||||
to_chat(C, "<span class='[spanclass]'>MOD: <span class='name'>[key_name(usr, 1)]</span> ([admin_jump_link(mob, C.holder)]): <span class='message'>[msg]</span></span>")
|
||||
|
||||
|
||||
feedback_add_details("admin_verb","MS") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
@@ -17,5 +17,4 @@
|
||||
to_chat(M, "<font color='#960018'><span class='ooc'><span class='prefix'>AOOC:</span> <EM>[display_name]:</EM> <span class='message'>[msg]</span></span></font>")
|
||||
|
||||
|
||||
|
||||
log_ooc("(ANTAG) [key] : [msg]")
|
||||
|
||||
@@ -4,7 +4,6 @@
|
||||
set background = 1
|
||||
if(!src.holder)
|
||||
to_chat(src, "Only administrators may use this command.")
|
||||
|
||||
return
|
||||
feedback_add_details("admin_verb","CP") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
|
||||
@@ -12,27 +11,22 @@
|
||||
return
|
||||
|
||||
to_chat(usr, "Checking for disconnected pipes...")
|
||||
|
||||
//all plumbing - yes, some things might get stated twice, doesn't matter.
|
||||
for (var/obj/machinery/atmospherics/plumbing in world)
|
||||
if (plumbing.nodealert)
|
||||
to_chat(usr, "Unconnected [plumbing.name] located at [plumbing.x],[plumbing.y],[plumbing.z] ([get_area(plumbing.loc)])")
|
||||
|
||||
|
||||
//Manifolds
|
||||
for (var/obj/machinery/atmospherics/pipe/manifold/pipe in world)
|
||||
if (!pipe.node1 || !pipe.node2 || !pipe.node3)
|
||||
to_chat(usr, "Unconnected [pipe.name] located at [pipe.x],[pipe.y],[pipe.z] ([get_area(pipe.loc)])")
|
||||
|
||||
|
||||
//Pipes
|
||||
for (var/obj/machinery/atmospherics/pipe/simple/pipe in world)
|
||||
if (!pipe.node1 || !pipe.node2)
|
||||
to_chat(usr, "Unconnected [pipe.name] located at [pipe.x],[pipe.y],[pipe.z] ([get_area(pipe.loc)])")
|
||||
|
||||
|
||||
to_chat(usr, "Checking for overlapping pipes...")
|
||||
|
||||
next_turf:
|
||||
for(var/turf/T in world)
|
||||
for(var/dir in cardinal)
|
||||
@@ -42,17 +36,14 @@
|
||||
check++
|
||||
if(check > 1)
|
||||
to_chat(usr, "Overlapping pipe ([pipe.name]) located at [T.x],[T.y],[T.z] ([get_area(T)])")
|
||||
|
||||
continue next_turf
|
||||
to_chat(usr, "Done")
|
||||
|
||||
|
||||
/client/proc/powerdebug()
|
||||
set category = "Mapping"
|
||||
set name = "Check Power"
|
||||
if(!src.holder)
|
||||
to_chat(src, "Only administrators may use this command.")
|
||||
|
||||
return
|
||||
feedback_add_details("admin_verb","CPOW") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
|
||||
@@ -62,9 +53,7 @@
|
||||
var/obj/structure/cable/C = PN.cables[1]
|
||||
to_chat(usr, "Powernet with no nodes! (number [PN.number]) - example cable at [C.x], [C.y], [C.z] in area [get_area(C.loc)]")
|
||||
|
||||
|
||||
if (!PN.cables || (PN.cables.len < 10))
|
||||
if(PN.cables && (PN.cables.len > 1))
|
||||
var/obj/structure/cable/C = PN.cables[1]
|
||||
to_chat(usr, "Powernet with fewer than 10 cables! (number [PN.number]) - example cable at [C.x], [C.y], [C.z] in area [get_area(C.loc)]")
|
||||
|
||||
|
||||
@@ -5,7 +5,6 @@
|
||||
|
||||
if(!holder)
|
||||
to_chat(src, "Only administrators may use this command.")
|
||||
|
||||
return
|
||||
|
||||
var/input = input(usr, "Enter the description of the custom event. Be descriptive. To cancel the event, make this blank or hit cancel.", "Custom Event", custom_event_msg) as message|null
|
||||
@@ -21,14 +20,10 @@
|
||||
custom_event_msg = input
|
||||
|
||||
to_chat(world, "<h1 class='alert'>Custom Event</h1>")
|
||||
|
||||
to_chat(world, "<h2 class='alert'>A custom event is starting. OOC Info:</h2>")
|
||||
|
||||
to_chat(world, "<span class='alert'>[html_encode(custom_event_msg)]</span>")
|
||||
|
||||
to_chat(world, "<br>")
|
||||
|
||||
|
||||
// normal verb for players to view info
|
||||
/client/verb/cmd_view_custom_event()
|
||||
set category = "OOC"
|
||||
@@ -36,16 +31,10 @@
|
||||
|
||||
if(!custom_event_msg || custom_event_msg == "")
|
||||
to_chat(src, "There currently is no known custom event taking place.")
|
||||
|
||||
to_chat(src, "Keep in mind: it is possible that an admin has not properly set this.")
|
||||
|
||||
return
|
||||
|
||||
to_chat(src, "<h1 class='alert'>Custom Event</h1>")
|
||||
|
||||
to_chat(src, "<h2 class='alert'>A custom event is taking place. OOC Info:</h2>")
|
||||
|
||||
to_chat(src, "<span class='alert'>[html_encode(custom_event_msg)]</span>")
|
||||
|
||||
to_chat(src, "<br>")
|
||||
|
||||
|
||||
@@ -11,12 +11,10 @@
|
||||
|
||||
if(prefs.muted & MUTE_DEADCHAT)
|
||||
to_chat(src, "<span class='warning'>You cannot send DSAY messages (muted).</span>")
|
||||
|
||||
return
|
||||
|
||||
if(!(prefs.toggles & CHAT_DEAD))
|
||||
to_chat(src, "<span class='warning'>You have deadchat muted.</span>")
|
||||
|
||||
return
|
||||
|
||||
if (handle_spam_prevention(msg,MUTE_DEADCHAT))
|
||||
|
||||
@@ -73,7 +73,6 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that
|
||||
|
||||
if(targetselected && !hascall(target,procname))
|
||||
to_chat(usr, "<font color='red'>Error: callproc(): target has no such call [procname].</font>")
|
||||
|
||||
return
|
||||
|
||||
var/list/lst = get_callproc_args()
|
||||
@@ -83,7 +82,6 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that
|
||||
if(targetselected)
|
||||
if(!target)
|
||||
to_chat(usr, "<font color='red'>Error: callproc(): owner of proc no longer exists.</font>")
|
||||
|
||||
return
|
||||
message_admins("[key_name_admin(src)] called [target]'s [procname]() with [lst.len ? "the arguments [list2params(lst)]":"no arguments"].")
|
||||
log_admin("[key_name(src)] called [target]'s [procname]() with [lst.len ? "the arguments [list2params(lst)]":"no arguments"].")
|
||||
@@ -95,7 +93,6 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that
|
||||
returnval = call(procname)(arglist(lst)) // Pass the lst as an argument list to the proc
|
||||
|
||||
to_chat(usr, "<font color='blue'>[procname] returned: [returnval ? returnval : "null"]</font>")
|
||||
|
||||
feedback_add_details("admin_verb","APC") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
|
||||
/client/proc/callproc_datum(var/A as null|area|mob|obj|turf)
|
||||
@@ -111,7 +108,6 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that
|
||||
|
||||
if(!hascall(A,procname))
|
||||
to_chat(usr, "<span class='warning'>Error: callproc_datum(): target has no such call [procname].</span>")
|
||||
|
||||
return
|
||||
|
||||
var/list/lst = get_callproc_args()
|
||||
@@ -120,7 +116,6 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that
|
||||
|
||||
if(!A || !IsValidSrc(A))
|
||||
to_chat(usr, "<span class='warning'>Error: callproc_datum(): owner of proc no longer exists.</span>")
|
||||
|
||||
return
|
||||
message_admins("[key_name_admin(src)] called [A]'s [procname]() with [lst.len ? "the arguments [list2params(lst)]":"no arguments"]")
|
||||
log_admin("[key_name(src)] called [A]'s [procname]() with [lst.len ? "the arguments [list2params(lst)]":"no arguments"]")
|
||||
@@ -129,7 +124,6 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that
|
||||
var/returnval = call(A,procname)(arglist(lst)) // Pass the lst as an argument list to the proc
|
||||
to_chat(usr, "<span class='notice'>[procname] returned: [returnval ? returnval : "null"]</span>")
|
||||
|
||||
|
||||
feedback_add_details("admin_verb","DPC") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
|
||||
/client/proc/get_callproc_args()
|
||||
@@ -513,59 +507,41 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that
|
||||
var/list/areas_without_camera = areas_all - areas_with_camera
|
||||
|
||||
to_chat(world, "<b>AREAS WITHOUT AN APC:</b>")
|
||||
|
||||
for(var/areatype in areas_without_APC)
|
||||
to_chat(world, "* [areatype]")
|
||||
|
||||
|
||||
to_chat(world, "<b>AREAS WITHOUT AN AIR ALARM:</b>")
|
||||
|
||||
for(var/areatype in areas_without_air_alarm)
|
||||
to_chat(world, "* [areatype]")
|
||||
|
||||
|
||||
to_chat(world, "<b>AREAS WITH TOO MANY APCS:</b>")
|
||||
|
||||
for(var/areatype in areas_with_multiple_APCs)
|
||||
to_chat(world, "* [areatype]")
|
||||
|
||||
|
||||
to_chat(world, "<b>AREAS WITH TOO MANY AIR ALARMS:</b>")
|
||||
|
||||
for(var/areatype in areas_with_multiple_air_alarms)
|
||||
to_chat(world, "* [areatype]")
|
||||
|
||||
|
||||
to_chat(world, "<b>AREAS WITHOUT A REQUEST CONSOLE:</b>")
|
||||
|
||||
for(var/areatype in areas_without_RC)
|
||||
to_chat(world, "* [areatype]")
|
||||
|
||||
|
||||
to_chat(world, "<b>AREAS WITHOUT ANY LIGHTS:</b>")
|
||||
|
||||
for(var/areatype in areas_without_light)
|
||||
to_chat(world, "* [areatype]")
|
||||
|
||||
|
||||
to_chat(world, "<b>AREAS WITHOUT A LIGHT SWITCH:</b>")
|
||||
|
||||
for(var/areatype in areas_without_LS)
|
||||
to_chat(world, "* [areatype]")
|
||||
|
||||
|
||||
to_chat(world, "<b>AREAS WITHOUT ANY INTERCOMS:</b>")
|
||||
|
||||
for(var/areatype in areas_without_intercom)
|
||||
to_chat(world, "* [areatype]")
|
||||
|
||||
|
||||
to_chat(world, "<b>AREAS WITHOUT ANY CAMERAS:</b>")
|
||||
|
||||
for(var/areatype in areas_without_camera)
|
||||
to_chat(world, "* [areatype]")
|
||||
|
||||
|
||||
/client/proc/cmd_admin_dress(var/mob/living/carbon/human/M in mob_list)
|
||||
set category = "Event"
|
||||
set name = "Select equipment"
|
||||
@@ -1191,30 +1167,22 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that
|
||||
switch(input("Which list?") in list("Players","Admins","Mobs","Living Mobs","Dead Mobs","Silicons","Clients","Respawnable Mobs"))
|
||||
if("Players")
|
||||
to_chat(usr, jointext(player_list,","))
|
||||
|
||||
if("Admins")
|
||||
to_chat(usr, jointext(admins,","))
|
||||
|
||||
if("Mobs")
|
||||
to_chat(usr, jointext(mob_list,","))
|
||||
|
||||
if("Living Mobs")
|
||||
to_chat(usr, jointext(living_mob_list,","))
|
||||
|
||||
if("Dead Mobs")
|
||||
to_chat(usr, jointext(dead_mob_list,","))
|
||||
|
||||
if("Silicons")
|
||||
to_chat(usr, jointext(silicon_mob_list,","))
|
||||
|
||||
if("Clients")
|
||||
to_chat(usr, jointext(clients,","))
|
||||
|
||||
if("Respawnable Mobs")
|
||||
to_chat(usr, jointext(respawnable_list,","))
|
||||
|
||||
|
||||
|
||||
/client/proc/cmd_admin_toggle_block(var/mob/M,var/block)
|
||||
if(!check_rights(R_SPAWN))
|
||||
return
|
||||
|
||||
@@ -16,10 +16,8 @@
|
||||
burning = 1
|
||||
|
||||
to_chat(usr, "\blue @[target.x],[target.y]: O:[GM.oxygen] T:[GM.toxins] N:[GM.nitrogen] C:[GM.carbon_dioxide] w [GM.temperature] Kelvin, [GM.return_pressure()] kPa [(burning)?("\red BURNING"):(null)]")
|
||||
|
||||
for(var/datum/gas/trace_gas in GM.trace_gases)
|
||||
to_chat(usr, "[trace_gas.type]: [trace_gas.moles]")
|
||||
|
||||
|
||||
message_admins("[key_name_admin(usr)] has checked the air status of [T]")
|
||||
log_admin("[key_name(usr)] has checked the air status of [T]")
|
||||
@@ -133,10 +131,8 @@
|
||||
return
|
||||
|
||||
to_chat(usr, "<b>Jobbans active in this round.</b>")
|
||||
|
||||
for(var/t in jobban_keylist)
|
||||
to_chat(usr, "[t]")
|
||||
|
||||
|
||||
message_admins("[key_name_admin(usr)] has printed the jobban log")
|
||||
log_admin("[key_name(usr)] has printed the jobban log")
|
||||
@@ -154,11 +150,9 @@
|
||||
return
|
||||
|
||||
to_chat(usr, "<b>Jobbans active in this round.</b>")
|
||||
|
||||
for(var/t in jobban_keylist)
|
||||
if(findtext(t, filter))
|
||||
to_chat(usr, "[t]")
|
||||
|
||||
|
||||
message_admins("[key_name_admin(usr)] has searched the jobban log for [filter]")
|
||||
log_admin("[key_name(usr)] has searched the jobban log for [filter]")
|
||||
|
||||
@@ -14,11 +14,9 @@
|
||||
if(alert("Do you want to inform the world about your game?",,"Yes", "No") == "Yes")
|
||||
to_chat(world, "<h2 style=\"color:#A50400\">The dice have been rolled by Gods!</h2>")
|
||||
|
||||
|
||||
var/result = roll(dice)
|
||||
|
||||
if(alert("Do you want to inform the world about the result?",,"Yes", "No") == "Yes")
|
||||
to_chat(world, "<h2 style=\"color:#A50400\">Gods rolled [dice], result is [result]</h2>")
|
||||
|
||||
|
||||
message_admins("[key_name_admin(src)] rolled dice [dice], result is [result]", 1)
|
||||
@@ -11,7 +11,6 @@ var/global/list/frozen_mob_list = list()
|
||||
set name = "Freeze"
|
||||
if(!holder)
|
||||
to_chat(src, "<font color='red'>Error: Freeze: Only administrators may use this command.</font>")
|
||||
|
||||
return
|
||||
if(!istype(M)) return
|
||||
if(!check_rights(R_ADMIN)) return
|
||||
@@ -28,7 +27,6 @@ var/global/list/frozen_mob_list = list()
|
||||
/mob/living/proc/admin_Freeze(var/client/admin)
|
||||
if(istype(admin))
|
||||
to_chat(src, "<b><font color= red>You have been frozen by [key_name(admin)]</b></font>")
|
||||
|
||||
message_admins("<span class='notice'>[key_name_admin(admin)]</span> froze [key_name_admin(src)]")
|
||||
log_admin("[key_name(admin)] froze [key_name(src)]")
|
||||
|
||||
@@ -45,7 +43,6 @@ var/global/list/frozen_mob_list = list()
|
||||
/mob/living/proc/admin_unFreeze(var/client/admin)
|
||||
if(istype(admin))
|
||||
to_chat(src, "<b><font color= red>You have been unfrozen by [key_name(admin)]</b></font>")
|
||||
|
||||
message_admins("\blue [key_name_admin(admin)] unfroze [key_name_admin(src)]")
|
||||
log_admin("[key_name(admin)] unfroze [key_name(src)]")
|
||||
|
||||
@@ -89,12 +86,10 @@ var/global/list/frozen_mob_list = list()
|
||||
set name = "Freeze Mech"
|
||||
if(!holder)
|
||||
to_chat(src, "Only administrators may use this command.")
|
||||
|
||||
return
|
||||
var/obj/mecha/M = O
|
||||
if(!istype(M,/obj/mecha))
|
||||
to_chat(src, "\red <b>This can only be used on Mechs!</b>")
|
||||
|
||||
return
|
||||
else
|
||||
if(usr)
|
||||
@@ -107,7 +102,6 @@ var/global/list/frozen_mob_list = list()
|
||||
if(M.occupant)
|
||||
M.removeVerb(/obj/mecha/verb/eject)
|
||||
to_chat(M.occupant, "<b><font color= red>You have been frozen by <a href='?priv_msg=\ref[usr.client]'>[key]</a></b></font>")
|
||||
|
||||
message_admins("\blue [key_name_admin(usr)] froze [key_name(M.occupant)] in a [M.name]")
|
||||
log_admin("[key_name(usr)] froze [key_name(M.occupant)] in a [M.name]")
|
||||
else
|
||||
@@ -119,7 +113,6 @@ var/global/list/frozen_mob_list = list()
|
||||
if(M.occupant)
|
||||
M.addVerb(/obj/mecha/verb/eject)
|
||||
to_chat(M.occupant, "<b><font color= red>You have been unfrozen by <a href='?priv_msg=\ref[usr.client]'>[key]</a></b></font>")
|
||||
|
||||
message_admins("\blue [key_name_admin(usr)] unfroze [key_name(M.occupant)] in a [M.name]")
|
||||
log_admin("[key_name(usr)] unfroze [M.occupant.name]/[M.occupant.ckey] in a [M.name]")
|
||||
else
|
||||
|
||||
@@ -25,18 +25,15 @@
|
||||
|
||||
if(!src.holder)
|
||||
to_chat(src, "<font color='red'>Only Admins may use this command.</font>")
|
||||
|
||||
return
|
||||
|
||||
var/client/target = input(src,"Choose somebody to grant access to the server's runtime logs (permissions expire at the end of each round):","Grant Permissions",null) as null|anything in clients
|
||||
if(!istype(target,/client))
|
||||
to_chat(src, "<font color='red'>Error: giveruntimelog(): Client not found.</font>")
|
||||
|
||||
return
|
||||
|
||||
target.verbs |= /client/proc/getruntimelog
|
||||
to_chat(target, "<font color='red'>You have been granted access to runtime logs. Please use them responsibly or risk being banned.</font>")
|
||||
|
||||
return
|
||||
|
||||
|
||||
@@ -58,7 +55,6 @@
|
||||
src << ftp(file(path))
|
||||
|
||||
to_chat(src, "Attempting to send file, this may take a fair few minutes if the file is very large.")
|
||||
|
||||
return
|
||||
|
||||
|
||||
@@ -80,7 +76,6 @@
|
||||
src << ftp(file(path))
|
||||
|
||||
to_chat(src, "Attempting to send file, this may take a fair few minutes if the file is very large.")
|
||||
|
||||
return
|
||||
|
||||
|
||||
@@ -114,7 +109,6 @@
|
||||
|
||||
else
|
||||
to_chat(src, "<font color='red'>Error: view_atk_log(): File not found/Invalid path([path]).</font>")
|
||||
|
||||
return
|
||||
usr << run(file(path))
|
||||
|
||||
|
||||
@@ -6,15 +6,12 @@ var/global/sent_honksquad = 0
|
||||
/client/proc/honksquad()
|
||||
if(!ticker)
|
||||
to_chat(usr, "<font color='red'>The game hasn't started yet!</font>")
|
||||
|
||||
return
|
||||
if(world.time < 6000)
|
||||
to_chat(usr, "<font color='red'>There are [(6000-world.time)/10] seconds remaining before it may be called.</font>")
|
||||
|
||||
return
|
||||
if(sent_honksquad == 1)
|
||||
to_chat(usr, "<font color='red'>Clown Planet has already dispatched a HONKsquad.</font>")
|
||||
|
||||
return
|
||||
if(alert("Do you want to send in the HONKsquad? Once enabled, this is irreversible.",,"Yes","No")!="Yes")
|
||||
return
|
||||
@@ -29,7 +26,6 @@ var/global/sent_honksquad = 0
|
||||
|
||||
if(sent_honksquad)
|
||||
to_chat(usr, "Looks like someone beat you to it. HONK.")
|
||||
|
||||
return
|
||||
|
||||
sent_honksquad = 1
|
||||
@@ -70,7 +66,6 @@ var/global/sent_honksquad = 0
|
||||
|
||||
to_chat(new_honksquad, "\blue You are a HONKsquad. [!honk_leader_selected?"commando":"<B>LEADER</B>"] in the service of Clown Planet. You are called in cases of exteme low levels of HONK. You are NOT authorized to kill. \nYour current mission is: \red<B>[input]</B>")
|
||||
|
||||
|
||||
honksquad_number--
|
||||
|
||||
|
||||
|
||||
@@ -189,7 +189,6 @@ var/list/admin_verbs_show_debug_verbs = list(
|
||||
atom_list += A
|
||||
|
||||
to_chat(world, "There are [count] objects of type [type_path] on z-level [num_level].")
|
||||
|
||||
feedback_add_details("admin_verb","mOBJZ") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
|
||||
/client/proc/count_objects_all()
|
||||
@@ -211,5 +210,4 @@ var/list/admin_verbs_show_debug_verbs = list(
|
||||
count++
|
||||
|
||||
to_chat(world, "There are [count] objects of type [type_path] in the game world.")
|
||||
|
||||
feedback_add_details("admin_verb","mOBJ") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
|
||||
@@ -31,7 +31,6 @@
|
||||
for(var/p in forbidden_varedit_object_types)
|
||||
if( istype(O,p) )
|
||||
to_chat(usr, "<span class='danger'>It is forbidden to edit this object's variables.</span>")
|
||||
|
||||
return
|
||||
|
||||
var/list/names = list()
|
||||
@@ -58,51 +57,41 @@
|
||||
if(isnull(var_value))
|
||||
to_chat(usr, "Unable to determine variable type.")
|
||||
|
||||
|
||||
else if(isnum(var_value))
|
||||
to_chat(usr, "Variable appears to be <b>NUM</b>.")
|
||||
|
||||
default = "num"
|
||||
dir = 1
|
||||
|
||||
else if(istext(var_value))
|
||||
to_chat(usr, "Variable appears to be <b>TEXT</b>.")
|
||||
|
||||
default = "text"
|
||||
|
||||
else if(isloc(var_value))
|
||||
to_chat(usr, "Variable appears to be <b>REFERENCE</b>.")
|
||||
|
||||
default = "reference"
|
||||
|
||||
else if(isicon(var_value))
|
||||
to_chat(usr, "Variable appears to be <b>ICON</b>.")
|
||||
|
||||
var_value = "\icon[var_value]"
|
||||
default = "icon"
|
||||
|
||||
else if(istype(var_value,/atom) || istype(var_value,/datum))
|
||||
to_chat(usr, "Variable appears to be <b>TYPE</b>.")
|
||||
|
||||
default = "type"
|
||||
|
||||
else if(istype(var_value,/list))
|
||||
to_chat(usr, "Variable appears to be <b>LIST</b>.")
|
||||
|
||||
default = "list"
|
||||
|
||||
else if(istype(var_value,/client))
|
||||
to_chat(usr, "Variable appears to be <b>CLIENT</b>.")
|
||||
|
||||
default = "cancel"
|
||||
|
||||
else
|
||||
to_chat(usr, "Variable appears to be <b>FILE</b>.")
|
||||
|
||||
default = "file"
|
||||
|
||||
to_chat(usr, "Variable contains: [var_value]")
|
||||
|
||||
if(dir)
|
||||
switch(var_value)
|
||||
if(1)
|
||||
@@ -126,7 +115,6 @@
|
||||
if(dir)
|
||||
to_chat(usr, "If a direction, direction is: [dir]")
|
||||
|
||||
|
||||
var/class = input("What kind of variable?","Variable Type",default) as null|anything in list("text",
|
||||
"num","type","icon","file","edit referenced object","restore to default")
|
||||
|
||||
|
||||
@@ -19,7 +19,6 @@ var/list/forbidden_varedit_object_types = list(
|
||||
|
||||
if (ticker == null)
|
||||
to_chat(src, "Game hasn't started yet.")
|
||||
|
||||
else
|
||||
src.modify_variables(ticker)
|
||||
feedback_add_details("admin_verb","ETV") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
@@ -56,7 +55,6 @@ var/list/forbidden_varedit_object_types = list(
|
||||
if(!var_value)
|
||||
to_chat(src, "<span class='warning'>[type_text] is not a valid path!</span>")
|
||||
|
||||
|
||||
if("reference")
|
||||
var_value = input("Select reference:","Reference") as null|mob|obj|turf|area in world
|
||||
|
||||
@@ -110,7 +108,6 @@ var/list/forbidden_varedit_object_types = list(
|
||||
if(!var_value)
|
||||
to_chat(src, "<span class='warning'>[type_text] is not a valid path!</span>")
|
||||
|
||||
|
||||
if("reference")
|
||||
var_value = input("Select reference:","Reference") as mob|obj|turf|area in world
|
||||
|
||||
@@ -140,7 +137,6 @@ var/list/forbidden_varedit_object_types = list(
|
||||
|
||||
if(!istype(L,/list))
|
||||
to_chat(src, "Not a List.")
|
||||
|
||||
if(L.len > 1000)
|
||||
var/confirm = alert(src, "The list you're trying to edit is very long, continuing may crash the server.", "Warning", "Continue", "Abort")
|
||||
if(confirm != "Continue")
|
||||
@@ -155,7 +151,6 @@ var/list/forbidden_varedit_object_types = list(
|
||||
assoc = 1 //This is pretty weak test but i can't think of anything else
|
||||
to_chat(usr, "List appears to be associative.")
|
||||
|
||||
|
||||
var/list/names = null
|
||||
if(!assoc)
|
||||
names = sortList(L)
|
||||
@@ -188,14 +183,12 @@ var/list/forbidden_varedit_object_types = list(
|
||||
default = variable_to_type(variable)
|
||||
|
||||
to_chat(usr, "Variable contains: [variable]")
|
||||
|
||||
if(default == "num")
|
||||
dir = dir2text(variable)
|
||||
|
||||
if(dir)
|
||||
to_chat(usr, "If a direction, direction is: [dir]")
|
||||
|
||||
|
||||
var/class = "text"
|
||||
var/list/allowed_types = list("text", "num","type", "type from text", "reference","mob reference", "icon","file","list","edit referenced object","restore to default","DELETE FROM LIST")
|
||||
if(src.holder && src.holder.marked_datum)
|
||||
@@ -284,12 +277,10 @@ var/list/forbidden_varedit_object_types = list(
|
||||
for(var/p in forbidden_varedit_object_types)
|
||||
if( istype(O,p) )
|
||||
to_chat(usr, "<span class='warning'>It is forbidden to edit this object's variables.</span>")
|
||||
|
||||
return
|
||||
|
||||
if(istype(O, /client) && (param_var_name == "ckey" || param_var_name == "key"))
|
||||
to_chat(usr, "<span class='warning'>You cannot edit ckeys on client objects.</span>")
|
||||
|
||||
return
|
||||
|
||||
var/class
|
||||
@@ -299,7 +290,6 @@ var/list/forbidden_varedit_object_types = list(
|
||||
if(param_var_name)
|
||||
if(!param_var_name in O.vars)
|
||||
to_chat(src, "A variable with this name ([param_var_name]) doesn't exist in this atom ([O])")
|
||||
|
||||
return
|
||||
|
||||
if(param_var_name == "holder" || (param_var_name in locked))
|
||||
@@ -341,13 +331,11 @@ var/list/forbidden_varedit_object_types = list(
|
||||
var_value = "\icon[var_value]"
|
||||
|
||||
to_chat(usr, "Variable contains: [var_value]")
|
||||
|
||||
if(dir)
|
||||
dir = dir2text(var_value)
|
||||
if(dir)
|
||||
to_chat(usr, "If a direction, direction is: [dir]")
|
||||
|
||||
|
||||
var/list/allowed_types = list("text", "num","type","reference","mob reference", "path", "matrix", "icon","file","list","edit referenced object","restore to default")
|
||||
if(src.holder && src.holder.marked_datum)
|
||||
allowed_types += "marked datum ([holder.marked_datum.type])"
|
||||
@@ -415,7 +403,6 @@ var/list/forbidden_varedit_object_types = list(
|
||||
var/var_new = text2path(path_text)
|
||||
if(!var_new && path_text != null) // So aborting doesn't bother the VVer
|
||||
to_chat(usr, "<span class='warning'>[path_text] does not appear to be a valid path.</span>")
|
||||
|
||||
return
|
||||
O.vars[variable] = var_new
|
||||
|
||||
@@ -424,7 +411,6 @@ var/list/forbidden_varedit_object_types = list(
|
||||
var/var_new = text2matrix(matrix_text)
|
||||
if(!var_new && matrix_text != null)
|
||||
to_chat(usr, "<span class='warning'>[matrix_text] is not a valid matrix string.</span>")
|
||||
|
||||
return
|
||||
O.vars[variable] = var_new
|
||||
var_as_text = "matrix([matrix_text])"
|
||||
@@ -464,62 +450,50 @@ var/list/forbidden_varedit_object_types = list(
|
||||
var/class
|
||||
if(isnull(variable))
|
||||
to_chat(usr, "Unable to determine variable type.")
|
||||
|
||||
class = null
|
||||
else if(isnum(variable))
|
||||
to_chat(usr, "Variable appears to be <b>NUM</b>.")
|
||||
|
||||
class = "num"
|
||||
|
||||
else if(istext(variable))
|
||||
to_chat(usr, "Variable appears to be <b>TEXT</b>.")
|
||||
|
||||
class = "text"
|
||||
|
||||
else if(isloc(variable))
|
||||
to_chat(usr, "Variable appears to be <b>REFERENCE</b>.")
|
||||
|
||||
class = "reference"
|
||||
|
||||
else if(isicon(variable))
|
||||
to_chat(usr, "Variable appears to be <b>ICON</b>.")
|
||||
|
||||
variable = "\icon[variable]"
|
||||
class = "icon"
|
||||
|
||||
else if(istype(variable,/matrix))
|
||||
to_chat(usr, "Variable appears to be <b>MATRIX</b>")
|
||||
|
||||
class = "matrix"
|
||||
|
||||
else if(istype(variable,/atom) || istype(variable,/datum))
|
||||
to_chat(usr, "Variable appears to be <b>TYPE</b>.")
|
||||
|
||||
class = "type"
|
||||
|
||||
else if(istype(variable,/list))
|
||||
to_chat(usr, "Variable appears to be <b>LIST</b>.")
|
||||
|
||||
class = "list"
|
||||
|
||||
else if(istype(variable,/client))
|
||||
to_chat(usr, "Variable appears to be <b>CLIENT</b>.")
|
||||
|
||||
class = "cancel"
|
||||
|
||||
else if(ispath(variable))
|
||||
to_chat(usr, "Variable appears to be <b>PATH</b>.")
|
||||
|
||||
class = "path"
|
||||
|
||||
else if(isfile(variable))
|
||||
to_chat(usr, "Variable appears to be <b>FILE</b>.")
|
||||
|
||||
class = "file"
|
||||
|
||||
else
|
||||
to_chat(usr, "Variable type is <b>UNKNOWN</b>.")
|
||||
|
||||
class = null
|
||||
|
||||
return class
|
||||
@@ -379,7 +379,6 @@ client/proc/one_click_antag()
|
||||
|
||||
to_chat(new_syndicate_commando, "\blue You are an Elite Syndicate. [!syndicate_leader_selected?"commando":"<B>LEADER</B>"] in the service of the Syndicate. \nYour current mission is: \red<B> [input]</B>")
|
||||
|
||||
|
||||
numagents--
|
||||
if(numagents >= 6)
|
||||
return 0
|
||||
@@ -484,10 +483,8 @@ client/proc/one_click_antag()
|
||||
|
||||
new_vox.key = theghost.key
|
||||
to_chat(new_vox, "\blue You are a Vox Primalis, fresh out of the Shoal. Your ship has arrived at the Tau Ceti system hosting the NSV Exodus... or was it the Luna? NSS? Utopia? Nobody is really sure, but everyong is raring to start pillaging! Your current goal is: \red<B> [input]</B>")
|
||||
|
||||
to_chat(new_vox, "\red Don't forget to turn on your nitrogen internals!")
|
||||
|
||||
|
||||
raiders--
|
||||
if(raiders > max_raiders)
|
||||
return 0
|
||||
@@ -617,7 +614,6 @@ client/proc/one_click_antag()
|
||||
teamOneMembers--
|
||||
to_chat(newMember, "You are a member of the <font color = 'green'><b>GREEN</b></font> Thunderdome team! Gear up and help your team destroy the red team!")
|
||||
|
||||
|
||||
if(L.name == "tdome2")
|
||||
if(teamTwoMembers<=0)
|
||||
break
|
||||
@@ -639,7 +635,6 @@ client/proc/one_click_antag()
|
||||
newMember.key = theghost.key
|
||||
teamTwoMembers--
|
||||
to_chat(newMember, "You are a member of the <font color = 'red'><b>RED</b></font> Thunderdome team! Gear up and help your team destroy the green team!")
|
||||
|
||||
else
|
||||
return 0
|
||||
return 1
|
||||
@@ -22,11 +22,9 @@
|
||||
H.mind.objectives += hijack_objective
|
||||
|
||||
to_chat(H, "<B>You are a Highlander. Kill all other Highlanders. There can be only one.</B>")
|
||||
|
||||
var/obj_count = 1
|
||||
for(var/datum/objective/OBJ in H.mind.objectives)
|
||||
to_chat(H, "<B>Objective #[obj_count]</B>: [OBJ.explanation_text]")
|
||||
|
||||
obj_count++
|
||||
|
||||
for (var/obj/item/I in H)
|
||||
@@ -59,7 +57,6 @@
|
||||
nologevent = 1
|
||||
to_chat(world, sound('sound/music/THUNDERDOME.ogg'))
|
||||
|
||||
|
||||
/client/proc/only_me()
|
||||
if(!ticker)
|
||||
alert("The game hasn't started yet!")
|
||||
@@ -77,11 +74,9 @@
|
||||
H.mind.objectives += hijack_objective
|
||||
|
||||
to_chat(H, "<B>You are the multiverse summoner. Activate your blade to summon copies of yourself from another universe to fight by your side.</B>")
|
||||
|
||||
var/obj_count = 1
|
||||
for(var/datum/objective/OBJ in H.mind.objectives)
|
||||
to_chat(H, "<B>Objective #[obj_count]</B>: [OBJ.explanation_text]")
|
||||
|
||||
obj_count++
|
||||
|
||||
var/obj/item/slot_item_ID = H.get_item_by_slot(slot_wear_id)
|
||||
@@ -107,4 +102,3 @@
|
||||
log_admin("[key_name(usr)] used there can be only me.")
|
||||
nologevent = 1
|
||||
to_chat(world, sound('sound/music/THUNDERDOME.ogg'))
|
||||
|
||||
|
||||
@@ -23,7 +23,6 @@
|
||||
|
||||
to_chat(H, "<B>You are part of the [station_name()] dodgeball tournament. Throw dodgeballs at crewmembers wearing a different color than you. OOC: Use THROW on an EMPTY-HAND to catch thrown dodgeballs.</B>")
|
||||
|
||||
|
||||
H.equip_to_slot_or_del(new /obj/item/device/radio/headset/heads/captain(H), slot_l_ear)
|
||||
H.equip_to_slot_or_del(new /obj/item/weapon/beach_ball/dodgeball(H), slot_r_hand)
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/shoes/white(H), slot_shoes)
|
||||
@@ -77,15 +76,12 @@
|
||||
var/mob/A = H.LAssailant
|
||||
if((H in team_alpha) && (A in team_alpha))
|
||||
to_chat(A, "<span class='warning'>He's on your team!</span>")
|
||||
|
||||
return
|
||||
else if((H in team_bravo) && (A in team_bravo))
|
||||
to_chat(A, "<span class='warning'>He's on your team!</span>")
|
||||
|
||||
return
|
||||
else if(!A in team_alpha && !A in team_bravo)
|
||||
to_chat(A, "<span class='warning'>You're not part of the dodgeball game, sorry!</span>")
|
||||
|
||||
return
|
||||
else
|
||||
playsound(src, 'sound/items/dodgeball.ogg', 50, 1)
|
||||
|
||||
@@ -19,7 +19,6 @@ var/list/sounds_cache = list()
|
||||
if(M.client.prefs.sound & SOUND_MIDI)
|
||||
to_chat(M, uploaded_sound)
|
||||
|
||||
|
||||
feedback_add_details("admin_verb","PGS") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
|
||||
|
||||
@@ -89,11 +88,9 @@ var/list/sounds_cache = list()
|
||||
if(M.client.midis)
|
||||
to_chat(M, 'cubanpetetime.ogg')
|
||||
|
||||
|
||||
for(var/mob/living/carbon/human/CP in world)
|
||||
if(CP.real_name=="Cuban Pete" && CP.key!="Rosham")
|
||||
to_chat(CP, "Your body can't contain the rhumba beat")
|
||||
|
||||
CP.gib()
|
||||
|
||||
|
||||
@@ -108,7 +105,6 @@ var/list/sounds_cache = list()
|
||||
to_chat(M, 'bananaphone.ogg')
|
||||
|
||||
|
||||
|
||||
client/proc/space_asshole()
|
||||
set category = "Event"
|
||||
set name = "Space Asshole"
|
||||
@@ -120,7 +116,6 @@ client/proc/space_asshole()
|
||||
to_chat(M, 'sound/music/space_asshole.ogg')
|
||||
|
||||
|
||||
|
||||
client/proc/honk_theme()
|
||||
set category = "Event"
|
||||
set name = "Honk"
|
||||
@@ -130,4 +125,3 @@ client/proc/honk_theme()
|
||||
if(M.client)
|
||||
if(M.client.midis)
|
||||
to_chat(M, 'honk_theme.ogg')*/
|
||||
|
||||
|
||||
@@ -5,7 +5,6 @@
|
||||
if(istype(O,/obj/singularity))
|
||||
if(config.forbid_singulo_possession)
|
||||
to_chat(usr, "It is forbidden to possess singularities.")
|
||||
|
||||
return
|
||||
|
||||
var/turf/T = get_turf(O)
|
||||
|
||||
@@ -8,7 +8,6 @@
|
||||
if(usr.client)
|
||||
if(usr.client.prefs.muted & MUTE_PRAY)
|
||||
to_chat(usr, "\red You cannot pray (muted).")
|
||||
|
||||
return
|
||||
if(src.client.handle_spam_prevention(msg,MUTE_PRAY))
|
||||
return
|
||||
@@ -20,10 +19,8 @@
|
||||
if(check_rights(R_EVENT,0,X.mob))
|
||||
to_chat(X, msg)
|
||||
|
||||
|
||||
to_chat(usr, "Your prayers have been received by the gods.")
|
||||
|
||||
|
||||
feedback_add_details("admin_verb","PR") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
//log_admin("HELP: [key_name(src)]: [msg]")
|
||||
|
||||
@@ -35,7 +32,6 @@
|
||||
if(R_EVENT & X.holder.rights)
|
||||
to_chat(X, msg)
|
||||
|
||||
|
||||
/proc/Syndicate_announce(var/text , var/mob/Sender)
|
||||
var/msg = sanitize(copytext(text, 1, MAX_MESSAGE_LEN))
|
||||
msg = "\blue <b><font color='#DC143C'>SYNDICATE: </font>[key_name(Sender, 1)] (<A HREF='?_src_=holder;adminplayeropts=\ref[Sender]'>PP</A>) (<A HREF='?_src_=vars;Vars=\ref[Sender]'>VV</A>) (<A HREF='?_src_=holder;subtlemessage=\ref[Sender]'>SM</A>) ([admin_jump_link(Sender, "holder")]) (<A HREF='?_src_=holder;secretsadmin=check_antagonist'>CA</A>) (<A HREF='?_src_=holder;BlueSpaceArtillery=\ref[Sender]'>BSA</A>) (<A HREF='?_src_=holder;SyndicateReply=\ref[Sender]'>REPLY</A>):</b> [msg]"
|
||||
@@ -44,7 +40,6 @@
|
||||
if(check_rights(R_EVENT,0,X.mob))
|
||||
to_chat(X, msg)
|
||||
|
||||
|
||||
/proc/HONK_announce(var/text , var/mob/Sender)
|
||||
var/msg = sanitize(copytext(text, 1, MAX_MESSAGE_LEN))
|
||||
msg = "\blue <b><font color=pink>HONK: </font>[key_name(Sender, 1)] (<A HREF='?_src_=holder;adminplayeropts=\ref[Sender]'>PP</A>) (<A HREF='?_src_=vars;Vars=\ref[Sender]'>VV</A>) (<A HREF='?_src_=holder;subtlemessage=\ref[Sender]'>SM</A>) ([admin_jump_link(Sender, "holder")]) (<A HREF='?_src_=holder;secretsadmin=check_antagonist'>CA</A>) (<A HREF='?_src_=holder;BlueSpaceArtillery=\ref[Sender]'>BSA</A>) (<A HREF='?_src_=holder;HONKReply=\ref[Sender]'>RPLY</A>):</b> [msg]"
|
||||
@@ -53,7 +48,6 @@
|
||||
if(R_EVENT & X.holder.rights)
|
||||
to_chat(X, msg)
|
||||
|
||||
|
||||
/proc/ERT_Announce(var/text , var/mob/Sender)
|
||||
var/msg = sanitize(copytext(text, 1, MAX_MESSAGE_LEN))
|
||||
msg = "\blue <b><font color=orange>ERT REQUEST: </font>[key_name(Sender, 1)] (<A HREF='?_src_=holder;adminplayeropts=\ref[Sender]'>PP</A>) (<A HREF='?_src_=vars;Vars=\ref[Sender]'>VV</A>) (<A HREF='?_src_=holder;subtlemessage=\ref[Sender]'>SM</A>) ([admin_jump_link(Sender, "holder")]) (<A HREF='?_src_=holder;secretsadmin=check_antagonist'>CA</A>) (<A HREF='?_src_=holder;BlueSpaceArtillery=\ref[Sender]'>BSA</A>) (<A HREF='?_src_=holder;ErtReply=\ref[Sender]'>REPLY</A>):</b> [msg]"
|
||||
@@ -62,7 +56,6 @@
|
||||
if(check_rights(R_EVENT,0,X.mob))
|
||||
to_chat(X, msg)
|
||||
|
||||
|
||||
/proc/Nuke_request(text , mob/Sender)
|
||||
var/nuke_code = get_nuke_code()
|
||||
var/msg = sanitize(copytext(text, 1, MAX_MESSAGE_LEN))
|
||||
|
||||
@@ -40,7 +40,6 @@
|
||||
prisoner.equip_to_slot_or_del(new /obj/item/clothing/shoes/orange(prisoner), slot_shoes)
|
||||
spawn(50)
|
||||
to_chat(M, "\red You have been sent to the prison station!")
|
||||
|
||||
log_admin("[key_name(usr)] sent [key_name(M)] to the prison station.")
|
||||
message_admins("\blue [key_name_admin(usr)] sent [key_name_admin(M)] to the prison station.", 1)
|
||||
feedback_add_details("admin_verb","PRISON") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
@@ -64,7 +63,6 @@
|
||||
if(usr.client.holder)
|
||||
to_chat(M, "\bold You hear a voice in your head... \italic [msg]")
|
||||
|
||||
|
||||
log_admin("SubtlePM: [key_name(usr)] -> [key_name(M)] : [msg]")
|
||||
message_admins("\blue \bold SubtleMessage: [key_name_admin(usr)] -> [key_name_admin(M)] : [msg]", 1)
|
||||
feedback_add_details("admin_verb","SMS") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
@@ -95,14 +93,12 @@
|
||||
if(missing_ages)
|
||||
to_chat(src, "Some accounts did not have proper ages set in their clients. This function requires database to be present")
|
||||
|
||||
|
||||
if(msg != "")
|
||||
src << browse(msg, "window=Player_age_check")
|
||||
else
|
||||
to_chat(src, "No matches for that age range found.")
|
||||
|
||||
|
||||
|
||||
/client/proc/cmd_admin_world_narrate() // Allows administrators to fluff events a little easier -- TLE
|
||||
set category = "Event"
|
||||
set name = "Global Narrate"
|
||||
@@ -115,7 +111,6 @@
|
||||
if (!msg)
|
||||
return
|
||||
to_chat(world, "[msg]")
|
||||
|
||||
log_admin("GlobalNarrate: [key_name(usr)] : [msg]")
|
||||
message_admins("\blue \bold GlobalNarrate: [key_name_admin(usr)]: [msg]<BR>", 1)
|
||||
feedback_add_details("admin_verb","GLN") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
@@ -139,7 +134,6 @@
|
||||
return
|
||||
|
||||
to_chat(M, msg)
|
||||
|
||||
log_admin("DirectNarrate: [key_name(usr)] to ([key_name(M)]): [msg]")
|
||||
message_admins("\blue \bold DirectNarrate: [key_name_admin(usr)] to ([key_name_admin(M)]): [msg]<BR>", 1)
|
||||
feedback_add_details("admin_verb","DIRN") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
@@ -154,7 +148,6 @@
|
||||
M.status_flags ^= GODMODE
|
||||
to_chat(usr, "\blue Toggled [(M.status_flags & GODMODE) ? "ON" : "OFF"]")
|
||||
|
||||
|
||||
log_admin("[key_name(usr)] has toggled [key_name(M)]'s nodamage to [(M.status_flags & GODMODE) ? "On" : "Off"]")
|
||||
message_admins("[key_name_admin(usr)] has toggled [key_name_admin(M)]'s nodamage to [(M.status_flags & GODMODE) ? "On" : "Off"]", 1)
|
||||
feedback_add_details("admin_verb","GOD") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
@@ -169,11 +162,9 @@ proc/cmd_admin_mute(mob/M as mob, mute_type, automute = 0)
|
||||
return
|
||||
if(!check_rights(R_ADMIN|R_MOD))
|
||||
to_chat(usr, "<font color='red'>Error: cmd_admin_mute: You don't have permission to do this.</font>")
|
||||
|
||||
return
|
||||
if(!M.client)
|
||||
to_chat(usr, "<font color='red'>Error: cmd_admin_mute: This mob doesn't have a client tied to it.</font>")
|
||||
|
||||
if(!M.client)
|
||||
return
|
||||
|
||||
@@ -195,7 +186,6 @@ proc/cmd_admin_mute(mob/M as mob, mute_type, automute = 0)
|
||||
log_admin("SPAM AUTOMUTE: [muteunmute] [key_name(M)] from [mute_string]")
|
||||
message_admins("SPAM AUTOMUTE: [muteunmute] [key_name_admin(M)] from [mute_string].", 1)
|
||||
to_chat(M, "You have been [muteunmute] from [mute_string] by the SPAM AUTOMUTE system. Contact an admin.")
|
||||
|
||||
feedback_add_details("admin_verb","AUTOMUTE") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
return
|
||||
|
||||
@@ -209,7 +199,6 @@ proc/cmd_admin_mute(mob/M as mob, mute_type, automute = 0)
|
||||
log_admin("[key_name(usr)] has [muteunmute] [key_name(M)] from [mute_string]")
|
||||
message_admins("[key_name_admin(usr)] has [muteunmute] [key_name_admin(M)] from [mute_string].", 1)
|
||||
to_chat(M, "You have been [muteunmute] from [mute_string].")
|
||||
|
||||
feedback_add_details("admin_verb","MUTE") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
|
||||
/client/proc/cmd_admin_add_random_ai_law()
|
||||
@@ -247,10 +236,8 @@ proc/cmd_admin_mute(mob/M as mob, mute_type, automute = 0)
|
||||
g.antagHUD = 0 // Disable it on those that have it enabled
|
||||
g.has_enabled_antagHUD = 2 // We'll allow them to respawn
|
||||
to_chat(g, "\red <B>The Administrator has disabled AntagHUD </B>")
|
||||
|
||||
config.antag_hud_allowed = 0
|
||||
to_chat(src, "\red <B>AntagHUD usage has been disabled</B>")
|
||||
|
||||
action = "disabled"
|
||||
else
|
||||
for(var/mob/dead/observer/g in get_ghosts())
|
||||
@@ -258,13 +245,11 @@ proc/cmd_admin_mute(mob/M as mob, mute_type, automute = 0)
|
||||
g.verbs += /mob/dead/observer/verb/toggle_antagHUD
|
||||
to_chat(g, "\blue <B>The Administrator has enabled AntagHUD </B>")// Notify all observers they can now use AntagHUD
|
||||
|
||||
|
||||
config.antag_hud_allowed = 1
|
||||
action = "enabled"
|
||||
to_chat(src, "\blue <B>AntagHUD usage has been enabled</B>")
|
||||
|
||||
|
||||
|
||||
log_admin("[key_name(usr)] has [action] antagHUD usage for observers")
|
||||
message_admins("Admin [key_name_admin(usr)] has [action] antagHUD usage for observers", 1)
|
||||
|
||||
@@ -280,24 +265,19 @@ proc/cmd_admin_mute(mob/M as mob, mute_type, automute = 0)
|
||||
if(config.antag_hud_restricted)
|
||||
for(var/mob/dead/observer/g in get_ghosts())
|
||||
to_chat(g, "\blue <B>The administrator has lifted restrictions on joining the round if you use AntagHUD</B>")
|
||||
|
||||
action = "lifted restrictions"
|
||||
config.antag_hud_restricted = 0
|
||||
to_chat(src, "\blue <B>AntagHUD restrictions have been lifted</B>")
|
||||
|
||||
else
|
||||
for(var/mob/dead/observer/g in get_ghosts())
|
||||
to_chat(g, "\red <B>The administrator has placed restrictions on joining the round if you use AntagHUD</B>")
|
||||
|
||||
to_chat(g, "\red <B>Your AntagHUD has been disabled, you may choose to re-enabled it but will be under restrictions </B>")
|
||||
|
||||
g.antagHUD = 0
|
||||
g.has_enabled_antagHUD = 0
|
||||
action = "placed restrictions"
|
||||
config.antag_hud_restricted = 1
|
||||
to_chat(src, "\red <B>AntagHUD restrictions have been enabled</B>")
|
||||
|
||||
|
||||
log_admin("[key_name(usr)] has [action] on joining the round if they use AntagHUD")
|
||||
message_admins("Admin [key_name_admin(usr)] has [action] on joining the round if they use AntagHUD", 1)
|
||||
|
||||
@@ -326,7 +306,6 @@ Traitors and the like can also be revived with the previous role mostly intact.
|
||||
|
||||
if(!G_found)//If a ghost was not found.
|
||||
to_chat(usr, "<font color='red'>There is no active key like that in the game or the person is not currently a ghost.</font>")
|
||||
|
||||
return
|
||||
|
||||
if(G_found.mind && !G_found.mind.active) //mind isn't currently in use by someone/something
|
||||
@@ -351,7 +330,6 @@ Traitors and the like can also be revived with the previous role mostly intact.
|
||||
G_found.mind.transfer_to(new_xeno) //be careful when doing stuff like this! I've already checked the mind isn't in use
|
||||
new_xeno.key = G_found.key
|
||||
to_chat(new_xeno, "You have been fully respawned. Enjoy the game.")
|
||||
|
||||
message_admins("\blue [key_name_admin(usr)] has respawned [new_xeno.key] as a filthy xeno.", 1)
|
||||
return //all done. The ghost is auto-deleted
|
||||
|
||||
@@ -458,7 +436,6 @@ Traitors and the like can also be revived with the previous role mostly intact.
|
||||
|
||||
to_chat(new_character, "You have been fully respawned. Enjoy the game.")
|
||||
|
||||
|
||||
feedback_add_details("admin_verb","RSPCH") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
return new_character
|
||||
|
||||
@@ -477,7 +454,6 @@ Traitors and the like can also be revived with the previous role mostly intact.
|
||||
ckey = input("Pick the player you want to respawn as a xeno.", "Suitable Candidates") as null|anything in candidates
|
||||
else
|
||||
to_chat(usr, "<font color='red'>Error: create_xeno(): no suitable candidates.</font>")
|
||||
|
||||
if(!istext(ckey)) return 0
|
||||
|
||||
var/alien_caste = input(usr, "Please choose which caste to spawn.","Pick a caste",null) as null|anything in list("Queen","Hunter","Sentinel","Drone","Larva")
|
||||
@@ -510,7 +486,6 @@ Traitors and the like can also be revived with the previous role mostly intact.
|
||||
if(!any)
|
||||
if(notify)
|
||||
to_chat(src, "There doesn't appear to be any ghosts for you to select.")
|
||||
|
||||
return
|
||||
|
||||
for(var/mob/M in mobs)
|
||||
@@ -586,7 +561,6 @@ Traitors and the like can also be revived with the previous role mostly intact.
|
||||
if("No")
|
||||
to_chat(world, "\red [from] available at all communications consoles.")
|
||||
|
||||
|
||||
for (var/obj/machinery/computer/communications/C in machines)
|
||||
if(! (C.stat & (BROKEN|NOPOWER) ) )
|
||||
var/obj/item/weapon/paper/P = new /obj/item/weapon/paper( C.loc )
|
||||
@@ -607,7 +581,6 @@ Traitors and the like can also be revived with the previous role mostly intact.
|
||||
if("No")
|
||||
to_chat(world, "\red New Nanotrasen Update available at all communication consoles.")
|
||||
|
||||
|
||||
for (var/obj/machinery/computer/communications/C in machines)
|
||||
if(! (C.stat & (BROKEN|NOPOWER) ) )
|
||||
var/obj/item/weapon/paper/P = new /obj/item/weapon/paper( C.loc )
|
||||
@@ -618,7 +591,6 @@ Traitors and the like can also be revived with the previous role mostly intact.
|
||||
C.messagetext.Add(P.info)
|
||||
|
||||
// to_chat(world, sound('sound/AI/commandreport.ogg'))
|
||||
|
||||
log_admin("[key_name(src)] has created a communications report: [input]")
|
||||
message_admins("[key_name_admin(src)] has created a communications report", 1)
|
||||
feedback_add_details("admin_verb","CCR") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
@@ -651,7 +623,6 @@ Traitors and the like can also be revived with the previous role mostly intact.
|
||||
if(job_master)
|
||||
for(var/datum/job/job in job_master.occupations)
|
||||
to_chat(src, "[job.title]: [job.total_positions]")
|
||||
|
||||
feedback_add_details("admin_verb","LFS") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
|
||||
/client/proc/cmd_admin_explosion(atom/O as obj|mob|turf in view())
|
||||
@@ -758,7 +729,6 @@ Traitors and the like can also be revived with the previous role mostly intact.
|
||||
var/list/L = M.get_contents()
|
||||
for(var/t in L)
|
||||
to_chat(usr, "[t]")
|
||||
|
||||
feedback_add_details("admin_verb","CC") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
|
||||
/client/proc/toggle_view_range()
|
||||
@@ -841,10 +811,8 @@ Traitors and the like can also be revived with the previous role mostly intact.
|
||||
return
|
||||
|
||||
to_chat(usr, text("\red <b>Attack Log for []</b>", mob))
|
||||
|
||||
for(var/t in M.attack_log)
|
||||
to_chat(usr, t)
|
||||
|
||||
feedback_add_details("admin_verb","ATTL") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
|
||||
|
||||
@@ -858,14 +826,12 @@ Traitors and the like can also be revived with the previous role mostly intact.
|
||||
|
||||
if (ticker && ticker.mode)
|
||||
to_chat(usr, "Nope you can't do this, the game's already started. This only works before rounds!")
|
||||
|
||||
return
|
||||
|
||||
if(ticker.random_players)
|
||||
ticker.random_players = 0
|
||||
message_admins("Admin [key_name_admin(usr)] has disabled \"Everyone is Special\" mode.", 1)
|
||||
to_chat(usr, "Disabled.")
|
||||
|
||||
return
|
||||
|
||||
|
||||
@@ -879,10 +845,8 @@ Traitors and the like can also be revived with the previous role mostly intact.
|
||||
if(notifyplayers == "Yes")
|
||||
to_chat(world, "\blue <b>Admin [usr.key] has forced the players to have completely random identities!")
|
||||
|
||||
|
||||
to_chat(usr, "<i>Remember: you can always disable the randomness by using the verb again, assuming the round hasn't started yet</i>.")
|
||||
|
||||
|
||||
ticker.random_players = 1
|
||||
feedback_add_details("admin_verb","MER") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
|
||||
@@ -897,12 +861,10 @@ Traitors and the like can also be revived with the previous role mostly intact.
|
||||
if(!config.allow_random_events)
|
||||
config.allow_random_events = 1
|
||||
to_chat(usr, "Random events enabled")
|
||||
|
||||
message_admins("Admin [key_name_admin(usr)] has enabled random events.", 1)
|
||||
else
|
||||
config.allow_random_events = 0
|
||||
to_chat(usr, "Random events disabled")
|
||||
|
||||
message_admins("Admin [key_name_admin(usr)] has disabled random events.", 1)
|
||||
feedback_add_details("admin_verb","TRE") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
|
||||
@@ -917,13 +879,11 @@ Traitors and the like can also be revived with the previous role mostly intact.
|
||||
if(ticker.mode.ert_disabled)
|
||||
ticker.mode.ert_disabled = 0
|
||||
to_chat(usr, "\blue ERT has been <b>Enabled</b>.")
|
||||
|
||||
log_admin("Admin [key_name(src)] has enabled ERT calling.")
|
||||
message_admins("Admin [key_name_admin(usr)] has enabled ERT calling.", 1)
|
||||
else
|
||||
ticker.mode.ert_disabled = 1
|
||||
to_chat(usr, "\red ERT has been <b>Disabled</b>.")
|
||||
|
||||
log_admin("Admin [key_name(src)] has disabled ERT calling.")
|
||||
message_admins("Admin [key_name_admin(usr)] has disabled ERT calling.", 1)
|
||||
|
||||
|
||||
@@ -6,11 +6,9 @@ var/global/sent_strike_team = 0
|
||||
/client/proc/strike_team()
|
||||
if(!ticker)
|
||||
to_chat(usr, "<font color='red'>The game hasn't started yet!</font>")
|
||||
|
||||
return
|
||||
if(sent_strike_team == 1)
|
||||
to_chat(usr, "<font color='red'>CentComm is already sending a team.</font>")
|
||||
|
||||
return
|
||||
if(alert("Do you want to send in the CentComm death squad? Once enabled, this is irreversible.",,"Yes","No")!="Yes")
|
||||
return
|
||||
@@ -25,7 +23,6 @@ var/global/sent_strike_team = 0
|
||||
|
||||
if(sent_strike_team)
|
||||
to_chat(usr, "Looks like someone beat you to it.")
|
||||
|
||||
return
|
||||
|
||||
sent_strike_team = 1
|
||||
@@ -76,7 +73,6 @@ var/global/sent_strike_team = 0
|
||||
|
||||
to_chat(new_commando, "\blue You are a Special Ops. [!leader_selected?"commando":"<B>LEADER</B>"] in the service of Central Command. Check the table ahead for detailed instructions.\nYour current mission is: \red<B>[input]</B>")
|
||||
|
||||
|
||||
commando_number--
|
||||
|
||||
//Spawns the rest of the commando gear.
|
||||
|
||||
@@ -8,7 +8,6 @@ var/global/sent_syndicate_strike_team = 0
|
||||
set desc = "Spawns a squad of commandos in the Syndicate Mothership if you want to run an admin event."
|
||||
if(!src.holder)
|
||||
to_chat(src, "Only administrators may use this command.")
|
||||
|
||||
return
|
||||
if(!ticker)
|
||||
alert("The game hasn't started yet!")
|
||||
@@ -29,7 +28,6 @@ var/global/sent_syndicate_strike_team = 0
|
||||
|
||||
if(sent_syndicate_strike_team)
|
||||
to_chat(src, "Looks like someone beat you to it.")
|
||||
|
||||
return
|
||||
|
||||
sent_syndicate_strike_team = 1
|
||||
@@ -82,7 +80,6 @@ var/global/sent_syndicate_strike_team = 0
|
||||
|
||||
to_chat(new_syndicate_commando, "\blue You are an Elite Syndicate. [!syndicate_leader_selected?"commando":"<B>LEADER</B>"] in the service of the Syndicate. \nYour current mission is: \red<B>[input]</B>")
|
||||
|
||||
|
||||
syndicate_commando_number--
|
||||
|
||||
//Spawns the rest of the commando gear.
|
||||
|
||||
@@ -22,4 +22,3 @@
|
||||
to_chat(src, "\red Error: ticklag(): Invalid world.ticklag value. No changes made.")
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -4,23 +4,19 @@
|
||||
|
||||
if(ticker.current_state > GAME_STATE_PREGAME)
|
||||
to_chat(usr, "This option is currently only usable during pregame. This may change at a later date.")
|
||||
|
||||
return
|
||||
|
||||
if(job_master && ticker)
|
||||
var/datum/job/job = job_master.GetJob("AI")
|
||||
if(!job)
|
||||
to_chat(usr, "Unable to locate the AI job")
|
||||
|
||||
return
|
||||
if(ticker.triai)
|
||||
ticker.triai = 0
|
||||
to_chat(usr, "Only one AI will be spawned at round start.")
|
||||
|
||||
message_admins("\blue [key_name_admin(usr)] has toggled off triple AIs at round start.", 1)
|
||||
else
|
||||
ticker.triai = 1
|
||||
to_chat(usr, "There will be an AI Triumvirate at round start.")
|
||||
|
||||
message_admins("\blue [key_name_admin(usr)] has toggled on triple AIs at round start.", 1)
|
||||
return
|
||||
|
||||
@@ -13,14 +13,12 @@
|
||||
return
|
||||
if(!query_watchfind.NextRow())
|
||||
to_chat(usr, "<span class='redtext'>[new_ckey] has not been seen before, you can only add known players.</span>")
|
||||
|
||||
return
|
||||
else
|
||||
target_ckey = new_ckey
|
||||
var/target_sql_ckey = sanitizeSQL(target_ckey)
|
||||
if(check_watchlist(target_sql_ckey))
|
||||
to_chat(usr, "<span class='redtext'>[target_sql_ckey] is already on the watchlist.</span>")
|
||||
|
||||
return
|
||||
var/reason = input(usr,"Please state the reason","Reason") as message|null
|
||||
if(!reason)
|
||||
|
||||
Reference in New Issue
Block a user