개인 자료란 (JE)

  서버 커뮤니티

Profile akdakd 대표칭호 없음
Profile

질문하기 스크립트

아이템액자에 들어있는 아이템 판매

2021.11.10 조회 수 283 추천 수 0
이해도 초보자(스크립트 구성요소나 기본문법은 알아요) 
게임버전 (JE) 1.17.1 
게임버전 (BE) 관련없음 
스크립트 버전 version: 2.6-beta3 
스크립트 애드온 잘 몰라서 가지고 있는 애드온 적어요. / Skellett-Legacy-2.0.0.jar,SkQuery-4.1.5.jar,skRayFall+v1.9.26.jar /총 3개 

샵키퍼가 있긴 한데 리소스팩 아이템이 너무 많아서 아이템액자에 전시하면서  앉기+우클릭시 구매하도록 하고싶어요.

되팔기는 안해도 괜찮아요.


on right click:

    clicked block is item of entity

    player is not op

    if player's world is "lob2":

        cancel event

    if player's world is "lobby":

        cancel event

        set the item of entity to {카탈로그.%item%}

        give 1 of {카탈로그.%item%} to player

        send "아이템 구매완료."

on left click:

    player is not op

    if player's world is "lobby":

        cancel event


이게 제가 써본건데, 

1.우클릭 시 아이템이 회전되어서 그런건지,  그냥 명령어가 잘못된건지 give가 실행되지 않음

2. 카탈로그 맵 자체에서 왼클릭을 취소시켰는데,  아이템액자에서 아이템이 빠지고 들어있던 아이템은 드롭되지 않음

->아예 액자에서 떨어지지 않게 하고싶어요


어떻게 고쳐야 할까요 ???




3개의 댓글

스크립터브혼
2021.11.15

이벤트를 'on right click on item frame'로 해보세요

여기서 event-entity또는 clicked entity는 item frame이 됩니다.

item of event-entity는 액자에 들어있는 아이템입니다.

akdakd
2021.11.16
@스크립터브혼

우선 댓글 남겨주셔서 감사합니다!

 

on right click on item frame:

player is not op

if player's world is "lob2":

cancel event

if player's world is "lobby":

cancel event

set item of event-entity to {카탈로그.%item%}

give 1 of {카탈로그.%item%} to player

send "아이템 구매완료."

 

on left click on item frame:

player is not op

if player's world is "lob2":

cancel event

if player's world is "lobby":

cancel event

 

이렇게 고쳤는데, 문제는 똑같습니다 ㅠ

1. 우클릭이나 왼클릭시 액자에 들어있던 아이템이 없어짐 (왼클릭시에 on damage를 써봤지만 그때는 아이템이 드롭됨)

2.우클릭시 아이템을 받지 못함

 

lob2맵에서는 액자를 아예 보호하고, lobby맵은 액자에 상호작용하여 구매하는 맵입니다. 도와주세요 ㅠ

스크립터브혼
2021.11.18
@akdakd

{카탈로그.%item%}가 어떤값을 가지고 있는지 확인해보세요.

 

좌클릭은 on damage 이벤트로 구현하는게 맞습니다.

on damage of item frame

> attacker is a player

> cancel event