fix camera tick: CamTickOn on HUD; wheel zoom

This commit is contained in:
RallyBlock committed 2026-11-09 20:45:56 -05:00
1 parent dcdbdf8780
commit e42b2ed66b
4 files changed
+1296 -1233

No files matched your search

+18 -18
View File
@@ -1,18 +1,18 @@
# Client_RPG # Client_RPG
Required client add-on for **GameMode_RPG**: top-down orbit camera, click-to-move/combat, HUD and `/rpg` window hotkeys. Required client add-on for **GameMode_RPG**: top-down orbit camera, click-to-move/combat, HUD and `/rpg` window hotkeys.
Install into `Add-Ons/Client_RPG` (same folder name as on the server). Install into `Add-Ons/Client_RPG` (same folder name as on the server).
## Controls ## Controls
| Input | Action | | Input | Action |
|---|---| |---|---|
| Left click | Walk / attack / interact (server resolves the ray) | | Left click | Walk / attack / interact (server resolves the ray) |
| Right click | Talk / context | | Right click | Talk / context |
| A/D, arrows | Rotate camera | | A/D, arrows | Rotate camera |
| PgUp/PgDn, +/- | Zoom | | PgUp/PgDn, +/- | Zoom |
| B / K / E | Bag / skills / equip lists | | B / K / E | Bag / skills / equip lists |
| R | Toggle auto-retaliate | | R | Toggle auto-retaliate |
Protocol version **2** — must match `GameMode_RPG` ui/protocol.cs. Protocol version **2** — must match `GameMode_RPG` ui/protocol.cs.
+1204 -1141
View File
File diff suppressed because it is too large. Load diff
+2 -2
View File
@@ -1,2 +1,2 @@
Client_RPG Client_RPG
Required client add-on for the GameMode_RPG realm: top-down camera, click-to-move and combat, and the RPG windows. Without it you can only spectate on an RPG server. Required client add-on for the GameMode_RPG realm: top-down camera, click-to-move and combat, and the RPG windows. Without it you can only spectate on an RPG server.
+72 -72
View File
@@ -1,72 +1,72 @@
// Client windows: hotkeys open /rpg lists; the server still validates every command. // Client windows: hotkeys open /rpg lists; the server still validates every command.
$RPGClient::MenuOpen = 0; $RPGClient::MenuOpen = 0;
function RPGClient_RunCmd(%cmd) function RPGClient_RunCmd(%cmd)
{ {
if (!isObject(ServerConnection)) if (!isObject(ServerConnection))
{ {
return; return;
} }
commandToServer('Message', "/rpg " @ %cmd); commandToServer('Message', "/rpg " @ %cmd);
} }
function RPGClient_ToggleMenu(%name, %cmd) function RPGClient_ToggleMenu(%name, %cmd)
{ {
if ($RPGClient::MenuOpen $= %name) if ($RPGClient::MenuOpen $= %name)
{ {
$RPGClient::MenuOpen = ""; $RPGClient::MenuOpen = "";
return; return;
} }
$RPGClient::MenuOpen = %name; $RPGClient::MenuOpen = %name;
RPGClient_RunCmd(%cmd); RPGClient_RunCmd(%cmd);
} }
function RPGClient_Menu_Bag() function RPGClient_Menu_Bag()
{ {
RPGClient_ToggleMenu("bag", "bag"); RPGClient_ToggleMenu("bag", "bag");
} }
function RPGClient_Menu_Skills() function RPGClient_Menu_Skills()
{ {
RPGClient_ToggleMenu("skills", "skills"); RPGClient_ToggleMenu("skills", "skills");
} }
function RPGClient_Menu_Equip() function RPGClient_Menu_Equip()
{ {
RPGClient_ToggleMenu("equip", "equip"); RPGClient_ToggleMenu("equip", "equip");
} }
function RPGClient_Menu_Help() function RPGClient_Menu_Help()
{ {
RPGClient_RunCmd("help"); RPGClient_RunCmd("help");
} }
function RPGClient_Menu_Retaliate() function RPGClient_Menu_Retaliate()
{ {
RPGClient_RunCmd("retaliate"); RPGClient_RunCmd("retaliate");
} }
function RPGClient_BindKeys() function RPGClient_BindKeys()
{ {
if (isObject(RPGClient_MenuMap)) if (isObject(RPGClient_MenuMap))
{ {
RPGClient_MenuMap.delete(); RPGClient_MenuMap.delete();
} }
new ActionMap(RPGClient_MenuMap); new ActionMap(RPGClient_MenuMap);
RPGClient_MenuMap.bind(keyboard0, b, RPGClient_Menu_Bag); RPGClient_MenuMap.bind(keyboard0, b, RPGClient_Menu_Bag);
RPGClient_MenuMap.bind(keyboard0, k, RPGClient_Menu_Skills); RPGClient_MenuMap.bind(keyboard0, k, RPGClient_Menu_Skills);
RPGClient_MenuMap.bind(keyboard0, e, RPGClient_Menu_Equip); RPGClient_MenuMap.bind(keyboard0, e, RPGClient_Menu_Equip);
RPGClient_MenuMap.bind(keyboard0, f1, RPGClient_Menu_Help); RPGClient_MenuMap.bind(keyboard0, f1, RPGClient_Menu_Help);
RPGClient_MenuMap.bind(keyboard0, r, RPGClient_Menu_Retaliate); RPGClient_MenuMap.bind(keyboard0, r, RPGClient_Menu_Retaliate);
RPGClient_MenuMap.push(); RPGClient_MenuMap.push();
} }
function RPGClient_UnbindKeys() function RPGClient_UnbindKeys()
{ {
if (isObject(RPGClient_MenuMap)) if (isObject(RPGClient_MenuMap))
{ {
RPGClient_MenuMap.pop(); RPGClient_MenuMap.pop();
RPGClient_MenuMap.delete(); RPGClient_MenuMap.delete();
} }
} }