Skip to content

API ArrayContains ko

Codex edited this page Oct 4, 2026 · 1 revision

ArrayContains

Русский · English · Українська · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어

API · Basic

ClassicUO • Runtime API

허용되거나 이미 처리한 값의 배열에 특정 값이 있는지 확인합니다.

정확한 구문

ArrayContains(array:Any, pattern:Any) -> Integer

매개변수

  • array — 검사할 Array. 다른 종류라면 0을 반환합니다.
  • pattern — 직접 포함된 요소에서 찾을 임의의 값.

반환값

Integer 논리값: 일치하면 1/True, 아니면 0/False. If ArrayContains(...) 또는 True/1 비교를 사용합니다. 인덱스나 개수가 아닙니다.

동작

  • 서버 요청, 아이템 이동, 배열 수정이 없는 로컬 조회입니다. 예제는 현재 가방 대신 고정된 데이터를 사용합니다.
  • 종류를 검사하고 첫 일치까지 바깥 요소를 비교합니다. Integer 1은 Decimal 1.0과 같지만 String "1"과는 다릅니다. 문자열은 대소문자를 구분합니다.
  • 중첩 Array와 참조 Object는 참조의 동일성을 비교합니다. 예외인 Structure는 선언된 타입과 각 필드 값이 같으면 같습니다. Array/Object 필드는 자체 비교 규칙을 유지합니다. 재귀 검색은 없습니다. 빈 배열은 0입니다. 초기화하지 않은 칸은 Unit이며 Unit과 일치할 수 있습니다.

내부 함수: 호출부터 결과까지

종류를 검사하고 첫 일치까지 바깥 요소를 비교합니다. Integer 1은 Decimal 1.0과 같지만 String "1"과는 다릅니다. 문자열은 대소문자를 구분합니다.

1. ArrayContains

종류를 검사하고 첫 일치까지 바깥 요소를 비교합니다. Integer 1은 Decimal 1.0과 같지만 String "1"과는 다릅니다. 문자열은 대소문자를 구분합니다.

Integer 논리값: 일치하면 1/True, 아니면 0/False. If ArrayContains(...) 또는 True/1 비교를 사용합니다. 인덱스나 개수가 아닙니다.

프로젝트 소스: external/InjectionScript/src/InjectionScript/Runtime/InjectionApi.cs; 함수 ArrayContains.

2. Equals

종류를 검사하고 첫 일치까지 바깥 요소를 비교합니다. Integer 1은 Decimal 1.0과 같지만 String "1"과는 다릅니다. 문자열은 대소문자를 구분합니다.

중첩 Array와 참조 Object는 참조의 동일성을 비교합니다. 예외인 Structure는 선언된 타입과 각 필드 값이 같으면 같습니다. Array/Object 필드는 자체 비교 규칙을 유지합니다. 재귀 검색은 없습니다. 빈 배열은 0입니다. 초기화하지 않은 칸은 Unit이며 Unit과 일치할 수 있습니다.

프로젝트 소스: external/InjectionScript/src/InjectionScript/Runtime/InjectionValue.cs; 함수 Equals.

3. ValueEquals

중첩 Array와 참조 Object는 참조의 동일성을 비교합니다. 예외인 Structure는 선언된 타입과 각 필드 값이 같으면 같습니다. Array/Object 필드는 자체 비교 규칙을 유지합니다. 재귀 검색은 없습니다. 빈 배열은 0입니다. 초기화하지 않은 칸은 Unit이며 Unit과 일치할 수 있습니다.

Integer 논리값: 일치하면 1/True, 아니면 0/False. If ArrayContains(...) 또는 True/1 비교를 사용합니다. 인덱스나 개수가 아닙니다.

프로젝트 소스: external/InjectionScript/src/InjectionScript/Runtime/ObjectTypes/StructureObject.cs; 함수 ValueEquals.

중첩 Array와 참조 Object는 참조의 동일성을 비교합니다. 예외인 Structure는 선언된 타입과 각 필드 값이 같으면 같습니다. Array/Object 필드는 자체 비교 규칙을 유지합니다. 재귀 검색은 없습니다. 빈 배열은 0입니다. 초기화하지 않은 칸은 Unit이며 Unit과 일치할 수 있습니다.

예제

허용할 아이템 그래픽

# 허용할 아이템 그래픽
#
# 허용되거나 이미 처리한 값의 배열에 특정 값이 있는지 확인합니다.
#
# Integer 논리값: 일치하면 1/True, 아니면 0/False. If ArrayContains(...) 또는 True/1 비교를 사용합니다. 인덱스나 개수가
# 아닙니다.

SUB Main()
    # 목록에 0x0EED가 있으므로 allowed를 반환합니다. 아이템을 검색하거나 옮기지 않습니다.
    # 서버 요청, 아이템 이동, 배열 수정이 없는 로컬 조회입니다. 예제는 현재 가방 대신 고정된 데이터를 사용합니다.

    Dim allowed(1)
    allowed[0] = 0x0EED
    allowed[1] = 0x0F7A
    Dim graphic = 0x0EED
    If ArrayContains(allowed, graphic) = True Then
        Return "allowed"
    End If
    Return "skip"
END SUB

매개변수 및 실행 설명:

  • 목록에 0x0EED가 있으므로 allowed를 반환합니다. 아이템을 검색하거나 옮기지 않습니다.
  • 서버 요청, 아이템 이동, 배열 수정이 없는 로컬 조회입니다. 예제는 현재 가방 대신 고정된 데이터를 사용합니다.

동일 serial 중복 처리 방지

# 동일 serial 중복 처리 방지
#
# 허용되거나 이미 처리한 값의 배열에 특정 값이 있는지 확인합니다.
#
# Integer 논리값: 일치하면 1/True, 아니면 0/False. If ArrayContains(...) 또는 True/1 비교를 사용합니다. 인덱스나 개수가
# 아닙니다.

SUB Main()
    # ASC가 16진 문자열을 Integer로 변환합니다. 이미 있는 serial이면 already queued입니다. 원래 String은 숫자와 일치하지 않습니다.
    # 서버 요청, 아이템 이동, 배열 수정이 없는 로컬 조회입니다. 예제는 현재 가방 대신 고정된 데이터를 사용합니다.

    Dim queued(1)
    queued[0] = 0x40001234
    queued[1] = 0x40005678
    Dim incoming = "0x40001234"
    Dim serial = ASC(incoming, 0)
    If serial = 0 Then
        Return "invalid"
    End If
    If ArrayContains(queued, serial) Then
        Return "already queued"
    End If
    Return "new"
END SUB

매개변수 및 실행 설명:

  • ASC가 16진 문자열을 Integer로 변환합니다. 이미 있는 serial이면 already queued입니다. 원래 String은 숫자와 일치하지 않습니다.
  • 서버 요청, 아이템 이동, 배열 수정이 없는 로컬 조회입니다. 예제는 현재 가방 대신 고정된 데이터를 사용합니다.

경로 지점의 참조

# 경로 지점의 참조
#
# 허용되거나 이미 처리한 값의 배열에 특정 값이 있는지 확인합니다.
#
# Integer 논리값: 일치하면 1/True, 아니면 0/False. If ArrayContains(...) 또는 True/1 비교를 사용합니다. 인덱스나 개수가
# 아닙니다.

SUB Main()
    # route에는 point가 있고 sameCoordinates는 없습니다. 같은 좌표라도 서로 다른 배열이므로 결과는 1|0입니다.
    # 서버 요청, 아이템 이동, 배열 수정이 없는 로컬 조회입니다. 예제는 현재 가방 대신 고정된 데이터를 사용합니다.

    Dim point(1)
    point[0] = 100
    point[1] = 200
    Dim sameCoordinates(1)
    sameCoordinates[0] = 100
    sameCoordinates[1] = 200
    Dim route(0)
    route[0] = point
    Return CStr(ArrayContains(route, point)) & "|" & CStr(ArrayContains(route, sameCoordinates))
END SUB

매개변수 및 실행 설명:

  • route에는 point가 있고 sameCoordinates는 없습니다. 같은 좌표라도 서로 다른 배열이므로 결과는 1|0입니다.
  • 서버 요청, 아이템 이동, 배열 수정이 없는 로컬 조회입니다. 예제는 현재 가방 대신 고정된 데이터를 사용합니다.

Clone this wiki locally