공중몹거리수정할려면
local hitByLeft = false
local knockbackType = 1
local kb = mob.MobKnockbackComponent
local ai = mob.MobAIComponent
local rb = mob.MobRigidbodyComponent
local map = mob.CurrentMap
local boundLt, boundRb = map.MapComponent:GetBound()
local minX = boundLt.x + 0.1
local maxX = boundRb.x - 0.1
local mobPos = mob.TransformComponent.WorldPosition:ToVector2()
local sqrt = math.sqrt
local elapse = 0
local knockbackMoveEnd
local interruptedEnd
if (knockbackType == 2) then
knockbackMoveEnd = 0.5
interruptedEnd = 0.7
else
knockbackMoveEnd = 0.1
interruptedEnd = 0.5
end
local timelines = {}
local timelineIndex = 0
local currentX = mobPos.x
local currentY = mobPos.y
local function makeDistance(x1, y1, x2, y2)
return sqrt((x2 - x1) * (x2 - x1) + (y2 - y1) * (y2 - y1))
end
kb:SetShoeAttr(knockbackType)
local knockbackSpeed = rb.WalkSpeed * _Physics.FlySpeed / 1
---@param destX number
---@param destY number
---@param floating boolean
---@return number
local function makeFlyCommand(cmd, destX, destY, floating)
local distance = makeDistance(currentX, currentY, destX, destY)
currentX = destX
currentY = destY
local duration = distance / knockbackSpeed
timelines[timelineIndex + 1] = {cmd, {destX, destY, duration, floating}, 0}
timelineIndex += 1
return duration
end
local function makeCommand(cmd, value, nextTime)
timelines[timelineIndex + 1] = {cmd, value, nextTime}
timelineIndex += 1
end
local inputX = 1
if (hitByLeft) then
inputX = -1
end
-- makeCommand(_MobActionPartType.HitMotion, 1, 0)
local knockbackDestX = mobPos.x
local delta = knockbackSpeed * knockbackMoveEnd
if (inputX < 0) then
knockbackDestX = math.max(minX, mobPos.x - delta)
else
knockbackDestX = math.min(maxX, _UserService.LocalPlayer.TransformComponent.WorldPosition.x + 0.8)
end
if (mobPos.x ~= knockbackDestX) then
mobPos.y += 0.02
-- makeCommand(_MobActionPartType.KnockbackPos, mobPos, 0)
makeFlyCommand(_MobActionPartType.KnockbackFly, knockbackDestX, _UserService.LocalPlayer.TransformComponent.WorldPosition.y , false)
end
-- makeCommand(_MobActionPartType.HitMotion, 0, interruptedEnd)
if (timelineIndex > 0) then
map.LifeControllerComponent:RequestControl(mob, timelines, timelineIndex, true)
여기서어디 늘려줘야하지? 점언은햇는데
| 제목 | 작성자 | 작성일 | 조회 | |
|---|---|---|---|---|
| 공지 | 게시판 이용 안내+156 | 10-20 | 22364 | |
| 61782 | 13:29 | 61 | ||
| 61781 | 08:48 | 106 | ||
| 61780 | 06:42 | 107 | ||
| 61779 | 12-19 | 350 | ||
| 61778 | 12-18 | 492 | ||
| 61777 | 12-18 | 823 | ||
| 61776 | 12-16 | 957 | ||
| 61775 | 12-14 | 1115 | ||
| 61774 | 12-14 | 1406 | ||
| 61773 | 12-14 | 1334 | ||
| 61772 | 12-13 | 1232 | ||
| 61771 | ㅁㄹH막힘?+1 | 12-13 | 1588 | |
| 61770 | 12-12 | 1549 | ||
| 61769 | 12-11 | 2166 | ||
| 61768 | 12-10 | 2183 | ||
| 61767 | 12-10 | 1983 | ||
| 61766 | 12-09 | 1890 | ||
| 61765 | 12-09 | 2032 | ||
| 61764 | 12-09 | 2207 |
댓글4
knockbackDestX = math.min(maxX, _UserService.LocalPlayer.TransformComponent.WorldPosition.x + 0.8) 이부분맞아?
ㅋㅋ이딴거나 처물어보면서 예전에는 인증영상이다~ 허세처부린거 기억나노ㅋㅋ
대답이나처해라
그만 아프겠다 그만떄려