이번 글은, 가이드/팁 관련의 워터 엘리멘탈에 관한 글에 대한 보충 설명이 될 수도 있겠군.

유닛중 찰거머리가 따로 없는 것들이 바로 스플릿유닛인데, 안타깝게도 둘 밖에 없단 말이야.
자기 전용 유닛을 만들었는데, 이게 그다지 세지는 않지만 계속 걸리적 거리는 용도로 쓰고 싶다면...스플릿유닛으로 만들어 줄 수 있다.
일단은 기존의 스플릿 규정을 따르는 것이 좋겠지...
CIV4UnitInfos.xml에서 자기 유닛을 만든 뒤, <PythonPostCombatLost>postCombatSplit(pCaster,pOpponent)</PythonPostCombatLost>를 집어 넣어라.
뭐 당연히, 타르 데몬이나 워터 엘리멘탈을 보면 어떻게 해야 하는지 참고 가능하니 예시는 필요 없다고 보고...
구지 자기가 만들지 않고 기존 유닛중에 너무 잉여한 분이 있어서;; 조금 오래 써먹고 싶다 싶은 유닛 있으면 넣어도 되긴 하겠다.
다만, 전투 가능한 유닛에 넣어야겠지. 일꾼이나 정착민 같은 것에 넣지는 말고...

태그를 집어넣기만 하면 작동한다는 것인데...실제로는 어떻게 작용하는가...
CvSpellInterface.py에서 def postCombatSplit(pCaster, pOpponent): 구문을 찾아가자.
def postCombatSplit(pCaster, pOpponent):
if pCaster.isHasPromotion(gc.getInfoTypeForString('PROMOTION_WEAK')) == False:
pPlayer = gc.getPlayer(pCaster.getOwner())
iUnit = pCaster.getUnitType()
newUnit = pPlayer.initUnit(iUnit, pCaster.getX(), pCaster.getY(), UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)
newUnit2 = pPlayer.initUnit(iUnit, pCaster.getX(), pCaster.getY(), UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)
newUnit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_STRONG'), False)
newUnit2.setHasPromotion(gc.getInfoTypeForString('PROMOTION_STRONG'), False)
newUnit.setDamage(25, -1)
newUnit2.setDamage(25, -1)
if pCaster.isHasPromotion(gc.getInfoTypeForString('PROMOTION_STRONG')) == False:
newUnit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_WEAK'), True)
newUnit2.setHasPromotion(gc.getInfoTypeForString('PROMOTION_WEAK'), True)
newUnit.setDuration(pCaster.getDuration())
newUnit2.setDuration(pCaster.getDuration())
CyInterface().addMessage(pCaster.getOwner(),True,25,CyTranslator().getText("TXT_KEY_MESSAGE_SPLIT", ()),'',1,gc.getUnitInfo(iUnit).getButton(),ColorTypes(7),pCaster.getX(),pCaster.getY(),True,True)

해석은 뭐 따로 필요없겠지. 상단에서 링크했던 포스팅이 바로 이걸 해석한 것 뿐이니까.
기존 유닛으로부터 상속 받는 것이 하나도 없다는 점은...
 소환 당시 소환사가 수준이 높아서 그 덕분에 소환시 자동으로 얻은 승급이 있을 경우...쪼개져서 나온 녀석은 그런거 없다...의 상태가 된다는 문제가 있지.
 소환이 아니라 생산되는 경우도 마찬가지 일거고. 경험치조차 계승되지 않으니까 그냥 맨몸이겠지.
 따라서 어차피 소환이나 생산 같은...발전 정도에 따라 나올 때 승급이나 경험치 등 뭔가 더 얻어볼 수 있는 유닛보다는,
 용병이나 선동가, 게이트 유닛같은 녀석들을 대상으로 하는 것이 좋다.(당장 타르 데몬이 게이트 유닛이잖아)

무한루프;에 빠뜨리는 방법은...
중간에 약한 상태가 붙는 구문을 없애던가, 약한 상태를 치료하는 주문을 추가하던가, 약한 상태를 없애주는 건물을 넣거나...별별 방법이 다 있겠지.
게임에서야 당연하게도^^ 그런 방법 없다. 만들어야 된다. 

세계 유닛은 어지간하면 스플릿유닛으로 만들지 않기를 권하는 바인데...장비 복제에 대한 안전장치가 없어.
무슨 소린고 하니...장비를 원래 들고 나오게 되는 유닛의 경우, 그걸 어디 내버렸다고 쳐도, 스플릿유닛으로 만들면...
 패배시 본인은 약화되었을 지언정, 원래 들고 나왔어야 할 무기를 분리된 유닛 각자가 또 가지고 나오기 때문이지. 장비 불려먹기...
애당초 모체의 승급을 하나도 참고하지 않기 때문에, 원칙적으로는 장비 복제가 일어나지 않으나,장비를 기본 승급처럼 들고 나오는 녀석들은 그렇지 않다는 얘기야.


여기까지는, 기존에 제공되는 스플릿유닛의 정보를 사용하는 것이고...(튜토리얼?)
명색이 개조일람인데, 저걸 손봐야 의미가 있겠지^^;

위의 XML개조 단계에서, <PythonPostCombatLost>postCombatSplit2(pCaster,pOpponent)</PythonPostCombatLost>를 집어 넣자. 2들어간거 보여?
당연히, CvSpellInterface.py에서 def postCombatSplit2(pCaster, pOpponent): 구문을 새로 만들어야지. 생긴 것도 비슷하게...
def postCombatSplit2(pCaster, pOpponent):
iExp = pCaster.getExperience() - 10
if iExp > 0:
pPlayer = gc.getPlayer(pCaster.getOwner())
iUnit = pCaster.getUnitType()
iExp2 = iExp / 2
iExp = iExp - iExp2
newUnit = pPlayer.initUnit(iUnit, pCaster.getX(), pCaster.getY(), UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)
newUnit2 = pPlayer.initUnit(iUnit, pCaster.getX(), pCaster.getY(), UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)
newUnit.setExperience(iExp, -1)
newUnit2.setExperience(iExp2, -1)
newUnit.setDamage(25, -1)
newUnit2.setDamage(25, -1)
newUnit.setDuration(pCaster.getDuration())
newUnit2.setDuration(pCaster.getDuration())
CyInterface().addMessage(pCaster.getOwner(),True,25,CyTranslator().getText("TXT_KEY_MESSAGE_SPLIT", ()),'',1,gc.getUnitInfo(iUnit).getButton(),ColorTypes(7),pCaster.getX(),pCaster.getY(),True,True)

원칙적으로 전부 빨간 줄인데, 어차피 복붙해 오는 거라면...그나마 정말 달라지는 부분을 못알아 볼 수 있으므로. 밑줄로 처리했다.

승급을 물려줄 수도 있지만, 새로 만드는 유닛은 그럼 레벨은 1인데 꽤 많은 공짜 승급을 날로 먹을 수도 있는지라...장비도 그렇고...
그래서 경험치를 물려주는 방안을 고려해 봤어. 스플릿유닛의 가장 큰 모순 중 하나가, 이겨서 경험치를 쌓아도 별로 기쁘지 않다는 점이었잖아.
이대로면...경험치가 10이 넘기만 한다면, 10을 뺀 나머지 경험치를 분리된 유닛이 반씩 나눠 갖고 나오겠지.
당연히 10미만일 때 전사하면 그대로 꽥~ 하는거고.
레벨도 승급도 모두 물려주는 것이 가능은 한데, 이러면 스플릿유닛은 단지 끈질기기만 한 유닛이 아니라...사기 유닛이 되겠지--;


너무 심한 개조는 게임불감증의 제 1 원인이야^^;;;;
 
죠니 사사키가 작성한 글입니다.
,