mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-13 11:43:31 +00:00
- A change to 'who' for admins, which now displays more information. Amongst these is the ckey of the person, the name of the character they're playing, their status as alive, unconscious, dead or observing (joined as observer) and whether they are an antagonist or not. Along with this you get an adminhelp-style (?) link which displays further information about the person. While this might not be considered a 'bugfix' it is necessary due to the removal of the tensioner panel as it gives a quick overview of how many people are alive and how many are dead.
- Removed the obnoxious message blue and red colors which was shown when hydroponics trays were overran by weeds. The message is now blue and has a dot at the end, instead of an exclamation point. - Made '/obj/effect/debugging/marker' immovable. It was silly that it reacted to air movement. - Standardized mapping.dm - Removed the round-end condition of "Everyone is dead! Resetting in 30 seconds!" git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4415 316c924e-a436-60f5-8080-3fe189b3f50e
This commit is contained in:
@@ -12,4 +12,5 @@
|
|||||||
// var/mob/corpse = null // observer mode //we use mind.current as the 'corpse' now
|
// var/mob/corpse = null // observer mode //we use mind.current as the 'corpse' now
|
||||||
var/can_reenter_corpse
|
var/can_reenter_corpse
|
||||||
var/datum/hud/living/carbon/hud = null // hud
|
var/datum/hud/living/carbon/hud = null // hud
|
||||||
var/bootime = 0
|
var/bootime = 0
|
||||||
|
var/started_as_observer //This variable is set to 1 when you enter the game as an observer. If you died in the game and are a ghsot - this will remain as null. Note that this is not a reliable way to determine if admins started as observers, since they change mobs a lot.
|
||||||
@@ -218,9 +218,8 @@ obj/machinery/hydroponics/proc/weedinvasion() // If a weed growth is sufficient,
|
|||||||
src.harvest = 0
|
src.harvest = 0
|
||||||
src.weedlevel = 0 // Reset
|
src.weedlevel = 0 // Reset
|
||||||
src.pestlevel = 0 // Reset
|
src.pestlevel = 0 // Reset
|
||||||
spawn(5) // Wait a while
|
|
||||||
src.updateicon()
|
src.updateicon()
|
||||||
src.visible_message("\red[src] has been overtaken by \blue [src.myseed.plantname]!")
|
src.visible_message("\blue [src] has been overtaken by [src.myseed.plantname].")
|
||||||
|
|
||||||
return
|
return
|
||||||
|
|
||||||
|
|||||||
@@ -26,10 +26,32 @@ proc/get_all_admin_clients()
|
|||||||
var/list/peeps = list()
|
var/list/peeps = list()
|
||||||
|
|
||||||
for (var/client/C in client_list)
|
for (var/client/C in client_list)
|
||||||
|
var/entry = ""
|
||||||
if (C.stealth && !usr.client.holder)
|
if (C.stealth && !usr.client.holder)
|
||||||
peeps += "\t[C.fakekey]"
|
entry += "\t[C.fakekey]"
|
||||||
else
|
else
|
||||||
peeps += "\t[C.key][C.stealth ? " <i>(as [C.fakekey])</i>" : ""]"
|
entry += "\t[C.key][C.stealth ? " <i>(as [C.fakekey])</i>" : ""]"
|
||||||
|
|
||||||
|
if(usr.client.holder)
|
||||||
|
var/mob/M = C.mob
|
||||||
|
entry += " - Playing as [M.real_name]"
|
||||||
|
switch(M.stat)
|
||||||
|
if(UNCONSCIOUS)
|
||||||
|
entry += " - <font color='darkgray'><b>Unconscious</b></font>"
|
||||||
|
if(DEAD)
|
||||||
|
if(isobserver(M))
|
||||||
|
var/mob/dead/observer/O = M
|
||||||
|
if(O.started_as_observer)
|
||||||
|
entry += " - <font color='gray'>Observing</font>"
|
||||||
|
else
|
||||||
|
entry += " - <font color='black'><b>DEAD</b></font>"
|
||||||
|
else
|
||||||
|
entry += " - <font color='black'><b>DEAD</b></font>"
|
||||||
|
if(is_special_character(C.mob))
|
||||||
|
entry += " - <b><font color='red'>Antagonist</font></b>"
|
||||||
|
entry += " (<A HREF='?src=\ref[src.client.holder];adminmoreinfo=\ref[M]'>?</A>)"
|
||||||
|
|
||||||
|
peeps += entry
|
||||||
|
|
||||||
peeps = sortList(peeps)
|
peeps = sortList(peeps)
|
||||||
|
|
||||||
|
|||||||
@@ -34,183 +34,184 @@ var/intercom_range_display_status = 0
|
|||||||
icon = 'icons/turf/areas.dmi'
|
icon = 'icons/turf/areas.dmi'
|
||||||
icon_state = "yellow"
|
icon_state = "yellow"
|
||||||
|
|
||||||
/client/proc
|
/obj/effect/debugging/marker/Move()
|
||||||
|
return 0
|
||||||
|
|
||||||
do_not_use_these()
|
/client/proc/do_not_use_these()
|
||||||
set category = "Mapping"
|
set category = "Mapping"
|
||||||
set name = "-None of these are for ingame use!!"
|
set name = "-None of these are for ingame use!!"
|
||||||
|
|
||||||
..()
|
..()
|
||||||
|
|
||||||
camera_view()
|
/client/proc/camera_view()
|
||||||
set category = "Mapping"
|
set category = "Mapping"
|
||||||
set name = "Camera Range Display"
|
set name = "Camera Range Display"
|
||||||
|
|
||||||
if(camera_range_display_status)
|
if(camera_range_display_status)
|
||||||
camera_range_display_status = 0
|
camera_range_display_status = 0
|
||||||
else
|
else
|
||||||
camera_range_display_status = 1
|
camera_range_display_status = 1
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
for(var/obj/effect/debugging/camera_range/C in world)
|
for(var/obj/effect/debugging/camera_range/C in world)
|
||||||
del(C)
|
del(C)
|
||||||
|
|
||||||
if(camera_range_display_status)
|
|
||||||
for(var/obj/machinery/camera/C in Cameras)
|
|
||||||
new/obj/effect/debugging/camera_range(C.loc)
|
|
||||||
feedback_add_details("admin_verb","mCRD") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
sec_camera_report()
|
|
||||||
set category = "Mapping"
|
|
||||||
set name = "Camera Report"
|
|
||||||
|
|
||||||
if(!master_controller)
|
|
||||||
alert(usr,"Master_controller not found.","Sec Camera Report")
|
|
||||||
return 0
|
|
||||||
|
|
||||||
var/list/obj/machinery/camera/CL = list()
|
|
||||||
|
|
||||||
|
if(camera_range_display_status)
|
||||||
for(var/obj/machinery/camera/C in Cameras)
|
for(var/obj/machinery/camera/C in Cameras)
|
||||||
CL += C
|
new/obj/effect/debugging/camera_range(C.loc)
|
||||||
|
feedback_add_details("admin_verb","mCRD") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||||
|
|
||||||
var/output = {"<B>CAMERA ANNOMALITIES REPORT</B><HR>
|
|
||||||
|
|
||||||
|
/client/proc/sec_camera_report()
|
||||||
|
set category = "Mapping"
|
||||||
|
set name = "Camera Report"
|
||||||
|
|
||||||
|
if(!master_controller)
|
||||||
|
alert(usr,"Master_controller not found.","Sec Camera Report")
|
||||||
|
return 0
|
||||||
|
|
||||||
|
var/list/obj/machinery/camera/CL = list()
|
||||||
|
|
||||||
|
for(var/obj/machinery/camera/C in Cameras)
|
||||||
|
CL += C
|
||||||
|
|
||||||
|
var/output = {"<B>CAMERA ANNOMALITIES REPORT</B><HR>
|
||||||
<B>The following annomalities have been detected. The ones in red need immediate attention: Some of those in black may be intentional.</B><BR><ul>"}
|
<B>The following annomalities have been detected. The ones in red need immediate attention: Some of those in black may be intentional.</B><BR><ul>"}
|
||||||
|
|
||||||
for(var/obj/machinery/camera/C1 in CL)
|
for(var/obj/machinery/camera/C1 in CL)
|
||||||
for(var/obj/machinery/camera/C2 in CL)
|
for(var/obj/machinery/camera/C2 in CL)
|
||||||
if(C1 != C2)
|
if(C1 != C2)
|
||||||
if(C1.c_tag == C2.c_tag)
|
if(C1.c_tag == C2.c_tag)
|
||||||
output += "<li><font color='red'>c_tag match for sec. cameras at \[[C1.x], [C1.y], [C1.z]\] ([C1.loc.loc]) and \[[C2.x], [C2.y], [C2.z]\] ([C2.loc.loc]) - c_tag is [C1.c_tag]</font></li>"
|
output += "<li><font color='red'>c_tag match for sec. cameras at \[[C1.x], [C1.y], [C1.z]\] ([C1.loc.loc]) and \[[C2.x], [C2.y], [C2.z]\] ([C2.loc.loc]) - c_tag is [C1.c_tag]</font></li>"
|
||||||
if(C1.loc == C2.loc && C1.dir == C2.dir && C1.pixel_x == C2.pixel_x && C1.pixel_y == C2.pixel_y)
|
if(C1.loc == C2.loc && C1.dir == C2.dir && C1.pixel_x == C2.pixel_x && C1.pixel_y == C2.pixel_y)
|
||||||
output += "<li><font color='red'>FULLY overlapping sec. cameras at \[[C1.x], [C1.y], [C1.z]\] ([C1.loc.loc]) Networks: [C1.network] and [C2.network]</font></li>"
|
output += "<li><font color='red'>FULLY overlapping sec. cameras at \[[C1.x], [C1.y], [C1.z]\] ([C1.loc.loc]) Networks: [C1.network] and [C2.network]</font></li>"
|
||||||
if(C1.loc == C2.loc)
|
if(C1.loc == C2.loc)
|
||||||
output += "<li>overlapping sec. cameras at \[[C1.x], [C1.y], [C1.z]\] ([C1.loc.loc]) Networks: [C1.network] and [C2.network]</font></li>"
|
output += "<li>overlapping sec. cameras at \[[C1.x], [C1.y], [C1.z]\] ([C1.loc.loc]) Networks: [C1.network] and [C2.network]</font></li>"
|
||||||
var/turf/T = get_step(C1,turn(C1.dir,180))
|
var/turf/T = get_step(C1,turn(C1.dir,180))
|
||||||
if(!T || !isturf(T) || !T.density )
|
if(!T || !isturf(T) || !T.density )
|
||||||
if(!(locate(/obj/structure/grille,T)))
|
if(!(locate(/obj/structure/grille,T)))
|
||||||
var/window_check = 0
|
var/window_check = 0
|
||||||
for(var/obj/structure/window/W in T)
|
for(var/obj/structure/window/W in T)
|
||||||
if (W.dir == turn(C1.dir,180) || W.dir in list(5,6,9,10) )
|
if (W.dir == turn(C1.dir,180) || W.dir in list(5,6,9,10) )
|
||||||
window_check = 1
|
window_check = 1
|
||||||
break
|
|
||||||
if(!window_check)
|
|
||||||
output += "<li><font color='red'>Camera not connected to wall at \[[C1.x], [C1.y], [C1.z]\] ([C1.loc.loc]) Network: [C1.network]</color></li>"
|
|
||||||
|
|
||||||
output += "</ul>"
|
|
||||||
usr << browse(output,"window=airreport;size=1000x500")
|
|
||||||
feedback_add_details("admin_verb","mCRP") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
|
||||||
|
|
||||||
intercom_view()
|
|
||||||
set category = "Mapping"
|
|
||||||
set name = "Intercom Range Display"
|
|
||||||
|
|
||||||
if(intercom_range_display_status)
|
|
||||||
intercom_range_display_status = 0
|
|
||||||
else
|
|
||||||
intercom_range_display_status = 1
|
|
||||||
|
|
||||||
for(var/obj/effect/debugging/marker/M in world)
|
|
||||||
del(M)
|
|
||||||
|
|
||||||
if(intercom_range_display_status)
|
|
||||||
for(var/obj/item/device/radio/intercom/I in world)
|
|
||||||
for(var/turf/T in orange(7,I))
|
|
||||||
var/obj/effect/debugging/marker/F = new/obj/effect/debugging/marker(T)
|
|
||||||
if (!(F in view(7,I.loc)))
|
|
||||||
del(F)
|
|
||||||
feedback_add_details("admin_verb","mIRD") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
|
||||||
|
|
||||||
enable_debug_verbs()
|
|
||||||
set category = "Debug"
|
|
||||||
set name = "Debug verbs"
|
|
||||||
src.verbs += /client/proc/do_not_use_these //-errorage
|
|
||||||
src.verbs += /client/proc/camera_view //-errorage
|
|
||||||
src.verbs += /client/proc/sec_camera_report //-errorage
|
|
||||||
src.verbs += /client/proc/intercom_view //-errorage
|
|
||||||
src.verbs += /client/proc/air_status //Air things
|
|
||||||
src.verbs += /client/proc/Cell //More air things
|
|
||||||
src.verbs += /client/proc/atmosscan //check plumbing
|
|
||||||
src.verbs += /client/proc/powerdebug //check power
|
|
||||||
src.verbs += /client/proc/count_objects_on_z_level
|
|
||||||
src.verbs += /client/proc/count_objects_all
|
|
||||||
src.verbs += /client/proc/cmd_assume_direct_control //-errorage
|
|
||||||
src.verbs += /client/proc/jump_to_dead_group
|
|
||||||
src.verbs += /client/proc/startSinglo
|
|
||||||
src.verbs += /client/proc/ticklag //allows you to set the ticklag.
|
|
||||||
src.verbs += /client/proc/cmd_admin_grantfullaccess
|
|
||||||
//src.verbs += /client/proc/cmd_admin_rejuvenate
|
|
||||||
|
|
||||||
feedback_add_details("admin_verb","mDV") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
|
||||||
|
|
||||||
count_objects_on_z_level()
|
|
||||||
set category = "Mapping"
|
|
||||||
set name = "Count Objects On Level"
|
|
||||||
var/level = input("Which z-level?","Level?") as text
|
|
||||||
if(!level) return
|
|
||||||
var/num_level = text2num(level)
|
|
||||||
if(!num_level) return
|
|
||||||
if(!isnum(num_level)) return
|
|
||||||
|
|
||||||
var/type_text = input("Which type path?","Path?") as text
|
|
||||||
if(!type_text) return
|
|
||||||
var/type_path = text2path(type_text)
|
|
||||||
if(!type_path) return
|
|
||||||
|
|
||||||
var/count = 0
|
|
||||||
|
|
||||||
var/list/atom/atom_list = list()
|
|
||||||
|
|
||||||
for(var/atom/A in world)
|
|
||||||
if(istype(A,type_path))
|
|
||||||
var/atom/B = A
|
|
||||||
while(!(isturf(B.loc)))
|
|
||||||
if(B && B.loc)
|
|
||||||
B = B.loc
|
|
||||||
else
|
|
||||||
break
|
break
|
||||||
if(B)
|
if(!window_check)
|
||||||
if(B.z == num_level)
|
output += "<li><font color='red'>Camera not connected to wall at \[[C1.x], [C1.y], [C1.z]\] ([C1.loc.loc]) Network: [C1.network]</color></li>"
|
||||||
count++
|
|
||||||
atom_list += A
|
|
||||||
/*
|
|
||||||
var/atom/temp_atom
|
|
||||||
for(var/i = 0; i <= (atom_list.len/10); i++)
|
|
||||||
var/line = ""
|
|
||||||
for(var/j = 1; j <= 10; j++)
|
|
||||||
if(i*10+j <= atom_list.len)
|
|
||||||
temp_atom = atom_list[i*10+j]
|
|
||||||
line += " no.[i+10+j]@\[[temp_atom.x], [temp_atom.y], [temp_atom.z]\]; "
|
|
||||||
world << line*/
|
|
||||||
|
|
||||||
world << "There are [count] objects of type [type_path] on z-level [num_level]"
|
output += "</ul>"
|
||||||
feedback_add_details("admin_verb","mOBJZ") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
usr << browse(output,"window=airreport;size=1000x500")
|
||||||
|
feedback_add_details("admin_verb","mCRP") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||||
|
|
||||||
count_objects_all()
|
/client/proc/intercom_view()
|
||||||
set category = "Mapping"
|
set category = "Mapping"
|
||||||
set name = "Count Objects All"
|
set name = "Intercom Range Display"
|
||||||
|
|
||||||
var/type_text = input("Which type path?","") as text
|
if(intercom_range_display_status)
|
||||||
if(!type_text) return
|
intercom_range_display_status = 0
|
||||||
var/type_path = text2path(type_text)
|
else
|
||||||
if(!type_path) return
|
intercom_range_display_status = 1
|
||||||
|
|
||||||
var/count = 0
|
for(var/obj/effect/debugging/marker/M in world)
|
||||||
|
del(M)
|
||||||
|
|
||||||
for(var/atom/A in world)
|
if(intercom_range_display_status)
|
||||||
if(istype(A,type_path))
|
for(var/obj/item/device/radio/intercom/I in world)
|
||||||
count++
|
for(var/turf/T in orange(7,I))
|
||||||
/*
|
var/obj/effect/debugging/marker/F = new/obj/effect/debugging/marker(T)
|
||||||
var/atom/temp_atom
|
if (!(F in view(7,I.loc)))
|
||||||
for(var/i = 0; i <= (atom_list.len/10); i++)
|
del(F)
|
||||||
var/line = ""
|
feedback_add_details("admin_verb","mIRD") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||||
for(var/j = 1; j <= 10; j++)
|
|
||||||
if(i*10+j <= atom_list.len)
|
|
||||||
temp_atom = atom_list[i*10+j]
|
|
||||||
line += " no.[i+10+j]@\[[temp_atom.x], [temp_atom.y], [temp_atom.z]\]; "
|
|
||||||
world << line*/
|
|
||||||
|
|
||||||
world << "There are [count] objects of type [type_path] in the game world"
|
/client/proc/enable_debug_verbs()
|
||||||
feedback_add_details("admin_verb","mOBJ") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
set category = "Debug"
|
||||||
|
set name = "Debug verbs"
|
||||||
|
src.verbs += /client/proc/do_not_use_these //-errorage
|
||||||
|
src.verbs += /client/proc/camera_view //-errorage
|
||||||
|
src.verbs += /client/proc/sec_camera_report //-errorage
|
||||||
|
src.verbs += /client/proc/intercom_view //-errorage
|
||||||
|
src.verbs += /client/proc/air_status //Air things
|
||||||
|
src.verbs += /client/proc/Cell //More air things
|
||||||
|
src.verbs += /client/proc/atmosscan //check plumbing
|
||||||
|
src.verbs += /client/proc/powerdebug //check power
|
||||||
|
src.verbs += /client/proc/count_objects_on_z_level
|
||||||
|
src.verbs += /client/proc/count_objects_all
|
||||||
|
src.verbs += /client/proc/cmd_assume_direct_control //-errorage
|
||||||
|
src.verbs += /client/proc/jump_to_dead_group
|
||||||
|
src.verbs += /client/proc/startSinglo
|
||||||
|
src.verbs += /client/proc/ticklag //allows you to set the ticklag.
|
||||||
|
src.verbs += /client/proc/cmd_admin_grantfullaccess
|
||||||
|
//src.verbs += /client/proc/cmd_admin_rejuvenate
|
||||||
|
|
||||||
|
feedback_add_details("admin_verb","mDV") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||||
|
|
||||||
|
/client/proc/count_objects_on_z_level()
|
||||||
|
set category = "Mapping"
|
||||||
|
set name = "Count Objects On Level"
|
||||||
|
var/level = input("Which z-level?","Level?") as text
|
||||||
|
if(!level) return
|
||||||
|
var/num_level = text2num(level)
|
||||||
|
if(!num_level) return
|
||||||
|
if(!isnum(num_level)) return
|
||||||
|
|
||||||
|
var/type_text = input("Which type path?","Path?") as text
|
||||||
|
if(!type_text) return
|
||||||
|
var/type_path = text2path(type_text)
|
||||||
|
if(!type_path) return
|
||||||
|
|
||||||
|
var/count = 0
|
||||||
|
|
||||||
|
var/list/atom/atom_list = list()
|
||||||
|
|
||||||
|
for(var/atom/A in world)
|
||||||
|
if(istype(A,type_path))
|
||||||
|
var/atom/B = A
|
||||||
|
while(!(isturf(B.loc)))
|
||||||
|
if(B && B.loc)
|
||||||
|
B = B.loc
|
||||||
|
else
|
||||||
|
break
|
||||||
|
if(B)
|
||||||
|
if(B.z == num_level)
|
||||||
|
count++
|
||||||
|
atom_list += A
|
||||||
|
/*
|
||||||
|
var/atom/temp_atom
|
||||||
|
for(var/i = 0; i <= (atom_list.len/10); i++)
|
||||||
|
var/line = ""
|
||||||
|
for(var/j = 1; j <= 10; j++)
|
||||||
|
if(i*10+j <= atom_list.len)
|
||||||
|
temp_atom = atom_list[i*10+j]
|
||||||
|
line += " no.[i+10+j]@\[[temp_atom.x], [temp_atom.y], [temp_atom.z]\]; "
|
||||||
|
world << line*/
|
||||||
|
|
||||||
|
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()
|
||||||
|
set category = "Mapping"
|
||||||
|
set name = "Count Objects All"
|
||||||
|
|
||||||
|
var/type_text = input("Which type path?","") as text
|
||||||
|
if(!type_text) return
|
||||||
|
var/type_path = text2path(type_text)
|
||||||
|
if(!type_path) return
|
||||||
|
|
||||||
|
var/count = 0
|
||||||
|
|
||||||
|
for(var/atom/A in world)
|
||||||
|
if(istype(A,type_path))
|
||||||
|
count++
|
||||||
|
/*
|
||||||
|
var/atom/temp_atom
|
||||||
|
for(var/i = 0; i <= (atom_list.len/10); i++)
|
||||||
|
var/line = ""
|
||||||
|
for(var/j = 1; j <= 10; j++)
|
||||||
|
if(i*10+j <= atom_list.len)
|
||||||
|
temp_atom = atom_list[i*10+j]
|
||||||
|
line += " no.[i+10+j]@\[[temp_atom.x], [temp_atom.y], [temp_atom.z]\]; "
|
||||||
|
world << line*/
|
||||||
|
|
||||||
|
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!
|
||||||
@@ -50,31 +50,6 @@
|
|||||||
/mob/proc/death(gibbed)
|
/mob/proc/death(gibbed)
|
||||||
timeofdeath = world.time
|
timeofdeath = world.time
|
||||||
|
|
||||||
var/cancel = 0
|
|
||||||
for(var/mob/M in player_list)
|
|
||||||
if(M.stat != DEAD)
|
|
||||||
cancel = 1
|
|
||||||
break
|
|
||||||
if(!cancel)
|
|
||||||
world << "<B>Everyone is dead! Resetting in 30 seconds!</B>"
|
|
||||||
|
|
||||||
spawn(300)
|
|
||||||
for(var/mob/M in player_list)
|
|
||||||
if(M.stat != DEAD)
|
|
||||||
world << "Aborting world restart!"
|
|
||||||
return
|
|
||||||
|
|
||||||
feedback_set_details("end_error","no live players")
|
|
||||||
|
|
||||||
if(blackbox)
|
|
||||||
blackbox.save_all_data_to_sql()
|
|
||||||
|
|
||||||
sleep(50)
|
|
||||||
|
|
||||||
log_game("Rebooting because of no live players")
|
|
||||||
world.Reboot()
|
|
||||||
return
|
|
||||||
|
|
||||||
living_mob_list -= src
|
living_mob_list -= src
|
||||||
dead_mob_list += src
|
dead_mob_list += src
|
||||||
return ..(gibbed)
|
return ..(gibbed)
|
||||||
|
|||||||
@@ -130,6 +130,7 @@
|
|||||||
spawning = 1
|
spawning = 1
|
||||||
src << sound(null, repeat = 0, wait = 0, volume = 85, channel = 1) // MAD JAMS cant last forever yo
|
src << sound(null, repeat = 0, wait = 0, volume = 85, channel = 1) // MAD JAMS cant last forever yo
|
||||||
|
|
||||||
|
observer.started_as_observer = 1
|
||||||
close_spawn_windows()
|
close_spawn_windows()
|
||||||
var/obj/O = locate("landmark*Observer-Start")
|
var/obj/O = locate("landmark*Observer-Start")
|
||||||
src << "\blue Now teleporting."
|
src << "\blue Now teleporting."
|
||||||
|
|||||||
Reference in New Issue
Block a user