======= スキルとイメージ評価 ======= マニュアルのゲームメカニクスセクションは、ゲームの計算で使用される内部式の詳細を説明します。マニュアルのこのセクションは疑似コードを使用しており、ゲーム内のコードと100%同じとは限りません。 マニュアルのゲームメカニクスパートは、主に "なぜX、Y、Zをするとこの評価になるのか?"というよくある質問に対するリファレンスとして設計されています。通常、この答えには多くの異なる変数が含まれており、マニュアルのこのセクションではそれを実証しています。 **マニュアルのゲームメカニクスセクションは、[[https://idioms.thefreedictionary.com/seeing+how+the+sausage+gets+made|ソーセージがどのように作られるか]]を示しています。ですから、ゲームを楽しむなら、このマニュアルの部分は避けた方がいいかもしれません。** ===== 変数 ===== ^ 名称 ^ 説明 ^ ^ 名称 ^ 説明 ^ | **IMAGE_WORK** | 出来映えイメージ評価 | | **IMAGE_RACING** | レーシングイメージ評価 | | **IMAGE_QUALITY** | 品質イメージ評価 | | **IMAGE_GLOBAL_GENERAL** | グローバルイメージ評価 | | **SKILL_MARKETING** | マーケティングスキル | | **DESIGN_ENGINE** | エンジンデザインスキル | | **DESIGN_CHASSIS** | シャーシデザインスキル | | **DESIGN_TRANSMISSION** | ギアボックスデザインスキル | | **DESIGN_BODY** | 車体デザインスキル | | **DESIGN_LUX** | 高級感デザインスキル | | **DESIGN_SAFETY** | 安全性デザインスキル | | **SKILL_MANUFACTORING** | 製造業スキル | | **SKILL_ADMIN** | 管理スキル | | **SKILL_DEALER** | ディーラースキル | | **researchChassisEffect** | シャーシ研究チーム効果 | | **researchEngineEffect** | エンジン研究チーム効果 | | **researchGearboxEffect** | ギアボックス研究チーム効果 | | **researchVehicleEffect** | 車両研究チーム効果 | | **CarInfo.Rating_Overall** | 現在の車両の総合評価 | | **CarInfo.Rating_Luxury** | 現在の車両の高級感評価 | | **CarInfo.Rating_Safety** |現在の車両の安全性評価 | | **CarInfo.designreq** | 車両の設計要件評価 | | **CarInfo.Rating_Quality** | 現在の車両の品質評価 | | **CarInfo.Rating_Dependability** | 現在の車両のディペンダビリティ評価 | | **CarInfo.manureq** | 現行の車両の製造要件評価 | | **CarInfo.Vehicle_Image** | 現在の車両の車両イメージ評価 | | **CarInfo.Rating_Drivability** | 現在の車両の運転性評価 | | **CarInfo.Rating_Performance** | 現行の車両のパフォーマンス評価 | | **ChassisInfo.Overall_Comfort** | シャーシ快適性評価 | | **ChassisInfo.Overall_Strength** | シャーシ強度評価 | | **ChassisInfo.Overall** | シャーシ総合評価 | | **ChassisInfo.Req_Design** | シャーシ設計要件評価 | | **ChassisInfo.Req_Manu** | シャーシ製造要件評価 | | **ChassisInfo.Overall_Dependabilty** | シャーシディペンダビリティ評価 | | **ChassisInfo.Overall_Performance** | シャーシパフォーマンス評価 | | **Engine.Power** | エンジンパワー評価 | | **Engine.FuelEconomy** | エンジン燃費評価 | | **Engine.OverallRating** | エンジン総合評価 | | **Engine.DesighnRequirements** | エンジン設計要件評価 | | **Engine.Reliability** | エンジン信頼性評価 | | **Engine.ManufacturingRequirement** | エンジン製造要件評価 | | **Gearbox.PowerRating** | ギアボックスパワー評価 | | **Gearbox.FuelRating** | ギアボックス燃費評価 | | **Gearbox.OverallRating** | ギアボックス総合評価 | | **Gearbox.Design_Requirement** | ギアボックス設計要件評価 | | **Gearbox.ReliabiltyRating** | ギアボックス信頼性評価 | | **Gearbox.Manufacturing_Requirement** | ギアボックス製造要件評価 | | **Gearbox.PerformanceRating** | ギアボックスパフォーマンス評価 | | **Number Of Cars** | 過去5年間にデザインされた車の総数 | | **RacingHistory.PlayerWins** | 全社のレーシングシリーズでの勝利。 | | **Racing.Popularity** | レーシングシリーズの人気 | | **Marketing_*Efficency** | マーケティング効率値、*はマーケティングの種類を表します。 | | **RacingRnDFocus** | レーシングフォーカスを開発で設定し、レース数で割って6で割った値。 | | **** | | ===== 値段の割り当て ===== current_ImgWork = IMAGE_WORK current_ImgRace = IMAGE_RACING current_ImgQual = IMAGE_QUALITY current_ImgGlobal = IMAGE_GLOBAL_GENERAL current_MarketingSkill = SKILL_MARKETING current_DesignEngineSkills = DESIGN_ENGINE current_DesignChassisSkills = DESIGN_CHASSIS current_DesignGearboxSkills = DESIGN_TRANSMISSION current_DesignBodySkills = DESIGN_BODY current_DesignLuxSkills = DESIGN_LUX current_DesignSafeSkills = DESIGN_SAFETY manuSkill = SKILL_MANUFACTORING adminSkill = SKILL_ADMIN dealerSkill = SKILL_DEALER effectCemps = researchChassisEffect effectEemps = researchEngineEffect effectGemps = researchGearboxEffect effectVemps = researchVehicleEffect for( Cars Year > Current Year - 3 ) { Workmanship = Workmanship + (TOTAL(CarInfo.Rating_Overall+(CarInfo.Rating_Luxury*21)+ CarInfo.Rating_Safety+(CarInfo.designreq*2) ) + (ChassisInfo.Overall_Comfort+ChassisInfo.Overall_Strength+ChassisInfo.Overall+(ChassisInfo.Req_Design*2) )) workmanship_Quality = workmanship_Quality + (TOTAL( (CarInfo.Rating_Quality*3) + (CarInfo.Rating_Dependability*3) + CarInfo.manureq + CarInfo.Rating_Overall ) + ( (ChassisInfo.Overall_Dependabilty*3) +ChassisInfo.Overall_Strength+ChassisInfo.Req_Manu+ChassisInfo.Overall)) workmanship_Racing = workmanship_Racing + (TOTAL(CarInfo.Rating_Performance*3 + CarInfo.Rating_Drivability*3 ) + TOTAL(ChassisInfo.Overall_Performance)) workGlobal = workGlobal + TOTAL(CarInfo.Rating_Overall*10) counts = Number Of Cars * 25 + 5 counts_Quality = Number Of Cars * 8 + 6 counts_Racing = Number Of Cars * 8 + 3 counts_Global = Number Of Cars * 10 } for ( Every Engine Design Year > Current Year - 3 ) { Workmanship = Workmanship + (Engine.FuelEconomy+Engine.OverallRating+(Engine.DesighnRequirements*2) ) workmanship_Quality = workmanship_Quality + ( (Engine.Reliability*5) + Engine.OverallRating + Engine.ManufacturingRequirement ) workmanship_Racing = workmanship_Racing + Engine.Power*5 counts = counts + 4 counts_Quality = counts_Quality + 7 counts_Racing = counts_Racing + 6 } for ( Every Gearbox Design Year > Current Year - 3 ) { Workmanship = Workmanship + Gearbox.FuelRating+Gearbox.OverallRating+(Gearbox.Design_Requirement*2) ) workmanship_Quality = workmanship_Quality + ( (Gearbox.ReliabiltyRating*5) +Gearbox.OverallRating+Gearbox.Manufacturing_Requirement ) workmanship_Racing = (Gearbox.PerformanceRating*2+Gearbox.PowerRating*2) counts = counts + 4 counts_Quality = counts_Quality + 7 counts_Racing = counts_Racing + 5 } //Race Results for(Racing results over the last 6 years, using this trim or an car or engine from this trim) { workmanship_Racing = workmanship_Racing + TOTAL(RacingHistory.PlayerWins*Racing.Popularity)*0.3 } for each racing championship over the last 6 years, using this trim or an car or engine from this trim { workmanship_Racing = workmanship_Racing + 20; } marketing_Effecents = Average((Marketing_NewspaperEfficency + Marketing_BillboardsEfficency + Marketing_MagsEfficency + Marketing_SportsEfficency + Marketing_EventsEfficency + Marketing_RadioEfficency + Marketing_TVEfficency + Marketing_InternetEfficency + Marketing_MiscEfficency)/6.0) * 100 ===== イメージ ===== ==== 出来栄え ==== if(counts>0) { workmanship_image = Workmanship/counts; if(workmanship_image > 110) workmanship_image = 110; if(workmanship_image > (current_Workmanship_Image+0.5) ) { newImg = current_Workmanship_Image + 0.25 + (marketing_Effecents/3000.0) + ((workmanship_image-current_Workmanship_Image)/250.0) if(newImg > 100) { newImg = 100 } IMAGE_WORK = NewImg } else if(workmanship_image ==== 品質 ==== if(counts>0) { adjust_image = workmanship_Quality/counts_Quality; if(adjust_image > 110) adjust_image = 110; if(adjust_image > (current_ImgQual+0.5) ) { newImg = current_ImgQual + 0.25 + (marketing_Effecents/3000.0) + ((adjust_image-current_ImgQual)/250.0); if(newImg > 100) { newImg = 100; } IMAGE_QUALITY = NewImg } else if(adjust_image ==== レーシング ==== //Racing if(Doing Racing) { adjust_image = workmanship_Racing/counts_Racing; if(adjust_image > 100) { adjust_image = 100; } if(current_ImgRace <= 0) current_ImgRace = 1; if(adjust_image > current_ImgRace) { newImg = current_ImgRace + 0.25 + (marketing_Effecents/3000.0) + ((adjust_image-current_ImgRace)/250.0); if(newImg > 100) { newImg = 100; } IMAGE_RACING = newImg } else if(adjust_image<=current_ImgRace) { newImg = current_ImgRace -0.4+(marketing_Effecents/3000.0); if(newImg < 1) { newImg = 1; } IMAGE_RACING = newImg } } ==== グローバル ==== Global_Total_Img = Global_Total_Img + ((current_ImgWork + current_ImgRace + current_ImgQual)*10); counts_Global += 30; //Global if(counts_Global>0) { adjust_image = Global_Total_Img/counts_Global; if(adjust_image > 100) { adjust_image = 100; } if(adjust_image>current_ImgGlobal+0.5) { newImg = current_ImgGlobal + 0.25 + (marketing_Effecents/3000.0) + ((adjust_image-current_ImgGlobal)/250.0); if(newImg > 100) { newImg = 100; } IMAGE_GLOBAL_GENERAL = newImg } else if(adjust_image ===== スキル ===== ==== マーケティング ==== if(marketing_Effecents > current_MarketingSkill * 0.6) { current_MarketingSkill = current_MarketingSkill + 0.5 + ((marketing_Effecents-current_MarketingSkill)/10.0); } else if(marketing_Effecents < current_MarketingSkill * 0.6) { current_MarketingSkill = current_MarketingSkill - 0.1; } if(current_MarketingSkill>100) { current_MarketingSkill = 100; } else if(current_MarketingSkill < 0) { current_MarketingSkill = 0.1; } SKILL_MARKETING = current_MarketingSkill ==== 製造業 ==== Adjusted_Manufacturing = TOTAL( (1.35-Speed) * (Moral/100.0) * (Lines/1.35) ) From Non-Contract Lines if(Adjusted_Manufacturing > (manuSkill*1.02)) { manuSkill = manuSkill+0.25+ ((Adjusted_Manufacturing-manuSkill)/250.0); if(manuSkill>100) { manuSkill = 100; } SKILL_MANUFACTORING=manuSkill } else if(Adjusted_Manufacturing < (manuSkill*0.98)) { manuSkill = manuSkill-0.25; if(manuSkill < 0) { manuSkill = 0.1; } SKILL_MANUFACTORING=manuSkill } ==== RnD ==== Researching_Average = (effectCemps+effectEemps+effectGemps+effectVemps)/4.0; RnDCounter =Number of designs started within in the last 2 years. if(RnDCounter == 0) { rndSkillChange = -0.08 + (Researching_Average/12.0); } else { rndSkillChange = (RnDCounter) * 0.02 + (Researching_Average/12.0); } SET SKILL_RND = SKILL_RND + rndSkillChange ==== 管理 ==== For All Branches { dealerFocus = TOTAL(Dealer_Resources) branchNumber = COUNT(Branch_ID branchMorale = AVG(Employee_Moral) } if((branchNumber/(numOfCities/1.5)) * 100 < (adminSkill * 0.9)) { SET SKILL_ADMIN = SKILL_ADMIN - 0.5 } else if((branchNumber/(numOfCities/1.5)) * 100 > (adminSkill * 1.1) && branchMorale >= 98) { SET SKILL_ADMIN = SKILL_ADMIN + 0.7 } ==== ディーラー ==== For All Branches { dealerFocus = TOTAL(Dealer_Resources) branchNumber = COUNT(Branch_ID branchMorale = AVG(Employee_Moral) } if(branchNumber != 0) dealerFocus = (dealerFocus*100)/(branchNumber); if(dealerFocus < (dealerSkill * 0.95)) { SET SKILL_DEALER= SKILL_DEALER - 0.3 } else if(dealerFocus > (dealerSkill)) { SET SKILL_DEALER= SKILL_DEALER + 0.5 } ===== 設計スキル ===== ==== エンジン ==== Self designed engines over the last 5 years. { overallDesignRating = Average(Engine.OverallRating); } oldDesignSkill = current_DesignEngineSkills; if(overallDesignRating > (current_DesignEngineSkills*1.02) AND current_DesignEngineSkills < 95.5) { current_DesignEngineSkills = current_DesignEngineSkills + RacingRnDFocus; current_DesignEngineSkills = current_DesignEngineSkills + 0.25 +(0.65*effectEemps); SET DESIGN_ENGINE = current_DesignEngineSkills } else if(overallDesignRating<1) { current_DesignEngineSkills = current_DesignEngineSkills + RacingRnDFocus; current_DesignEngineSkills = current_DesignEngineSkills - 0.1 + (0.4*effectEemps); if(current_DesignEngineSkills < 0.1) current_DesignEngineSkills = 0.1; SET DESIGN_ENGINE = current_DesignEngineSkills } else if(current_DesignEngineSkills < 101 && current_DesignEngineSkills > 1) { current_DesignEngineSkills = current_DesignEngineSkills + RacingRnDFocus; current_DesignEngineSkills = current_DesignEngineSkills - 0.25 +(0.85*effectEemps); if(current_DesignEngineSkills < 0.1) current_DesignEngineSkills = 0.1; else if(current_DesignEngineSkills > 99.99) current_DesignEngineSkills = 99.99; SET DESIGN_ENGINE = current_DesignEngineSkills } ==== シャーシ ==== Self designed chassis over the last 5 years. { overallDesignRating = Average(Chassis.OverallRating); } oldDesignSkill = current_DesignChassisSkills; if(overallDesignRating > (current_DesignChassisSkills*1.02) && current_DesignChassisSkills < 95.5) { current_DesignChassisSkills = current_DesignChassisSkills + RacingRnDFocus; current_DesignChassisSkills = current_DesignChassisSkills + 0.25+(0.65*effectCemps); SET DESIGN_CHASSIS = current_DesignChassisSkills } else if(overallDesignRating<1) { current_DesignChassisSkills = current_DesignChassisSkills + RacingRnDFocus; current_DesignChassisSkills = current_DesignChassisSkills - 0.1 + (0.4*effectCemps); SET DESIGN_CHASSIS = current_DesignChassisSkills } else if(current_DesignChassisSkills < 101 && current_DesignChassisSkills > 1) { current_DesignChassisSkills = current_DesignChassisSkills + RacingRnDFocus; current_DesignChassisSkills = current_DesignChassisSkills - 0.25+(0.85*effectCemps); if(current_DesignChassisSkills > 99.99) current_DesignChassisSkills = 99.99; SET DESIGN_CHASSIS = current_DesignChassisSkills } ==== ギアボックス ==== Self designed gearboxes over the last 5 years. { overallDesignRating = Average(Gearbox.OverallRating); } pStmt->FreeQuery(); oldDesignSkill = current_DesignGearboxSkills; if(overallDesignRating > (current_DesignGearboxSkills*1.02) && current_DesignGearboxSkills < 95.5) { current_DesignGearboxSkills = current_DesignGearboxSkills + RacingRnDFocus; current_DesignGearboxSkills = current_DesignGearboxSkills + 0.25 +(0.65*effectGemps); SET DESIGN_TRANSMISSION = (current_DesignGearboxSkills) } else if(overallDesignRating<1) { current_DesignGearboxSkills = current_DesignGearboxSkills + RacingRnDFocus; current_DesignGearboxSkills = current_DesignGearboxSkills - 0.1 + (0.4*effectGemps); SET DESIGN_TRANSMISSION = (current_DesignGearboxSkills) } else if(current_DesignGearboxSkills < 101 && current_DesignGearboxSkills > 1) { current_DesignGearboxSkills = current_DesignGearboxSkills + RacingRnDFocus; current_DesignGearboxSkills = current_DesignGearboxSkills - 0.25+(0.85*effectGemps); if(current_DesignGearboxSkills > 99.99) current_DesignGearboxSkills = 99.99; SET DESIGN_TRANSMISSION = (current_DesignGearboxSkills) } ===== 車両設計スキル ===== ==== ボディ ==== For Every Vehicle Self Designed For This Marque In The Last 5 Years { overallDesignRating = AVERAGE Rating_Overall if(overallDesignRating > (current_DesignBodySkills*1.02) AND current_DesignBodySkills < 95.5) { current_DesignBodySkills = current_DesignBodySkills + 0.25+(0.65*effectVemps); SET DESIGN_BODY = current_DesignBodySkills } else if(overallDesignRating == 0) { current_DesignBodySkills = current_DesignBodySkills - 0.1 + (0.4*effectVemps); SET DESIGN_BODY = current_DesignBodySkills } else if(current_DesignBodySkills < 101 AND current_DesignBodySkills > 1) { current_DesignBodySkills = current_DesignBodySkills - 0.25+(0.85*effectVemps); if(current_DesignBodySkills > 99.99) current_DesignBodySkills = 99.99; SET DESIGN_BODY = current_DesignBodySkills } } ==== 高級感 ==== For Every Vehicle Self Designed For This Marque In The Last 5 Years { overallDesignRating = AVERAEG Rating_Luxury if(overallDesignRating > (current_DesignLuxSkills*1.02) AND current_DesignLuxSkills < 95.5) { current_DesignLuxSkills = current_DesignLuxSkills + 0.25 +(0.65*effectVemps); DESIGN_LUX = current_DesignLuxSkills } else if(overallDesignRating==0) { current_DesignLuxSkills = current_DesignLuxSkills - 0.1 + (0.4*effectVemps); DESIGN_LUX = current_DesignLuxSkills } else if(current_DesignLuxSkills<101 AND current_DesignLuxSkills > 1) { current_DesignLuxSkills = current_DesignLuxSkills - 0.25 +(0.85*effectVemps); if(current_DesignLuxSkills > 99.99) current_DesignLuxSkills = 99.99; DESIGN_LUX = current_DesignLuxSkills } } ==== 安全性 ==== For Every Vehicle Self Designed For This Marque In The Last 5 Years { overallDesignRating = AVGERAGE Rating_Safety if(overallDesignRating > (current_DesignSafeSkills*1.02) AND current_DesignSafeSkills < 95.5) { current_DesignSafeSkills = current_DesignSafeSkills + 0.25 +(0.65*effectVemps); DESIGN_SAFETY = current_DesignSafeSkills } else if(overallDesignRating==0) { current_DesignSafeSkills = current_DesignSafeSkills - 0.1 + (0.4*effectVemps); DESIGN_SAFETY = current_DesignSafeSkills } else if(current_DesignSafeSkills<101 AND current_DesignSafeSkills > 1) { current_DesignSafeSkills = current_DesignSafeSkills - 0.25 +(0.85*effectVemps); if(current_DesignSafeSkills > 99.99) current_DesignSafeSkills = 99.99; DESIGN_SAFETY = current_DesignSafeSkills } } ===== 車両イメージ ===== ==== 車両イメージ ==== newVehicleImg = 0; movementAmount = 0; marketingEffect = AVERAGE (Marketing_NewspaperEfficency + Marketing_BillboardsEfficency + Marketing_MagsEfficency + Marketing_SportsEfficency + Marketing_EventsEfficency + Marketing_RadioEfficency + Marketing_TVEfficency + Marketing_InternetEfficency + Marketing_MiscEfficency) For Every Active Vehicle: { currentVehicleIMG = CarInfo.Vehicle_Image if( (CarInfo.CarTypeRating+ CarInfo.Rating_Dependability*3+CarInfo.Rating_Quality*2) / 6.0 > currentVehicleIMG*1.2) { newVehicleImg = currentVehicleIMG + (0.25 + ((CarInfo.Rating_Dependability*3+CarInfo.Rating_Quality*2)/2000.0) + (((current_ImgGlobal*2) + current_ImgQual + current_ImgWork + marketingEffect+ (current_ImgRace/2.0))/2200.0)); //.35 to .6 Max } else if((CarInfo.CarTypeRating+CarInfo.Rating_Dependability*3+CarInfo.Rating_Quality*2) / 6.0< currentVehicleIMG * 0.85) { newVehicleImg = currentVehicleIMG + (-0.50 + ((CarInfo.Rating_Dependability*3+CarInfo.Rating_Quality*2)/2000.0)+ (((current_ImgGlobal*2) + current_ImgQual + current_ImgWork + marketingEffect + (current_ImgRace/2.0))/2200.0)); //-.4 to -.15 } else { newVehicleImg = currentVehicleIMG + (-0.25 + ((CarInfo.Rating_Dependability*3+CarInfo.Rating_Quality*2)/5000.0) + (((current_ImgGlobal*2) + current_ImgQual + current_ImgWork + marketingEffect + (current_ImgRace/2.0))/1100.0)); //-.20 to .30 } movementAmount = (newVehicleImg-currentVehicleIMG)/4.0; newVehicleImg = (Random Number Between (0 and movementAmount)) + currentVehicleIMG; if(newVehicleImg <=1) { newVehicleImg = 1; } else if(newVehicleImg >= 100) { newVehicleImg = 100; } if(currentVehicleIMG DOES NOT EQUAL newVehicleImg) { VehicleImg = newVehicleImg } }