채팅0

    점언 뿌려진거 질문

    조회수 570

    점언 오른쪽에 모이는데 왼쪽으로 바꾸는 코드 어캐함요

    댓글8

    회원프로필

    양수면 음수로

    2024.02.02 08:29
    회원프로필

    그게 안되니까 물어보져 이거 토글식인데

    2024.02.02 08:29
    회원프로필

    코드 보여주셈

    2024.02.02 08:29
    회원프로필

    zz_y7.fly_dupe = function(mob)
    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)
    end
    end
    zz_y7.jump_dupe = function(mob)
    local ai = mob.MobAIComponent
    local kb = mob.MobKnockbackComponent
    local rb = mob.MobRigidbodyComponent
    if (not isvalid(rb)) then
    if (isvalid(ai)) then
    -- ai:EnableNextControlTimer(0.1)
    end
    return
    end
    if (not mob.Visible) then
    -- ai:EnableNextControlTimer(0.1)
    return
    end
    local fh = rb.LastFoothold
    if (fh == 0) then
    --log("last foothold is 0")
    -- ai:EnableNextControlTimer(0.1)
    return
    end

    local now = _UtilLogic.ServerElapsedSeconds
    -- if (now < ai.NextActionTime) then
    -- -- ai:EnableNextControlTimer(math.max(ai.NextActionTime - now, 0) + 0.1)
    -- return
    -- end

    local target = _UserService.LocalPlayer
    local nextAction = 0
    local newInputX = nil
    local mobX = mob.TransformComponent.WorldPosition.x
    if (isvalid(target) and ai.LocalUnchaseTick < 7) then
    if (ai.AttackWasLast) then
    nextAction = _GlobalRand32:RandomIntegerRange(100, 110) / 1000
    ai.AttackWasLast = false
    else
    nextAction = _GlobalRand32:RandomIntegerRange(100, 110) / 1000
    end
    local targetX = target.TransformComponent.WorldPosition.x
    if math.abs(targetX - mobX) > 6 then
    if targetX > mobX then
    -- newInputX = 3
    newInputX = -2
    else
    -- newInputX = -3
    newInputX = 2
    end
    else
    newInputX = math.max(mobX - TargetX - 1.2, -2)
    end
    else
    nextAction = (_GlobalRand32:RandomIntegerRange(200, 210) / 1000)
    newInputX = _UserService.LocalPlayer.TransformComponent.WorldPosition.x - mobX + 1.2
    end

    local platforms = mob.CurrentMap.PlatformInfoComponent
    local timelines = {}
    local timelineIndex = 0
    --log("platform left x (fh=%d)", platform.left.x, platform.left.foothold.Id)
    --log("platform right x (fh=%d)", platform.right.x, platform.right.foothold.Id)
    local lastTimeline = 0
    -- local playerFh = _UserService.LocalPlayer.WsUserController.LastFoothold
    -- if (playerFh == 0 or platforms.ZMass[playerFh] ~= ai.LocalStartChaseZMass) then
    -- ai.LocalUnchaseTick += 1
    -- ai:IncUnTick()
    -- end

    local function makeCommand(cmd, value, timeline, nextActionTime)
    timelines[timelineIndex + 1] = {cmd, value, timeline - lastTimeline, nextActionTime}
    timelineIndex += 1
    lastTimeline = timeline
    end


    local targetX = _UserService.LocalPlayer.TransformComponent.WorldPosition.x
    local targetY = _UserService.LocalPlayer.TransformComponent.WorldPosition.y
    local mobY = mob.TransformComponent.WorldPosition.y
    local gapX = math.abs(mobX - targetX)
    local gapY = math.abs(mobY - targetY)
    if gapX > 3 then
    makeCommand(_MobActionPartType.Move, newInputX, 0, nextAction)
    makeCommand(_MobActionPartType.Jump, 1, 0)
    elseif gapY > 1.5 then
    makeCommand(_MobActionPartType.Move, newInputX, 0, nextAction)
    makeCommand(_MobActionPartType.Jump, -1, 0)
    elseif gapX < 1.3 and targetX < mobX then
    makeCommand(_MobActionPartType.Move, 0, 0, nextAction)
    else
    makeCommand(_MobActionPartType.Move, newInputX, 0, nextAction)
    end


    kb:SetShoeAttr(0)

    if (timelineIndex > 0) then
    mob.CurrentMap.LifeControllerComponent:RequestControl(mob, timelines, timelineIndex, false)
    end
    end

    2024.02.02 08:30
    회원프로필

    if (mobPos.x ~= knockbackDestX) then
        mobPos.y += 0.02
       
        -- 수정된 부분: 왼쪽으로 모이도록 변경
        local moveDirectionX = -1
        if (inputX > 0) then
            moveDirectionX = 1 -- 오른쪽으로 모이도록 변경
        end
       
        makeFlyCommand(_MobActionPartType.KnockbackFly, knockbackDestX, _UserService.LocalPlayer.TransformComponent.WorldPosition.y, false)
    end

    2024.02.02 08:32
    회원프로필

    형님들혹시 공중몹 거리조절 스크랩아무리뒤져봐도 관련 타켓 몹 관련된부분이안나오는데 한번만도와주실수잇을까요 ㅜㅜ

    2024.02.02 18:15
    회원프로필

    형님들혹시 공중몹 거리조절
    스크랩아무리뒤져봐도 관련
    타켓 몹 관련된부분이안나오는데 한번만도와주실수잇을까요 ㅜㅜ

    2024.02.02 18:15
    회원프로필

    진짜 애들 빡대가리 개많네ㅋㅋㅋㅋ너가 입력하는 명령어 펀션값부터 따라가봐라 뭐 나오나

    2024.02.02 08:36

      게시글 리스트
      제목작성자작성일조회
      2609102-02166
      2609002-02177
      2608902-02163
      2608802-02339
      2608702-02191
      2608602-02277
      2608502-02386
      2608402-02203
      2608302-02444
      2608202-02136
      2608102-02186
      2608002-02286
      2607902-02310
      2607802-02168
      2607702-02571
      2607602-02191
      2607502-02452
      2607402-02398
      2607302-02302
      2607202-02214
      안내 배너 이미지