元素弩箭天赋

为十字弓和可选的亚登之印添加额外效果

战斗

模式元素弩天赋

进行中...

该模组针对游戏 1.21 版本制作并测试。所以如果你使用的游戏版本不同,并且不确定这段额外代码的作用,你可以很容易地自己添加。

这个模组灵感来源于另一个模组,它并未修改或改变任何原有内容,只是在原有脚本基础上添加了一些额外代码,为十字弓和可选的亚登之印增添了额外效果。

例如,你可以先实现这些效果,因为我需要做更多的测试。

对于十字弩,你可以添加额外效果,比如冻结敌人、燃烧、布娃娃效果、击倒、强力击倒用于终结技......

对于符印“亚登”的替代陷阱,你可以添加与弩箭相同的效果示例。

示例使用的是我的主游戏文件夹路径,即 J:\thewitcheriiia。所以你首先需要备份 npc.ws 文件以防万一,比如在我的路径中 J:\thewitcheriiia\content\content0\scripts\game\npc\npc。

现在你需要将 npc.ws 复制到 J:\thewitcheriiia\mods\modboltknocka\content\scripts\game\npc。如果该路径不在你的主游戏文件夹中,那么你需要创建它。

现在打开 npc.ws 文件,路径是 J:\thewitcheriiia\mods\modelementalcrossbowtallenta\content\scripts\game\npc,你需要找到以下几行代码:

boltCauser = (W3ArrowProjectile)( damageAction.causer );
yrdenCauser = (W3YrdenEntityStateYrdenShock)( damageAction.causer );

如果(施法者或亚登陷阱触发者)

现在你需要像这样添加那些额外的代码行:

boltCauser = (W3ArrowProjectile)( damageAction.causer );
yrdenCauser = (W3YrdenEntityStateYrdenShock)( damageAction.causer );

if (有螺栓引发器)
{
    damageAction.AddEffectInfo( EET_Knockdown );
}
if (亚登施法者)
{
    damageAction.AddEffectInfo( EET_Frozen );
}

如果(闪电引发者或亚登引发者)

现在你可以修改 EET_Knockdown 这个位于代码第一部分的值,用于为弩箭添加击倒效果;或者你可以更改 EET_Frozen,这部分代码位于第二部分,我认为是用于亚登之印模组 2,并在陷阱激活时添加冰冻效果。所以如果你想的话,可以用它们来改变效果。

这些尚未经过全面测试,但在我简短的测试中它运行正常,我认为。我认为首领和其他一些任务及特殊 NPC 会对这些效果免疫,直到我找到方法让他们变得脆弱。

而 EET_HeavyKnockdown 效果则是击倒效果,让你可以终结处于该效果影响下的敌人。

EET_Burning
EET_Frozen
EET_Ragdoll
EET_Knockdown
EET_HeavyKnockdown
EET_Poison
EET_Blindness
EET_GhostBlindness

如果你在启动游戏时遇到问题并收到错误提示,首先确保你正确复制粘贴了代码。如果仍然无法正常工作并出现编译错误,那么你需要确保修复了这个错误,我认为这是开发者遗留或更改的。

例如,进入我的路径 J:\thewitcheriiia\content\content0\scripts\engine 并备份 telemetryKeyword.ws 以防万一。现在打开它,选择全部并删除里面的所有代码,然后将这个复制进去:

// 由 "theTelemetry" 指向的类
// 请勿直接实例化
import class CR4TelemetryScriptProxy extends CObject
{
    import final function LogWithName( eventType : ER4TelemetryEvent );
    import final function LogWithTag( eventType : ER4TelemetryEvent, tag : string );
    import final function LogWithValue( eventType : ER4TelemetryEvent, value : int );
    import final function LogWithValueString( eventType : ER4TelemetryEvent, value : string );

    import final function LogWithTagAndValue( eventType : ER4TelemetryEvent, tag : string, value : int );
    import final function LogWithTagAndValueString( eventType : ER4TelemetryEvent, tag : string, value : string );
    import final function SetGenericStateFloat( stateType: ER4GenericState, value : float );
    import final function SetGenericStatInt( statType: ER4GenericStat, value : int );

    import final function SetGameProgress( value : float );

    import final function AddSessionTag(tag : string );
    import final function RemoveSessionTag(tag : string );

    import final function XDPPrintUserStat( statName : string );
    import final function XDPPrintUserAchievement( achievementName : string );
}

确保在 } 后面留一个额外的空行或空格,以防万一。

现在应该可以工作了,如果还是不行请告诉我。因为我听说在某些情况下需要删除一些黑客日志,所以请留下评论,我们可以尝试修复它。

所以玩得开心点,我的英语不好,非常抱歉。

来自罗马尼亚的问候。

感谢那些制作其他模组的人,他们的作品给了我灵感。