From 760b856576772054e6b58452a9408957f3848e2f Mon Sep 17 00:00:00 2001 From: gahusb Date: Sun, 14 Jun 2026 13:02:30 +0900 Subject: [PATCH] =?UTF-8?q?fix(lobby):=20=EB=A1=9C=EB=B9=84=20=EC=9D=B4?= =?UTF-8?q?=EB=8F=99=C2=B7=EC=A0=90=ED=94=84=EB=A5=BC=20=EA=B8=B0=EB=B3=B8?= =?UTF-8?q?=EA=B0=92=EC=9C=BC=EB=A1=9C=20=E2=80=94=20InputSpeed=205?= =?UTF-8?q?=E2=86=921.4,=20JumpForce=205=E2=86=921.23=20(P15)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 기존 5/5는 보행 ~9u/s·점프 상승 14u로 과함. freeze가 안 건드린 intact RigidbodyComponent.WalkSpeed(1.4)/WalkJump(1.23) 기본값에 맞춤. 실측: 보행 2.5u/s, 점프 상승 1.79u로 정상화. Co-Authored-By: Claude Opus 4.8 (1M context) --- RootDesk/MyDesk/LobbyMobility.codeblock | 2 +- tools/player/gen-lobby-npc.mjs | 6 ++++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/RootDesk/MyDesk/LobbyMobility.codeblock b/RootDesk/MyDesk/LobbyMobility.codeblock index f86f89a..a1396bb 100644 --- a/RootDesk/MyDesk/LobbyMobility.codeblock +++ b/RootDesk/MyDesk/LobbyMobility.codeblock @@ -47,7 +47,7 @@ "Name": null }, "Arguments": [], - "Code": "self.Tries = 0\nlocal eventId = 0\nlocal function apply()\n\tself.Tries = self.Tries + 1\n\tlocal lp = _UserService.LocalPlayer\n\tif lp ~= nil and lp.PlayerControllerComponent ~= nil then\n\t\tlocal pc = lp.PlayerControllerComponent\n\t\tpc.Enable = true\n\t\tpc.FixedLookAt = 0\n\t\tlocal rb = lp.RigidbodyComponent\n\t\tif rb ~= nil then rb.WalkAcceleration = 0.7 end\n\t\tlocal mv = lp.MovementComponent\n\t\tif mv ~= nil then\n\t\t\tmv.InputSpeed = 5\n\t\t\tmv.JumpForce = 5\n\t\tend\n\t\t_TimerService:ClearTimer(eventId)\n\telseif self.Tries > 50 then\n\t\t_TimerService:ClearTimer(eventId)\n\tend\nend\neventId = _TimerService:SetTimerRepeat(apply, 0.1)", + "Code": "self.Tries = 0\nlocal eventId = 0\nlocal function apply()\n\tself.Tries = self.Tries + 1\n\tlocal lp = _UserService.LocalPlayer\n\tif lp ~= nil and lp.PlayerControllerComponent ~= nil then\n\t\tlocal pc = lp.PlayerControllerComponent\n\t\tpc.Enable = true\n\t\tpc.FixedLookAt = 0\n\t\tlocal rb = lp.RigidbodyComponent\n\t\tif rb ~= nil then rb.WalkAcceleration = 0.7 end\n\t\tlocal mv = lp.MovementComponent\n\t\tif mv ~= nil then\n\t\t\tmv.InputSpeed = 1.4\n\t\t\tmv.JumpForce = 1.23\n\t\tend\n\t\t_TimerService:ClearTimer(eventId)\n\telseif self.Tries > 50 then\n\t\t_TimerService:ClearTimer(eventId)\n\tend\nend\neventId = _TimerService:SetTimerRepeat(apply, 0.1)", "Scope": 2, "ExecSpace": 6, "Attributes": [], diff --git a/tools/player/gen-lobby-npc.mjs b/tools/player/gen-lobby-npc.mjs index 59fdf3e..d968c21 100644 --- a/tools/player/gen-lobby-npc.mjs +++ b/tools/player/gen-lobby-npc.mjs @@ -6,9 +6,11 @@ import { writeFileSync } from 'node:fs'; // 공격 키(LeftControl) 바인딩은 SlayDeckController(/common, 1회 등록·로비 가드)에서 처리 — 여기 두지 않음. // 정찰: 이동에는 RigidbodyComponent.WalkAcceleration(가속)과 MovementComponent.InputSpeed(속도)가 // 둘 다 양수여야 함 — freeze-turn-player가 둘 다 0으로 만들었으므로 둘 다 복원해야 걷는다(실측 확인). +// 값은 freeze가 건드리지 않은 intact RigidbodyComponent.WalkSpeed(1.4)/WalkJump(1.23) = 기본값에 맞춤. +// (실측: InputSpeed 1.4→보행 ~2.5u/s, JumpForce 1.23→점프 상승 1.79u. 이전 5/5는 ~9u/s·상승 14u로 과함.) const WALK_ACCEL = 0.7; -const WALK_SPEED = 5; -const JUMP_FORCE = 5; +const WALK_SPEED = 1.4; +const JUMP_FORCE = 1.23; const PROX = 1.2; // 근접 임계(맵 NPC 간격 2.5와 분리) function prop(Type, Name, DefaultValue = 'nil') {