mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-07-12 07:33:34 +01:00
2nd commit of MySQL conversion. So close to the finish line.
This commit is contained in:
@@ -261,7 +261,7 @@ var/global/datum/controller/occupations/job_master
|
||||
for(var/mob/new_player/player in player_list)
|
||||
if(player.ready && player.mind && !player.mind.assigned_role)
|
||||
unassigned += player
|
||||
if(player.client.prefs.randomslot) player.client.prefs.random_character()
|
||||
if(player.client.prefs.randomslot) player.client.prefs.random_character(player.client)
|
||||
Debug("DO, Len: [unassigned.len]")
|
||||
if(unassigned.len == 0) return 0
|
||||
|
||||
|
||||
@@ -450,7 +450,7 @@ var/list/admin_verbs_mentor = list(
|
||||
var/new_ooccolor = input(src, "Please select your OOC colour.", "OOC colour") as color|null
|
||||
if(new_ooccolor)
|
||||
prefs.ooccolor = new_ooccolor
|
||||
prefs.save_preferences()
|
||||
prefs.save_preferences(src)
|
||||
feedback_add_details("admin_verb","OC") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
return
|
||||
|
||||
@@ -559,22 +559,22 @@ var/list/admin_verbs_mentor = list(
|
||||
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)
|
||||
@@ -583,7 +583,7 @@ var/list/admin_verbs_mentor = list(
|
||||
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)
|
||||
|
||||
@@ -218,9 +218,10 @@
|
||||
|
||||
send_resources()
|
||||
|
||||
/*
|
||||
if(prefs.lastchangelog != changelog_hash) //bolds the changelog button on the interface so we know there are updates.
|
||||
winset(src, "rpane.changelog", "background-color=#eaeaea;font-style=bold")
|
||||
|
||||
*/
|
||||
|
||||
//////////////
|
||||
//DISCONNECT//
|
||||
|
||||
@@ -30,9 +30,9 @@ var/const/MAX_SAVE_SLOTS = 10
|
||||
|
||||
datum/preferences
|
||||
//doohickeys for savefiles
|
||||
var/path
|
||||
// var/path
|
||||
var/default_slot = 1 //Holder so it doesn't default to slot 1, rather the last one used
|
||||
var/savefile_version = 0
|
||||
// var/savefile_version = 0
|
||||
|
||||
//non-preference stuff
|
||||
var/warns = 0
|
||||
@@ -41,7 +41,7 @@ datum/preferences
|
||||
var/last_id
|
||||
|
||||
//game-preferences
|
||||
var/lastchangelog = "" //Saved changlog filesize to detect if there was a change
|
||||
// var/lastchangelog = "" //Saved changlog filesize to detect if there was a change
|
||||
var/ooccolor = "#b82e00"
|
||||
var/be_special = 0 //Special role selection
|
||||
var/UI_style = "Midnight"
|
||||
@@ -108,10 +108,10 @@ datum/preferences
|
||||
var/list/organ_data = list()
|
||||
|
||||
var/list/player_alt_titles = new() // the default name of a job like "Medical Doctor"
|
||||
var/accent = "en-us"
|
||||
var/voice = "m1"
|
||||
var/pitch = 50
|
||||
var/talkspeed = 175
|
||||
// var/accent = "en-us"
|
||||
// var/voice = "m1"
|
||||
// var/pitch = 50
|
||||
// var/talkspeed = 175
|
||||
var/flavor_text = ""
|
||||
var/med_record = ""
|
||||
var/sec_record = ""
|
||||
@@ -137,8 +137,8 @@ datum/preferences
|
||||
if(istype(C))
|
||||
if(!IsGuestKey(C.key))
|
||||
// load_path(C.ckey)
|
||||
if(load_preferences())
|
||||
if(load_character())
|
||||
if(load_preferences(C))
|
||||
if(load_character(C))
|
||||
return
|
||||
gender = pick(MALE, FEMALE)
|
||||
real_name = random_name(gender)
|
||||
@@ -153,21 +153,17 @@ datum/preferences
|
||||
|
||||
dat += "<a href='?_src_=prefs;preference=tab;tab=0' [current_tab == 0 ? "class='linkOn'" : ""]>Character Settings</a>"
|
||||
dat += "<a href='?_src_=prefs;preference=tab;tab=1' [current_tab == 1 ? "class='linkOn'" : ""]>Game Preferences</a>"
|
||||
if(!path)
|
||||
dat += "Please create an account to save your preferences."
|
||||
|
||||
dat += "</center>"
|
||||
dat += "<HR>"
|
||||
|
||||
switch(current_tab)
|
||||
if (0) // Character Settings#
|
||||
if(path)
|
||||
dat += "<center>"
|
||||
dat += "Slot <b>[slot_name]</b> - "
|
||||
dat += "<a href=\"byond://?src=\ref[user];preference=open_load_dialog\">Load slot</a> - "
|
||||
dat += "<a href=\"byond://?src=\ref[user];preference=save\">Save slot</a> - "
|
||||
dat += "<a href=\"byond://?src=\ref[user];preference=reload\">Reload slot</a>"
|
||||
dat += "</center>"
|
||||
dat += "<center>"
|
||||
dat += "Slot <b>[slot_name]</b> - "
|
||||
dat += "<a href=\"byond://?src=\ref[user];preference=open_load_dialog\">Load slot</a> - "
|
||||
dat += "<a href=\"byond://?src=\ref[user];preference=save\">Save slot</a> - "
|
||||
dat += "<a href=\"byond://?src=\ref[user];preference=reload\">Reload slot</a>"
|
||||
dat += "</center>"
|
||||
dat += "<center><h2>Occupation Choices</h2>"
|
||||
dat += "<a href='?_src_=prefs;preference=job;task=menu'>Set Occupation Preferences</a><br></center>"
|
||||
dat += "<h2>Identity</h2>"
|
||||
@@ -1308,12 +1304,12 @@ datum/preferences
|
||||
toggles ^= CHAT_GHOSTRADIO
|
||||
|
||||
if("save")
|
||||
save_preferences()
|
||||
save_character()
|
||||
save_preferences(user)
|
||||
save_character(user)
|
||||
|
||||
if("reload")
|
||||
load_preferences()
|
||||
load_character()
|
||||
load_preferences(user)
|
||||
load_character(user)
|
||||
|
||||
if("open_load_dialog")
|
||||
if(!IsGuestKey(user.key))
|
||||
@@ -1323,7 +1319,7 @@ datum/preferences
|
||||
close_load_dialog(user)
|
||||
|
||||
if("changeslot")
|
||||
load_character(text2num(href_list["num"]))
|
||||
load_character(user,text2num(href_list["num"]))
|
||||
close_load_dialog(user)
|
||||
|
||||
if("tab")
|
||||
@@ -1432,7 +1428,8 @@ datum/preferences
|
||||
character.gender = MALE
|
||||
|
||||
proc/open_load_dialog(mob/user)
|
||||
var/DBQuery/query = dbcon.NewQuery("SELECT slot,real_name FROM character WHERE ckey='[user.key]' ORDER BY slot")
|
||||
|
||||
var/DBQuery/query = dbcon.NewQuery("SELECT slot,real_name FROM characters WHERE ckey='[user.ckey]' ORDER BY slot")
|
||||
if(!query.Execute())
|
||||
var/err = query.ErrorMsg()
|
||||
log_game("SQL ERROR during character slot loading. Error : \[[err]\]\n")
|
||||
@@ -1445,18 +1442,21 @@ datum/preferences
|
||||
var/name
|
||||
|
||||
for(var/i=1, i<=MAX_SAVE_SLOTS, i++)
|
||||
if(i==query.item[1])
|
||||
name = query.item[2]
|
||||
query.NextRow()
|
||||
while(query.NextRow())
|
||||
if(i==text2num(query.item[1]))
|
||||
name = query.item[2]
|
||||
if(!name) name = "Character[i]"
|
||||
if(i==default_slot)
|
||||
name = "<b>[name]</b>"
|
||||
dat += "<a href='?_src_=prefs;preference=changeslot;num=[i];'>[name]</a><br>"
|
||||
name = null
|
||||
|
||||
dat += "<hr>"
|
||||
dat += "<a href='byond://?src=\ref[user];preference=close_load_dialog'>Close</a><br>"
|
||||
dat += "</center></tt>"
|
||||
user << browse(dat, "window=saves;size=300x390")
|
||||
|
||||
// user << browse(dat, "window=saves;size=300x390")
|
||||
var/datum/browser/popup = new(user, "saves", "<div align='center'>Character Saves</div>", 300, 390)
|
||||
popup.set_content(dat)
|
||||
popup.open(0)
|
||||
proc/close_load_dialog(mob/user)
|
||||
user << browse(null, "window=saves")
|
||||
user << browse(null, "window=saves")
|
||||
@@ -1,6 +1,6 @@
|
||||
/datum/preferences/proc/load_preferences()
|
||||
/datum/preferences/proc/load_preferences(client/C)
|
||||
|
||||
var/DBQuery/query = dbcon.NewQuery("SELECT ooccolor,UI_style,UI_style_color,UI_style_alpha,be_special,default_slot,toggles,sound,randomslot,volume FROM erro_player WHERE ckey='[usr.key]'")
|
||||
var/DBQuery/query = dbcon.NewQuery("SELECT ooccolor,UI_style,UI_style_color,UI_style_alpha,be_special,default_slot,toggles,sound,randomslot,volume FROM erro_player WHERE ckey='[C.ckey]'")
|
||||
if(!query.Execute())
|
||||
var/err = query.ErrorMsg()
|
||||
log_game("SQL ERROR during loading player preferences. Error : \[[err]\]\n")
|
||||
@@ -9,20 +9,21 @@
|
||||
|
||||
|
||||
//general preferences
|
||||
ooccolor = query.item[1]
|
||||
UI_style = query.item[2]
|
||||
UI_style_color = query.item[3]
|
||||
UI_style_alpha = query.item[4]
|
||||
be_special = query.item[5]
|
||||
default_slot = query.item[6]
|
||||
toggles = query.item[7]
|
||||
sound = query.item[8]
|
||||
randomslot = query.item[9]
|
||||
volume = query.item[10]
|
||||
while(query.NextRow())
|
||||
ooccolor = query.item[1]
|
||||
UI_style = query.item[2]
|
||||
UI_style_color = query.item[3]
|
||||
UI_style_alpha = query.item[4]
|
||||
be_special = query.item[5]
|
||||
default_slot = query.item[6]
|
||||
toggles = query.item[7]
|
||||
sound = query.item[8]
|
||||
randomslot = query.item[9]
|
||||
volume = query.item[10]
|
||||
|
||||
//Sanitize
|
||||
ooccolor = sanitize_hexcolor(ooccolor, initial(ooccolor))
|
||||
lastchangelog = sanitize_text(lastchangelog, initial(lastchangelog))
|
||||
// lastchangelog = sanitize_text(lastchangelog, initial(lastchangelog))
|
||||
UI_style = sanitize_inlist(UI_style, list("White", "Midnight"), initial(UI_style))
|
||||
be_special = sanitize_integer(be_special, 0, 65535, initial(be_special))
|
||||
default_slot = sanitize_integer(default_slot, 1, MAX_SAVE_SLOTS, initial(default_slot))
|
||||
@@ -34,9 +35,9 @@
|
||||
volume = sanitize_integer(volume, 0, 100, initial(volume))
|
||||
return 1
|
||||
|
||||
/datum/preferences/proc/save_preferences()
|
||||
/datum/preferences/proc/save_preferences(client/C)
|
||||
|
||||
var/DBQuery/query = dbcon.NewQuery("UPDATE error_player (ooccolor,UI_style,UI_style_color,UI_style_alpha,be_special,default_slot,toggles,sound,randomslot,volume) VALUES ('[ooccolor]','[UI_style]','[UI_style_color]','[UI_style_alpha]','[be_special]','[default_slot]','[toggles]','[sound]','[randomslot]','[volume]') WHERE ckey='[usr.key]'")
|
||||
var/DBQuery/query = dbcon.NewQuery("UPDATE erro_player SET ooccolor='[ooccolor]',UI_style='[UI_style]',UI_style_color='[UI_style_color]',UI_style_alpha='[UI_style_alpha]',be_special='[be_special]',default_slot='[default_slot]',toggles='[toggles]',sound='[sound]',randomslot='[randomslot]',volume='[volume]' WHERE ckey='[C.ckey]'")
|
||||
if(!query.Execute())
|
||||
var/err = query.ErrorMsg()
|
||||
log_game("SQL ERROR during saving player preferences. Error : \[[err]\]\n")
|
||||
@@ -44,79 +45,80 @@
|
||||
return
|
||||
return 1
|
||||
|
||||
/datum/preferences/proc/load_character(slot)
|
||||
/datum/preferences/proc/load_character(client/C,slot)
|
||||
|
||||
if(!slot) slot = default_slot
|
||||
slot = sanitize_integer(slot, 1, MAX_SAVE_SLOTS, initial(default_slot))
|
||||
if(slot != default_slot)
|
||||
default_slot = slot
|
||||
var/DBQuery/firstquery = dbcon.NewQuery("UPDATE error_player (default_slot) VALUES ('[slot]') WHERE ckey='[usr.key]'")
|
||||
var/DBQuery/firstquery = dbcon.NewQuery("UPDATE erro_player SET default_slot=[slot] WHERE ckey='[C.ckey]'")
|
||||
firstquery.Execute()
|
||||
|
||||
var/DBQuery/query = dbcon.NewQuery("SELECT * FROM character WHERE ckey='[usr.key]' AND slot='[slot]'")
|
||||
var/DBQuery/query = dbcon.NewQuery("SELECT * FROM characters WHERE ckey='[C.ckey]' AND slot='[slot]'")
|
||||
if(!query.Execute())
|
||||
var/err = query.ErrorMsg()
|
||||
log_game("SQL ERROR during character slot loading. Error : \[[err]\]\n")
|
||||
message_admins("SQL ERROR during character slot loading. Error : \[[err]\]\n")
|
||||
return
|
||||
|
||||
//Character
|
||||
metadata = query.item[4]
|
||||
real_name = query.item[5]
|
||||
be_random_name = query.item[6]
|
||||
gender = query.item[7]
|
||||
age = query.item[8]
|
||||
species = query.item[9]
|
||||
language = query.item[10]
|
||||
while(query.NextRow())
|
||||
//Character
|
||||
metadata = query.item[4]
|
||||
real_name = query.item[5]
|
||||
be_random_name = query.item[6]
|
||||
gender = query.item[7]
|
||||
age = query.item[8]
|
||||
species = query.item[9]
|
||||
language = query.item[10]
|
||||
|
||||
//colors to be consolidated into hex strings (requires some work with dna code)
|
||||
r_hair = query.item[11]
|
||||
g_hair = query.item[12]
|
||||
b_hair = query.item[13]
|
||||
r_facial = query.item[14]
|
||||
g_facial = query.item[15]
|
||||
b_facial = query.item[16]
|
||||
s_tone = query.item[17]
|
||||
r_skin = query.item[18]
|
||||
g_skin = query.item[19]
|
||||
b_skin = query.item[20]
|
||||
h_style = query.item[21]
|
||||
f_style = query.item[22]
|
||||
r_eyes = query.item[23]
|
||||
g_eyes = query.item[24]
|
||||
b_eyes = query.item[25]
|
||||
underwear = query.item[26]
|
||||
undershirt = query.item[27]
|
||||
backbag = query.item[28]
|
||||
b_type = query.item[29]
|
||||
//colors to be consolidated into hex strings (requires some work with dna code)
|
||||
r_hair = query.item[11]
|
||||
g_hair = query.item[12]
|
||||
b_hair = query.item[13]
|
||||
r_facial = query.item[14]
|
||||
g_facial = query.item[15]
|
||||
b_facial = query.item[16]
|
||||
s_tone = query.item[17]
|
||||
r_skin = query.item[18]
|
||||
g_skin = query.item[19]
|
||||
b_skin = query.item[20]
|
||||
h_style = query.item[21]
|
||||
f_style = query.item[22]
|
||||
r_eyes = query.item[23]
|
||||
g_eyes = query.item[24]
|
||||
b_eyes = query.item[25]
|
||||
underwear = query.item[26]
|
||||
undershirt = query.item[27]
|
||||
backbag = query.item[28]
|
||||
b_type = query.item[29]
|
||||
|
||||
|
||||
//Jobs
|
||||
alternate_option = query.item[30]
|
||||
job_civilian_high = query.item[31]
|
||||
job_civilian_med = query.item[32]
|
||||
job_civilian_low = query.item[33]
|
||||
job_medsci_high = query.item[34]
|
||||
job_medsci_med = query.item[35]
|
||||
job_medsci_low = query.item[36]
|
||||
job_engsec_high = query.item[37]
|
||||
job_engsec_med = query.item[38]
|
||||
job_engsec_low = query.item[39]
|
||||
job_karma_high = query.item[40]
|
||||
job_karma_med = query.item[41]
|
||||
job_karma_low = query.item[42]
|
||||
//Jobs
|
||||
alternate_option = query.item[30]
|
||||
job_civilian_high = query.item[31]
|
||||
job_civilian_med = query.item[32]
|
||||
job_civilian_low = query.item[33]
|
||||
job_medsci_high = query.item[34]
|
||||
job_medsci_med = query.item[35]
|
||||
job_medsci_low = query.item[36]
|
||||
job_engsec_high = query.item[37]
|
||||
job_engsec_med = query.item[38]
|
||||
job_engsec_low = query.item[39]
|
||||
job_karma_high = query.item[40]
|
||||
job_karma_med = query.item[41]
|
||||
job_karma_low = query.item[42]
|
||||
|
||||
//Miscellaneous
|
||||
flavor_text = query.item[43]
|
||||
med_record = query.item[44]
|
||||
sec_record = query.item[45]
|
||||
gen_record = query.item[46]
|
||||
be_special = query.item[47]
|
||||
disabilities = query.item[48]
|
||||
player_alt_titles = query.item[49]
|
||||
organ_data = query.item[50]
|
||||
//Miscellaneous
|
||||
flavor_text = query.item[43]
|
||||
med_record = query.item[44]
|
||||
sec_record = query.item[45]
|
||||
gen_record = query.item[46]
|
||||
be_special = query.item[47]
|
||||
disabilities = query.item[48]
|
||||
player_alt_titles = text2list(query.item[49],",")
|
||||
organ_data = text2list(query.item[50],",")
|
||||
|
||||
nanotrasen_relation = query.item[51]
|
||||
nanotrasen_relation = query.item[51]
|
||||
|
||||
//Sanitize
|
||||
metadata = sanitize_text(metadata, initial(metadata))
|
||||
@@ -161,30 +163,35 @@
|
||||
job_karma_high = sanitize_integer(job_karma_high, 0, 65535, initial(job_karma_high))
|
||||
job_karma_med = sanitize_integer(job_karma_med, 0, 65535, initial(job_karma_med))
|
||||
job_karma_low = sanitize_integer(job_karma_low, 0, 65535, initial(job_karma_low))
|
||||
disabilities = sanitize_integer(disabilities, 0, 65535, initial(disabilities))
|
||||
be_special = sanitize_integer(be_special, 0, 65535, initial(be_special))
|
||||
|
||||
if(isnull(disabilities)) disabilities = 0
|
||||
// if(isnull(disabilities)) disabilities = 0
|
||||
if(!player_alt_titles) player_alt_titles = new()
|
||||
if(!organ_data) src.organ_data = list()
|
||||
|
||||
return 1
|
||||
|
||||
/datum/preferences/proc/save_character()
|
||||
var/DBQuery/firstquery = dbcon.NewQuery("SELECT slot FROM character WHERE ckey='[usr.key]' ORDER BY slot")
|
||||
/datum/preferences/proc/save_character(client/C)
|
||||
var/organlist
|
||||
var/playertitlelist
|
||||
if(!isemptylist(organ_data))
|
||||
organlist = tg_list2text(organ_data)
|
||||
if(!isemptylist(player_alt_titles))
|
||||
playertitlelist = tg_list2text(player_alt_titles)
|
||||
|
||||
var/DBQuery/firstquery = dbcon.NewQuery("SELECT slot FROM characters WHERE ckey='[C.ckey]' ORDER BY slot")
|
||||
firstquery.Execute()
|
||||
var/numRow = firstquery.RowsAffected()
|
||||
if(numRow)
|
||||
for(var/i = 1,i <= numRow, i++)
|
||||
if(default_slot != firstquery.item[1])
|
||||
firstquery.NextRow()
|
||||
else
|
||||
var/DBQuery/query = dbcon.NewQuery("UPDATE character (OOC_Notes,real_name,name_is_always_random,gender,age,species,language,hair_red,hair_green,hair_blue,facial_red,facial_green,facial_blue,skin_tone,skin_red,skin_green,skin_blue,hair_style_name,facial_style_name,eyes_red,eyes_green,eyes_blue,underwear,undershirt,backbag,b_type,alternate_option,job_civ_high,job_civ_med,job_civ_low,job_medsci_high,job_medsci_med,job_medsci_low,job_engsec_high,job_engsec_med,job_engsec_low,job_karma_high,job_karma_med,job_karma_low,flavor_text,med_record,sec_record,gen_record,player_alt_titles,be_special,disabilities,organ_data,nanotrasen_relation) VALUES ('[metadata]','[real_name]','[be_random_name]','[gender]','[age]','[species]','[language]','[r_hair]','[g_hair]','[b_hair]','[r_facial]','[g_facial]','[b_facial]','[s_tone]',[r_skin]','[g_skin]','[b_skin]','[h_style]','[f_style]','[r_eyes]','[g_eyes]','[b_eyes]','[underwear]','[undershirt]','[backbag]','[b_type]','[alternate_option]','[job_civilian_high]','[job_civilian_med]','[job_civilian_low]','[job_medsci_high]','[job_medsci_med]','[job_medsci_low]','[job_engsec_high]','[job_engsec_med]','[job_engsec_low]','[job_karma_high]','[job_karma_med]','[job_karma_low]','[flavor_text]','[med_record]','[sec_record]','[gen_record]','[player_alt_titles]','[be_special]','[disabilities]','[organ_data]','[nanotrasen_relation]') WHERE ckey='[usr.key]' AND slot='[default_slot]'")
|
||||
if(!query.Execute())
|
||||
var/err = query.ErrorMsg()
|
||||
log_game("SQL ERROR during character slot saving. Error : \[[err]\]\n")
|
||||
message_admins("SQL ERROR during character slot saving. Error : \[[err]\]\n")
|
||||
return
|
||||
return 1
|
||||
var/DBQuery/query = dbcon.NewQuery("INSERT INTO character (ckey,slot,OOC_Notes,real_name,name_is_always_random,gender,age,species,language,hair_red,hair_green,hair_blue,facial_red,facial_green,facial_blue,skin_tone,skin_red,skin_green,skin_blue,hair_style_name,facial_style_name,eyes_red,eyes_green,eyes_blue,underwear,undershirt,backbag,b_type,alternate_option,job_civ_high,job_civ_med,job_civ_low,job_medsci_high,job_medsci_med,job_medsci_low,job_engsec_high,job_engsec_med,job_engsec_low,job_karma_high,job_karma_med,job_karma_low,flavor_text,med_record,sec_record,gen_record,player_alt_titles,be_special,disabilities,organ_data,nanotrasen_relation) VALUES ('[usr.key],'[default_slot]','[metadata]','[real_name]','[be_random_name]','[gender]','[age]','[species]','[language]','[r_hair]','[g_hair]','[b_hair]','[r_facial]','[g_facial]','[b_facial]','[s_tone]',[r_skin]','[g_skin]','[b_skin]','[h_style]','[f_style]','[r_eyes]','[g_eyes]','[b_eyes]','[underwear]','[undershirt]','[backbag]','[b_type]','[alternate_option]','[job_civilian_high]','[job_civilian_med]','[job_civilian_low]','[job_medsci_high]','[job_medsci_med]','[job_medsci_low]','[job_engsec_high]','[job_engsec_med]','[job_engsec_low]','[job_karma_high]','[job_karma_med]','[job_karma_low]','[flavor_text]','[med_record]','[sec_record]','[gen_record]','[player_alt_titles]','[be_special]','[disabilities]','[organ_data]','[nanotrasen_relation]')")
|
||||
while(firstquery.NextRow())
|
||||
if(firstquery.item[1] == default_slot)
|
||||
var/DBQuery/query = dbcon.NewQuery("UPDATE characters SET OOC_Notes='[metadata]',real_name='[real_name]',name_is_always_random='[be_random_name]',gender='[gender]',age='[age]',species='[species]',language='[language]',hair_red='[r_hair]',hair_green='[g_hair]',hair_blue='[b_hair]',facial_red='[r_facial]',facial_green='[g_facial]',facial_blue='[b_facial]',skin_tone='[s_tone]',skin_red='[r_skin]',skin_green='[g_skin]',skin_blue='[b_skin]',hair_style_name='[h_style]',facial_style_name='[f_style]',eyes_red='[r_eyes]',eyes_green='[g_eyes]',eyes_blue='[b_eyes]',underwear='[underwear]',undershirt='[undershirt]',backbag='[backbag]',b_type='[b_type]',alternate_option='[alternate_option]',job_civilian_high='[job_civilian_high]',job_civilian_med='[job_civilian_med]',job_civilian_low='[job_civilian_low]',job_medsci_high='[job_medsci_high]',job_medsci_med='[job_medsci_med]',job_medsci_low='[job_medsci_low]',job_engsec_high='[job_engsec_high]',job_engsec_med='[job_engsec_med]',job_engsec_low='[job_engsec_low]',job_karma_high='[job_karma_high]',job_karma_med='[job_karma_med]',job_karma_low='[job_karma_low]',flavor_text='[flavor_text]',med_record='[med_record]',sec_record='[sec_record]',gen_record='[gen_record]',player_alt_titles='[playertitlelist]',be_special='[be_special]',disabilities='[disabilities]',organ_data='[organlist]',nanotrasen_relation='[nanotrasen_relation]' WHERE ckey='[C.ckey]' AND slot='[default_slot]'")
|
||||
if(!query.Execute())
|
||||
var/err = query.ErrorMsg()
|
||||
log_game("SQL ERROR during character slot saving. Error : \[[err]\]\n")
|
||||
message_admins("SQL ERROR during character slot saving. Error : \[[err]\]\n")
|
||||
return
|
||||
return 1
|
||||
var/DBQuery/query = dbcon.NewQuery("INSERT INTO characters (ckey,slot,OOC_Notes,real_name,name_is_always_random,gender,age,species,language,hair_red,hair_green,hair_blue,facial_red,facial_green,facial_blue,skin_tone,skin_red,skin_green,skin_blue,hair_style_name,facial_style_name,eyes_red,eyes_green,eyes_blue,underwear,undershirt,backbag,b_type,alternate_option,job_civilian_high,job_civilian_med,job_civilian_low,job_medsci_high,job_medsci_med,job_medsci_low,job_engsec_high,job_engsec_med,job_engsec_low,job_karma_high,job_karma_med,job_karma_low,flavor_text,med_record,sec_record,gen_record,player_alt_titles,be_special,disabilities,organ_data,nanotrasen_relation) VALUES ('[C.ckey]','[default_slot]','[metadata]','[real_name]','[be_random_name]','[gender]','[age]','[species]','[language]','[r_hair]','[g_hair]','[b_hair]','[r_facial]','[g_facial]','[b_facial]','[s_tone]','[r_skin]','[g_skin]','[b_skin]','[h_style]','[f_style]','[r_eyes]','[g_eyes]','[b_eyes]','[underwear]','[undershirt]','[backbag]','[b_type]','[alternate_option]','[job_civilian_high]','[job_civilian_med]','[job_civilian_low]','[job_medsci_high]','[job_medsci_med]','[job_medsci_low]','[job_engsec_high]','[job_engsec_med]','[job_engsec_low]','[job_karma_high]','[job_karma_med]','[job_karma_low]','[flavor_text]','[med_record]','[sec_record]','[gen_record]','[playertitlelist]','[be_special]','[disabilities]','[organlist]','[nanotrasen_relation]')")
|
||||
if(!query.Execute())
|
||||
var/err = query.ErrorMsg()
|
||||
log_game("SQL ERROR during character slot saving. Error : \[[err]\]\n")
|
||||
@@ -192,16 +199,17 @@
|
||||
return
|
||||
return 1
|
||||
|
||||
/datum/preferences/proc/random_character()
|
||||
var/DBQuery/query = dbcon.NewQuery("SELECT slot FROM character WHERE ckey='[usr.key]' ORDER BY slot")
|
||||
/datum/preferences/proc/random_character(client/C)
|
||||
var/DBQuery/query = dbcon.NewQuery("SELECT slot FROM characters WHERE ckey='[C.ckey]' ORDER BY slot")
|
||||
|
||||
while(query.NextRow())
|
||||
var/list/saves = list()
|
||||
for(var/i=1, i<=MAX_SAVE_SLOTS, i++)
|
||||
if(i==query.item[1])
|
||||
saves += i
|
||||
query.NextRow()
|
||||
|
||||
if(!saves.len)
|
||||
load_character()
|
||||
load_character(C)
|
||||
return 0
|
||||
load_character(pick(saves))
|
||||
load_character(C,pick(saves))
|
||||
return 1
|
||||
@@ -5,7 +5,7 @@
|
||||
set desc = ".Toggle Between seeing all mob speech, and only speech of nearby mobs"
|
||||
prefs.toggles ^= CHAT_GHOSTEARS
|
||||
src << "As a ghost, you will now [(prefs.toggles & CHAT_GHOSTEARS) ? "see all speech in the world" : "only see speech from nearby mobs"]."
|
||||
prefs.save_preferences()
|
||||
prefs.save_preferences(src)
|
||||
feedback_add_details("admin_verb","TGE") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
|
||||
/client/verb/toggle_ghost_sight()
|
||||
@@ -14,7 +14,7 @@
|
||||
set desc = ".Toggle Between seeing all mob emotes, and only emotes of nearby mobs"
|
||||
prefs.toggles ^= CHAT_GHOSTSIGHT
|
||||
src << "As a ghost, you will now [(prefs.toggles & CHAT_GHOSTSIGHT) ? "see all emotes in the world" : "only see emotes from nearby mobs"]."
|
||||
prefs.save_preferences()
|
||||
prefs.save_preferences(src)
|
||||
feedback_add_details("admin_verb","TGS") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
|
||||
/client/verb/toggle_ghost_radio()
|
||||
@@ -23,7 +23,7 @@
|
||||
set desc = ".Toggle between hearing all radio chatter, or only from nearby speakers"
|
||||
prefs.toggles ^= CHAT_GHOSTRADIO
|
||||
src << "As a ghost, you will now [(prefs.toggles & CHAT_GHOSTRADIO) ? "hear all radio chat in the world" : "only hear from nearby speakers"]."
|
||||
prefs.save_preferences()
|
||||
prefs.save_preferences(src)
|
||||
feedback_add_details("admin_verb","TGR")
|
||||
|
||||
/client/proc/toggle_hear_radio()
|
||||
@@ -32,7 +32,7 @@
|
||||
set desc = "Toggle seeing radiochatter from radios and speakers"
|
||||
if(!holder) return
|
||||
prefs.toggles ^= CHAT_RADIO
|
||||
prefs.save_preferences()
|
||||
prefs.save_preferences(src)
|
||||
usr << "You will [(prefs.toggles & CHAT_RADIO) ? "now" : "no longer"] see radio chatter from radios or speakers"
|
||||
feedback_add_details("admin_verb","THR") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
|
||||
@@ -42,7 +42,7 @@
|
||||
set desc = "Toggle hearing a notification when admin PMs are recieved"
|
||||
if(!holder) return
|
||||
prefs.sound ^= SOUND_ADMINHELP
|
||||
prefs.save_preferences()
|
||||
prefs.save_preferences(src)
|
||||
usr << "You will [(prefs.toggles & SOUND_ADMINHELP) ? "now" : "no longer"] hear a sound when adminhelps arrive."
|
||||
feedback_add_details("admin_verb","AHS") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
|
||||
@@ -51,7 +51,7 @@
|
||||
set category = "Preferences"
|
||||
set desc ="Toggles seeing deadchat"
|
||||
prefs.toggles ^= CHAT_DEAD
|
||||
prefs.save_preferences()
|
||||
prefs.save_preferences(src)
|
||||
|
||||
if(src.holder)
|
||||
src << "You will [(prefs.toggles & CHAT_DEAD) ? "now" : "no longer"] see deadchat."
|
||||
@@ -65,7 +65,7 @@
|
||||
set category = "Preferences"
|
||||
set desc = "Toggles seeing prayers"
|
||||
prefs.toggles ^= CHAT_PRAYER
|
||||
prefs.save_preferences()
|
||||
prefs.save_preferences(src)
|
||||
src << "You will [(prefs.toggles & CHAT_PRAYER) ? "now" : "no longer"] see prayerchat."
|
||||
feedback_add_details("admin_verb","TP") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
|
||||
@@ -74,7 +74,7 @@
|
||||
set category = "Preferences"
|
||||
set desc = "Toggles hearing the GameLobby music"
|
||||
prefs.sound ^= SOUND_LOBBY
|
||||
prefs.save_preferences()
|
||||
prefs.save_preferences(src)
|
||||
if(prefs.sound & SOUND_LOBBY)
|
||||
src << "You will now hear music in the game lobby."
|
||||
if(istype(mob, /mob/new_player))
|
||||
@@ -101,7 +101,7 @@
|
||||
set category = "Preferences"
|
||||
set desc = "Toggles hearing sounds uploaded by admins"
|
||||
prefs.sound ^= SOUND_MIDI
|
||||
prefs.save_preferences()
|
||||
prefs.save_preferences(src)
|
||||
if(prefs.sound & SOUND_MIDI)
|
||||
src << "You will now hear any sounds uploaded by admins."
|
||||
else
|
||||
@@ -116,7 +116,7 @@
|
||||
set category = "Preferences"
|
||||
set desc = "Toggles seeing OutOfCharacter chat"
|
||||
prefs.toggles ^= CHAT_OOC
|
||||
prefs.save_preferences()
|
||||
prefs.save_preferences(src)
|
||||
src << "You will [(prefs.toggles & CHAT_OOC) ? "now" : "no longer"] see messages on the OOC channel."
|
||||
feedback_add_details("admin_verb","TOOC") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
|
||||
@@ -126,7 +126,7 @@
|
||||
set category = "Preferences"
|
||||
set desc = "Toggles seeing Local OutOfCharacter chat"
|
||||
prefs.toggles ^= CHAT_LOOC
|
||||
prefs.save_preferences()
|
||||
prefs.save_preferences(src)
|
||||
src << "You will [(prefs.toggles & CHAT_LOOC) ? "now" : "no longer"] see messages on the LOOC channel."
|
||||
feedback_add_details("admin_verb","TLOOC") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
|
||||
@@ -136,7 +136,7 @@
|
||||
set category = "Preferences"
|
||||
set desc = "Toggles hearing ambient sound effects"
|
||||
prefs.sound ^= SOUND_AMBIENCE
|
||||
prefs.save_preferences()
|
||||
prefs.save_preferences(src)
|
||||
if(prefs.sound & SOUND_AMBIENCE)
|
||||
src << "You will now hear ambient sounds."
|
||||
else
|
||||
@@ -153,7 +153,7 @@
|
||||
var/role_flag = be_special_flags[role]
|
||||
if(!role_flag) return
|
||||
prefs.be_special ^= role_flag
|
||||
prefs.save_preferences()
|
||||
prefs.save_preferences(src)
|
||||
src << "You will [(prefs.be_special & role_flag) ? "now" : "no longer"] be considered for [role] events (where possible)."
|
||||
feedback_add_details("admin_verb","TBeSpecial") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
|
||||
@@ -189,7 +189,7 @@
|
||||
prefs.UI_style = UI_style_new
|
||||
prefs.UI_style_alpha = UI_style_alpha_new
|
||||
prefs.UI_style_color = UI_style_color_new
|
||||
prefs.save_preferences()
|
||||
prefs.save_preferences(src)
|
||||
usr << "UI was saved"
|
||||
|
||||
/client/verb/toggle_media()
|
||||
@@ -198,7 +198,7 @@
|
||||
set desc = "Toggle hearing streaming media (radios, jukeboxes, etc)"
|
||||
|
||||
prefs.sound ^= SOUND_STREAMING
|
||||
prefs.save_preferences()
|
||||
prefs.save_preferences(src)
|
||||
usr << "You will [(prefs.toggles & SOUND_STREAMING) ? "now" : "no longer"] hear streamed media."
|
||||
// Restart.
|
||||
media.stop_music()
|
||||
|
||||
@@ -135,4 +135,4 @@ function SetMusic(url, time, volume) {
|
||||
media.update_volume(value)
|
||||
if(prefs)
|
||||
prefs.volume = value
|
||||
prefs.save_preferences()
|
||||
prefs.save_preferences(src)
|
||||
|
||||
Reference in New Issue
Block a user