mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-23 20:16:55 +01:00
[READY] BYOND 516 compatability (#25105)
* Preliminary changes for 516 * Also removes the goon folder * Fixes a BUNCH of UIs * update our things * debug proc * le maintainer verb * fix strip panel * browseroutput => chat_panel * prettier, remove obsolete bat * tidu tgui say css * href purge * 515 compat * 515 compat 2 * more required chores * comments * fully working 515 * bungle * correct this * fixes 515 support * prettier * new CI * fixes old href styles sneaking in * update docs to reflect href changes * more href fixes (thanks cdui) * MORE href nonsense * even more hrefs (seriously wtf) * Update code/modules/admin/permissionverbs/permissionedit.dm * error on fail --------- Co-authored-by: AffectedArc07 <25063394+AffectedArc07@users.noreply.github.com>
This commit is contained in:
@@ -330,7 +330,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
|
||||
A.overlays += source
|
||||
source.layer = old_layer
|
||||
source.plane = old_plane
|
||||
to_chat(src, "<span class='ghostalert'><a href=?src=[UID()];reenter=1>(Click to re-enter)</a></span>")
|
||||
to_chat(src, "<span class='ghostalert'><a href=byond://?src=[UID()];reenter=1>(Click to re-enter)</a></span>")
|
||||
if(sound)
|
||||
SEND_SOUND(src, sound(sound))
|
||||
|
||||
|
||||
@@ -209,11 +209,11 @@
|
||||
medical = R.fields["p_stat"]
|
||||
mental = R.fields["m_stat"]
|
||||
|
||||
var/medical_status = hasHUD(user, EXAMINE_HUD_MEDICAL_WRITE) ? "<a href='?src=[UID()];medical=1'>\[[medical]\]</a>" : "\[[medical]\]"
|
||||
var/mental_status = hasHUD(user, EXAMINE_HUD_MEDICAL_WRITE) ? "<a href='?src=[UID()];mental=1'>\[[mental]\]</a>" : "\[[mental]\]"
|
||||
var/medical_status = hasHUD(user, EXAMINE_HUD_MEDICAL_WRITE) ? "<a href='byond://?src=[UID()];medical=1'>\[[medical]\]</a>" : "\[[medical]\]"
|
||||
var/mental_status = hasHUD(user, EXAMINE_HUD_MEDICAL_WRITE) ? "<a href='byond://?src=[UID()];mental=1'>\[[mental]\]</a>" : "\[[mental]\]"
|
||||
msg += "<span class='deptradio'>Physical status: </span>[medical_status]\n"
|
||||
msg += "<span class='deptradio'>Mental Status: </span>[mental_status]\n"
|
||||
msg += "<span class='deptradio'>Medical records:</span> <a href='?src=[UID()];medrecord=`'>\[View\]</a> <a href='?src=[UID()];medrecordadd=`'>\[Add comment\]</a>\n"
|
||||
msg += "<span class='deptradio'>Medical records:</span> <a href='byond://?src=[UID()];medrecord=`'>\[View\]</a> <a href='byond://?src=[UID()];medrecordadd=`'>\[Add comment\]</a>\n"
|
||||
|
||||
if(hasHUD(user, EXAMINE_HUD_SECURITY_READ))
|
||||
var/perpname = get_visible_name(TRUE)
|
||||
@@ -234,9 +234,9 @@
|
||||
else
|
||||
commentLatest = "No entries." //If present but without entries (=target is recognized crew)
|
||||
|
||||
var/criminal_status = hasHUD(user, EXAMINE_HUD_SECURITY_WRITE) ? "<a href='?src=[UID()];criminal=1'>\[[criminal]\]</a>" : "\[[criminal]\]"
|
||||
var/criminal_status = hasHUD(user, EXAMINE_HUD_SECURITY_WRITE) ? "<a href='byond://?src=[UID()];criminal=1'>\[[criminal]\]</a>" : "\[[criminal]\]"
|
||||
msg += "<span class='deptradio'>Criminal status:</span> [criminal_status]\n"
|
||||
msg += "<span class='deptradio'>Security records:</span> <a href='?src=[UID()];secrecordComment=`'>\[View comment log\]</a> <a href='?src=[UID()];secrecordadd=`'>\[Add comment\]</a>\n"
|
||||
msg += "<span class='deptradio'>Security records:</span> <a href='byond://?src=[UID()];secrecordComment=`'>\[View comment log\]</a> <a href='byond://?src=[UID()];secrecordadd=`'>\[Add comment\]</a>\n"
|
||||
msg += "<span class='deptradio'>Latest entry:</span> [commentLatest]\n"
|
||||
|
||||
|
||||
|
||||
@@ -496,7 +496,7 @@
|
||||
to_chat(usr, "<b>Major Crimes:</b> [R.fields["ma_crim"]]")
|
||||
to_chat(usr, "<b>Details:</b> [R.fields["ma_crim_d"]]")
|
||||
to_chat(usr, "<b>Notes:</b> [R.fields["notes"]]")
|
||||
to_chat(usr, "<a href='?src=[UID()];secrecordComment=`'>\[View Comment Log\]</a>")
|
||||
to_chat(usr, "<a href='byond://?src=[UID()];secrecordComment=`'>\[View Comment Log\]</a>")
|
||||
read = 1
|
||||
|
||||
if(!read)
|
||||
@@ -524,7 +524,7 @@
|
||||
else
|
||||
to_chat(usr, "<span class='warning'>No comments found</span>")
|
||||
if(hasHUD(usr, EXAMINE_HUD_SECURITY_WRITE))
|
||||
to_chat(usr, "<a href='?src=[UID()];secrecordadd=`'>\[Add comment\]</a>")
|
||||
to_chat(usr, "<a href='byond://?src=[UID()];secrecordadd=`'>\[Add comment\]</a>")
|
||||
|
||||
if(!read)
|
||||
to_chat(usr, "<span class='warning'>Unable to locate a data core entry for this person.</span>")
|
||||
@@ -601,7 +601,7 @@
|
||||
to_chat(usr, "<b>Major Disabilities:</b> [R.fields["ma_dis"]]")
|
||||
to_chat(usr, "<b>Details:</b> [R.fields["ma_dis_d"]]")
|
||||
to_chat(usr, "<b>Notes:</b> [R.fields["notes"]]")
|
||||
to_chat(usr, "<a href='?src=[UID()];medrecordComment=`'>\[View Comment Log\]</a>")
|
||||
to_chat(usr, "<a href='byond://?src=[UID()];medrecordComment=`'>\[View Comment Log\]</a>")
|
||||
read = 1
|
||||
|
||||
if(!read)
|
||||
@@ -625,7 +625,7 @@
|
||||
to_chat(usr, c)
|
||||
else
|
||||
to_chat(usr, "<span class='warning'>No comment found</span>")
|
||||
to_chat(usr, "<a href='?src=[UID()];medrecordadd=`'>\[Add comment\]</a>")
|
||||
to_chat(usr, "<a href='byond://?src=[UID()];medrecordadd=`'>\[Add comment\]</a>")
|
||||
|
||||
if(!read)
|
||||
to_chat(usr, "<span class='warning'>Unable to locate a data core entry for this person.</span>")
|
||||
|
||||
@@ -86,7 +86,7 @@
|
||||
for(var/P in GLOB.dead_mob_list)
|
||||
var/mob/M = P
|
||||
if((M.client?.prefs.toggles2 & PREFTOGGLE_2_DEATHMESSAGE) && (isobserver(M) || M.stat == DEAD))
|
||||
to_chat(M, "<span class='deadsay'><b>[mind.name]</b> has died at <b>[area_name]</b>. (<a href='?src=[M.UID()];jump=\ref[T]'>JMP</a>)</span>")
|
||||
to_chat(M, "<span class='deadsay'><b>[mind.name]</b> has died at <b>[area_name]</b>. (<a href='byond://?src=[M.UID()];jump=\ref[T]'>JMP</a>)</span>")
|
||||
if(last_words)
|
||||
to_chat(M, "<span class='deadsay'><b>[p_their(TRUE)] last words were:</b> \"[last_words]\"</span>")
|
||||
|
||||
|
||||
@@ -296,8 +296,8 @@ GLOBAL_LIST_INIT(ai_verbs_default, list(
|
||||
status_tab_data = show_borg_info(status_tab_data)
|
||||
|
||||
/mob/living/silicon/ai/proc/ai_alerts()
|
||||
var/list/dat = list("<meta charset='utf-8'><head><title>Current Station Alerts</title><meta http-equiv='Refresh' content='10'></head><body>\n")
|
||||
dat += "<a href='?src=[UID()];mach_close=aialerts'>Close</a><br><br>"
|
||||
var/list/dat = list("<!DOCTYPE html><meta charset='utf-8'><head><title>Current Station Alerts</title><meta http-equiv='Refresh' content='10'></head><body>\n")
|
||||
dat += "<a href='byond://?src=[UID()];mach_close=aialerts'>Close</a><br><br>"
|
||||
var/list/list/temp_alarm_list = GLOB.alarm_manager.alarms.Copy()
|
||||
for(var/cat in temp_alarm_list)
|
||||
if(!(cat in alarms_listend_for))
|
||||
@@ -320,7 +320,7 @@ GLOBAL_LIST_INIT(ai_verbs_default, list(
|
||||
for(var/cam in C)
|
||||
var/obj/machinery/camera/I = locateUID(cam)
|
||||
if(!QDELETED(I))
|
||||
dat2 += "[(dat2 == "") ? "" : " | "]<a href=?src=[UID()];switchcamera=[cam]>[I.c_tag]</A>"
|
||||
dat2 += "[(dat2 == "") ? "" : " | "]<a href=byond://?src=[UID()];switchcamera=[cam]>[I.c_tag]</A>"
|
||||
dat += "-- [area_name] ([(dat2 != "") ? dat2 : "No Camera"])"
|
||||
else
|
||||
dat += "-- [area_name] (No Camera)"
|
||||
@@ -834,7 +834,7 @@ GLOBAL_LIST_INIT(ai_verbs_default, list(
|
||||
|
||||
var/d
|
||||
var/area/bot_area
|
||||
d += "<A HREF=?src=[UID()];botrefresh=\ref[Bot]>Query network status</A><br>"
|
||||
d += "<A href=byond://?src=[UID()];botrefresh=\ref[Bot]>Query network status</A><br>"
|
||||
d += "<table width='100%'><tr><td width='40%'><h3>Name</h3></td><td width='20%'><h3>Status</h3></td><td width='30%'><h3>Location</h3></td><td width='10%'><h3>Control</h3></td></tr>"
|
||||
|
||||
for(var/mob/living/simple_animal/bot/Bot in GLOB.bots_list)
|
||||
@@ -844,8 +844,8 @@ GLOBAL_LIST_INIT(ai_verbs_default, list(
|
||||
//If the bot is on, it will display the bot's current mode status. If the bot is not mode, it will just report "Idle". "Inactive if it is not on at all.
|
||||
d += "<td width='20%'>[Bot.on ? "[Bot.mode ? "<span class='average'>[ Bot.mode_name[Bot.mode] ]</span>": "<span class='good'>Idle</span>"]" : "<span class='bad'>Inactive</span>"]</td>"
|
||||
d += "<td width='30%'>[bot_area.name]</td>"
|
||||
d += "<td width='10%'><A HREF=?src=[UID()];interface=\ref[Bot]>Interface</A></td>"
|
||||
d += "<td width='10%'><A HREF=?src=[UID()];callbot=\ref[Bot]>Call</A></td>"
|
||||
d += "<td width='10%'><A href=byond://?src=[UID()];interface=\ref[Bot]>Interface</A></td>"
|
||||
d += "<td width='10%'><A href=byond://?src=[UID()];callbot=\ref[Bot]>Call</A></td>"
|
||||
d += "</tr>"
|
||||
d = format_text(d)
|
||||
|
||||
@@ -884,14 +884,14 @@ GLOBAL_LIST_INIT(ai_verbs_default, list(
|
||||
if(O)
|
||||
var/obj/machinery/camera/C = locateUID(O[1])
|
||||
if(O.len == 1 && !QDELETED(C) && C.can_use())
|
||||
queueAlarm("--- [class] alarm detected in [A.name]! (<A HREF=?src=[UID()];switchcamera=[O[1]]>[C.c_tag]</A>)", class)
|
||||
queueAlarm("--- [class] alarm detected in [A.name]! (<A href=byond://?src=[UID()];switchcamera=[O[1]]>[C.c_tag]</A>)", class)
|
||||
else if(O && O.len)
|
||||
var/foo = 0
|
||||
var/dat2 = ""
|
||||
for(var/thing in O)
|
||||
var/obj/machinery/camera/I = locateUID(thing)
|
||||
if(!QDELETED(I))
|
||||
dat2 += "[(!foo) ? "" : " | "]<A HREF=?src=[UID()];switchcamera=[thing]>[I.c_tag]</A>" //I'm not fixing this shit...
|
||||
dat2 += "[(!foo) ? "" : " | "]<A href=byond://?src=[UID()];switchcamera=[thing]>[I.c_tag]</A>" //I'm not fixing this shit...
|
||||
foo = 1
|
||||
queueAlarm(text ("--- [] alarm detected in []! ([])", class, A.name, dat2), class)
|
||||
else
|
||||
|
||||
@@ -99,7 +99,7 @@ GLOBAL_VAR_INIT(announcing_vox, 0) // Stores the time of the last announcement
|
||||
var/list/localdat = list()
|
||||
var/uid_cache = UID() // Saves proc jumping
|
||||
for(var/word in word_list)
|
||||
localdat += "<a href='?src=[uid_cache];say_word=[word]'>[word]</a>"
|
||||
localdat += "<a href='byond://?src=[uid_cache];say_word=[word]'>[word]</a>"
|
||||
return localdat.Join(" / ")
|
||||
|
||||
/mob/living/silicon/ai/proc/ai_announcement()
|
||||
|
||||
@@ -354,7 +354,7 @@ GLOBAL_DATUM_INIT(paiController, /datum/paiController, new) // Global handler fo
|
||||
if(O.client && (ROLE_PAI in O.client.prefs.be_special))
|
||||
if(player_old_enough_antag(O.client,ROLE_PAI))
|
||||
if(check_recruit(O))
|
||||
to_chat(O, "<span class='boldnotice'>A pAI card activated by [user.real_name] is looking for personalities. (<a href='?src=[O.UID()];jump=\ref[P]'>Teleport</a> | <a href='?src=[UID()];signup=\ref[O]'>Sign Up</a>)</span>")
|
||||
to_chat(O, "<span class='boldnotice'>A pAI card activated by [user.real_name] is looking for personalities. (<a href='byond://?src=[O.UID()];jump=\ref[P]'>Teleport</a> | <a href='byond://?src=[UID()];signup=\ref[O]'>Sign Up</a>)</span>")
|
||||
//question(O.client)
|
||||
|
||||
/datum/paiController/proc/check_recruit(mob/dead/observer/O)
|
||||
|
||||
@@ -169,7 +169,7 @@
|
||||
if(alarm_types_show["Power"])
|
||||
msg += "POWER: [alarm_types_show["Power"]] alarms detected. - "
|
||||
|
||||
msg += "<A href=?src=[UID()];showalerts=1'>\[Show Alerts\]</a>"
|
||||
msg += "<A href=byond://?src=[UID()];showalerts=1'>\[Show Alerts\]</a>"
|
||||
var/msg_text = msg.Join("")
|
||||
to_chat(src, msg_text)
|
||||
|
||||
@@ -192,7 +192,7 @@
|
||||
if(alarm_types_clear["Power"])
|
||||
msg += "POWER: [alarm_types_clear["Power"]] alarms cleared. - "
|
||||
|
||||
msg += "<A href=?src=[UID()];showalerts=1'>\[Show Alerts\]</a>"
|
||||
msg += "<A href=byond://?src=[UID()];showalerts=1'>\[Show Alerts\]</a>"
|
||||
|
||||
var/msg_text = msg.Join("")
|
||||
to_chat(src, msg_text)
|
||||
|
||||
@@ -1011,9 +1011,9 @@ Pass a positive integer as an argument to override a bot's default speed.
|
||||
var/hack
|
||||
if(issilicon(user) || user.can_admin_interact()) // Allows silicons or admins to toggle the emag status of a bot.
|
||||
hack += "[emagged ? "Software compromised! Unit may exhibit dangerous or erratic behavior." : "Unit operating normally. Release safety lock?"]<BR>"
|
||||
hack += "Harm Prevention Safety System: <A href='?src=[UID()];operation=hack'>[emagged ? "<span class='bad'>DANGER</span>" : "Engaged"]</A><BR>"
|
||||
hack += "Harm Prevention Safety System: <A href='byond://?src=[UID()];operation=hack'>[emagged ? "<span class='bad'>DANGER</span>" : "Engaged"]</A><BR>"
|
||||
else if(!locked) // Humans with access can use this option to hide a bot from the AI's remote control panel and PDA control.
|
||||
hack += "Remote network control radio: <A href='?src=[UID()];operation=remote'>[remote_disabled ? "Disconnected" : "Connected"]</A><BR>"
|
||||
hack += "Remote network control radio: <A href='byond://?src=[UID()];operation=remote'>[remote_disabled ? "Disconnected" : "Connected"]</A><BR>"
|
||||
return hack
|
||||
|
||||
/mob/living/simple_animal/bot/proc/showpai(mob/user)
|
||||
@@ -1023,9 +1023,9 @@ Pass a positive integer as an argument to override a bot's default speed.
|
||||
eject += "Personality card status: "
|
||||
if(paicard)
|
||||
if(client)
|
||||
eject += "<A href='?src=[UID()];operation=ejectpai'>Active</A>"
|
||||
eject += "<A href='byond://?src=[UID()];operation=ejectpai'>Active</A>"
|
||||
else
|
||||
eject += "<A href='?src=[UID()];operation=ejectpai'>Inactive</A>"
|
||||
eject += "<A href='byond://?src=[UID()];operation=ejectpai'>Inactive</A>"
|
||||
else if(!allow_pai || key)
|
||||
eject += "Unavailable"
|
||||
else
|
||||
|
||||
@@ -305,31 +305,31 @@
|
||||
dat += "<b>Power level:</b> [cell ? cell.percent() : 0]%"
|
||||
|
||||
if(locked && !ai && !user.can_admin_interact())
|
||||
dat += " <br /><div class='notice'>Controls are locked</div><A href='?src=[UID()];op=unlock'>Unlock Controls</A>"
|
||||
dat += " <br /><div class='notice'>Controls are locked</div><A href='byond://?src=[UID()];op=unlock'>Unlock Controls</A>"
|
||||
else
|
||||
dat += " <br /><div class='notice'>Controls are unlocked</div><A href='?src=[UID()];op=lock'>Lock Controls</A><BR><BR>"
|
||||
dat += " <br /><div class='notice'>Controls are unlocked</div><A href='byond://?src=[UID()];op=lock'>Lock Controls</A><BR><BR>"
|
||||
|
||||
dat += "<A href='?src=[UID()];op=power'>Toggle Power</A><BR>"
|
||||
dat += "<A href='?src=[UID()];op=stop'>Stop</A><BR>"
|
||||
dat += "<A href='?src=[UID()];op=go'>Proceed</A><BR>"
|
||||
dat += "<A href='?src=[UID()];op=home'>Return to Home</A><BR>"
|
||||
dat += "<A href='?src=[UID()];op=destination'>Set Destination</A><BR>"
|
||||
dat += "<A href='?src=[UID()];op=setid'>Set Bot ID</A><BR>"
|
||||
dat += "<A href='?src=[UID()];op=sethome'>Set Home</A><BR>"
|
||||
dat += "<A href='?src=[UID()];op=autoret'>Toggle Auto Return Home</A> ([auto_return ? "On":"Off"])<BR>"
|
||||
dat += "<A href='?src=[UID()];op=autopick'>Toggle Auto Pickup Crate</A> ([auto_pickup ? "On":"Off"])<BR>"
|
||||
dat += "<A href='?src=[UID()];op=report'>Toggle Delivery Reporting</A> ([report_delivery ? "On" : "Off"])<BR>"
|
||||
dat += "<A href='byond://?src=[UID()];op=power'>Toggle Power</A><BR>"
|
||||
dat += "<A href='byond://?src=[UID()];op=stop'>Stop</A><BR>"
|
||||
dat += "<A href='byond://?src=[UID()];op=go'>Proceed</A><BR>"
|
||||
dat += "<A href='byond://?src=[UID()];op=home'>Return to Home</A><BR>"
|
||||
dat += "<A href='byond://?src=[UID()];op=destination'>Set Destination</A><BR>"
|
||||
dat += "<A href='byond://?src=[UID()];op=setid'>Set Bot ID</A><BR>"
|
||||
dat += "<A href='byond://?src=[UID()];op=sethome'>Set Home</A><BR>"
|
||||
dat += "<A href='byond://?src=[UID()];op=autoret'>Toggle Auto Return Home</A> ([auto_return ? "On":"Off"])<BR>"
|
||||
dat += "<A href='byond://?src=[UID()];op=autopick'>Toggle Auto Pickup Crate</A> ([auto_pickup ? "On":"Off"])<BR>"
|
||||
dat += "<A href='byond://?src=[UID()];op=report'>Toggle Delivery Reporting</A> ([report_delivery ? "On" : "Off"])<BR>"
|
||||
if(load)
|
||||
dat += "<A href='?src=[UID()];op=unload'>Unload Now</A><BR>"
|
||||
dat += "<A href='byond://?src=[UID()];op=unload'>Unload Now</A><BR>"
|
||||
dat += "<div class='notice'>The maintenance hatch is closed.</div>"
|
||||
else
|
||||
if(!ai)
|
||||
dat += "<div class='notice'>The maintenance hatch is open.</div><BR>"
|
||||
dat += "<b>Power cell:</b> "
|
||||
if(cell)
|
||||
dat += "<A href='?src=[UID()];op=cellremove'>Installed</A><BR>"
|
||||
dat += "<A href='byond://?src=[UID()];op=cellremove'>Installed</A><BR>"
|
||||
else
|
||||
dat += "<A href='?src=[UID()];op=cellinsert'>Removed</A><BR>"
|
||||
dat += "<A href='byond://?src=[UID()];op=cellinsert'>Removed</A><BR>"
|
||||
|
||||
wires.Interact(user)
|
||||
else
|
||||
|
||||
@@ -237,7 +237,7 @@ While using this makes the system rely on OnFire, it still gives options for tim
|
||||
mychild.key = elitemind.key
|
||||
mychild.sentience_act()
|
||||
dust_if_respawnable(elitemind)
|
||||
notify_ghosts("\A [mychild] has been awakened in \the [get_area(src)]!", enter_link="<a href=?src=[UID()];follow=1>(Click to help)</a>", source = mychild, action = NOTIFY_FOLLOW)
|
||||
notify_ghosts("\A [mychild] has been awakened in \the [get_area(src)]!", enter_link="<a href=byond://?src=[UID()];follow=1>(Click to help)</a>", source = mychild, action = NOTIFY_FOLLOW)
|
||||
icon_state = "tumor_popped"
|
||||
RegisterSignal(mychild, COMSIG_PARENT_QDELETING, PROC_REF(onEliteLoss))
|
||||
INVOKE_ASYNC(src, PROC_REF(arena_checks))
|
||||
@@ -252,7 +252,7 @@ While using this makes the system rely on OnFire, it still gives options for tim
|
||||
mychild.maxHealth = mychild.maxHealth * 2.5
|
||||
mychild.health = mychild.maxHealth
|
||||
mychild.grab_ghost()
|
||||
notify_ghosts("\A [mychild] has been challenged in \the [get_area(src)]!", enter_link="<a href=?src=[UID()];follow=1>(Click to help)</a>", source = mychild, action = NOTIFY_FOLLOW)
|
||||
notify_ghosts("\A [mychild] has been challenged in \the [get_area(src)]!", enter_link="<a href=byond://?src=[UID()];follow=1>(Click to help)</a>", source = mychild, action = NOTIFY_FOLLOW)
|
||||
INVOKE_ASYNC(src, PROC_REF(arena_checks))
|
||||
AddComponent(/datum/component/proximity_monitor, ARENA_RADIUS)
|
||||
|
||||
|
||||
@@ -293,7 +293,7 @@ GLOBAL_LIST_EMPTY(ts_infected_list)
|
||||
notify_ghosts("[src] (player controlled) has appeared in [get_area(src)].")
|
||||
else if(ai_playercontrol_allowtype)
|
||||
var/image/alert_overlay = image('icons/mob/terrorspider.dmi', icon_state)
|
||||
notify_ghosts("[src] has appeared in [get_area(src)].", enter_link = "<a href=?src=[UID()];activate=1>(Click to control)</a>", source = src, alert_overlay = alert_overlay, action = NOTIFY_ATTACK)
|
||||
notify_ghosts("[src] has appeared in [get_area(src)].", enter_link = "<a href=byond://?src=[UID()];activate=1>(Click to control)</a>", source = src, alert_overlay = alert_overlay, action = NOTIFY_ATTACK)
|
||||
|
||||
/mob/living/simple_animal/hostile/poison/terror_spider/Destroy()
|
||||
GLOB.ts_spiderlist -= src
|
||||
|
||||
@@ -23,10 +23,10 @@
|
||||
alert("You have logged in already with another key this round, please log out of this one NOW or risk being banned!")
|
||||
if(matches)
|
||||
if(M.client)
|
||||
message_admins("<font color='red'><B>Notice: </B><font color='#EB4E00'><A href='?src=[usr.UID()];priv_msg=[src.client.ckey]'>[key_name_admin(src)]</A> has the same [matches] as <A href='?src=[usr.UID()];priv_msg=[M.client.ckey]'>[key_name_admin(M)]</A>.</font>", 1)
|
||||
message_admins("<font color='red'><B>Notice: </B><font color='#EB4E00'><A href='byond://?src=[usr.UID()];priv_msg=[src.client.ckey]'>[key_name_admin(src)]</A> has the same [matches] as <A href='byond://?src=[usr.UID()];priv_msg=[M.client.ckey]'>[key_name_admin(M)]</A>.</font>", 1)
|
||||
log_adminwarn("Notice: [key_name(src)] has the same [matches] as [key_name(M)].")
|
||||
else
|
||||
message_admins("<font color='red'><B>Notice: </B><font color='#EB4E00'><A href='?src=[usr.UID()];priv_msg=[src.client.ckey]'>[key_name_admin(src)]</A> has the same [matches] as [key_name_admin(M)] (no longer logged in). </font>", 1)
|
||||
message_admins("<font color='red'><B>Notice: </B><font color='#EB4E00'><A href='byond://?src=[usr.UID()];priv_msg=[src.client.ckey]'>[key_name_admin(src)]</A> has the same [matches] as [key_name_admin(M)] (no longer logged in). </font>", 1)
|
||||
log_adminwarn("Notice: [key_name(src)] has the same [matches] as [key_name(M)] (no longer logged in).")
|
||||
|
||||
/mob/Login()
|
||||
|
||||
@@ -31,7 +31,7 @@
|
||||
privacy_consent()
|
||||
|
||||
/mob/new_player/proc/privacy_consent()
|
||||
var/output = GLOB.join_tos
|
||||
var/output = "<!DOCTYPE html>[GLOB.join_tos]"
|
||||
// Dont blank out the other window. This one is read only.
|
||||
if(!GLOB.configuration.system.external_tos_handler)
|
||||
src << browse(null, "window=playersetup")
|
||||
|
||||
Reference in New Issue
Block a user