环球观天下!老滚5[CK教程] 给双手剑、双手斧/锤赋予自定义法术

2023-06-02 11:20:30 来源:哔哩哔哩


(资料图片)

学习资料1:【黑兔出品】如何让双手武器攻击附带剑气 作者:深渊黑兔 https://www.bilibili.com/read/cv6215227?spm_id_from=333.999.0.0 ,学习资料2:Creation kit说明书02——第一个MOD,和magic,还有perk  作者:甜味剂豆浆 https://www.bilibili.com/read/cv19550216?spm_id_from=333.999.0.0学习资料3:creation kit 网站:https://www.creationkit.com/index.php?title=Main_Page同时拆解了:热血斯卡剑气优化(我自己百度下载的引流版本,不是站内的),就不再次引流了;感谢大佬文件自带脚本源码:疯疯疯猫本文是上班摸鱼产品,不保证全对,欢迎大佬们指正。实现思路:1、全种族自带的恢复术的法术效果中添加一个自动赋予玩家ability(常态能力)的脚本,当玩家释放恢复术时给自己添加。PS:此为取巧做法,我不会进游戏就能自动添加的方法,类似于AIM那种,有大佬知道的话请教教我。                        2、新建一个脚本类型的ability(能力),能力效果靠脚本实现,脚本内容就是监听人物挥舞武器(包括空手挥舞)的动作,通过判断来确认玩家拿着双手剑还是双手斧/锤在挥舞,进而发出特定法术。测试也没完全测试好,有些想法也没时间、没思路实现,还是希望各位大佬能做一些基础教程救救小菜鸟。以下是实现方法,摸鱼产品,所以无图!无图!无图!一:用CK(creation kit英文版,中文版没试,可能有bug,比如做半天保存不了)加载skyrim.esm二:Healing法术(初始法术:恢复术)的法术效果(magic effect):healling中右下角脚本窗口点击add附加脚本A0AutoAddAbilityScriptname A0AutoAddAbility extends activemagiceffect         ;脚本名和继承类别,一般只需自定义脚本名Actor property AddToActor auto                                           ;声明一个人物变量,用于储存要给哪个人物添加能力Spell property A0AddedAbility auto                                       ;声明一个法术变量,用于储存要给人物添加的能力。                                                                                        ;ability属于恒定效果(Constant Effects),一直存在,也可以自己换其他的类型。event OnEffectStart(Actor akTarget, Actor akCaster)                ;当附加这个脚本的法术开始生效时触发OnEffectStart事件。        if akCaster == game.getplayer()                                   ;判断释放这个法术<恢复术(healing)>的人是不是玩家。                                                                                         ;if语句是当结果为真时继续在语句内运行,也就是当且仅当玩家释放这个法术<恢复术(healing)>时才继续运行if——endif或if——else或if——elseif之间的语句。        AddToActor = akCaster                                                   ;给人物变量赋值,此脚本中用于储存玩家人物对象                if !(AddToActor.HasSpell(A0AddedAbility))                ; “!”代表逻辑非,此语句表示当玩家没有A0AddedAbility这个能力时继续运行if——endif之间的语句。                        AddToActor.addspell(A0AddedAbility)                ;给玩家添加A0AddedAbility这个能力                endif        endifendevent脚本写完后Ctrl+S保存并自动编译,编译器下方提示框显示succeed才可以关闭编译器。点击OK保存编辑后的magic effect窗口。三:现在需要用ck做一个ability,在ck左边列表magic——spell——ability中新建,弹出窗口中设置:ID:A0MyAddedAbility(脚本中有个叫A0AddedAbility的变量,那个变量仅代表脚本运行时的名称,无需与实际的对象名一致)name:AutoCastSpellAbility(顾名思义,这个能力的作用就是自动释放法术)type:abilitycasting:Constant Effects(Constant Effects:恒定效果,自动的;Concentration:按住释放键时持续效果;Fire and Forget:按释放键蓄力一段时间(可以为0))Delivery:self其他的不管,点击ok,会提示没有添加magic effect,不管,继续确定。四:之后在ck左边列表magic——magic effect中新建,弹出窗口设置:ID:A0MyAddedAbilityEffectname:AutoCastSpellAbilityEffectEffect Archetype(效果原型):scriptcasting:Constant EffectsDelivery:self左边这一列完成了,其他的都不管。中间的第二列,第二列是施法时的视觉效果,都可以不管,也可以自己试试。右边第三列上半部分是声效,选了也不能试听,差评。下半部分papyrus scripts这一栏暂时选不了。点击OK就新建了一个Magic Effect(法术效果)五:之后是串联所有的自定义ability、magic effect、script。倒着来,先点开magic effect中刚才新建的A0MyAddedAbilityEffect,发现右下角papyrus scripts可以选了。点击add新建脚本。Scriptname A0AutoCastSpellEffect extends activemagiceffect         ;脚本名和继承类别,一般只需自定义脚本名Actor property AutoCastActor auto                                                        ;声明一个人物变量,用于储存要给哪个人物添加能力Spell property A0TwoHandedSwordCastSpell auto                                                ;声明一个法术变量,用于储存要给人物添加的能力。Spell property A0TwoHandedAxeMaceCastSpell auto                                                ;ability属于恒定效果(Constant Effects),一直存在,也可以自己换其他的类型。event OnEffectStart(Actor akTarget, Actor akCaster)                ;当附加这个脚本的法术开始生效时触发OnEffectStart事件。        RegisterforActorAction(0)                                                        ;注册监听人物的某一类型动作。必须先注册才能在OnActorAction事件接收;actionType - The following integers are valid:0 - Weapon Swing (Melee weapons that are swung including Hand to Hand.)武器挥舞,空手时也会监听到;1 - Spell Cast (Spells and staves).;2 - Spell Fire (Spells and staves).3 - Voice Cast.;4 - Voice Fire.;5 - Bow Draw.;6 - Bow Release.;7 - Draw Begin.;8 - Draw End.;9 - Sheathe Begin.;10 - Sheathe End.        AutoCastActor = akCaster   ;给自动施法的人物变量赋值,这个脚本是刚才新建的能力的法术效果中的,法术施放者和生效者都是玩家自身,所以akcaster和aktarget都能用endeventEvent OnActorAction(int actionType, Actor akActor, Form source, int slot)                        ;在人物做动作时接收事件        ;actionType - The actionType that triggered the event (See RegisterForActorAction for a list of available action types).        ;akActor - The actor that triggered the event.        ;source - The Weapon or Spell that was used within the action.        ;slot - The slot of the source item. Valid Slots:                        ;0 - Left Hand                        ;1 - Right Hand                        ;2 - Voice        If actionType==0&&akActor==AutoCastActor          ;当做的动作为武器挥舞且做出动作的人是玩家时继续判断                if (AutoCastActor.GetEquippedItemType(0) == 5) || (AutoCastActor.GetEquippedItemType(1) == 5);当玩家左手装备双手剑或右手装备双手剑时继续运行。PS:应该是写一只手的就行,但我没时间测试哪只手的能准确识别,有大佬知道的话请务必让我白嫖一波                        AutoCastActor.Cast(A0TwoHandedSwordCastSpell)           ;玩家自动释放双手剑对应的法术                elseif (AutoCastActor.GetEquippedItemType(0) == 6) || (AutoCastActor.GetEquippedItemType(1) == 6);当玩家左手装备双手斧/锤或右手装备双手斧/锤时继续运行                        AutoCastActor.Cast(A0TwoHandedAxeMaceCastSpell)                             ;玩家自动释放双手斧/锤对应的法术                Endif        endifEndEvent六:脚本写完后Ctrl+S保存并自动编译成功后退出编译器,回到magic effect窗口,右下角脚本组件窗口点击properties,弹出属性变量定义窗口。在属性变量定义窗口左边点击选中任一属性变量,点击右侧edit value,点击下拉列表选择对应的法术,A0TwoHandedSwordCastSpell给一个chainlightning(闪电链)法术,A0TwoHandedAxeMaceCastSpell给一个fireball(火球术,好像是大火球)法术,AutoCastActor属性变量不用管。PS:没时间自己做法术,就用原版测试的。都选完之后点OK,回到magic effect窗口再点ok保存。七:到ck左边列表magic——spell——ability中找到刚才新建的A0MyAddedAbility,点击进行编辑,右侧effect窗口组件上右键单击添加magic effect,选择A0MyAddedAbilityEffect,一步步ok保存。八:到ck左边列表magic——magic Effect 选择最开始附加脚本的恢复术的法术效果:healing,同样在右下角脚本组件窗口中给A0AutoAddAbility属性附加自己创建的法术:A0MyAddedAbility,AddToActor属性变量不用管。一步步ok保存。九:最后在CK的左上角顶部file选项中选择save保存MyAutoCastSpell.esp文件。十:至此,一个会在挥舞双手剑或者双手斧/锤时自动释放对应闪电链/火球术的mod已完成,模组管理器中选中MyAutoCastSpell.esp,测试效果。

标签:

世界快消息!湖南能监办派员协助开展火电厂电煤库存现场核查工作

新华网 2023-05-31 13:39:33

中国电动汽车火灾安全指数在渝发布 每日报道

新华网 2023-05-31 13:08:09

城发环境:5月30日融资买入1981.82万元,融资融券余额2.14亿元

新华网 2023-05-31 13:16:54

见证中国航天的世界情怀|速看料

新华网 2023-05-31 12:25:24

股票分红的钱第二天没了?股票分红的钱当天能转出来吗?

新华网 2023-05-31 12:20:23

多部门协力为退役军人家庭建立抵御疾病风险多层次保障 环球即时

新华网 2023-05-31 11:21:24

全球头条:应对“烂场雨”农业农村部部署抓好小麦抢收烘干晾晒

新华网 2023-05-31 10:54:42

今日热讯:【世界说】美媒:枪暴泛滥的鲜血溅染了美国年轻人的生活 政府的不作为与民意相悖

新华网 2023-05-31 10:55:56

为国为民!科技工作者中那些“扫地僧”般的存在

新华网 2023-05-31 10:10:07

法国新学年房屋租金普遍上涨 多个城市房源紧张-全球观焦点

新华网 2023-05-31 10:12:12

5月30日基金净值:广发价值优势混合最新净值1.434,跌0.47% 全球视讯

新华网 2023-05-31 09:35:47

神十六空间科学实验的长远意义

新华网 2023-05-31 09:17:02

明阳电路:融资净买入38.46万元,融资余额1.35亿元(05-30) 消息

新华网 2023-05-31 08:53:25

“脑机接口”成最新风口

新华网 2023-05-31 08:09:38

天天热点评!快播公司破产注销:和一代人的记忆说再见

新华网 2023-05-31 08:02:48
x 广告
x 广告

Copyright @  2015-2022 东方晚报网版权所有  备案号: 沪ICP备2020036824号-8   联系邮箱:562 66 29@qq.com