이윤상
대표칭호 없음
이해도 | 1.12 |
---|---|
게임버전 (JE) | 페이퍼 |
스크립트 애드온 | 2.5.3 |
on enchant: If item is book: wait 1 tick close the player's inventory remove 1 of enchanted book from player's inventory give 1 diamond to player
현재 스크립트를 이렇게 쓰고 있는데
이게 아닌 인챈트창에서 아이템을 인챈트하게 된다면
창이 꺼지지 않고 인챈트한 아이템이 사라지고 다른 아이템이 들어오는 스크립트는 할 수 없는건가요?
스크립터브혼
2021.03.09해당 코드를 직접 작성하신건가요?
창이 꺼지는 이유는 닫아서 그렇습니다.
> close the player's inventory
책이 아닌 다른 아이템을 인텐트 할수 없 는 이유는 조건이 책이기 때문입니다.
> If item is book:
다른 아이템을 들어오게하려면 다이아 몬드 말고 다른 아이템을 세팅하면 됩니다.
> give 1 diamond to player
이윤상
2021.03.10윗 코드는 인챈트 창을 닫으면 인챈트 창에 있던
인챈트된 아이템이 인벤토리로 오는 현상을 이용해서
인벤토리로 오자마자 인챈트된 아이템을 삭제시킨 뒤
다른 아이템을 들어오게 한 것 입니다
제가 바라는 것은 인챈트 창이 닫히지 않고 인챈트된 아이템이 바로 사라진 뒤
인챈트 아이템 칸에 다른 아이템이 올라가게 하는 현상을 바라고있습니다
이윤상
2021.03.10현재 지금
on enchant:
wait 1 tick
set the enchanted item to diamond
이러한 코드를 사용하고 있는데
이 코드를 사용하면 검, 갑옷 등 인챈트를 하여도
아이템 코드가 변하지 않는 아이템은 다이아몬드로 바뀌는데
책을 인챈트하면 Book ㅡ> Enchanted Book 으로 아이템 코드가 바뀌기에
책만 다이아몬드로 바뀌지 않습니다
거너아나
2021.03.10그러면 cancel event하고 바꿔요
스크립터브혼
2021.03.10'인벤토리로 오자마자 인챈트된 아이템을 삭제'라고 하셨지만, wait 이펙트 사용함과 동시에 이벤트와의 '동시성'은 파괴됩니다.
다시말해, 인벤토리에 아이템이 들어오는 시점은 이벤트와 동시간입니다.
아이템을 삭제하는 시점은 이벤트가 종료되고 1틱 후 이고요.
만약 그 1틱 사이에 인벤토리를 다시 열어 인첸트 북을 인벤토리에서 꺼낼 수 있다면(매크로 사용) 아이템 복사가 이루어 지게 되는겁니다.
이 부분은 개발하면서 상당히 민감한 부분이기 때문에 한번 짚고 가야할것 같아 말씀드립니다.
단순히 인첸트된 아이템을 바꾸고싶다면 enchanted item을 바로 세팅하시면 됩니다.
> set enchanted item to diamond
인첸트가 되는것을 막으려면 cancel 이펙트를 사용하면 되구요.
> cancen event