이 블로그 검색

2018년 10월 24일 수요일

외교술이 게임 프로그램 내부에서 어떻게 작동하는가? (for HoMM III 3.2 & 4.0)

이 글은 http://heroescommunity.com/viewthread.php3?TID=28341 의 글을 구글번역기로 번역한 후 한국인이 읽기 쉽도록 수정한 글입니다.
일단 해당 글도 비판을 받은 부분이 있으니 잘 보시기를 바랍니다.

외교술이 어떻게 작동하는가? (for HoMM III 3.2 & 4.0)

(변수가 많아서 변수를 설명하고 있다. )

1. [Hero_Power]

영웅의 1차스킬 전투능력이 중요하다.
Hero_Power = sqrt ((1 + 0.05 * Attack) * (1 + 0.05 * Defense)); 

2. [Total_Army_Power]

영웅 군대의 총 힘은 영웅과 군대의 힘을 곱한 후 소수점을 버림으로 이루어진다. 
같은 수준의 군대라도 마력영웅이 조금 더 불리하다. 
Total_Army_Power = floor (Hero_Power * Army_Power); 

Army_Power는 아래 링크에서 Fight Value와 유닛의 숫자를 곱한 후 합한 값을 생각하자. 
http://heroes.thelazy.net/wiki/AI_value
점수만 보고 생각할 때, 피닉스가 주당 4기에서 2+1기로 HoTA에서 패치 되었는데, 
피닉스가 아니라 고스트드래곤에게 그런 기회가 와야한다고 생각한다. 아니면 해골변환기에서 좀비를 해골용 뼈 부속으로라도 변환이라도 좀 시켜줬으면... 


3. [k]

k = Total_Army_Power / Neutrals_Power;
 k 값은 서로의 군대의 전투능력의 비를 나타낸다.

4. [Power_Factor] (fixed)

Power_Factor = 11 if k >= 7;
Power_Factor = floor(2*(k - 1)) if 1 <=;= k < 7;
Power_Factor = -1 if 0.5 < k < 1;
Power_Factor = -2 if 0.333 < k <= 0.5; 
Power_Factor = -3 if k <= 0.333;

주의: 0.333은 333/1000을 의미하지 , 1/3을 의미하지 않는다. 
Now I am sure.(확신하단다)

 5. 동정이라고 번역되지만 동질감이 좀 더 해석이 용이 하겠다. [Sympathy]

영웅의 군대에 중립유닛과  같은 종류의 유닛이 존재하는가가 핵심이다. 0과 1사이가 굉장히 크기때문에 멍청한 컴퓨터의성을 점령한 후 주위에 남아있는 고위 유닛은 한마리라도 어디서 보충을 해서 공격하자.

Sympathy = 0 ;영웅의 군대에 중립유닛과 같은 유닛이 존재하지 않을 때.

Sympathy = 1 ;적어도 한종류의 유닛이 중립유닛과 같은 종류일 때, 같은 종류라는 것은 업그레이드, 다운그레이드 관계에 있는 유닛을 말한다. 
Sympathy = 2 ; 같은 종류인 영웅의 유닛이 다른 유닛의 비해 압도적으로 많을 때 포트리스 군대이지만 놀이 압도적으로 많다면 중립 놀군대는 좀 더 영웅의 군대에 합류하고 싶어진다.  그 압도적인을 어떻게 수적 표현으로 나타낼지는 모른다. 
if total number of creatures (or their upgrades/downgrades) of the same kind as neutrals in hero's army are strictly bigger than number of all the other beings in the army;
주의 다음은 합류계산에만 작용한다. 
  길에 있는 중립유닛들 중에 모든 정령류가 들어갈 수 있는 유닛이 있는가 보다. 합류계산에 있어서 공기의 정령을 업그레이드 해서 계산할 때는 땅, 물, 불 정령은 할 수 없다.  그리고 폭풍의 정령을 다운그레이드해서 계산할 때도, 마그마, 얼음, 에너지 정령은 그렇게 하지 못한다. 2레벨 유닛이 숫자가 가장 많으니  컨플럭스를 만들면서 페널티를 준듯하다. 


6. [카리스마 (Ch)]  

Ch = Power_Factor + Diplomacy_Level + Sympathy;


7. [공격성 (X)] (작을 수록 합류)

X = -4 (always)  완전 중립
X = 10 (always) 야만적 중립 
X in [1,7] for 친근한 중립 
X in [1,10] for 공격적 중립;
X in [4..10] for 적대적 중립;
 정수일 것으로 생각된다. 이 값은 새로운 게임을 시작할 때, 저 값 사이의 값으로 난수발생기로 정해진다. 


이제 부터 계산에 들어간다. 

8. 카리스마가 공격성보다 약하면 싸운다.  (Ch

9. 카리스마가 공격성보다 크거나 같다면 다양한 선택지가 생긴다. (Ch>=X)

  • Sympathy + Diplomacy_Level + 1 >= X 이면 중립유닛이 공짜로 합류한다. (같은 수준의 전투력인 군대가 카리스마가 있다고 가정한다. 중요한 것은 이과 정은 9번과정을 거치고 나서를 말한다. 일단 군대로 겁박하는 것이 중요함.
  • 9-1이 아닐 경우 Sympathy + 2*Diplomacy_Level + 1 >= X, 외교술 레벨에 2를 곱한 후, 돈으로 합류를 요구한다. 여기에는 이 중립유닛을 사는데 필요한 총 gold를 말한다. 자원은 요구하지 않는다. 
  • 합류를 거절 했을 때,  Ch>X일 경우는, 중립유닛을 내쫓거나, 공격할 수 있다. 
  • 합류를 거절 했을 때, Ch=X일 경우는 공격당한다. 연립해서 구할 수 있다.  외교술 없이 비슷한 수준의 군대인데, 공짜로 합류한다는 경우나, 군대가 많이 약하지만 외교술로 어거지로 돈으로 구매해서 살 수 있는 경우, 거절하면 항복하거나 죽어야 한다는 것을 명심하자.
쉬움 난이도에서는 모든 영웅은 숨겨진 외교술 기술을 가지고 있다. 기술 없을 때 1, Basic일때 2, advance 및 Expert는 3으로 여전히 최대 3이다.  쉬움 난이도가 아닐 때는, 외교술이 없는 영웅은 계산식을 볼 때, 돈으로 중립유닛을 살 수 없다. 

그외 답변에서 알 수 있는 정보들, X값인 10일 때는 절 대 합류 할 수 없다.
동질감 (2) + 2*3(외교술 전문가) +1  = 9 < 10. 퇴각은 시킬 수 있다. 

가장 많이 본 글