最新的游戏资讯
精彩的游戏攻略

环世界Rimworld1.3版本DLL代码改动内容说明

环世界Rimworld1.3版本DLL代码改动内容说明

  • 相关软件

    世界

    大小:33.1M 语言:简体中文

    类型:游戏推荐 等级:

    立即下载 查看详情

    环世界目前已经推出1.3beta版本,新版本对游戏文件中的部分DLL代码进行了改动,那么下面一起来看看环世界Rimworld1.3版本DLL代码改动内容说明了解一下吧。

    1.3版本DLL代码改动内容

    CompReloadable无修改,衣物对于verb的获取依然依靠CompReloadable

    Apparel修改:“为穿戴护盾腰带的小人禁用了开火选项和按钮。”

    AllowVerbCast(IntVec3 root, Map map, LocalTargetInfo targ, Verb verb)

    修改为

    AllowVerbCast(Verb verb)

    修改内容:

    取消了CanReachImmediate的检测

    在verb处有Apparel FirstApparelPreventingShooting()

    在verbTracker处对FirstApparelPreventingShooting()检测,若有则让verb的command Disable掉,但没有看见“移除”

    进游戏查看后,确认是翻译者错误,确实只有Disable的禁用

    仿生体现在能够被渲染,但不是hediff的Draw

    用的是FleshTypeDef.hediffWounds,即伤口的渲染

    所以mod作者们需要制作的话,需要自己用patch打代码

    FleshTypeDef.hediffWounds内有对hediff的检测,然后四个方向的渲染图,一些关于部位的东西,其他设定等。

    可能不太好用【依然建议用harmony直接打draw】

    抛射物“手雷现在将渲染其抛物线”

    子弹的ThingDef.projectile下,有float的arcHeightFactor和shadowSize【原版在手雷们的父defs

    前者控制抛物线最高高度,后者控制影子

    经过一系列处理,最后在Projectile.Draw引用

    与之前跳跃背包的PawnJumper应该是相同的抛物线绘制法

    子弹修改

    Projectile.Launch(Thing launcher, Vector3 origin, LocalTargetInfo usedTarget, LocalTargetInfo intendedTarget, ProjectileHitFlags hitFlags, Thing equipment = null, ThingDef targetCoverDef = null)

    改为

    Projectile.Launch(Thing launcher, Vector3 origin, LocalTargetInfo usedTarget, LocalTargetInfo intendedTarget, ProjectileHitFlags hitFlags, bool preventFriendlyFire = false, Thing equipment = null, ThingDef targetCoverDef = null)

    在第五个参数后,第六个参数的位置,即原来equipment的位置,增加了preventFriendlyFire,其余参数不变

    Projectile增加了属性

    protected bool preventFriendlyFire;

    若该值为true,则当子弹击中的单位与子弹发射者的派系是友好时

    子弹的Impact()无法执行

    mod修改意见:增加了友伤避免,建议按mod实际需求来进行参数更改

    Verb修改

    Verb.ValidateTarget(LocalTargetInfo target)

    改为

    Verb.ValidateTarget(LocalTargetInfo target, bool showMessages = true)

    看了一圈,原版对showMessages的引用似乎比较少,大多数原版重载的代码没有修改,

    mod更新建议:仅需修改ValidateTarget的参数,其代码完全无需修改。

    Mote 被从Thing中剥离到独立线程中以提高渲染性能,他们现在位于"Flecks"下

    许多Mote,MoteMaker,MoteDef

    变为Fleck,FleckMaker,FlackDef

    在FleckMaker下有许多现成的fleck

    许多MoteDef改为了FleckDef

    举例:

    MoteMaker.MakeStaticMote(loc, base.Wearer.Map, ThingDefOf.Mote_ExplosionFlash, num);

    MoteMaker.ThrowDustPuff(loc, base.Wearer.Map, Rand.Range(0.8f, 1.2f));

    应改为

    FleckMaker.Static(loc, base.Wearer.Map, FleckDefOf.ExplosionFlash, num);FleckMaker.ThrowDustPuff(loc, base.Wearer.Map, Rand.Range(0.8f, 1.2f));

    FleckMaker.ThrowDustPuff(loc, base.Wearer.Map, Rand.Range(0.8f, 1.2f));

    新增FleckDef【public class FleckDef : Def

    将原来MoteProperties【即ThingDef.mote】下所有内容

    移至FleckDef

    并有

    public Type fleckSystemClass;

    public AltitudeLayer altitudeLayer;

    public float altitudeLayerIncOffset;

    public bool drawGUIOverlay;

    public GraphicData graphicData; //即原本ThingDef下的

    public ListrandomGraphics;//新增的随机贴图读取

    随机贴图的读取,对于喜欢特效的作者是福音

    Gzimo修改

    Gizmo.GizmoOnGUI(Vector2 topLeft, float maxWidth)改为

    Gizmo.GizmoOnGUI(Vector2 topLeft, float maxWidth, GizmoRenderParms parms);

    增加了参数GizmoRenderParms,内含:

    public bool highLight;

    public bool lowLight;

    public bool shrunk;

    mod更新意见:若无对该三者的应用,仅需修改GizmoOnGUI的参数,其代码完全无需更改。

    “角色现在渲染效率更高(游戏将它们打印到纹理上并在一次过程中渲染,而不是在每一帧上分别渲染每个身体层)。”

    PawnRenderer.RenderCache被重写了,有兴趣的可以去看看

    美工福利:头发与胡子,现在统称叫造型

    头发【HairDef】:

    hairTags名字改为styleTags,原版有更多的Tags了

    hairGender名字改为styleGender【不填默认为any,与改变前一样

    新增category,用于给头发和胡子分类。可在CoreDefsMiscHairDefsStyleItemCategoryDefs.xml查看原版所有的category。

    新增iconPath,填贴图路径,表示头发的显示图标

    胡子【BeardDef】

    绝大多数东西与改版后的头发一样。

    新增offsetNarrowEast【格式为(x,y,z)】,表示朝东时胡子贴图的偏移,x和z分别为左右和上下

    新增offsetNarrowSouth【格式为(x,y,z)】,表示朝南时胡子贴图的偏移,x和z分别为左右和上下

    这两块属于美工不想单独调整南和东的贴图时 程序给予的补偿代码。

    Hediff修改

    Hediff.Tended_NewTemp(float quality, float maxQuality, int batchPosition = 0)

    改为

    Hediff.Tended(float quality, float maxQuality, int batchPosition = 0)

    内部代码没有任何变化

    mod更新意见:直接改方法名即可

    Pawn的Faction修改

    FactionOrExtraMiniOrHomeFaction改为HomeFaction,返回值新增Pawn.SlaveFaction

    RecipeWorker的Faction修改

    RecipeWorker下:

    protected void ReportViolation(Pawn pawn, Pawn billDoer, Faction factionToInform, int goodwillImpact, string reason)

    改为

    protected void ReportViolation(Pawn pawn, Pawn billDoer, Faction factionToInform, int goodwillImpact)

    移除了第五个参数string reason,因为ReportViolation自带Reason HistoryEventDef:PerformedHarmfulSurgery【“harmful surgery on member”】

    更新建议:

    1.使用他自己的reason

    2.绕过ReportViolation,直接自己写TryAffectGoodwillWith

    Building的修改

    需要在ThingDef中修改drawerType

    常用的为MapMeshAndRealTime

    否则Draw不会被运行。

    • 1
      2
      3
      4

  • 赞(0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址

    饭游网