//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() set name = "wiki" set desc = "Visit the wiki." set hidden = 1 if(config.wikiurl) if(alert("This will open the wiki in your browser. Are you sure?",,"Yes","No")=="No") return src << link(config.wikiurl) else to_chat(src, "The wiki URL is not set in the server configuration.") return /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 = "Show 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/github() set name = "github" set desc = "Visit Github" set hidden = 1 if(config.githuburl) if(alert("This will open the Github repository in your browser. Are you sure?",,"Yes","No")=="No") return src << link(config.githuburl) else to_chat(src, "The Github URL is not set in the server configuration.") return /client/verb/reportissue() set name = "report-issue" set desc = "Report an issue" set hidden = 1 if(config.githuburl) var/message = "This will open the Github issue reporter in your browser. Are you sure?" if(GLOB.revdata.testmerge.len) message += "
The following experimental changes are active and are probably the cause of any new or sudden issues you may experience. If possible, please try to find a specific thread for your issue instead of posting to the general issue tracker:
" message += GLOB.revdata.GetTestMergeInfo(FALSE) if(tgalert(src, message, "Report Issue","Yes","No")=="No") return src << link("[config.githuburl]/issues/new") else to_chat(src, "The Github URL is not set in the server configuration.") return /client/verb/hotkeys_help() set name = "hotkeys-help" set category = "OOC" var/adminhotkeys = {" Admin: \tF5 = Aghost (admin-ghost) \tF6 = player-panel \tF7 = admin-pm \tF8 = Invisimin "} mob.hotkey_help() if(holder) to_chat(src, adminhotkeys) /client/verb/changelog() set name = "Changelog" set category = "OOC" var/datum/asset/changelog = get_asset_datum(/datum/asset/simple/changelog) changelog.send(src) src << browse('html/changelog.html', "window=changes;size=675x650") if(prefs.lastchangelog != GLOB.changelog_hash) prefs.lastchangelog = GLOB.changelog_hash prefs.save_preferences() winset(src, "infowindow.changelog", "font-style=;") /mob/proc/hotkey_help() var/hotkey_mode = {" Hotkey-Mode: (hotkey-mode must be on) \tTAB = toggle hotkey-mode \ta = left \ts = down \td = right \tw = up \tq = drop \te = equip \tr = throw \tm = me \tt = say \to = OOC \tb = resist \tx = swap-hand \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 \tNumpad = Body target selection (Press 8 repeatedly for Head->Eyes->Mouth) \tAlt(HOLD) = Alter movement intent "} var/other = {" Any-Mode: (hotkey doesn't need to be on) \tCtrl+a = left \tCtrl+s = down \tCtrl+d = right \tCtrl+w = up \tCtrl+q = drop \tCtrl+e = equip \tCtrl+r = throw \tCtrl+b = resist \tCtrl+o = OOC \tCtrl+x = swap-hand \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 \tCtrl+'+/-' OR \tShift+Mousewheel = Ghost zoom in/out \tDEL = pull \tINS = cycle-intents-right \tHOME = drop \tPGUP = swap-hand \tPGDN = activate held object \tEND = throw \tCtrl+Numpad = Body target selection (Press 8 repeatedly for Head->Eyes->Mouth) "} to_chat(src, hotkey_mode) to_chat(src, other) /mob/living/silicon/robot/hotkey_help() //h = talk-wheel has a nonsense tag in it because \th is an escape sequence in BYOND. var/hotkey_mode = {" Hotkey-Mode: (hotkey-mode must be on) \tTAB = toggle hotkey-mode \ta = left \ts = down \td = right \tw = up \tq = unequip active module \tm = me \tt = say \th = talk-wheel \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 = left \tCtrl+s = down \tCtrl+d = right \tCtrl+w = up \tCtrl+q = unequip active module \tCtrl+x = cycle active modules \tCtrl+b = resist \tCtrl+h = talk-wheel \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 "} to_chat(src, hotkey_mode) to_chat(src, other) // Needed to circumvent a bug where .winset does not work when used on the window.on-size event in skins. // Used by /datum/html_interface/nanotrasen (code/modules/html_interface/nanotrasen/nanotrasen.dm) /client/verb/_swinset(var/x as text) set name = ".swinset" set hidden = 1 winset(src, null, x)