variables
{
player:
1: BARIVECTOR
}
condition
{
Distance Between(Position Of(Event Player), Position Of(Filtered Array(All Players(All Teams), Current Array Element.BARIVECTOR)))
< 4;
}
이렇게 했더니 한플레어의 변수에 대해서만 발동하고 다른플레이어의 똑같은 이름을 가진 변수가 중복되면
하나는 발동하고
하나는 그냥 씹히네요…
제가 알고싶은거는 2팀플레이어가 1팀플레이어의(중복가능) 위치변수값에 근접할경우 액션발동입니다.
어떻게해야되나요?? ㅜㅠ
variables
{
player:
1: BARIVECTOR
}
condition
{
Distance Between(Position Of(Event Player), Position Of(Filtered Array(All Players(All Teams), Current Array Element.BARIVECTOR)))
< 4;
}
여기서 Filtered array를 잘못이해하신것같은데 Filtered array는 입력된 배열의 값들 중에서 condition의 값에 true로 부응하는 것들만 골라내 만들어낸 배열입니다.
원하시는 명령어는
variables
{
player:
1: BARIVECTOR
}
condition
{
Distance Between(Position Of(Event Player), First Of(Sorted Array(All Players(All Teams), Distance Between(Position Of(
Event Player), Current Array Element.BARIVECTOR))).BARIVECTOR) < 4;
}
이것입니다. 해석 하자면, Event Player의 위치와 플레이어 변수의 거리값을 토대로 적은 순서대로 나열한 모든 플레이어 배열의 첫번째 값(플레이어)의 플레이어 변수와 Event Player의 위치 사이의 값이 4보다 낮을 경우엔
이라는 뜻
배열에 정렬하고 또 따로 비교하는게 비효율적이고 가까운 플레이어랑 거리 구하는것도 아닌데 Is true for any 쓰는게 맞지 않나요?
확실히
variables
{
player:
1: BARIVECTOR
}
condition
{
Is True For Any(All Players(All Teams), Distance Between(Position Of(Event Player), Current Array Element.BARIVECTOR) < 4) == True;
}
이렇게 Is true for any가 더 효율적이긴 하군요! 감사합니다.
이방법으로 하니까 안되는데요? ㅠㅠ
더미봇이 플레이어 대상으로 하는거라 이방법이 안먹히는건가요?