3DMGAME 3DM首页 新闻中心 前瞻 | 评测 游戏库 热门 | 最新 攻略中心 攻略 | 秘籍 下载中心 游戏 | 汉化 购买正版 论坛

注册 登录

QQ登录

只需一步,快速开始

查看: 1385|回复: 2
打印 上一主题 下一主题

[原创] 用时空裂缝开启器重复制造即时陨石(目前只能在主星下)(密码回帖私你)萌新不建议尝试

[复制链接]

141

主题

857

帖子

2871

积分

游戏达人

Rank: 7Rank: 7Rank: 7

贡献度
270
金元
17914
积分
2871
精华
0
注册时间
2014-11-30
跳转到指定楼层
主题
发表于 2022-9-24 16:31 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 fanvalen 于 2024-7-7 21:47 编辑

TemporalTearOpenerConfig//时空裂缝开启器
首先我们将这个工具添加到菜单方便点击建造,
在tuning.buildings下氧气栏添加"TemporalTearOpener"
new PlanScreen.PlanInfo(new HashedString("Oxygen"), false, new List<string>
我们稍微对它的需求进行改造一下(完全脱离原来配置)
TemporalTearOpenerConfig.ConfigureBuildingTemplate
highEnergyParticleStorage.capacity = 1000f;//粒子储存量,改成10000可好
def.numParticlesToOpen = 10000f;//充满需要的粒子,改成9个可好,为啥是9个,10个飞行过程中会随飞行距离减少
def.consumeRate = 5f;//粒子充能速度,可以不动

go.GetComponent<Deconstructable>().allowDeconstruction = false;//是否允许拆除,false改true就是可拆了
我们都知道这货需要5个打印出才能激活
EstablishColonies
public static int BASE_COUNT = 5;//殖民地数量需求,改成1个可好
此时可以发射一次了,此后每天此时都会下陨石。
这没满足我的需求啊,只能发射一次
不是想要的时候就会有陨石,
好吧我们弄个重复的
我们将
this.opening_tear_finish.PlayAnim("working_pst").Enter(delegate(TemporalTearOpener.Instance smi)
                {
                        smi.OpenTemporalTear();
                });
改成
this.opening_tear_finish.PlayAnim("working_pst").Enter(delegate(TemporalTearOpener.Instance smi)
                {
                        smi.OpenTemporalTear();
                smi.GoTo(this.charging);//重置动画
                });
好了发射光束后就会恢复原始状态
现在可以重复发射光束了但是陨石没有了啊,为啥,因为裂缝开启了嘛
我们需要到ClusterPOIManager.OpenTemporalTear里更改
在这个下面添加
if (!this.m_temporalTear.Get().IsOpen())
                {
                        this.m_temporalTear.Get().Open();
                        ClusterManager.Instance.GetWorld(openerWorldId).GetSMI<GameplaySeasonManager.Instance>().StartNewSeason(Db.Get().GameplaySeasons.TemporalTearMeteorShowers);
                }
添加ClusterManager.Instance.GetWorld(openerWorldId).GetSMI<GameplaySeasonManager.Instance>().StartNewSeason(Db.Get().GameplaySeasons.TemporalTearMeteorShowers);
此时再发射就会下陨石了,但是不止发射的时候下,后面每天此时都下,为啥,因为发射一次就添加一个下陨石的任务,这不行啊无限发射后面全天都下陨石就问你怕不怕
所以我们需要把任务移除
GameplaySeasonManager.Update
需要在foreach之前添加this.activeSeasons.Clear();
好了这个移除把开启裂缝的陨石雨也给移除了
但是还有一个问题没解决
就是开火按钮不会消失也不会再充能
所以在public void OpenTemporalTear()下添加
this.m_particlesConsumed = 0f;//重置充能
这次就会在发射后再次进入充能,满100%才可以再此发射
然后这个陨石只掉富勒烯岩石尘埃,那能不能落点其他陨石呢,答案是可以的
GameplayEvents找到this.MeteorShowerFullereneEvent
改成
this.MeteorShowerFullereneEvent = base.Add(new MeteorShowerEvent(id4, duration4, secondsPerMeteor4, new MathUtil.MinMax(1f, 1f), secondsBombardmentOn).AddMeteor(CopperCometConfig.ID, 1f).AddMeteor(GoldCometConfig.ID, 2f).AddMeteor(IronCometConfig.ID, 1f).AddMeteor(FullereneCometConfig.ID, 6f).AddMeteor(RockCometConfig.ID, 1f).AddMeteor(DustCometConfig.ID, 1f));
添加金铁铜等陨石。至于牛陨石和小吃陨石就不要了,需要的自行在附近找来添加
当以上都不满足你,准备来点没有的陨石,列如钨陨石,铌陨石,石墨,刚,....等等
那我们就要构建一个新的陨石创建一个新类

using System;
using STRINGS;
using UnityEngine;

public class TungstenCometConfig : IEntityConfig
{
        public string[] GetDlcIds()
        {
                return DlcManager.AVAILABLE_ALL_VERSIONS;
        }

        public GameObject CreatePrefab()
        {
                GameObject gameObject = EntityTemplates.CreateEntity(TungstenCometConfig.ID, UI.SPACEDESTINATIONS.COMETS.IRONCOMET.NAME, true);
                gameObject.AddOrGet<SaveLoadRoot>();
                gameObject.AddOrGet<LoopingSounds>();
                Comet comet = gameObject.AddOrGet<Comet>();
                comet.massRange = new Vector2(3f, 20f);
                comet.temperatureRange = new Vector2(323.15f, 423.15f);
                comet.explosionOreCount = new Vector2I(2, 4);
                comet.entityDamage = 15;
                comet.totalTileDamage = 0.5f;
                comet.splashRadius = 1;
                comet.impactSound = "Meteor_Medium_Impact";
                comet.flyingSoundID = 1;
                comet.explosionEffectHash = SpawnFXHashes.MeteorImpactMetal;
                PrimaryElement primaryElement = gameObject.AddOrGet<PrimaryElement>();
                primaryElement.SetElement(SimHashes.Tungsten, true);
                primaryElement.Temperature = (comet.temperatureRange.x + comet.temperatureRange.y) / 2f;
                KBatchedAnimController kbatchedAnimController = gameObject.AddOrGet<KBatchedAnimController>();
                kbatchedAnimController.AnimFiles = new KAnimFile[]
                {
                        Assets.GetAnim("meteor_metal_kanim")
                };
                kbatchedAnimController.isMovable = true;
                kbatchedAnimController.initialAnim = "fall_loop";
                kbatchedAnimController.initialMode = KAnim.PlayMode.Loop;
                kbatchedAnimController.visibilityType = KAnimControllerBase.VisibilityType.OffscreenUpdate;
                gameObject.AddOrGet<KCircleCollider2D>().radius = 0.5f;
                gameObject.transform.localScale = new Vector3(0.6f, 0.6f, 1f);
                gameObject.AddTag(GameTags.Comet);
                return gameObject;
        }

        public void OnPrefabInit(GameObject go)
        {
        }

        public void OnSpawn(GameObject go)
        {
        }

        public TungstenCometConfig()
        {
        }

        // Note: this type is marked as 'beforefieldinit'.
        static TungstenCometConfig()
        {
        }

        public static string ID = "TungstenComet";
}

最后我们还的使用
this.MeteorShowerFullereneEvent = base.Add(new MeteorShowerEvent(id4, duration4, secondsPerMeteor4, new MathUtil.MinMax(1f, 1f), secondsBombardmentOn).AddMeteor(CopperCometConfig.ID, 1f).AddMeteor(GoldCometConfig.ID, 2f).AddMeteor(IronCometConfig.ID, 1f).AddMeteor(FullereneCometConfig.ID, 6f).AddMeteor(RockCometConfig.ID, 1f).AddMeteor(DustCometConfig.ID, 1f).AddMeteor(TungstenCometConfig.ID, 1f));//TungstenCometConfig就添加在最后以便区分
需要多少彗星添加多少彗星类自行构造

陨石持续时间
float duration4 = 30f;//30秒















回复

使用道具 举报

23

主题

225

帖子

297

积分

高级玩家

Rank: 4

贡献度
26
金元
1934
积分
297
精华
0
注册时间
2012-10-29
舒服的沙发
发表于 2022-10-1 00:27 | 只看该作者
回帖私你。那么密码呢?
能做成mod么?
有了无限陨石就可以无限奍田鼠了
回复 支持 反对

使用道具 举报

141

主题

857

帖子

2871

积分

游戏达人

Rank: 7Rank: 7Rank: 7

贡献度
270
金元
17914
积分
2871
精华
0
注册时间
2014-11-30
硬硬的板凳
 楼主| 发表于 2022-10-2 20:49 | 只看该作者
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|3DMGAME ( 京ICP备14006952号-1  沪公网安备 31011202006753号

GMT+8, 2026-3-27 06:43 , Processed in 0.029134 second(s), 16 queries , Memcached On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表