실험용 블로그

취미로 이것저것 하는 블로그

이 블로그 검색

arrow_upward

실험용 블로그

취미로 이것저것 하는 블로그
TITLE
개조용#스타1 유즈맵

8. 배틀캐리어 만들기


update 2023/12/14
부서진 배틀을 수리해서 사용한다는 설정을 표현해보자
야마토포와 인터셉터 같은 함재기를 사용한다





시작위치에 부서진 배틀과 컨트롤타워를 배치했다
부서진배틀은 장식이고 컨트롤타워에 생산버튼을 넣었다
배틀 생산조건도 잊지말고 수정하자




특수 유닛으로 맵에 단 1대만 등장한다는 설정이다
배틀이 생산되면 컨트롤타워와 장식은 파괴하자

배틀이 생산되면 인터셉터가 탑재된 캐리어도 생성한다
캐리어는 배틀을 따라다니고 킬수는 배틀에 넘겨준다
배틀이 파괴되면 캐리어도 삭제한다
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
var BC_EPD = 0;
var BC_SUB = 0;
var BC_flag = 0;
 
function BC_event(){
    if(BC_flag == 0){//배틀캐리어 미생성
        if( Command(P1, AtLeast, 1"Terran Battlecruiser") ){//배틀크루저가 1대 있으면
            CreateUnitWithProperties(1"Gantrithor""rest", P1,  UnitProperty(hanger = 5));//숨은 캐리어 생성
            KillUnit("Terran Control Tower", P1);//건물파괴
            KillUnit(126, P12);//"Crashed Battlecruiser" 건물파괴
            
            foreach( ptr, epd : EUDLoopUnit2() ){
                const Type = wread_epd(epd + 0x64/40);
                if( Type == $U("Terran Battlecruiser") ){ BC_EPD = epd; }//변수에 저장
                if( Type == $U("Gantrithor") ){
                    BC_SUB = epd;//변수에 저장
                    //충돌방지 관련
                    SetMemoryXEPD(BC_SUB + 0xDC/4, SetTo, 00x100000);//Is Normal
                    SetMemoryXEPD(BC_SUB + 0xDC/4, SetTo, 0x2000000x200000);//No Collide
                }
            }
            BC_flag = 1;//배틀캐리어 생성완료
        }
        
        if( Command(P12, Exactly, 0126) ){
            KillUnit("Terran Control Tower", P1); 
            BC_flag = 99;//건물 파괴시 옆의 건물도 같이 파괴 
        }
        if( Command(P1, Exactly, 0"Terran Control Tower") ){ 
            KillUnit(126, P12); 
            BC_flag = 99;//건물 파괴시 옆의 건물도 같이 파괴 
        }
    }
    
    if(BC_flag == 1 && BC_EPD > 0){//배틀캐리어 생성완료 상태면
        if(BC_SUB > 0){//서브 캐리어 이동
            const _x = wread_epd(BC_EPD + 0x28/40);
            const _y = wread_epd(BC_EPD + 0x28/42);
            wwrite_epd(BC_SUB + 0x10/40, _x);
            wwrite_epd(BC_SUB + 0x10/42, _y);
            dwwrite_epd(BC_SUB + 0x02C / 4, _x*256);
            dwwrite_epd(BC_SUB + 0x030 / 4, _y*256);
        }
        if( bread_epd(BC_EPD + 0x4C/41== 0){//배틀크루저가 파괴되면
            RemoveUnit("Gantrithor",P1);//숨은 캐리어도 삭제
            BC_EPD = 0; BC_SUB = 0; BC_flag = 99;
            talk_event(7900);
        }
    }
}
 
function afterTriggerExec() {
    BC_event();//매 프래임 마다 발생
}
cs
이제 캐리어를 안보이게 해야한다 캐리어 크기를 0으로 변경하는 눈속임을 사용하자 크기가 0이라도 공중유닛이 같은 위치에 있으면 비비기 현상이 발생한다 높이를 지상11로 변경하고 고급정보에서 공중유닛을 해제하자 인터셉터는 배틀에 어울리게 레이스로 외형으로 변경했다 캐리어가 선택불가라 생성이 안되니 무적설정도 해주자 맵을 실행하고 배틀캐리어 생산과 함재기 공격이 잘되는지 확인하자

COMMENT(0)