2013년 6월 9일 일요일

ARMA 커맨드 그룹 : Locations

일정 구역을 특정 지역으로 지정한다.

이를 활용해서 특정지역에 맞춰서 간편하게 다수의 유닛을 생성, 통제할 수 있을 것으로 보인다.



ARMA 2 CfgLocationTypes
아래의 기본적인 표시외에도 해당 진영별로 설정할 수 있는 요소들이 따로 있다.(b_hq,o_hq....)
  • Strategic
  • StrongPointArea
  • FlatArea
  • FlatAreaCity
  • FlatAreaCitySmall
  • CityCenter
  • Airport
  • NameMarine
  • NameCityCapital
  • NameCity
  • NameVillage
  • NameLocal
  • Hill
  • ViewPoint
  • RockArea
  • BorderCrossing
  • VegetationBroadleaf
  • VegetationFir
  • VegetationPalm
  • VegetationVineyard
위 항목들을 훑어보니 위 항목들을 구성하는 요소는 다음과 같다.
  • color
  • commander
  • drawStyle
  • font
  • icon
  • importance
  • markerClass
  • name
  • scope
  • shadow
  • side
  • size
  • textSize
  • texture = 맵에 표시되는 아이콘




createLocation
특정 위치에 해당 클래스로 정의된 지역을 생성한다. 클래스는 CfgLocationTypes에 정의된다.

Location = createLocation [className, position, sizeX, sizeY]

  • deleteLocation
    특정 지역을 삭제한다.

    deleteLocation location


loc1 = createLocation ["RockArea",position this,10,10];



attachObject
해당 지역에 특정 물체를 붙인다. deleteLocation으로 해당 지역을 삭제해도 붙인 객체까지 삭제되지는 않는다.

location attachObject object

  • attachedObject
    해당 지역에 붙어있는 객체를 리턴한다. 만약에 해당되는 것이 없다면 objNull을 리턴한다.

    Object = attachedObject location





setDirection
해당 지역의 방향을 설정한다. 해당 지역과 지도상의 아이콘도 회전한다.


location setDirection direction 

  • direction
    해당 물체나 장소가 바라보고 있는 방향을 리턴한다.

    Number = direction object

loc1 = createLocation ["RockArea",position this,10,10];
loc1 setDirection 150;
hint str (direction loc1);



drawLocation
지도상에 해당 지역의 표시를 이벤트핸들러를 통해서 그리도록 만드는 함수일 것으로 추측되지만, 자동적으로 그리기때문에 따로 설정할 필요성을 없을 것으로 생각된다.



setImportance
해당 구역의 중요도를 설정한다.

location setImportance value  

  • importance
    해당 위치의 중요도를 리턴받는다.
    Number = importance location 



setName
해당 지역명을 설정한다.

location setName name 

  • locationPosition
    해당 지역의 포지션을 리턴한다. 만약 해당 지역이 객체에 붙어있을 경우 그 객체의 포지션을 리턴한다
    position = locationPosition Location

  • position location
    해당 지역의 포지션을 리턴한다. 만약 객체에 붙어있는 지역이라면, 객체의 위치보다 설정된 위치나 생성된 위치가 리턴된다.

    Array = position location



setPosition
해당 지역의 위치를 설정한다.

location setPosition pos 

  • name location
    해당 지역명을 리턴한다.

    String = name location


setRectangular
해당 지역의 형태를 사각형으로 할때는 true를, 타원형으로 할때는 false로 설정해준다. 지역의 기본적인 형태는 타원형이다.

location setRectangular set 

  • rectangular
    해당 지역이 사각형일 경우엔 true, 타원형일 경우엔 false가 리턴된다.




setSide
해당 지역이 어느 진형에 속하는지를 설정한다. 기본값은 Unknown이다.

location setSide side

  • side location
    해당 지역이 속한 진영을 리턴한다.
    side location 




setSize
해당 지역의 사이즈(반경)을 설정한다.중심점에서 볼때 한쪽 끝까지의 거리를 설정하는 것과 같다. 실질적인 폭과 높이는 해당 설정값의 두배이다.

location setSize size

  • size = [x,y]

  • size
    해당 지역의 폭과 높이를 리턴한다.

    Array = size location 
    Array = [x, y] (미터)






setText
해당 지역에 대해서 지도상에 표시되는 내용을 설정한다.

location setText text

  • text location
    해당 지역이 갖고 있는 문자열값을 리턴한다.

    String = text location  





setType
해당 지역에 대해 설정되어있는 클래스를 변경한다. 지역에 관한 클래스정보는 CfgLocationTypes에 담겨있다.

location setType name 

  • type해당 지역의 클래스값을 리턴한다.

    String = type location



BIS fnc locations
Function Viewer로 configFile->Systems에서 확인할 수 있는 함수이다. Ambient CiviliansAmbient Civilian Vehicles같은 지역과 관련된 것들을 생성하거나 등록한다.
등록시 location logic과 관련된 변수들은 다음과 같은 곳에 위치하게 된다. 해당 변수를 등록할 경우 고정되며, 바꿀 수 없다.


  • "class " : 해당 지역의 고유 클래스명
    • BIS_loc_<configname>
    • BIS_loc_custom_<ID>
  • "name" : config나 setName으로 설정한 지역명. 지정하지 않으면 클래스명을 쓴다.
  • "type" : config 타입
  • "neighbors" :이웃의 위치를 설정한다.


Array = [type(s),area,(debug)] call BIS_fnc_locations
해당 위치의 범위내에서 특정 타입의 지역들이 링크된 객체들의 배열을 리턴해주는 것으로 보인다.
  • Array = 등록된 내용들
  • types = String or Array of strings 
  • Area = [center(3D position), distance]  
  • bug = (optional) Boolean
Array = [objects] call BIS_fnc_locations
  • objects : Array of Objects or Locations
    해당 리스트들이 등록된다
    attachObject로 지역이 붙이지 않아도 추가된다.


setVariable
해당 요소의 변수부분에 특정 값을 설정한다. 해당 내용을 삭제하고 싶을때는 nil로 설정한다. 다음과 같은 형태로 조합해서 사용할 수 있다.




objectName setVariable [name, value, (public)] 


  • getVariable
    해당 객체나 지역으로부터 변수를 리턴받는다.다음과 같은 것들과 조합해서 사용할 수 있다.




in location
해당 포지션이 특정 지역안에 있으면 true를 리턴한다.

position in location 

(position player) in loc1




locationNull
존재하지 않는 지역.



nearestLocation
전체 맵에서 해당 위치에서 가장 가까운 특정 클래스의 지역을 리턴한다. 

Location = nearestLocation [position, locationClass]



NearestLocations
해당 위치의 특정 범위 내에 해당 클래스의 지역을 배열형태로 리턴하고, 배열의 순서는 가장 가까운 곳에서부터 가장 먼 곳 순으로 정렬된다.

Array = nearestLocations [position, [locationType,...], radius]


댓글 없음:

댓글 쓰기