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

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

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

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

Removed medal references from Gib()

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

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

View File

@@ -158,7 +158,7 @@ dmm_suite/preloader
set name = "LoadMap" set name = "LoadMap"
set desc = "Loads a map" set desc = "Loads a map"
set hidden = 1 set hidden = 1
if(src.authenticated && src.holder) if(src.holder)
if(!src.mob) if(!src.mob)
return return
if(src.holder.rank in list("Game Admin", "Game Master")) if(src.holder.rank in list("Game Admin", "Game Master"))

View File

@@ -2,9 +2,6 @@
var/server_name = null // server name (for world name / status) var/server_name = null // server name (for world name / status)
var/server_suffix = 0 // generate numeric suffix based on server port var/server_suffix = 0 // generate numeric suffix based on server port
var/medal_hub = null // medal hub name
var/medal_password = null // medal hub password
var/log_ooc = 0 // log OOC channek var/log_ooc = 0 // log OOC channek
var/log_access = 0 // log login/logout var/log_access = 0 // log login/logout
var/log_say = 0 // log client say var/log_say = 0 // log client say
@@ -27,13 +24,14 @@
var/vote_period = 60 // length of voting period (seconds, default 1 minute) var/vote_period = 60 // length of voting period (seconds, default 1 minute)
var/vote_no_default = 0 // vote does not default to nochange/norestart (tbi) var/vote_no_default = 0 // vote does not default to nochange/norestart (tbi)
var/vote_no_dead = 0 // dead people can't vote (tbi) var/vote_no_dead = 0 // dead people can't vote (tbi)
var/enable_authentication = 0 // goon authentication // var/enable_authentication = 0 // goon authentication
var/del_new_on_log = 1 // del's new players if they log before they spawn in var/del_new_on_log = 1 // del's new players if they log before they spawn in
var/feature_object_spell_system = 0 //spawns a spellbook which gives object-type spells instead of verb-type spells for the wizard var/feature_object_spell_system = 0 //spawns a spellbook which gives object-type spells instead of verb-type spells for the wizard
var/traitor_scaling = 0 //if amount of traitors scales based on amount of players var/traitor_scaling = 0 //if amount of traitors scales based on amount of players
var/protect_roles_from_antagonist = 0// If security and such can be tratior/cult/other var/protect_roles_from_antagonist = 0// If security and such can be tratior/cult/other
var/Tensioner_Active = 0 // If the tensioner is running. var/Tensioner_Active = 0 // If the tensioner is running.
var/allow_Metadata = 0 // Metadata is suported. var/allow_Metadata = 0 // Metadata is supported.
var/popup_admin_pm = 0 //adminPMs to non-admins show in a pop-up 'reply' window when set to 1.
var/list/mode_names = list() var/list/mode_names = list()
var/list/modes = list() // allowed modes var/list/modes = list() // allowed modes
@@ -195,8 +193,8 @@
if ("allow_ai") if ("allow_ai")
config.allow_ai = 1 config.allow_ai = 1
if ("authentication") // if ("authentication")
config.enable_authentication = 1 // config.enable_authentication = 1
if ("norespawn") if ("norespawn")
config.respawn = 0 config.respawn = 0
@@ -207,12 +205,6 @@
if ("serversuffix") if ("serversuffix")
config.server_suffix = 1 config.server_suffix = 1
if ("medalhub")
config.medal_hub = value
if ("medalpass")
config.medal_password = value
if ("hostedby") if ("hostedby")
config.hostedby = value config.hostedby = value
@@ -288,6 +280,9 @@
if("forbid_singulo_possession") if("forbid_singulo_possession")
forbid_singulo_possession = 1 forbid_singulo_possession = 1
if("popup_admin_pm")
config.popup_admin_pm = 1
if("useircbot") if("useircbot")
useircbot = 1 useircbot = 1

View File

@@ -15,9 +15,9 @@
//END Admin Things //END Admin Things
//Key auth things //Key auth things
authenticate = 0 // authenticate = 0
var/authenticated = 0 // var/authenticated = 0
var/authenticating = 0 // var/authenticating = 0
var/listen_ooc = 1 var/listen_ooc = 1
var/move_delay = 1 var/move_delay = 1

View File

@@ -133,9 +133,7 @@ var
shuttlecoming = 0 shuttlecoming = 0
join_motd = null join_motd = null
auth_motd = null
rules = null rules = null
no_auth_motd = null
forceblob = 0 forceblob = 0
//airlockWireColorToIndex takes a number representing the wire color, e.g. the orange wire is always 1, the dark red wire is always 2, etc. It returns the index for whatever that wire does. //airlockWireColorToIndex takes a number representing the wire color, e.g. the orange wire is always 1, the dark red wire is always 2, etc. It returns the index for whatever that wire does.

View File

@@ -233,27 +233,27 @@
icon_state = "firstaid" icon_state = "firstaid"
/obj/item/weapon/storage/syringes /obj/item/weapon/storage/syringes
name = "Syringes" name = "syringes"
desc = "A box full of syringes." desc = "A box full of syringes."
desc = "A biohazard alert warning is printed on the box" desc = "A biohazard alert warning is printed on the box"
icon_state = "syringe" icon_state = "syringe"
foldable = /obj/item/stack/sheet/cardboard //BubbleWrap foldable = /obj/item/stack/sheet/cardboard //BubbleWrap
/obj/item/weapon/storage/firstaid/toxin /obj/item/weapon/storage/firstaid/toxin
name = "Toxin First Aid" name = "toxin first aid"
desc = "Used to treat when you have a high amoutn of toxins in your body." desc = "Used to treat when you have a high amoutn of toxins in your body."
icon_state = "antitoxin" icon_state = "antitoxin"
item_state = "firstaid-toxin" item_state = "firstaid-toxin"
/obj/item/weapon/storage/firstaid/o2 /obj/item/weapon/storage/firstaid/o2
name = "Oxygen Deprivation First Aid" name = "oxygen deprivation first aid"
desc = "A box full of oxygen goodies." desc = "A box full of oxygen goodies."
icon_state = "o2" icon_state = "o2"
item_state = "firstaid-o2" item_state = "firstaid-o2"
/obj/item/weapon/storage/flashbang_kit /obj/item/weapon/storage/flashbang_kit
name = "Flashbangs (WARNING)" name = "flashbangs (WARNING)"
desc = "<FONT color=red><B>WARNING: Do not use without reading these preautions!</B></FONT>\n<B>These devices are extremely dangerous and can cause blindness or deafness if used incorrectly.</B>\nThe chemicals contained in these devices have been tuned for maximal effectiveness and due to\nextreme safety precuaiotn shave been incased in a tamper-proof pack. DO NOT ATTEMPT TO OPEN\nFLASH WARNING: Do not use continually. Excercise extreme care when detonating in closed spaces.\n\tMake attemtps not to detonate withing range of 2 meters of the intended target. It is imperative\n\tthat the targets visit a medical professional after usage. Damage to eyes increases extremely per\n\tuse and according to range. Glasses with flash resistant filters DO NOT always work on high powered\n\tflash devices such as this. <B>EXERCISE CAUTION REGARDLESS OF CIRCUMSTANCES</B>\nSOUND WARNING: Do not use continually. Visit a medical professional if hearing is lost.\n\tThere is a slight chance per use of complete deafness. Exercise caution and restraint.\nSTUN WARNING: If the intended or unintended target is too close to detonation the resulting sound\n\tand flash have been known to cause extreme sensory overload resulting in temporary\n\tincapacitation.\n<B>DO NOT USE CONTINUALLY</B>\nOperating Directions:\n\t1. Pull detonnation pin. <B>ONCE THE PIN IS PULLED THE GRENADE CAN NOT BE DISARMED!</B>\n\t2. Throw grenade. <B>NEVER HOLD A LIVE FLASHBANG</B>\n\t3. The grenade will detonste 10 seconds hafter being primed. <B>EXCERCISE CAUTION</B>\n\t-<B>Never prime another grenade until after the first is detonated</B>\nNote: Usage of this pyrotechnic device without authorization is an extreme offense and can\nresult in severe punishment upwards of <B>10 years in prison per use</B>.\n\nDefault 3 second wait till from prime to detonation. This can be switched with a screwdriver\nto 10 seconds.\n\nCopyright of Nanotrasen Industries- Military Armnaments Division\nThis device was created by Nanotrasen Labs a member of the Expert Advisor Corporation" desc = ""
icon_state = "flashbang" icon_state = "flashbang"
item_state = "syringe_kit" item_state = "syringe_kit"
foldable = /obj/item/stack/sheet/cardboard //BubbleWrap foldable = /obj/item/stack/sheet/cardboard //BubbleWrap

View File

@@ -23,7 +23,7 @@ proc/sql_poll_admins()
return return
var/admincount = 0 var/admincount = 0
for (var/mob/M in world) for (var/mob/M in world)
if(M && M.client && M.client.holder && M.client.authenticated) if(M && M.client && M.client.holder)
admincount += 1 admincount += 1
var/DBConnection/dbcon = new() var/DBConnection/dbcon = new()
dbcon.Connect("dbi:mysql:[sqldb]:[sqladdress]:[sqlport]","[sqllogin]","[sqlpass]") dbcon.Connect("dbi:mysql:[sqldb]:[sqladdress]:[sqlport]","[sqllogin]","[sqlpass]")

View File

@@ -15,7 +15,7 @@ proc/time_stamp()
proc/isDay(var/month, var/day) proc/isDay(var/month, var/day)
if(isnum(month) && isnum(day)) if(isnum(month) && isnum(day))
var/MM = text2num(time2text(world.timeofday, "MM")) // get the current month var/MM = text2num(time2text(world.timeofday, "MM")) // get the current month
var/DD = text2num(time2text(world.timeofday, "MM")) // get the current day var/DD = text2num(time2text(world.timeofday, "DD")) // get the current day
if(month == MM && day == DD) if(month == MM && day == DD)
return 1 return 1
@@ -26,4 +26,3 @@ proc/isDay(var/month, var/day)
/* Check if it's april fools day */ /* Check if it's april fools day */
proc/isAprilFools() proc/isAprilFools()
return isDay(4, 1) return isDay(4, 1)

View File

@@ -13,8 +13,6 @@
/world/proc/load_motd() /world/proc/load_motd()
join_motd = file2text("config/motd.txt") join_motd = file2text("config/motd.txt")
auth_motd = file2text("config/motd-auth.txt")
no_auth_motd = file2text("config/motd-noauth.txt")
/world/proc/load_rules() /world/proc/load_rules()
rules = file2text("config/rules.html") rules = file2text("config/rules.html")

View File

@@ -2,86 +2,87 @@
name = "black hole" name = "black hole"
icon = 'objects.dmi' icon = 'objects.dmi'
desc = "FUCK FUCK FUCK AAAHHH" desc = "FUCK FUCK FUCK AAAHHH"
icon_state = "bhole2" icon_state = "bhole3"
opacity = 0 opacity = 1
unacidable = 1 unacidable = 1
density = 0 density = 0
anchored = 1 anchored = 1
var/datum/effect/effect/system/harmless_smoke_spread/smoke
/obj/effect/bhole/New() /obj/effect/bhole/New()
src.smoke = new /datum/effect/effect/system/harmless_smoke_spread() spawn(4)
src.smoke.set_up(5, 0, src) controller()
src.smoke.attach(src)
src:life() /obj/effect/bhole/proc/controller()
while(src)
if(!isturf(loc))
del(src)
return
//DESTROYING STUFF AT THE EPICENTER
for(var/mob/living/M in orange(1,src))
del(M)
for(var/obj/O in orange(1,src))
del(O)
for(var/turf/simulated/ST in orange(1,src))
ST.ReplaceWithSpace()
sleep(6)
grav(10, 4, 10, 0 )
sleep(6)
grav( 8, 4, 10, 0 )
sleep(6)
grav( 9, 4, 10, 0 )
sleep(6)
grav( 7, 3, 40, 1 )
sleep(6)
grav( 5, 3, 40, 1 )
sleep(6)
grav( 6, 3, 40, 1 )
sleep(6)
grav( 4, 2, 50, 6 )
sleep(6)
grav( 3, 2, 50, 6 )
sleep(6)
grav( 2, 2, 75,25 )
sleep(6)
/obj/effect/bhole/Bumped(atom/A)
if (istype(A,/mob/living))
del(A)
else
A:ex_act(1.0)
//MOVEMENT
/obj/effect/bhole/proc/life() //Oh man , this will LAG if( prob(50) )
src.anchored = 0
if (prob(10))
src.anchored = 0
step(src,pick(alldirs))
if (prob(30))
step(src,pick(alldirs)) step(src,pick(alldirs))
src.anchored = 1 src.anchored = 1
for (var/atom/X in orange(9,src)) /obj/effect/bhole/proc/grav(var/r, var/ex_act_force, var/pull_chance, var/turf_removal_chance)
if ((istype(X,/obj) || istype(X,/mob/living)) && prob(7)) if(!isturf(loc)) //blackhole cannot be contained inside anything. Weird stuff might happen
if (!X:anchored) del(src)
step_towards(X,src) return
for(var/t = -r, t < r, t++)
affect_coord(x+t, y-r, ex_act_force, pull_chance, turf_removal_chance)
affect_coord(x-t, y+r, ex_act_force, pull_chance, turf_removal_chance)
affect_coord(x+r, y+t, ex_act_force, pull_chance, turf_removal_chance)
affect_coord(x-r, y-t, ex_act_force, pull_chance, turf_removal_chance)
return
for (var/atom/B in orange(7,src)) /obj/effect/bhole/proc/affect_coord(var/x, var/y, var/ex_act_force, var/pull_chance, var/turf_removal_chance)
if (istype(B,/obj)) //Get turf at coordinate
if (!B:anchored && prob(50)) var/turf/T = locate(x, y, z)
step_towards(B,src) if(isnull(T)) return
if(prob(10)) B:ex_act(3.0)
//Pulling and/or ex_act-ing movable atoms in that turf
if( prob(pull_chance) )
for(var/obj/O in T.contents)
if(O.anchored)
O.ex_act(ex_act_force)
else else
B:anchored = 0 step_towards(O,src)
//step_towards(B,src) for(var/mob/living/M in T.contents)
//B:anchored = 1 step_towards(M,src)
if(prob(10)) B:ex_act(3.0)
else if (istype(B,/turf))
if (istype(B,/turf/simulated) && (prob(1) && prob(75)))
src.smoke.start()
B:ReplaceWithSpace()
else if (istype(B,/mob/living))
step_towards(B,src)
//Destroying the turf
for (var/atom/A in orange(4,src)) if( T && istype(T,/turf/simulated) && prob(turf_removal_chance) )
if (istype(A,/obj)) var/turf/simulated/ST = T
if (!A:anchored && prob(90)) ST.ReplaceWithSpace()
step_towards(A,src) return
if(prob(30)) A:ex_act(2.0)
else
A:anchored = 0
//step_towards(A,src)
//A:anchored = 1
if(prob(30)) A:ex_act(2.0)
else if (istype(A,/turf))
if (istype(A,/turf/simulated) && prob(1))
src.smoke.start()
A:ReplaceWithSpace()
else if (istype(A,/mob/living))
step_towards(A,src)
for (var/atom/D in orange(1,src))
//if (hascall(D,"blackholed"))
// call(D,"blackholed")(null)
// continue
if (istype(D,/mob/living))
del(D)
else
D:ex_act(1.0)
spawn(17)
life()

View File

@@ -396,7 +396,7 @@ As such, it's hard-coded for now. No reason for it not to be, really.
set desc = "Spawns a space ninja for when you need a teenager with attitude." set desc = "Spawns a space ninja for when you need a teenager with attitude."
set popup_menu = 0 set popup_menu = 0
if(!authenticated || !holder) if(!holder)
src << "Only administrators may use this command." src << "Only administrators may use this command."
return return
if(!ticker.mode) if(!ticker.mode)

View File

@@ -0,0 +1,63 @@
/proc/wormhole_event()
spawn()
var/list/pick_turfs = list()
for(var/turf/simulated/floor/T in world)
if(T.z == 1)
pick_turfs += T
if(pick_turfs.len)
//All ready. Announce that bad juju is afoot.
command_alert("Space-time anomalies detected on the station. There is no additional data.", "Anomaly Alert")
world << sound('spanomalies.ogg')
//prob(20) can be approximated to 1 wormhole every 5 turfs!
//admittedly less random but totally worth it >_<
var/event_duration = 3000 //~5 minutes in ticks
var/number_of_selections = (pick_turfs.len/5)+1 //+1 to avoid division by zero!
var/sleep_duration = round( event_duration / number_of_selections )
var/end_time = world.time + event_duration //the time by which the event should have ended
var/increment = max(1,round(number_of_selections/50))
world << "DEBUG: number_of_selections: [number_of_selections] | sleep_duration: [sleep_duration]"
var/i = 1
while( 1 )
//we've run into overtime. End the event
if( end_time < world.time )
world << "DEBUG: we've run into overtime. End the event"
return
if( !pick_turfs.len )
world << "DEBUG: we've run out of turfs to pick. End the event"
return
//loop it round
i += increment
i %= pick_turfs.len
i++
//get our enter and exit locations
var/turf/simulated/floor/enter = pick_turfs[i]
pick_turfs -= enter //remove it from pickable turfs list
if( !enter || !istype(enter) ) continue //sanity
var/turf/simulated/floor/exit = pick(pick_turfs)
pick_turfs -= exit
if( !exit || !istype(exit) ) continue //sanity
create_wormhole(enter,exit)
sleep(sleep_duration) //have a well deserved nap!
//maybe this proc can even be used as an admin tool for teleporting players without ruining immulsions?
/proc/create_wormhole(var/turf/enter as turf, var/turf/exit as turf)
var/obj/effect/portal/P = new /obj/effect/portal( enter )
P.target = exit
P.creator = null
P.icon = 'objects.dmi'
P.failchance = 0
P.icon_state = "anom"
P.name = "wormhole"
spawn(rand(300,600))
del(P)

View File

@@ -12,7 +12,7 @@
/datum/game_mode/sandbox/pre_setup() /datum/game_mode/sandbox/pre_setup()
for(var/mob/M in world) for(var/mob/M in world)
if(M.client && M.client.authenticated) if(M.client)
M.CanBuild() M.CanBuild()
setup_sectors() setup_sectors()

View File

@@ -787,15 +787,6 @@
src.visible_message("\red [src] drives over [H]!") src.visible_message("\red [src] drives over [H]!")
playsound(src.loc, 'splat.ogg', 50, 1) playsound(src.loc, 'splat.ogg', 50, 1)
/*
if(ismob(load))
var/mob/M = load
if(M.reagents.has_reagent("beer"))
M.unlock_medal("DUI", 1)
if(M.reagents.has_reagent("space_drugs") && istype(H) && H.wear_id.assignment == "Security Officer")
M.unlock_medel("Ridin' Dirty",1)
*/
var/damage = rand(5,15) var/damage = rand(5,15)
H.apply_damage(2*damage, BRUTE, "head") H.apply_damage(2*damage, BRUTE, "head")
H.apply_damage(2*damage, BRUTE, "chest") H.apply_damage(2*damage, BRUTE, "chest")

View File

@@ -496,7 +496,7 @@ var/engwords = list("travel", "blood", "join", "hell", "destroy", "technology",
if(prob(C*5-105-(runedec-ticker.mode.cult.len)*5)) //including the useless rune at the secret room, shouldn't count against the limit - Urist if(prob(C*5-105-(runedec-ticker.mode.cult.len)*5)) //including the useless rune at the secret room, shouldn't count against the limit - Urist
usr.emote("scream") usr.emote("scream")
user << "\red A tear momentarily appears in reality. Before it closes, you catch a glimpse of that which lies beyond. That proves to be too much for your mind." user << "\red A tear momentarily appears in reality. Before it closes, you catch a glimpse of that which lies beyond. That proves to be too much for your mind."
usr.gib(1) usr.gib()
return return
if("No") if("No")
return return

View File

@@ -294,7 +294,7 @@ var/list/sacrificed = list()
body_to_sacrifice.visible_message("\red [body_to_sacrifice] is torn apart, a black smoke swiftly dissipating from his remains!", \ body_to_sacrifice.visible_message("\red [body_to_sacrifice] is torn apart, a black smoke swiftly dissipating from his remains!", \
"\red You feel as your blood boils, tearing you apart.", \ "\red You feel as your blood boils, tearing you apart.", \
"\red You hear a thousand voices, all crying in pain.") "\red You hear a thousand voices, all crying in pain.")
body_to_sacrifice.gib(1) body_to_sacrifice.gib()
if (ticker.mode.name == "cult") if (ticker.mode.name == "cult")
ticker.mode:add_cultist(body_to_sacrifice.mind) ticker.mode:add_cultist(body_to_sacrifice.mind)
else else
@@ -560,7 +560,7 @@ var/list/sacrificed = list()
if(H.mind == ticker.mode:sacrifice_target) if(H.mind == ticker.mode:sacrifice_target)
if(cultsinrange.len >= 3) if(cultsinrange.len >= 3)
sacrificed += H.mind sacrificed += H.mind
H.gib(1) H.gib()
usr << "\red The Geometer of Blood accepts this sacrifice, your objective is now complete." usr << "\red The Geometer of Blood accepts this sacrifice, your objective is now complete."
else else
usr << "\red Your target's earthly bonds are too strong. You need more cultists to succeed in this ritual." usr << "\red Your target's earthly bonds are too strong. You need more cultists to succeed in this ritual."
@@ -573,7 +573,7 @@ var/list/sacrificed = list()
else else
usr << "\red The Geometer of blood accepts this sacrifice." usr << "\red The Geometer of blood accepts this sacrifice."
usr << "\red However, this soul was not enough to gain His favor." usr << "\red However, this soul was not enough to gain His favor."
H.gib(1) H.gib()
else else
if(prob(40)) if(prob(40))
usr << "\red The Geometer of blood accepts this sacrifice." usr << "\red The Geometer of blood accepts this sacrifice."
@@ -581,7 +581,7 @@ var/list/sacrificed = list()
else else
usr << "\red The Geometer of blood accepts this sacrifice." usr << "\red The Geometer of blood accepts this sacrifice."
usr << "\red However, a mere dead body is not enough to satisfy Him." usr << "\red However, a mere dead body is not enough to satisfy Him."
H.gib(1) H.gib()
else else
if(H.stat !=2) if(H.stat !=2)
usr << "\red The victim is still alive, you will need more cultists chanting for the sacrifice to succeed." usr << "\red The victim is still alive, you will need more cultists chanting for the sacrifice to succeed."
@@ -592,7 +592,7 @@ var/list/sacrificed = list()
else else
usr << "\red The Geometer of blood accepts this sacrifice." usr << "\red The Geometer of blood accepts this sacrifice."
usr << "\red However, a mere dead body is not enough to satisfy Him." usr << "\red However, a mere dead body is not enough to satisfy Him."
H.gib(1) H.gib()
else else
if(cultsinrange.len >= 3) if(cultsinrange.len >= 3)
if(H.stat !=2) if(H.stat !=2)
@@ -602,7 +602,7 @@ var/list/sacrificed = list()
else else
usr << "\red The Geometer of blood accepts this sacrifice." usr << "\red The Geometer of blood accepts this sacrifice."
usr << "\red However, this soul was not enough to gain His favor." usr << "\red However, this soul was not enough to gain His favor."
H.gib(1) H.gib()
else else
if(prob(40)) if(prob(40))
usr << "\red The Geometer of blood accepts this sacrifice." usr << "\red The Geometer of blood accepts this sacrifice."
@@ -610,7 +610,7 @@ var/list/sacrificed = list()
else else
usr << "\red The Geometer of blood accepts this sacrifice." usr << "\red The Geometer of blood accepts this sacrifice."
usr << "\red However, a mere dead body is not enough to satisfy Him." usr << "\red However, a mere dead body is not enough to satisfy Him."
H.gib(1) H.gib()
else else
if(H.stat !=2) if(H.stat !=2)
usr << "\red The victim is still alive, you will need more cultists chanting for the sacrifice to succeed." usr << "\red The victim is still alive, you will need more cultists chanting for the sacrifice to succeed."
@@ -621,7 +621,7 @@ var/list/sacrificed = list()
else else
usr << "\red The Geometer of blood accepts this sacrifice." usr << "\red The Geometer of blood accepts this sacrifice."
usr << "\red However, a mere dead body is not enough to satisfy Him." usr << "\red However, a mere dead body is not enough to satisfy Him."
H.gib(1) H.gib()
for(var/mob/living/carbon/monkey/M in src.loc) for(var/mob/living/carbon/monkey/M in src.loc)
if (ticker.mode.name == "cult") if (ticker.mode.name == "cult")
if(M.mind == ticker.mode:sacrifice_target) if(M.mind == ticker.mode:sacrifice_target)
@@ -642,11 +642,11 @@ var/list/sacrificed = list()
usr << "\red The Geometer of Blood accepts your meager sacrifice." usr << "\red The Geometer of Blood accepts your meager sacrifice."
if(prob(20)) if(prob(20))
ticker.mode.grant_runeword(usr) ticker.mode.grant_runeword(usr)
M.gib(1) M.gib()
/* for(var/mob/living/carbon/alien/A) /* for(var/mob/living/carbon/alien/A)
for(var/mob/K in cultsinrange) for(var/mob/K in cultsinrange)
K.say("Barhah hra zar'garis!") K.say("Barhah hra zar'garis!")
A.dust() /// A.gib(1) doesnt work for some reason, and dust() leaves that skull and bones thingy which we dont really need. A.dust() /// A.gib() doesnt work for some reason, and dust() leaves that skull and bones thingy which we dont really need.
if (ticker.mode.name == "cult") if (ticker.mode.name == "cult")
if(prob(75)) if(prob(75))
usr << "\red The Geometer of Blood accepts your exotic sacrifice." usr << "\red The Geometer of Blood accepts your exotic sacrifice."
@@ -902,7 +902,7 @@ var/list/sacrificed = list()
M << "\red Your blood boils!" M << "\red Your blood boils!"
if(prob(5)) if(prob(5))
spawn(5) spawn(5)
M.gib(1) M.gib()
for(var/obj/effect/rune/R in view(src)) for(var/obj/effect/rune/R in view(src))
if(prob(10)) if(prob(10))
explosion(R.loc, -1, 0, 1, 5) explosion(R.loc, -1, 0, 1, 5)

View File

@@ -30,7 +30,7 @@
for(var/mob/M in world) for(var/mob/M in world)
if(M.client) if(M.client)
if(M.client.holder && M.client.authenticated) if(M.client.holder)
if(!M.client.stealth) if(!M.client.stealth)
admins++ admins++

View File

@@ -1,3 +1,4 @@
/*
/client/proc/authorize() /client/proc/authorize()
set name = "Authorize" set name = "Authorize"
@@ -41,6 +42,7 @@
src << "Try again using the <b>Authorize</b> command, sometimes the server will hiccup and not correctly authorize." src << "Try again using the <b>Authorize</b> command, sometimes the server will hiccup and not correctly authorize."
src << "\blue[no_auth_motd]" src << "\blue[no_auth_motd]"
src.authenticating = 0 src.authenticating = 0
*/
/* The old goon auth/beta code is here /* The old goon auth/beta code is here
/client/proc/beta_tester_auth() /client/proc/beta_tester_auth()

View File

@@ -12,7 +12,7 @@
/mob/verb/ooc(msg as text) /mob/verb/ooc(msg as text)
set name = "OOC" //Gave this shit a shorter name so you only have to time out "ooc" rather than "ooc message" to use it --NeoFite set name = "OOC" //Gave this shit a shorter name so you only have to time out "ooc" rather than "ooc message" to use it --NeoFite
set category = "OOC" set category = "OOC"
if (!src.client.authenticated || IsGuestKey(src.key)) if (IsGuestKey(src.key))
src << "You are not authorized to communicate over these channels." src << "You are not authorized to communicate over these channels."
return return
msg = copytext(sanitize(msg), 1, MAX_MESSAGE_LEN) msg = copytext(sanitize(msg), 1, MAX_MESSAGE_LEN)
@@ -38,17 +38,15 @@
for (var/client/C) for (var/client/C)
if (src.client.holder && (!src.client.stealth || C.holder)) if (src.client.holder && (!src.client.stealth || C.holder))
// C << "<span class=\"adminooc\"><span class=\"prefix\">OOC:</span> <span class=\"name\">[src.key]:</span> <span class=\"message\">[msg]</span></span>"
if (src.client.holder.rank == "Admin Observer") if (src.client.holder.rank == "Admin Observer")
C << "<span class=\"gfartooc\"><span class=\"prefix\">OOC:</span> <span class=\"name\">[src.key][src.client.stealth ? "/([src.client.fakekey])" : ""]:</span> <span class=\"message\">[msg]</span></span>" C << "<span class='observerooc'><span class='prefix'>OOC:</span> <EM>[src.key][src.client.stealth ? "/([src.client.fakekey])" : ""]:</EM> <span class='message'>[msg]</span></span>"
else if (src.client.holder.level >= 5) else if (src.client.holder.level >= 5)
C << "<font color=[src.client.ooccolor]><b><span class=\"prefix\">OOC:</span> <span class=\"name\">[src.key][src.client.stealth ? "/([src.client.fakekey])" : ""]:</span> <span class=\"message\">[msg]</span></b></font>" C << "<font color=[src.client.ooccolor]><b><span class='prefix'>OOC:</span> <EM>[src.key][src.client.stealth ? "/([src.client.fakekey])" : ""]:</EM> <span class='message'>[msg]</span></b></font>"
else else
C << "<span class=\"adminooc\"><span class=\"prefix\">OOC:</span> <span class=\"name\">[src.key][src.client.stealth ? "/([src.client.fakekey])" : ""]:</span> <span class=\"message\">[msg]</span></span>" C << "<span class='adminooc'><span class='prefix'>OOC:</span> <EM>[src.key][src.client.stealth ? "/([src.client.fakekey])" : ""]:</EM> <span class='message'>[msg]</span></span>"
else if (C.listen_ooc) else if (C.listen_ooc)
C << "<span class=\"ooc\"><span class=\"prefix\">OOC:</span> <span class=\"name\">[src.client.stealth ? src.client.fakekey : src.key]:</span> <span class=\"message\">[msg]</span></span>" C << "<span class='ooc'><span class='prefix'>OOC:</span> <EM>[src.client.stealth ? src.client.fakekey : src.key]:</EM> <span class='message'>[msg]</span></span>"
/* /*
/mob/verb/goonsay(msg as text) /mob/verb/goonsay(msg as text)
set name = "Goonsay" set name = "Goonsay"

View File

@@ -6,24 +6,14 @@
var/list/peeps = list() var/list/peeps = list()
if (config.enable_authentication) for (var/mob/M in world)
for (var/mob/M in world) if (!M.client)
if (!M.client) continue
continue
if (M.client.authenticated && M.client.authenticated != 1) if (M.client.stealth && !usr.client.holder)
peeps += "\t[M.client] ([html_encode(M.client.authenticated)])" peeps += "\t[M.client.fakekey]"
else else
peeps += "\t[M.client]" peeps += "\t[M.client][M.client.stealth ? " <i>(as [M.client.fakekey])</i>" : ""]"
else
for (var/mob/M in world)
if (!M.client)
continue
if (M.client.stealth && !usr.client.holder)
peeps += "\t[M.client.fakekey]"
else
peeps += "\t[M.client][M.client.stealth ? " <i>(as [M.client.fakekey])</i>" : ""]"
peeps = sortList(peeps) peeps = sortList(peeps)
@@ -39,7 +29,7 @@
usr << "<b>Current Admins:</b>" usr << "<b>Current Admins:</b>"
for (var/mob/M in world) for (var/mob/M in world)
if(M && M.client && M.client.holder && M.client.authenticated) if(M && M.client && M.client.holder)
if(usr.client.holder) if(usr.client.holder)
usr << "[M.key] is a [M.client.holder.rank][M.client.stealth ? " <i>(as [M.client.fakekey])</i>" : ""]" usr << "[M.key] is a [M.client.holder.rank][M.client.stealth ? " <i>(as [M.client.fakekey])</i>" : ""]"
else if(!M.client.stealth) else if(!M.client.stealth)

View File

@@ -169,9 +169,6 @@
/mob/verb/vote() /mob/verb/vote()
set category = "OOC" set category = "OOC"
set name = "Vote" set name = "Vote"
if(!usr.client.authenticated)
usr << "You're not authenticated, you can't vote."
return
usr.client.showvote = 1 usr.client.showvote = 1
@@ -324,7 +321,7 @@
for(var/mob/CM in world) for(var/mob/CM in world)
if(CM.client) if(CM.client)
if(config.vote_no_default || (config.vote_no_dead && CM.stat == 2) || !CM.client.authenticated) if( config.vote_no_default || (config.vote_no_dead && CM.stat == 2) )
CM.client.vote = "none" CM.client.vote = "none"
else else
CM.client.vote = "default" CM.client.vote = "default"

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -202,7 +202,7 @@
set desc = "Ghost into blobthing." set desc = "Ghost into blobthing."
set hidden = 1 set hidden = 1
if(!authenticated || !holder) if(!holder)
src << "Only administrators may use this command." src << "Only administrators may use this command."
return return
var/input = input(src, "Please specify which key will be turned into a bloby.", "Key", "") var/input = input(src, "Please specify which key will be turned into a bloby.", "Key", "")

View File

@@ -90,7 +90,7 @@
flick("flash", flash) flick("flash", flash)
if (stat == 2 && client) if (stat == 2 && client)
gib(1) gib()
return return
else if (stat == 2 && !client) else if (stat == 2 && !client)
@@ -105,7 +105,7 @@
switch (severity) switch (severity)
if (1.0) if (1.0)
b_loss += 500 b_loss += 500
gib(1) gib()
return return
if (2.0) if (2.0)

View File

@@ -78,7 +78,7 @@
flick("flash", flash) flick("flash", flash)
if (stat == 2 && client) if (stat == 2 && client)
gib(1) gib()
return return
else if (stat == 2 && !client) else if (stat == 2 && !client)
@@ -91,7 +91,7 @@
switch (severity) switch (severity)
if (1.0) if (1.0)
b_loss += 500 b_loss += 500
gib(1) gib()
return return
if (2.0) if (2.0)

View File

@@ -35,7 +35,7 @@
if(prob(src.getBruteLoss() - 50)) if(prob(src.getBruteLoss() - 50))
src.gib() src.gib()
/mob/living/carbon/gib(give_medal) /mob/living/carbon/gib()
for(var/mob/M in src) for(var/mob/M in src)
if(M in src.stomach_contents) if(M in src.stomach_contents)
src.stomach_contents.Remove(M) src.stomach_contents.Remove(M)
@@ -43,7 +43,7 @@
for(var/mob/N in viewers(src, null)) for(var/mob/N in viewers(src, null))
if(N.client) if(N.client)
N.show_message(text("\red <B>[M] bursts out of [src]!</B>"), 2) N.show_message(text("\red <B>[M] bursts out of [src]!</B>"), 2)
. = ..(give_medal) . = ..()
/mob/living/carbon/attack_hand(mob/M as mob) /mob/living/carbon/attack_hand(mob/M as mob)
if(!istype(M, /mob/living/carbon)) return if(!istype(M, /mob/living/carbon)) return

View File

@@ -247,7 +247,7 @@
// /obj/item/clothing/head/bomb_hood(src) // /obj/item/clothing/head/bomb_hood(src)
if (stat == 2 && client) if (stat == 2 && client)
gib(1) gib()
return return
else if (stat == 2 && !client) else if (stat == 2 && !client)
@@ -262,7 +262,7 @@
if (1.0) if (1.0)
b_loss += 500 b_loss += 500
if (!prob(getarmor(null, "bomb"))) if (!prob(getarmor(null, "bomb")))
gib(1) gib()
return return
else else
var/atom/target = get_edge_target_turf(src, get_dir(src, get_step_away(src, src))) var/atom/target = get_edge_target_turf(src, get_dir(src, get_step_away(src, src)))

View File

@@ -540,7 +540,7 @@
/mob/living/carbon/monkey/ex_act(severity) /mob/living/carbon/monkey/ex_act(severity)
flick("flash", flash) flick("flash", flash)
if (stat == 2 && client) if (stat == 2 && client)
gib(1) gib()
return return
if (stat == 2 && !client) if (stat == 2 && !client)
@@ -573,7 +573,7 @@
if (prob(50)) if (prob(50))
Paralyse(10) Paralyse(10)
if (stat == DEAD && client) if (stat == DEAD && client)
gib(1) gib()
return return
if (stat == DEAD && !client) if (stat == DEAD && !client)
gibs(loc, viruses) gibs(loc, viruses)

View File

@@ -304,7 +304,7 @@
src << "\red <B>Killswitch Activated" src << "\red <B>Killswitch Activated"
killswitch = 0 killswitch = 0
spawn(5) spawn(5)
gib(src) gib()
process_locks() process_locks()
if(weapon_lock) if(weapon_lock)

View File

@@ -236,7 +236,7 @@
flick("flash", flash) flick("flash", flash)
if (stat == 2 && client) if (stat == 2 && client)
gib(1) gib()
return return
else if (stat == 2 && !client) else if (stat == 2 && !client)
@@ -248,7 +248,7 @@
if (stat != 2) if (stat != 2)
adjustBruteLoss(100) adjustBruteLoss(100)
adjustFireLoss(100) adjustFireLoss(100)
gib(1) gib()
return return
if(2.0) if(2.0)
if (stat != 2) if (stat != 2)
@@ -291,7 +291,6 @@
if(prob(20)) if(prob(20))
usr << "\red <B>You fail to push [tmob]'s fat ass out of the way.</B>" usr << "\red <B>You fail to push [tmob]'s fat ass out of the way.</B>"
now_pushing = 0 now_pushing = 0
//unlock_medal("That's No Moon, That's A Gourmand!", 1)
return return
if(tmob.nopush) if(tmob.nopush)
now_pushing = 0 now_pushing = 0
@@ -1056,7 +1055,7 @@ Frequency:
return return
/mob/living/silicon/robot/proc/self_destruct() /mob/living/silicon/robot/proc/self_destruct()
gib(1) gib()
return return
/mob/living/silicon/robot/proc/UnlinkSelf() /mob/living/silicon/robot/proc/UnlinkSelf()

View File

@@ -710,14 +710,14 @@
if (join_motd) if (join_motd)
src << "<div class=\"motd\">[join_motd]</div>" src << "<div class=\"motd\">[join_motd]</div>"
authorize() // authorize() //old gooncode
if(admins.Find(ckey)) if(admins.Find(ckey))
holder = new /obj/admins(src) holder = new /obj/admins(src)
holder.rank = admins[ckey] holder.rank = admins[ckey]
update_admins(admins[ckey]) update_admins(admins[ckey])
if(ticker && ticker.mode && ticker.mode.name =="sandbox" && authenticated) if(ticker && ticker.mode && ticker.mode.name =="sandbox")
mob.CanBuild() mob.CanBuild()
/client/Del() /client/Del()
@@ -746,7 +746,7 @@
for(var/mob/M in viewers()) for(var/mob/M in viewers())
M.see(message) M.see(message)
//This is the proc for gibbing a mob. Cannot gib ghosts. Removed the medal reference, //This is the proc for gibbing a mob. Cannot gib ghosts.
//added different sort of gibs and animations. N //added different sort of gibs and animations. N
/mob/proc/gib() /mob/proc/gib()

View File

@@ -178,10 +178,6 @@
return 1 return 1
if(href_list["ready"]) if(href_list["ready"])
if (!client.authenticated)
src << "You are not authorized to enter the game."
return
if(!ready) if(!ready)
ready = 1 ready = 1
else else
@@ -192,9 +188,6 @@
new_player_panel_proc() new_player_panel_proc()
if(href_list["observe"]) if(href_list["observe"])
if (!client.authenticated)
src << "You are not authorized to enter the game."
return
if(alert(src,"Are you sure you wish to observe? You will not be able to play this round!","Player Setup","Yes","No") == "Yes") if(alert(src,"Are you sure you wish to observe? You will not be able to play this round!","Player Setup","Yes","No") == "Yes")
var/mob/dead/observer/observer = new() var/mob/dead/observer/observer = new()
@@ -222,9 +215,6 @@
LateChoices() LateChoices()
if(href_list["SelectedJob"]) if(href_list["SelectedJob"])
if(!client.authenticated)
src << "You are not authorized to enter the game."
return
if(!enter_allowed) if(!enter_allowed)
usr << "\blue There is an administrative lock on entering the game!" usr << "\blue There is an administrative lock on entering the game!"

View File

@@ -75,7 +75,7 @@
/obj/item/weapon/fuel/proc/injest(mob/M as mob) /obj/item/weapon/fuel/proc/injest(mob/M as mob)
switch(content) switch(content)
if("Anti-Hydrogen") if("Anti-Hydrogen")
M.gib(1) M.gib()
if("Hydrogen") if("Hydrogen")
M << "\blue You feel very light, as if you might just float away..." M << "\blue You feel very light, as if you might just float away..."
del(src) del(src)

View File

@@ -1,52 +1,35 @@
client/script = {"<style> client/script = {"<style>
body body {font-family: Verdana, sans-serif;}
{font-family: Verdana, sans-serif;}
h1, h2, h3, h4, h5, h6 h1, h2, h3, h4, h5, h6 {color: #0000ff; font-family: Georgia, Verdana, sans-serif;}
{color: #0000ff; font-family: Georgia, Verdana, sans-serif;}
em em {font-style: normal; font-weight: bold;}
{font-style: normal; font-weight: bold;}
.motd
{color: #638500; font-family: Verdana, sans-serif;}
.motd {color: #638500; font-family: Verdana, sans-serif;}
.motd h1, .motd h2, .motd h3, .motd h4, .motd h5, .motd h6 .motd h1, .motd h2, .motd h3, .motd h4, .motd h5, .motd h6
{color: #638500; text-decoration: underline;} {color: #638500; text-decoration: underline;}
.motd a, .motd a:link, .motd a:visited, .motd a:active, .motd a:hover .motd a, .motd a:link, .motd a:visited, .motd a:active, .motd a:hover
{color: #638500;} {color: #638500;}
.prefix { font-weight: bold;} .prefix { font-weight: bold;}
.ooc {color: #002eb8; font-weight: bold;} .ooc {color: #002eb8; font-weight: bold;}
.adminobserverooc {color: #0099cc; font-weight: bold;}
.adminooc {color: #b82e00; font-weight: bold;} .adminooc {color: #b82e00; font-weight: bold;}
.adminobserver {color: #996600; font-weight: bold;}
.admin {color: #386aff; font-weight: bold;} .admin {color: #386aff; font-weight: bold;}
.gfartooc {color: #0099cc; font-weight: bold;}
.gfartadmin {color: #996600; font-weight: bold;}
.medal {color: #808000; font-weight: bold;}
.name { font-weight: bold;} .name { font-weight: bold;}
.say {} .say {}
.deadsay {color: #5c00e6;} .deadsay {color: #5c00e6;}
.radio {color: #008000;} .radio {color: #008000;}
.deptradio {color: #993399;} .deptradio {color: #993399;}
.comradio {color: #ACA82D;} .comradio {color: #ACA82D;}
.syndradio {color: #6D3F40;} .syndradio {color: #6D3F40;}
.alert {color: #ff0000;} .alert {color: #ff0000;}
h1.alert, h2.alert {color: #000000;} h1.alert, h2.alert {color: #000000;}
.emote { font-style: italic;} .emote { font-style: italic;}
@@ -63,7 +46,6 @@ h1.alert, h2.alert {color: #000000;}
.notice {color: #000099;} .notice {color: #000099;}
.alien {color: #543354;} .alien {color: #543354;}
.newscaster {color: #800000;} .newscaster {color: #800000;}
</style>"} </style>"}

View File

@@ -101,8 +101,6 @@ VOTE_PERIOD 60
## allow AI job ## allow AI job
ALLOW_AI ALLOW_AI
## goon authentication
#AUTHENTICATION
## disable abandon mob ## disable abandon mob
NORESPAWN NORESPAWN
@@ -137,5 +135,9 @@ FEATURE_OBJECT_SPELL_SYSTEM
##Remove the # mark infront of this to forbid admins from posssessing the singularity. ##Remove the # mark infront of this to forbid admins from posssessing the singularity.
#FORBID_SINGULO_POSSESSION #FORBID_SINGULO_POSSESSION
## Remove the # to show a popup 'reply to' window to every non-admin that recieves an adminPM.
## The intention is to make adminPMs more visible. (although I fnd popups annoying so this defaults to off)
#POPUP_ADMIN_PM
##Remove the # mark if you are going to use the SVN irc bot to relay adminhelps ##Remove the # mark if you are going to use the SVN irc bot to relay adminhelps
#USEIRCBOT #USEIRCBOT

Binary file not shown.

Before

Width:  |  Height:  |  Size: 86 KiB

After

Width:  |  Height:  |  Size: 93 KiB

View File

@@ -400,6 +400,7 @@
#include "code\game\gamemodes\events\ninja_equipment.dm" #include "code\game\gamemodes\events\ninja_equipment.dm"
#include "code\game\gamemodes\events\space_ninja.dm" #include "code\game\gamemodes\events\space_ninja.dm"
#include "code\game\gamemodes\events\spacevines.dm" #include "code\game\gamemodes\events\spacevines.dm"
#include "code\game\gamemodes\events\wormholes.dm"
#include "code\game\gamemodes\extended\extended.dm" #include "code\game\gamemodes\extended\extended.dm"
#include "code\game\gamemodes\malfunction\Malf_Modules.dm" #include "code\game\gamemodes\malfunction\Malf_Modules.dm"
#include "code\game\gamemodes\malfunction\malfunction.dm" #include "code\game\gamemodes\malfunction\malfunction.dm"
@@ -724,7 +725,6 @@
#include "code\game\vehicles\airtight\land.dm" #include "code\game\vehicles\airtight\land.dm"
#include "code\game\vehicles\airtight\space.dm" #include "code\game\vehicles\airtight\space.dm"
#include "code\game\verbs\AI_status.dm" #include "code\game\verbs\AI_status.dm"
#include "code\game\verbs\authorize.dm"
#include "code\game\verbs\ooc.dm" #include "code\game\verbs\ooc.dm"
#include "code\game\verbs\sound.dm" #include "code\game\verbs\sound.dm"
#include "code\game\verbs\suicide.dm" #include "code\game\verbs\suicide.dm"