네코랜드 기초(2021년)

[기초강좌] 19. 아이템 옵션 부여

ChaYong 2021. 2. 13. 00:57

안녕하세요. 차용입니다.

 

이번엔 아이템 옵션부여에 대해서 알려드리고자합니다.

 

바로 시작하면서 알려드리도록 할게요.

 

저는 특정 아이템을 사용시

 

확률적으로 아이템의 옵션이 붙는 것을 만들어보겠습니다.

 

이외에

 

옵션드랍템에 대해서는 스크립트 코드가 필수여서

 

이는 추후 스크립트 관련 강좌를 편성하면서

 

차근차근 알려드리도록 하겠습니다.

 

우선 저희가 기존에 만들어왔던

 

HelloWorld프로젝트를 열어줄게요.

 

우선 알려드릴 것이 있어요.

 

이 게시글 이전에 아이템강화에 대해서 다뤘었죠?

 

전반적으로 옵션을 추가하는 이 부분도

 

해당 로직과 아주 유사하게 진행이 될거에요.

 

한번 밟아봤던 길이니 금방 아실 수 있으실 거에요 ㅎㅎ

 

먼저 옵션추가가 가능한 아이템을 만들도록 할게요

 

우선 데이터베이스의 아이템탭으로 들어가주세요.

 

그리고 위와 같이 아이템을 만들어줍니다.

 

다시 얘기드리지만

 

소모되지 않는 아이템이 비활성화되어 있으면

 

왼쪽 목록에서 다른 아이템을 한번 선택했다가

 

다시 돌아와 보시면 활성화 되있을 거에요. ㅎㅎ

 

이젠 이렇게 아이템 정보 설정하는 건

 

크게 어렵지는 않으실 거에요. ㅎㅎ

 

이제 이를 사용할 때

 

연동될 공용이벤트를 하나 만들어주겠습니다.

 

자, 이제부터 하나씩 추가해볼 건데요.

 

가장 먼저 해야할게

 

바로 아이템 선택 이벤트를 추가하는 작업입니다.

 

아이템 선택 이벤트를 추가하시고

 

이 또한 아이템 강화 게시글에서처럼

 

대상아이템 ID를 저장할 변수도 새로 만들어줘야 합니다.

 

(+버튼을 눌러만들어주시구요)

 

그리고 대상 아이템 타입을 지정해주세요.

 

(전체로하시면 물약에도 옵션이 붙습니다 ㅎ)

 

위와 같이 설정하시고

 

ok를 눌러주세요.

 

이런 순서로 만드시면 됩니다.

 

선택되었을 때 내에서 이벤트 추가,

 

페이지 4에 아이템 옵션 설정이라는 이벤트를 눌러 추가해줍니다.

 

대상 아이템 ID변수는 아까 만들었던 변수로 설정해주시구요.

 

하단에 옵션 목록을 더블클릭 해주시면 

 

옵션을 추가할 수 있는 창이 뜹니다.

 

보시면 위에 기준 스텟 타입이 두가지 있죠?

 

직업하시면 캐릭터의 스텟을 올려줍니다.

 

그럼 아이템은 뭔지 궁금하시죠?

 

아이템은 아이템 자체에 붙은 방어수치 등에

 

연산을 해주는 것입니다.

 

예컨대 직업을 체크해서 공격력 100%로 하게되면 

 

케릭터의 공격력에서 100%가 가산되구요,

 

아이템을 체크해서 공격력을 100%로 하게되면

 

아이템 자체에 들어있는 공격력 수치에 100%를 올려줍니다.

 

그리고 이 수치를 캐릭터의 공격력에 더해줍니다.

 

디아블로2 같은 거 해보신 분들은 금방 아실 수도 있겠네요.

 

디아블로 아이템이 이런 방식이거든요.

 

그리고 스텟 부분은 많이 보아왔던 부분이니 쉽게 설정가능하시죠?

 

특이한 건 이 옵션자체도 확률로 붙일 수 있다는 거네요 ㅎㅎ

 

다만 주의하실게

 

여기서의 확률수치는 상대적인 수치를 의미합니다.

 

즉, 옵션은 무조건 붙는다는 가정하에서

 

즉, 옵션 목록 내에서 높은 퍼센트 수치위주로

 

수치가 붙습니다. ㅎㅎ

 

여러개 수치를 집어 넣고

 

몇번 테스트 해보시면 느낌이 오실거에요 ㅎㅎ

 

전 이런식으로 설정해 보았습니다 ㅎㅎ

 

이러면 거의 공격력 10%가 붙겠네요.ㅎㅎ

 

위에 보시면 옵션 제거라던가 교체 같은 것도 가능하네요

 

(이건 NPC를 통해 가능하도록 하는 것도 좋겠네요. 우선 여기선 패스~)

 

이런 형태가 되죠?

 

여기에 아이템강화에서 발생한 것과 같은 버그상황을

 

막기위해서 하나를 더 추가해 줄게요.

 

이렇게 해주지 않으시면

 

신비의돌 사용 후 아이템을 선택 중에

 

신비의돌을 바닥에 드랍하게 되면

 

신비의돌 없이 아이템 옵션이 붙게되는

 

치명적인 버그가 발생합니다.

 

때문에 이걸 넣어주는 거에요 ㅎㅎ

 

참고로 변수 이벤트는,

 

요렇게 만들었구요.

 

조건분기 이벤트는

 

이렇게 설정해주었습니다.

 

위 조건이 참이면 이벤트를 바로 중단하게끔

 

[이벤트 중단] 이벤트를 넣었습니다.

 

여기서 아이템옵션 자체를 붙여질지에 대한 확률을

 

조절하고 싶으시면 넣으셔도 됩니다.

 

이는 자신이 게임 기획의도와 맞게 설계하시면 됩니다.

 

다만 저는 사용 메뉴얼이 목적이니

 

더 넣지는 않을게요. ㅎㅎ

 

이제 한가지 더 잡아주어야 겠네요

 

바로 최대 옵션수 제한입니다.

 

안그러면....

 

이런 괴물템이 나올 수도 있어요 ㅎㅎ

 

자 설정을 해보도록 하겠습니다.

 

신비의돌 갯수를 체크하는 방식과 유사합니다.

 

저는 최대 옵션 수치를 4개로 한정했어요

 

위와 같이 설정을 했구요.

 

변수 이벤트 내용을 보자면,

 

이렇게 넣었습니다.

 

쉽게 표현하자면

 

[옵션갯수변수]에 [선택아이템의 옵션갯수]를 넣는 작업입니다.

 

그리고 조건분기 이벤트를 보시자면

 

이렇게 설정했습니다.

 

자, 더이상 버그는 없겠죠?

 

(혹시 제가 발견 못한 버그가 있다면

 

직접 이런 방식을 통해 해당 버그 발생상황을

 

조기에 차단해주세요^^)

 

저는 주석 이벤트를 이용해 좀 더 정리해보았습니다.

 

이러면 나중에 봐도 무슨 로직인지

 

잊어버리진 않을거에요 ㅎㅎ

 

이제 다됬네요.

 

글만 넣으면 되겠어요.

 

알림표시 이벤트를 이용해서 넣어보겠습니다.

 

각 상황에 맞는 알림이벤트를 넣었습니다.

 

이것만 넣어도 왠지 복잡해보이네요. ㅎㅎ

 

아, 참!! 보다보니 하나 빼먹은게 있네요 ㅎㅎ

 

아이템을 사용했으니 회수를 해야겠죠?

 

저는 비소모성 아이템으로 만들어서

 

강제회수를 해줘야하거든요 ㅎㅎ

 

이제 아이템 사용이랑 연동작업을 해주겠습니다.

 

자, 다됬습니다.

 

이제 최종 테스트만 하면 되겠네요 ㅎㅎ

 

아주 잘~~ 됩니다.ㅎㅎ

 

알람도 잘 작동하고

 

옵션 최대 갯수도 조정이 됬습니다.

 

옵션은...거의 10%만 붙었지만요ㅎㅎ

 

(참고로 /item 아이템번호 수량

 

을 채팅창에 치시면 이 또한 운영자 명령어로 작동합니다.)


오늘 게시글은 여기까지입니다.

 

하나씩 하나씩 툴을 만지시면서

 

사람마다 차이는 있지만

 

슬슬 눈에 익는게 하나씩 들어오실 거에요

 

그게 바로 성장하고 계시다는 거니까요

 

조금만 더 참고 더 열심히 해보시길 바랄게요^^

 

화이팅!!

 

새해 복 많이 받으시구요~

 

모두가 부~~~~~자가 되셨으면 좋겠습니다.

 

이상. 차용이었습니다.

 

감사합니다^^

 


3. 4.) 수정사항입니다.

 

꽃제비 님이 댓글로

 

아이템 장착 상태에서 옵션추가시 즉시 적용이 안되는 문제에 대해

 

알려주셨습니다. 감사합니다 ㅠㅠ

 

저도 처음 알게된 증상이었네요 ㅠㅠ

 

미처 제대로 확인치 못한 점 죄송합니다.

 

앞으로도 문제점 발견하신 분 있으시면 언제든 말씀해주세요^^

 

위 사진처럼

 

스크립트 이벤트를 하나 추가해주시구요

 

내용에

 

unit.RefreshStats()
unit.SendUpdated()

 

라고 적어주세요

 

첫번째 코드는 유닛의 스탯정보를 재계산 해주는 코드이구요.

 

두번째 코드는 프로필 정보를 업데이트 해주는 코드입니다.