요즘 일지를 안쓴지 꽤 됐다... 부지런히 써야되는데...
매일 10분 늦게자더라도 게임 개발 한 후에 짧게라도 쓰는 습관을 들여야 겠다.
1. 악세서리 착용 제한
현재 게임에서 악세서리 장비 칸은 두칸이다.
장비 칸 index는 두 가지 구분이 가능하지만, 아이템의 type은 악세서리 하나로 동일하다.
우리 게임에서 악세서리에 할당한 장비는 채집도구, 목걸이 이다.
같은 종류의 악세서리 (채집도구 + 채집도구 , 목걸이 + 목걸이) 의 착용을 제한해야 된다.
어떻게 구분할지 좀 고민을 했던 것 같다.
db번호 범위로 구분하고 싶진 않았지만... 결국 이것이 가장 편하고 변수를 적게 쓰는 방법인 듯 하여 이 방법으로 진행하였다.
조금 복잡하지만 더 좋은 방법이 생각이 나지 않아 장비 착용 시 실행되는 함수와 장비 해제시 실행되는 함수에 아래의 로직들 추가하였다.
<장비 착용 시 실행되는 로직>
- db의 번호로 해당 아이템이 목걸이인지 채집도구인지 구분하는 로컬 함수를 선언한다.
- 악세서리 종류를 착용시, 목걸이와 채집도구에 할당한 유저변수에 해당 아이템의 고유 id를 저장한다. (가장 마지막에 착용한 각각의 장비의 id가 변수에 저장되는 것)
- 장비 칸 악세서리 두 index에 착용된 장비의 악세서리 종류를 1번에서 선언한 함수를 통해 구분 할 때, 만약 두 악세서리의 종류가 같다면, id를 2번에 저장한 변수와 비교하여, 같다면, 같지 않은 칸의 장비를 착용 해제시킨다.
- 해제 시킨 칸에 새로운 악세서리를 끼기 전에 끼고 있던 다른 종류의 악세서리 (새롭게 착용한 악세서리에 의해 해제되었을 것이다.) 의 id를 2번 변수를 활용해 불러와 다시 착용시킨다.
장비를 해제했을 때 2번과정에서 유저변수에 저장한 악세서리 id를 초기화 할 필요가 있다. 초기화 하지 않으면 악세서리 착용으로 인한 악세서리 교체 경우 외에도 그냥 유저가 악세서리를 벗고 빈칸에 새 악세서리를 꼈을 때도 자동으로 다른 종류의 악세서리가 착용 될 수 있다. (4번 과정에서 구분이 필요하다.)
<장비 해제 시 실행되는 로직>
- db의 번호로 해당 아이템이 목걸이인지 채집도구인지 구분하는 로컬 함수를 선언한다.
- 악세서리 종류를 해제 시, 목걸이와 채집도구에 할당한 유저변수를 -1 로 초기화 한다. (장비 착용 시 실행되는 로직 때 그 변수가 -1인지 아닌지 조건문을 걸어 4번 로직이 실행 될 것이다.)
흠... 아이템 구분에도 장비처럼 acc1, acc2 index구분이 있었으면 참 편했을텐데...
조금 아쉽다...
장비칸에 acc1장비칸에는 채집도구만, acc2장비칸에는 목걸이만 착용하도록 하고 싶었는데, 네코랜드 시스템 상 acc1에 먼저 악세서리가 자동으로 착용되어, 인벤토리에 악세서리가 하나만 있는 경우 처리가 불가능 해 이것은 구현하지 못했다.
2. 벌목 스킬 구현
채집 스킬 (채광, 벌목, 낚시) 중 가장 쉬운 벌목 스킬부터 건들여 보았다.
채광과 벌목의 대상인 광물과 나무는 몬스터로 구분 할 것이고,
낚시는 따로 ui창을 띄워서 진행 할 예정이다.
전투 스킬로는 채집 몬스터한테 데미지를 입힐 수 없고, 채집 스킬로는 일반 몬스터에게 데미지를 입힐 수 없도록 해야 하기 때문에,
일반 사냥몬스터와 채광, 벌목 몬스터는 팀태그를 이용해 구분하였다.
팀태그로 구분하는 과정에서 한가지 이슈가 있었는데,
네코랜드 프로그램 내에서는 10진수로 구분이 되어 있었는데... 스크립트 상 팀태그는 2의 제곱형태로 구분되어 있었다....
네코독스에서 아래의 설명을 보고... 눈치를 챘어야 됬는데... 데미지 함수가 먹히지 않아 이것저것 디버깅 해보다가 설마 하고 팀태그를 찍어보니... 이상함을 눈치챘다....
-- 팀 태그를 AND 연산하여 동맹 여부를 파악할 수 있습니다.
-- (하나라도 AND 되는 비트가 있을 시 동맹)
짜다 보니 데미지 함수가 좀 무거워 진 것 같다...
테스트 해보고 너무 무겁다 싶으면 스킬 경험치 획득이나 스킬 레벨에 따른 보너스스탯 부여는 유닛이 죽었을 때 실행되는 함수로 옮겨야 될 듯 싶다.
다만 여기서는 사용한 스킬dataID를 불러올 수 없어 다소 복잡할 수 있을 듯 하다.
'프로젝트 > 게임 개발' 카테고리의 다른 글
[09] 230130 게임 개발 일지 - 탐지/채광 스킬 구현 (2) (4) | 2023.01.31 |
---|---|
[08] 230127 게임 개발 일지 - 탐지/채광 스킬 구현 (0) | 2023.01.28 |
[06] 230108 게임 개발 일지 - 활 스킬 구현 (2) | 2023.01.10 |
[05] 230108 게임 개발 일지 - 직업 특수 스킬 구현 (1) | 2023.01.09 |
[04] 230104 게임 개발 일지 - 직업 스탯 보너스 수정 (0) | 2023.01.05 |