Fixed dust() and gib() leaving invisible overlays everywhere

Fixed deaths at the end of nuke rounds, optimised the code a little

gib() is now hgib() (ie it's specific to humans). gibs.dm() now only spawns generic gibs that could be from any mob.
Likewise for dust.
Awaiting generic dust() and gib() animations.

Fixed (hopefully, depends if firewalls block this method) getruntimelog.
GameMasters no longer have the getruntimelog verb. Instead they have .giverutimelog . This allows them to grant a specific client access to the server's runtime logs. (they can grant themself access this way too). NOTE: runtime logs can be used to meta, only grant access to coders or people you trust. It may also be wise to ensure they do not play in the current round.

Introducing .getserverlog . It allows any admin above moderator to access ANY archived server/attack logs. Should mkae processing forum ban requests a lot easier since all admins with ban capabilities now have access.

getruntimelog renamed to .getruntimelog . File-request spam prevention increased to 60seconds to discourage access serverlogs too much! They can reach sizes of 4Mb sometimes so please be responsible with them admins.

runtime logs should now be saved to /data/logs/runtime/ (you may have to create this folder yourself)

ummm... fixed gibs appearing below shuttle turfs. Trimmed some uneeded fluff text from the logs.

PHEW


git-svn-id: http://tgstation13.googlecode.com/svn/trunk@3509 316c924e-a436-60f5-8080-3fe189b3f50e
This commit is contained in:
elly1989@rocketmail.com
2012-04-26 00:50:18 +00:00
parent a9482b8215
commit 515d422b66
21 changed files with 475 additions and 263 deletions
+5
View File
@@ -0,0 +1,5 @@
/mob/dead/dust() //ghosts can't be vaporised.
return
/mob/dead/gib() //ghosts can't be gibbed.
return
+76
View File
@@ -0,0 +1,76 @@
//This is the proc for gibbing a mob. Cannot gib ghosts.
//added different sort of gibs and animations. N
/mob/proc/gib()
death(1)
var/atom/movable/overlay/animation = null
monkeyizing = 1
canmove = 0
icon = null
invisibility = 101
animation = new(loc)
animation.icon_state = "blank"
animation.icon = 'mob.dmi'
animation.master = src
// flick("gibbed-m", animation)
gibs(loc, viruses, dna)
spawn(15)
if(animation) del(animation)
if(src) del(src)
//This is the proc for turning a mob into ash. Mostly a copy of gib code (above).
//Originally created for wizard disintegrate. I've removed the virus code since it's irrelevant here.
//Dusting robots does not eject the MMI, so it's a bit more powerful than gib() /N
/mob/proc/dust()
death(1)
var/atom/movable/overlay/animation = null
monkeyizing = 1
canmove = 0
icon = null
invisibility = 101
animation = new(loc)
animation.icon_state = "blank"
animation.icon = 'mob.dmi'
animation.master = src
// flick("dust-m", animation)
new /obj/effect/decal/ash(loc)
spawn(15)
if(animation) del(animation)
if(src) del(src)
/mob/proc/death(gibbed)
timeofdeath = world.time
var/cancel = 0
for(var/mob/M in world)
if(M.client && (M.stat != DEAD))
cancel = 1
break
if(!cancel)
world << "<B>Everyone is dead! Resetting in 30 seconds!</B>"
spawn(300)
for(var/mob/M in world)
if(M.client && (M.stat != DEAD))
world << "Aborting world restart!"
return
feedback_set_details("end_error","no live players")
if(blackbox)
blackbox.save_all_data_to_sql()
sleep(50)
log_game("Rebooting because of no live players")
world.Reboot()
return
return ..(gibbed)
@@ -0,0 +1,39 @@
/mob/living/carbon/alien/gib()
death(1)
var/atom/movable/overlay/animation = null
monkeyizing = 1
canmove = 0
icon = null
invisibility = 101
animation = new(loc)
animation.icon_state = "blank"
animation.icon = 'mob.dmi'
animation.master = src
flick("gibbed-a", animation)
xgibs(loc, viruses)
spawn(15)
if(animation) del(animation)
if(src) del(src)
/mob/living/carbon/alien/dust()
death(1)
var/atom/movable/overlay/animation = null
monkeyizing = 1
canmove = 0
icon = null
invisibility = 101
animation = new(loc)
animation.icon_state = "blank"
animation.icon = 'mob.dmi'
animation.master = src
flick("dust-a", animation)
new /obj/effect/decal/remains/xeno(loc)
spawn(15)
if(animation) del(animation)
if(src) del(src)
@@ -1,3 +1,44 @@
/mob/living/carbon/human/gib()
death(1)
var/atom/movable/overlay/animation = null
monkeyizing = 1
canmove = 0
icon = null
invisibility = 101
animation = new(loc)
animation.icon_state = "blank"
animation.icon = 'mob.dmi'
animation.master = src
flick("gibbed-h", animation)
hgibs(loc, viruses, dna)
spawn(15)
if(animation) del(animation)
if(src) del(src)
/mob/living/carbon/human/dust()
death(1)
var/atom/movable/overlay/animation = null
monkeyizing = 1
canmove = 0
icon = null
invisibility = 101
animation = new(loc)
animation.icon_state = "blank"
animation.icon = 'mob.dmi'
animation.master = src
flick("dust-h", animation)
new /obj/effect/decal/remains/human(loc)
spawn(15)
if(animation) del(animation)
if(src) del(src)
/mob/living/carbon/human/death(gibbed)
if(halloss > 0 && (!gibbed))
//hallucination = 0
@@ -110,7 +110,7 @@
src << "\red <i>[pick("This subject is incompatable", \
"This subject does not have a life energy", "This subject is empty", \
"I am not satisified", "I can not feed from this subject", \
"I do not feel nurished", "This subject is not food")]...</i>"
"I do not feel nourished", "This subject is not food")]...</i>"
sleep(rand(15,45))
@@ -136,13 +136,7 @@
if(Victim && !rabid && !attacked)
if(Victim.LAssailant && Victim.LAssailant != Victim)
if(prob(50))
var/Found = 0
for(var/mob/F in Friends)
if(F == Victim.LAssailant)
Found = 1
if(!Found)
Friends += Victim.LAssailant
Friends |= Victim.LAssailant
if(M.client && istype(src, /mob/living/carbon/human))
if(prob(85))
+42 -1
View File
@@ -1,5 +1,46 @@
/mob/living/carbon/monkey/gib()
death(1)
var/atom/movable/overlay/animation = null
monkeyizing = 1
canmove = 0
icon = null
invisibility = 101
animation = new(loc)
animation.icon_state = "blank"
animation.icon = 'mob.dmi'
animation.master = src
flick("gibbed-m", animation)
gibs(loc, viruses, dna)
spawn(15)
if(animation) del(animation)
if(src) del(src)
/mob/living/carbon/monkey/dust()
death(1)
var/atom/movable/overlay/animation = null
monkeyizing = 1
canmove = 0
icon = null
invisibility = 101
animation = new(loc)
animation.icon_state = "blank"
animation.icon = 'mob.dmi'
animation.master = src
flick("dust-m", animation)
new /obj/effect/decal/ash(loc)
spawn(15)
if(animation) del(animation)
if(src) del(src)
/mob/living/carbon/monkey/death(gibbed)
if(src.stat == 2)
if(src.stat == DEAD)
return
if (src.healths)
+39
View File
@@ -0,0 +1,39 @@
/mob/living/silicon/gib()
death(1)
var/atom/movable/overlay/animation = null
monkeyizing = 1
canmove = 0
icon = null
invisibility = 101
animation = new(loc)
animation.icon_state = "blank"
animation.icon = 'mob.dmi'
animation.master = src
// flick("gibbed-r", animation)
robogibs(loc, viruses)
spawn(15)
if(animation) del(animation)
if(src) del(src)
/mob/living/silicon/dust()
death(1)
var/atom/movable/overlay/animation = null
monkeyizing = 1
canmove = 0
icon = null
invisibility = 101
animation = new(loc)
animation.icon_state = "blank"
animation.icon = 'mob.dmi'
animation.master = src
// flick("dust-r", animation)
new /obj/effect/decal/remains/robot(loc)
spawn(15)
if(animation) del(animation)
if(src) del(src)
@@ -1,3 +1,45 @@
/mob/living/silicon/robot/gib()
//robots don't die when gibbed. instead they drop their MMI'd brain
var/atom/movable/overlay/animation = null
monkeyizing = 1
canmove = 0
icon = null
invisibility = 101
animation = new(loc)
animation.icon_state = "blank"
animation.icon = 'mob.dmi'
animation.master = src
flick("gibbed-r", animation)
robogibs(loc, viruses)
spawn(15)
if(animation) del(animation)
if(src) del(src)
/mob/living/silicon/robot/dust()
death(1)
var/atom/movable/overlay/animation = null
monkeyizing = 1
canmove = 0
icon = null
invisibility = 101
animation = new(loc)
animation.icon_state = "blank"
animation.icon = 'mob.dmi'
animation.master = src
flick("dust-r", animation)
new /obj/effect/decal/remains/robot(loc)
if(mmi) del(mmi) //Delete the MMI first so that it won't go popping out.
spawn(15)
if(animation) del(animation)
if(src) del(src)
/mob/living/silicon/robot/death(gibbed)
if (!gibbed)
src.emote("deathgasp")
-130
View File
@@ -103,38 +103,6 @@
/mob/proc/update_clothing()
return
/mob/proc/death(gibbed)
timeofdeath = world.time
var/cancel = 0
for(var/mob/M in world)
if(M.client && (M.stat != DEAD))
cancel = 1
break
if(!cancel)
world << "<B>Everyone is dead! Resetting in 30 seconds!</B>"
spawn(300)
for(var/mob/M in world)
if(M.client && (M.stat != DEAD))
world << "Aborting world restart!"
return
feedback_set_details("end_error","no live players")
if(blackbox)
blackbox.save_all_data_to_sql()
sleep(50)
log_game("Rebooting because of no live players")
world.Reboot()
return
return ..(gibbed)
/mob/proc/restrained()
if (handcuffed)
return 1
@@ -747,104 +715,6 @@
for(var/mob/M in viewers())
M.see(message)
//This is the proc for gibbing a mob. Cannot gib ghosts.
//added different sort of gibs and animations. N
/mob/proc/gib()
if (istype(src, /mob/dead/observer))
gibs(loc, viruses)
return
if(!isrobot(src))//Cyborgs no-longer "die" when gibbed.
death(1)
var/atom/movable/overlay/animation = null
monkeyizing = 1
canmove = 0
icon = null
invisibility = 101
animation = new(loc)
animation.icon_state = "blank"
animation.icon = 'mob.dmi'
animation.master = src
if(ishuman(src))
flick("gibbed-h", animation)
else if(ismonkey(src))
flick("gibbed-m", animation)
else if(ismetroid(src))
flick("gibbed-m", animation)
else if(iscrab(src))
flick("gibbed-m", animation)
else if(iscorgi(src))
flick("gibbed-m", animation)
else if(iscat(src))
flick("gibbed-m", animation) //New-has monkey gib effect versus robogib
else if(isalien(src))
flick("gibbed-a", animation)
else
flick("gibbed-r", animation)
spawn()
if(key)
if(istype(src, /mob/living/silicon))
robogibs(loc, viruses)
else if (istype(src, /mob/living/carbon/alien))
xgibs(loc, viruses)
else
gibs(loc, viruses, dna)
/* else if(key)
if(istype(src, /mob/living/simple_animals)) //Should gib all simple_animals like a monkey
gibs(loc, viruses)
else if (istype(src, /mob/living/simple_animals))
gibs(loc, viruses)
Currently doesn't work, but should be useful later or at least as a template
*/
else
if(istype(src, /mob/living/silicon))
robogibs(loc, viruses)
else if(istype(src, /mob/living/carbon/alien))
xgibs(loc, viruses)
else
gibs(loc, viruses, dna)
sleep(15)
del(src)
/*
This is the proc for turning a mob into ash. Mostly a copy of gib code (above).
Originally created for wizard disintegrate. I've removed the virus code since it's irrelevant here.
Dusting robots does not eject the MMI, so it's a bit more powerful than gib() /N
*/
/mob/proc/dust()
death(1)
var/atom/movable/overlay/animation = null
monkeyizing = 1
canmove = 0
icon = null
invisibility = 101
animation = new(loc)
animation.icon_state = "blank"
animation.icon = 'mob.dmi'
animation.master = src
if(ishuman(src))
flick("dust-h", animation)
new /obj/effect/decal/remains/human(loc)
else if(ismonkey(src))
flick("dust-m", animation)
new /obj/effect/decal/remains/human(loc)
else if(isalien(src))
flick("dust-a", animation)
new /obj/effect/decal/remains/xeno(loc)
else
flick("dust-r", animation)
new /obj/effect/decal/remains/robot(loc)
sleep(15)
if(isrobot(src)&&src:mmi)//Is a robot and it has an mmi.
del(src:mmi)//Delete the MMI first so that it won't go popping out.
del(src)
/*
adds a dizziness amount to a mob
use this rather than directly changing var/dizziness