여러명을 블랙리스트 처리하는 건 어떻게 만드나요?

rule(“블랙리스트”)
{
event
{
Player Joined Match;
All;
All;
}

condition
{
Custom String("{0}", Event Player) == Is True For Any(Array(Custom String(“긁적긁적갸우뚱”), Custom String(“에레티크”), Custom String(
“역겨운디바”), Custom String(“FADE”), Custom String(“코코땅콩”), Custom String(“거대토끠”), Custom String(“적토마”), Custom String(“마류”),
Custom String(“전투개굴”), Custom String(“트월킹병장”), Custom String(“VIX10”), Custom String(“가족같은우리들”), Custom String(“Lime”),
Custom String(“지니지니”), Custom String(“임범수”), Custom String(“ungnyeo”), Custom String(“정크원챔샬이”), Custom String(“탑뽀”),
Custom String(“정의를지키러온돈”), Custom String(“탈론워치”), Custom String(“쩡우형”), Custom String(“WUST”), Custom String(“그냥바보”),
Custom String(“잊혀진공기청정기”), Custom String(“상추별”), Custom String(“네이마르”), Custom String(“조모다찌”), Custom String(“PSHCHO”),
Custom String(“어라윽”), Custom String(“홍삼저격수”), Custom String(“저주걸린돌멩이”), Custom String(“프란츠요제프”), Custom String(“fireturtle”),
Custom String(“F15K”), Custom String(“리가르도”), Custom String(“표범의법칙”), Custom String(“moning”), Custom String(“Beckback”),
Custom String(“Goodbilon”), Custom String(“수달아물어와”), Custom String(“Legendhoi6o76o”), Custom String(“전1설의겻이”), Custom String(
“SilverCathle”), Custom String(“베니쿠”), Custom String(“장득춘”), Custom String(“세종이”), Custom String(“가온누리”), Custom String(
“junjibg5”), Custom String(“ZYC”), Custom String(“DDDDD”), Custom String(“Heize”), Custom String(“CHABOOM”), Custom String(
“트롤픽하나”), Custom String(“주몽”), Custom String(“초민초”), Custom String(“고급치킨”), Custom String(“윤후”), Custom String(“윤서찡”),
Custom String(“피닉스”), Custom String(“응급”), Custom String(“OR524”)), Current Array Element);
}

action
{
Remove Player(Event Player);
}
}

현재 만든 스크립트인데 제가 쫓겨나네요… 1명만 등록하는 블랙리스트는 봤는데 여러명을 등록하는 블랙리스트는 본 적이 없어서요. 어떻게 만드나요…?
(블랙리스트 닉넴은 무시해주세여 개인적인 부분이라ㅠ)

rule(“블랙리스트”)
{
event
{
Player Joined Match;
All;
All;
}

condition
{
	Array Contains(Array(Custom String("긁적긁적갸우뚱"), Custom String("에레티크"), Custom String("역겨운디바"), Custom String("FADE"), Custom String(
		"코코땅콩"), Custom String("거대토끠"), Custom String("적토마"), Custom String("마류"), Custom String("전투개굴"), Custom String("트월킹병장"),
		Custom String("VIX10"), Custom String("가족같은우리들"), Custom String("Lime"), Custom String("지니지니"), Custom String("임범수"),
		Custom String("ungnyeo"), Custom String("정크원챔샬이"), Custom String("탑뽀"), Custom String("정의를지키러온돈"), Custom String("탈론워치"),
		Custom String("쩡우형"), Custom String("WUST"), Custom String("그냥바보"), Custom String("잊혀진공기청정기"), Custom String("상추별"),
		Custom String("네이마르"), Custom String("조모다찌"), Custom String("PSHCHO"), Custom String("어라윽"), Custom String("홍삼저격수"),
		Custom String("저주걸린돌멩이"), Custom String("프란츠요제프"), Custom String("fireturtle"), Custom String("F15K"), Custom String("리가르도"),
		Custom String("표범의법칙"), Custom String("moning"), Custom String("Beckback"), Custom String("Goodbilon"), Custom String(
		"수달아물어와"), Custom String("Legendhoi6o76o"), Custom String("전1설의겻이"), Custom String("SilverCathle"), Custom String("베니쿠"),
		Custom String("장득춘"), Custom String("세종이"), Custom String("가온누리"), Custom String("junjibg5"), Custom String("ZYC"),
		Custom String("DDDDD"), Custom String("Heize"), Custom String("CHABOOM"), Custom String("트롤픽하나"), Custom String("주몽"),
		Custom String("초민초"), Custom String("고급치킨"), Custom String("윤후"), Custom String("윤서찡"), Custom String("피닉스"), Custom String(
		"응급"), Custom String("OR524")), Custom String("{0}", Event Player)) == True;
}

action
{
	Remove Player(Event Player);
}

}

여깄습니당.

비교에대해 잘못 이해하신것 같아더 몇마디 드리자면

컨디션은 보통 A==B라는 형식으로 되어있는데

A와 B가 같으면 동작하겠다는 의미입니다.

작성자님께서는 A에 아이디의 스트링을, B에 Is true for any를 넣었죠.

Is true for any는 맞다 아니다를 반환해요.

만약에 맞으면 True를 반환하는데,

값이 있으면 무조건 True와 같다가 판별됩니다.

값이 없는경우는 0, False, Null, empty array또는 array(), custom string(""), vector(0,0,0) 등이 있습니다.

아무튼 지금식에서는 is true for any가 항상 True가 되기 때문에, 이벤트 플레이어의 문자열은 값이 없는 경우가 아니기 때문에 컨디션이 발동하는 거예요.

is true for any에 array부분은 아주 잘 넣으셨습니다.

is true for any는 condition부분이 위에서말한 값이 없는 값이 아닌경우가 하나라도 있으면 True를 반환해요.

근데 보시면 그부분에 Current array element를 넣으셨는데 이부분은 배열의 각부분을 조사하는 곳입니다. 블랙리스트된 문자열들이요. 값이 없는게 아니죠(False, 0 등이 아니라는 거예요)

그래서 is true for any는 True를 반환하게 되고 결국 누가 들어가도 사설방에서 제거되는 거예요.

is true for any의 condition에는 current array element만 넣기보다 compare(current array element==custom string("{0}",event player))를 넣어야 합니다. 그러면 각각 배열에있는 스트링과 이벤트 플레이어의 스트링이 맞는지 조사하고 하나라도 맞으면 True를 반환하는거죠.

제가 짜드린 스크립트를 보면 is true for any가 아닌 array contains를 썼습니다. 방금말씀드린대로 하나라도 맞는지 조사해도 되지만, 이렇게 배열이 어떤값을 포함하고 있는지가 더 계산량이 적게들 거예요(아마도…)

좋아요 2개

코드는 NTBNT예요

친절한 설명 감사합니다!! 영상 찾아 봐도 쪼끔 어렵네요ㅠㅠ