首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用Deus Ex中的子类覆盖UnrealScript中的条件变量?

用Deus Ex中的子类覆盖UnrealScript中的条件变量?
EN

Stack Overflow用户
提问于 2018-02-01 01:09:30
回答 1查看 87关注 0票数 1

实际上,我使用的是2000年的Deus Ex原版游戏。我创建了一个"DeusEx.Flare“的子类,将其命名为"rflare”,并将其保存到我自己的包中。我已经成功地编译了它,它可以工作,但不是我想要的方式。我想重写函数"LifeSpan = 30“并赋予它"LifeSpan = 120”。问题出在文档上。实际上是没有的。我能找到的文档通常太混乱了,并且没有给出足够好的例子来说明我想要做的事情。下面是代码。我知道我应该使用“超级”这个表达,但我已经用尽了我知道的所有方法。我就是不能让它工作。但是,如果我不介意扔普通的照明弹(在30秒内熄灭)和我自己的照明弹,我可以让它工作,我自己的照明弹只会落到地上没有声音,但实际上会持续120秒。所以我的代码最终会抛出两个光斑。1颗普通照明弹在30秒内熄灭。另一个持续120年,但不会像普通的照明弹那样被抛出。

下面是我正在尝试更改的DeusEx.Flare脚本代码。

代码语言:javascript
复制
function LightFlare()
{
local Vector X, Y, Z, dropVect;
local Pawn P;

if (gen == None)
 {  
    LifeSpan = 30;
 }
}

我的第一个尝试是复制它并在我自己的包中更改它。它工作了,但再次,它发射了两个照明弹,一个正常的和一个有点工作的。我只想做一个。下面是我改正代码的尝试。

代码语言:javascript
复制
function LightFlare()
{
Super(Flare).LightFlare();

if (gen == None)
    {
        LifeSpan = 120;
    }
}

所有这一切都只是产生正常的耀斑,持续的时间没有区别。有人能帮帮我吗?

EN

回答 1

Stack Overflow用户

发布于 2019-01-09 19:30:02

我建议从父类中完整地复制LightFlare函数,而不是调用super.您不想让原始函数运行,因为这会弄乱生命周期变量。

例如:

代码语言:javascript
复制
    class RFlare extends Flare;

    function LightFlare()
    {
       local Vector X, Y, Z, dropVect;
       local Pawn P;

       // Original function here, change lifetime when specified.

       if (gen == None)
       {  
          LifeSpan = 120;
       }
    }

    defaultproperties
    {
    }
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48547721

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档