close_btn
로그인, 회원가입후 더 많은 혜택을 누리세요 로그인 회원가입 닫기

지난 글에서 NPC추가하기와 전직NPC 추가하기를 해봤는데

이제는 다른 스크립트를 이용해서 프리섭하면 빼놓을 수 없는 레벨달성 보상 NPC를 만들어 봅시다

 

역시나 이벤트 번호는 본인에게 맞게 부여한거고, 적용할라면 각자 이벤트 번호를 확인하고 중복되지 않게 수정하면됨

 

<여기서 사용되는 이벤트 스크립트는

event 4700
    if(level < 100) then  ;레벨이 100이하일때는 dialog 43으로 보낸다
        dialog 43
        return
    endif

    if(eventcheck 409 END) then
        dialog 44
        return
    endif
    dialog 42
    return
endevent

 

여기서 새로운 스크립트 명령어가 나오는데

eventcheck 409 END 이건 DB내에서 event DB 쪽을 보면 확인할 수 있는 항목

해당 이벤트에 END라는 마침표를 찍었는지 아닌지 확인을 하고

END를 찍었다면  dialog 44번을 출력하라는거임

(레벨별 보상을 두번이나 받으면 안되니까, 받았다는 증거를 남겨야됨)

 

event 4800

    if(level > 999) then
        if(eventcheck 409 END) then
            dialog 44
            return
        endif
        if(eventcheck 408 END) then
            dialog 54
            return
        endif
    endif

    if(level > 899) then
        if(eventcheck 408 END) then
            dialog 44
            return
        endif
        if(eventcheck 407 END) then
            dialog 53
            return
        endif
    endif

    if(level > 799) then
        if(eventcheck 407 END) then
            dialog 44
            return
        endif
        if(eventcheck 406 END) then
            dialog 52
            return
        endif
    endif

    if(level > 699) then
        if(eventcheck 406 END) then
            dialog 44
            return
        endif
        if(eventcheck 405 END) then
            dialog 51
            return
        endif
    endif

    if(level > 599) then
        if(eventcheck 405 END) then
            dialog 44
            return
        endif
        if(eventcheck 404 END) then
            dialog 50
            return
        endif
    endif

    if(level > 499) then
        if(eventcheck 404 END) then
            dialog 44
            return
        endif
        if(eventcheck 403 END) then
            dialog 49
            return
        endif
    endif

    if(level > 399) then
        if(eventcheck 403 END) then
            dialog 44
            return
        endif
        if(eventcheck 402 END) then
            dialog 48
            return
        endif
    endif

    if(level > 299) then
        if(eventcheck 402 END) then
            dialog 44
            return
        endif
        if(eventcheck 401 END) then
            dialog 47
            return
        endif
    endif

    if(level > 199) then
        if(eventcheck 401 END) then
            dialog 44
            return
        endif
        if(eventcheck 400 END) then
            dialog 46
            return
        endif
    endif

    if(level > 99) then
        if(eventcheck 400 END) then
            dialog 44
            return
        endif
        if(eventcheck 399 END) then
            dialog 45
            return
        else
            dialog 56
            return
        endif
    endif

endevent

 

이런식으로 레벨별 보상을 줄 수있는데

 

각각 레벨별 보상을 줬다는 증거를 위해서 saveevent 라는 스크립트 명령어를 사용

 

각각의 레벨달성 후 아이템 지급, svaeevent로 받았다는 증거를 표시

 

event 5000

    recieveitem 270537250 ;프로즌실드 3개
    recieveitem 270537250
    recieveitem 270537250
    saveevent 401 END
    dialog 57
    return

endevent

event 5100

    recieveitem 270537247 ;데르낭의 호신부 3개
    recieveitem 270537247
    recieveitem 270537247
    saveevent 402 END
    dialog 57
    return

endevent

event 5200

    recieveitem 270537263 ;오색방패 3개
    recieveitem 270537263
    recieveitem 270537263
    saveevent 403 END
    dialog 57
    return

endevent

event 5300

    if(skill & 128) then ;검사
        recieveitem 271610378
        saveevent 404 END
        dialog 57
        return
    endif

    if(skill & 512) then ;랜서
        recieveitem 271610890
        saveevent 404 END
        dialog 57
        return
    endif

    if(skill & 1024) then ;닌자
        recieveitem 271610122
        saveevent 404 END
        dialog 57
        return
    endif

    if(skill & 32768) then ;군인
        recieveitem 270566154
        saveevent 404 END
        dialog 57
        return
    endif
               
    if(skill & 16384) then ;싸울
        recieveitem 271610634
        saveevent 404 END
        dialog 57
        return
    endif

    if(skill & 8192) then ;풍수
        recieveitem 271611146
        saveevent 404 END
        dialog 57
        return
    endif

    if(skill & 2048) then ;흑마
        recieveitem 271611146
        saveevent 404 END
        dialog 57
        return
    endif

endevent

event 5900

    if( skill & 16777216 ) then
        saveevent 399 END
        dialog 57
        return
    endif
    if( skill & 33554432 ) then
        saveevent 399 END
        dialog 57
        return
    endif
    if( skill & 8388608 ) then
        saveevent 399 END
        dialog 57
        return
    endif
    if( skill & 1048576 ) then
        saveevent 399 END
        dialog 57
        return
    endif
    if( skill & 2097152 ) then
        saveevent 399 END
        dialog 57
        return
    endif
    if( skill & 4194304 ) then
        saveevent 399 END
        dialog 57
        return
    endif
    if( skill & 536870912 ) then
        saveevent 399 END
        dialog 57
        return
    endif
    if( skill & 1073741824 ) then
        saveevent 399 END
        dialog 57
        return
    endif
    if( skill & 65536 ) then
        saveevent 399 END
        dialog 57
        return
    endif
    if( skill & 134217728 ) then
        saveevent 399 END
        dialog 57
        return
    endif
    if( skill & 268435456 ) then
        saveevent 399 END
        dialog 57
        return
    endif

    dialog 55
    return

endevent

event 6000
    dialog 58
endevent

 

이런식으로 작성을 하면됨

 

Dialog도 스크립트에 맞춰서 선택지만 주어준다면 해결됨