개인 자료란 (JE)

  서버 커뮤니티

Profile yongban2 대표칭호 없음

yongban2 b24545adb50846bfb6ab1cc34685347e

Profile

질문하기 스크립트

GEconomy 플러그인 + 스크립트에서 명령어 질문(부분 해결)

21 일 전 조회 수 51 추천 수 0
이해도 초보자 
게임버전 (JE) 1.20.1 
게임버전 (BE) 관련없음 
스크립트 버전 2.9.3 
스크립트 애드온

플레이어가 죽었을때 카르마(플레이어를 죽였을때 1씩 상승)에 따라서 {_finlose}값을 정합니다.

랭크는 이미 있는 배열변수입니다.

스트립트가 정상적으로 로드되고 오류또한 없었습니다.

GEconomy플러그인이 따로 스크립트 명령어는 없는거 같아서

콘솔 명령어로 대체했는데 이 명령만 작동이 안되더라구요..

Send 명령어와 계산된 {_finlose}값은 죽었을 때 정상적으로 알림이 뜹니다.



여기부터는 구문입니다.

on death of player:

    if {rank::%victim%} < 3:

        set {_finlose} to (350 + 350 * {karma::%victim%}/5)

        execute console command "gec remove %victim% %{_finlose}%"

        if attacker is player:

            set {_finget} to (350 + 350 * {karma::%victim%}/10)

            execute console command "gec add %attacker% %{_finlose}%"

            send "&6PK로 %{_finget}%원 을 얻었습니다. &c카르마가 1 증가합니다."

            add 1 to {karma::%attacker%}

        send "&6사망 페널티로 %{_finlose}%원을 잃었습니다. &c카르마가 초기화됩니다."

        set {karma::%victim%} to 0



플레이어가 죽어서 명령어가 실행이 안된건지도 궁금하고 오류 찾아주시거나 다른 대안 알려주시면

정말.. 감사합니다!


참고로 스트립트에서 명령어로 Luckperms플러그인의 promote 명령어는 위 코드처럼

execute console command "lp user %player% promote rank" 로 정상적으로 작동했었습니다.


GEconomy 의 명령어는

/gec [add/remove] [<player>] [<amount>]

를 인게임 명령으로 실행했을때에는 정상적으로 작동합니다.


++)부분해결

on death of player:

    if {rank::%victim%} < 3:

        set {_finlose} to (350 + 350 * {karma::%victim%}/5)

        set {_p} to victim

        execute console command "/op %{_p}%"

        execute victim command "/gec remove %{_p}% %{_finlose}%"

        execute console command "/deop %{_p}%"

        if attacker is a player:

            set {_finget} to (350 + 350 * {karma::%victim%}/10)

            execute console command "gec add %attacker% %{_finlose}%"

            send "&6PK로 %{_finget}%원 을 얻었습니다. &c카르마가 1 증가합니다." to attacker

            add 1 to {karma::%attacker%}

        send "&6사망 페널티로 %{_finlose}%원을 잃었습니다. &c카르마가 초기화됩니다." to victim

        play sound "entity.wither.spawn" with volume 1 and pitch 1 to victim

        set {karma::%victim%} to 0


6개의 댓글

windy_wind
21 일 전

if attacker is a player:

로 해보시죠

 

yongban2
21 일 전
@windy_wind

if attacker is player: 을 if attacker is a player:로 고쳐도 마찬가지네요..ㅠㅠ

yongban2
21 일 전

아 부분 해결했습니다!

저 플러그인의 커맨드는 콘솔의 권한으로 실행을 못하는거같네요,,

대안으로 저는

on death of player:

if {rank::%victim%} < 3:

set {_finlose} to (350 + 350 * {karma::%victim%}/5)

set {_p} to victim

execute console command "/op %{_p}%"

execute victim command "/gec remove %{_p}% %{_finlose}%"

execute console command "/deop %{_p}%"

if attacker is a player:

set {_finget} to (350 + 350 * {karma::%victim%}/10)

execute console command "gec add %attacker% %{_finlose}%"

send "&6PK로 %{_finget}%원 을 얻었습니다. &c카르마가 1 증가합니다." to attacker

add 1 to {karma::%attacker%}

send "&6사망 페널티로 %{_finlose}%원을 잃었습니다. &c카르마가 초기화됩니다." to victim

play sound "entity.wither.spawn" with volume 1 and pitch 1 to victim

set {karma::%victim%} to 0

으로 op 권한을 빠르게 주고 뺏었습니다..ㅎㅎ

 

다른 좋은 대안 있으시면 댓글로 더 부탁드릴게요!

qsef1256
20 일 전
@yongban2

이거 OP 권한 주고 명령어 실행 되기 전에 서버 터지면 OP 권한 그대로 남습니다

qsef1256
20 일 전
@yongban2

GEconomy 플러그인 자체가 돈 플러그인 인데 Vault 지원이 없고 데이터를 파일로 저장하는 등 문제가 많은 플러그인이니 Spigot 사이트 등지에서 다른 돈 플러그인 구해서 쓰시는 걸 추천합니다

yongban2
14 일 전
@qsef1256

아 ㅜㅜ 그렇군요,,

사실 그렇게 큰 규모도 아니고 지인들이 모여서 할 거라서 op에 대한 큰 걱정은 안했는데 서버가 터지는걸 생각을 못했네요..

조언 정말 감사합니다! 다른 플러그인 더 탐색해보겠습니다..!!