스타크래프트 II
스타크래프트 II 5.0 패치 노트
Blizzard Entertainment
일반
- 시작 타이머 카운트다운
- 대전 게임에서 모든 플레이어의 로딩이 끝나면 짧은 카운트다운 타이머가 게임 시작까지 초읽기를 합니다.
- 대기실 생성 시 게임 서버 선택
- 대기실 방장이 사용자 지정 대기실을 생성할 때 게임 서버를 선택할 수 있게 됩니다.
- 참고: '언어 및 지역' 옵션에서 옵션을 활성화해야 합니다.
- 신규 아나운서: White-Ra
- "GG를 많이 쳐봐야 실력이 늘죠"
- 신규 아나운서: 스톤
- 수수께끼의 과거를 가진 자치령 유령입니다. '스톤'으로 불립니다.
신규 캠페인 업적
- 자유의 날개, 군단의 심장, 공허의 유산, 노바 비밀 작전에 포함된 모든 임무에 신규 캠페인 업적이 추가되었습니다. 10주년 캠페인 업적을 모두 달성한 플레이어는 새로운 스톤 아나운서를 받을 수 있습니다.
- 참고: 보통보다 높은 난이도에서 업적을 달성할 수 있습니다. 그러나 점차 난이도를 높여갈 수 있도록 설계하였으며, 힘들게 노력한다면 아주 어려움 난이도에서도 업적 달성이 가능합니다.
사용자 지정 캠페인
- 아케이드 지도에 '캠페인' 신규 장르가 추가되었습니다.
- '사용자 지정'에 '캠페인' 하위 항목이 추가되었으며, '캠페인' 장르를 사용하여 게시된 지도가 표시됩니다.
- 스타크래프트 II 멀티플레이어 대기실에서 두 개의 지도 사이를 전환할 수 있게 되었습니다.
- 전환하는 두 지도는 같은 제작자가 게시한 지도여야 합니다.
- '온라인 지도 간 불러오기' 기능이 추가되었습니다. 제작자는 지정한 '지도 슬롯'을 모든 플레이어가 불러오게 하고, 각 플레이어 그룹에 승리 및 패배를 지정할 수 있습니다.
- '지도 슬롯'은 게시된 지도의 우클릭 상황 메뉴 '지도 슬롯 지정' 부분의 게시 관리 창에서 지정할 수 있습니다.
- 지도 슬롯은 지역마다 개별 지정해야 합니다.
- 지도가 바뀔 때 불러오는 시간을 줄이기 위해 첫 번째 지도에 전환 가능한 다른 모든 지도의 자산 의존 관계를 포함시키는 것이 좋습니다.
- 신규 '캠페인' 장르가 추가되어 게임 변경 형태 메뉴에서 지정할 수 있습니다.
협동전 사령관 위신
- 신규 '위신' 시스템이 추가되어 1~15레벨 진척도를 사령관당 최대 세 번까지 추가로 플레이할 수 있게 됩니다. 지정된 사령관의 위신을 활성화할 때마다 고유 위신 특성이 잠금 해제되며, 이를 통해 해당 사령관의 핵심 게임플레이에 변화를 줄 수 있습니다.
- 각 사령관은 위신 특성을 한 번에 한 개만 장착할 수 있으며 위신 특성을 장착하지 않을 수도 있습니다. 이런 경우, 사령관은 표준 장비를 적용받습니다.
- 다음은 위신 특성의 예시입니다.
- 아바투르: 무한한 자
- 최종 진화물 개수 제한이 없어집니다. 그러나 최종 진화물의 변태를 위해 생체 물질 200개가 필요하고 생체 물질의 일반 효과가 반으로 줄어듭니다.
- 알라라크: 영혼 제작자
- 광신자가 죽으면 알라라크 주위에 있는 영웅이 아닌 기계 유닛 하나의 공격력과 공격 속도가 영구적으로 증가합니다. 그러나 알라라크의 사용 능력이 50% 적은 피해를 줍니다.
- 데하카: 무리 의형제
- 데하카에게 형제가 생깁니다. 그러나 둘 다 생명력이 감소합니다.
- 아바투르: 무한한 자
- 사령관이 18명이고 사령관당 위신 특성이 3개이므로 54개의 신규 위신 특성을 체험해 보실 수 있습니다.
협동전 임무
- 돌연변이원
- 신규 돌연변이원: 폭탄로봇
- 로봇 장치가 여러분의 기지로 핵탄두를 운반합니다. 플레이어 한 명은 해체 암호를 알아내고 다른 플레이어는 암호를 입력해야 합니다.
- 신규 돌연변이원: 폭탄로봇
- 사령관
- 아바투르
- 생체 물질 확률 2배 마스터가 1점당 2%에서 1점당 3%로 증가했습니다. 최대 보너스는 30%에서 45%로 증가했습니다.
- 아르타니스
- 폭풍함 대공 무기 사거리가 6에서 10으로 증가했습니다.
- 데하카
- 거대 원시 벌레 재사용 대기시간 마스터가 1점당 1.5%에서 1점당 2%로 증가했습니다. 최대 보너스는 45%에서 60%로 증가했습니다.
- 유전자 돌연변이 마스터가 1점당 2%에서 1점당 1%로 감소했습니다. 그러나 이제 기본 고유 능력에 곱연산이 아닌 합연산을 합니다. 유효 최대 유전자 돌연변이 확률이 32%에서 50%로 증가했습니다.
- 피닉스
- 이제 전술 데이터망을 통해 탈리스의 쐐기 유탄 재사용 대기시간이 감소하지 않는 대신 공격력이 증가합니다.
- 전쟁인도자의 정화포 공격력이 300에서 150으로 감소했습니다.
- 정화포의 재사용 대기시간이 10초에서 5초로 감소했습니다.
- 이제 전술 데이터망이 정화포 재사용 대기시간 감소 대신 공격력 증가 혜택을 줍니다.
- 모조의 억제 절차 공격력이 11(중장갑 유닛에는 22)에서 6(중장갑 유닛에는 12)으로 감소했습니다.
- 억제 절차의 기절 지속 시간이 2초에서 1초로 감소했습니다.
- 억제 절차의 재사용 대기시간이 10초에서 5초로 감소했습니다.
- 이제 전술 데이터망을 통해 억제 절차의 재사용 대기시간이 감소하지 않는 대신 공격력이 증가합니다.
- 한과 호너
- 격납고 장착 업그레이드를 한 강습 갈레온이 지구력 훈련 능력을 보유하게 되어, 비전투 시 생명력을 회복할 수 있습니다.
- 화염차 공격력이 15(중장갑 유닛에는 30)에서 15(중장갑 유닛에는 40)로 증가했습니다. 이에 따라 무기 업그레이드 보너스도 조정되었습니다.
- 연소 폭발 기본 탐색 반경이 3에서 4로 증가했습니다.
- 연소 폭발 마스터 보너스 탐색 반경이 4.24에서 5.66으로 증가했습니다.
- 카락스
- 태양 효율 1단계 업그레이드 비용이 200/200에서 100/100으로 감소했습니다.
- 태양 효율 2단계 업그레이드 비용이 250/250에서 150/150으로 감소했습니다.
- 태양 효율 3단계 업그레이드 비용이 300/300에서 200/200으로 감소했습니다.
- 이제 태양 효율 1단계 업그레이드가 에너지 재생을 6초마다 1씩 증가(기존: 6초마다 2씩 증가)시킵니다.
- 이제 태양 효율 3단계 업그레이드가 에너지 재생을 6초마다 3씩 증가(기존: 6초마다 2씩 증가)시킵니다.
- 향상된 목표 설정 연구의 비용이 150/150에서 100/100으로 감소했습니다.
- 포 최적화 연구의 비용이 150/150에서 100/100으로 감소했습니다.
- 재구축 연구의 비용이 150/150에서 100/100으로 감소했습니다.
- 신속 재충전 연구의 비용이 150/150에서 100/100으로 감소했습니다.
- 그림자 포 연구의 비용이 150/150에서 100/100으로 감소했습니다.
- 화염 광선 업그레이드가 이제 거신의 무기 속도를 감소시키지 않습니다.
- 수리 비행정 연구의 비용이 200/200에서 100/100으로 감소했습니다.
- 신규 업그레이드: 중력자 발사기: 비용 150/150. 우주모함이 요격기를 더 빨리 출격시키고 요격기의 공격 속도가 25% 증가했습니다.
- 재구축 광선 치료 속도 마스터 보너스가 1점당 1%에서 1점당 3%로 증가했습니다. 최대 보너스는 30%에서 90%로 증가했습니다.
- 시간의 파도 에너지 재생 마스터 보너스가 1점당 에너지 1에서 1점당 에너지 3으로 증가했습니다. 최대 보너스는 에너지 30에서 90으로 증가했습니다.
- 멩스크
- 0/1/2/3등급 근위병 유닛이 황제 지지를 보급품당 1/1.5/2/2.5(기존: 0.5/1/1.5/2)씩 증가시킵니다.
- 방어장의 반경이 3에서 5로 증가했습니다.
- 방어장의 방어력 보너스가 3에서 5로 증가했습니다.
- 1등급 이상의 창공의 분노가 두 모드 전부에서 거대 유닛에게 50(기존: 25)의 추가 피해를 주게 됩니다.
- 노바
- 차량 및 우주선 무기 업그레이드가 습격 해방선의 공격력을 업그레이드당 13(기존: 5) 증가시키게 됩니다.
- 스텟먼
- 영원한 친구 특성이 5레벨에서 9레벨로 옮겨졌습니다.
- 이곤의 한계 초월 특성이 9레벨에서 15레벨로 옮겨졌습니다.
- 메카의 걸작 특성이 15레벨에서 5레벨로 옮겨졌습니다.
- 스투코프
- 감염된 해병의 비용이 25에서 15로 감소했습니다.
- 타이커스
- 무법자 이용 가능 마스터가 1점당 2초에서 1점당 3초로 증가했습니다. 최대 보너스가 60초에서 90초로 증가했습니다.
- 아바투르
신규 갤럭시 편집기 변경 사항
- 데이터 컬렉션 (Data Collections)
- 데이터 컬렉션은 신유형의 카탈로그로서, 사용자가 데이터 요소를 선언하고 하나의 데이터 컬렉션으로 묶을 수 있습니다. 컬렉션은 유닛, 능력, 업그레이드 등과 비슷하게 하나의 데이터라고 생각하면 됩니다.
- 데이터 컬렉션을 복사, 이름 변경, 또는 삭제하게 되면 편집기가 알아서 컬렉션 내 모든 데이터 요소에 같은 작업을 적용합니다. 예를 들어 데이터 컬렉션을 복사하는 경우 새로운 컬렉션의 이름을 입력하라는 알림을 받게 됩니다. 이후 편집기는 컬렉션 내 모든 데이터 입력값을 복사하고 이름도 알맞게 수정합니다. 새로운 데이터 입력값도 새로 복사된 내용이 들어가도록 연결된 필드 또한 재설정됩니다.
- 예시: 블리자드 컬렉션을 복사하고 복사본 이름을 액티비전 블리자드로 설정합니다.
- 데이터 컬렉션 삭제 시 모든 하위 데이터 입력값도 함께 삭제됩니다.
- 데이터 컬렉션 ID 변경 시 모든 하위 데이터 입력값의 ID도 함께 변경됩니다.
- 데이터 컬렉션의 데이터 입력값은 수동으로 설정하거나 자동으로 채워지도록 지정할 수 있습니다.
- 데이터 컬렉션은 새로운 키 문자인 '@'를 활용하여 자식 데이터 입력값의 이름을 정합니다. 데이터 컬렉션 시스템은 데이터 컬렉션 ID와 '@' 문자로 시작하는 ID를 가진 데이터 입력값을 카탈로그 전체 범위 내에서 자동으로 검색할 수 있습니다. 검색된 입력값은 자동으로 컬렉션에 추가됩니다.
- 이러한 연동된 기능으로 인해 능력의 효과 계통도가 바뀔 때마다 대응하는 데이터 컬렉션과 데이터 입력값이 자동으로 업데이트됩니다.
- 아래는 자동 채우기가 적용된 데이터 컬렉션의 샘플 데이터입니다.
- 해당 서식의 이름을 사용하지 않는 데이터에는 자동 채우기가 적용되지 않지만, 데이터 컬렉션에 수동으로 추가할 수 있습니다.
- 메뉴: 데이터 컬렉션 -> 데이터 컬렉션 자동 채우기를 선택하면 데이터 컬렉션 ID + '@' 문자로 시작하는 ID를 가진 데이터 입력값을 전체 카탈로그 내에서 자동 검색합니다. 검색된 데이터 입력값은 대응하는 컬렉션에 자동 추가됩니다.
- 메뉴: 데이터 컬렉션 -> 데이터 컬렉션 이름 자동 변경을 선택하면 데이터 컬렉션 내 데이터 입력값의 이름을 데이터 컬렉션의 이름에 맞게 변경합니다.
- 데이터 컬렉션을 통해 데이터 입력값 사이의 추가적인 관계 정보를 입력할 수 있게 됩니다. 예를 들어 데이터 컬렉션을 통해 게임은 '해당 유닛의 주 행위자가 누구인가?' 등의 정보를 파악할 수 있게 되었습니다.
- 본 업데이트의 여러 기능이 이 데이터 컬렉션 기능을 활용합니다.
- 데이터 컬렉션을 가장 잘 활용하기 위해서는 따라야 할 코딩 관습 또는 가이드라인이 존재합니다.
- 모든 데이터 컬렉션은 가능한 한 독립적이어야 합니다.
- 예를 들어 '능력 컬렉션'은 어떤 유닛에 추가하든 작동이 가능해야 하며, 특정 유닛이나 특정 무기를 사용하는 유닛에만 작동하도록 하드코딩하면 안 됩니다. 주의하자는 의미에서 예시를 하나 들어 보자면, 예전 스타크래프트 II 데이터베이스에는 지속 공격 시 피해량이 증가하는 공허 포격기 지속 효과가 존재했습니다. 해당 지속 효과는 실제로는 작동하지 않았으며, 기능은 공허 포격기의 무기에 하드코딩되어 있었죠. 데이터 컬렉션을 사용할 수 있는 이 시점에서는 이러한 데이터 오용을 최대한 피하는 것을 권장해 드립니다. 이를 위해 아래에 설명된 여러 가지 새로운 기능은 이 목표를 달성하는 데 도움이 되도록 제작되었습니다.
- '쉬움 모드' 데이터 편집기 ("Easy Mode" Data Editor)
- '쉬움 모드' 데이터 편집기는 데이터 컬렉션의 확장 기능입니다. 기능을 켜면 데이터 편집기에는 데이터 컬렉션만 보이게 되고, 각 컬렉션을 마치 '능력 데이터', '유닛 데이터', '아이템 데이터', '업그레이드 데이터' 등 단일 데이터인 것처럼 취급하게 됩니다. 이러한 데이터는 단일 데이터 개체처럼 복사, 제거, 삭제, 이름 변경할 수 있습니다.
- 이 모드는 테이블 보기에서만 사용 가능하며, 가장 중요한 데이터 필드인 유닛 HP 데이터 또는 능력 공격력 데이터 등을 통합합니다.
- 쉬움 모드에서 표시되는 필드는 데이터 컬렉션 유형에 맞게 자유롭게 변경 가능합니다.
- 스타크래프트 II 지도 제작에 있어 가장 불만 사항이 많았던 요소 중 하나는 유닛이나 능력을 복제하는 것이 너무 복잡하다는 점이었습니다. 이는 워크래프트 III 편집기가 스타크래프트 II 편집기와 비교해 지닌 가장 강력한 장점입니다.
- 데이터 컬렉션과 쉬움 모드를 함께 활용하면 문제는 해결됩니다.
- 저희는 데이터 컬렉션 사용이 쉬워지도록 추후 패치를 통해 데이터 컬렉션을 활용한 데이터를 더 제작하려 합니다.
- 장점을 최대한으로 활용하실 수 있도록 데이터 컬렉션으로 자체 모드를 제작해 보는 것을 추천합니다. 또한 공개 모드 제작 시 쉬움 모드 보기를 정의하여 타 모드 제작자들이 쉽게 변경 및 수정할 수 있도록 하는 것이 좋습니다.
- 축적기 (Accumulators)
- 축적기는 지도 제작 시 다양한 입력 매개 변수를 활용하여 데이터 필드에서 식 제작을 가능하게 해주는 신규 기능입니다.
- 예를 들어 다음과 같이 능력의 공격력을 설정할 수 있습니다.
- 시전자의 생명력 + 시전자의 지력 특성 * 2 - 75 + 대상의 생명력 손실 - (2 * 시전자의 피해 보호막이 흡수한 피해). 단, 시전자가 바나나를 소유 중일 경우 + (2 * 시전자의 피해 보호막이 흡수한 피해)
- 물론 실제 게임에서 복잡한 공격력 식을 사용할 필요는 없습니다. 이 식은 축적기의 기능을 보여주는 단순한 예시입니다.
- 예를 들어 다음과 같이 능력의 공격력을 설정할 수 있습니다.
- 유닛 사용자 지정 값과 사용자 데이터를 축적기의 매개 변수로 입력할 수 있습니다.
- 축적기는 식 사용은 물론 사용자 지정 테이블도 지원합니다. 유효성 검사기와 함께 사용하면 케이스 스위치 기능도 제공할 수 있습니다.
- 예를 들어 레벨이 바뀌고 여러 플레이어가 시전할 수 있는 동작에 축적기가 사용되는 경우, 축적기는 각 플레이어당 결과를 계산합니다.
- 축적기는 매우 활용성이 높고 사용 용도가 다양합니다. 예를 들어 공격력, 치료 속도, 생명력 재생량, 피해 감소, 능력 에너지 비용, 방어력 보너스, 행위자 배치 수, 지속 효과 수, 동작 수, 동작 지속 시간, 피해 비율, 공격 속도, 이동 속도, 생존력 재생량, 동작 확률, 생존력 수정 등에 활용할 수 있습니다.
- 신규 문자열 분석 토큰: $AccumulatedValue:xxx$
- 해당 토큰을 활용하여 UI 내 AccumulatedValue를 계산할 수 있습니다. 예시:
- 해당 토큰을 활용하여 UI 내 AccumulatedValue를 계산할 수 있습니다. 예시:
- 'd ref="$AccumulatedValue:Effect,JainaBlizzardPersistent,PeriodCount$"/>'개의 얼음 파편 물결을 떨어뜨립니다. 각 물결은 일정 범위 안에 있는 유닛에게 피해를 줍니다.
- 해당 토큰을 활용하여 UI 내 AccumulatedValue를 계산할 수 있습니다. 예시:
- 해당 토큰을 활용하여 UI 내 AccumulatedValue를 계산할 수 있습니다. 예시:
- 축적기는 지도 제작 시 다양한 입력 매개 변수를 활용하여 데이터 필드에서 식 제작을 가능하게 해주는 신규 기능입니다.
- 플레이어 레벨 응답 (Player Level Response)
- 플레이어 응답은 새로운 데이터 카탈로그로서 장착 중인 플레이어에게 일어나는 일에 대한 응답 패턴을 정의할 수 있게 해줍니다. 개발자는 트리거를 활용하여 특정 플레이어에게 이러한 응답 패턴을 장착시킬 수 있고, 응답 패턴이 장착된 플레이어의 유닛은 모두 등록된 이벤트에 대한 피해 응답 동작이 있는 것처럼 응답합니다.
- 사용자는 플레이어 응답에 대한 우선순위와 실패 방법을 설정할 수 있습니다.
- 플레이어 레벨 응답을 통해 사령관 제작 시 특정 동작을 모든 대상에게 적용해야 하는 필요성이 없어져 게임 성능이 굉장히 증가합니다. 또한, 대응하는 사령관이 응답할 때만 응답을 장착하면 되기 때문에 게임이 모든 사령관의 소멸 방지 데이터를 매번 검사할 필요가 없어집니다.
- 플레이어 응답은 이제 '유닛 피해 입음'과 같은 피해 응답 동작으로 제한되지 않습니다. 예를 들어 플레이어 생성, 유닛 생성, 플레이어 유닛 소멸 등에도 응답이 가능합니다.
- 눈금 표시 없는 상태 표시줄 (Unsegmented Status Bar)
- 트리거 행동: UI - 플레이어 옵션 덮어쓰기를 이용하면 기본 상태 표시줄의 양식을 변경하여 더 선형으로 만들고 눈금 표시를 없앨 수 있습니다. 생존력 비율을 보다 정확하게 표시해야 하는 사용자 지정 모드에 유용한 기능입니다.
- 워크래프트 III 자산 모드 데이터 업데이트 (Updated Data for the War3 Asset Mod)
- 2015년 2월 저희는 워크래프트 III 자산 모드를 출시했습니다. 자산만 포함된 팩이었지만, 많은 분이 스타크래프트 II 편집기를 이용하여 워크래프트 III풍의 능력을 만드는 방법을 궁금해 하셨습니다. 이번 패치에 편집기 변경사항이 이렇게 많은 만큼, 모든 새로운 기능의 사용 예시를 보여드리고자 합니다.
- 커뮤니티 모드 르네의 워크래프트 III 모드 제작자와 함께 새로운 편집기 기능을 활용하여 해당 모드를 재구현했습니다.
- 이제 공식 워크래프트 III 자산 모드에 종족, 유닛, 건물, 능력 등 수많은 사용 가능한 데이터가 생겼습니다. 이러한 예시들이 사용법을 배우는 데 도움이 되길 바랍니다.
- 워크래프트 형식의 섬멸전 지도를 제작하고 싶다면, 영웅의 경험치 획득을 비활성화하는 스타크래프트 II 기본 섬멸전 게임 옵션은 사용하지 않는 것이 좋습니다. 대신 사용자 지정 '워크래프트 III 섬멸전 설정 사용' 트리거 행동을 워크래프트 표본 모드에 추가했습니다. 이 트리거 행동을 사용하면 플레이어의 영웅 제한, 시작 건물, 일중 시간, 점막이 워크래프트 III 섬멸전 설정에 따라 설정됩니다.
- 대열 이동 (Formation Movement)
- 스타크래프트 II는 이제 대열 이동을 지원합니다. 대열 이동 기능은 트리거를 이용해 플레이어별로 켜거나 끌 수 있습니다.
- 유닛은 지정된 간격으로 떨어져서 정사각형 대열로 이동 및 공격할 수 있습니다.
- 현재 이 대열 이동 기능은 대열 내 모든 유닛이 같은 이동 속도를 유지하도록 제어하지 않는다는 점에서 워크래프트 III 버전과 다릅니다.
- 이 데이터를 조정하여 동작에 변화를 줄 수 있습니다.
- 수상 이동 경로 (Water Pathing)
- 이제 스타크래프트 II는 수상 이동 경로를 지원합니다!
- 신규 이동 경로 유형: 얕은 물과 깊은 물.
- 신규 공중 이동 경로 모드: 부유 및 수륙양용.
- 지상 유닛은 지면 및 얕은 물 타일 위로 이동 가능합니다.
- 부유 유닛은 얕은 물과 깊은 물 타일 위로 이동 가능합니다.
- 수륙양용 유닛은 지면, 얕은 물, 깊은 물 타일 위로 이동 가능합니다.
- 비행 유닛은 비행 경로 이동 방해물을 제외하고 모든 타일 위로 이동 가능합니다.
- 해당 이동 경로 유형은 현재 지형 편집기의 이동 경로 붓으로만 칠할 수 있습니다.
- 다중 언덕 레이어 (Multiple Cliff Layers)
- 스타크래프트 II가 지원하는 언덕 레이어 수가 최대 3개에서 최대 15개로 증가하였습니다.
- 4.13 공개 테스트 서버 수정 사항: 이제 언덕 레벨이 3보다 높을 때 언덕 이동 경로가 정상적으로 채워집니다.
- 업그레이드 시스템 개편 (Upgrade System Revamp)
- 이 부분은 데이터 컬렉션 시스템과 새로운 사령관 시스템의 큰 비중을 차지합니다.
- 이전 업그레이드 시스템은 독립적인 시스템이 아니었고, 이는 새로운 데이터 컬렉션의 철학과 전혀 맞지 않았습니다. 예전 업그레이드 시스템에는 업그레이드가 대상 능력 또는 유닛, 대응하는 업그레이드 효과를 지정하는 방식이 사용됐습니다.
- 새로운 업그레이드 시스템을 통해 업그레이드가 훨씬 더 자주적인 특성을 띨 수 있게 됩니다. 이제 업그레이드가 유닛을 지정하는 것이 아닌 각 유닛이 사용하는 업그레이드를 선언해야 합니다. 예를 들어, 업그레이드는 더 이상 '해병의 생명력을 10 증가시킨다'는 식으로 구현하면 안 됩니다. '어떠한 유닛이든 해당 업그레이드를 사용하는 유닛의 생명력을 10 증가시킨다'는 식이 맞겠죠.
- 신규 CUpgrade 필드: EffectArrayTemplate
- 이 필드는 기존의 EffectArray 필드와 동일하지만, 다음과 같은 차이점이 있습니다.
- 이제 추가 토큰 두 가지를 더 지원합니다.
- ^ParamId^: 해당 업그레이드를 사용하는 데이터 컬렉션의 ID입니다.
- ^ParamLevel^: 업그레이드의 현재 레벨입니다.
- 데이터 참조와 연산 사용을 지원합니다. 텍스트 편집기와 동일하게 괄호 "{" 및 "}"를 사용하여 식을 생성할 수 있습니다.
- 데이터 컬렉션은 이미 연관된 모든 데이터의 이름을 특정 이름짓기 관습에 따라 지정하도록 유도하고 있습니다. 이로써 해당 유닛과 연관된 데이터 입력값에 대해 손쉬운 ^ParamId^ 활용이 가능합니다.
- 예시:
- EffectArrayTemplate Reference="Effect,^ParamId^@Weapon,Amount" Value="{DataCollection,^ParamId^,UpgradeInfoWeapon.DamagePerLevel+3}"/
- 이 업그레이드는 해당 유닛의 무기 공격력을 유닛 데이터 컬렉션의 UpgradeInfoWeapon.DamagePerLevel 필드에 3을 더한 만큼 증가시킵니다.
- Value 열에는 Value="4"와 같이 고정된 값을 넣어줘도 됩니다.
- 이제 추가 토큰 두 가지를 더 지원합니다.
- 이 필드는 기존의 EffectArray 필드와 동일하지만, 다음과 같은 차이점이 있습니다.
- CUpgrade의 기존 필드는 그대로 유지되며 기능도 똑같으므로 기존 업그레이드도 모두 정상 작동합니다. 이전 양식을 사용한 업그레이드 제작도 가능하지만 권장하지 않습니다.
- 모든 유닛 업그레이드 지원 (All Unit Upgrade Support)
- 업그레이드 중 (특정 유형의) '모든 유닛'에 적용되는 업그레이드도 있는 만큼, CUpgrade는 이제 플래그를 사용하여 모든 데이터 컬렉션 유닛을 열거할 수 있습니다.
- 두 가지 필터 필드인 EnumExcludedUserFlags와 EnumRequiredUserFlags 또한 CUpgrade에 추가되었으며, 업그레이드가 플래그를 사용하여 모든 데이터 컬렉션 유닛을 필터링할 수 있게 해줍니다.
- 신규 업그레이드 연산: AddBaseMultiply 및 SubtractBaseMultiply
- 해당 연산은 현재값이 아닌 기본값에 기반하여 대상 필드를 수정합니다. 이 방법은 대체로 곱하기 연산보다 유용합니다. 예를 들어 '유닛 생명력 10% 증가' 업그레이드 100레벨을 만들었다면, 레벨이 오를 때마다 이전 레벨의 생명력에 곱하는 것이 아니라 고정된 숫자만큼 증가하는 것이 원래 의도한 효과일 것입니다. 또한 Multiply는 실행 취소가 불가능하지만, AddBaseMultiply 및 SubtractBaseMultiply는 언제든 실행 취소를 통한 기술 다운그레이드가 가능합니다.
- 이제 업그레이드를 사용하여 플레이어 유닛을 활성화 또는 비활성화할 수 있습니다.
- 신규 CWeapon 필드: Rate Multiplier
- 기본값은 1입니다.
- 게임이 무기나 CP 효과에 대한 주기를 구하려고 할 때 해당 배수를 계산에 포함합니다.
- 이 변경 사항을 통해 무기 사용 주기를 직접 변경할 필요 없이 특정 속도 백분율만큼 무기 속도를 업그레이드하는 것이 가능해집니다.
- 연발 사격 및 치명타 공격을 포함한 구체 시스템 (Orb System plus Multishot and Critical Strike)
- 구체라는 공격 변경자는 멀티 플레이어 배틀 아레나(MOBA) 장르의 중요한 구성 요소입니다.
- 스타크래프트 II의 피해 응답 시스템으로 구체를 생성할 수는 있지만 피해 응답과 공격 변경자는 실제로 매우 다릅니다.
- 기존의 스타크래프트 II의 '구체' 능력 대부분은 무기 자체에 포함된 기능으로, 임의의 무기에 쉬운 추가 및 제거가 불가능하며 구체의 전통적인 정의와도 맞지 않습니다. 그러므로 구체 아이템을 생성하고자 하는 경우 게임 내 모든 영웅 무기에 구체 아이템 효과를 추가하는 방식은 비현실적이겠죠.
- 이번에 업데이트된 구체 시스템은 일반적인 MOBA 게임 구체 시스템의 확장 개념이며 연발 사격 및 치명타 공격도 공식적으로 지원합니다.
- 완전 구체 시스템에는 다음과 같은 기능이 요구됩니다.
- 구체 시스템 효과를 공격마다 무기 시스템에 적용할 수 있어야 합니다.
- 투사체 미사일을 수정할 수 있어야 합니다.
- 무기가 대상과 충돌했을 때 특별 효과(화염, 얼음, 동작 적용 등)를 추가할 수 있어야 합니다. 대상과 충돌하기 전과 후 모두 효과 적용이 가능해야 합니다.
- 예를 들자면 Dark Arrow 능력은 구체가 대상에게 약화 효과를 적용할 것을 요구하며, 약화 효과는 대상이 처치되면 특정 효과를 발동하게 됩니다(예: 해골 생성). 구체 시스템이 충돌 후에만 효과 적용을 할 수 있다면, 유닛은 공격에 의해 처치되어 버리고 해골이 생성되지 않을 것입니다.
- 또 다른 예시로는 구체 능력인 Fragmentation Shards이 있습니다. 해당 능력은 주 피해량에 비례하여 추가 범위 피해를 주는데, 주 피해량은 무작위로 정해지므로 추가 범위 피해 효과는 충격이 일어나고 주 피해량이 정해진 이후에 일어나야 합니다.
- 구체의 공격 변경자는 공격 효과가 시작되기 전에 결정되어 있어야 합니다. 무기가 휘둘러지는 시점에서는 이미 결정된 상태여야 하죠. 이를 통해 유닛은 치명타 공격과 같은 특별 공격 애니메이션을 재생할 수 있게 됩니다.
- 구체는 공격력 보너스를 일정하게 적용할 수 있어야 합니다.
- 구체는 효과 유효성 검사 기능을 제공해야 합니다. 예를 들어, 강타와 치명타 공격 능력은 아군 유닛을 대상으로 발동되지 않아야 합니다.
- 신규 효과 플래그: MainImpact
- 켜면 무기 효과 계통도 내에 특정 효과를 주 충격 효과로 표시하여, 공격 변경자가 변경자 효과 시전 타이밍을 알 수 있도록 합니다.
- 신규 동작 유형: CBehaviorAttackModifier
- 적용되면 변경자는 무기가 시작될 때 발동됩니다. 공격 효과 계통도 전체에 등록됩니다.
- Chance 필드는 공격마다 계산되는 공격 변경자의 발동 확률을 결정합니다.
- 한 유닛에 여러 변경자가 추가되었습니다. Unique Id 필드를 통해 모든 변경자가 동시에 사용 가능한지 판별할 수 있습니다. 워크래프트 III에서는 영웅이 여러 구체를 장착해도 한 가지 구체 효과만 발동될 수 있습니다. 하지만 여러 구체가 동시에 발동되는 기능을 원하시는 분도 있을 겁니다.
- Stack Max 필드는 공격력 보너스 중첩 가능 횟수를 결정합니다.
- Damage Bonus 필드는 고정 보너스나 변화하는 보너스가 존재하는지 결정합니다. 해당 필드는 축적기도 지원합니다.
- 유효성 검사기 필드는 변경자가 특정 공격 대상에 대한 유효성이 있는지 결정합니다. 예를 들어, 아군 유닛을 공격할 때 치명타 공격이 발동되면 안 되겠죠.
- PreImpactEffect 필드는 충격이 일어나기 전에 효과를 발동시킵니다.
- DamageInheritEffect 필드는 충격이 일어난 후 효과를 발동시켜 충격 피해를 다음 효과 계통도에 상속시킵니다. 이러한 효과를 통해 충격 피해에 기반한 연쇄 번개 효과를 생성하거나 범위 피해를 입힐 수 있습니다.
- 공격이 빗나갈 수 있는지 결정할 수 있습니다. 빗나감/튕겨냄/차단 시스템 섹션을 참고하세요.
- Hallucination Visual Only 플래그를 이용하여 시전자가 환상 유닛일 경우 공격 변경자가 구체 효과를 적용할지 결정할 수 있게 됩니다. 보통은 시전자가 환상 유닛이라면 범위 피해를 주거나 해골을 부활시키는 행동은 원치 않을 것입니다. 하지만 그러한 설정이 가능하길 바라는 분도 있겠지요.
- 이 플래그를 이용하면 공격 변경자가 공격 계통도에 기존과 같이 적용되어, 시전자 유닛도 가짜 치명타 공격 애니메이션을 시전하고 변경된 투사체 미사일을 발사할 수도 있습니다. 하지만 이러한 공격은 충돌 시 실제 구체 효과를 적용하지는 않습니다.
- MultishotEffect 및 MultishotSearchPattern 필드는 Chance가 True 값을 반환하고 모든 유효성 검사기를 통과될 경우 사용자가 검색 패턴 내 모든 대상에게 연발 사격 효과를 발사할 수 있게 해줍니다. MultishotEffect 필드가 설정되지 않았다면 공격의 기존 무기 효과가 발동됩니다.
- 연발 사격 대상이 충격 효과를 받을 수 있는지도 결정할 수 있습니다.
- 인덱스별로 무기를 활성화하여 구체 아이템을 지닌 근접 영웅이 숨겨진 무기로 공중 공격을 가능하게 해줄 수 있습니다.
- 공격에 적용될 시 변경자는 WeaponStart 이벤트의 WeaponModifier 행위자 조건을 채워서 행위자 시스템이 현재 이용 중인 공격 변경자에게 맞는 공격 애니메이션을 재생할 수 있게 만들어 줍니다.
- 'IsCritical' 플래그를 가지고 있습니다. 설정하면 공격을 '치명타'로 설정하여 치명타 행위자 메시지를 발동시키고, 이는 SetText와 SetTextlocalized 메시지에 피해량을 입력하여 치명타 알림 텍스트를 만드는 용도로 사용할 수 있습니다.
- 신규 능력 유형: CAbilAttackModifier
- CAbilAttackModifier는 구체 능력 대부분의 경우를 처리할 수 있지만, 달의 여사제의 이글거리는 화살과 같은 몇몇 능력의 경우, 구체 주문은 여전히 쉘이 있어야 자동 시전을 활성화/비활성화 할 수 있습니다.
- CAbilAttackModifier는 CBehaviorAttackModifier의 쉘이며 구체에 자동 시전/수동 시전 쉘을 추가할 수 있습니다.
- 구체 능력이 시전될 때마다 자원 또는 생존력 비용이 발생하도록 변경자에 비용을 설정할 수 있습니다.
- 영웅의 습득 능력으로 인해 올라갈 수 있는 레벨 속성이 존재합니다.
- 신규 행위자 유형: CActorActionOverride
- CActorAction의 미사일 그래픽, 충격 그래픽, 피해 그래픽을 덮어쓰는 데 사용됩니다.
- Damage Model, Impact Model, Missile Model 필드를 이용해 덮어쓰기용 모델 링크를 설정할 수 있습니다.
- CActorAction이 초기화되면 ActionInitModifier 이벤트를 시작합니다.
- CActorActionOverride는 이 이벤트를 포착하여 CActorAction의 범위 내에 자신을 생성할 수 있습니다. 이후 ActionOverrideApplyTo를 사용하여 CActorAction에 자신을 적용합니다.
- CActorAction는 CActorActionOverride의 데이터를 가져와 공격 모델을 덮어씁니다.
- 동적 능력 지원 (Dynamic Ability Support)
- 트리거를 사용하여 유닛에서 능력을 추가 또는 제거할 수 있게 됩니다.
- 능력 교체 (Ability Swap)
- 신규 함수: UnitAbilityChangeLink()
- 이 함수를 사용하면 유닛의 기존 능력을 다른 유닛에 교체하고 기존의 충전 횟수, 재사용 대기시간, 레벨 상태를 유지할 수 있습니다.
- 카탈로그 교체와 다른 점은 능력 인스턴스별로 적용된다는 것입니다.
- 추가로 해당 기능의 데이터 버전을 제공하는 동력 사용자 유형 동작에 신규 능력 교체 필드를 추가했습니다.
- 기존 능력과 같은 CAbil 클래스를 가진 능력으로만 교체 가능합니다. 예를 들어 대상 능력은 대상 능력으로만 교체가 가능합니다.
- 능력 교체의 데이터 버전은 영웅들의 학습 가능한 능력에도 영향을 줍니다.
- 신규 함수: UnitAbilityChangeLink()
- 트리거 GUI 내 구조물 참조 전달 (Passing Struct Reference in Trigger GUI)
- 트리거 함수와 행동은 이제 레코드 유형을 매개 변수로 정의할 수 있습니다.
- 이제 레코드 변수는 매개 변수로서 함수와 행동으로 참조 전달될 수 있습니다.
- 레코드 매개 변수는 읽기와 수정을 지원합니다. 수정 사항은 함수 범위 밖에 있는 레코드 변수에 적용됩니다.
- 신규 트리거 API: 데이터 테이블 인스턴스 (New Trigger APIs: Data Table Instance)
- 데이터 테이블과 똑같이 작동하나 추가로 다중 인스턴스 생성이 가능하며, 값 개수를 셀 수 있으며, 데이터 테이블 간 값을 복사할 수 있습니다.
- 기존의 데이터 테이블은 하나의 전역 데이터 테이블입니다. 이제 인스턴스 버전을 추가함으로써 실행 시간 데이터를 더 잘 정리할 수 있게 되었습니다.
- 또한 트리거 편집기에 GUI 버전이 추가되었습니다.
- 아이템/능력 툴팁을 유닛/아이템별로 덮어쓰기 (Overriding Item/Ability Tooltips on a Unit/Item Basis)
- 신규 네이티브: UnitSetInfoButtonTooltip, UnitClearInfoButtonTooltip
- 해당 네이티브를 사용하여 명령 버튼의 툴팁을 덮어쓸 수 있습니다. 이로써 유닛의 아이템이나 능력 툴팁을 원하는 대로 지정할 수 있습니다.
- 또한 트리거 편집기에 GUI 버전이 추가되었습니다.
- 유닛 - 유닛 정보 버튼 설정 - 능력 툴팁
- 유닛 - 유닛 정보 버튼 설정 - 버튼 툴팁
- 유닛 - 유닛 정보 버튼 설정 - 아이템 툴팁
- 유닛 - 유닛 정보 버튼 다시 설정 - 능력 툴팁
- 유닛 - 유닛 정보 버튼 다시 설정 - 버튼 툴팁
- 유닛 - 유닛 정보 버튼 다시 설정 - 아이템 툴팁
- 다른 유닛의 명령 패널이 표시되도록 명령 패널을 덮어썼어도 작동합니다.
- 발사기술 지원 (Skillshot Support)
- 스타크래프트 II에 발사기술 지원이 추가되었습니다!
- 신규 미사일 발사 효과 플래그 필드: SearchFlags
- 신규 미사일 발사 효과 검색 플래그: DynamicSearchArea
- 해당 플래그를 통해 발사기술 검색이 가능합니다. 이 플래그가 없으면 일반 미사일입니다.
- 신규 미사일 발사 효과 검색 플래그: ArriveOnSearchHit
- 미사일이 '대상을 타격하면 나타나는 발사기술'인지 '타격 시 대상을 관통하는 발사기술'인지 설정합니다. 아래 내용 참고 바랍니다.
- 신규 미사일 발사 효과 검색 플래그: DynamicSearchArea
- 신규 미사일 발사 효과 필드:
- SearchHitArriveEffect
- ArriveOnSearchHit이 켜져 있을 때만 작동합니다. 해당 효과는 미사일이 대상을 타격하여 폭발할 때 발동됩니다.
- 참고: 미사일 대상 지정 지점이 아닌 미사일이 파괴되기 전 마지막 검색 지점에서 효과가 실행됩니다. 이 기능은 완료 효과와 흡사합니다.
- SearchEffect
- 미사일은 해당 효과를 게임 반복마다 실행하고 미사일의 현재 속도에 따라 검색 영역의 높이 매개 변수를 덮어씁니다. 간단히 말해 각 검색 사이에 틈을 남기지 않습니다.
- 참고: TVE 치트 사용 시 덮어쓰기 검색 효과에 의한 올바른 높이가 아닌 부정확한 기본 높이가 표시됩니다.
- SearchMaxCount
- 개별 검색의 최대 검색 횟수가 아닌 미사일의 이동 시간 전체를 통틀어 그 시간 내에 실행되는 최대 검색 횟수를 나타냅니다. 미사일은 SearchMaxCount개의 대상을 발견한 후 검색을 중단합니다.
- SearchMaxCount개에 도달했지만 ArriveOnSearchHit이 설정되어 있지 않은 경우, 미사일은 목적지까지 계속 이동하지만 발사기술 검색은 더 이상 실행하지 않습니다.
- SearchMaxCount개에 도달했고 ArriveOnSearchHit도 설정되어 있으면, 미사일은 폭발하며 마지막 검색 지점에서 SearchHitArriveEffect를 실행합니다. 미사일은 대상 지점에 아직 도달하지 않았을 것이므로 이것은 미사일의 대상이 아니라는 것을 유의하시기 바랍니다.
- SearchMaxCount가 0으로 설정되어 있고 ArriveOnSearchHit가 설정되어 있는 경우 미사일은 검색 최대 횟수를 제한하지 않게 됩니다. 한 번이라도 검색 효과가 대상을 발견할 경우 미사일은 폭발하고 마지막 검색 지점에서 SearchHitArriveEffect를 실행합니다.
- SearchHitArriveEffect
- 향상된 영웅 시스템 (Improved Hero System)
- 신규 CUnit 클래스: CUnitHero
- 다섯 가지 신규 필드(CUnit과 비교):
- MainAttribute:
- 단일 동작 링크로써 유닛 생성/변태 시 자동 적용/적용 해제됩니다.
- 일반 동작 필드와 아무런 차이가 없습니다. 다만, 단일 필드로 사용하면 카탈로그 함수를 통해 읽어들여 영웅의 주 특성을 결정하기가 수월해집니다.
- MainAttributeDamageBonus
- 영웅 유닛이 MainAttribute 점수마다 받는 공격력 보너스 수치를 결정하는 필드입니다.
- AttributePointsInfoArray:
- 영웅의 현재 레벨에 따라 영웅의 시작 특성 점수와 성장 특성 점수를 설정합니다. 이렇게 하면 특성 점수만 설정되며, 영웅이 이미 특성 동작을 보유하고 있지 않으면 특성 동작을 적용하지 않습니다.
- LearnInfoArray:
- CAbilLearn_LearnInfo와 같은 구조를 사용합니다. 인덱스 중 하나가 능력 링크를 설정할 경우, 대응하는 영웅의 능력 습득 능력 정보를 덮어씁니다. 그 결과 영웅별로 별도의 습득 능력을 만들 필요가 없어졌습니다.
- '기본 버튼 생성' 플래그가 설정되면 Learn Info 명령 버튼도 자동 생성될 수 있습니다.
- TierRequirements
- CAbilTrain 능력으로 현재 영웅 유닛을 훈련할 시, 현재 플레이어가 사용 중인 유닛에 기술 별칭이 두 개 이상 존재한다면 CAbilTrain 기술 요구 사항을 덮어쓰는 필드입니다.
- MainAttribute:
- 신규 CAbilityRevive 플래그: 경보 아이콘 덮어쓰기
- 경보 아이콘 덮어쓰기가 켜져있을 때 플레이어가 CAbilRevive를 사용하여 영웅을 부활시킬 경우, 경보 아이콘은 영웅 유닛의 아이콘이 아닌 CAbilRevive의 아이콘으로 설정됩니다.
- 신규 네이티브 추가:
- TechTreeSetProduceCap
- TechTreeGetProduceCap
- 이 함수는 트리거를 사용해 불러올 수 있으며 유닛, 업그레이드, 능력, 동작, 효과에 따라 기술 제한을 설정합니다.
- 영웅의 훈련 제한을 사용자 지정하는 데 사용할 수도 있습니다.
- 기본 특성 점수 및 보너스 특성 점수
- CHeroUnit의 특성 동작이 두 가지 점수 값, 즉 기본 점수 및 보너스 점수를 가지게 됩니다.
- 영웅의 초기 특성 점수 및 성장 특성 점수(AttributePointsInfoArray에서 구성)는 기본값으로 간주하며, 동작 보너스 같은 기타 점수 변화가 기본값에 포함됩니다.
- 유닛 정보 패널에서 기본 특성 점수는 흰색 숫자로 표시되고 보너스 특성 점수는 (+X) 형태의 녹색 숫자로 표시됩니다.
- 보너스 특성 점수로 인해 추가된 점수는 이제 (+X) 형태의 녹색 숫자로 표시되지 않습니다. 대신 기본 공격력/방어력/무기 속도 필드에 추가됩니다.
- 강화 효과나 아이템으로 인해 추가된 특성은 여전히 (+X) 형태의 녹색 숫자로 표시됩니다.
- 신규 CEffectApplyBehavior 플래그:
- SetAttributePoints: 이 플래그가 설정되어 있으면 특성 동작에 대한 특성 점수가 설정됩니다.
- SetAttributeBasePoints: 이 플래그가 설정되어 있으면 보너스 점수 대신 기본 점수를 수정합니다.
- 신규 CabilTrain 필드 추가: IgnoreUnitCostRequirements
- 설정하면 기술 요구 사항이 충족되면 훈련 능력은 유닛 비용을 무시하게 됩니다.
- '첫 영웅은 무료'처럼 특별한 게임 시스템을 구현하는 데 사용할 수 있습니다.
- 능력 습득 하위 메뉴 개선
- 신규 능력 습득 플래그: ClearSubmenuOnPointsSpent
- 설정 시, 이 능력을 사용하는 유닛은 기술 점수를 모두 소비하고 나면 자동으로 하위 메뉴 명령 창을 닫습니다.
- 신규 능력 습득 플래그: HideSubmenuOnLearnedAll
- 설정 시, 이 능력을 사용하는 유닛은 습득할 수 있는 모든 능력을 습득하고 나면 능력 습득 하위 메뉴 버튼을 숨깁니다.
- 점수를 모두 소비한 경우, 유닛이 이미 요구 레벨을 충족했음에도 능력 습득 버튼이 붉은 글씨로 '필요한 레벨:'을 나타내던 문제를 수정했습니다.
- 간혹 플레이어가 Shift 키를 이용해 능력 습득의 레벨 제한을 우회할 수 있던 문제를 수정했습니다.
- 신규 능력 습득 플래그: ClearSubmenuOnPointsSpent
- 신규 요구 유닛 수 상태 추가: QueuedOrBetterOrRevivable
- 기술 유닛을 계산할 때, 부활 중이거나 부활 가능한 영웅을 포함합니다.
- 영웅 훈련 제한을 구현할 때 매우 유용합니다. 예를 들어 '영웅을 3명 이상 훈련할 수 없다'는 제한을 만들 때, 살아 있는 영웅만 계산하기를 바라지는 않을 테니까요.
- 영웅 레벨 및 경험치 식
- 신규 CBehaviorVeterancy 필드: 레벨
- 영웅의 최대 레벨을 설정합니다.
- 이 필드는 업그레이드할 수 있으며, 실행 시간에 최대 능력 레벨을 변경할 수 있습니다.
- 이 필드의 기본값은 0으로, 레벨 시스템은 기존 동작 방식으로 대체됩니다.
- 신규 CBehaviorVeterancy 필드:
- MinVeterancyXPBonusPerLevel
- MinVeterancyXPPreviousValueFactor
- MinVeterancyXPLevelFactor
- VeterancyLevelArray의 크기가 레벨 필드 내의 수보다 작다면, 이런 요소들에 기반해 추가 레벨의 '최소 경험치'를 자동으로 생성합니다.
- 사용된 식은 다음과 같으며, X는 레벨이고 F(X)는 해당 레벨의 최소 경험치입니다.
- F(X) = F(X-1) * MinVeterancyXPPreviousValueFactor + MinVeterancyXPLevelFactor * X + MinVeterancyXPBonusPerLevel
- 이 식은 레벨 X가 VeterancyLevelArray의 크기보다 클 때만 사용됩니다. 그렇지 않다면 VeterancyLevelArray 테이블에서 바로 최소 경험치를 가져옵니다.
- 신규 CBehaviorVeterancy 필드: 레벨
- 대상 유형에 따른 경험치 획득 비율
- 신규 CBehaviorVeterancy 필드: XPReceiveFraction
- 이 필드는 구조물 배열로서, 사용자는 대상 필터와 누적 가능한 비율 값을 각 배열에 지정할 수 있습니다.
- 영웅이 경험치를 획득할 때마다 대상 필터와 희생자 유닛을 비교하고, 희생자가 필터와 일치할 경우 경험치 비율을 적용합니다.
- 축적기와 함께 사용하면 '소환된 유닛으로부터 경험치를 절반만 획득' 또는 '영웅이 점막에서 획득하는 경험치가 영웅의 현재 레벨에 따라 감소'와 같이 편리하게 경험치 식을 만들 수 있습니다.
- 신규 CBehaviorVeterancy 필드: XPReceiveFraction
- 신규 유효성 검사기 추가: CValidatorUnitCompareAbilSkillPoint
- 유닛이 사용한 기술 점수, 사용하지 않은 기술 점수, 추가 기술 점수, 총 기술 점수를 확인합니다.
- 아이템 및 가방 시스템 개선 (Item and Inventory System Improvements)
- RPG에서 매우 중요한 아이템 시스템을 편집기에서 많은 부분 지원할 수 있게 되어 기쁩니다.
- 아이템 건설 지원 (Item Build Support)
- 유닛의 가방에 있는 아이템을 사용해 구조물을 건설할 수 있게 되었습니다.
- 이 아이템 능력은 영웅이 집중을 유지해야 하도록 설정할 수 있습니다. 또는 프로토스 구조물처럼 건물을 '소환'할 수 있습니다.
- 이 유형의 아이템은 확장 기지를 건설하는 데 유용합니다. 영웅은 소형 마을 회관을 구매하여 새로운 확장 기지에 배치할 수 있습니다. 그러면 건설은 자동으로 완료됩니다.
- 가방을 다른 플레이어에게 공개 (Show Inventory for Other Players)
- 신규 CInventoryPanel 속성: ShowForAllPlayers
- 이 속성의 값이 True인 경우 플레이어는 다른 플레이어의 유닛을 선택해 가방을 볼 수 있게 됩니다. 하지만 가방의 아이템을 사용할 수는 없습니다.
- 신규 CInventoryPanelInventory 속성: UseAlertIcon
- 이 옵션을 켜면 가방 안의 아이템에 경보 버전 이름, 아이콘, 툴팁이 표시됩니다. 이 옵션을 끄면 보통 아이콘이 표시됩니다.
- 아이템 상점에 있을 때와 가방에 있을 때 설명이 달라지는 아이템을 제작하는 데 유용합니다.
- 기본적으로 꺼져 있습니다.
- 신규 CInventoryPanel 속성: ShowForAllPlayers
- 가방 속 아이템에 시전하기 (Cast On Items in Inventory)
- CCommandButton에 ButtonOtherUnit 속성이 추가됩니다. 속성 결합을 사용해 대상 프레임이나 기타 프레임에 아이템 유닛(운반자 말고 아이템 자체만 해당)을 결합할 수 있습니다.
- 이 기능을 사용하면 전송이나 업그레이드를 위해 가방 안에 있는 아이템에 능력을 시전할 수 있습니다.
- 이 기능을 사용하면 마을 차원문을 두 번 클릭하여 가장 레벨이 높은 마을 회관을 향해 자동으로 순간이동할 수 있습니다.
- 가방 패널 전역 접근 (Globally Accessible Inventory Panel)
- CInventoryPanel의 가방 유닛 속성을 무시하고 현재 선택되지 않은 유닛의 가방을 표시할 수 있게 됩니다.
- 또한 트리거를 이용하여 새로운 가방 대화 상자 단축키를 만들 수 있습니다. 공허의 유산에서 도입된 명령 창 대화 상자 단축키 같은 연산자를 지원합니다.
- 'SetDialogItemUnit 사용'을 선택하여 유닛을 설정할 수 있습니다. 이를 무효로 설정하면 유닛이 선택된 리더 유닛으로 다시 설정됩니다.
- 구매자 가방 보기 (Show Buyer’s Inventory)
- 기존 스타크래프트 II는 워크래프트 III 형식의 중립 아이템 상점 지원이 미비했습니다. 이번 패치 이전에는 사용자가 상점 유닛을 클릭했을 때 구매자 유닛의 가방을 볼 수 없었습니다.
- 신규 CInventoryPanel 프레임 부울 속성: ShowAgentInventory
- 이 값이 설정되어 있으며 가방 패널이 특정 유닛의 가방을 표시하도록 덮어 쓰이지 않았을 때만 중립 상점의 가방 패널에 '구매자 가방'이 나타납니다.
- CUnit의 충전 데이터 (Charge Data on CUnit)
- 아이템과 유닛을 판매할 때 유닛과 아이템의 데이터가 각각의 기본 재고 정보(상점의 시작 대기시간, 상점의 최대 충전량 등)를 설정할 수 있도록 유닛과 아이템에 충전 데이터를 추가하였습니다.
- CAbilTrain 능력에 플래그를 설정하면 기본 설정을 무시하고 능력 자체의 사용자 지정 설정을 사용할 수 있습니다.
- 이 플래그가 해제되어 있고 능력에 자체적인 데이터가 있을 경우, 두 인스턴스의 충전 데이터가 합계됩니다.
- '진짜' 강화 아이템 (“Real” Power-up Items)
- 신규 아이템 유형: CItemAbilPowerUp
- 지금까지는 강화 아이템이 유닛과 흡사했으나 이제 진짜 아이템으로 구현됩니다.
- CItemAbilPowerUp은 CItemAbil로부터 상속됩니다. CItemAbilPowerUp은 주웠을 때 자동으로 사용되며, 유닛의 가방이 이미 가득 차 있을 때도 주울 수 있다는 것이 유일한 차이점입니다.
- 가방이 있는 유닛만이 CItemAbilPowerUp을 사용할 수 있습니다. 해당 유닛에서 반드시 CanUseItem 플래그가 켜져 있어야 합니다.
- 신규 강화 아이템은 진짜 아이템이기 때문에 가방 이벤트를 따르며 전리품 시스템에서 사용할 수 있습니다.
- CItemAbilPowerUp은 시전자가 CItemAbilPowerUp의 강화 아이템 능력을 사용할 수 있는지 검사합니다. 사용할 수 없다면 오류 메시지를 출력하고, 시전자를 아이템으로 이동시키지 않습니다.
- KillAfterUse 플래그는 시전자가 강화 아이템을 사용하면 아이템이 파괴되도록 합니다.
- 가방이 있지만 CanUseItem 플래그가 없는 일반 유닛은 강화 아이템을 주워서 영웅에게 운반할 수 있습니다.
- 신규 EAbilInventoryFlag 플래그: ItemDropOnDeath
- 부활 가능 여부와 관계없이 유닛이 죽을 때 모든 아이템을 떨어뜨리도록 만듭니다. 워크래프트 III 배낭 능력이 있는 일반 유닛에게 유용합니다.
- 신규 EAbilInventoryFlag 플래그: CanUseItem
- 유닛의 아이템 사용 가능 여부를 지정합니다. 운반 가방이 있으며 아이템을 사용할 수는 없지만 운송할 수 있는 유닛을 만들 때 도움이 됩니다.
- 신규 EAbilInventoryFlag 플래그: CanApplyEquipBehavior
- 이 플래그는 유닛이 강도 +5와 같은 아이템 상태 강화 효과를 받을 수 있는지를 지정합니다. 운반 가방이 있는 유닛을 만들 때도 도움이 됩니다.
- 신규 CItemAbil 플래그: 임시
- 이 플래그가 설정되어 있으면 아이템 능력이 임시로 강제 시전됩니다. 아이템의 원래 능력이 임시 능력이 아닌 경우에도 적용됩니다.
- 아이템이 접근 중 파괴되었는데도 계속 가방에 넣으려던 문제를 수정했습니다.
- CAbilSpawn이 작동하지 않던 문제를 수정했습니다.
- 최대 되팔기 거리에서 가방의 아이템을 되팔았을 때 아이템은 사라지지만 자원은 획득할 수 없던 문제를 수정했습니다.
- 능력 행위자 이벤트에 신규 하위 이름 추가: PawnSource, PawnTarget이 추가됩니다.
- 아이템을 되팔 때 발동됩니다.
- 신규 CAbilInventory 필드: 요구 사항
- 설정 시, 기술 요구 사항이 충족될 때까지 가방 능력 사용이 불가능합니다.
- 기술 요구 사항이 충족될 때까지 가방 UI도 숨겨집니다.
- 신규 CValidatorUnitInventory 플래그: RequireEnabled
- 체크 시, 대상 가방 능력을 사용 가능하며 해당 기술 요구 사항을 충족했을 경우 유효성 검사가 e_CmdOK만을 반환합니다.
- 플레이어 사용 효과 이벤트에 대응하여, 사용자가 효과를 만드는 데 사용한 아이템이 존재한다면 그 아이템과 아이템 유형을 포착할 수 있게 해 주는 신규 트리거 API를 추가했습니다.
- 능력 아이템이 능력에서 상속받은 재사용 대기시간 링크를 무시하고 각자의 재사용 대기시간 링크를 선택할 수 있게 됩니다.
- 중립/동맹 상점 지원 (Neutral/Allied Shop Support)
- 중립/동맹 상점은 CAbilInteract 능력의 도움으로 다른 플레이어와 상호작용할 수 있는 중립/동맹 건물입니다.
- 모든 능력에 있어 기술 플레이어 필드는 시전자 추가 옵션을 가지게 됩니다.
- CAbilTrain의 기술 플레이어 필드를 시전자로 설정하면, 명령을 내린 플레이어의 기술 요구 사항을 확인합니다.
- '구매자의 기술 계통도에 따라 유닛 판매/아이템 판매' 능력을 만드는 데 유용합니다.
- 신규 CabilTrain 필드: AgentUnitValidator
- 설정 시, 시전을 위해 언제나 요원 유닛이 필요하게 되며 유닛을 훈련할 때 이 필드에서 유효성 검사기 설정을 확인합니다.
- 이 필드를 사용하면 스타크래프트 II에서 '아이템 상점' 능력을 쉽게 만들 수 있습니다.
- 아이템 상점의 경우, 일반적으로 사용자는 상점의 구매자 유닛이 가방을 보유해야 아이템을 구매할 수 있기를 원합니다.
- 이전에는 스타크래프트 II에서 지원하지 않는 기능이었으므로, 구매자 유닛에게 가방이 없더라도 아이템은 항상 생성되었을 것입니다.
- AgentUnitValidator 필드를 사용하면 '유닛이 유효한 가방을 가지고 있음' 및 '가방이 가득 차지 않았음' 같은 유효성 검사기를 추가할 수 있습니다. 그러므로 요원 유닛이 가방을 가지고 있지 않다면, 이 능력은 오류 메시지를 출력하고 시전되지 않을 것입니다.
- 신규 CAbilTrain 플래그: ChargeCasterPlayer
- 보통 중립 상점 능력은 '동맹 소비' 플래그를 통해 자원의 소비를 공유할 구매자와 판매자 플레이어가 필요합니다. 그렇지 않은 경우 구매자는 '해당 플레이어에게 지불 불가' 오류 메시지를 보게 됩니다.
- 기본적으로 중립 플레이어는 비용을 모든 플레이어와 공유합니다. 하지만 동맹 플레이어들이 아이템이나 유닛을 구매할 수 있는 동맹 상점을 만들 때, 플레이어들이 지출을 공유하길 원하지는 않을 겁니다. 지출을 공유한다면 플레이어들이 동맹의 돈을 소비할 수 있기 때문입니다.
- 신규 플래그 ChargeCasterPlayer는 이런 문제를 해결하기 위해 설계되었습니다. 켜면 구매자와 판매자가 지출을 공유하지 않을 때도 구매 명령을 내린 플레이어가 판매된 아이템이나 유닛의 비용을 부담합니다.
- 구매자 플레이어와 지출을 공유하는 다른 플레이어가 있고 구매자 플레이어에게 비용을 지불하기에 충분한 자원이 없는 경우, 비용은 다른 플레이어가 부담합니다.
- 신규 CAbilInteract 플래그: AlwaysShowCommandCard
- 이 플래그를 켜면 상점 유닛이 모든 플레이어에게 상호작용할 수 있는 명령 창(CAbilInteract의 대상 필터 필드에 의해 결정)을 표시합니다. 상점 주변에 유효한 요원 유닛이 없는 플레이어에게도 표시합니다.
- 따라서 상점 근처에 요원 유닛이 없는 플레이어라도 상점이 무엇을 팔고 있는지 미리 볼 수 있습니다.
- 하지만 이 플레이어는 상점 유닛, 예컨대 요원 유닛이 근처에 없다면 명령 창을 사용할 수 없습니다.
- 상호작용 능력이 ValidatorArray 필드를 확인하지 않고 계속 유닛을 획득하려 하던 문제를 수정했습니다.
- 동작 유닛 추적 시스템 (Behavior Unit Tracking System)
- 신규 동작 유형: BehaviorUnitTracker
- 이 동작은 유닛 목록처럼 기능합니다. 여기에 추가된 모든 유닛을 저장할 수 있고 유효성 검사기와 최대 개수 필드가 있습니다. 목록에서 유효성 검사기 설정과 일치하지 않는 유닛이 있으면 언제든지 목록에서 제거됩니다.
- 작동하기 위해 동작 인스턴스가 필요하지 않은 전역 목록 또는 플레이어 기반 목록으로 추적기를 변환할 수 있는 플래그도 있습니다.
- 신규 축적기: CAccumulatorTrackedUnitCount
- 주어진 목록에 얼마나 많은 유닛이 있는가에 따라 축적기를 사용할 수 있습니다.
- 신규 효과: CEffectAddTrackedUnit CEffectClearTrackedUnits, CEffectRemoveTrackedUnit
- 사용자가 목록에서 유닛을 추가/제거할 수 있습니다.
- 신규 효과: CEffectEnumTrackedUnits
- 유닛 추적 목록을 반복 실행하여 필터에 따라 각 유닛에 효과를 실행할 수 있습니다.
- 신규 유효성 검사기: CValidatorCompareTrackedUnitsCount, CValidatorIsUnitTracked
- 동작을 통해 얼마나 많은 유닛이 추적되었는지 계산하고, 유닛이 주어진 추적기 목록에 있는지 확인할 때 사용할 수 있습니다.
- 추적기 시스템은 유닛 간 '1인에서 다인' 매핑을 유지할 때 매우 유용합니다.
- 예를 들어 소환사 유닛에서 소환사가 소환한 유닛들로 추적할 수 있습니다.
- 신규 동작 유형: BehaviorUnitTracker
- 기타 동작 시스템 변경 사항 (Other Behavior System Changes)
- 동작 중첩 별칭 (Behavior Stack Alias)
- 이 기능은 동작이 동작 ID 대신 '중첩 ID'에 따라 중첩되도록 합니다.
- 예를 들어, 워크래프트 III에서는 대마법사와 기타 유닛이 서로 다른 광휘의 오라를 보유하고 있습니다. 두 강화 효과는 서로 다릅니다. 이런 유닛 두 종류를 동시에 보유한 경우, 근처에 있는 유닛이 두 가지 광휘의 오라를 모두 적용받는 것은 바람직하지 않을 것입니다. 이런 경우에는 항상 영웅 버전의 오라가 우선시됩니다.
- 신규 CBehaviorBuff 필드 2개: StackAlias(문자열) 및 StackAliasPriority(정수).
- 같은 StackAlias의 두 강화 효과가 같은 유닛에 적용된다면, 강화 효과는 최대 개수를 공유하며 더 낮은 쪽을 우선시합니다. 총 개수가 공유된 최대 개수를 초과한다면 중첩 제거가 시작되며, 가장 낮은 StackAliasPriority를 가진 강화 효과부터 제거됩니다. 그다음 가장 짧은 지속 시간을 가진 강화 효과가 제거됩니다. 총 중첩 수가 공유된 최대 중첩 수와 일치할 때까지 제거됩니다.
- 신규 행위자 이벤트: BehaviorStackAlias
- 사용자가 동작 ID 대신 동작의 StackAlias에 기반해 동작 이벤트(켬, 끔, 피해 응답 등)를 포착할 수 있습니다.
- 같은 StackAliases를 가진 동작 사이에서 행위자를 공유할 수 있습니다. 광휘의 오라 강화 효과의 모든 버전이 같은 그래픽을 공유하면 좋을 테니까요.
- 신규 CEffectRemoveBehavior 필드: StackAlias
- StackAlias에 기반해 강화 효과를 제거할 수 있습니다.
- 신규 유효성 검사기: CValidatorUnitBehaviorStackAlias
- 사용자가 StackAlias에 의해 동작을 계산할 수 있습니다. 주어진 StackAlias가 있는 유닛의 모든 동작을 계산합니다. 사용 가능한 동작만을 계산하는 옵션도 있습니다.
- 행위자 피해 응답 알림 텍스트 지원 (Actor Damage Response Floating Text Support)
- CActorMsgBehavior가 DamageHandled 하위 이름을 가진 이벤트를 발동했을 때, 이벤트 이후 SetTextLocalized와 SetText 메시지를 사용하면 수정된 피해량에 따라 자동으로 텍스트를 설정하게 됩니다.
- 피해는 대상 텍스트의 '%AMOUNT%' 토큰을 대체합니다.
- 피해 응답에서 피해 알림 텍스트를 만드는 데 유용합니다.
- 동작 켬/끔 행위자 이벤트 지원 개선 (Better support for Behavior On/Off Actor Events)
- 동작 켬/끔 이벤트가 가장 최근에 적용되었거나 제거된 중첩에 대해 효과 매개 변수를 설정하게 됩니다.
- 동작 행위자를 더욱 정교하게 구성하는 데 유용합니다. 기존에는 사용자가 동작 켬/끔 이벤트에서 동작의 시전자를 참조할 수 없었습니다.
- 신규 동작 상태: 불사 (Cannot Die)
- 이 동작을 제거하지 않는 한 유닛을 '불사'로 지정합니다.
- 피해 응답을 사용해도 비슷한 효과를 얻을 수 있지만, 소멸 응답은 피해에 의한 소멸만 방지할 수 있습니다. 이 동작 상태는 어떤 이유로 인한 소멸이든 방지합니다. 예: 생명력을 0으로 설정
- 트리거 기반 소멸 방지 시스템을 대체할 간단한 수단입니다.
- 신규 동작 상태: 처치 승수 억제 (Suppress Kill Credit)
- 유닛이 자신을 처치한 플레이어에게 처치 승수나 처치 자원을 내놓는 것을 방지합니다.
- 환상 유닛을 만드는 데 유용합니다.
- 신규 CBehaviorBuff 필드: DeathType
- 이 필드를 통해 유닛의 DeathType을 덮어쓰고 처치 피해 효과 소멸 유형을 무시합니다.
- '제거' 소멸 유형은 이 방식으로 덮어쓸 수 없습니다.
- 기본값은 '알 수 없음'이며, '덮어쓰지 않음'을 뜻합니다.
- 신규 소멸 유형: 환생 (Reincarnation)
- 유닛이 소멸할 때 전리품과 아이템을 떨어뜨리지 않도록 합니다.
- CValidatorUnitCompareBehaviorCount 유효성 검사기와 그 효과인 CEffectRemoveBehavior, CEffectTransferBehavior가 다음의 상세 설정 필드를 공유하게 됩니다.
- BehaviorCategories, BehaviorClass, BehaviorAlignment, ExcludeOriginPlayer, ExcludeCasterUnit, RequireOriginPlayer, RequireCasterUnit
- 기존에 이런 유효성 검사기/효과는 오직 CEffectBehavior 필드만을 가지고 있었으며, 신규 추가 필드들은 CEffectBehavior 전용이었습니다.
- 이러한 추가 사항으로 인해 사용자는 동작을 계산, 제거 및 전송할 때 더욱 강력하게 제어할 수 있습니다.
- 예를 들어 대상 유닛 시전자 플레이어 등이 추가한 동작 중첩을 제거할 수 있습니다.
- 적 유닛에게 받은 강화 효과만 제거하는 '지능형 제거'를 구현하는 데도 유용합니다.
- 신규 CValidatorUnitCompareBehaviorCount, CEffectRemoveBehavior, CEffectTransferBehavior 필드: 모두 일치
- 효과/유효성 검사기를 구성 필드 중 하나라도 충족되면 실행할지, 모든 구성 필드가 충족되어야 실행할지 결정합니다.
- 동작 중첩 별칭 (Behavior Stack Alias)
- 시체 처리 개선 (Better Corpse Support)
- 신규 CEffectModifyUnit_ModifyFlags 플래그: 제거 (Remove)
- 이 플래그는 게임에서 유닛을 직접 제거하고, 유닛 행위자의 모든 범위를 파괴합니다.
- CEffectDamage의 '제거' 효과를 이용해 시체를 제거할 수 없었기 때문에 이 플래그를 추가하였습니다.
- 신규 유닛 필터: 부패 (Decaying)
- 부패한 유닛이란 현재 지상에 있으며 죽은 지 얼마 정도 된 유닛을 뜻합니다. 이미 죽었으나 아직 지상으로 떨어지는 중이며 시체를 생성 중인 유닛과는 다릅니다. 엄밀하게 말하면 소멸 시간이 활성화되었고 부활 지연은 끝났을 때 성립합니다.
- 이 필터의 목적은 최근에 죽었으며 아직 시체를 생성하고 있는 유닛에 시체를 대상으로 하는 능력이 적용되지 않게 하는 것입니다.
- 유닛 소멸 시간이 -1로 설정되어 있다면 부패 상태를 건너뜁니다. 예를 들어 워크래프트 III의 영웅은 절대 부패할 수 없습니다.
- 신규 유닛 필터: 부활 가능 (Raiseable)
- CEffectModifyUnit이 시체가 부활 불가능한지 설정할 수 있게 됩니다.
- 시체가 이미 사용되었는지 여부를 지정할 수 있게 됩니다.
- 예를 들어 시체가 여전히 존재하지만 구울이 그 시체를 먹고 있는 경우, 그 시체가 부활 가능해지거나 언데드로 부활하기를 원하지는 않을 겁니다. 이런 경우 제작자는 부활 가능한 시체만 수용하고 먹히는 중인 시체는 부활 불가능으로 설정할 수 있습니다.
- 신규 플래그: 시체 허용 (Allow Corpse)
- 이 플래그를 켜면 수송 능력으로 화물에 시체를 실을 수 있습니다.
- 신규 CEffectModifyUnit_ModifyFlags 플래그: 제거 (Remove)
- 공격 유형, 피해 유형, 장갑 유형 시스템 (Attack Type, Damage Type and Armor Type System)
- 신규 CWeapon 필드: 공격 유형 (Attack Type)
- 게임 데이터 내에서 각 장갑 유형에 대한 각 공격 유형의 피해 배수를 변경할 수 있습니다.
- 공격 유형은 전체 무기 계통도에서 모든 피해 효과에 영향을 미칩니다. 따라서 피해 요소를 변경하기 위해 효과 계통도에 입력할 전체 효과 값을 고려하는 대신 무기 수준에서 피해 배수를 수정할 수 있게 되었습니다.
- 신규 CUnit 필드: 장갑 유형 (Armor Type)
- 장갑 유형은 유닛을 공격한 무기의 피해 배수를 결정합니다.
- 신규 유효성 검사기: CValidatorUnitArmor
- 사용자가 유닛의 장갑 유형을 확인할 수 있습니다.
- 신규 CEffectDamage 필드: 피해 유형 (Damage Type)
- 게임 데이터에서 피해 유형의 대상 필터를 변경할 수 있습니다.
- 피해 유형에 대상 필터를 사용하면 게임 내 모든 피해와 범위 피해 효과를 구성할 수 있습니다. 특정 피해 효과가 특정 대상에 피해를 줄 수 있는지도 결정합니다.
- 예를 들어 모든 피해 유형에서 '동맹' 대상을 필터링하면 모든 무기가 동맹에게 방사 피해를 주지 않게 됩니다. 협동전 모드는 여러 가지 다른 모드 위에 구축해야 하는데, 다른 모드에 포함된 범위 무기와 주문은 다양한 아군 공격 효과를 가지고 있기 때문에 이 기능은 특히 유용합니다.
- 신규 CWeapon 필드: 공격 유형 (Attack Type)
- 효과 빗나감 확률, 막기, 튕겨냄 (Effect Miss Chance, Blocking, and Deflection)
- 동작 피해 응답 구조가 단순한 피해 응답 사례보다 더욱 확장된 범위를 다루게 되었습니다.
- 빗나감 확률 (Miss Chance)
- 신규 CWeapon 플래그: NeverMiss
- 기본적으로 무기는 기존의 동작을 유지합니다.
- 공격 변경자는 NeverMiss 속성을 무기 효과 계통도에 추가할 수 있습니다.
- 무기 효과 계통도에서 어떤 무기가 공격 시 빗나갈 수 있다고 나왔다면, 빗나감 확률을 공격자와 방어자 양쪽에서 확인하게 됩니다. 그리고 유효성 검사기와 응답 구조에 설정된 확률에 기반해 효과가 빗나갈지를 결정합니다.
- 더 높은 언덕 레벨에 있는 대상을 공격하는 지상 유닛에게는 보너스 빗나감 확률이 있고, 게임 데이터에서 수정할 수 있습니다.
- 무기의 효과 계통도가 '빗나감'으로 지정되었다면, 그 무기는 충격 피해를 주지 않으며 충격의 구체 효과도 주지 않습니다.
- 무기가 빗나갈 경우 '빗나감'을 하위 이름으로 한 행위자 무기 이벤트를 전송합니다. 이 방식으로 '빗나감!' 알림 텍스트를 유닛 위에 생성하거나 회피 효과를 나타내기 위해 이 이벤트를 포착할지 여부를 결정할 수 있습니다.
- 신규 CWeapon 플래그: NeverMiss
- 막기 확률 (Block Chance)
- 신규 CEffect 필드: CanBeBlocked
- 효과를 막을 수 있는지를 결정합니다. 기본적으로 꺼져 있습니다.
- 효과를 실행하면 충격 유닛에 대한 응답 구조에 질의를 하고 막기 확률과 모든 유효성 검사기를 확인합니다.
- 막히면 효과는 취소되고 실행되지 않습니다. 이후 '막힘'을 하위 이름으로 하는 행위자 효과 이벤트를 전송해 사용자가 적절한 행위자를 설정할 수 있게 합니다.
- 주문 막기 동작을 만드는 데 유용한 기능입니다.
- 신규 CEffect 필드: CanBeBlocked
- 튕겨냄 확률 (Deflect Chance)
- 신규 CEffect 플래그: ValidateImpactDeflection
- 효과를 튕겨낼 수 있는지를 결정합니다. 기본적으로 꺼져 있습니다.
- 튕겨냄은 막기 확률과 거의 동일하지만, 발생할 수 있었던 효과를 복사하여 시전자에게 반사한다는 점에서 다릅니다.
- 튕겨낸 효과는 시전자와 대상의 속성을 반전시켜 기존 대상 유닛이 기존 시전자 유닛을 공격하는 것으로 간주합니다. 반사된 효과 계통도의 피해 보너스는 기존 시전자의 피해 보너스를 사용하도록 설정되어 있습니다.
- 튕겨냄과 막기의 또 다른 점은 효과 계통도가 튕겨냄을 각각 한 번만 평가한다는 것입니다. 효과가 튕겨냄 검사를 한 번 통과하면, 효과 계통도의 나머지는 다시 튕겨냄 확률을 검사하지 않습니다. 효과 계통도 내에 ValidateImpactDeflection 플래그를 설정한 후속 효과가 있더라도 마찬가지입니다.
- 신규 CEffect 플래그: ValidateImpactDeflection
- 유닛 변태 시스템 변경 (Unit Morphing System Change)
- 변태/변태 해제 설정/해제 (Morph/Unmorph Toggle)
- 신규 CAbilMorph 플래그: 설정/해제
- 신규 CAbilMorph 필드: InforArrayUnmorph
- 설정 시, 변태 능력을 사용하여 두 가지 유닛 유형 계통 사이를 전환할 수 있습니다.
- 신규 CAbilMorph 명령 인덱스: 변태 해제.
- 설정/해제가 자유로운 변태 능력일 경우, 유닛이 이미 변태한 후에도 계속 변태 해제 명령을 내릴 수 있어서 유닛이 InforArrayUnmorph 필드에 정의된 변태 과정을 시작하게 됩니다.
- 대부분의 경우 InforArrayUnmorph 필드는 필드의 최종 유닛 유형이 필드의 일반 상태 유닛 유형이 되도록 설정되어야 합니다. 이 경우, 변태 해제 명령 사용 시 유닛의 변태가 해제되어 일반 상태로 돌아옵니다.
- 신규 CabilMorph 필드: ValidatorArrayUnmorph
- 변태한 유닛이 변태 해제 명령을 사용할 수 있는지 유효성 검사를 실행합니다.
- 신규 CabilMorph 플래그: AutoUnmorph
- 변태한 유닛이 자동으로 변태를 되돌리려 할지 여부를 결정합니다.
- 신규 CabilMorph 필드: BehaviorOn/BehaviorOff
- 설정 시, 능력은 유닛이 변태 상태일 때 BehaviorOn 강화 효과를 유닛에 부여합니다. 유닛이 일반 상태일 경우 BehaviorOff 강화 효과를 부여합니다. 이 두 필드는 변태 능력이 '설정/해제'로 지정되어 있을 때만 작동합니다.
- 유닛이 처음부터 변태 유닛 유형으로 만들어진 경우라도, 변태 능력은 해당 유닛이 변태 과정을 거친 것으로 간주합니다. 관련 동작에도 적용되며 유닛이 변태 해제 명령을 사용할 수 있게 됩니다.
- 변태 기술 개수 (Morph Tech Count)
- 신규 CAbilMorph 플래그: ProvideSourceUnitTech
- 설정하면 CAbilMorph가 출처 유닛의 유닛 유형을 변태한 유닛으로 전달합니다. 최종 유닛은 자동으로 출처 유닛의 유닛 링크를 기술 별칭으로 상속합니다.
- 이 속성은 전체 변태 계통에서 상속됩니다.
- 예시: 마을 회관 -> 성채 -> 성
- 성은 성채인 동시에 마을 회관인 것으로 간주되었습니다. 직접 생성한 성 역시, 두 건물로부터 변태한 것이 아닌데도 성채인 동시에 마을 회관인 것으로 간주되었습니다.
- 성의 기술 별칭 필드에 마을 회관과 성채를 넣어 성의 별칭으로 만들면 어떨까요? ProvideSourceUnitTech는 유닛이 완료 상태일 때만 효과가 있기 때문에 이렇게 간접적인 방식을 택했습니다. 유닛은 완료 상태에서만 기술 개수에서 출처 유닛으로 간주됩니다. 만약 TechAlias 필드를 사용한다면 별칭이 모든 상태에서 존재하기 때문에, 유닛이 변태 중(InProgress 상태)일 때도 적용됩니다. 이런 경우, 성채를 성으로 변태할 때 어색한 중간 상태에 머물게 됩니다. 완료된 성채와 InProgress 상태인 성을 동시에 가지기 때문에, 기술 개수 시스템이 InProgress 상태의 성채를 가지고 있다고 착각하게 됩니다.
- 신규 CAbilMorph 플래그: ProvideSourceUnitTech
- '이동 후 변태' 지원 (“Move to and then Morph” support)
- 신규 CAbilMorph 플래그: RequireAcquiredTarget, RequireAcquiredTargetUnmorph
- 신규 CAbilMorph 필드: Range, TargetSorts
- 이 필드를 설정하면 유닛이 자동 시전 반경을 탐색하여, 범위 내에서 유효성 검사기와 일치하는 대상을 찾은 후 다음 대상으로 이동합니다. 유닛은 대상 유닛에 도달한 다음 변태를 시작합니다. Range 필드는 시전자가 변태를 시작할 수 있는 가장 긴 범위를 나타냅니다.
- 변태/변태 해제 설정/해제 (Morph/Unmorph Toggle)
- 자원 수행 유닛 (Resource Performant Units)
- 신규 유닛 플래그: NeverThink
- 보통 게임 내의 모든 유닛은 게임 반복 1회(게임 시간 0.0625초)마다 경로, 적 탐색, 능력 획득, 기타 논리를 확인합니다. 이 플래그는 해당 확인 작업을 비활성화해 사용자 지정 지도의 성능 향상을 돕습니다. NeverThink 유닛은 자원 행동 외에 동작과 능력을 가질 수 없습니다.
- 신규 유닛 플래그: NeverThink
- 기타 일반 유닛 변경 사항 (Other Generic Unit Changes)
- 유닛 최대 속도
- 신규 CUnit 필드: SpeedMaximum
- 유닛이 속도 보너스를 포함해 도달할 수 있는 최대 속도를 지정합니다.
- 신규 Behavior 필드: MoveSpeedBaseMaximumBonus
- 유닛의 최대 속도를 변경합니다.
- 신규 CUnit 필드: SpeedMaximum
- 신규 CUnit MOB 유형: 워크래프트
- 유닛의 MOB 필드에 '워크래프트' MOB 유형이 생겼습니다.
- 이를 통해 트리거가 워크래프트 유닛과 스타크래프트 유닛을 구별할 수 있습니다.
- 신규 CUnit 필드: LifeRegenRateNight, EnergyRegenRateNight, ShieldRegenRateNight
- 각 유닛에 동작을 설정하지 않아도 나이트 엘프 유닛이 밤에 재생하도록 만들 수 있습니다.
- 신규 CUnit 필드: BuildTime
- 유닛 데이터에 생산 시간을 저장할 수 있는 추가 공간입니다. CAbilBuild, CAbilTrain, CAbilMorph에서 생산 시간을 설정하는 데 사용할 수 있습니다.
- 신규 CAbilBuild, CAbilTrain 플래그: IgnoreUnitBuildTime
- 끄면 유닛 생산 시간이 능력 생산 시간에 추가됩니다.
- 각 항목의 단계별 신규 CAbilMorph 배열 플래그: UseBuildTimeArray
- 이 플래그를 설정해 둔 단계에서 유닛의 생산 시간이 해당 단계의 지속 시간에 추가됩니다.
- 신규 유효성 검사기: CValidatorUnitCompareAbilStage
- 사용자가 CAbilEffect의 능력 단계 유효성을 검사할 수 있습니다.
- 능력 필드가 None으로 설정되어 있으면, 현재 시전 중인 능력 단계의 유효성을 검사합니다. 따라서 유닛이 능력을 시전하는 동안 집중 중인지 확인할 수 있습니다.
- 신규 대상 필터:
- Powerup: CUnit_PowerupEffect 필드 값이 유효할 때 참입니다.
- PowerupOrItem: 강화 아이템 또는 아이템입니다.
- HeroUnit: 영웅 플래그를 가진 유닛입니다. '영웅 특성'과 별개입니다.
- 신규 CUnit 필드: 유닛 레벨
- > 0으로 설정한 상태에서 유닛이 강조 표시되어 있으면 툴팁의 유닛 이름 아래에 레벨이 표시됩니다.
- 대상 정렬 또는 유효성 검사에 사용할 수 있습니다. 축적기에 사용할 수도 있습니다.
- 부속 건물 부모 동작 (Addon Parent Behavior)
- 신규 CUnit 필드: ParentBehaviorLink
- 부속 건물이 부모 건물과 연결되어 있으면 ParentBehaviorLink의 동작이 부모 건물에 적용됩니다. 이 동작의 시전자는 부모 건물이 아니라 부속 건물입니다.
- 부속 건물의 상태에 따라 ParentBehaviorLink 동작으로 부모 건물을 제어할 수 있습니다.
- 변태 능력이 해당 동작의 유효성을 검사해, 부속 건물이 연구 중일 때 부모 건물에 이륙 명령을 내리면 오류 메시지를 표시하도록 만들 수 있습니다.
- 신규 CUnit 필드: ParentBehaviorLink
- 이제 CUnit_LifeDamageGain을 업그레이드할 수 있습니다.
- CValidatorUnitState가 크게 향상되어, 기존 1종이 아닌 최대 100종의 유닛 상태를 확인할 수 있습니다.
- 예시: 대기, 도약, 강조 표시, ArmorDisabled, 부활 가능, Dying, ArmySelect 등
- 신규 유닛 무기 유형 시험 유효성 검사기 CValidatorUnitTestWeaponType
- 사용자가 유닛이 가진 무기가 원거리인지 근거리인지 확인할 수 있게 됩니다.
- 이러한 확인 시 활성화 요구 필드를 통해 비활성화된 무기를 무시할지 결정합니다.
- 표본 모드에 있는 워크래프트 III의 모든 근접 영웅은 구체로만 잠금 해제할 수 있는 대공 무기를 숨기고 있습니다. 이제 산왕 같은 워크래프트 III 근접 영웅이 원거리 무기를 가지고 있는 것으로 표시되지 않습니다.
- 유닛 최대 속도
- 기타 능력 시스템 변경 사항 (Other Ability System Changes)
- 능력 버튼 자동 생성 (Auto Generate Buttons For Abilities)
- 능력을 어떤 유닛에든 손쉽게 적용할 수 있도록, 모든 버튼의 명령 창에 기본 버튼 위치와 하위 메뉴 ID를 지정할 수 있는 속성이 생겼습니다.
- 어떤 능력이든 능력 명령이 자동으로 능력 버튼을 생성하도록 설정하여, 능력을 유닛에 적용하자마자 작동하도록 만들 수 있습니다. 이제 버튼과 아이콘을 유닛 명령 창에서 수동으로 지정할 필요가 없습니다.
- 실행 시간에 유닛에 능력을 추가하거나 제거할 수 있는 트리거 API (Trigger API to add and remove abilities on units at run time)
- 신규 트리거 API 행동: 유닛 능력 추가, 유닛 능력 제거
- 더 쉬운 레벨 구성 (Easier Level Configuration)
- 대부분의 능력 유형에 능력 최대 레벨을 직접 설정할 수 있는 레벨 필드가 생겼습니다. 축적기 시스템과 조합하면, 이제 능력 세트를 1000개씩 적용하지 않아도 1000개의 레벨을 가진 능력을 만들 수 있습니다.
- 레벨 필드는 업그레이드할 수 있으므로, 실행 시간에 최대 능력 레벨을 변경할 수 있습니다.
- 레벨 필드를 기본값인 0으로 설정하면 능력 레벨 시스템이 기존 기능으로 대체됩니다.
- 신규 CCharge 필드 TimeDelay
- 모든 능력/아이템/동작 충전에 적용됩니다.
- TimeStart와 비슷하게 작동하나, 능력/아이템/동작의 첫 번째 충전에만 영향을 끼칩니다.
- TimeDelay = 0이면, 충전 시스템이 기존처럼 작동합니다.
- TimeDelay > 0이면, TimeStart가 무시됩니다.
- 능력에 충전 횟수가 쌓이기 시작하면 첫 번째 충전의 재생 시간은 TimeDelay 값을 사용하고, 이후 충전은 TimeUse 값을 사용합니다.
- 신규 플래그: IgnoreTimeDelay.
- 유닛에 설정된 TimeDelay를 무시하고 능력의 개별 설정을 사용하도록 만들 수 있습니다.
- 이제 카탈로그 교체에 아이템 능력이 지원됩니다.
- 아이템 소유자가 아닌 사용자 기준으로 교체됩니다.
- 이를 통해 여러 플레이어가 다른 효과를 가진 같은 아이템을 사용할 수 있습니다.
- 예를 들어 아이템이 플레이어 종족을 기준으로 사용될 때, 제작자가 다양한 유닛을 생성할 수 있습니다.
- SEffectParamsShared에 m_level 구성 요소가 추가되어, 효과 계통도가 시작되는 능력의 레벨을 저장할 수 있습니다.
- 효과 계통도가 이 구성 요소를 스냅샷으로 이용해 관련 레벨 데이터를 얻을 수 있으므로, 효과 계통도가 시작된 후 능력 레벨이 바뀌더라도 효과 계통도가 기존 능력 레벨을 기억하게 됩니다.
- 축적기 역시 이 데이터를 능력 데이터로 이용할 수 있습니다.
- 이제 CEffectCreateUnit_SpawnUnit이 효과 계통도 레벨에 따라 다양한 유닛 유형을 생성하도록 설정할 수 있습니다.
- 이제 CAbilBheavior의 자동 시전에 자동 설정/자동 해제 유효성 검사기를 여러 개 설정할 수 있습니다.
- 신규 능력 범주 및 동작 범주
- 다양한 신규 능력과 강화 효과 범주를 추가했습니다.
- 이제 강화 효과 동작이 범주별로 능력을 활성화/비활성화할 수 있습니다.
- 편집기의 동작 범주 목록에 미리 설정을 추가했습니다. 이제 데이터 편집기의 동작 범주와 일치하게 됩니다.
- 모든 능력 신규 필드: 상태 동작
- 이 필드는 능력을 생성했을 때 동작을 생성합니다. 능력이 파괴되면 동작을 파괴하며, 능력이 비활성화/활성화되면 동작을 비활성화/활성화합니다.
- 능력 버튼 자동 생성 (Auto Generate Buttons For Abilities)
- 기타 피해 시스템 변경 사항 (Other Damage System Changes)
- 신규 CEffectDamage 필드: DamageInheritEffect
- 최초 피해가 적용된 후 이 필드에 설정한 효과가 발동됩니다.
- 최초 피해의 피해량을 상속받습니다.
- 신규 CEffectDamage 플래그: NoZeroDamageInherit
- 적용된 피해가 0일 때 DamageInheritEffect가 발동되지 않도록 합니다.
- 신규 CEffectDamage: 비율
- 다른 모든 기존 비율에 곱해지는 추가 비율입니다.
- 이 필드는 축적기를 지원하므로, 이 비율을 기반으로 식을 만들 수 있습니다.
- 신규 CEffectDamage 필드: DamageInheritEffect
- 무기 사전 효과 (Weapon Pre-Effect)
- 신규 무기 필드: PreEffect.
- PreEffectBehavior의 효과 버전입니다. 대상 유닛에 유효성 검사를 수행해 PreEffect가 발동되어야 할지 결정할 수 있습니다.
- 신규 무기 필드: PreEffect.
- 단일 중단 지원 (Homogenous Interruption Support)
- 신규 CAbilEffect 플래그: HomogenousInterrupt
- 이 플래그를 켜면 다음과 같은 동작을 볼 수 있습니다. 플레이어가 주문 집중 중인 유닛을 선택하고 이동하도록 명령하면, 집중을 중단하고 움직입니다. 플레이어가 여러 유닛을 선택할 때 주문 집중 중이 아닌 유닛이 포함되어 있다면, 해당 유닛만 즉시 이동합니다. 이 경우, 현재 주문 집중 중인 유닛의 대기열에 이동 명령이 추가됩니다.
- 이 플래그를 끄면 기존 스타크래프트 II 방식대로 동작합니다.
- 신규 CAbilEffect 플래그: HomogenousInterrupt
- 건물 건설 시스템 변경 사항 (Building Build System Change)
- 건설 중 일꾼 물러나기 (Worker Give Way During Construction)
- 건설 중 일꾼이 건물 안으로 사라지게 하지 않는 CAbilBuild에 HomogenousInterrupt 및 Interrupt 플래그가 모두 적용되어 있으면, 플레이어가 다른 건물을 배치하려 할 때 건설 단계 일꾼이 배치를 방해하지 않습니다. 일꾼이 자리를 벗어난 다음 돌아와 건설을 진행하기에 더 적합한 위치를 찾을 것입니다.
- 건물 생성 애니메이션 시간 자동 배율 (Building Birth animation time auto scaling)
- 이제 CAbilBuildable가 행위자 시스템에 시작, 취소, 완료, 일시 정지, 계속하기 이벤트를 보냅니다.
- 시작 이벤트가 건물의 생산 시간 정보도 포함합니다. 행위자는 건물 애니메이션을 생산 시간과 동일한 길이로 자동 설정합니다. 즉 건물 건설이 끝나자마자 생성 애니메이션도 끝나게 됩니다.
- 건설 중 일꾼 물러나기 (Worker Give Way During Construction)
- 지상 공격 범위 커서 지원 (Attack Ground AOE Cursor Support)
- 이 기능은 다음과 같은 두 가지 코드 변경으로 구성됩니다.
- 이제 CActorMsgAbil가 명령 정보를 포함하므로, CActorTermAbilCmd로 CActorMsgAbil에 응답할 수 있습니다. 따라서 행위자 시스템은 커서 모드가 일반 공격으로 발동되었는지, cmdIndex를 통한 attack ground guide로 발동되었는지 구별할 수 있습니다.
- 이제 CAbilAttack가 DisplayEffect를 커서 효과로 행위자 시스템에 전달합니다. 따라서 행위자 시스템이 대상을 필터링하고 범위 커서 배율을 조정할 수 있습니다.
- 유닛이 여러 개의 무기를 가지고 있는 경우, 커서가 무기의 첫 번째 유효 DisplayEffect 기준으로 무기 외형을 결정합니다.
- 이 기능은 다음과 같은 두 가지 코드 변경으로 구성됩니다.
- 유지비 시스템 (Upkeep System)
- 신규 종족 필드: UpkeepTax
- 플레이어의 음식 개수 기준으로 자원 수입 비율을 설정할 수 있습니다.
- 신규 종족 필드: UpkeepTax
- 비탈길 건설 (Build on Ramps)
- 스타크래프트 II에서는 플레이어가 비탈길에 건물을 건설할 수 없도록 고정되어 있었습니다.
- 신규 지형 유형 데이터 데이터 필드: 비탈길 건설 불가
- 비탈길을 건설 불가로 지정할지 여부를 선택할 수 있습니다.
- 끄면 플레이어가 비탈길에 건물을 건설할 수 있습니다.
- 채취 능력 향상 (Harvest Ability Improvements)
- 신규 CAbilHarvest 필드: ResourceAmountCapacity
- 기본값은 0입니다.
- 일꾼이 자원 채취를 끝낼 때마다, ResourceAmountCapacity 값과 운반 중인 자원량을 비교할 것입니다. 운반 중인 자원량이 ResourceAmountCapacity보다 낮은 경우, 대기 중인 명령이 있거나 이동 명령을 내리지 않는 한 해당 양에 도달할 때까지 계속해서 자원을 채취합니다.
- 일꾼이 해당 양만큼 자원을 채취하지 못했더라도, 플레이어가 중단 명령을 내려 현재 운반 중인 자원을 전달하도록 할 수 있습니다.
- 일꾼이 채취 중 다른 명령을 받으면, 해당 명령을 수행하기 전에 최소 하나의 자원을 채취하려 할 것입니다.
- 일꾼이 채취를 시도하는 중 대상 자원이 고갈되면, 근처의 다른 자원을 찾을 것입니다.
- 신규 CabilHavrest 플래그: 추출 방지 (No Extract)
- 켜면 채취 능력이 자원 노드에서 자원을 제거하지 않으면서 자원을 획득할 것입니다.
- 신규 CAbilHarvest 필드: ResourceAmountCapacity
- 일중 시간 시스템 개선 (Time of Day System Improvements)
- 낮/밤 변화를 포착하는 신규 트리거 이벤트: 게임 밤/낮 상태 변경
- 시각을 고정값으로 가져오기/설정하는 신규 트리거 함수 시각 설정(초), 현재 시각(초)
- 현재 낮/밤 상태를 가져오는 신규 트리거 함수: 현재 밤/낮 상태
- 시각 값의 유효성을 검사하는 신규 유효성 검사기: 게임 시각 비교
- 자원 떨어뜨리기 행위자 지원 (Actor Support for Dropping Off Resources)
- 신규 행위자 메시지: UnitResourceDrop
- 이 행위자 이벤트는 유닛이 마을 회관 또는 자원 떨어뜨리기 유닛에 자원을 떨어뜨릴 때마다 메시지를 보냅니다.
- 출처 이름 필드는 자원을 떨어뜨린 유닛의 유닛 행위자입니다.
- 하위 이름 필드는 자원 유형입니다. 이제 하위 이름으로 떨어뜨린 자원을 구별할 수 있습니다.
- 이벤트 후에 SetTextLocalized 및 SetText 메시지를 사용하면 대상 텍스트가 떨어뜨린 자원량으로 자동 설정됩니다.
- 실제 떨어뜨린 자원량이 대상 텍스트의 %AMOUNT% 토큰을 대체합니다.
- 신규 행위자 메시지: UnitResourceDrop
- 같은 행위자 여러 개 생성 (Creating Multiples of the Same Actor)
- 신규 행위자 유형: CActorBatch
- 이전에 같은 행위자를 여러 번 만들 수 없던 문제가 해결되었습니다.
- 이 행위자에는 개수 필드가 있으므로, 같은 유형의 자식 행위자를 여러 개 만드는 데 사용할 수 있습니다.
- 생성된 행위자는 기본적으로 CActorBatch의 방위를 사용합니다.
- 신규 행위자 유형: CActorBatch
- 행위자 시스템 강제 반복 지원 (Actor System Forced Looping Support)
- 이제 행위자 시스템이 애니메이션 강제 반복 재생을 지원합니다.
- 신규 EAnimsFlags 플래그: ForceLooping
- 이 플래그와 PlayForever 플래그가 모두 설정되어 있으면 애니메이션을 반복으로 설정했는지 여부와 관계없이 애니메이션이 완료될 때마다 시스템에서 임의로 선택한 애니메이션 변형을 재생합니다.
- 플래그 우선순위: AssetDrivenLooping > ForceLooping > NonLooping
- 신규 EAnimBracketStart 플래그: ContentForceLooping
- 이 플래그가 켜져 있고 ContentPlayOnce 플래그가 꺼져 있으면 내용 애니메이션을 반복으로 설정했는지 여부와 관계없이 AnimBracketStop 메시지가 전송될 때까지 내용 애니메이션이 완료될 때마다 시스템에서 임의로 선택한 애니메이션 변형을 재생합니다.
- 인공지능 전술 개선 (A.I. Tactical Improvement)
- 신규 CUnit 필드: AIExecuteAbilTactical
- 전술 인공지능 연결자 함수 패턴을 실행합니다. 예시: Unit, galaxyFuncName, scanned group, inAbility, inItem.
- 적대 및 중립 인공지능 플레이어에게 전술 함수가 제대로 작동하지 않아 전술 데이터와 전술 함수 사이에 불일치가 발생하던 현상을 수정했습니다.
- 신규 CUnit 필드: AIExecuteAbilTactical
- 인공지능 테라진 및 사용자 지정 자원 지원 (A.I. Terrazine and Custom Resource Support)
- Synapse 인공지능이 테라진 및 사용자 지정 자원을 자원 유형으로 인식할 수 있도록 개선했습니다. 또한, 이제 인공지능이 정상적으로 채취할 수 있습니다.
- 인공지능 제단 부활 (A.I. Altar Revive)
- 이제 인공지능에게 보관 명령을 내렸을 때 특정 유형의 영웅을 훈련할 방법을 찾지 못하면 영웅 부활 명령으로 인식합니다.
- 인공지능 스크립트는 핵 능력을 등록할 때처럼 AIReqAddSpecialMaker()를 통해 부활 건물을 등록해야 합니다.
- 인공지능이 A.I. 영웅을 보관하려 시도했지만 훈련 능력을 찾을 수 없는 경우, 부활 목록을 검색하여 동일한 유형의 영웅을 부활시키려 할 것입니다.
- 인공지능 재고 교체 (A.I. Stock Replacement)
- 이제 인공지능이 건설 또는 훈련 시도 시 카탈로그 교체를 고려합니다.
- 예를 들어 인공지능 플레이어가 해병을 광전사로 교체했다면, 인공지능 플레이어는 해병 훈련 능력을 광전사 훈련 능력으로 정상 인식하고 올바른 훈련 명령을 내릴 것입니다.
- 이는 결합, 건설, 연구, 훈련, 소환 훈련에도 영향을 끼칩니다.
- 신규 유닛 플래그: AIPreplacedForceBully
- 이 유닛은 지도에 미리 배치하면 현재 컴퓨터가 교체할 수 없는 경우에도 교체 가능 악당으로 간주됩니다. 따라서 컴퓨터가 능력 교체 트리거 행동으로 얻은 능력을 이용해 악당을 교체할 수 있습니다.
- 이전 지도 변환기 개선 (Better Legacy Map Converter)
- 이전 지도 변환기가 개선되었습니다. 이제 워크래프트 III 지도를 변환할 때 지형 그물망뿐만 아니라 지형 텍스처, 미리 배치된 유닛, 장식물, 파괴물, 카메라, 구역도 변환합니다.
- 데이터 기반 전리품 시스템 (Data Driven Loot System)
- 갤럭시에 신규 네이티브 추가: UnitLootDropUnit, UnitLootDropPoint
- 전리품 데이터 편집기에서 전리품을 설정하고 이 네이티브를 이용해 전리품을 생성할 수 있습니다. 전리품에는 아이템, 유닛, 효과, 특정 레벨/특정 아이템 클래스의 무작위 아이템 등이 있습니다.
- 신규 네이티브: UnitLootLastCreated, UnitLootLastCreatedGroup
- 이 네이티브로 UnitLootDropUnit 또는 UnitLootDropPoint를 통해 생성한 전리품 아이템을 가져올 수 있습니다.
- 신규 아이템 플래그: IncludeInLootItemPool
- 설정하면 아이템이 CLootItem의 무작위 선택 목록에 포함됩니다. 따라서 아이템을 '임의로 떨어뜨릴 수 없음'으로 지정할 수 있습니다.
- 이제 CLootItem.ClassArray를 업그레이드할 수 있으며, 트리거를 이용해 다양한 클래스의 아이템을 무작위로 생성할 수 있습니다.
- 갤럭시에 신규 네이티브 추가: UnitLootDropUnit, UnitLootDropPoint
- Ctrl 명령 변경자 (Ctrl Order Modifier)
- 이 변경자는 기본적으로 해제되어 있습니다. 트리거 행동 UISetCommandAllowed를 사용해 켜거나 끌 수 있습니다.
- 변경자가 켜져 있는 상태에서 Ctrl 키를 누른 채 명령을 내리면, 선택한 모든 유닛이 아니라 현재 강조 표시된 하위 그룹 유닛에게만 명령이 전달됩니다. 예를 들어 플레이어가 해병과 광전사를 선택하고 해병만 강조 표시한 경우, Ctrl 키를 누른 채 오른쪽 클릭 이동 명령을 내리면 해병만 이동 명령을 받습니다.
- 기타 UI 프레임 속성 변경 사항 (Other UI Frame Property Changes)
- CUnitFrame 속성 추가: UseSelectionLeader
- UI에 현재 선택한 유닛의 리더 유닛(활성 하위 그룹의 첫 번째 유닛)을 가져올 수 있는 능력을 제공합니다.
- 설정하면 CUnitFrame이 LocalObservedSelectionLeaderUnit()을 유닛으로 자동 설정합니다. 또한, 다른 프레임에 속성 결합을 수행할 수 있도록 UnitTag 속성을 업데이트합니다.
- 설정하면 CUnitFrame이 선택한 유닛만 반영해야 하므로 다른 프레임에 UnitTag를 결합하는 모든 속성 결합을 무시합니다.
- 끄면 CUnitFrame이 이전과 같이 작동합니다.
- CUnitButton이 UnitTag 속성을 업데이트하지 않던 문제가 수정되었습니다.
- CUnitFrame 속성 추가: UseSelectionLeader
- 기타 트리거 API 변경 사항 (Other Trigger API changes)
- 능력 단계 (Ability Stage)
- 이제 CAbilRally가 트리거 단계 이벤트인 'Place when the rally is placed'를 실행할 수 있습니다.
- 플레이어 핸디캡 (Player Handicap)
- 이제 기존 플레이어 핸디캡 제한 100%를 넘어설 수 있습니다.
- 유닛 탄창 관리 (Unit Magazine Management)
- 신규 갤럭시 API: UnitMagazineAssign
- 기존 유닛을 유닛 탄창에 추가합니다.
- 신규 갤럭시 API: UnitMagazineRemove
- 기존 유닛을 유닛 탄창으로 제거합니다.
- 신규 갤럭시 API: UnitMagazineAssign
- 신규 플레이어 상태 API: AlwaysShowUnitTooltip
- 이 상태를 켜면 플레이어의 유닛은 강조 표시 툴팁 가능 표시가 없어도 강조 표시 툴팁을 표시합니다.
- 신규 플레이어 상태 API: GivesBounty
- 모든 플레이어에게 기본적으로 켜져 있습니다. 켜면 플레이어 유닛이 자신을 처치한 적 플레이어에게 처치 자원을 제공합니다.
- 신규 행위자 API: ActorScopeMoveTo
- 행위자 범위를 주어진 행위자의 방위로 이동합니다.
- 신규 트리거 이벤트: Player Spent Vital Event
- 플레이어가 생존력을 소비할 때 포착합니다.
- 트리거 이벤트 응답에서 어느 생존력을 얼마나 소비했는지 이해할 수 있습니다.
- 능력 단계 (Ability Stage)
- 기타 데이터 편집기 변경 사항 (Other Data Editor changes)
- 이제 사용자가 기본 데이터 항목을 선택하면 데이터 편집기가 올바른 XML 행을 찾을 수 있습니다.
- 이제 요구 사항 링크(const CTechRequirementsGraph*)가 XML 토큰 교체를 고려합니다.
- 따라서 이제 대부분의 능력은 토큰을 사용하여 요구 사항 링크와 능력 ID를 동일하게 만들 수 있습니다.
- 이제 CBehaviorLinkArraynow가 XML 토큰 교체를 고려합니다.
- 이제 행위자 메시지의 애니메이션 속성(CAnimProps)이 XML 토큰 교체를 고려합니다.
- 이제 행위자에게서 존재하지 않는 TintColor 속성을 제거하려고 할 때 오류 메시지가 표시되지 않습니다.
- CActorQuad에 발사 및 충돌 위치에 따라 자동 연장할 수 있게 해 주는 플래그가 생겼습니다.
- 신규 대상 정렬 유형: CTargetSortValidator
- 주어진 유효성 검사기를 충족하는지 여부에 따라 대상을 정렬합니다.
- 신규 명령 플래그: 한 번 공격 (Attack Once)
- 공격 명령을 내릴 때 명령 플래그로 '한 번 공격' 명령을 내릴 수 있습니다.
- Order Set Flags 트리거 행동을 이용해 이 플래그를 설정할 수 있습니다.
- 이제 3D 벡터처럼 작동하는 더하기, 빼기, 곱하기, 나누기 연산으로 CEffectOffset 필드를 업그레이드할 수 있습니다. 기존에는 Set만 이용할 수 있었습니다.
- 신규 키네틱: CKineticDistance
- 대상 유닛을 시작 위치에서 동적 매개 변수의 원래 위치 방향으로 주어진 거리만큼 투사합니다.
- 신규 CWeapon 필드: DisplayName
- 툴팁에서 무기 이름을 덮어쓰는 데 사용됩니다.
- 신규 CEffectModifyUnit 플래그: StartingVitals
- 유닛의 생명력, 에너지, 보호막을 시작 생존력으로 설정합니다.
- 신규 CEffectModifyUnit 플래그: SetVitals
- 유닛의 생존력을 직접 설정합니다.
- CActorActon 치료 효과
- 이제 CEffectHeal이 CActorAction에 ActionParticipantsMessage 및 ActionCommenceMessage 메시지를 제공할 수 있습니다. 따라서 치료 효과로 행위자 행동을 설정할 수 있습니다.
- CEffectHeal이 Stop 효과 행동 하위 이름을 제때 발동할 수 없던 문제를 수정했습니다.
- 신규 CValidatorUnitOrderCValidatorUnitOrder 플래그: CheckStateOnly
- 설정하면 '마나 부족'과 같은 이유로 명령이 실행되는 경우와 관계없이 유닛에 능력 명령이 비활성화되어 있는지 확인합니다.
- 신규 CEffectModifyUnit 플래그: ResourceDrop.
- 설정하면 충격 유닛이 마을 회관까지 이동하지 않고 현재 운반 중인 자원을 즉시 떨어뜨립니다. 소유한 플레이어가 자원을 받습니다.
- 신규 CEffectEnumArea 플래그: UnCreep
- 켜면 검색 효과가 검색 반경에서 점막을 제외합니다.
- 유닛 무작위 초기값 API:
- 유닛의 무작위 초기값을 설정, 가져오기, 다시 설정하는 신규 트리거 API입니다.
- 유닛의 무작위 초기값은 유닛의 무작위 이름, 변형 등을 결정합니다.
- 유닛과 완전히 동일한 사본을 생성할 때 유용합니다.
- CEffectSwitch가 종종 잘못된 오류 메시지를 표시하던 문제를 수정했습니다.
- 훈련 능력 신규 플래그: 생명력 백분율 복사 (Copy Life Percentage)
- 훈련된 유닛이 훈련용 유닛의 생명력 백분율을 상속할 것인지 결정합니다.
- 훈련 능력 신규 플래그: 식량 제한 무시 (Bypass Food Restriction)
- 식량 제한을 무시할 수 있습니다.
- 신규 배치 건설 능력 플래그: 지능형 시전 (Smart Cast)
- 마우스 오른쪽 클릭으로 능력을 알아서 시전할 수 있는지 여부를 결정합니다.
- 효과 능력 신규 플래그: 외부 탑승자 획득 (External Acquire Passenger)
- 능력으로 수송선 안에 있는 유닛을 획득할 수 있습니다.
- 유닛이 정신 제어된 경우 유닛 무기 사거리 유효성 검사기가 항상 실패하던 문제를 수정했습니다.
- 신규 치료 유닛 만들기 효과 플래그: Continue When Full
- 치료 후 생존력이 가득 찼을 때 치료 유닛 만들기 효과를 계속할 것인지 결정합니다.
- 기본적으로 꺼져 있습니다.
- 집결 유닛 필드를 설정한 경우 유닛 생성 효과가 유닛을 집결 지점으로 이동시키지 않고 집결 지점에 직접 생성하던 문제를 수정했습니다.
- 신규 Set Effect 필드: RecycleCount
- 재활용 횟수가 충족될 때까지 자식 효과를 반복해서 실행할 수 있습니다.
- 효과 능력 신규 플래그: 취소 시 자동 시전 다시 설정 (Cancel Reset Auto Cast)
- 플레이어가 능력 집중을 수동으로 취소할 때 능력 자동 시전 상태를 다시 설정할지 결정합니다.
- 신규 실전 경험 레벨 유효성 검사기 필드: 결과 최대 레벨 (Result Max Level)
- 유닛이 최대 영웅 레벨에 도달했는지 확인합니다.
- 부활 경보가 부활한 유닛을 잘못 가리키거나 잘못된 VO를 재생하던 문제를 수정했습니다.
- 신규 Set Effect 플래그: 출처 설정 (Set Source)
- 자식 효과의 출처 유닛/지점을 현재 대상 유닛/지점의 대상 지점/유닛으로 설정합니다.
- 데이터 편집기의 능력 명령 목록 대화 상자에 검색 칸을 추가했습니다.
- 사용자 지정 종족 수정 사항 (Fixes for Custom Races)
- 게임 대기실의 종족 드롭다운에 항상 테란, 저그, 프로토스가 표시되지 않고, 지도에 설정된 사용자 지정 종족이 올바르게 표시됩니다.
- 이 변경 사항은 현재 확장 모드에 영향을 미치지 않습니다. 현재는 확장 모드를 통해 종족 드롭다운에 사용자 지정 종족을 추가할 방법이 없습니다.
- 콘솔 스킨 기능으로 인해 사용자 지정 종족이 있는 지도에서 게임이 비정상 종료되던 문제를 수정했습니다.
- 사용자 지정 팀 이름 지원 (Custom Team Name Support)
- 이제 스타크래프트 II 편집기가 사용자 지정 팀 이름을 지원합니다.
- 사용자 지정 팀 이름은 게임 모드에 따라 다르게 설정할 수 있습니다.
- 팀 이름을 변경하려면 지도/모드->게임 변경 형태로 이동하세요.
- "d time/" 텍스트 태그 사용 (Expend "d time/" text tag)
- 다양한 게임 시간을 표시하기 위해 '시간' 텍스트 태그에 5개의 신규 시간 유형을 추가했습니다.
- 직접적인 숫자 대신 유형 이름을 입력하면 텍스트 태그가 적합한 게임 내 시간으로 표시됩니다.
- 예시:
- 입력 텍스트
- 고정 시간: "d time="9125"/>
- 게임 시간: "d time="GameTime"/>
- 임무 시간: "d time="MissionTime"/>
- 인공지능 시간: "d time="AITime"/>
- 날짜 시간: "d time="DateTime"/>
- 시각: "d time="TimeOfDay"/>
- 표시 텍스트
- 고정 시간: 9125초
- 게임 시간: 11:50
- 임무 시간: 11:50
- 인공지능 시간: 11:50
- 날짜 시간: 2020:06:12:12:12:23
- 시각: 22:06:34
- 입력 텍스트
- 기타 UI 프레임 속성 변경 사항 (Other UI Frame Property Changes)
- 신규 CHeroFrame 속성: HeroTag, Skill Point
- 영웅의 유닛 태그와 미사용 기술 점수를 나타냅니다.
- 이 속성을 사용하여 사용자 지정 영웅 프레임을 만들 수 있습니다.
- 신규 CHeroFrame 속성: HeroTag, Skill Point
- 사용자 지정 편집기 툴팁 (Customizable Editor Tooltips)
- 필드의 기능을 더 잘 이해할 수 있도록 데이터 편집기 필드에 툴팁을 추가하였습니다.
- 커뮤니티 여러분이 원하는 대로 툴팁을 변경할 수 있습니다. 5.0 패치부터 스타크래프트 II 설치 폴더 내에 '편집기' 폴더를 만들 수 있게 되었습니다. 다음 텍스트 파일을 편집기 폴더에 넣으면 텍스트 파일이 편집기 클라이언트의 언어/국가 문자열을 덮어쓰거나 데이터 편집기 필드에 대한 자체 툴팁 문서를 추가할 수 있습니다.
- EditorStrings.txt
- EditorCatalogStrings.txt
- EditorCategoryStrings.txt
- 커뮤니티 여러분이 원하는 대로 툴팁을 변경할 수 있습니다. 5.0 패치부터 스타크래프트 II 설치 폴더 내에 '편집기' 폴더를 만들 수 있게 되었습니다. 다음 텍스트 파일을 편집기 폴더에 넣으면 텍스트 파일이 편집기 클라이언트의 언어/국가 문자열을 덮어쓰거나 데이터 편집기 필드에 대한 자체 툴팁 문서를 추가할 수 있습니다.
- 각자의 데이터 편집기 툴팁을 커뮤니티 내에서 공유해 보세요.
- 필드의 기능을 더 잘 이해할 수 있도록 데이터 편집기 필드에 툴팁을 추가하였습니다.
- 기타 변경 사항
- 지형 편집기의 최대 foliageCount가 셀당 10으로 증가했습니다.
- 변태 도중 사망한 유닛을 부활시키려 할 때 붉은색 텍스트 오류가 표시되던 문제를 수정했습니다.
- GameUI 데이터 신규 필드: Suppress Skins In Replay
- WCS Game Heart가 리플레이에서 스킨을 무시할 수 있습니다.
버그 수정
- 일반
- 다수의 유닛이 있는 제어 부대에서 유닛을 추가하거나 가져오면 성능 문제가 유발되던 문제를 수정했습니다.
- 공허의 유산: 망각의 속삭임 캠페인 임무 도중 첫 번째 공세에서 진행이 멈추던 문제를 수정했습니다.
- 이제 Terran Remastered 콘솔 스킨의 사령부 초상화가 중앙에 올바르게 표시됩니다.
- 물 장식물 일부가 종종 물 위에서 깜박이던 문제를 수정했습니다.
- 협동전 임무
- 카락스
- 이제 게임에 카락스가 있을 때 새로 건설된 연결체가 자체 시간 증폭을 정상적으로 사용합니다.
- 위상 모드에서 동력기의 하위 그룹 우선순위가 일반 동력기의 하위 그룹 우선순위와 일치하도록 증가했습니다.
- 멩스크
- 이중 소생기 업그레이드를 한 황제의 중재선이 의도한 것보다 더 빨리 치유하던 버그를 수정했습니다.
- 스텟먼
- 메카 맹독충 이곤에너지 강화 폭탄 피해가 50으로 제한되던 버그를 수정했습니다.
- 메카 울트라리스크가 원래 의도대로 베기 공격을 하게 됩니다.
- 타이커스
- 대기열에 있는 무법자를 취소하면 무법자 슬롯이 사라지던 문제를 수정했습니다.
- 카락스
- 대전
- 시간 증폭이 "차원 관문으로 전환"에 제대로 적용되지 않던 버그를 수정했습니다.
- 이제 자동 시전이 활성화되어 있을 때 보호막 충전소가 비방어 구조물의 중지 명령을 정상적으로 따릅니다.
- 이제 충전소 과충전 강화 효과를 받은 보호막 충전소가 수송선 안에 있는 유닛의 보호막을 재생하지 않습니다.
- 갤럭시 편집기
- CAbilIcon 프레임이 명령 인덱스 속성을 무시하던 버그를 수정했습니다.
- 이전 지도 변환기가 비정상 종료되던 문제를 수정했습니다.
- 동작의 비율 배수 배열 변경자가 변태 능력에서 정상적으로 작동하지 않던 문제를 수정했습니다.
- 유효성 검사를 받도록 설정된 유닛이 존재하지 않을 경우 CValidatorUnitTestWeaponType 유효성 검사기가 비정상 종료되던 문제를 수정했습니다.
- 5.0 공개 테스트 서버 갤럭시 편집기 추가 수정
- 구체 데이터가 특정 방식으로 설정되어 있을 경우 신규 구체 시스템이 비정상 종료되던 문제를 수정했습니다. 이제 CAbilAttackModifier가 요구 사항 및 자동 시전 설정을 따릅니다.
- 실전 경험 동작이 실전 경험 레벨 배열 필드로 빈 값을 가질 수 있던 문제를 수정했습니다. 이제 실전 경험 동작이 레벨 필드와 MinVeterancyXPXXXX 필드를 이용해 영웅의 성장 데이터를 구성할 수 있습니다.