diff --git a/code/game/jobs/job/security.dm b/code/game/jobs/job/security.dm
index 22661bcb35b..aed67eaa442 100644
--- a/code/game/jobs/job/security.dm
+++ b/code/game/jobs/job/security.dm
@@ -63,7 +63,7 @@
minimal_access = list(access_security, access_sec_doors, access_brig, access_armory, access_court, access_maint_tunnels, access_weapons)
minimal_player_age = 21
exp_requirements = 300
- exp_type = "Security"
+ exp_type = EXP_TYPE_CREW
equip(var/mob/living/carbon/human/H)
if(!H) return 0
diff --git a/code/game/jobs/job_exp.dm b/code/game/jobs/job_exp.dm
index caa59a57fa5..7d312b43319 100644
--- a/code/game/jobs/job_exp.dm
+++ b/code/game/jobs/job_exp.dm
@@ -29,21 +29,20 @@
return
var/msg = "
Playtime ReportPlaytime:
"
for(var/client/C in clients)
- var/list/play_records = params2list(C.prefs.exp)
- var/gen_exp_time = text2num(play_records[EXP_TYPE_CREW])
- gen_exp_time = num2text(round(gen_exp_time / 60)) + "h"
- msg += "- - [key_name_admin(C.mob)]: " + C.get_exp_general() + "
"
+ msg += "- - [key_name_admin(C)]: " + C.get_exp_general() + "
"
msg += "
"
src << browse(msg, "window=Player_playtime_check")
-/client/proc/cmd_show_exp_panel(var/client/C in clients)
+/datum/admins/proc/cmd_show_exp_panel(var/client/C)
+ if (!C)
+ return
if(!check_rights(R_ADMIN))
return
var/body = "Playtime for [C.key]
Playtime:"
body += C.get_exp_report()
body += ""
- src << browse(body, "window=playerplaytime;size=550x615")
+ usr << browse(body, "window=playerplaytime;size=550x615")
// Procs
@@ -57,7 +56,7 @@
if(!job_is_xp_locked(src.title))
return 0
if(check_rights(R_ADMIN, 0, C.mob))
- return 1
+ return 0
var/list/play_records = params2list(C.prefs.exp)
var/isexempt = text2num(play_records[EXP_TYPE_EXEMPT])
if(isexempt)
@@ -109,7 +108,11 @@
if(dep == EXP_TYPE_EXEMPT)
return_text += "Exempt (all jobs auto-unlocked)"
else if(exp_data[EXP_TYPE_CREW] > 0)
- return_text += "[dep] [get_exp_format(exp_data[dep])] (" + num2text(round(exp_data[dep]/exp_data[EXP_TYPE_CREW]*100)) + "%)"
+ var/my_pc = num2text(round(exp_data[dep]/exp_data[EXP_TYPE_CREW]*100))
+ return_text += "[dep] [get_exp_format(exp_data[dep])] ([my_pc]%)"
+ else
+ return_text += "[dep] [get_exp_format(exp_data[dep])] "
+
return_text += ""
var/list/jobs_locked = list()
var/list/jobs_unlocked = list()
@@ -123,7 +126,7 @@
var/xp_req = job.exp_requirements
if(config.use_exp_restrictions_heads_hours && ((job.title in command_positions) || job.title == "AI"))
xp_req = config.use_exp_restrictions_heads_hours * 60
- jobs_locked += job.title + " (" + get_exp_format(text2num(play_records[job.exp_type])) + " / " + get_exp_format(xp_req) + " [job.exp_type] EXP)"
+ jobs_locked += "[job.title] [get_exp_format(text2num(play_records[job.exp_type]))] / [get_exp_format(xp_req)] [job.exp_type] EXP)"
if(jobs_unlocked.len)
return_text += "
Jobs Unlocked: "
for(var/text in jobs_unlocked)
@@ -200,8 +203,9 @@
/hook/roundstart/proc/exptimer()
if(!config.sql_enabled || !config.use_exp_tracking)
- return 0
+ return 1
spawn(0)
while(TRUE)
sleep(5 MINUTES)
update_exp(5,0)
+ return 1
diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm
index 4d965ab38f8..85c826a5594 100644
--- a/code/modules/admin/topic.dm
+++ b/code/modules/admin/topic.dm
@@ -2021,7 +2021,7 @@
var/mob/M = locate(href_list["getplaytimewindow"])
if(!M)
return
- usr.client.cmd_show_exp_panel(M.client)
+ cmd_show_exp_panel(M.client)
else if(href_list["jumpto"])
if(!check_rights(R_ADMIN)) return
diff --git a/code/modules/mob/new_player/new_player.dm b/code/modules/mob/new_player/new_player.dm
index 97e07a71fb0..42293556481 100644
--- a/code/modules/mob/new_player/new_player.dm
+++ b/code/modules/mob/new_player/new_player.dm
@@ -244,9 +244,9 @@
if(!job.is_position_available()) return 0
if(jobban_isbanned(src,rank)) return 0
if(!is_job_whitelisted(src, rank)) return 0
- if(!job.player_old_enough(src.client)) return 0
+ if(!job.player_old_enough(client)) return 0
if(job.admin_only && !(check_rights(R_EVENT, 0))) return 0
- if(job.available_in_playtime(src.client))
+ if(job.available_in_playtime(client))
return 0
if(config.assistantlimit)