Add webtools static frontend and serve it via docker-compose
Adds an nginx:alpine service serving webtools/ (item/map lookup frontend) on port 80 alongside the existing login/char/world stack. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
1 parent
42cf2944ba
commit
36857a2eab
5 files changed
+651
No files matched your search
@@ -0,0 +1,123 @@
|
||||
const COMMANDS = [
|
||||
{cat:"Movement & Teleport", items:[
|
||||
{cmd:"/here", args:[], level:"any", desc:"Teleports you to your own current position — mostly used to force-refresh your client after a stuck screen.", ex:"/here"},
|
||||
{cmd:"/tele", args:["map","x","y"], level:"any", desc:"Teleport yourself to exact map/x/y coordinates.", ex:"/tele 20 5300 5100"},
|
||||
{cmd:"/gotomap", args:["map"], level:"any", desc:"Teleport to a map's default entry point.", ex:"/gotomap 22"},
|
||||
{cmd:"/go", args:["locationId"], level:"any", desc:"Jump to one of the server's built-in named locations (capital, event map, etc. — numeric index).", ex:"/go 1"},
|
||||
{cmd:"/goto", args:["charname"], level:"any", desc:"Teleport yourself to another online player.", ex:"/goto thomas"},
|
||||
{cmd:"/teletome", args:["charname|all"], level:"any", desc:"Pull one player — or every connected player — to your position.", ex:"/teletome all"},
|
||||
{cmd:"/move", args:["charname","map","x","y"], level:"any", desc:"Teleport someone else to a specific map/x/y (you stay put).", ex:"/move thomas 20 5300 5100"},
|
||||
{cmd:"/moveto", args:["…"], level:"any", desc:"Variant move helper; check live behaviour before relying on it — args are context-dependent.", ex:"/moveto 20 5300 5100"},
|
||||
]},
|
||||
{cat:"Character & Stats", items:[
|
||||
{cmd:"/level", args:["level","[charname]"], level:"any", desc:"Set a character's level directly. Defaults to yourself if no name given.", ex:"/level 50 thomas"},
|
||||
{cmd:"/levelup", args:[], level:"any", desc:"Grant exactly enough EXP to level up once. Alias: /l", ex:"/levelup"},
|
||||
{cmd:"/exp", args:["amount","[charname]"], level:"any", desc:"Add raw EXP to a character.", ex:"/exp 100000 thomas"},
|
||||
{cmd:"/stat", args:["statname","value"], level:"any", desc:"Directly set a named base stat (str/con/dex/int/cha/sen etc).", ex:"/stat str 40"},
|
||||
{cmd:"/statp", args:["amount","[charname]"], level:"any", desc:"Grant (or remove, negative) unspent stat points.", ex:"/statp 50"},
|
||||
{cmd:"/skillp", args:["amount","[charname]"], level:"any", desc:"Grant (or remove) unspent skill points.", ex:"/skillp 20"},
|
||||
{cmd:"/cha", args:["…"], level:"any", desc:"Adjusts character-level fields — inspect gmcmds.cpp:1027 before relying on exact args.", ex:"/cha"},
|
||||
{cmd:"/class", args:["classid"], level:"any", desc:"Change job/class.", ex:"/class 122"},
|
||||
{cmd:"/job", args:["soldier|muse|hawker|dealer"], level:"any", desc:"First job change at level 10+ (one-time, mirrors the in-game job-change quest).", ex:"/job soldier"},
|
||||
{cmd:"/mystat", args:["field"], level:"any", desc:"Print one of your own live stat fields to yourself (ap, acc, hp, mp, maxhp, maxmp, dodge, def, mdef, crit, mspd, aspd, xprate, stamina, weight, zulydrop, itemdrop, serverdrop, clan, map, job).", ex:"/mystat maxhp"},
|
||||
{cmd:"/heal", args:["[hp]","[mp]"], level:"any", desc:"Heal yourself. No args = full HP/MP.", ex:"/heal"},
|
||||
{cmd:"/learnskill", args:["skillId"], level:"gm 300+", desc:"Instantly learn a skill by its STB id.", ex:"/learnskill 181"},
|
||||
{cmd:"/killinrange", args:["range"], level:"any", desc:"Instantly kill every monster within range of you.", ex:"/killinrange 20"},
|
||||
{cmd:"/convert", args:["newMontype"], level:"dev 900+", desc:"Turn your current battle target into a different monster type in place.", ex:"/convert 210"},
|
||||
{cmd:"/hide", args:[], level:"any", desc:"Toggle GM invisible/hidden mode (see who2 for who can still see you).", ex:"/hide"},
|
||||
]},
|
||||
{cat:"Items & Economy", items:[
|
||||
{cmd:"/item", args:["itemid","itemtype","amount","[refine]","[lifespan]","[socketed]","[stats]"], level:"any", desc:"Give an item to yourself. Only the first 3 args are required. (See Item Configurator tab.)", ex:"/item 12 3 1 9 100 1 50"},
|
||||
{cmd:"/give2", args:["charname","itemid","itemtype","amount","[refine]","[lifespan]","[socketed]","[stats]"], level:"any", desc:"Give an item to another online player by name.", ex:"/give2 thomas 12 3 1"},
|
||||
{cmd:"/itemstat", args:["…"], level:"any", desc:"Adjust stats on an item — check gmcmds.cpp:1316 for the exact field order before use.", ex:"/itemstat"},
|
||||
{cmd:"/refine", args:["slot","level"], level:"any", desc:"Refine an equipped slot. Slot keyword (e.g. mask) or defaults to weapon.", ex:"/refine mask 6"},
|
||||
{cmd:"/drop", args:["itemtype","itemid","[count]"], level:"any", desc:"Drop an item on the ground at your feet (not into your inventory).", ex:"/drop 3 12 1"},
|
||||
{cmd:"/givezuly", args:["charname","amount"], level:"any", desc:"Give Zuly (in-game currency) to a player.", ex:"/givezuly thomas 100000"},
|
||||
{cmd:"/unionpoints", args:["charname","amount"], level:"any", desc:"Grant union points to a player.", ex:"/unionpoints thomas 500"},
|
||||
{cmd:"/set", args:["itemid","[refine]"], level:"any", desc:"Quick-equip a costume/hat item onto yourself by id.", ex:"/set 205 5"},
|
||||
{cmd:"/sendhp", args:["…"], level:"any", desc:"Force-resync your HP display to the client.", ex:"/sendhp"},
|
||||
]},
|
||||
{cat:"Monsters & Spawns", items:[
|
||||
{cmd:"/mon", args:["montype","[count]","[AI]"], level:"any", desc:"Spawn one or more monsters of a type near you. AI 0 = the monster's normal default AI.", ex:"/mon 1 5"},
|
||||
{cmd:"/tdmon", args:["montype","[count]"], level:"any", desc:"Spawn Tower-Defense-mode monsters (fixed AI 331) — used for TD map testing.", ex:"/tdmon 210 3"},
|
||||
{cmd:"/spawn", args:["montype","max","radius","respawnSecs","spawnType","[triggerMontype]","[triggerAmount]","[limit]","[spawnKey]","[aggro]","[refVar]","[refVal]"], level:"dev 900+", desc:"Permanently register a new spawn point at your current position (writes to list_special_spawns).", ex:"/spawn 1 5 10 30 1"},
|
||||
{cmd:"/npc", args:["npcid","[dialogId]"], level:"any", desc:"Place an NPC at your position.", ex:"/npc 1001"},
|
||||
]},
|
||||
{cat:"Quests", items:[
|
||||
{cmd:"/addquest", args:["questid"], level:"any", desc:"Add a quest to your active quest log.", ex:"/addquest 101"},
|
||||
{cmd:"/iquest", args:["…"], level:"any", desc:"Inspect/modify one of your in-progress quest slots.", ex:"/iquest 0"},
|
||||
{cmd:"/dquest", args:[], level:"any", desc:"Toggle quest-debug mode (SendPM narration of every quest condition/action check).", ex:"/dquest"},
|
||||
{cmd:"/listquest", args:[], level:"any", desc:"List all quests currently in your log.", ex:"/listquest"},
|
||||
{cmd:"/listqflag", args:[], level:"any", desc:"List your quest flag bits.", ex:"/listqflag"},
|
||||
{cmd:"/listqswitch", args:[], level:"any", desc:"List quest switches for your active quest slots.", ex:"/listqswitch"},
|
||||
{cmd:"/listqvar", args:[], level:"any", desc:"List quest variables for your active quest slots.", ex:"/listqvar"},
|
||||
{cmd:"/setqvar", args:["slot","varIndex","value"], level:"any", desc:"Directly set a quest variable.", ex:"/setqvar 0 2 1"},
|
||||
{cmd:"/qtrigger", args:["…"], level:"any", desc:"Manually fire a quest trigger event.", ex:"/qtrigger 0 3"},
|
||||
]},
|
||||
{cat:"World & Config", items:[
|
||||
{cmd:"/rate", args:["type","value"], level:"dev 900+", desc:"Live-adjust a rate config value (xp, drop, zuly, etc.) without restarting.", ex:"/rate xp 3"},
|
||||
{cmd:"/setxprate", args:["value"], level:"any", desc:"Set the global EXP rate multiplier.", ex:"/setxprate 3"},
|
||||
{cmd:"/setdroprate", args:["value"], level:"any", desc:"Set the global item drop rate multiplier.", ex:"/setdroprate 2"},
|
||||
{cmd:"/setzulyrate", args:["value"], level:"any", desc:"Set the global Zuly drop rate multiplier.", ex:"/setzulyrate 2"},
|
||||
{cmd:"/reload", args:["config|mobs|drops|cmd|spawns|tdef"], level:"any", desc:"Hot-reload a data set from the database without a server restart.", ex:"/reload spawns"},
|
||||
{cmd:"/configreset", args:["maxlevel|xprate|cmd"], level:"dev 900+", desc:"Reload/adjust core server config values and persist them to list_config.", ex:"/configreset xprate 3"},
|
||||
{cmd:"/settime", args:["…"], level:"any", desc:"Set the in-game day/night clock.", ex:"/settime 12"},
|
||||
{cmd:"/cfmode", args:["…"], level:"any", desc:"Toggle Clan Field open/closed mode.", ex:"/cfmode"},
|
||||
{cmd:"/pvp", args:[], level:"dev 900+", desc:"Toggle PvP on/off for the map you're currently on.", ex:"/pvp"},
|
||||
{cmd:"/setobjvar", args:["varId(<2000)","index(<20)","value"], level:"dev 300+", desc:"Set a global object variable slot (used by AIP scripts/world state).", ex:"/setobjvar 5 0 1"},
|
||||
{cmd:"/readobjvar", args:["varId","index"], level:"dev 300+", desc:"Read back a global object variable slot to yourself.", ex:"/readobjvar 5 0"},
|
||||
{cmd:"/shutdown", args:["minutes"], level:"any", desc:"Schedule a graceful server shutdown with a countdown.", ex:"/shutdown 10"},
|
||||
{cmd:"/setspeedmod", args:["value"], level:"any", desc:"Adjust your own movement speed modifier.", ex:"/setspeedmod 150"},
|
||||
{cmd:"/rules", args:[], level:"any", desc:"Print the configured server rules text to yourself.", ex:"/rules"},
|
||||
]},
|
||||
{cat:"Waypoints (TD maps)", items:[
|
||||
{cmd:"/setwp", args:["…"], level:"any", desc:"Add a waypoint at your position for tower-defense mob pathing.", ex:"/setwp"},
|
||||
{cmd:"/delwp", args:["…"], level:"any", desc:"Delete a waypoint.", ex:"/delwp 3"},
|
||||
{cmd:"/savewp", args:[], level:"any", desc:"Persist the current waypoint list to disk/DB.", ex:"/savewp"},
|
||||
{cmd:"/checkwp", args:[], level:"any", desc:"Print the current waypoint list to yourself.", ex:"/checkwp"},
|
||||
]},
|
||||
{cat:"Appearance & Effects", items:[
|
||||
{cmd:"/face", args:["faceId(0-15)","[style(0-3)]"], level:"any", desc:"Change your character's face.", ex:"/face 3 1"},
|
||||
{cmd:"/hair", args:["hairId(0-6)"], level:"any", desc:"Change your character's hairstyle.", ex:"/hair 2"},
|
||||
{cmd:"/bodysize", args:["size"], level:"any", desc:"Scale your character's body.", ex:"/bodysize 120"},
|
||||
{cmd:"/headsize", args:["size"], level:"any", desc:"Scale your character's head.", ex:"/headsize 120"},
|
||||
{cmd:"/ani", args:["…"], level:"any", desc:"Play an animation on yourself.", ex:"/ani 5"},
|
||||
{cmd:"/usebuff", args:["effectId"], level:"any", desc:"Play a skill-effect visual on yourself (cosmetic only).", ex:"/usebuff 12"},
|
||||
{cmd:"/summon", args:["…"], level:"any", desc:"Summon a pet/companion entity.", ex:"/summon 1"},
|
||||
{cmd:"/skill", args:["…"], level:"any", desc:"Cast/force a skill effect.", ex:"/skill 100"},
|
||||
]},
|
||||
{cat:"Fairy", items:[
|
||||
{cmd:"/givefairy", args:[], level:"any", desc:"Grant yourself a fairy companion.", ex:"/givefairy"},
|
||||
{cmd:"/fairymode", args:["mode"], level:"any", desc:"Set fairy behaviour mode.", ex:"/fairymode 1"},
|
||||
{cmd:"/fairywait", args:["seconds"], level:"any", desc:"Set fairy wait-time config.", ex:"/fairywait 30"},
|
||||
{cmd:"/fairystay", args:["seconds"], level:"any", desc:"Set fairy stay-time config.", ex:"/fairystay 45"},
|
||||
{cmd:"/fairytestmode", args:["0|1"], level:"any", desc:"Toggle fairy test mode.", ex:"/fairytestmode 1"},
|
||||
]},
|
||||
{cat:"Communication & Moderation", items:[
|
||||
{cmd:"/b", args:["message"], level:"any", desc:"Broadcast a global chat message (rate-limited unless accesslevel > 100).", ex:"/b Server restarting in 10 minutes"},
|
||||
{cmd:"/ann", args:["message"], level:"any", desc:"Send a server-wide announcement banner.", ex:"/ann Double EXP weekend is live!"},
|
||||
{cmd:"/mute", args:["charname","minutes"], level:"any", desc:"Mute a player's chat for N minutes.", ex:"/mute griefer123 30"},
|
||||
{cmd:"/kick", args:["charname"], level:"any", desc:"Disconnect a player. Fails if their accesslevel ≥ yours.", ex:"/kick griefer123"},
|
||||
{cmd:"/ban", args:["charname"], level:"any", desc:"Ban a player's account.", ex:"/ban griefer123"},
|
||||
{cmd:"/dialog", args:["…"], level:"dev 300+", desc:"Force-open an NPC dialog window on a target.", ex:"/dialog"},
|
||||
]},
|
||||
{cat:"Info & Diagnostics", items:[
|
||||
{cmd:"/info", args:[], level:"any", desc:"Print your own full character info to yourself.", ex:"/info"},
|
||||
{cmd:"/CharInfo", args:["charname"], level:"any", desc:"Print another player's character info to yourself.", ex:"/CharInfo thomas"},
|
||||
{cmd:"/targetinfo", args:[], level:"any", desc:"Print info about your current battle target.", ex:"/targetinfo"},
|
||||
{cmd:"/serverinfo", args:[], level:"any", desc:"Print server stats (uptime, counts) to yourself.", ex:"/serverinfo"},
|
||||
{cmd:"/who", args:[], level:"any", desc:"Print a count of connected players vs GMs.", ex:"/who"},
|
||||
{cmd:"/who2", args:[], level:"any", desc:"List every connected player by name with position/level/job.", ex:"/who2"},
|
||||
{cmd:"/mybuffs", args:[], level:"any", desc:"List currently active buffs on yourself.", ex:"/mybuffs"},
|
||||
{cmd:"/debugmode", args:[], level:"any", desc:"Toggle verbose PM narration of internal code paths — useful when diagnosing a specific command.", ex:"/debugmode"},
|
||||
{cmd:"/aiwatch", args:["aiNumber"], level:"any", desc:"Turn on verbose server-log tracing for one specific monster AI script number.", ex:"/aiwatch 331"},
|
||||
{cmd:"/p", args:[], level:"any", desc:"Send yourself the contents of the server's packet.txt test file (developer packet-injection tool).", ex:"/p"},
|
||||
{cmd:"/save", args:[], level:"any", desc:"Force-save your character data immediately.", ex:"/save"},
|
||||
{cmd:"/savequest", args:[], level:"any", desc:"Force-save your quest progress immediately.", ex:"/savequest"},
|
||||
{cmd:"/partylvl", args:[], level:"any", desc:"Print average party level info.", ex:"/partylvl"},
|
||||
{cmd:"/pdmg", args:["…"], level:"any", desc:"Debug print of player damage calculation inputs.", ex:"/pdmg"},
|
||||
{cmd:"/mdmg", args:["…"], level:"any", desc:"Debug print of monster damage calculation inputs.", ex:"/mdmg"},
|
||||
{cmd:"/shoptype", args:["…"], level:"any", desc:"Inspect/set an NPC shop's type.", ex:"/shoptype"},
|
||||
{cmd:"/transx", args:["…"], level:"any", desc:"Debug transform/position helper.", ex:"/transx"},
|
||||
]},
|
||||
];
|
||||
Reference in new issue
Block a user