WASD uses stock moveMap; pitch + HUD placement

This commit is contained in:
RallyBlock committed 2026-11-09 20:24:48 -05:00
1 parent 5990114083
commit c56065f6a0
1 file changed
+77 -88
+77 -88
View File
@@ -6,7 +6,9 @@ $RPGClient::Version = 2;
$RPGClient::Active = 0; $RPGClient::Active = 0;
$RPGClient::Yaw = 0; $RPGClient::Yaw = 0;
$RPGClient::Dist = 14; $RPGClient::Dist = 14;
$RPGClient::TopDownPitch = 0.95; $RPGClient::TopDownPitch = 1.22;
$RPGClient::OrbitInit = 0;
$RPGClient::HudPlaced = 0;
$RPGClient::PanX = 0; $RPGClient::PanX = 0;
$RPGClient::PanY = 0; $RPGClient::PanY = 0;
$RPGClient::PanMax = 48; $RPGClient::PanMax = 48;
@@ -182,23 +184,48 @@ function RPGClient_CameraTick()
} }
%spin = $RPGClient::YawSpeed; %spin = $RPGClient::YawSpeed;
%zoom = $RPGClient::ZoomSpeed; %zoom = $RPGClient::ZoomSpeed;
if ($RPGClient::MvL) %changed = 0;
if ($mvLeftAction > 0)
{
$RPGClient::Yaw = $RPGClient::Yaw - %spin * $mvLeftAction;
%changed = 1;
}
if ($mvRightAction > 0)
{
$RPGClient::Yaw = $RPGClient::Yaw + %spin * $mvRightAction;
%changed = 1;
}
if ($mvForwardAction > 0)
{
$RPGClient::Dist = getMax(6, $RPGClient::Dist - %zoom * $mvForwardAction);
%changed = 1;
}
if ($mvBackwardAction > 0)
{
$RPGClient::Dist = getMin(32, $RPGClient::Dist + %zoom * $mvBackwardAction);
%changed = 1;
}
if ($RPGClient::MvL > 0)
{ {
$RPGClient::Yaw = $RPGClient::Yaw - %spin * $RPGClient::MvL; $RPGClient::Yaw = $RPGClient::Yaw - %spin * $RPGClient::MvL;
%changed = 1;
} }
if ($RPGClient::MvR) if ($RPGClient::MvR > 0)
{ {
$RPGClient::Yaw = $RPGClient::Yaw + %spin * $RPGClient::MvR; $RPGClient::Yaw = $RPGClient::Yaw + %spin * $RPGClient::MvR;
%changed = 1;
} }
if ($RPGClient::MvF) if ($RPGClient::MvF > 0)
{ {
$RPGClient::Dist = getMax(6, $RPGClient::Dist - %zoom * $RPGClient::MvF); $RPGClient::Dist = getMax(6, $RPGClient::Dist - %zoom * $RPGClient::MvF);
%changed = 1;
} }
if ($RPGClient::MvB) if ($RPGClient::MvB > 0)
{ {
$RPGClient::Dist = getMin(32, $RPGClient::Dist + %zoom * $RPGClient::MvB); $RPGClient::Dist = getMin(32, $RPGClient::Dist + %zoom * $RPGClient::MvB);
%changed = 1;
} }
RPGClient_ApplyCamera(0); RPGClient_ApplyCamera(%changed);
$RPGClient::CamTickSched = schedule(32, 0, RPGClient_CameraTick); $RPGClient::CamTickSched = schedule(32, 0, RPGClient_CameraTick);
} }
@@ -287,14 +314,6 @@ function RPGClient_EnableOverlay()
RPGClient_KeyMap.delete(); RPGClient_KeyMap.delete();
} }
new ActionMap(RPGClient_KeyMap); new ActionMap(RPGClient_KeyMap);
RPGClient_KeyMap.bind(keyboard, w, RPGClient_KeyMvForward);
RPGClient_KeyMap.bind(keyboard, s, RPGClient_KeyMvBackward);
RPGClient_KeyMap.bind(keyboard, a, RPGClient_KeyMvLeft);
RPGClient_KeyMap.bind(keyboard, d, RPGClient_KeyMvRight);
RPGClient_KeyMap.bind(keyboard0, w, RPGClient_KeyMvForward);
RPGClient_KeyMap.bind(keyboard0, s, RPGClient_KeyMvBackward);
RPGClient_KeyMap.bind(keyboard0, a, RPGClient_KeyMvLeft);
RPGClient_KeyMap.bind(keyboard0, d, RPGClient_KeyMvRight);
RPGClient_KeyMap.bind(keyboard, left, RPGClient_YawLeft); RPGClient_KeyMap.bind(keyboard, left, RPGClient_YawLeft);
RPGClient_KeyMap.bind(keyboard, right, RPGClient_YawRight); RPGClient_KeyMap.bind(keyboard, right, RPGClient_YawRight);
RPGClient_KeyMap.bind(keyboard0, left, RPGClient_YawLeft); RPGClient_KeyMap.bind(keyboard0, left, RPGClient_YawLeft);
@@ -347,6 +366,32 @@ function RPGClient_DisableOverlay()
RPGClient_Mouse.delete(); RPGClient_Mouse.delete();
} }
$RPGClient::Active = 0; $RPGClient::Active = 0;
$RPGClient::OrbitInit = 0;
$RPGClient::HudPlaced = 0;
}
function RPGClient_Hud_Place()
{
if (!isObject(RPGClient_Hud) || !isObject(Canvas))
{
return;
}
%ext = Canvas.getExtent();
%w = getWord(%ext, 0);
%h = getWord(%ext, 1);
if (%h < 1)
{
return;
}
%pw = %w > 520 ? 520 : %w - 16;
%px = mFloor((%w - %pw) * 0.5);
%py = %h - 108;
if (%py < 8)
{
%py = 8;
}
RPGClient_Hud.resize(%px, %py, %pw, 20);
$RPGClient::HudPlaced = 1;
} }
function RPGClient_ApplyCamera(%forceSync) function RPGClient_ApplyCamera(%forceSync)
@@ -381,19 +426,18 @@ function RPGClient_ApplyCamera(%forceSync)
%conn.setControlObject(%cam); %conn.setControlObject(%cam);
$mvFreeLook = 0; $mvFreeLook = 0;
$firstPerson = 0; $firstPerson = 0;
$mvForwardAction = 0;
$mvBackwardAction = 0;
$mvLeftAction = 0;
$mvRightAction = 0;
$RPGClient::PanX = 0;
$RPGClient::PanY = 0;
%xfm = RPGClient_ViewTransform(%body, $RPGClient::Yaw, $RPGClient::Dist, 0, 0); %xfm = RPGClient_ViewTransform(%body, $RPGClient::Yaw, $RPGClient::Dist, 0, 0);
%cam.unmountImage(0); %cam.unmountImage(0);
%cam.setTransform(%xfm); if (!$RPGClient::OrbitInit)
{
%cam.setMode("Corpse", %body); %cam.setMode("Corpse", %body);
%cam.setOrbitMode(%body, %xfm, 0, 32, $RPGClient::Dist); %cam.setOrbitMode(%body, %xfm, 0, 32, $RPGClient::Dist);
%cam.mode = "Corpse"; %cam.mode = "Corpse";
%cam.thirdPersonOnly = 1; %cam.thirdPersonOnly = 1;
$RPGClient::OrbitInit = 1;
}
%cam.setTransform(%xfm);
%cam.setOrbitDist($RPGClient::Dist);
%now = getSimTime(); %now = getSimTime();
if (%forceSync || %now - $RPGClient::LastCamSync > 120) if (%forceSync || %now - $RPGClient::LastCamSync > 120)
{ {
@@ -550,8 +594,8 @@ function clientCmdRPG_TopDown(%on, %yaw, %dist)
$RPGClient::Active = 1; $RPGClient::Active = 1;
$RPGClient::Yaw = %yaw; $RPGClient::Yaw = %yaw;
$RPGClient::Dist = %dist > 0 ? %dist : 14; $RPGClient::Dist = %dist > 0 ? %dist : 14;
$RPGClient::PanX = 0; $RPGClient::OrbitInit = 0;
$RPGClient::PanY = 0; $RPGClient::HudPlaced = 0;
RPGClient_EnableOverlay(); RPGClient_EnableOverlay();
RPGClient_BindKeys(); RPGClient_BindKeys();
RPGClient_StartCameraTick(); RPGClient_StartCameraTick();
@@ -613,14 +657,15 @@ function RPGClient_Hud_Ensure()
} }
new GuiTextCtrl(RPGClient_Hud) new GuiTextCtrl(RPGClient_Hud)
{ {
horizSizing = "center"; horizSizing = "absolute";
vertSizing = "bottom"; vertSizing = "absolute";
position = "0 88"; position = "8 400";
extent = "520 20"; extent = "520 20";
profile = "ChatHudMessageProfile"; profile = "ChatHudMessageProfile";
text = ""; text = "";
}; };
PlayGui.add(RPGClient_Hud); PlayGui.add(RPGClient_Hud);
RPGClient_Hud_Place();
} }
function RPGClient_Hud_Update(%hp, %maxHp, %silver, %load, %cap, %skillId, %skillValue, %tHp, %tMax) function RPGClient_Hud_Update(%hp, %maxHp, %silver, %load, %cap, %skillId, %skillValue, %tHp, %tMax)
@@ -630,6 +675,10 @@ function RPGClient_Hud_Update(%hp, %maxHp, %silver, %load, %cap, %skillId, %skil
return; return;
} }
RPGClient_Hud_Ensure(); RPGClient_Hud_Ensure();
if (!$RPGClient::HudPlaced)
{
RPGClient_Hud_Place();
}
%t = ""; %t = "";
if (%tMax > 0) if (%tMax > 0)
{ {
@@ -710,68 +759,8 @@ package RPGClient_BlockMouseFire
}; };
activatePackage(RPGClient_BlockMouseFire); activatePackage(RPGClient_BlockMouseFire);
package RPGClient_MoveMap package RPGClient_PageKeys
{ {
function moveforward(%val)
{
if ($RPGClient::Active)
{
$RPGClient::MvF = %val;
if (%val && $RunMultiplier > 1)
{
$RPGClient::MvF = %val * $RunMultiplier;
}
$mvForwardAction = 0;
return;
}
Parent::moveforward(%val);
}
function movebackward(%val)
{
if ($RPGClient::Active)
{
$RPGClient::MvB = %val;
if (%val && $RunMultiplier > 1)
{
$RPGClient::MvB = %val * $RunMultiplier;
}
$mvBackwardAction = 0;
return;
}
Parent::movebackward(%val);
}
function moveleft(%val)
{
if ($RPGClient::Active)
{
$RPGClient::MvL = %val;
if (%val && $RunMultiplier > 1)
{
$RPGClient::MvL = %val * $RunMultiplier;
}
$mvLeftAction = 0;
return;
}
Parent::moveleft(%val);
}
function moveright(%val)
{
if ($RPGClient::Active)
{
$RPGClient::MvR = %val;
if (%val && $RunMultiplier > 1)
{
$RPGClient::MvR = %val * $RunMultiplier;
}
$mvRightAction = 0;
return;
}
Parent::moveright(%val);
}
function PageUpNewChatHud(%val) function PageUpNewChatHud(%val)
{ {
if ($RPGClient::Active && %val) if ($RPGClient::Active && %val)
@@ -792,7 +781,7 @@ package RPGClient_MoveMap
Parent::PageDownNewChatHud(%val); Parent::PageDownNewChatHud(%val);
} }
}; };
activatePackage(RPGClient_MoveMap); activatePackage(RPGClient_PageKeys);
package RPGClient_Cursor package RPGClient_Cursor
{ {