개인 자료란 (JE)

  서버 커뮤니티

Profile 조니뎁 대표칭호 없음
Profile

질문하기 스크립트

주식 스크립트 중 기능 작동불량 질문

2021.12.18 조회 수 255 추천 수 0
이해도 입문자(아무것도 몰라요) 
게임버전 (JE) 1.16.5 
게임버전 (BE) 관련없음 
스크립트 버전 2.4.1 
스크립트 애드온 - skRayFall - skUtilities - SkQuery - SkChoke - QuarSk - InvSK - Skellett-Legacy - skript-yaml 

경제 스크립트 입니다만...현재 문제는 주식이 '우클릭' 으로 구매가 되지만 그 아래의 with shft 구문을 포함한 매매 구문이 작동을 안합니다. 스크립트 관련해서 까막눈이라...무엇이 잘못되어 있는지는 모르겠습니다만... 본인이 임의로 수정한 부분은 Vault 플러그인과의 연동을 위한 playe's balance 이부분이며 문제가 되는 스크립트의 부분 구문은 아래와 같습니다.

on inventory click:

    if iname contains "&6주식목록":

        if clicked raw slot is between 10 and 16:

            cancel event

            loop {주식::목록::*}:

                if name of clicked item contains loop-index:

                    if click type is right mouse button:

                        if {주식::목록::%loop-index%::현재갯수} >= 1:

                            if player has space for 1 of loop-value named loop-index:

                                if player's balance >= {주식::목록::%loop-index%::매매가}:

                                    subtract 1 from {주식::목록::%loop-index%::현재갯수}

                                    subtract {주식::목록::%loop-index%::매매가} from player's balance

                                    give player 1 of loop-value named "&6%loop-index%"

                    if click type is right mouse button with shift:

                        if {주식::목록::%loop-index%::현재갯수} >= 10:

                            if player has space for 10 of loop-value named loop-index:

                                if player's balance >= {주식::목록::%loop-index%::매매가}*10:

                                    subtract 10 from {주식::목록::%loop-index%::현재갯수}

                                    subtract {주식::목록::%loop-index%::매매가}*10 from player's balance

                                    give player 10 of loop-value named "&6%loop-index%"

                    if click type is left mouse button:

                        if player has 1 of loop-value named "&6%loop-index%":

                            add 1 to {주식::목록::%loop-index%::현재갯수}

                            add {주식::목록::%loop-index%::매매가} to player's balance

                            remove 1 of loop-value named "&6%loop-index%" from player's inventory

                    if click type is left mouse button with shift:

                        if player has 10 of loop-value named "&6%loop-index%":

                            add 10 to {주식::목록::%loop-index%::현재갯수}

                            add {주식::목록::%loop-index%::매매가}*10 to player's balance

                            remove 10 of loop-value named "&6%loop-index%" from player's inventory

주식스크.sk 

1개의 댓글

스크립터브혼
2021.12.20

각 조건문 이전에 비교하려는 두 값이 올바른 값을 가지고 있는 지 메세지로 확인해보세요.

#
send "%click type% is right mouse button with shift" to console
if click type is right mouse button with shift:

    send "{주식::목록::%loop-index%::현재갯수} = %{주식::목록::%loop-index%::현재갯수}% " to console
    send "%{주식::목록::%loop-index%::현재갯수}% >= 10" to console
    {주식::목록::%loop-index%::현재갯수} >= 10

    player has space for 10 of loop-value named loop-index

    send "{주식::목록::%loop-index%::매매가} = %{주식::목록::%loop-index%::매매가}% "
    send "%player's balance% is %{주식::목록::%loop-index%::매매가}*10% " to console
    balance of player >= {주식::목록::%loop-index%::매매가}*10

    send "조건문 통과"
    subtract 10 from {주식::목록::%loop-index%::현재갯수}
    subtract {주식::목록::%loop-index%::매매가}*10 from balance of player
    give player 10 of loop-value named "&6%loop-index%"


분기하지 않는 if문은 생략해도 됩니다.