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 desc = "Loads a map"
set hidden = 1
if(src.authenticated && src.holder)
if(src.holder)
if(!src.mob)
return
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_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_access = 0 // log login/logout
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_no_default = 0 // vote does not default to nochange/norestart (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/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/protect_roles_from_antagonist = 0// If security and such can be tratior/cult/other
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/modes = list() // allowed modes
@@ -195,8 +193,8 @@
if ("allow_ai")
config.allow_ai = 1
if ("authentication")
config.enable_authentication = 1
// if ("authentication")
// config.enable_authentication = 1
if ("norespawn")
config.respawn = 0
@@ -207,12 +205,6 @@
if ("serversuffix")
config.server_suffix = 1
if ("medalhub")
config.medal_hub = value
if ("medalpass")
config.medal_password = value
if ("hostedby")
config.hostedby = value
@@ -288,6 +280,9 @@
if("forbid_singulo_possession")
forbid_singulo_possession = 1
if("popup_admin_pm")
config.popup_admin_pm = 1
if("useircbot")
useircbot = 1

View File

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

View File

@@ -133,9 +133,7 @@ var
shuttlecoming = 0
join_motd = null
auth_motd = null
rules = null
no_auth_motd = null
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.

View File

@@ -233,27 +233,27 @@
icon_state = "firstaid"
/obj/item/weapon/storage/syringes
name = "Syringes"
name = "syringes"
desc = "A box full of syringes."
desc = "A biohazard alert warning is printed on the box"
icon_state = "syringe"
foldable = /obj/item/stack/sheet/cardboard //BubbleWrap
/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."
icon_state = "antitoxin"
item_state = "firstaid-toxin"
/obj/item/weapon/storage/firstaid/o2
name = "Oxygen Deprivation First Aid"
name = "oxygen deprivation first aid"
desc = "A box full of oxygen goodies."
icon_state = "o2"
item_state = "firstaid-o2"
/obj/item/weapon/storage/flashbang_kit
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"
name = "flashbangs (WARNING)"
desc = ""
icon_state = "flashbang"
item_state = "syringe_kit"
foldable = /obj/item/stack/sheet/cardboard //BubbleWrap

View File

@@ -23,7 +23,7 @@ proc/sql_poll_admins()
return
var/admincount = 0
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
var/DBConnection/dbcon = new()
dbcon.Connect("dbi:mysql:[sqldb]:[sqladdress]:[sqlport]","[sqllogin]","[sqlpass]")

View File

@@ -15,7 +15,7 @@ proc/time_stamp()
proc/isDay(var/month, var/day)
if(isnum(month) && isnum(day))
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)
return 1
@@ -26,4 +26,3 @@ proc/isDay(var/month, var/day)
/* Check if it's april fools day */
proc/isAprilFools()
return isDay(4, 1)

View File

@@ -13,8 +13,6 @@
/world/proc/load_motd()
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()
rules = file2text("config/rules.html")

View File

@@ -2,86 +2,87 @@
name = "black hole"
icon = 'objects.dmi'
desc = "FUCK FUCK FUCK AAAHHH"
icon_state = "bhole2"
opacity = 0
icon_state = "bhole3"
opacity = 1
unacidable = 1
density = 0
anchored = 1
var/datum/effect/effect/system/harmless_smoke_spread/smoke
/obj/effect/bhole/New()
src.smoke = new /datum/effect/effect/system/harmless_smoke_spread()
src.smoke.set_up(5, 0, src)
src.smoke.attach(src)
src:life()
spawn(4)
controller()
/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)
/obj/effect/bhole/proc/life() //Oh man , this will LAG
if (prob(10))
//MOVEMENT
if( prob(50) )
src.anchored = 0
step(src,pick(alldirs))
if (prob(30))
step(src,pick(alldirs))
src.anchored = 1
for (var/atom/X in orange(9,src))
if ((istype(X,/obj) || istype(X,/mob/living)) && prob(7))
if (!X:anchored)
step_towards(X,src)
/obj/effect/bhole/proc/grav(var/r, var/ex_act_force, var/pull_chance, var/turf_removal_chance)
if(!isturf(loc)) //blackhole cannot be contained inside anything. Weird stuff might happen
del(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))
if (istype(B,/obj))
if (!B:anchored && prob(50))
step_towards(B,src)
if(prob(10)) B:ex_act(3.0)
/obj/effect/bhole/proc/affect_coord(var/x, var/y, var/ex_act_force, var/pull_chance, var/turf_removal_chance)
//Get turf at coordinate
var/turf/T = locate(x, y, z)
if(isnull(T)) return
//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
B:anchored = 0
//step_towards(B,src)
//B:anchored = 1
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)
step_towards(O,src)
for(var/mob/living/M in T.contents)
step_towards(M,src)
for (var/atom/A in orange(4,src))
if (istype(A,/obj))
if (!A:anchored && prob(90))
step_towards(A,src)
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()
//Destroying the turf
if( T && istype(T,/turf/simulated) && prob(turf_removal_chance) )
var/turf/simulated/ST = T
ST.ReplaceWithSpace()
return

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 popup_menu = 0
if(!authenticated || !holder)
if(!holder)
src << "Only administrators may use this command."
return
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()
for(var/mob/M in world)
if(M.client && M.client.authenticated)
if(M.client)
M.CanBuild()
setup_sectors()

View File

@@ -787,15 +787,6 @@
src.visible_message("\red [src] drives over [H]!")
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)
H.apply_damage(2*damage, BRUTE, "head")
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
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."
usr.gib(1)
usr.gib()
return
if("No")
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!", \
"\red You feel as your blood boils, tearing you apart.", \
"\red You hear a thousand voices, all crying in pain.")
body_to_sacrifice.gib(1)
body_to_sacrifice.gib()
if (ticker.mode.name == "cult")
ticker.mode:add_cultist(body_to_sacrifice.mind)
else
@@ -560,7 +560,7 @@ var/list/sacrificed = list()
if(H.mind == ticker.mode:sacrifice_target)
if(cultsinrange.len >= 3)
sacrificed += H.mind
H.gib(1)
H.gib()
usr << "\red The Geometer of Blood accepts this sacrifice, your objective is now complete."
else
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
usr << "\red The Geometer of blood accepts this sacrifice."
usr << "\red However, this soul was not enough to gain His favor."
H.gib(1)
H.gib()
else
if(prob(40))
usr << "\red The Geometer of blood accepts this sacrifice."
@@ -581,7 +581,7 @@ var/list/sacrificed = list()
else
usr << "\red The Geometer of blood accepts this sacrifice."
usr << "\red However, a mere dead body is not enough to satisfy Him."
H.gib(1)
H.gib()
else
if(H.stat !=2)
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
usr << "\red The Geometer of blood accepts this sacrifice."
usr << "\red However, a mere dead body is not enough to satisfy Him."
H.gib(1)
H.gib()
else
if(cultsinrange.len >= 3)
if(H.stat !=2)
@@ -602,7 +602,7 @@ var/list/sacrificed = list()
else
usr << "\red The Geometer of blood accepts this sacrifice."
usr << "\red However, this soul was not enough to gain His favor."
H.gib(1)
H.gib()
else
if(prob(40))
usr << "\red The Geometer of blood accepts this sacrifice."
@@ -610,7 +610,7 @@ var/list/sacrificed = list()
else
usr << "\red The Geometer of blood accepts this sacrifice."
usr << "\red However, a mere dead body is not enough to satisfy Him."
H.gib(1)
H.gib()
else
if(H.stat !=2)
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
usr << "\red The Geometer of blood accepts this sacrifice."
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)
if (ticker.mode.name == "cult")
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."
if(prob(20))
ticker.mode.grant_runeword(usr)
M.gib(1)
M.gib()
/* for(var/mob/living/carbon/alien/A)
for(var/mob/K in cultsinrange)
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(prob(75))
usr << "\red The Geometer of Blood accepts your exotic sacrifice."
@@ -902,7 +902,7 @@ var/list/sacrificed = list()
M << "\red Your blood boils!"
if(prob(5))
spawn(5)
M.gib(1)
M.gib()
for(var/obj/effect/rune/R in view(src))
if(prob(10))
explosion(R.loc, -1, 0, 1, 5)

View File

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

View File

@@ -1,3 +1,4 @@
/*
/client/proc/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 << "\blue[no_auth_motd]"
src.authenticating = 0
*/
/* The old goon auth/beta code is here
/client/proc/beta_tester_auth()

View File

@@ -12,7 +12,7 @@
/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 category = "OOC"
if (!src.client.authenticated || IsGuestKey(src.key))
if (IsGuestKey(src.key))
src << "You are not authorized to communicate over these channels."
return
msg = copytext(sanitize(msg), 1, MAX_MESSAGE_LEN)
@@ -38,17 +38,15 @@
for (var/client/C)
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")
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)
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
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)
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)
set name = "Goonsay"

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -247,7 +247,7 @@
// /obj/item/clothing/head/bomb_hood(src)
if (stat == 2 && client)
gib(1)
gib()
return
else if (stat == 2 && !client)
@@ -262,7 +262,7 @@
if (1.0)
b_loss += 500
if (!prob(getarmor(null, "bomb")))
gib(1)
gib()
return
else
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)
flick("flash", flash)
if (stat == 2 && client)
gib(1)
gib()
return
if (stat == 2 && !client)
@@ -573,7 +573,7 @@
if (prob(50))
Paralyse(10)
if (stat == DEAD && client)
gib(1)
gib()
return
if (stat == DEAD && !client)
gibs(loc, viruses)

View File

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

View File

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

View File

@@ -710,14 +710,14 @@
if (join_motd)
src << "<div class=\"motd\">[join_motd]</div>"
authorize()
// authorize() //old gooncode
if(admins.Find(ckey))
holder = new /obj/admins(src)
holder.rank = 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()
/client/Del()
@@ -746,7 +746,7 @@
for(var/mob/M in viewers())
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
/mob/proc/gib()

View File

@@ -178,10 +178,6 @@
return 1
if(href_list["ready"])
if (!client.authenticated)
src << "You are not authorized to enter the game."
return
if(!ready)
ready = 1
else
@@ -192,9 +188,6 @@
new_player_panel_proc()
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")
var/mob/dead/observer/observer = new()
@@ -222,9 +215,6 @@
LateChoices()
if(href_list["SelectedJob"])
if(!client.authenticated)
src << "You are not authorized to enter the game."
return
if(!enter_allowed)
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)
switch(content)
if("Anti-Hydrogen")
M.gib(1)
M.gib()
if("Hydrogen")
M << "\blue You feel very light, as if you might just float away..."
del(src)

View File

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

View File

@@ -101,8 +101,6 @@ VOTE_PERIOD 60
## allow AI job
ALLOW_AI
## goon authentication
#AUTHENTICATION
## disable abandon mob
NORESPAWN
@@ -137,5 +135,9 @@ FEATURE_OBJECT_SPELL_SYSTEM
##Remove the # mark infront of this to forbid admins from posssessing the singularity.
#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
#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\space_ninja.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\malfunction\Malf_Modules.dm"
#include "code\game\gamemodes\malfunction\malfunction.dm"
@@ -724,7 +725,6 @@
#include "code\game\vehicles\airtight\land.dm"
#include "code\game\vehicles\airtight\space.dm"
#include "code\game\verbs\AI_status.dm"
#include "code\game\verbs\authorize.dm"
#include "code\game\verbs\ooc.dm"
#include "code\game\verbs\sound.dm"
#include "code\game\verbs\suicide.dm"