BannerCarrierUpdate
BannerCarrier는 반지의제왕 Battle for MiddleEarth 1에 있었던 기능이다.
떼거지 분대 유닛 개념이 C&C제너럴에서 원시상태... angry mob에서 도입된 후 체계화 된 것이 BFME인데, C&C3에서 없어진 것이 있다. 제너럴스나 BFME에서는 분대 구성원이 회복되었었는데... C&C3는 처음에 만든 뒤 죽기만 하고 다시 보충이 안 된다. GDI는 armory에 보병을 집어넣으면 회복되기는 하지만...
BannerCarrierUpdate는 BFME에서 banner carrier가 쓰는 logic이다. 배너 캐리어 업그레이드를 한 분대는 배너 캐리어에 의해 구성원이 조금씩 보충되었다.
이 로직이 게임상에는 아직 있으나, 사용되고 있는 곳이 없어서 참고할 것도 없고, buildmod를 할려고 치면 그런 로직은 없다면서 못 쓰게 한다. 사실 못 쓰는게 정상... 억지로 살려 써 본 결과 버그도 좀 있고... 어쨌든 성공은 했으나 가장 나은 방법을 여기 적겠다.
1. MOD SDK/Schemas/xsd/AssetTypeGameObject.xsd 를 연다. xsd파일들은 buildmod를 할 때 xml파일들을 읽어들일 때 참고하는 파일이다. 여기에 정의되어 있지 않은 것들은 쓰지 못한다. BannerCarrierUpdate는 물론 없다 ㅡ,.ㅡ... 없으니 넣어줘야지.
[xs:element name="BannerCarrierUpgrade" type="BannerCarrierUpgradeModuleData"]
라고 있는데 그 밑에다가
[xs:element name="BannerCarrierUpdate" type="BannerCarrierUpdateModuleData"]
라는 줄을 추가했다.
2. 그런데 거기엔 무슨 옵션을 쓸 수 있는지도 모른다. example이 없으니까. 반지의 제왕 ini파일에서 쓰이는 이름을 거의 그대로 갖다 쓸 수 있지만, 더 좋은 방법이 있다.
MOD SDK/Schemas/xsd/modules/BannerCarrierUpdate.xsd
파일을 컨닝한다. 생략되는 옵션이 있어도 괜찮으므로 모든 항목을 다 볼 필요는 없다.
3. 이제 이 모듈을 어떤 유닛에다가 넣어볼 차례. BannerCarrier유닛이 노드에는 잔존해 있으니... 바로 그게 컨페서다. GDI에도 있는데, 저격수의 파트너 스포터. 하지만 노드쪽이 실험하기 좋다!
4. NodMilitantSquad.xml을 수정.
[behavior][/behavior]사이에다가...
[grantupgradecreate][grantupgradecreate]
id="ModuleTag_AddMotherShipUpgrade"
UpgradeToGrant="Upgrade_NODConfessorUpgrade" /]
테스트하는데 업그레이드 하기까지 너무 시간이 오래 걸려서 컨페서 업그레이드가 공짜로 되도록 넣었다 ㅡ,.ㅡ
그리고 또 중요한게...
[hordecontain]태그.
거기에 보면 InitialPayload라는 것이 있는데 아무 기능도 하지 않는다 ㅡ,.ㅡ;;
Slots에 적힌 만큼 배럭에서 유닛이 튀어나온다. 하지만, 컨페서가 유닛을 "재생"하는 기능을 넣는순간...
배럭에서는 소총수 9명이 튀어나오고, 컨페서 마음대로 1명을 더 만든다. = 10명...;;;
그 멋대로 나온 1명은 컨트롤도 안 된다. 죽인다고 충원되지도 않고.
이것저것 해봤는데 가장 좋은 해결은
[hordecontain]에서, rank1, 2짜리 분대원들 위치 정보가 있다. rank2에다가 한명 분량을 더 넣는 것이다.
그러면 1명이 더 주어지는 버그는 해결 못 하지만 적어도 컨트롤은 된다 ㅡ,.ㅡ;;;
분대 충원은 9명까지만 되고, 1명은 그냥 보너스라고 생각하면 된다.
5. 노드 컨페서를 수정할 차례.
NODConfessor.xml
를 수정하고 [behavior]태그 안에 다음을 넣는다.
[bannercarrierupdate]
IdleSpawnRate = "10"
MeleeFreeUnitSpawnRate = "10"
DiedRespawnTime = "1s"
MeleeFreeBannerRespawnTime = "10"
BannerMorphFX = "FX_BulletHitNODHeroic"
UnitSpawnFX = "FX_BulletHitNODHeroic"
/]
FX는 멋있는것을 넣으면 좋겠지만 테스트니까. 시간도 테스트니까 짧게 했다. 애초에 게임에 신경써서 넣은 기능이 아니라 시간 단위 설정이 좀 엉망이다. msec단위일 것 같지만 그것 보다는 짧은 시간 단위로 설정되므로 좀 가지고 놀아볼 필요가 있음.
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0" id="mncHMovie" align="middle" height="374" width="420"][param name="quality" value="high"][param name="bgcolor" value="#ffffff"][param name="movie" value="http://dory.mncast.com/mncHMovie.swf?movieID=10005783720070917011729&skinNum=1"][param name="wmode" value="transparent"><embed src="http://dory.mncast.com/mncHMovie.swf?movieID=10005783720070917011729&skinNum=1" wmode="transparent" height="374" width="420"></object>
테스트 결과
밀리턴트만 수정했지만, RPG보병도 수정해야 하겠다.
BannerCarrier는 반지의제왕 Battle for MiddleEarth 1에 있었던 기능이다.
떼거지 분대 유닛 개념이 C&C제너럴에서 원시상태... angry mob에서 도입된 후 체계화 된 것이 BFME인데, C&C3에서 없어진 것이 있다. 제너럴스나 BFME에서는 분대 구성원이 회복되었었는데... C&C3는 처음에 만든 뒤 죽기만 하고 다시 보충이 안 된다. GDI는 armory에 보병을 집어넣으면 회복되기는 하지만...
BannerCarrierUpdate는 BFME에서 banner carrier가 쓰는 logic이다. 배너 캐리어 업그레이드를 한 분대는 배너 캐리어에 의해 구성원이 조금씩 보충되었다.
이 로직이 게임상에는 아직 있으나, 사용되고 있는 곳이 없어서 참고할 것도 없고, buildmod를 할려고 치면 그런 로직은 없다면서 못 쓰게 한다. 사실 못 쓰는게 정상... 억지로 살려 써 본 결과 버그도 좀 있고... 어쨌든 성공은 했으나 가장 나은 방법을 여기 적겠다.
1. MOD SDK/Schemas/xsd/AssetTypeGameObject.xsd 를 연다. xsd파일들은 buildmod를 할 때 xml파일들을 읽어들일 때 참고하는 파일이다. 여기에 정의되어 있지 않은 것들은 쓰지 못한다. BannerCarrierUpdate는 물론 없다 ㅡ,.ㅡ... 없으니 넣어줘야지.
[xs:element name="BannerCarrierUpgrade" type="BannerCarrierUpgradeModuleData"]
라고 있는데 그 밑에다가
[xs:element name="BannerCarrierUpdate" type="BannerCarrierUpdateModuleData"]
라는 줄을 추가했다.
2. 그런데 거기엔 무슨 옵션을 쓸 수 있는지도 모른다. example이 없으니까. 반지의 제왕 ini파일에서 쓰이는 이름을 거의 그대로 갖다 쓸 수 있지만, 더 좋은 방법이 있다.
MOD SDK/Schemas/xsd/modules/BannerCarrierUpdate.xsd
파일을 컨닝한다. 생략되는 옵션이 있어도 괜찮으므로 모든 항목을 다 볼 필요는 없다.
3. 이제 이 모듈을 어떤 유닛에다가 넣어볼 차례. BannerCarrier유닛이 노드에는 잔존해 있으니... 바로 그게 컨페서다. GDI에도 있는데, 저격수의 파트너 스포터. 하지만 노드쪽이 실험하기 좋다!
4. NodMilitantSquad.xml을 수정.
[behavior][/behavior]사이에다가...
[grantupgradecreate][grantupgradecreate]
id="ModuleTag_AddMotherShipUpgrade"
UpgradeToGrant="Upgrade_NODConfessorUpgrade" /]
테스트하는데 업그레이드 하기까지 너무 시간이 오래 걸려서 컨페서 업그레이드가 공짜로 되도록 넣었다 ㅡ,.ㅡ
그리고 또 중요한게...
[hordecontain]태그.
거기에 보면 InitialPayload라는 것이 있는데 아무 기능도 하지 않는다 ㅡ,.ㅡ;;
Slots에 적힌 만큼 배럭에서 유닛이 튀어나온다. 하지만, 컨페서가 유닛을 "재생"하는 기능을 넣는순간...
배럭에서는 소총수 9명이 튀어나오고, 컨페서 마음대로 1명을 더 만든다. = 10명...;;;
그 멋대로 나온 1명은 컨트롤도 안 된다. 죽인다고 충원되지도 않고.
이것저것 해봤는데 가장 좋은 해결은
[hordecontain]에서, rank1, 2짜리 분대원들 위치 정보가 있다. rank2에다가 한명 분량을 더 넣는 것이다.
그러면 1명이 더 주어지는 버그는 해결 못 하지만 적어도 컨트롤은 된다 ㅡ,.ㅡ;;;
분대 충원은 9명까지만 되고, 1명은 그냥 보너스라고 생각하면 된다.
5. 노드 컨페서를 수정할 차례.
NODConfessor.xml
를 수정하고 [behavior]태그 안에 다음을 넣는다.
[bannercarrierupdate]
IdleSpawnRate = "10"
MeleeFreeUnitSpawnRate = "10"
DiedRespawnTime = "1s"
MeleeFreeBannerRespawnTime = "10"
BannerMorphFX = "FX_BulletHitNODHeroic"
UnitSpawnFX = "FX_BulletHitNODHeroic"
/]
FX는 멋있는것을 넣으면 좋겠지만 테스트니까. 시간도 테스트니까 짧게 했다. 애초에 게임에 신경써서 넣은 기능이 아니라 시간 단위 설정이 좀 엉망이다. msec단위일 것 같지만 그것 보다는 짧은 시간 단위로 설정되므로 좀 가지고 놀아볼 필요가 있음.
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0" id="mncHMovie" align="middle" height="374" width="420"][param name="quality" value="high"][param name="bgcolor" value="#ffffff"][param name="movie" value="http://dory.mncast.com/mncHMovie.swf?movieID=10005783720070917011729&skinNum=1"][param name="wmode" value="transparent"><embed src="http://dory.mncast.com/mncHMovie.swf?movieID=10005783720070917011729&skinNum=1" wmode="transparent" height="374" width="420"></object>
테스트 결과
밀리턴트만 수정했지만, RPG보병도 수정해야 하겠다.
'모드강좌' 카테고리의 다른 글
캐리어 인터셉터(?) 바꾸기. (0) | 2007.10.21 |
---|---|
라이플분대 삽질하면 나오는 건물 바꾸기 (0) | 2007.09.23 |
jonwil의 도구 모음 (0) | 2007.09.02 |
빌더 버그. (0) | 2007.08.29 |
CSF 파일 포멧 (0) | 2007.08.26 |