用户登录
|忘记密码

新用户注册

登录

其他登陆



举报

圣火令mod《封建2.5正式版》

圣火令mod《封建2.5正式版》
原创
作者:圣火令
发布:一只双眼皮
发布日期:2020-12-10 00:47:03
更新时间:2020-12-10 00:47:03
这个人很懒,什么也没留下
2251 人点赞
1073 人收藏
3628
9146
2.5
立 即 下 载

本Mod由3DM原创作者“一只双眼皮”制作,未经允许,禁止任何人以任何形式转载!

2020.12.08  圣火令mod《封建v2.5》
已知机制:Unity引擎游戏,必须先放具有Structure属性的建筑物,才能使这个类及依附物生效,否则会报错退出。
因此:游牧模式开局,第一个建筑不能放矿井、站台等不具备Structure属性的建筑,建议先搭个火堆或房子的架子,哪怕不盖起来都行。
——从Stranded Deep、GreenHell 来的老玩家就不用我再提醒了。凡Unity必如此
已知机制:超过4倍速后(如原版的8倍速),远程打敌人会出现不掉血的现象。
这是Unity引擎的响应效率决定,因此最高给16倍速日常发展,来敌后吹角自动会切到4倍速。


=================================
最后更新:2020.12.08  圣火令mod: 《封建 v2.5稳定版》
适用游戏版本:1.7 [En]
基于3dm-1.7英文版制作,可用于 Version 1.7 released | Cheese Update 官方正版
3dm本体链接:https://bbs.3dmgame.com/forum.ph ... 6orderby%3Ddateline
mod下载地址:https://pan.baidu.com/s/1gjh0ZPw87SJR0HHqv5gMnQ
提取码:[hide]whtn[/hide]
因要开始工作,未来上线会少,不会经常查看回复。有事站内信
=================================


mod缘起及命名:为实现拉起长城宅着发展,“封闭”式“建设”,mod起名为《封建》。
因此一切修改都是朝着起一圈墙,安心发展来制作的。
=================================
功能汇总
★1、点科技无前置要求,不限时代;
★2、点科技需要的点数降低一半;
★3、建筑无损;
★4、不受时代限制解锁GUI动作(含冶炼、动作条);
★5、不受时代限制解锁主面板按钮(含种植等);
★6、矿井无限资源;
★7、每次钓鱼满包回家;
★8、每次挖泥满包回家;
★9、双倍泥土刷新速度;
★10、改1键为16倍速
★11、兽栏过冬按动物只数储备食物;
★12、兽栏过冬按动物只数储备水;
★13、商人不空闲可点击;
★14、商人远程响应;
★15、直接在城市里刷流民;
★16、站台放置完全不受限;
★17、种植园允许重叠建筑,可放在水边;
★18、墙放置取消实体限制;
★19、建筑去除地型限制,允许重叠农田等;
★20、吹角后自动改速到4x;
★21、桥解除30码长度限制,解除附近10码内有其他桥限制;
★21、硬核模式下解除暂停限制
★22、建筑速度10倍(拆解速度正常未改);
★23、水车上岸
★23、水车上岸后自动寻找其他建筑方向
★24、双倍最大镜头高度,这回可以观察远景了;
★25、任务指派系统大优化。(去除原版冗余代码,改变优先级)
=================================
以下是修改代码公开,适用于有动手能力的玩家。
经测兼容《大平原》等场景脚本,很可能不兼容1块肉变99那种BT

=================================
isUnlockable   ★1、点科技无前置要求,不限时代。 替换代码为
return this.getKnowledgeAmount() >= techType.getKnowledgeRequired();
getKnowledgeRequired   ★2、降低科技需要的点数到1/2        RoundToInt( *0.5f);
decayCondition  ★3、建筑不随时间流逝耐久,受敌攻击无损  decay(amount * 0f)
guiModifier.setEnabled ★4、解锁GUI动作(含冶炼、动作条) 在第二行增加代码  this.mEnabledState = EnabledState.Enabled;
addMainMenuButton ★5、解锁主面板按钮(含种植等)  
element = new GuiModifier(element, false);
flag = false; 共四个,全改为true。
因涉及编译器生成,需用IL指令修改 37 40 58 61 行  ldc.i4.0 全改 ldc.i4.1
BeingStateMiningUnderground.tick ★6、矿井无限资源   删除行  value.decreaseResourceAmount();
bankHasFish ★7、每次钓鱼满包回家      return bank.getFishAmount() > 0.667f;
bankHasMud  ★8、每次挖泥满包回家    return bank.getMudAmount() > 0.667f;
BankManager.tick ★9、双倍泥土刷新时间     2400改1200
GameGuiManager.updateSpeedInputs ★10、更改速度快键,1键原为1倍速,现改为16倍速,其他键不变  
未知原因需要通过IL改   13行  1 改 16
getRequiredAnimalFood      ★11、兽栏过冬按动物只数储备食物
getRequiredAnimalWater    ★12、兽栏水储备                 两处地址的 min 都改为 max
Trader.onSelected ★13、商人不空闲可点击 (直接替换成下方代码)


  1. Trader trader = this.mTraderSaveState.ParentTrader.Value;

  2. if (trader == null)

  3. {

  4.         trader = this;

  5. }

  6. if (!trader.isDone())

  7. {

  8.         TransientSingleton<GameGuiManager>.CurrentInstance.requestShowTradePanel(trader);

  9. }


复制代码


AiRuleGoSettlement.run ★14、商人远程响应  铜器时代前走到第一个建筑后站定,铜器时代远距离站定


  1. float num2;

  2. if (TransientSingleton<KnowledgeManager>.CurrentInstance.getSuperEra() == SuperEra.MetalAge)

  3.         {

  4.         num2 = firstEntity.getMaxHalfSize() + 102f;

  5.         }

  6. else

  7.         {

  8.         num2 = firstEntity.getMaxHalfSize() + 2f;

  9.         }


复制代码


SettlementManager.spawnMigrantGroup ★15、直接在城市中刷流民          Vector3 行及之前代码改为


  1. RandomGenerator instance = Singleton<RandomGenerator>.Instance;

  2. Structure firstEntity =TransientSingleton<EntityManager>.CurrentInstance.getFirstEntity<Structure>(EntityFlags.Fireplace);

  3. if (firstEntity == null)

  4. {

  5.         firstEntity = TransientSingleton<EntityManager>.CurrentInstance.getFirstEntity<Structure>(EntityFlags.Restplace);

  6. }

  7. if (firstEntity == null)

  8. {

  9.         firstEntity = TransientSingleton<EntityManager>.CurrentInstance.getFirstEntity<Structure>();

  10. }

  11. Vector3 a = firstEntity.getPosition();


复制代码


EntityManager.isValidPlatformLocation ★16、站台放置  删除 if (!flag) false; 到最后一行 return true之间的代码
isValidPlantLocation  ★17、种植放置  


  1. Bounds bounds = new Bounds(position, Constants.Vector3One * size);

  2. new Bounds(bounds.center, bounds.size + Constants.Vector3One * 2f);

  3. return !this.intersectsPlant(bounds) && GameUtil.floorPosition(position).y > TransientSingleton<TerrainManager>.CurrentInstance.getWaterHeight()-1.5f;


复制代码


isValidWallLocation  ★18、墙放置


  1. Bounds bounds = new Bounds(position, Constants.Vector3One);

  2. new Bounds(bounds.center, bounds.size + Constants.Vector3One * 2f);

  3. return !this.intersectsBlockedAiNodes(bounds) && !this.intersectsWall(bounds) && !this.intersectsOtherDoors(null, bounds) && !this.intersectsBridge(bounds);


复制代码


isValidBuildableLocation ★19、建筑去除部分限制(修改项很多,建议直接复制替换整个方法的代码)


  1. using System;

  2. using System.Collections.Generic;

  3. using MadrugaShared;

  4. using UnityEngine;


  5. namespace DawnOfMan

  6. {

  7.         public partial class EntityManager : TransientSingleton<EntityManager>, SelfSerializable

  8.         {

  9.                 public bool isValidBuildableLocation(BuildableType buildableType, GameObject structureObject, bool flipped, List<int> blockedIndices)

  10.                 {

  11. Bounds cellBounds = new Bounds(structureObject.transform.position, Constants.Vector3One);

  12. StructureType structureType = buildableType as StructureType;

  13. if (structureType != null)

  14. {

  15.         cellBounds = Structure.getCellBounds(structureObject, structureType, flipped);

  16. }

  17. float num = TransientSingleton<TerrainManager>.CurrentInstance.getWaterHeight() -1f;


  18. Vector3 center = cellBounds.center;

  19. float num2 = 20f;

  20. Vector3 terrainSize = TransientSingleton<TerrainManager>.CurrentInstance.getTerrainSize();

  21. if (center.x < num2 || center.z < num2 || center.x > terrainSize.x - num2 || center.z > terrainSize.z - num2)

  22. {

  23.         return false;

  24. }

  25. Vector3 vector = GameUtil.floorPosition(center + cellBounds.extents);

  26. Vector3 vector2 = GameUtil.floorPosition(center - cellBounds.extents);

  27. Vector3 vector3 = GameUtil.floorPosition(center + new Vector3(cellBounds.extents.x, 0f, -cellBounds.extents.z));

  28. Vector3 vector4 = GameUtil.floorPosition(center + new Vector3(-cellBounds.extents.x, 0f, cellBounds.extents.z));

  29. float num3 = Mathf.Min(Mathf.Min(vector.y, vector2.y), Mathf.Min(vector3.y, vector4.y));

  30. float num4 = Mathf.Max(Mathf.Max(vector.y, vector2.y), Mathf.Max(vector3.y, vector4.y));

  31. if (num3 < num)

  32. {

  33.         return false;

  34. }

  35. if (num4 - num3 > 1.5f)

  36. {

  37.         return true;

  38. }

  39. if (!buildableType.hasAnyFlag(EntityFlags.Gate) && this.intersectsWall(cellBounds))

  40. {

  41.         return false;

  42. }

  43. Bounds bounds = cellBounds;

  44. bounds.extents += Constants.Vector3One * 0.5f;

  45. if (this.intersectsPlant(bounds))

  46. {

  47.         return true;

  48. }

  49. if (this.intersectsUnbuiltTransports(cellBounds))

  50. {

  51.         return false;

  52. }

  53. if (this.intersectsBlockedAiNodes(cellBounds))

  54. {

  55.         return false;

  56. }

  57. Bounds bounds2 = cellBounds;

  58. bounds2.extents += Constants.Vector3One;

  59. if (TransientSingleton<TerrainManager>.CurrentInstance.treeIntersection(bounds2))

  60. {

  61.         return true;

  62. }

  63. EntityFlags exclusionFlags = buildableType.getExclusionFlags();

  64. if (exclusionFlags != EntityFlags.None)

  65. {

  66.         Vector3 position = structureObject.transform.position;

  67.         Structure structure = this.findNearestStructure(position, exclusionFlags);

  68.         if (structure != null && Vector3.Distance(structure.getPosition(), position) < buildableType.getExclusionDistance())

  69.         {

  70.                 return true;

  71.         }

  72. }

  73. return true;

  74.                 }

  75.         }

  76. }


复制代码


SettlementManager.setAlertLevel  ★20、吹角自动改速到4x   在声音播放代码下加内容
TransientSingleton<TimeManager>.CurrentInstance.setTimeScale(4f);
PlacedBridge.refresh ★21、桥解除30码限制,解除附近有桥限制  min(num,30)改为num 删除 && num>30 多桥同列改true
GameModeHardcore.isPauseAllowed ★21、硬核模式,解除暂停限制
Buildable.increaseBuildProgress ★22、建筑速度10倍
isValidWaterBuildableLocation ★23、水车上岸(直接复制替换代码)


  1. Bounds cellBounds = Structure.getCellBounds(structureObject, (StructureType)buildableType, false);

  2. Bounds bounds = cellBounds;

  3. bounds.extents += Constants.Vector3One * 0.5f;

  4. if (this.intersectsPlant(bounds))

  5. {

  6.         return true;

  7. }

  8. if (this.intersectsBlockedAiNodes(cellBounds))

  9. {

  10.         return false;

  11. }

  12. cellBounds.extents += Constants.Vector3One;

  13. if (TransientSingleton<TerrainManager>.CurrentInstance.treeIntersection(cellBounds))

  14. {

  15.         return true;

  16. }

  17. if (this.intersectsDoors(structureObject, blockedIndices))

  18. {

  19.         return true;

  20. }

  21. if (!TransientSingleton<EntityManager>.CurrentInstance.getNavigationGraph().getNode(structureObject.transform.position).isActive())

  22. {

  23.         return false;

  24. }

  25. BankRef bankRef = TransientSingleton<BankManager>.CurrentInstance.findNearest(structureObject.transform.position);

  26. if (bankRef != null)

  27. {

  28.         Vector3 normal = bankRef.getBank().getNormal(structureObject.transform.position);

  29.         rotation = Quaternion.LookRotation(normal, Constants.Vector3Up).eulerAngles.y;

  30. }

  31. return true;


复制代码


updateBuildableValidity  ★23、水车上岸寻址地面高度(配合上岸)。改原79行为


  1. y = TransientSingleton<TerrainManager>.CurrentInstance.getWaterHeight();

  2. position.y = Mathf.Max(position.y, y);


复制代码


CameraModeInteractive.update ★24、设置最大镜头高度 原 8 30 改8  60可观察全景
EntityManager.assignTask ★25、任务指派系统优化          原成年人优先处开始改为
                if (human2.getAge() == Age.Young)
                {
num2 -= 33f;
                }
                if (human2.getAge() == Age.Old)
                {
num2 -= 25f;
                }
删除冗余的一次运输工具验证 Transport currentTransport = human2.getCurrentTransport();

=================================

论坛地址
1.版本号: 2.5   更新时间: 2020-12-10 00:47:20

选择快速回复类型:
  • 感谢
  • 支持
  • 疑问
  • 卖萌
  • 关心
  • 傲娇
评论


    作者精品
    logo

    圣火令mod《封建2.5正式版》


    Mod大小:1.2MB
    上传时间:2020-12-10 00:47:03

    Mod简介:

    提取码:whtn

    网盘下载
    选择快速回复类型:
    • 感谢
    • 支持
    • 疑问
    • 卖萌
    • 关心
    • 傲娇
    回复

    这个人很懒,什么也没留下

    点击上方“关注”按钮即可收到作者的更新提醒哦~

    closeAD