From ed7c6d12594388ff8b05a934108418f4ca0f5090 Mon Sep 17 00:00:00 2001 From: SkyMarshal Date: Mon, 27 Feb 2012 18:33:00 -0700 Subject: [PATCH 1/2] Fixed lasers being stupidly intensive on the CPU, balanced nuke proportions some. --- code/game/gamemodes/nuclear/nuclear.dm | 6 ++-- code/modules/projectiles/projectile/beams.dm | 30 ++++++++++++-------- 2 files changed, 22 insertions(+), 14 deletions(-) diff --git a/code/game/gamemodes/nuclear/nuclear.dm b/code/game/gamemodes/nuclear/nuclear.dm index f077dc9b5a1..e058b359845 100644 --- a/code/game/gamemodes/nuclear/nuclear.dm +++ b/code/game/gamemodes/nuclear/nuclear.dm @@ -43,8 +43,10 @@ agent_number = possible_syndicates.len var/n_players = num_players() - if(agent_number > n_players) - agent_number = n_players/2 + if(agent_number > (n_players - agent_number)) + agent_number = (n_players - agent_number)/2 + if(agent_number < required_enemies) + agent_number = required_enemies while(agent_number > 0) var/datum/mind/new_syndicate = pick(possible_syndicates) diff --git a/code/modules/projectiles/projectile/beams.dm b/code/modules/projectiles/projectile/beams.dm index 220d5add65a..7812fe4bff3 100644 --- a/code/modules/projectiles/projectile/beams.dm +++ b/code/modules/projectiles/projectile/beams.dm @@ -12,9 +12,13 @@ process() main = 1 ID = rand(0,1000) - var/lets_not_be_a_derp = 1 + var/first = 1 + var/obj/effect/effect/laserdealer/lasor = new /obj/effect/effect/laserdealer(null) + spawn(0) + lasor.setup(ID) spawn(0) while(!bumped) + step_towards(src, current) for(var/mob/living/M in loc) Bump(M) if((!( current ) || loc == current)) @@ -22,25 +26,27 @@ if((x == 1 || x == world.maxx || y == 1 || y == world.maxy)) del(src) return - if(!lets_not_be_a_derp) + if(!first) var/obj/item/projectile/beam/new_beam = new src.type(loc) processing_objects.Remove(new_beam) - new_beam.dir = dir + new_beam.dir = get_dir(src, current) new_beam.ID = ID + new_beam.icon_state = icon_state else - lets_not_be_a_derp = 0 - step_towards(src, current) + first = 0 processing_objects.Remove(src) return - Del() - if(main) - sleep(3) - for(var/obj/item/projectile/beam/beam in world) - if(beam.ID == ID) - del(beam) - ..() +/obj/effect/effect/laserdealer + name = "laserdealio" + proc/setup(var/ID = 0) + sleep(5) + for(var/obj/item/projectile/beam/beam in world) + if(ID == beam.ID) + del(beam) + spawn(0) + del(src) /obj/item/projectile/beam/heavylaser name = "heavy laser" From b653c615be22abfbc4aceb6cfe97921c9b3f7d1c Mon Sep 17 00:00:00 2001 From: SkyMarshal Date: Tue, 28 Feb 2012 00:11:15 -0700 Subject: [PATCH 2/2] Replaced a lot of stupid from the wardrobes and package wrap, they now use an afterattack call instead of specific code for them in EVERY OTHER ITEM. Improved the admin panel. Removed Karma. --- baystation12.dme | 2 +- code/WorkInProgress/SkyMarshal/wardrobes.dm | 96 +++--- code/defines/client.dm | 2 - code/defines/mob/mob.dm | 2 + code/defines/procs/statistics.dm | 69 ----- code/game/objects/items/item.dm | 28 +- code/modules/admin/admin.dm | 308 +------------------- code/modules/admin/admin_verbs.dm | 21 +- code/modules/admin/player_panel.dm | 161 ++++++++++ code/modules/chemical/Chemistry-Tools.dm | 27 -- code/modules/mob/dead/observer/observer.dm | 57 +--- code/modules/mob/new_player/new_player.dm | 1 + code/modules/mob/new_player/preferences.dm | 1 + code/modules/mob/say.dm | 12 +- code/modules/projectiles/gun.dm | 1 + code/modules/projectiles/guns/projectile.dm | 1 - code/modules/recycling/sortingmachinery.dm | 42 +-- 17 files changed, 275 insertions(+), 556 deletions(-) create mode 100644 code/modules/admin/player_panel.dm diff --git a/baystation12.dme b/baystation12.dme index f15f4d309ce..e4719049f32 100644 --- a/baystation12.dme +++ b/baystation12.dme @@ -729,7 +729,6 @@ #include "code\game\objects\tanks\oxygen.dm" #include "code\game\player\news.dm" #include "code\game\verbs\AI_status.dm" -#include "code\game\verbs\checkkarma.dm" #include "code\game\verbs\ooc.dm" #include "code\game\verbs\sound.dm" #include "code\game\verbs\suicide.dm" @@ -744,6 +743,7 @@ #include "code\modules\admin\create_turf.dm" #include "code\modules\admin\NewBan.dm" #include "code\modules\admin\newbanjob.dm" +#include "code\modules\admin\player_panel.dm" #include "code\modules\admin\verbs\adminhelp.dm" #include "code\modules\admin\verbs\adminjump.dm" #include "code\modules\admin\verbs\adminsay.dm" diff --git a/code/WorkInProgress/SkyMarshal/wardrobes.dm b/code/WorkInProgress/SkyMarshal/wardrobes.dm index 3dd9bb2837b..c20b69da825 100755 --- a/code/WorkInProgress/SkyMarshal/wardrobes.dm +++ b/code/WorkInProgress/SkyMarshal/wardrobes.dm @@ -1,5 +1,5 @@ /obj/item/wardrobe - name = "wardrobe" + name = "\improper Wardrobe" desc = "A standard-issue bag for clothing and equipment. Usually comes sealed, stocked with everything you need for a particular job." icon = 'suits.dmi' icon_state = "wardrobe_sealed" @@ -37,14 +37,38 @@ user << "\red There's not enough space to fit that!" return - examine() - set src in usr - ..() - usr << "It claims to contain [contents.len ? descriptor : descriptor + "... but it looks empty"]." - if(seal_torn && !contents.len) - usr << "The seal on the bag is broken." + afterattack(atom/A as obj|turf, mob/user as mob) + if(A in user) + return + if(!istype(A.loc,/turf)) + user << "It's got to be on the ground to do that!" + return + var/could_fill = 1 + for (var/obj/O in locate(A.x,A.y,A.z)) + if (contents.len < 20) + if(istype(O,/obj/item/wardrobe)) + continue + if(O.anchored || O.density || istype(O,/obj/structure)) + continue + contents += O; + else + could_fill = 0 + break + if(could_fill) + user << "\blue You pick up all the items." else - usr << "The seal on the bag is[seal_torn ? ", however, not intact" : " intact"]." + user << "\blue You try to pick up all of the items, but run out of space in the bag." + user.visible_message("\blue [user] gathers up[could_fill ? " " : " most of "]the pile of items and puts it into [src].") + update_icon() + + examine() + ..() + if(src in usr) + usr << "It claims to contain [contents.len ? descriptor : descriptor + "... but it looks empty"]." + if(seal_torn && !contents.len) + usr << "The seal on the bag is broken." + else + usr << "The seal on the bag is[seal_torn ? ", however, not intact" : " intact"]." return update_icon() @@ -60,7 +84,7 @@ pixel_y = rand(0,4) -2 /obj/item/wardrobe/assistant - name = "assistant wardrobe" + name = "\improper Assistant Wardrobe" descriptor = "clothing and basic equipment for an assistant" New() @@ -74,7 +98,7 @@ new /obj/item/clothing/under/color/grey(src) /obj/item/wardrobe/chief_engineer - name = "Chief Engineer wardrobe" + name = "\improper Chief Engineer Wardrobe" descriptor = "clothing and basic equipment for a Chief Engineer" New() @@ -98,7 +122,7 @@ new /obj/item/clothing/under/rank/chief_engineer(src) /obj/item/wardrobe/engineer - name = "Station Engineer wardrobe" + name = "\improper Station Engineer Wardrobe" descriptor = "clothing and basic equipment for a Station Engineer" New() @@ -119,7 +143,7 @@ new /obj/item/clothing/under/rank/engineer(src) /obj/item/wardrobe/atmos - name = "Atmospheric Technician wardrobe" + name = "\improper Atmospheric Technician Wardrobe" descriptor = "clothing and basic equipment for an Atmospheric Technician" New() @@ -134,7 +158,7 @@ new /obj/item/clothing/under/rank/atmospheric_technician(src) /obj/item/wardrobe/roboticist - name = "Roboticist wardrobe" + name = "\improper Roboticist Wardrobe" descriptor = "clothing and basic equipment for a Roboticist" New() @@ -151,7 +175,7 @@ new /obj/item/clothing/under/rank/roboticist(src) /obj/item/wardrobe/chaplain - name = "Chaplain wardrobe" + name = "\improper Chaplain Wardrobe" descriptor = "clothing and basic equipment for a Chaplain" New() @@ -166,7 +190,7 @@ new /obj/item/clothing/under/rank/chaplain(src) /obj/item/wardrobe/captain - name = "Captain wardrobe" + name = "\improper Captain Wardrobe" descriptor = "clothing and basic equipment for a Captain" New() @@ -189,7 +213,7 @@ new /obj/item/clothing/under/rank/captain(src) /obj/item/wardrobe/hop - name = "Head of Personnel wardrobe" + name = "\improper Head of Personnel Wardrobe" descriptor = "clothing and basic equipment for a Head of Personnel" New() @@ -210,7 +234,7 @@ new /obj/item/clothing/under/rank/head_of_personnel(src) /obj/item/wardrobe/cmo - name = "Chief Medical Officer wardrobe" + name = "\improper Chief Medical Officer Wardrobe" descriptor = "clothing and basic equipment for a Chief Medical Officer" New() @@ -230,7 +254,7 @@ new /obj/item/clothing/under/rank/chief_medical_officer(src) /obj/item/wardrobe/doctor - name = "Medical Doctor wardrobe" + name = "\improper Medical Doctor Wardrobe" descriptor = "clothing and basic equipment for a Medical Doctor" New() @@ -250,7 +274,7 @@ new /obj/item/clothing/under/rank/medical(src) /obj/item/wardrobe/geneticist - name = "Geneticist wardrobe" + name = "\improper Geneticist Wardrobe" descriptor = "clothing and basic equipment for a Geneticist" New() @@ -266,7 +290,7 @@ new /obj/item/clothing/under/rank/geneticist(src) /obj/item/wardrobe/virologist - name = "Virologist wardrobe" + name = "\improper Virologist Wardrobe" descriptor = "clothing and basic equipment for a Virologist" New() @@ -283,7 +307,7 @@ new /obj/item/clothing/under/rank/medical(src) /obj/item/wardrobe/rd - name = "Research Director wardrobe" + name = "\improper Research Director Wardrobe" descriptor = "clothing and basic equipment for a Research Director" New() @@ -304,7 +328,7 @@ new /obj/item/clothing/under/rank/research_director(src) /obj/item/wardrobe/scientist - name = "Scientist wardrobe" + name = "\improper Scientist Wardrobe" descriptor = "clothing and basic equipment for a Scientist" New() @@ -321,7 +345,7 @@ new /obj/item/clothing/under/rank/scientist(src) /obj/item/wardrobe/chemist - name = "Chemist wardrobe" + name = "\improper Chemist Wardrobe" descriptor = "clothing and basic equipment for a Chemist" New() @@ -336,7 +360,7 @@ new /obj/item/clothing/suit/storage/labcoat/chemist(src) /obj/item/wardrobe/hos - name = "Head of Security wardrobe" + name = "\improper Head of Security Wardrobe" descriptor = "clothing and basic equipment for a Head of Security" New() @@ -359,7 +383,7 @@ new /obj/item/clothing/under/rank/head_of_security(src) /obj/item/wardrobe/warden - name = "Warden wardrobe" + name = "\improper Warden Wardrobe" descriptor = "clothing and basic equipment for a Warden" New() @@ -382,7 +406,7 @@ new /obj/item/clothing/under/rank/warden(src) /obj/item/wardrobe/detective - name = "Detective wardrobe" + name = "\improper Detective Wardrobe" descriptor = "clothing and basic equipment for a Detective" New() @@ -404,7 +428,7 @@ new /obj/item/clothing/under/det(src) /obj/item/wardrobe/officer - name = "Security Officer wardrobe" + name = "\improper Security Officer Wardrobe" descriptor = "clothing and basic equipment for a Security Officer" New() @@ -432,7 +456,7 @@ /obj/item/wardrobe/bartender - name = "Bartender wardrobe" + name = "\improper Bartender Wardrobe" descriptor = "clothing and basic equipment for a Bartender" New() @@ -450,7 +474,7 @@ new /obj/item/clothing/under/rank/bartender(src) /obj/item/wardrobe/chef - name = "Chef wardrobe" + name = "\improper Chef Wardrobe" descriptor = "clothing and basic equipment for a Chef" New() @@ -465,7 +489,7 @@ new /obj/item/clothing/under/rank/chef(src) /obj/item/wardrobe/hydro - name = "Botanist wardrobe" + name = "\improper Botanist Wardrobe" descriptor = "clothing and basic equipment for a Botanist" New() @@ -481,7 +505,7 @@ new /obj/item/clothing/under/rank/hydroponics(src) /obj/item/wardrobe/qm - name = "Quartermaster wardrobe" + name = "\improper Quartermaster Wardrobe" descriptor = "clothing and basic equipment for a Quartermaster" New() @@ -497,7 +521,7 @@ new /obj/item/clothing/under/rank/cargo(src) /obj/item/wardrobe/cargo_tech - name = "Cargo Technician wardrobe" + name = "\improper Cargo Technician Wardrobe" descriptor = "clothing and basic equipment for a Cargo Technician" New() @@ -511,7 +535,7 @@ new /obj/item/clothing/under/rank/cargo(src) /obj/item/wardrobe/mining - name = "Shaft Miner wardrobe" + name = "\improper Shaft Miner Wardrobe" descriptor = "clothing and basic equipment for a Shaft Miner" New() @@ -531,7 +555,7 @@ new /obj/item/clothing/under/rank/miner(src) /obj/item/wardrobe/janitor - name = "Janitor wardrobe" + name = "\improper Janitor Wardrobe" descriptor = "clothing and basic equipment for a Janitor" New() @@ -544,7 +568,7 @@ new /obj/item/clothing/under/rank/janitor(src) /obj/item/wardrobe/librarian - name = "Librarian wardrobe" + name = "\improper Librarian Wardrobe" descriptor = "clothing and basic equipment for a Librarian" New() @@ -557,7 +581,7 @@ new /obj/item/clothing/under/suit_jacket/red(src) /obj/item/wardrobe/lawyer - name = "Lawyer wardrobe" + name = "\improper Lawyer Wardrobe" descriptor = "clothing and basic equipment for a Lawyer" New() diff --git a/code/defines/client.dm b/code/defines/client.dm index d246ad89521..177ae1dcdd5 100644 --- a/code/defines/client.dm +++ b/code/defines/client.dm @@ -27,8 +27,6 @@ var/played = 0 var/team = null var/warned = 0 - var/karma = 0 - var/karma_spent = 0 var/STFU_ghosts //80+ people rounds are fun to admin when text flies faster than airport security var/STFU_radio //80+ people rounds are fun to admin when text flies faster than airport security diff --git a/code/defines/mob/mob.dm b/code/defines/mob/mob.dm index 1b1466769d7..6bc1b6de22d 100644 --- a/code/defines/mob/mob.dm +++ b/code/defines/mob/mob.dm @@ -256,6 +256,8 @@ the mob is also allowed to move without any sort of restriction. For instance, i var/grav_delay = 0 var/being_strangled = 0 + var/original_name = null //Original name is only used in ghost chat! It is not to be edited by anything! + /mob/proc/contract_disease(var/datum/disease/virus, var/skip_this = 0, var/force_species_check=1) // world << "Contract_disease called by [src] with virus [virus]" if(stat >=2) return diff --git a/code/defines/procs/statistics.dm b/code/defines/procs/statistics.dm index 824f8ac57d8..5cb93676266 100644 --- a/code/defines/procs/statistics.dm +++ b/code/defines/procs/statistics.dm @@ -46,75 +46,6 @@ proc/sql_report_round_end() if(!sqllogging) return -proc/sql_report_karma(var/mob/spender, var/mob/receiver, var/isnegative = 1) - if(!sqllogging) - return - var/sqlspendername = spender.name - var/sqlspenderkey = spender.key - var/sqlreceivername = receiver.name - var/sqlreceiverkey = receiver.key - var/sqlreceiverrole = "None" - var/sqlreceiverspecial = "None" - var/sqlisnegative = "TRUE" - - if(isnegative) - sqlisnegative = "TRUE" - else - sqlisnegative = "FALSE" - - var/sqlspenderip = spender.client.address - - if(receiver.mind) - if(receiver.mind.special_role) - sqlreceiverspecial = receiver.mind.special_role - if(receiver.mind.assigned_role) - sqlreceiverrole = receiver.mind.assigned_role - - var/DBConnection/dbcon = new() - dbcon.Connect("dbi:mysql:[sqldb]:[sqladdress]:[sqlport]","[sqllogin]","[sqlpass]") - if(!dbcon.IsConnected()) - log_game("SQL ERROR during karma logging. Failed to connect.") - else - var/sqltime = time2text(world.realtime, "YYYY-MM-DD hh:mm:ss") - var/DBQuery/query = dbcon.NewQuery("INSERT INTO karma (spendername, spenderkey, receivername, receiverkey, receiverrole, receiverspecial, isnegative, spenderip, time) VALUES ('[sqlspendername]', '[sqlspenderkey]', '[sqlreceivername]', '[sqlreceiverkey]', '[sqlreceiverrole]', '[sqlreceiverspecial]', [sqlisnegative], '[sqlspenderip]', '[sqltime]')") - if(!query.Execute()) - var/err = query.ErrorMsg() - log_game("SQL ERROR during karma logging. Error : \[[err]\]\n") - - - query = dbcon.NewQuery("SELECT * FROM karmatotals WHERE byondkey='[receiver.key]'") - query.Execute() - - var/karma - var/id - while(query.NextRow()) - id = query.item[1] - karma = text2num(query.item[3]) - if(karma == null) - if(isnegative) - karma = -1 - else - karma = 1 - query = dbcon.NewQuery("INSERT INTO karmatotals (byondkey, karma) VALUES ('[receiver.key]', [karma])") - if(!query.Execute()) - var/err = query.ErrorMsg() - log_game("SQL ERROR during karmatotal logging (adding new key). Error : \[[err]\]\n") - else - if(isnegative && sqlreceiverspecial != "None") // Toss out negative karma applied to traitors/wizards/etc. - dbcon.Disconnect() - return - if(isnegative) - karma -= 1 - else - karma += 1 - - query = dbcon.NewQuery("UPDATE karmatotals SET karma=[karma] WHERE id=[id]") - if(!query.Execute()) - var/err = query.ErrorMsg() - log_game("SQL ERROR during karmatotal logging (updating existing entry). Error : \[[err]\]\n") - dbcon.Disconnect() - - proc/sql_report_death(var/mob/living/carbon/human/H) if(!sqllogging) return diff --git a/code/game/objects/items/item.dm b/code/game/objects/items/item.dm index 0cd654e7ba7..7b7b0ff1b8b 100755 --- a/code/game/objects/items/item.dm +++ b/code/game/objects/items/item.dm @@ -200,6 +200,7 @@ user.update_clothing() return +/* /obj/item/attackby(obj/item/W as obj, mob/user as mob) if(istype(W, /obj/item/device/detective_scanner)) return @@ -222,32 +223,7 @@ var/obj/item/smallDelivery/P = new /obj/item/smallDelivery(location) P.wrapped = src src.loc = P - O.amount -= 1 - else if(istype(W,/obj/item/wardrobe)) - if(src in user) - return - if(!istype(src.loc,/turf)) - user << "It's got to be on the ground to do that!" - return - var/obj/item/wardrobe/I = W - var/could_fill = 1 - for (var/obj/O in locate(src.x,src.y,src.z)) - if (I.contents.len < 20) - if(istype(O,/obj/item/wardrobe)) - continue - if(O.anchored || O.density || istype(O,/obj/structure)) - continue - I.contents += O; - else - could_fill = 0 - break - - if(could_fill) - user << "\blue You pick up all the items." - else - user << "\blue You try to pick up all of the items, but run out of space in the bag." - user.visible_message("\blue [user] gathers up[could_fill ? " " : " most of "]the pile of items and puts it into the [W].") - I.update_icon() + O.amount -= 1*/ /obj/item/attack_self(mob/user as mob) ..() diff --git a/code/modules/admin/admin.dm b/code/modules/admin/admin.dm index 7ba2f17de5c..4cb7a48f3ea 100644 --- a/code/modules/admin/admin.dm +++ b/code/modules/admin/admin.dm @@ -923,7 +923,7 @@ return var/mob/M = locate(href_list["traitor"]) if (!istype(M)) - player() + player_panel_new() return if(isalien(M)) alert("Is an [M.mind ? M.mind.special_role : "Alien"]!", "[M.key]") @@ -1863,312 +1863,6 @@ dat += "" usr << browse(dat, "window=adminplayerinfo;size=480x480") -/obj/admins/proc/player() - if (!usr.client.holder) - return - var/dat = "Player Panel" - - //javascript, the part that does most of the work~ - dat += {" - - - - - - - "} - - //body tag start + onload and onkeypress (onkeyup) javascript event calls - dat += "" - - //title + search bar - dat += {" - - - - - - - - -
- Player panel
- Hover over a line to see more information -

-

- Search: -
- - "} - - //player table header - dat += {" - - "} - - var/list/mobs = sortmobs() - var/i = 1 - var/show_karma = 0 - var/DBConnection/dbcon - if(config.sql_enabled) // SQL is enabled in config.txt - dbcon = new() // Setting up connection - dbcon.Connect("dbi:mysql:[sqldb]:[sqladdress]:[sqlport]","[sqllogin]","[sqlpass]") - if(dbcon.IsConnected()) - show_karma = 1 - else - usr << "\red Unable to connect to karma database. This error can occur if your host has failed to set up an SQL database or improperly configured its login credentials.
" - - - for(var/mob/M in mobs) - if(M.ckey) - var/color = "#e6e6e6" - if(i%2 == 0) - color = "#f2f2f2" - var/is_antagonist = is_special_character(M) - - var/karma = "DC" - - if(show_karma) - - var/DBQuery/query = dbcon.NewQuery("SELECT karma FROM karmatotals WHERE byondkey='[M.key]'") - query.Execute() - - while(query.NextRow()) - karma = query.item[1] - - var/job = "" - - if(istype(M,/mob/new_player)) - job = "New player" - if(isliving(M)) - job = "Living" - if(isobserver(M)) - job = "Ghost" - if(isalien(M)) - job = "Alien" - if(islarva(M)) - job = "Alien larva" - if(ishuman(M)) - job = M.job - if(ismetroid(M)) - job = "Metroid" - if(ismonkey(M)) - job = "Moneky" - if(isAI(M)) - job = "AI" - if(ispAI(M)) - job = "pAI" - if(isrobot(M)) - job = "Cyborg" - if(isanimal(M)) - job = "Animal" - if(iscorgi(M)) - job = "Corgi" - - //output for each mob - dat += {" - - - - - - "} - - i++ - - - //player table ending - dat += {" -
- - - [M.name] - [M.real_name] - [M.key] ([job]) - -
-
-
- - - - "} - - usr << browse(dat, "window=players;size=600x480") - /obj/admins/proc/Jobbans() if ((src.rank in list( "Game Admin", "Game Master" ))) var/dat = "Job Bans!
" diff --git a/code/modules/admin/admin_verbs.dm b/code/modules/admin/admin_verbs.dm index 15c2f7fb32b..80896c04e77 100644 --- a/code/modules/admin/admin_verbs.dm +++ b/code/modules/admin/admin_verbs.dm @@ -261,7 +261,8 @@ verbs += /client/proc/admin_play verbs += /client/proc/admin_observe verbs += /client/proc/game_panel - verbs += /client/proc/player_panel +// verbs += /client/proc/player_panel + verbs += /client/proc/player_panel_new verbs += /client/proc/unban_panel verbs += /client/proc/jobbans verbs += /client/proc/playernotes @@ -387,7 +388,8 @@ verbs -= /client/proc/admin_play verbs -= /client/proc/admin_observe verbs -= /client/proc/game_panel - verbs -= /client/proc/player_panel +// verbs -= /client/proc/player_panel + verbs -= /client/proc/player_panel_new verbs -= /client/proc/unban_panel verbs -= /client/proc/jobbans verbs -= /client/proc/playernotes @@ -477,11 +479,18 @@ src << "[M.key] is undefined - [M.client.holder.state]" -/client/proc/player_panel() +///client/proc/player_panel() +// set name = "Player Panel-Old" +// set category = "Admin" +// if(holder) +// holder.player_panel_old() +// return + +/client/proc/player_panel_new() set name = "Player Panel" set category = "Admin" - if (holder) - holder.player() + if(holder) + holder.player_panel_new() return /client/proc/jobbans() @@ -720,7 +729,7 @@ verbs += /client/proc/admin_play verbs += /client/proc/admin_observe verbs += /client/proc/game_panel - verbs += /client/proc/player_panel +// verbs += /client/proc/player_panel verbs += /client/proc/cmd_admin_subtle_message verbs += /client/proc/cmd_admin_pm verbs += /client/proc/cmd_admin_gib_self diff --git a/code/modules/admin/player_panel.dm b/code/modules/admin/player_panel.dm new file mode 100644 index 00000000000..c317f9f7073 --- /dev/null +++ b/code/modules/admin/player_panel.dm @@ -0,0 +1,161 @@ +/obj/admins/proc/player_panel_new()//The new one + if (!usr.client.holder) + return + var/dat = "Player Menu" + dat += "
" + //add to this if wanting to add back in IP checking + //add if you want to know their ip to the lists below + var/list/mobs = sortmobs() + var/i = 1 + + for(var/mob/M in mobs) + if(M.ckey) + var/color = "#e6e6e6" + if(i%2 == 0) + color = "#f2f2f2" + var/real = (M.real_name == M.original_name ? M.real_name : "[M.original_name] (as [M.real_name])") + var/turf/T = get_turf(M) + var/client_key = (M.key? M.key : "No key") + dat += "" // Adds current name + if(isobserver(M)) + dat += "" + if(isalien(M)) + dat += "" + if(islarva(M)) + dat += "" + if(ishuman(M)) + dat += "" + if(ismetroid(M)) + dat += "" + if(ismonkey(M)) + dat += "" + if(isAI(M)) + dat += "" + if(ispAI(M)) + dat += "" + if(isrobot(M)) + dat += "" + if(isanimal(M)) + dat += "" + if(iscorgi(M)) + dat += "" + + if(M.mind && M.mind.assigned_role && istype(M, /mob/living/carbon/human)) // Adds a column to Player Panel that shows their current job. + var/mob/living/carbon/human/H = M + + if (H.wear_id) + var/obj/item/weapon/card/id/id + + if(istype(H.wear_id, /obj/item/device/pda)) + var/obj/item/device/pda/PDA = H.wear_id + if(!isnull(PDA.id)) // The PDA may contain no ID + id = PDA.id // The ID is contained inside the PDA + + else + id = H.wear_id // The ID was on the ID slot + + if(!id) // Happens when there's no ID in the PDA located on the wear_id slot + dat += "" + + else if(isnull(id.assignment)) // Preventing runtime errors blocking the player panel + usr << "ERROR: Inform the coders that an [id.name] was checked for its assignment variable, and it was null." + dat += "" + + else + if(M.mind.assigned_role == id.assignment) // Polymorph + dat += "" + + else + dat += "" + + else + dat += "" + + var/muting = "Mute unavailable - no client" + if(M.client) + muting = {"Mute: [(M.client.muted ? "Muted" : "Voiced")] | + Complete mute: [(M.client.muted ? "Completely Muted" : "Voiced")] + "} + + dat += {" + + "} + + switch(is_special_character(M)) + if(0) + dat += {""} + if(1) + dat += {""} + if(2) + dat += {""} + + dat += "
Name/Real NameTypeAssigned JobInfoOptionsTraitor?
IP:(IP: [M.lastKnownIP])
[M.name] \[[real]\]
[M.client ? M.client : "No client ([client_key])"] at ([T.x], [T.y], [T.z])
GhostAlienAlien larva[M.job]MetroidMonkeyAIpAICyborgAnimalCorgi[M.mind.assigned_role] (No ID)ERROR[M.mind.assigned_role][M.mind.assigned_role] ([id.assignment])" + + else + dat += "[M.mind.assigned_role] (No ID)No Assigned Role[player_has_info(M.ckey) ? "Info" : "N/A"] Boot | Ban | Jobban +
[muting]
+ PP | + VV | + SM | + JMP | + CA
Traitor?Traitor?Traitor?
" + + usr << browse(dat, "window=players;size=905x480") + +//The old one +/obj/admins/proc/player_panel_old() + if (!usr.client.holder) + return + var/dat = "Player Menu" + dat += "" + //add to this if wanting to add back in IP checking + //add if you want to know their ip to the lists below + var/list/mobs = sortmobs() + + for(var/mob/M in mobs) + if(!M.ckey) continue + + dat += "" + if(isAI(M)) + dat += "" + else if(isrobot(M)) + dat += "" + else if(ishuman(M)) + dat += "" + else if(istype(M, /mob/living/silicon/pai)) + dat += "" + else if(istype(M, /mob/new_player)) + dat += "" + else if(isobserver(M)) + dat += "" + else if(ismonkey(M)) + dat += "" + else if(isalien(M)) + dat += "" + else + dat += "" + + + if(istype(M,/mob/living/carbon/human)) + var/mob/living/carbon/human/H = M + if(H.mind && H.mind.assigned_role) + dat += "" + else + dat += "" + + + dat += {" + + + "} + switch(is_special_character(M)) + if(0) + dat += {""} + if(1) + dat += {""} + if(2) + dat += {""} + + dat += "
NameReal NameAssigned JobKeyOptionsPMTraitor?
IP:(IP: [M.lastKnownIP])
[M.name]AICyborg[M.real_name]pAINew PlayerGhostMonkeyAlienUnknown[H.mind.assigned_role]NA[(M.client ? "[M.client]" : "No client")]XPMTraitor?Traitor?Traitor?
" + + usr << browse(dat, "window=players;size=640x480") \ No newline at end of file diff --git a/code/modules/chemical/Chemistry-Tools.dm b/code/modules/chemical/Chemistry-Tools.dm index da586839b8d..72e929e5bfd 100644 --- a/code/modules/chemical/Chemistry-Tools.dm +++ b/code/modules/chemical/Chemistry-Tools.dm @@ -29,7 +29,6 @@ attackby(var/obj/item/weapon/W, var/mob/user) - wrap(W,user) if(path || !active) switch(active) if(0) @@ -398,7 +397,6 @@ usr << "\blue [grenades] / [max_grenades] Grenades." attackby(obj/item/I as obj, mob/user as mob) - wrap(I,user) if((istype(I, /obj/item/weapon/chem_grenade)) || (istype(I, /obj/item/weapon/flashbang)) || (istype(I, /obj/item/weapon/smokebomb)) || (istype(I, /obj/item/weapon/mustardbomb)) || (istype(I, /obj/item/weapon/empgrenade))) if(grenades.len < max_grenades) user.drop_item() @@ -498,7 +496,6 @@ usr << "\blue [syringes] / [max_syringes] Syringes." attackby(obj/item/I as obj, mob/user as mob) - wrap(I,user) if(istype(I, /obj/item/weapon/reagent_containers/syringe)) if(syringes.len < max_syringes) user.drop_item() @@ -577,7 +574,6 @@ usr << "\blue [syringes] / [max_syringes] Syringes." attackby(obj/item/I as obj, mob/user as mob) - wrap(I,user) if(istype(I, /obj/item/weapon/reagent_containers/syringe)) if(syringes.len < max_syringes) user.drop_item() @@ -731,16 +727,10 @@ reagents = R R.my_atom = src - attackby(obj/item/weapon/W as obj, mob/user as mob) - wrap(W,user) - return attack_self(mob/user as mob) return attack(mob/M as mob, mob/user as mob, def_zone) return - attackby(obj/item/I as obj, mob/user as mob) - wrap(I,user) - return afterattack(obj/target, mob/user , flag) return @@ -1138,10 +1128,6 @@ attack_paw() return attack_hand() - attackby(obj/item/I as obj, mob/user as mob) - wrap(I,user) - return - afterattack(obj/target, mob/user , flag) if(!target.reagents) return @@ -1346,7 +1332,6 @@ return attackby(obj/item/weapon/W as obj, mob/user as mob) - wrap(W,user) return attack_self(mob/user as mob) return @@ -1475,7 +1460,6 @@ return 0 attackby(obj/item/I as obj, mob/user as mob) - wrap(I,user) return afterattack(obj/target, mob/user , flag) return @@ -1498,8 +1482,6 @@ var/slices_num attackby(obj/item/weapon/W as obj, mob/user as mob) - wrap(W,user) - if((slices_num <= 0 || !slices_num) || !slice_path) return 1 var/inaccurate = 0 @@ -1704,9 +1686,6 @@ if(!icon_state) icon_state = "pill[rand(1,20)]" - attackby(obj/item/weapon/W as obj, mob/user as mob) - wrap(W,user) - return attack_self(mob/user as mob) return attack(mob/M as mob, mob/user as mob, def_zone) @@ -1747,10 +1726,6 @@ return 0 - attackby(obj/item/I as obj, mob/user as mob) - wrap(I,user) - return - afterattack(obj/target, mob/user , flag) if(target.is_open_container() == 1 && target.reagents) @@ -2367,7 +2342,6 @@ volume = 50 attackby(obj/item/weapon/W as obj, mob/user as mob) - wrap(W,user) return attack_self(mob/user as mob) return @@ -2409,7 +2383,6 @@ return 0 attackby(obj/item/I as obj, mob/user as mob) - wrap(I,user) return afterattack(obj/target, mob/user , flag) diff --git a/code/modules/mob/dead/observer/observer.dm b/code/modules/mob/dead/observer/observer.dm index 4c901101262..5be108c5524 100644 --- a/code/modules/mob/dead/observer/observer.dm +++ b/code/modules/mob/dead/observer/observer.dm @@ -12,8 +12,9 @@ else//Safety, in case a turf cannot be found. loc = pick(latejoin) if(!istype(body,/mob)) return//This needs to be recoded sometime so it has loc as its first arg - real_name = body.real_name - name = body.real_name + real_name = body.name + original_name = body.original_name + name = body.original_name if(!safety) corpse = body verbs += /mob/dead/observer/proc/reenter_corpse @@ -157,58 +158,6 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp L+=T usr.loc = pick(L) -var/list/karma_spenders = list() - -/mob/dead/observer/verb/spend_karma(var/mob/M in world) // Karma system -- TLE - set name = "Spend Karma" - set category = "Ghost" - set desc = "Let the gods know whether someone's been naughty or nice. " - if(!istype(M, /mob)) - usr << "\red That's not a mob. You shouldn't have even been able to specify that. Please inform your server administrator post haste." - return - - if(!M.client) - usr << "\red That mob has no client connected at the moment." - return - if(client.karma_spent) - usr << "\red You've already spent your karma for the round." - return - for(var/a in karma_spenders) - if(a == key) - usr << "\red You've already spent your karma for the round." - return - if(M.key == key) - usr << "\red You can't spend karma on yourself!" - return - var/choice = input("Give [M.name] good karma or bad karma?", "Karma") in list("Good", "Bad", "Cancel") - client.karma_spent = 1 - if(!choice || choice == "Cancel") - return - client.karma_spent = 0 - if(choice == "Good") - M.client.karma += 1 - if(choice == "Bad") - M.client.karma -= 1 - usr << "[choice] karma spent on [M.name]." - client.karma_spent = 1 - karma_spenders.Add(key) - if(M.client.karma <= -2 || M.client.karma >= 2) - var/special_role = "None" - var/assigned_role = "None" - var/karma_diary = file("data/logs/karma_[time2text(world.realtime, "YYYY/MM-Month/DD-Day")].log") - if(M.mind) - if(M.mind.special_role) - special_role = M.mind.special_role - if(M.mind.assigned_role) - assigned_role = M.mind.assigned_role - karma_diary << "[M.name] ([M.key]) [assigned_role]/[special_role]: [M.client.karma] - [time2text(world.timeofday, "hh:mm:ss")]" - var/isnegative = 1 - if(choice == "Good") - isnegative = 0 - else - isnegative = 1 - sql_report_karma(src, M, isnegative) - /mob/dead/observer/verb/toggle_alien_candidate() set name = "Toggle Be Alien Candidate" set category = "Ghost" diff --git a/code/modules/mob/new_player/new_player.dm b/code/modules/mob/new_player/new_player.dm index 9e9d52bc227..65086efef59 100644 --- a/code/modules/mob/new_player/new_player.dm +++ b/code/modules/mob/new_player/new_player.dm @@ -208,6 +208,7 @@ preferences.randomize_name() observer.name = preferences.real_name observer.real_name = observer.name + observer.original_name = observer.name //Original name is only used in ghost chat! It is not to be edited by anything! del(src) return 1 diff --git a/code/modules/mob/new_player/preferences.dm b/code/modules/mob/new_player/preferences.dm index 7230aa9196d..3b4fef0cdae 100644 --- a/code/modules/mob/new_player/preferences.dm +++ b/code/modules/mob/new_player/preferences.dm @@ -827,6 +827,7 @@ datum/preferences if(be_random_name) randomize_name() character.real_name = real_name + character.original_name = real_name //Original name is only used in ghost chat! It is not to be edited by anything! character.flavor_text = flavor_text diff --git a/code/modules/mob/say.dm b/code/modules/mob/say.dm index 465c5738d4b..e923cb459a9 100644 --- a/code/modules/mob/say.dm +++ b/code/modules/mob/say.dm @@ -23,14 +23,10 @@ var/name = src.real_name var/alt_name = "" - if (istype(src, /mob/living/carbon/human) && src.name != src.real_name) - var/mob/living/carbon/human/H = src - alt_name = " (as [H.get_authentification_name()])" - else if (istype(src, /mob/dead/observer)) - name = "Ghost" - alt_name = " ([src.real_name])" - else if (!istype(src, /mob/living/carbon/human)) - name = src.name + if(original_name) //Original name is only used in ghost chat! It is not to be edited by anything! + name = src.original_name + if( original_name != real_name ) + alt_name = " (died as [src.real_name])" message = src.say_quote(message) diff --git a/code/modules/projectiles/gun.dm b/code/modules/projectiles/gun.dm index 71f4ed2678e..084002946f1 100644 --- a/code/modules/projectiles/gun.dm +++ b/code/modules/projectiles/gun.dm @@ -58,6 +58,7 @@ M.apply_damage(75, BRUTE, "head", used_weapon = "Suicide attempt with a gun") M.apply_damage(85, BRUTE, "chest") M.visible_message("\red [user] pulls the trigger. Ow.") + del(src.in_chamber) return else return ..() diff --git a/code/modules/projectiles/guns/projectile.dm b/code/modules/projectiles/guns/projectile.dm index fa65e654ee9..9d17671303f 100644 --- a/code/modules/projectiles/guns/projectile.dm +++ b/code/modules/projectiles/guns/projectile.dm @@ -38,7 +38,6 @@ attackby(var/obj/item/A as obj, mob/user as mob) - wrap(A, user) var/num_loaded = 0 if(istype(A, /obj/item/ammo_magazine)) if((load_method == 2) && loaded.len) return diff --git a/code/modules/recycling/sortingmachinery.dm b/code/modules/recycling/sortingmachinery.dm index 63b96a09cea..88a9d68f806 100755 --- a/code/modules/recycling/sortingmachinery.dm +++ b/code/modules/recycling/sortingmachinery.dm @@ -79,11 +79,11 @@ return examine() - set src in oview(4) - if(sortTag) - usr << "\blue It is labeled \"[sortTag]\"" - if(examtext) - usr << examtext + if(src in oview(4)) + if(sortTag) + usr << "\blue It is labeled \"[sortTag]\"" + if(examtext) + usr << examtext ..() return @@ -155,11 +155,11 @@ return examine() - set src in oview(4) - if(sortTag) - usr << "\blue It is labeled \"[sortTag]\"" - if(examtext) - usr << examtext + if(src in oview(4)) + if(sortTag) + usr << "\blue It is labeled \"[sortTag]\"" + if(examtext) + usr << examtext ..() return @@ -171,14 +171,19 @@ var/amount = 25.0 - attack(target as obj, mob/user as mob) + afterattack(target as obj, mob/user as mob) + if(istype(target, /obj/structure/table) || istype(target, /obj/structure/rack)) + return user.attack_log += text("\[[time_stamp()]\] Has used [src.name] on \ref[target]") -/* if (istype(target, /obj/item)) + if (istype(target, /obj/item)) var/obj/item/O = target if (src.amount > 1) var/obj/item/smallDelivery/P = new /obj/item/smallDelivery(get_turf(O.loc)) //Aaannd wrap it up! + if(!istype(O.loc, /turf)) + if(user.client) + user.client.screen -= O P.wrapped = O O.loc = P src.amount -= 1 @@ -201,9 +206,8 @@ O.loc = P src.amount -= 3 else - user << "\blue You need more paper." */ - - if(!(istype (target, /obj/structure/closet) || istype(target, /obj/structure/closet/crate) || istype(target, /obj/item))) + user << "\blue You need more paper." + else user << "\blue The object you are trying to wrap is unsuitable for the sorting machinery!" if (src.amount <= 0) new /obj/item/weapon/c_tube( src.loc ) @@ -213,12 +217,12 @@ return examine() - set src in usr - usr << "\blue There are [amount] units of package wrap left!" + if(src in usr) + usr << "\blue There are [amount] units of package wrap left!" ..() return -/obj/item/proc/wrap(obj/item/I as obj, mob/user as mob) +/*/obj/item/proc/wrap(obj/item/I as obj, mob/user as mob) if(istype(I, /obj/item/weapon/packageWrap)) var/obj/item/weapon/packageWrap/C = I if(anchored) @@ -231,7 +235,7 @@ if (C.amount <= 0) new /obj/item/weapon/c_tube( C.loc ) del(C) - return + return*/ /obj/item/device/destTagger name = "destination tagger"