개인 자료란 (JE)

  서버 커뮤니티

Profile 야리아 대표칭호 없음
Profile

질문하기 스크립트

안녕하세요 sk 스크립트로 팀구문을 작성하고 있습니다.

2024.06.09 조회 수 66 추천 수 0
이해도 초보자 
게임버전 (JE) 1.20 
게임버전 (BE) 1.20.x 
스크립트 애드온 스크립트 2.8.5 

안녕하세요 sk 스크립트로 팀구문을 작성하고 있습니다.




command /팀분배:

    permission: op.op

    trigger:

        clear {red::*}

        clear {blue::*}

        set {_t::*} to all players

        set {_ni} to round(size of {_t::*} / 2)

        set {_count} to 1

        loop {_t::*}:

            if {_count} > {_ni}:

                add name of loop-value to {red::*}

            else:

                add name of loop-value to {blue::*}

            add 1 to {_count}

        send "팀이 분배되었습니다." to player


command /팀확인:

    trigger:

        set {_playerName} to name of player

        send "Your name: %{_playerName}%" to player

        send "Red team: %{red::*}%" to player

        send "Blue team: %{blue::*}%" to player



command /팀초기화:

    permission: op.op

    trigger:

        clear {red::*}

        clear {blue::*}

        send "팀이 초기화되었습니다." to player

        

on damage:

    if {_attacker} contains {red::*} and {_victim} contains {red::*}:

        cancel event

        send "팀 플레이어끼리 서로 피해를 입힐 수 없습니다!" to {_attacker}

    else if {_attacker} contains {blue::*} and {_victim} contains {blue::*}:

        cancel event     

        send "팀 플레이어끼리 서로 피해를 입힐 수 없습니다!" to {_attacker}


현재 이렇게 만들었는데, on damage 구문에서 자꾸 오류가 납니다. 

혹시 팀킬을 방지할수 있게 on damage 구문을 만들고 싶은데 어떻게 작성해야할까요

또 만약 추가로 도움을 주실수 있다면, 위 구문을 바탕으로 팀챗(색깔)을  활성화 하는 구문과.

팀 전멸시 우승 구문도 팀에 맞게 수정해주신다면 감사하겠습니다.

아래는 다른분이 만들어주신 개인전 승리 구문입니다.

loop all players:

            sidebar(loop-player)

            if gamemode of loop-player is survival:

                add loop-player to {_alive::*}

        if size of {_alive::*} = 1:

            set {start} to false

            stop all sounds for all players

            add 1 to {win::%{_alive::1}%}

            add 100 to {money::%{_alive::*}%}

            if {win::%{_alive::1}%} >= 6:

                broadcast "&7&l%{_alive::1}%이(가) 우승했습니다!"

                send title "%{_alive::*}%" with subtitle "최종우승" to all players for 10 seconds

                play sound "sound.soonwe" at volume 1 at pitch 1 to all players

            else:

                stop sound "sound.unjirider" for all players

                send title "%{_alive::*}%" with subtitle "우승" to all players for 10 seconds

                play sound "sound.timeleaper" at volume 1 at pitch 1 to all players

                execute console command "worldborder set 250"

                broadcast "&7&l%{_alive::1}%이(가) 최종우승까지 %(6 - {win::%{_alive::1}%})%회 남았습니다."

                wait 10 second

                execute console command "종료"

    else:

        broadcast "&7&l%size of {_alive::*}%명 남았습니다"

2개의 댓글

슈퍼레몬
2024.06.09

일단 {_attacker}  변수가 정의되지 않았습니다. attacker랑 혼돈하신것 같습니다. victim도 마찬가지 입니다. attacker가 {red::*}배열변수를 포함하는것이 아닌 {red::*}배열변수가 attacker를 포함해야 합니다. [~만들어주세요], [~해주세요]는 좋은 질문이 아닙니다. ~해주세요는 외주를 하셔야 합니다.

야리아
2024.06.09
@슈퍼레몬

가르쳐주셔서 감사합니다 제가 처음 글을 쓰는거다보니 많이 무례한 감이 있었네요. 알려주신대로 수정해보겠습니다.