//Please use mob or src (not usr) in these procs. This way they can be called in the same fashion as procs.
/client/verb/wiki(query as text)
set name = "wiki"
set desc = "Type what you want to know about. This will open the wiki on your web browser."
set hidden = 1
if(config.wikiurl)
if(query)
var/output = config.wikiurl + "/index.php?title=Special%3ASearch&profile=default&search=" + query
src << link(output)
else
src << link(config.wikiurl)
else
to_chat(src, "The wiki URL is not set in the server configuration.")
return
/client/verb/changes()
set name = "Changelog"
set desc = "View the changelog."
set hidden = 1
getFiles(
'html/88x31.png',
'html/bug-minus.png',
'html/cross-circle.png',
'html/hard-hat-exclamation.png',
'html/image-minus.png',
'html/image-plus.png',
'html/music-minus.png',
'html/music-plus.png',
'html/tick-circle.png',
'html/wrench-screwdriver.png',
'html/spell-check.png',
'html/burn-exclamation.png',
'html/chevron.png',
'html/chevron-expand.png',
'html/changelog.css',
'html/changelog.js',
'html/changelog.html'
)
src << browse('html/changelog.html', "window=changes;size=675x650")
if(prefs.lastchangelog != changelog_hash) //if it's already opened, no need to tell them they have unread changes
prefs.SetChangelog(src,changelog_hash)
/client/verb/forum()
set name = "forum"
set desc = "Visit the forum."
set hidden = 1
if(config.forumurl)
if(alert("This will open the forum in your browser. Are you sure?",,"Yes","No")=="No")
return
src << link(config.forumurl)
else
to_chat(src, "The forum URL is not set in the server configuration.")
return
/client/verb/rules()
set name = "Rules"
set desc = "View the server rules."
set hidden = 1
if(config.rulesurl)
if(alert("This will open the rules in your browser. Are you sure?",,"Yes","No")=="No")
return
src << link(config.rulesurl)
else
to_chat(src, "The rules URL is not set in the server configuration.")
return
/client/verb/donate()
set name = "Donate"
set desc = "Donate to help with hosting costs."
set hidden = 1
if(config.donationsurl)
if(alert("This will open the donation page in your browser. Are you sure?",,"Yes","No")=="No")
return
src << link(config.donationsurl)
else
to_chat(src, "The rules URL is not set in the server configuration.")
return
/client/verb/hotkeys_help()
set name = "Hotkey Help"
set category = "OOC"
var/adminhotkeys = {"
Admin:
\tF5 = Asay
\tF6 = Admin Ghost
\tF7 = Player Panel
\tF8 = Admin PM
\tF9 = Invisimin
Admin ghost:
\tCtrl+Click = Player Panel
\tCtrl+Shift+Click = View Variables
\tShift+Middle Click = Mob Info
"}
mob.hotkey_help()
if(check_rights(R_MOD|R_ADMIN,0))
to_chat(src, adminhotkeys)
/mob/proc/hotkey_help()
var/hotkey_mode = {"
Hotkey-Mode: (hotkey-mode must be on)
\tTAB = Toggle Hotkey Mode
\ta = Move Left
\ts = Move Down
\td = Move Right
\tw = Move Up
\tq = Drop Item
\te = Equip Item
\tr = Throw Item
\tm = Me
\tt = Say
\to = OOC
\tb = Resist
\tx = Swap Hands
\tz = Activate Held Object (or y)
\tf = Cycle Intents Left
\tg = Cycle Intents Right
\t1 = Help Intent
\t2 = Disarm Intent
\t3 = Grab Intent
\t4 = Harm Intent
"}
var/other = {"
Any-Mode: (hotkey doesn't need to be on)
\tCtrl+a = Move Left
\tCtrl+s = Move Down
\tCtrl+d = Move Right
\tCtrl+w = Move Up
\tCtrl+q = Drop Item
\tCtrl+e = Equip Item
\tCtrl+r = Throw Item
\tCtrl+b = Resist
\tCtrl+o = OOC
\tCtrl+x = Swap Hands
\tCtrl+z = Activate Held Object (or Ctrl+y)
\tCtrl+f = Cycle Intents Left
\tCtrl+g = Cycle Intents Right
\tCtrl+1 = Help Intent
\tCtrl+2 = Disarm Intent
\tCtrl+3 = Grab Intent
\tCtrl+4 = Harm Intent
\tDEL = Pull
\tINS = Cycle Intents Right
\tHOME = Drop Item
\tPGUP = Swap Hands
\tPGDN = Activate Held Object
\tEND = Throw Item
\tF2 = OOC
\tF3 = Say
\tF4 = Me
"}
to_chat(src, hotkey_mode)
to_chat(src, other)
/mob/living/silicon/robot/hotkey_help()
var/hotkey_mode = {"
Hotkey-Mode: (hotkey-mode must be on)
\tTAB = Toggle Hotkey Mode
\ta = Move Left
\ts = Move Down
\td = Move Right
\tw = Move Up
\tq = Unequip Active Module
\tm = Me
\tt = Say
\to = OOC
\tx = Cycle Active Modules
\tb = Resist
\tz = Activate Held Object (or y)
\tf = Cycle Intents Left
\tg = Cycle Intents Right
\t1 = Activate Module 1
\t2 = Activate Module 2
\t3 = Activate Module 3
\t4 = Toggle Intents
"}
var/other = {"
Any-Mode: (hotkey doesn't need to be on)
\tCtrl+a = Move Left
\tCtrl+s = Move Down
\tCtrl+d = Move Right
\tCtrl+w = Move Up
\tCtrl+q = Unequip Active Module
\tCtrl+x = Cycle Active Modules
\tCtrl+b = Resist
\tCtrl+o = OOC
\tCtrl+z = Activate Held Object (or Ctrl+y)
\tCtrl+f = Cycle Intents Left
\tCtrl+g = Cycle Intents Right
\tCtrl+1 = Activate Module 1
\tCtrl+2 = Activate Module 2
\tCtrl+3 = Activate Module 3
\tCtrl+4 = Toggle Intents
\tDEL = Pull
\tINS = Toggle Intents
\tPGUP = Cycle Active Modules
\tPGDN = Activate Held Object
\tF2 = OOC
\tF3 = Say
\tF4 = Me
"}
to_chat(src, hotkey_mode)
to_chat(src, other)
//adv. hotkey mode verbs, vars located in /code/modules/client/client defines.dm
/client/verb/hotkey_toggle()//toggles hotkey mode between on and off, respects selected type
set name = ".Toggle Hotkey Mode"
hotkeyon = !hotkeyon//toggle the var
to_chat(usr, (hotkeyon ? "Hotkey mode enabled." : "Hotkey mode disabled."))//feedback to the user
if(hotkeyon)//using an if statement because I don't want to clutter winset() with ? operators
winset(usr, "mainwindow.hotkey_toggle", "is-checked=true")//checks the button
else
winset(usr, "mainwindow.hotkey_toggle", "is-checked=false")//unchecks the button
if(mob)
mob.update_interface()
/client/verb/hotkey_mode()//asks user for the hotkey type and changes the macro accordingly
set name = "Set Hotkey Mode"
set category = "Preferences"
var/hkt = input("Choose hotkey mode", "Hotkey mode") as null|anything in hotkeylist//ask the user for the hotkey type
if(!hkt)
return
hotkeytype = hkt
var/hotkeys = hotkeylist[hotkeytype]//get the list containing the hotkey names
var/hotkeyname = hotkeys[hotkeyon ? "on" : "off"]//get the name of the hotkey, to not clutter winset() to much
winset(usr, "mainwindow", "macro=[hotkeyname]")//change the hotkey
to_chat(usr, "Hotkey mode changed to [hotkeytype].")