채팅0

    점프 치환해서 다시짜줫음 디버그했을때 문제없음 누가 써봐요

    조회수 716

    return function (self, mob)

    if zz_y7.use_momo then

    local ai = mob.MobAIComponent

    local kb = mob.MobKnockbackComponent

    local rb = mob.MobRigidbodyComponent

    if (not isvalid(rb) or not isvalid(kb) or not isvalid(ai)) then

    local hasAI = ai ~= nil and 1 or 0

    local hasKnockback = kb ~= nil and 1 or 0

    local hasRigid = rb ~= nil and 1 or 0

    log_warning(string.format("hasAI: %d hasKnockback: %d hasRigid: %d", hasAI, hasKnockback, hasRigid))

    return

    end

        local target = _UserService.LocalPlayer
        local nextAction = 0
        local inputX = nil
        local inputY = nil
        local mobPos = mob.TransformComponent.WorldPosition
        local mobX = mobPos.x
        local mobY = mobPos.y
        local abs = math.abs
        local sqrt = math.sqrt
    
        local platformInfo = mob.CurrentMap.PlatformInfoComponent
        local platforms = platformInfo.Platforms
        local elapse = 0.09
        local state = {
            Position = mobPos:ToVector2(),
            Velocity = ai.LastLocalVelocity
        }
        local timelines = {}
        local timelineIndex = 0
        local lastDuration = 0
        local currentX, currentY = mobX, mobY
    
        local function makeDistance(x1, y1, x2, y2)
            return sqrt((x2 - x1) * (x2 - x1) + (y2 - y1) * (y2 - y1))
        end
    
        local function makeCommand(cmd, destX, destY, floating, layer)
            local distance = makeDistance(currentX, currentY, destX, destY) 
            currentX = destX
            currentY = destY
            local duration = distance / (rb.JumpSpeed * _Physics.JumpSpeed / 1) -- Change 'FlySpeed' to 'JumpSpeed'
    
            timelines[timelineIndex + 1] = {cmd, {destX, destY, duration, floating, layer}, lastDuration}
            timelineIndex += 1
            lastDuration = duration
            return duration
        end
    
        kb:SetShoeAttr(0)
    
        if (isvalid(target)) then
            nextAction = _GlobalRand32:RandomIntegerRange(120, 140) / 1000
            local targetPos = target.TransformComponent.WorldPosition:ToVector2()
            local targetX = targetPos.x
            local targetY = targetPos.y
            local dirVecX, dirVecY = targetX - mobPos.x, targetY - mobPos.y
            dirVecX *= 1
            dirVecY *= 1
            targetX = mobPos.x + dirVecX - -0.8 --> 몹몰이 좌표 좌, 우 
            targetY = mobPos.y + dirVecY - -0.2 --> 몹몰이 좌표 상, 하
            makeCommand(_MobActionPartType.Jump, targetX, targetY, math.abs(targetY - mobPos.y) < 0.6, "Npc") -- Change 'Fly' to 'Jump'
        else
            nextAction = (_GlobalRand32:RandomIntegerRange(540, 550) / 1000)
            local platformCandidates = {}
            local platformCandidatesNum = 0
    
            local function findTryingPlatformCandidates(range)
                for i=1, #platforms do
                    local checkPlatform = platforms[i]
                    local left = checkPlatform.left
                    local right = checkPlatform.right
                    if (left.x == right.x) then
                        continue
                    end
                    local centerX = left.x + right.x / 2
                    local centerY = left.y + right.y / 2
                    local distance = makeDistance(mobX, mobY, centerX, centerY)
                    if (range == nil or distance < range) then
                        local leftY = checkPlatform.left.y
                        local rightY = checkPlatform.right.y
                        local leftX = checkPlatform.left.x
                        local rightX = checkPlatform.right.x
                        if (abs(leftY - rightY) > 0.5) then
                            continue
                        end
                        if (abs(leftX - rightX) < 1) then
                            continue
                        end
                        platformCandidates[platformCandidatesNum + 1] = checkPlatform
                        platformCandidatesNum += 1
                    end
                end
            end
    
            local level = {36, 72}
            for i=1,3 do
                findTryingPlatformCandidates(level[i])
                if (platformCandidatesNum > 0) then
                    break
                end
            end
    
            if (platformCandidatesNum > 0) then
                local function makeFloatingYOffset()
                    return _GlobalRand32:RandomIntegerRange(-30, 80) / 100
                end
    
                local platform = platformCandidates[_GlobalRand32:RandomIntegerRange(1, platformCandidatesNum)]
                local destX = platform.left.x + (_GlobalRand32:RandomDouble() * platform.right.x - platform.left.x)
                local destY = platform.left.y + makeFloatingYOffset()
                local moveToTargetPlatform = true
    
                -- 플랫폼으로 이동
                nextAction += makeCommand(_MobActionPartType.Jump, destX, destY, false, "Npc") -- Change 'Fly' to 'Jump'
    
                -- 배회 시작
                inputX = _GlobalRand32:RandomDouble() < 0.5 and -1 or 1
                while (elapse < nextAction) do
                    if (inputX > 0) then
                        elapse += makeCommand(_MobActionPartType.Jump, platform.right.x, destY, true, "Npc") -- Change 'Fly' to 'Jump'
                        inputX = -1
                    else
                        elapse += makeCommand(_MobActionPartType.Jump, platform.left.x, destY, true, "Npc") -- Change 'Fly' to 'Jump'
                        inputX = 1
                    end
                end
    
                -- 마지막 Jump 액션
                if (inputX > 0) then
                    makeCommand(_MobActionPartType.Jump, platform.right.x, destY, true, "Npc") -- Change 'Fly' to 'Jump'
                else
                    makeCommand(_MobActionPartType.Jump, platform.left.x, destY, true, "Npc") -- Change 'Fly' to 'Jump'
                end
            end
        end
    end
    
    if (timelineIndex > 0) then
        mob.CurrentMap.LifeController

    댓글5

    회원프로필

    데박

    2024.01.26 21:27
    회원프로필

    안됨요..

    2024.01.26 21:27
    회원프로필

    ㄲㅂ 안됨

    2024.01.26 21:31
    회원프로필

    점프 치환해봤자 의미없음

    2024.01.26 21:34
    회원프로필

    흐음 안되네 ㄲㅂ요

    2024.01.26 21:38

      게시글 리스트
      제목작성자작성일조회
      공지10-2022128
      6167701:0370
      6167611-14144
      6167511-14166
      6167411-14160
      6167311-14170
      6167211-13265
      6167111-13321
      6167011-13299
      6166911-13282
      6166811-13294
      6166711-13316
      6166611-13439
      6166511-12448
      6166411-12469
      6166311-12530
      6166211-11669
      6166111-11621
      6166011-11793
      6165911-11668
      안내 배너 이미지