mirror of
https://github.com/Aurorastation/Aurora-Old.git
synced 2026-08-23 20:56:20 +01:00
Bay Update 02
This commit is contained in:
@@ -275,7 +275,7 @@ var/global/floorIsLava = 0
|
||||
I.rank = "N/A"
|
||||
update_file = 1
|
||||
dat += "<font color=#008800>[I.content]</font> <i>by [I.author] ([I.rank])</i> on <i><font color=blue>[I.timestamp]</i></font> "
|
||||
if(I.author == usr.key)
|
||||
if(I.author == usr.key || I.author == "Adminbot")
|
||||
dat += "<A href='?src=\ref[src];remove_player_info=[key];remove_index=[i]'>Remove</A>"
|
||||
dat += "<br><br>"
|
||||
if(update_file) info << infos
|
||||
@@ -1114,6 +1114,30 @@ var/global/floorIsLava = 0
|
||||
if(istype(H))
|
||||
H.regenerate_icons()
|
||||
|
||||
proc/get_options_bar(whom, detail = 2, name = 0, link = 1)
|
||||
if(!whom)
|
||||
return "<b>(*null*)</b>"
|
||||
var/mob/M
|
||||
var/client/C
|
||||
if(istype(whom, /client))
|
||||
C = whom
|
||||
M = C.mob
|
||||
else if(istype(whom, /mob))
|
||||
M = whom
|
||||
C = M.client
|
||||
else
|
||||
return "<b>(*not an mob*)</b>"
|
||||
switch(detail)
|
||||
if(0)
|
||||
return "<b>[key_name(C, link, name)]</b>"
|
||||
if(1)
|
||||
return "<b>[key_name(C, link, name)](<A HREF='?_src_=holder;adminmoreinfo=\ref[M]'>?</A>)</b>"
|
||||
if(2)
|
||||
var/ref_mob = "\ref[M]"
|
||||
return "<b>[key_name(C, link, name)](<A HREF='?_src_=holder;adminmoreinfo=[ref_mob]'>?</A>) (<A HREF='?_src_=holder;adminplayeropts=[ref_mob]'>PP</A>) (<A HREF='?_src_=vars;Vars=[ref_mob]'>VV</A>) (<A HREF='?_src_=holder;subtlemessage=[ref_mob]'>SM</A>) (<A HREF='?_src_=holder;adminplayerobservejump=[ref_mob]'>JMP</A>) (<A HREF='?_src_=holder;check_antagonist=1'>CA</A>)</b>"
|
||||
|
||||
|
||||
|
||||
//
|
||||
//
|
||||
//ALL DONE
|
||||
|
||||
@@ -6,7 +6,8 @@ var/list/admin_verbs_default = list(
|
||||
/client/proc/hide_verbs, /*hides all our adminverbs*/
|
||||
/client/proc/hide_most_verbs, /*hides all our hideable adminverbs*/
|
||||
/client/proc/debug_variables, /*allows us to -see- the variables of any instance in the game. +VAREDIT needed to modify*/
|
||||
/client/proc/check_antagonists /*shows all antags*/
|
||||
/client/proc/check_antagonists, /*shows all antags*/
|
||||
/client/proc/cmd_mentor_check_new_players
|
||||
// /client/proc/deadchat /*toggles deadchat on/off*/
|
||||
)
|
||||
var/list/admin_verbs_admin = list(
|
||||
@@ -69,6 +70,7 @@ var/list/admin_verbs_admin = list(
|
||||
/client/proc/toggleattacklogs,
|
||||
/client/proc/toggledebuglogs,
|
||||
/client/proc/toggleghostwriters,
|
||||
/client/proc/toggledrones,
|
||||
/datum/admins/proc/show_skills,
|
||||
/client/proc/check_customitem_activity,
|
||||
/client/proc/man_up,
|
||||
@@ -275,6 +277,8 @@ var/list/admin_verbs_mod = list(
|
||||
/client/proc/player_panel_new,
|
||||
/client/proc/dsay,
|
||||
/datum/admins/proc/show_skills,
|
||||
/datum/admins/proc/show_player_panel,
|
||||
/client/proc/check_antagonists,
|
||||
/client/proc/jobbans,
|
||||
/client/proc/cmd_admin_subtle_message /*send an message to somebody as a 'voice in their head'*/
|
||||
)
|
||||
@@ -566,24 +570,62 @@ var/list/admin_verbs_mod = list(
|
||||
set category = "Fun"
|
||||
set name = "Give Spell"
|
||||
set desc = "Gives a spell to a mob."
|
||||
var/obj/effect/proc_holder/spell/S = input("Choose the spell to give to that guy", "ABRAKADABRA") as null|anything in spells
|
||||
var/list/spell_names = list()
|
||||
for(var/v in spells)
|
||||
// "/obj/effect/proc_holder/spell/" 30 symbols ~Intercross21
|
||||
spell_names.Add(copytext("[v]", 31, 0))
|
||||
var/S = input("Choose the spell to give to that guy", "ABRAKADABRA") as null|anything in spell_names
|
||||
if(!S) return
|
||||
T.spell_list += new S
|
||||
var/path = text2path("/obj/effect/proc_holder/spell/[S]")
|
||||
T.spell_list += new path
|
||||
feedback_add_details("admin_verb","GS") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
log_admin("[key_name(usr)] gave [key_name(T)] the spell [S].")
|
||||
message_admins("\blue [key_name_admin(usr)] gave [key_name(T)] the spell [S].", 1)
|
||||
|
||||
/client/proc/give_disease(mob/T as mob in mob_list) // -- Giacom
|
||||
set category = "Fun"
|
||||
set name = "Give Disease"
|
||||
set desc = "Gives a Disease to a mob."
|
||||
var/datum/disease/D = input("Choose the disease to give to that guy", "ACHOO") as null|anything in diseases
|
||||
set name = "Give Disease (old)"
|
||||
set desc = "Gives a (tg-style) Disease to a mob."
|
||||
var/list/disease_names = list()
|
||||
for(var/v in diseases)
|
||||
// "/datum/disease/" 15 symbols ~Intercross
|
||||
disease_names.Add(copytext("[v]", 16, 0))
|
||||
var/datum/disease/D = input("Choose the disease to give to that guy", "ACHOO") as null|anything in disease_names
|
||||
if(!D) return
|
||||
T.contract_disease(new D, 1)
|
||||
var/path = text2path("/datum/disease/[D]")
|
||||
T.contract_disease(new path, 1)
|
||||
feedback_add_details("admin_verb","GD") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
log_admin("[key_name(usr)] gave [key_name(T)] the disease [D].")
|
||||
message_admins("\blue [key_name_admin(usr)] gave [key_name(T)] the disease [D].", 1)
|
||||
|
||||
/client/proc/give_disease2(mob/T as mob in mob_list) // -- Giacom
|
||||
set category = "Fun"
|
||||
set name = "Give Disease"
|
||||
set desc = "Gives a Disease to a mob."
|
||||
|
||||
var/datum/disease2/disease/D = new /datum/disease2/disease()
|
||||
|
||||
var/greater = ((input("Is this a lesser or greater disease?", "Give Disease") in list("Lesser", "Greater")) == "Greater")
|
||||
|
||||
D.makerandom(greater)
|
||||
if (!greater)
|
||||
D.infectionchance = 1
|
||||
|
||||
D.infectionchance = input("How virulent is this disease? (1-100)", "Give Disease", D.infectionchance) as num
|
||||
|
||||
if(istype(T,/mob/living/carbon/human))
|
||||
var/mob/living/carbon/human/H = T
|
||||
if (H.species)
|
||||
D.affected_species = list(H.species.name)
|
||||
if(istype(T,/mob/living/carbon/monkey))
|
||||
var/mob/living/carbon/monkey/M = T
|
||||
D.affected_species = list(M.greaterform)
|
||||
infect_virus2(T,D,1)
|
||||
|
||||
feedback_add_details("admin_verb","GD2") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
log_admin("[key_name(usr)] gave [key_name(T)] a [(greater)? "greater":"lesser"] disease2 with infection chance [D.infectionchance].")
|
||||
message_admins("\blue [key_name_admin(usr)] gave [key_name(T)] a [(greater)? "greater":"lesser"] disease2 with infection chance [D.infectionchance].", 1)
|
||||
|
||||
/client/proc/make_sound(var/obj/O in world) // -- TLE
|
||||
set category = "Special Verbs"
|
||||
set name = "Make Sound"
|
||||
@@ -702,6 +744,12 @@ var/list/admin_verbs_mod = list(
|
||||
M.g_eyes = hex2num(copytext(new_eyes, 4, 6))
|
||||
M.b_eyes = hex2num(copytext(new_eyes, 6, 8))
|
||||
|
||||
var/new_skin = input("Please select body color. This is for Tajaran, Unathi, and Skrell only!", "Character Generation") as color
|
||||
if(new_skin)
|
||||
M.r_skin = hex2num(copytext(new_skin, 2, 4))
|
||||
M.g_skin = hex2num(copytext(new_skin, 4, 6))
|
||||
M.b_skin = hex2num(copytext(new_skin, 6, 8))
|
||||
|
||||
var/new_tone = input("Please select skin tone level: 1-220 (1=albino, 35=caucasian, 150=black, 220='very' black)", "Character Generation") as text
|
||||
|
||||
if (new_tone)
|
||||
@@ -776,6 +824,19 @@ var/list/admin_verbs_mod = list(
|
||||
src << "<b>Enabled ghost writers.</b>"
|
||||
message_admins("Admin [key_name_admin(usr)] has enabled ghost writers.", 1)
|
||||
|
||||
/client/proc/toggledrones()
|
||||
set name = "Toggle maintenance drones"
|
||||
set category = "Server"
|
||||
if(!holder) return
|
||||
if(config)
|
||||
if(config.allow_drone_spawn)
|
||||
config.allow_drone_spawn = 0
|
||||
src << "<b>Disallowed maint drones.</b>"
|
||||
message_admins("Admin [key_name_admin(usr)] has disabled maint drones.", 1)
|
||||
else
|
||||
config.allow_drone_spawn = 1
|
||||
src << "<b>Enabled maint drones.</b>"
|
||||
message_admins("Admin [key_name_admin(usr)] has enabled maint drones.", 1)
|
||||
|
||||
/client/proc/toggledebuglogs()
|
||||
set name = "Toggle Debug Log Messages"
|
||||
|
||||
@@ -15,8 +15,9 @@
|
||||
var/quick_create_object_html = null
|
||||
var/pathtext = null
|
||||
|
||||
pathtext = input("Select the path of the object you wish to create.", "Path", "/obj") in list("/obj","/obj/structure","/obj/item","/obj/item/weapon","/obj/machinery")
|
||||
|
||||
pathtext = input("Select the path of the object you wish to create.", "Path", "/obj") as null|anything in list("/obj","/obj/structure","/obj/item","/obj/item/weapon","/obj/item/clothing","/obj/machinery","/obj/mecha")
|
||||
if(!pathtext)
|
||||
return
|
||||
var path = text2path(pathtext)
|
||||
|
||||
if (!quick_create_object_html)
|
||||
|
||||
@@ -152,3 +152,16 @@ datum/admins/proc/notes_gethtml(var/ckey)
|
||||
log_admin("[key_name(usr)] deleted one of [key]'s notes.")
|
||||
|
||||
del info
|
||||
|
||||
/proc/show_player_info_irc(var/key as text)
|
||||
var/dat = " Info on [key]%0D%0A"
|
||||
var/savefile/info = new("data/player_saves/[copytext(key, 1, 2)]/[key]/info.sav")
|
||||
var/list/infos
|
||||
info >> infos
|
||||
if(!infos)
|
||||
dat = "No information found on the given key."
|
||||
else
|
||||
for(var/datum/player_info/I in infos)
|
||||
dat += "[I.content]%0D%0Aby [I.author] ([I.rank]) on [I.timestamp]%0D%0A%0D%0A"
|
||||
|
||||
return dat
|
||||
|
||||
@@ -18,6 +18,8 @@ var/list/adminhelp_ignored_words = list("unknown","the","a","an","of","monkey","
|
||||
if(src.handle_spam_prevention(msg,MUTE_ADMINHELP))
|
||||
return
|
||||
|
||||
adminhelped = 1 //Determines if they get the message to reply by clicking the name.
|
||||
|
||||
/**src.verbs -= /client/verb/adminhelp
|
||||
|
||||
spawn(1200)
|
||||
@@ -31,6 +33,8 @@ var/list/adminhelp_ignored_words = list("unknown","the","a","an","of","monkey","
|
||||
if(!msg) return
|
||||
var/original_msg = msg
|
||||
|
||||
|
||||
|
||||
//explode the input msg into a list
|
||||
var/list/msglist = text2list(msg, " ")
|
||||
|
||||
@@ -87,7 +91,7 @@ var/list/adminhelp_ignored_words = list("unknown","the","a","an","of","monkey","
|
||||
if(!mob) return //this doesn't happen
|
||||
|
||||
var/ref_mob = "\ref[mob]"
|
||||
msg = "\blue <b><font color=red>HELP: </font>[key_name(src, 1)] (<A HREF='?_src_=holder;adminmoreinfo=[ref_mob]'>?</A>) (<A HREF='?_src_=holder;adminplayeropts=[ref_mob]'>PP</A>) (<A HREF='?_src_=vars;Vars=[ref_mob]'>VV</A>) (<A HREF='?_src_=holder;subtlemessage=[ref_mob]'>SM</A>) (<A HREF='?_src_=holder;adminplayerobservejump=[ref_mob]'>JMP</A>) (<A HREF='?_src_=holder;check_antagonist=1'>CA</A>) [ai_found ? " (<A HREF='?_src_=holder;adminchecklaws=[ref_mob]'>CL</A>)" : ""]:</b> [msg]"
|
||||
msg = "\blue <b><font color=red>HELP: </font>[get_options_bar(mob, 2, 1, 1)][ai_found ? " (<A HREF='?_src_=holder;adminchecklaws=[ref_mob]'>CL</A>)" : ""]:</b> [msg]"
|
||||
|
||||
//send this msg to all admins
|
||||
var/admin_number_afk = 0
|
||||
|
||||
@@ -35,7 +35,8 @@
|
||||
|
||||
//takes input from cmd_admin_pm_context, cmd_admin_pm_panel or /client/Topic and sends them a PM.
|
||||
//Fetching a message if needed. src is the sender and C is the target client
|
||||
/client/proc/cmd_admin_pm(var/client/C, var/msg)
|
||||
|
||||
/client/proc/cmd_admin_pm(var/client/C, var/msg = null)
|
||||
if(prefs.muted & MUTE_ADMINHELP)
|
||||
src << "<font color='red'>Error: Private-Message: You are unable to use PM-s (muted).</font>"
|
||||
return
|
||||
@@ -45,14 +46,6 @@
|
||||
else adminhelp(msg) //admin we are replying to left. adminhelp instead
|
||||
return
|
||||
|
||||
/*if(C && C.last_pm_recieved + config.simultaneous_pm_warning_timeout > world.time && holder)
|
||||
//send a warning to admins, but have a delay popup for mods
|
||||
if(holder.rights & R_ADMIN)
|
||||
src << "\red <b>Simultaneous PMs warning:</b> that player has been PM'd in the last [config.simultaneous_pm_warning_timeout / 10] seconds by: [C.ckey_last_pm]"
|
||||
else
|
||||
if(alert("That player has been PM'd in the last [config.simultaneous_pm_warning_timeout / 10] seconds by: [C.ckey_last_pm]","Simultaneous PMs warning","Continue","Cancel") == "Cancel")
|
||||
return*/
|
||||
|
||||
//get message text, limit it's length.and clean/escape html
|
||||
if(!msg)
|
||||
msg = input(src,"Message:", "Private message to [key_name(C, 0, holder ? 1 : 0)]") as text|null
|
||||
@@ -85,7 +78,10 @@
|
||||
else
|
||||
recieve_color = "maroon"
|
||||
send_pm_type = holder.rank + " "
|
||||
recieve_pm_type = holder.rank
|
||||
if(!C.holder && holder && holder.fakekey)
|
||||
recieve_pm_type = "Admin"
|
||||
else
|
||||
recieve_pm_type = holder.rank
|
||||
|
||||
else if(!C.holder)
|
||||
src << "<font color='red'>Error: Admin-PM: Non-admin to non-admin PM communication is forbidden.</font>"
|
||||
@@ -94,7 +90,10 @@
|
||||
var/recieve_message = ""
|
||||
|
||||
if(holder && !C.holder)
|
||||
recieve_message = "<font color='[recieve_color]' size='4'><b>-- Administrator private message --</b></font>\n"
|
||||
recieve_message = "<font color='[recieve_color]' size='3'><b>-- Click the [recieve_pm_type]'s name to reply --</b></font>\n"
|
||||
if(C.adminhelped)
|
||||
C << recieve_message
|
||||
C.adminhelped = 0
|
||||
|
||||
//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)
|
||||
@@ -109,7 +108,7 @@
|
||||
adminhelp(reply) //sender has left, adminhelp instead
|
||||
return
|
||||
|
||||
recieve_message = "<font color='[recieve_color]'>[recieve_pm_type] PM from-<b>[key_name(src, C, C.holder ? 1 : 0)]</b>: [msg]</font>"
|
||||
recieve_message = "<font color='[recieve_color]'>[recieve_pm_type] PM from-<b>[get_options_bar(src, C.holder ? 1 : 0, C.holder ? 1 : 0, 1)]</b>: [msg]</font>"
|
||||
C << recieve_message
|
||||
src << "<font color='blue'>[send_pm_type]PM to-<b>[key_name(C, src, holder ? 1 : 0)]</b>: [msg]</font>"
|
||||
|
||||
@@ -122,57 +121,6 @@
|
||||
if(C.prefs.toggles & SOUND_ADMINHELP)
|
||||
C << 'sound/effects/adminhelp.ogg'
|
||||
|
||||
/*
|
||||
if(C.holder)
|
||||
if(holder) //both are admins
|
||||
if(holder.rank == "Moderator") //If moderator
|
||||
C << "<font color='maroon'>Mod PM from-<b>[key_name(src, C, 1)]</b>: [msg]</font>"
|
||||
src << "<font color='blue'>Mod PM to-<b>[key_name(C, src, 1)]</b>: [msg]</font>"
|
||||
else
|
||||
C << "<font color='red'>Admin PM from-<b>[key_name(src, C, 1)]</b>: [msg]</font>"
|
||||
src << "<font color='blue'>Admin PM to-<b>[key_name(C, src, 1)]</b>: [msg]</font>"
|
||||
|
||||
else //recipient is an admin but sender is not
|
||||
C << "<font color='red'>Reply PM from-<b>[key_name(src, C, 1)]</b>: [msg]</font>"
|
||||
src << "<font color='blue'>PM to-<b>Admins</b>: [msg]</font>"
|
||||
|
||||
//play the recieving admin the adminhelp sound (if they have them enabled)
|
||||
if(C.prefs.toggles & SOUND_ADMINHELP)
|
||||
C << 'sound/effects/adminhelp.ogg'
|
||||
|
||||
else
|
||||
if(holder) //sender is an admin but recipient is not. Do BIG RED TEXT
|
||||
if(holder.rank == "Moderator")
|
||||
C << "<font color='maroon'>Mod PM from-<b>[key_name(src, C, 0)]</b>: [msg]</font>"
|
||||
C << "<font color='maroon'><i>Click on the moderators's name to reply.</i></font>"
|
||||
src << "<font color='blue'>Mod PM to-<b>[key_name(C, src, 1)]</b>: [msg]</font>"
|
||||
else
|
||||
C << "<font color='red' size='4'><b>-- Administrator private message --</b></font>"
|
||||
C << "<font color='red'>Admin PM from-<b>[key_name(src, C, 0)]</b>: [msg]</font>"
|
||||
C << "<font color='red'><i>Click on the administrator's name to reply.</i></font>"
|
||||
src << "<font color='blue'>Admin PM to-<b>[key_name(C, src, 1)]</b>: [msg]</font>"
|
||||
|
||||
//always play non-admin recipients the adminhelp sound
|
||||
C << 'sound/effects/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, msg,"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
|
||||
adminhelp(reply) //sender has left, adminhelp instead
|
||||
return
|
||||
|
||||
else //neither are admins
|
||||
src << "<font color='red'>Error: Admin-PM: Non-admin to non-admin PM communication is forbidden.</font>"
|
||||
return
|
||||
*/
|
||||
|
||||
log_admin("PM: [key_name(src)]->[key_name(C)]: [msg]")
|
||||
|
||||
//we don't use message_admins here because the sender/receiver might get it too
|
||||
@@ -182,3 +130,32 @@
|
||||
continue
|
||||
if(X.key!=key && X.key!=C.key && (X.holder.rights & R_ADMIN) || (X.holder.rights & R_MOD) )
|
||||
X << "<B><font color='blue'>PM: [key_name(src, X, 0)]->[key_name(C, X, 0)]:</B> \blue [msg]</font>" //inform X
|
||||
|
||||
/client/proc/cmd_admin_irc_pm()
|
||||
if(prefs.muted & MUTE_ADMINHELP)
|
||||
src << "<font color='red'>Error: Private-Message: You are unable to use PM-s (muted).</font>"
|
||||
return
|
||||
|
||||
var/msg = input(src,"Message:", "Private message to admins on IRC / 400 character limit") as text|null
|
||||
|
||||
if(!msg)
|
||||
return
|
||||
|
||||
sanitize(msg)
|
||||
|
||||
if(length(msg) > 400) // TODO: if message length is over 400, divide it up into seperate messages, the message length restriction is based on IRC limitations. Probably easier to do this on the bots ends.
|
||||
src << "\red Your message was not sent because it was more then 400 characters find your message below for ease of copy/pasting"
|
||||
src << "\blue [msg]"
|
||||
return
|
||||
|
||||
send2adminirc("PlayerPM from [key_name(src)]: [html_decode(msg)]")
|
||||
|
||||
src << "<font color='blue'>IRC PM to-<b>IRC-Admins</b>: [msg]</font>"
|
||||
|
||||
log_admin("PM: [key_name(src)]->IRC: [msg]")
|
||||
for(var/client/X in admins)
|
||||
if(X == src)
|
||||
continue
|
||||
if((X.holder.rights & R_ADMIN) || (X.holder.rights & R_MOD))
|
||||
X << "<B><font color='blue'>PM: [key_name(src, X, 0)]->IRC-Admins:</B> \blue [msg]</font>"
|
||||
|
||||
|
||||
@@ -44,4 +44,4 @@
|
||||
else if(M.stat == DEAD && (M.client.prefs.toggles & CHAT_DEAD)) // show the message to regular ghosts who have deadchat toggled on
|
||||
M.show_message(rendered, 2)
|
||||
|
||||
feedback_add_details("admin_verb","D") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
feedback_add_details("admin_verb","D") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
|
||||
@@ -73,11 +73,11 @@ client/proc/one_click_antag()
|
||||
candidates += applicant
|
||||
|
||||
if(candidates.len)
|
||||
var/numTratiors = min(candidates.len, 3)
|
||||
var/numTraitors = min(candidates.len, 3)
|
||||
|
||||
for(var/i = 0, i<numTratiors, i++)
|
||||
for(var/i = 0, i<numTraitors, i++)
|
||||
H = pick(candidates)
|
||||
H.mind.make_Tratior()
|
||||
H.mind.make_Traitor()
|
||||
candidates.Remove(H)
|
||||
|
||||
return 1
|
||||
@@ -492,7 +492,7 @@ client/proc/one_click_antag()
|
||||
|
||||
/datum/admins/proc/create_vox_raider(obj/spawn_location, leader_chosen = 0)
|
||||
|
||||
var/mob/living/carbon/human/new_vox = new(spawn_location.loc)
|
||||
var/mob/living/carbon/human/new_vox = new(spawn_location.loc, "Vox")
|
||||
|
||||
new_vox.gender = pick(MALE, FEMALE)
|
||||
new_vox.h_style = "Short Vox Quills"
|
||||
@@ -512,8 +512,6 @@ client/proc/one_click_antag()
|
||||
|
||||
new_vox.dna.ready_dna(new_vox) // Creates DNA.
|
||||
new_vox.dna.mutantrace = "vox"
|
||||
new_vox.set_species("Vox") // Actually makes the vox! How about that.
|
||||
new_vox.add_language("Vox-pidgin")
|
||||
new_vox.mind_initialize()
|
||||
new_vox.mind.assigned_role = "MODE"
|
||||
new_vox.mind.special_role = "Vox Raider"
|
||||
|
||||
@@ -65,6 +65,37 @@
|
||||
message_admins("\blue \bold SubtleMessage: [key_name_admin(usr)] -> [key_name_admin(M)] : [msg]", 1)
|
||||
feedback_add_details("admin_verb","SMS") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
|
||||
/client/proc/cmd_mentor_check_new_players() //Allows mentors / admins to determine who the newer players are.
|
||||
set category = "Admin"
|
||||
set name = "Check new Players"
|
||||
if(!holder)
|
||||
src << "Only staff members may use this command."
|
||||
|
||||
var/age = alert(src, "Age check", "Show accounts yonger then _____ days","7", "30" , "All")
|
||||
|
||||
if(age == "All")
|
||||
age = 9999999
|
||||
else
|
||||
age = text2num(age)
|
||||
|
||||
var/missing_ages = 0
|
||||
var/msg = ""
|
||||
for(var/client/C in clients)
|
||||
if(C.player_age == "Requires database")
|
||||
missing_ages = 1
|
||||
continue
|
||||
if(C.player_age < age)
|
||||
msg += "[key_name_admin(C)]: account is [C.player_age] days old<br>"
|
||||
|
||||
if(missing_ages)
|
||||
src << "Some accounts did not have proper ages set in their clients. This function requires database to be present"
|
||||
|
||||
if(msg != "")
|
||||
src << browse(msg, "window=Player_age_check")
|
||||
else
|
||||
src << "No matches for that age range found."
|
||||
|
||||
|
||||
/client/proc/cmd_admin_world_narrate() // Allows administrators to fluff events a little easier -- TLE
|
||||
set category = "Special Verbs"
|
||||
set name = "Global Narrate"
|
||||
|
||||
@@ -18,14 +18,9 @@ var/global/vox_tick = 1
|
||||
equip_to_slot_or_del(new /obj/item/clothing/glasses/thermal/monocle(src), slot_glasses) // REPLACE WITH CODED VOX ALTERNATIVE.
|
||||
equip_to_slot_or_del(new /obj/item/device/chameleon(src), slot_l_store)
|
||||
|
||||
var/obj/item/weapon/crossbow/W = new(src)
|
||||
W.cell = new /obj/item/weapon/cell/crap(W)
|
||||
W.cell.charge = 500
|
||||
var/obj/item/weapon/spikethrower/W = new(src)
|
||||
equip_to_slot_or_del(W, slot_r_hand)
|
||||
|
||||
var/obj/item/stack/rods/A = new(src)
|
||||
A.amount = 20
|
||||
equip_to_slot_or_del(A, slot_l_hand)
|
||||
|
||||
if(2) // Vox engineer!
|
||||
equip_to_slot_or_del(new /obj/item/clothing/suit/space/vox/pressure(src), slot_wear_suit)
|
||||
|
||||
Reference in New Issue
Block a user