
ã¡ãã£ãšããæŽå²
ã²ãŒã ã¯Cã§èšè¿°ãããŠãããWindowsããã³Macã§äœ¿çšã§ããŸãã å ¬åŒãªãªãŒã¹ã¯1998幎10æã«è¡ãããŸããã Windowsã®å Žåãããããã²ãŒã ã¯Visual Studio 97ã§ã³ã³ãã€ã«ãããŸããããã¹ã¿ãžãª6ã¯ãŸã 人æ°ããããŸããã§ããã 1999幎ã«ãã²ãŒã ã¯ããŒãžã§ã³1.0.0.3ã«æŽæ°ãããæ¢ã«æãåºã䜿çšãããŠããVisual Studio 6ã§ã³ã³ãã€ã«ãããŸãã;ããã1.1ïŒc3 1.0.1.0ïŒã¯åŸã«è±èªçã®ã²ãŒã çšã«ãªãªãŒã¹ãããŸããã
ã³ã³ãã€ã«æ¥ïŒ 1999幎9æ3æ¥éææ¥ãåå7æ31å17ç§
ãªã³ã«ãŒããŒãžã§ã³ïŒ 6.0
ãã·ã³ã¿ã€ãïŒ Intel 386以éã®ããã»ããµãŒãšäºææ§ã®ããããã»ããµãŒ
PEãã©ãŒãããïŒ PE32
ãµãã·ã¹ãã ïŒ Windowsã°ã©ãã£ã«ã«ãŠãŒã¶ãŒã€ã³ã¿ãŒãã§ã€ã¹ïŒGUIïŒãµãã·ã¹ãã
æå°OSïŒ Windows 95
æå°OSããŒãžã§ã³ ïŒ4.0
ãµãã·ã¹ãã ããŒãžã§ã³ïŒ 4.0
ãã¡ã€ã«ããŒãžã§ã³ïŒ 0.0
ãŸããã²ãŒã ã®ãã¡ã³ã¯ãå®è¡ãã¡ã€ã«ãä¿®æ£ããŠã é«è§£å床ã®ç»é¢ã§å®è¡ã§ããããã«ããŸããã

ã²ãŒã ã¯2çªç®ã®éšåã®ã°ã©ãã£ãã¯ãšã³ãžã³ã䜿çšããŸãããŸããäžéïŒãããã°ïŒããŒãžã§ã³ã®ã¹ã¯ãªãŒã³ã·ã§ããããããå€ãã°ã©ãã£ãã¯ãã¶ã€ã³ã®èŠçŽ ã衚瀺ãããŸãã
ã·ãŒã¶ãŒ2äž



ã·ãŒã¶ãŒIIIïŒã¢ã«ãã¡ïŒ
éè·¯ãæŒè¹ãå庫ã«æ³šæããŠãã ããã


ã·ãŒã¶ãŒIIIïŒæçµçïŒ


ãããŠä»ãããå ·äœçã«
ãããããã²ãŒã ã§ã¯å€ãã®å€æ°ããããžãã¯ãã³ããŒãã®åœ¢åŒã§ã³ãŒãã«ããŒãã³ãŒãã£ã³ã°ãããŠãããæå®ãããã³ãŒãäŸã¯c3_revãã£ã¬ã¯ããªããååŸããããœãŒã¹ã¯ã³ã³ãã€ã«ãããŠãããã°ã¢ãŒãã§å®è¡ãããããžãã¯ã段éçã«ç¢ºèªã§ããŸãã ããã¯ããŒã ããå€æãããšããœãŒã¹ã³ãŒããåäœç¶æ ã«ä»äžããåèã¯ã¡ã³ããã³ã¹ã«åŸäºããŠããŸãã
ç§ãã¡ã®åæ¢ãªããŒã«ã©ã€ã¶ãŒã¯ãã²ãŒã ããã·ã¢åãããšãå®è¡å¯èœãã¡ã€ã«ã®ãã€ããªã³ãŒããç·šéããc3.engãc3.rusã«çœ®ãæããåæã«åŸã®ããããšã®äºææ§ãå£ããŸããã
ã¡ã€ã³æ©èœã³ãŒãïŒåŸ©å
æžã¿ïŒ
int main(int argc, char* argv[] ) { int result; // eax@2 signed int v5; // [sp+4Ch] [bp-20h]@7 struct tagMSG Msg; // [sp+50h] [bp-1Ch]@21 HINSTANCE hInstance = GetModuleHandle(0); byte_6606BC = 0; if ( fun_loadSettings() ) { if ( fun_readLanguageTextFiles("c3.eng", "c3_mm.eng") ) { fun_loadDefaultNames(); fun_logDebugMessage("OK :Game text loaded.", 0, 0); if ( fun_setupMainWindow(hInstance) ) {} .... //some code } } }
ããã¹ããªãœãŒã¹/ããŒã«ãªãŒãŒã·ã§ã³
ã²ãŒã ã®ããã¹ãã®ã»ãšãã©ã¯ãããã·ã§ã³ã®ããã¹ãããŒã¿ãé€ãããã¡ã€ã«C3.eng / C3_mm.engã«ãããŸã
C3.engãã¡ã€ã«ã«ã¯ã建ç©ãã€ãã³ããå± äœè ãªã©ã®èª¬æãå«ãŸããŠããŸãã é·ã28ãã€ãã®ããããŒãšãé·ã8000ãã€ãã®ã€ã³ããã¯ã¹ããŒãã«ã§æ§æãããŸãã ã€ã³ããã¯ã¹ããŒãã«ã«ã¯ãéžæããã€ã³ããã¯ã¹ã®ããã¹ããé 眮ããããªãã»ãããå«ãŸããŸãã ããŒã«ãªãŒãŒã·ã§ã³ãã¡ã€ã«ããããã¹ããååŸããããã®ã¢ã«ãŽãªãºã ã¯ãããšãã°ãã€ã³ããã¯ã¹TITLE_ADVISOR_EDUCATIONïŒ16ïŒãæã€æè²ã¢ããã€ã¶ãŒã®ãŠã£ã³ããŠã®ã¿ã€ãã«ã®ããã¹ããååŸãããããªãã®ã§ããã€ã³ããã¯ã¹ã®é åãã16çªç®ã®èŠçŽ ãéžæããååŸãããªãã»ããã§æåŸã®0ãŸã§æåãèªã¿åãå¿ èŠããããŸãã
ã€ã³ããã¯ã¹ããŒãã«ã®ã¿ã€ãã«ãšèŠçŽ ã®èª¬æ
struct C3EngHeader { char tag[16]; // int numGroups ; // int numStrings ; // int unknown ; }; struct C3EngIndexEntry { int offset; // int inUse; };
ãŠãŒã¶ãŒã€ã³ã¿ãŒãã§ãŒã¹
ãã¿ã³ãé€ããŠãŒã¶ãŒã€ã³ã¿ãŒãã§ã€ã¹èŠçŽ ã®ãµã€ãºã¯ãã³ãŒãã«èšè¿°ãããŠããŸãã ãããã£ãŠãæ å ±ãŠã£ã³ããŠãŸãã¯ãã«ãããã©ãã°ããããšã¯ã§ããŸããã æåã«ããŠã£ã³ããŠã®èæ¯ãæç»ããã次ã«ããã«ä»éããèŠçŽ ãæç»ãããŸããã

ã¹ã¯ããŒã«ããŒé åã§ã¯ãªãã¯ãåŠçããäŸã次ã«ç€ºããŸã
int fun_dialogFile_handleScrollbarClick() { signed int result; // eax@2 int v1; // ST60_4@15 int v2; // [sp+4Ch] [bp-10h]@5 int v3; // [sp+50h] [bp-Ch]@13 if ( filelist_numFiles > 12 ) { if ( mouse_isLeftClick ) { v2 = filelist_numFiles - 12; if ( mouseclick_x >= screen_640x480_x + 464 ) { if ( mouseclick_x <= screen_640x480_x + 496 ) { if ( mouseclick_y >= screen_640x480_y + 145 ) { if ( mouseclick_y <= screen_640x480_y + 300 ) { v3 = mouseclick_y - (screen_640x480_y + 145); if ( mouseclick_y - (screen_640x480_y + 145) > 130 ) v3 = 130; v1 = fun_getPercentage(v3, 130); filelist_scrollPosition = fun_adjustWithPercentage(v2, v1); window_redrawRequest = 1; result = 1; } else {result = 0;} }else{result = 0;} }else{result = 0;} }else{result = 0;} }else{result = 0;} }else {result = 0;} return result; }
ã²ãŒã å ã®ãã¿ã³ã®é«ãã¯åºå®ãããŠããã3ã€ã®ãã¯ã¹ãã£ã䜿çšããŠæç»ããããã¿ã³ã®æ¬äœãåããããã«äžå€®ã®ãã¯ã¹ãã£ãç¹°ãè¿ãããŸãã ããšãã°ããã¿ã³ã¯éåžžã®ç¶æ ã§ãã



ãŠã£ã³ããŠã¯ã次ã®ã¢ã«ãŽãªãºã ã«åŸã£ãŠæç»ãããŸãããŠã£ã³ããŠã®ç«¯ã¯ç¹å¥ãªãã¯ã¹ãã£ã§æç»ãããäžå€®ã¯ã·ãŒã ã¬ã¹ãªãã¯ã¹ãã£ã§å¡ãã€ã¶ãããŸã









巚倧ãªã¡ã«ããºã ã®çŽ°éš
ã²ãŒã ã¯å€æ°ã®ãµãã·ã¹ãã ïŒæ°Žã®å©çšå¯èœæ§ã建ç©ã®ç¶æ ãæè²ã嚯楜ãªã©ïŒã§æ§æãããããããã詳现ã«æ€èšãããšãéåžžã«ã·ã³ãã«ã§ããããã®æ©èœã®èª¬æã¯ããã€ãã®æ®µèœã«åãŸããŸãã ãããã®ãã®ã¢ãã®å ±åäœæ¥ã¯ããã©ã³ã¹ã®ãšããåºæ¿çãªã²ãŒã ãã¬ã€ãæäŸããŸãã ãããã®ãµãã·ã¹ãã ã¯å®éã«ã¯çžäºäœçšããªãããšã«æ³šæããŠãã ããïŒåå Žã®å Žæã¯è¿é£ã®åŠæ ¡ãåžå Žã«åœ±é¿ãäžãããå»åž«ã¯éãéãã俳åªã«ã€ããŠäœãç¥ããŸããïŒã 圱é¿ã®å ±éç¹ã¯èªå® ã§ããããµãã·ã¹ãã ã®å¹æãèç©ããŸãããµãã·ã¹ãã ã®æ°ãå¢ãããšããã®ãµãã·ã¹ãã ã®ã¬ãã«ã¯é«ããªããŸãã 絶察çãªçšèªã§ã®å®¶ã®ã¬ãã«ã¯ãçŽçšé¡ãšå©çšå¯èœãªåŽåè ã®æ°ã«åž°çããŸãã
ã«ãŒã

ç°ãªãã¿ã€ãã®åžæ°ã®ã«ãŒãã¯ç°ãªããŸããããšãã°ããã€ã³ãA2ãçã®å ¥ãå£ãšãªã¢ã«ããå Žåã§ããé·å®ïŒãšã³ãžãã¢ïŒã«ãŒãã¯ãã¹A1-A2-A1ã§æ§æããããã®åŸãããŒã¹ã«æ»ããŸãã ã ã¢ãã³ãã³ãã¯éè·¯ïŒæ©ãéãçŽå±ãåéšã®è²¯èµã¿ã€ã«ãåºåãç Šã®æ·å°ïŒã«æ²¿ã£ãŠã®ã¿ç§»åããŸãã æµãéçåç©ã¯éãééã§ããŸããã å人ãšã¡ã¬ããŒã¿ãŒã¯éè·¯ã«ä¹ãããšãã§ããŸãããå¯èœã§ããã°ãç®çå°ãŸã§ã®éè·¯ãæ è¡ããããšã奜ã¿ãŸãã ããŒã¿ãŒã¯åºãç Šãæ©ãããšãã§ããŸããã

建ç©ã«ã¯åºå£ãã€ã³ãããããå ¥å£ãã€ã³ããšäžèŽããªãå ŽåããããŸãã çºçã®åªå 床ã¯äžã«ã·ãããããå ¥åã®åªå 床ã¯é«ããªããŸãããšã³ããªãã€ã³ããšåºå£ãã€ã³ãã®éã«ã¯éåžžã«é·ãè·é¢ããããŸãã
以äžã§ã¯ãéœåžã®äœæ°ã®ã«ãŒãã®æ倧é·ãæå®ããŸããããç°ãªãæ¡ä»¶äžã§çãã«ãŒããšé·ãã«ãŒãã®åãæ¿ããçºçããŸããããŸã ãã¹ãŠãç解ããŠããŸããã ããšãã°ãå人ã¯ãåžå Žã®è¿ãã«çŽå±ãããå Žåãé·ãã«ãŒããå«ã¿ãŸãã
å± äœè ã¿ã€ã | ã«ãŒãã®é·ã/çãïŒã¿ã€ã«åäœïŒ |
ç¥äºããšã³ãžã㢠| 52/43 |
俳åªãå£é士ã調æåž«ãçšå眲 | 43/35 |
åžç¥ãå»è ãå€ç§å»ãæåž«ãå人ãå ¥æµŽãçŸå®¹é¢ | 35/26 |
ãã€ãã¹ã«ãŒãã¯ããšãªã¢ã«å ¥ãåã«èšç®ãããŸãã ãæé©ãªãã«ãŒãã®éžæãéå§ããåã«ãåŽåè ã®åºå£å°ç¹ããéè·¯ã®ããããæ¹åãžã®å¯èœãªçµè·¯ã®å°å³ãäœæãããŸãã ããã«ãåŸãããåçµè·¯ã¯ã¿ã€ã«ã§èŠãããåŽåè ã®äœæ¥ãšãªã¢ã®å»ºç©ã¯ã圌ã®ãµãŒãã¹ã®å¿ èŠæ§ã«ã€ããŠè³ªåãããŸãã ãã®ã€ã³ãžã±ãŒã¿ãŒã§ã¯ãã¯ãŒã«ãŒã®ãµãŒãã¹ã®éèŠãé«ãããŒã·ã¥ã¢ãŠããéžæãããŸãã

ããšãã°ãç¥äºã¯ãç«çœã®å±éºæ§ãæãé«ãå°åã«è¡ããŸãã ããããé£æ床ã¯ãããšãæ倧ã¬ãã«ã®ç«äºããã£ããšããŠãã圌ã¯å°ããªå®¶ã®çŸ€ãã«ã¯è¡ããªãããç«äºã®å±éºã®ã¬ãã«ããŸã 蚱容ã§ããåºããšãªã¢ã«è¡ãããšã§ãã ããã¯ã倧ããªãšãªã¢ã®åèšã¬ãã«ãå°ããªãšãªã¢ã®ãã®æ°å€ãè¶ ããããã§ãã åãããšãä»ã®ãµãŒãã¹ã¯ãŒã«ãŒã«ãåœãŠã¯ãŸããŸãã ãã¹ã®éèŠåºŠãèšç®ããã¢ã«ãŽãªãºã ã¯ãããŸããŸãªã¿ã€ãã®ãµãŒãã¹ã䜿çšããããã«çµ±äžãããŠããŸãã
äŸå€ã¯ãã«ãŒãããããããããšãã«ãåžå Žã®ååãèæ ®ãããã¬ãŒããŒã®è¡åã§ãã 次ã®ç»åã¯ããã¬ãŒããŒãéãããšãã§ããå¯èœãªãã¹ã瀺ããŠããŸããå亀差ç¹ã¯ãåŠçããã«ãŒãã®æ°ãå¢ãããŸãã æåŸã«ãåžå Žããæ倧éã®ååã販売ãããããçœãè¡é²ãéžæãããŸãã ãã¬ãŒããŒãéžæããã«ãŒãã®ãšã³ããã€ã³ãã«å°éããååãæ®ã£ãŠããªãå ŽåãããŒã±ããã«æãè¿ãã«ãŒããæ€çŽ¢ããååãæ®ã£ãŠããå Žåãåãã«ãŒãã«æ²¿ã£ãŠæ»ããŸãã

家ã®é²å
1ã€ã®ã¿ã€ã«ã®ãµã€ãºã島ãããäœãã¬ãã«ã®å®¶ãé£äººãšçµã¿åããããšã2x2ã¿ã€ã«ã®ãµã€ãºã®åãã¬ãã«ã®å®¶ãåŸãããŸãã 家ãçµåããããã®è¿œå æ¡ä»¶ã¯ã ããããããçæããããã«äœ¿çšããããã€ãminimap_infoé å[26244]ããã®æ¬äŒŒä¹±æ°ã®æåã®3ãããã®äžèŽã§ãããããã£ãŠãéœåžå ã®ãã¹ãŠã®å°å±ãçµåã§ããŸããã


ããã«ãããã¬ãã«ã«éãããšã次ã®ã¬ãã«ã®å®¶ã®ãµã€ãºãçŸåšã®å®¶ã®ãµã€ãºããã倧ããå Žåãé£æ¥ããé åããã£ããã£ãããŸãã
äžå³¶->倧島ïŒ1Ã1-> 2Ã2ïŒ


äžèŠæš¡ãŽã£ã©->倧èŠæš¡ãŽã£ã©ïŒ2Ã2-> 3Ã3ïŒ


äžå®®æ®¿->倧宮殿ïŒ3Ã3-> 4Ã4ïŒ


次ã®ã¿ã€ã«ãæ¡åŒµã«äœ¿çšã§ããŸãïŒç©ºã®åºç»ãåºãã¬ãã«ä»¥äžã®åäžã®å®¶ïŒã 家ã®æ¡åŒµã¯4ã€ã®æ¹åïŒåã西ãåãæ±ïŒã§è§£æ±ºãããŸã
éœåžäººå£
åžã®äººå£ã¯ã0ã99æ³ã®å¹Žéœ¢ã§åããããŸãã å家ã«ã¯ããã®å®¶ã«äœãäœæ°ã®æ°ãšå¹Žéœ¢ã瀺ãcharã®äººã [100]ã®é åãå«ãŸããŠããŸãïŒé åã®ã€ã³ããã¯ã¹ã¯äœæ°ã®å¹Žéœ¢ã«å¯Ÿå¿ããèŠçŽ ã®å€ã¯ç¹å®ã®å¹Žéœ¢ã®äœæ°ã®æ°ã«å¯Ÿå¿ããŸãïŒã æ¯å¹Žã®åãã«ãé åã®èŠçŽ ã1ã€ã®èŠçŽ ã ãã·ããããããããé·ãèèãåé€ãããæ°çå çšã®ã»ã«ãè¿œå ãããŸãã 家ã®äžã®åäŸã®åºçŸã®å¯èœæ§ãšãè幎æããã®å®¶ã®äººå£ã®èªç¶ãªæžå°ãèšç®ããé¢æ°ãåŒã³åºãããŸãã
é衚瀺ã®ããã¹ã
void fun_gametick_population() { ...//some code cityinfo_happiness_immigrationAmount[4517 * ciid] = 0; cityinfo_happiness_emigrationValue[4517 * ciid] = 0; if ( cityinfo_populationYearlyBirthsDeathsCalculationNeeded[4517 * ciid] ) { fun_populationAdvanceAgesOneYear(); fun_populationBirths(); fun_updatePopulationAfterBirthsDeaths(ciid); } fun_calculateNumberOfWorkers(); ....// some code }
ãµãŒãã¹ãšãªãœãŒã¹ã®æ¶è²»
家ã¯è³æºïŒé£ç©ãæçãæ²¹ãå®¶å ·ãã¯ã€ã³ïŒãšãµãŒãã¹ïŒå®æãå»çãæè²ãªã©ïŒãæ¶è²»ããŸãã é£ç©ã®æ¶è²»ã¯å®¶ã®äœæ°ããã0.5åäœã®é£ç©ã®å²åã§æã«1åçºçããä»ã®è³æºã®æ¶è²»ã¯äœæ°ã®æ°ãé€ããŠå®¶ããšã®1åäœã§æã«2åçºçããŸãã ãµãŒãã¹ã®æ¶è²»ã¯æ¯æ¥1ãŠãããçºçããŸãã ãµãŒãã¹ã¯ãããããã¬ãã«ã®å®¶ãåãµãŒãã¹ã100ãŠãããããä¿åããªããããåžžã«æŽæ°ããå¿ èŠããããŸãã ããã©ããããé£æãšè³æºã®è²¯èµã¯å®¶ã®ã¬ãã«ã«äŸåããŸãã家ã倧ãããªãã°ãªãã»ã©ã貯èµã§ããããŸããŸãªçš®é¡ã®åå©çšãå€ããªããã²ãŒã ã§ã¯å®¶ã¯æ¬¡ã®6ã¶æéå人ããååãè³Œå ¥ããŸãã
å®æ





ã²ãŒã ã«ã¯5ã€ã®ç¥ïŒCeresãNeptuneãMarsãMercuryãVenusïŒãããŸãã æ°åèšç®ã¢ã«ãŽãªãºã ã¯èª°ã§ãåãã§ãã éœåžã®ã«ãã¬ããžã¯ãå°åã§ã¯ãªã人å£ã«ãã£ãŠèæ ®ãããŸãã ãã¹ãŠã®å¯ºé¢ã¯ãããã圱é¿ããªãç¥ã®æ 床ã«å¥œããªããã«ç«ã€ããšãã§ããŸãã ãããã®å¯ºé¢ã®åžç¥ãä»ãã家ã®é°å²æ°ã¯ã寺é¢ã®å Žæã«äŸåããŸãã ã«ãã¬ããžã®å²åã¯ã次ã®åŒã䜿çšããŠèšç®ãããŸã
Base_value = 100 *ïŒ500 *ãªã©ã¯ã«ã®æ°+ 750 * working_small寺é¢+ 1500 * working_largerïŒ/ number_peopleã
ãåãããšããæŠå¿µã®äžã§ããããã®å¯ºé¢ã¯å°ãªããšãäžäººã®åŽåè ããããšããã«èœã¡ãŸãã
ç¥ã®æ 床ã«åœ±é¿ãäžããè¿œå ã®èŠå ã
Festival_Factor = 12-æ倧ïŒ40ãmonths_from_Last_Fest_For_this_GodhoodïŒ
ç¥æ®¿ã®èŠçŽ =50ã圌ã¯ãéœåžã«ããç¥æ®¿ã®æ°ãæ倧ã§ããç¥ãåãåããŸããè€æ°ããå Žåããã®èŠçŽ ã¯ãã¹ãŠã®äººã«å¯ŸããŠãªã»ãããããŸãã
éå°éãã¡ã¯ã¿ãŒ= -25ã 圌ã¯è¡ã§æãå°ãªã寺é¢ãæã€ç¥ãåãåããŸãã ãã®ãããªç¥ã ãè€æ°ããå Žåããã®èŠçŽ ã¯ãã¹ãŠã®äººã«å¯ŸããŠãªã»ãããããŸãã
éæã¯ããŒãã¹ã®åé ã«ã¯åå ããŸããã ãããããã°ã
Final_setting = Base_value + Festival_factor + Templeãã¡ã¯ã¿ãŒ+éå°éãã¡ã¯ã¿ãŒã
éœåžã®äººå£ã«å¿ããæå°ã ãŒãå€ã®å¶éã
äººå£ | æå°éã®æ°å |
0ã99 | 50 |
100ã199 | 40 |
200ã299 | 40 |
300ã399 | 30 |
400-499 | 20 |
400-499 | 10 |
> 500 | 0 |
ç¥ã ã®æ°å
åã²ãŒã æ¥ïŒ25ãã£ãã¯ïŒã«ãåç¥ã®æ°åãã«ãŠã³ããããŸãã ç¥æ Œã«ã¯çŸåšã®æ°åããããæŽæ°ããããã³ã«ãçŸåšã®æ°åã¯1åäœãã€çã«è¿ã¥ããŸãã äŸãšããŠãç§ãã¡ã¯ç«æã«äœããäžå¿«ã«ããããããä¿®æ£ããããšãããç«æã®çŸåšã®æ°åã100ã«ãçã®æ°åã0ã«ããŸããæ¯æ¥ãæŠäºã®ç¥ã®çŸåšã®æ°åã¯1åäœæžå°ããŸãã 16æ¥éã®ã²ãŒã æã«ã6ãæã®ãã¬ã€æéã®åŸãç«æã®è¡ãïŒ100/16ïŒãåŠçœ°ããããšãå€æããŸãããããããããç¥èãªã©ã³ãã ããååšããããã§ãç¥ã¯æµæããããšãã§ããŸãïŒã






ãã¿ãã¬ã®äžã§ãç§ã¯æãã®ãã€ã³ãã®èšç®ã«ã€ããŠèª¬æããŸããïŒãããã¯ãã«ãšãµã«ãæŒããå®æ顧åã®çªã«ãç¥ã®æ°åã®æšªã«çš²åŠ»ã®åœ¢ã§è¡šç€ºãããŸãïŒ
é衚瀺ã®ããã¹ã
if( god.mood < 50 ) { god.blessing = 0 god.blessingDone = 0 } if(god.mood > 50 ) { god.small_curse = 0 god.smallCurseDone = 0 } god_id = random( 7 ); if( god_id < 5 ) { current_god = romeGods[ god_id ] // (Ceres/Neptune/Mercury/Mars/Venus) if( current_god.mood >= 50 ) current_god.wrathPoints = 0; if( current_god.mood >= 9 and current_god.mood < 10 ) current_god.wrathPoints += 5; if( current_god.mood >= 10 and current_god.mood < 20 ) current_god.wrathPoints += 2; if( current_god.mood >= 20 and current_god.mood < 40 ) current_god.wrathPoints += 1; } current_god.wrathPoints = min( current_god.wrathPoints, 50)
åã²ãŒã æïŒ16 * 25 = 900ãã£ãã¯ïŒãæããç¥ã®ç¥çŠã®åºçŸã決å®ããè¿œå ã®ããžãã¯ãå®è¡ãããŸãã
é衚瀺ã®ããã¹ã
if( god_id == [5, 6, 7] ) { // , 40 , current_god = find_least_happy_god(); if( current_god ) { if( current_god.mood > 100 and current_god.blessingDone == 0 ) { current_god.doBlessing() current_god.mood = 50 current_god.blessingDone = 1 } if( current_god.wrathPoints > 20 and current_god.smallCurseDone == 0 ) { current_god.doSmallCurse() current_god.smallCurseDone = 1 current_god.wrathPoints = 0 current_god.mood -= 12 } if( current_god.wrathPoints == 50 and current_god.lastFesivale > 3_months ) { current_god.doWrath() current_god.wrathPoints = 0 current_god.mood -= 30 } } }
ç¥ã/è¡ã®æ°å

ã²ãŒã ã«ã¯ãå°ãäžã倧ã®3çš®é¡ã®ãã§ã¹ãã£ãã«ããããŸãã ç¥ãã¯ç¥ã®äžäººã«æ§ããããç¥ãã¯éœåžãžã®ç¥ã®æ 床ã«åœ±é¿ãäžããŸãã ç¥ãã®è²»çšãèšç®ããããã®åŒã¯ãè¡šã«ç€ºãããŠããŸãã
çš®é¡ | è²»çš | ã¯ã€ã³ | æºåæé |
å°ãã | 人å£/ 20 + 10 | - | 2ã¶æ |
äž | 人å£/ 10 + 20 | - | 3ã¶æ |
倧ãã | 人å£/ 5 + 40 | 人å£/ 500 + 1 | 4ã¶æ |
ç¥ããéå¬ãããåŸãç¥ã®ç¥æ Œã®é°å²æ°ãé«ããããšã«å ããŠãæ¯é è ã«å¯Ÿããåžæ°ã®æ 床ãæ¹åãããŸãã 12ãæéãã ãŒããé«ãã2ã€ã®ãã§ã¹ãã£ãã«ãéå¬ã§ããŸããã次ã®ãã§ã¹ãã£ãã«ã¯åžå ã®ã ãŒããåäžãããŸããã ãã®è¡šã¯ãéœåžã®é°å²æ°ãé«ããå€ã瀺ããŠããŸãã
çš®é¡ | æåã« | ç¬¬äº |
å°ãã | 7 | 2 |
äž | 9 | 3 |
倧ãã | 12 | 5 |
ãã¡ã€ãã³ã¹
ããªãããŸã äœãã建ãŠãããšãã§ããéœåžã®æå€§è² åµã¯ã -5000ãããªã§ãã ãã®ç¶æ ã¯ããã¹ãŠã®è²¡åã¢ã¯ã·ã§ã³ã§ç¢ºèªãããŸãã
ããšãã°ãéè·¯ã建èšãããšã
void fun_drawBuildingGhostRoad() { ... //some code if ( cityinfo_treasury[4517 * ciid] <= -5000 ) cannotBuild = 1; if ( cannotBuild ) { sub_4D0B70(graphic_fire_almost, v2, v1 - iso_tile_half_height, (ColorMask) -1949); } ...//some code }
åŽå顧åã®ç»é¢ã§èšå®ããåŽåè ã®å¹Žsalã¯ããããªã§æå®ãããå€ã®1/10ã§ãã æ°å€30ã¯ãåŸæ¥å¡ãžã®å¹Žé3ãããªã®æ¯æããæå³ããŸããããã¯ãã²ãŒã ã§ã¯ã財åèšç®ãæŽæ°ã§å®è¡ãããããã§ãã

åŽåè ã«ã¯æ¯æãç°¡åãªå ¬åŒã«åŸã£ãŠçµŠäžãæ¯æãããŸãã
Zp_v_ denarii =ïŒææ«ã®åŸæ¥å¡æ°ïŒ*ïŒzp_workerïŒ/ 10/12
ãã®éé¡ã¯ãåžã®å®åº«ãããããšãã°ãããã³ã§ã¯å± äœè ã®è²¡åžã«ééãããã©ãã«ãæã¡èŸŒãŸããŸããããããã¯ãŸã£ããå¥ã®è©±ã§ãã
éœåžãåéãæ±ããŠããå Žåãã€ãŸã äžã®ã¡ãã¥ãŒã«è¡šç€ºãããéé¡ã0æªæºã®å Žåãåžã¯ããŒã³ã®äžçš®ã§ããããŒãã«å©æ¯ãæ¯æãå§ããŸãã
ããŒã³ã®å©çã¯10ïŒ ã§ãæ¯æåžã®è²¡åçããå·®ãåŒãããŸãã
ãã€ã¢ãŠã=ïŒ-money_of_trendïŒ* 10/100/12
ããŒããåããŠ5,000åéã«éãããšãããŒãã¯èè³ãè¡ããŸãïŒããã·ã§ã³ã«ãã£ãŠç°ãªããŸãããéåžž10,000æ¥ïŒã2åç®ãéé¡ãååŸã§ããŸããããã§ã«èè³ãšããŠèæ ®ãããŠããŸãã
çšé

æ¯æãéœåžã®å®¶ã¯çšéãçã¿åºããŸããããã¯å®¶ã®ã¬ãã«ãšããã«äœã人ã ã®æ°ã«äŸåããŸãã 家ããã®çšéã¯ã城å人ãæ°ãã幎ã®åãã«éãéãããšãã«åŸŽåããã城åãããªãã£ãå Žåã¯å幎ã®éé¡ãçãå°œããŸãã çšã®ã¬ãã«ã¯ãæ§æãã¡ã€ã«c3_model.txtã§èšå®ãããŸããéœåžã®è€éãã®ã¬ãã«ã¯ãè€éãã®ã¬ãã«ã«ãã£ãŠã圱é¿ãåããŸãã
é£æ床 | ä¿æ° |
ãšãŠãç°¡å | 300ïŒ |
ãããã | 200ïŒ |
ããã£ã | 150ïŒ |
é£ãã | 100ïŒ |
ãšãŠãé£ãã | 75ïŒ |
èªå® ããçšéãèšç®ããããã®æçµçãªåŒã¯æ¬¡ã®ããã«ãªããŸãã
ç·çšïŒDnïŒ=ïŒtax_base / 2ïŒ*ïŒpercentage_city_state_cityïŒ/ïŒ12 * 100ïŒ
ãã¡ã€ã«åžåœ
幎æ«ã«ãåžã¯åå ¥ã®äžéšãããŒãã«éããŸããæ¯æãã¯ãåžã®äœæ°ã®æ°ãšå©çã«äŸåããŸãã ã²ãŒã ã§ã¯ãå©çã¯åå ¥ãšæ¯åºã®å·®ã§ãã åžãåéãæ±ããŠããå Žåãçšçã¯25ïŒ ã§ãçšã¯æ¯æãããŸãããã倩çã®å¥œæã¯æžããŸãã
åçã³ã³ããŒãã³ã | å䟡æ§æèŠçŽ |
å¯ä» | 建èšæ¥ |
ååã®èŒžåº | ååã®èŒžå ¥ |
ããŒã³éå© | |
å®èŠã®çµŠæ | |
æ®ã | |
çµŠäž |
ãŸããçšã®æå°å€ã¯ãéœåžã®äººå£ã«ãã£ãŠæ±ºãŸããŸãã
äººå£ | å©çãªã/å©çãã |
0ã500 | 0/50 |
501-1000 | 0/150 |
1001-2000 | 100/225 |
2001-3000 | 200/300 |
3001-5000 | 200/400 |
5000+ | 200/500 |
倩çã®å¥œæ

ä»»åã®æåã«éèŠãªåœ¹å²ãæãããŠããã®ã¯ãæ¯é è ãšéœåžã®è©äŸ¡ã«å¯Ÿãã倩çã®æ 床ã§ãã çåžã®æ°åã«æã倧ããªåœ±é¿ãäžããã®ã¯ããéœåžã®åçæ§ãããçåžã®èŠæ±ã®å±¥è¡/ç¡èŠãªã©ã®ãã©ã¡ãŒã¿ãŒã§ãã
èŽãç©ã¯ãããªãã«å¯Ÿãã倩çã®æèŠã倧ãã«å¢å ãããŸãããé »ç¹ã«èŽãç©ãããããšã§ã圌ãã®åœ±é¿ã¯èããæžå°ããŸãã æå©ãªå€åãèšç®ãããšããéå»12ãæéã«è¡ããããã¹ãŠã®ã®ãããèæ ®ããããããã¯è¡šã«ãªã¹ããããŸãã
ã®ããçªå· | æ§ãã㪠| 芪æãªã | çŽ æŽããã |
1 | 3 | 5 | 10 |
2 | 1 | 3 | 5 |
3 | 0 | 1 | 3 |
4 | 0 | 0 | 1 |
5+ | 0 | 0 | 0 |
çåžã«ãã£ãŠèšå®ãããæéã«ãèŠæ±ãæºãããããšãäžå®ã®å¢å ãåŸãããŸãã ãªã¯ãšã¹ããCaesarã«ãã£ãŠèšå®ãããæéããåŸã«å®äºããå Žåãå ±é ¬ã®ååããåãåããŸããããããç¡èŠãããšã8ãŠãããã ãå®å šã«æ¬æã倱ããŸããç· ãåãã
ã¹ããŒãªãŒã®ãªã¯ãšã¹ããšã®ããã«å ããŠãæ åã®äŸ¡å€ã®æŽæ°ã¯æ¯å¹Žã®åãã«å®è¡ããã次ã®èŠå ã«äŸåããŸãã
ããŒã¹å€æŽ = -2
çŽçšã®æå = çŽçšãæåããå Žå㯠+1ã1幎ã2幎ããŸãã¯2幎以äžçŽçšããªãã£ãå Žåã¯ãããã-3ã-5ã-8ã
çµŠäž =絊äžãçŸåšã®ã«ãŒã©ãŒã¬ãã«ã®çµŠäžãããäœãå Žåã¯+1ãã¬ãã«ãäžåãåã©ã³ã¯ã«ã€ããŠã¯-1
ã€ãã³ã =ããã·ã§ã³ã«äŸåããŸããããšãã°ã人å£1000人ã«éãããš+5
æåã®è©äŸ¡

ã²ãŒã å ã®æåã®è©äŸ¡ã¯ãéœåžã®é åãå€æã§ããç·åçãªè©äŸ¡ã§ãã ããã¯ãåå Žã寺é¢ãåŠæ ¡ãã¢ã«ãããŒãå³æžé€šã§ã®éœåžã®å ±éã®ã¬ãã«ã§æ§æãããŠããŸãã éæ¥çã«ãæè²çèŠçŽ ã®ååšïŒæåã®ã¬ãã«ã¯30以äžïŒã«ãã£ãŠãéœåžã«ã¯è£çŠãªåžæ°ãããããšãããããŸãã
æå_è©äŸ¡=åå Ž_è©äŸ¡+寺é¢_è©äŸ¡+ã©ã€ãã©ãª_è©äŸ¡+åŠæ ¡_è©äŸ¡+ã¢ã«ãããŒ_è©äŸ¡

åå Žã®è©äŸ¡å€ã¯ãå Žæã«é¢ä¿ãªããåå Žã®å容人æ°ãšå± äœè æ°ã®æ¯çã«å¯Ÿå¿ããŸãã
Theater_ Rating = 500 * working_theaters / populationã®æ°ã ãã®ã«ãã¬ããžã«åŸã£ãŠãè©äŸ¡ãéžæãããŸãã
ã«ãã¬ããž | æåãã€ã³ã |
0ã30ïŒ | 0 |
31ã50ïŒ | 3 |
51ã70ïŒ | 8 |
71ã85ïŒ | 12 |
86-99ïŒ | 18 |
100 +ïŒ | 25 |


åå Žã®è©äŸ¡ã¯ãå Žæã«é¢ä¿ãªãã寺é¢ã®å容人æ°ãšå± äœè æ°ã®æ¯çã«å¯Ÿå¿ããŠããŸãã
ç¥æ®¿ã®è©äŸ¡= 150 *å°å¯ºé¢ã®æ°+ 300 *倧寺é¢ã®æ°+ 500 *ç¥èšã®æ°ã
åå Žãšåæ§ã«ãè©äŸ¡å€ã¯è¡šããéžæãããŸãã
ã«ãã¬ããž | æåãã€ã³ã |
0ã30ïŒ | 0 |
31ã50ïŒ | 3 |
51ã70ïŒ | 9 |
71ã85ïŒ | 14 |
86-99ïŒ | 22 |
100 +ïŒ | 30 |
æè²



åŠæ ¡ã¯æ倧15ã®æåãã€ã³ããæã¡èŸŒã¿ãèšç®ã¯åŠéœ¢æã®å± äœè ã«å¯ŸããŠè¡ãããååŠæ ¡ã¯75人ã®çåŸãå容ããŸãã
ã¢ã«ãããŒã¯10æåãã€ã³ããè¿œå ããåŠç幎霢ã®å± äœè ã«å¯ŸããŠèšç®ãè¡ãããã¢ã«ãããŒã¯100人ã®åŠçãèšç·ŽããŸãã
å³æžé€šã«ã¯ãäœæ°ã®ç·æ°ã§èšç®ããã20ãã€ã³ããããã1ã€ã®å³æžé€šã§æ倧800人ã®äœæ°ã«ãµãŒãã¹ãæäŸã§ããŸãã
éœåžã®ã«ãã¬ããžã¬ãã«ã«å¯Ÿããæåãã€ã³ãã®äŸåæ§ãè¡šã«ç€ºããŸãã
ã«ãã¬ããž | åŠæ ¡ | ã¢ã«ãã㌠| å³æžé€š |
0ã30ïŒ | 0 | 0 | 9 |
31ã50ïŒ | 1 | 1 | 2 |
51ã70ïŒ | 4 | 2 | 4 |
71ã85ïŒ | 6 | 4 | 8 |
86-99ïŒ | 10 | 7 | 14 |
100 +ïŒ | 15 | 10 | 20 |
ãªãœãŒã¹ãšçç£






ã²ãŒã ã®çµæžã®åºç€ã¯ãªãœãŒã¹ã§ãããäžéšã®ãªãœãŒã¹ã¯åŠçãå¿ èŠã§ãããã®ãããããšãã°éé±å±±->æŠåšãªã©ãæãåçŽãªçç£ãã§ãŒã³ãçŸããŸããã²ãŒã å ã®ãªãœãŒã¹ã¯ç¡å¶éã§ãããã ããéã®æ°ãéãããŠããé£ãã¹ãããã¯äŸå€ã§ãã
å°éºŠã¯ãã²ãŒã ã玹ä»ããæåã®ãªãœãŒã¹ã§ããäžéšå°æ¹ã§ã¯ãå°éºŠèŸ²å Žã¯ä»ã®èŸ²å Žãããå¹æçã§ãããåéšããã³ç æŒ å°åã§ã¯æ©èœããŸãããèŸ²å Žã¯è¥æ²ãªåå£ã«çœ®ãããå°å³äžã«é»è²ãèœãšããŠè¡šç€ºãããŸããåç©«ç©ã¯çŽå±ãŸãã¯å庫ã«éã°ããŸããèŸ²å Žãæ¡æãã«ãããã³ã¯ãŒã¯ã·ã§ããã¯ã1ã¹ããŒã ã«åŸã£ãŠåäœãã25ãã£ãã¯ããšïŒã²ãŒã 1æ¥ã«1åïŒã次ã®åŒã«åŸã£ãŠçç£ã®é²æãæŽæ°ãããŸãã
æ¯æ¥ã®çç£é²æã®èšç®åŒ
productionRate - 100% numberWorkers - 12 * 16 - * maximumWorkers - progress += 100 * ( productionRate * numberWorkers) / (12 * 16 * maximumWorkers )
çç£ã®æåŸã«ãååã®ããŒã¿ãŒãäœæããããããæå¯ãã®ä¿ç®¡å Žæã«é éãããŸããååãé éããããšãäžå¯èœãªå Žåã圌ã¯çç£ã®è¿ãã«ç«ã¡ãŸããããŒã¿ãŒãããžãŒã§ãæ°ãã補åããã§ã«çç£ãããŠããå ŽåãããŒã¿ãŒããªãªãŒã¹ããããŸã§çç£ã¯åæ¢ããŸãã
ãªãœãŒã¹ã®ä¿ç®¡ãšé åž


ãªãœãŒã¹ã®ä¿ç®¡ãšé åžã«ã¯2ã€ã®ã¿ã€ãã®ä¿ç®¡ãé¢ä¿ããŸããçŽå±ãšå庫ãçŽå±ã¯è£œåã®ã¿ãä¿ç®¡ããåžå Žãã¬ãŒããŒã¯çŽå±ããååãåãåããå庫ã¯ããããçš®é¡ã®ååãä¿ç®¡ããå人ã«è²©å£²ã§ããŸããåŸæ¥å¡ã®æ°ãååæªæºã®å ŽåãããŒã«ãã¯ååã®åãåããåæ¢ããããŒã«ãã¯ååã®é éã«åå ããŸããããã ããç¹å¥ãªãåååãåããã¢ãŒãã¯äŸå€ã§ããå¥ã«ã
ååã®ãªãœãŒã¹æœåºãåŠçãããã³ããŒã±ãã£ã³ã°ã®çµã¿åããã¯ãéåžžã«çºå±ããããšãå€æããŸãããå°æ°ã®ååã¯ãã¬ã€ã€ãŒã«ãã¯ã管çã課ããŸããããŸããä¿ç®¡å Žæãé éå Žæã®éžæãªã©ãã»ãšãã©ã®æ¥åžžçãªã¢ã¯ã·ã§ã³ã®èªååã«ãããæŠç¥çèšç»ã®ããã®å®èŠå®€ãæ®ãããŸãã
ãã®æç¹ã§ãããããèšäºãçµäºããŸããéœåžéã®è²¿æãè»äºäœæŠãªã©ã®ãããã¯ã¯è¹å€ã«æ®ãããããããéåžžã«å€§ããããŸã ååãªè³æããããŸããããæž èŽããããšãããããŸããã
ZYèšäºã®æåŸã§ãå ã®ã²ãŒã ã®ãœãŒã¹ã³ãŒãã埩å ãããšãã«ãã²ãŒã ã®ãã¡ã³ãèŠã€ããããªãã£ãç¹ã泚æãæããªãã£ãç¹ãããã«è¿œå ã§ããããšã¯ééããããŸããããªãªãžãã«ã®äœè ãæ éã«ç£šãäžãããã©ã³ã¹ã厩ããªãããã«ãã²ãŒã ããžãã¯ã«é¢ããäžè¬çãªã¢ã€ãã¢ãåŸãããšãéèŠã§ããã埩å ããããœãŒã¹ã«ã€ããŠã¯ãéåžžã®ïŒã³ã³ãã€ã«ããã ãã®ïŒå€èŠ³ã«ããã®ã«ååãªå¿èåã¯ãããŸããã§ãããã芪åãªäººïŒAntonBaracudaãgithub.com / AntonBaracuda / opencaesar3 / c3_revïŒããã®å€§å€ãªäœæ¥ãå®äºããŸãããæå®ãããã¢ãã¬ã¹ã«ããœãŒã¹ããã³éšåçã«æ§é åããããã¡ã€ã«ãšããã€ãã®é¢æ°ããããŸãããããã¯ãã¹ãŠã³ã³ãã€ã«ããã³èµ·åããããããã¬ãŒã§æåã®é¢æ°ãå®è¡ã§ããŸãã
åç §è³æ
(, )
CaesarIA: (opensource, c++, SDL)(Window,Linux,Mac,Haiku,Android)