xjdelc 发表于 2013-4-29 22:01

!!关于Geck下脚本编译的问题!!诚心求教!!(水王留情)

          *前(马)言(屁)
*真的不是水贴,请水王留情!
接触辐射的时间越长,越有这种感觉--下载别人的mod玩,在感谢作者辛勤劳动的同时,总有认为自己不合适的地方.于是乎慢慢学习geck,动手修改.进游戏体验.测试.改完了自己也有小小的成就感.记得我刚开始玩fo3的时候,下载了一套服装,好看是好看,但是防御太低,属于观赏性的物品,出门打怪就不行了.特别是装了怪物增强模组之后.那时候就只会改改防御,改改重量等基本的修改.后来完了FNv 开始学习Object Effect 游戏玩的多了,熟练了.发现改的bt了没意思,慢慢的开始从平衡性的角度出发,适度的修改.因为我文化程度比较低(高一辍学)没有系统的学习英语,(编程是神马?写个bat还行)在熬了很多通宵之后学会了修改装备基本属性,Effects,修理列表,装备音效,将装备加入游戏世界(我那时候用的英文版).也许在很多人眼里很浅显易懂的玩意,对于我来说却比登天还难.没文化....真的很可怕~找mod不如自己学做mod,这是我在玩了Fo3和Fnv两个版本的重生、真永恒之心合集、外加Cwdolls &Cwclothes ... ...这些mod之后自己的感想.首先感谢这些mod的作者,你们的辛苦劳动为广大辐射爱好者带来了难忘的游戏体验.虽然我们各在一方,虽然我们相隔千里.但是在这里我要谢谢你们!衷心的感谢你们!同时感谢3dmgame游戏论坛,给予我们游戏爱好者一个交流和下载游戏的平台!
      
          *正(求)题(助)
Geck的使用现在学会了.但是我的难题在于编译脚本.特别是Fose和MCM菜单等使用条件判断和嵌套的函数.在网上也没有找到相应的Script教程.所以在此,只要您有相关教程或者能够愿意教我的坛友,请在此回帖或者站内信. 非常感谢!





qqqween007 发表于 2013-4-30 00:35

脚本编译是个真难题

xjdelc 发表于 2013-4-30 14:33

qqqween007 发表于 2013-4-30 00:35 static/image/common/back.gif
脚本编译是个真难题

请问你有没有相关教程.英语的也行.打不了我自己慢慢嗑.~{:3_91:}

真永恒之心 发表于 2013-4-30 18:20

这里是GECK教学地址,有详细描述脚本指令的格式与用法
http://geck.bethsoft.com/index.php/Category:Functions_(GECK_1.1)
看不懂的地方用机翻吧

xjdelc 发表于 2013-4-30 22:25

真永恒之心 发表于 2013-4-30 18:20 static/image/common/back.gif
这里是GECK教学地址,有详细描述脚本指令的格式与用法
http://geck.bethsoft.com/index.php/Category:Funct ...

非常感谢!

xjdelc 发表于 2013-4-30 23:39

本帖最后由 xjdelc 于 2013-5-1 16:59 编辑

真永恒之心 发表于 2013-4-30 18:20 static/image/common/back.gif
这里是GECK教学地址,有详细描述脚本指令的格式与用法
http://geck.bethsoft.com/index.php/Category:Funct ...
Begin ScriptEffectStart
    Set Selector to Selector == 0
    Showmessage aaLuckLadys #已经添加自定义消息 ,内容不赘述
End


    if IsKeyPressed 49 != sToggle
      set sToggle to IsKeyPressed 49
      if sToggle ;Button pressed
            player.setav Nighteye 1   #根据猫眼药剂的脚本参数设置的,似乎没有效果~
            playsound UIPipBoyLightOn
      else ;Button released
            player.setav Nighteye 0
            playsound UIPipBoyStatic
      endif
    endif
End

游戏中体验效果不可行....求指点

思路是按一下n获得低光夜视,再按一下移除效果.大神帮我检查一下哪里错了~多谢

xjdelc 发表于 2013-5-1 14:04

qqqween007 发表于 2013-4-30 00:35 static/image/common/back.gif
脚本编译是个真难题

帮忙看一下楼上的脚本有什么问题吧.谢谢了~

316a 发表于 2013-5-1 15:24

xjdelc 发表于 2013-5-1 14:04 static/image/common/back.gif
帮忙看一下楼上的脚本有什么问题吧.谢谢了~

请把完整脚本贴出, 不要截取片段

xjdelc 发表于 2013-5-1 17:21

本帖最后由 xjdelc 于 2013-5-1 17:34 编辑

316a 发表于 2013-5-1 15:24 static/image/common/back.gif
请把完整脚本贴出, 不要截取片段
惊现316a!
是这样的,因为我根本不会写脚本.所以呢一般都是一半抄袭一半瞎蒙.看到你说把脚本全贴出来当时我就傻了.我的思路是这样的,给幸运眼罩增加夜视效果,这一步已经成功了,采用的是低光夜视也就是猫眼药剂的夜视效果.可是无法主动开关.于是想到了FOSE .用NVSE启动GECK 开始查找猫眼药剂的脚本. 如下
scn CateyeEffect

begin ScriptEffectStart
    ApplyImageSpaceModifier CatEyeISFX #1允许图像空间模组 猫眼ISFX ? 也有可能是吃猫眼的时候画面模糊的效果?
    player.setav Nighteye 1                      #2上面那条看不懂瞎猜的,这条应该是脚本在游戏中执行的命令..打开夜视.
end

begin ScriptEffectFinish
    RemoveImageSpaceModifier CatEyeISFX    #3移除了#1.
    ApplyImageSpaceModifier CatEyeFadeOutISFX    #4 应该是药剂效果消失的时候画面模糊效果
    player.setav Nighteye 0                     #5执行命令,关闭低光夜视
end

脚本能看懂大概,但是想写,有点困难 .所以我参照了http://geck.bethsoft.com/index.php/Useful_Scripts中的
Hotkey脚本(Type Codes代码我也有)
ScriptName HotkeyReleasedShort sToggleBegin GameMode      
if IsKeyPressed 25 != sToggle               
set sToggle to IsKeyPressed 25               
if sToggle ;Button pressed                     
;Do things when button 'p' is pressed, in this case, decrease karma                     
RewardKarma -650               
else ;Button released                        
;Do things when button 'p' is released, in this case, increase karma                     
RewardKarma 650               
endif      
endif
End
##这段脚本因为用了很多分号所以排版有点问题(是因为html的原因?).

我把这两个脚本中的执行命令 RewardKarma -650跟 player.setav nighteye 1 相替换之后,就成了我前面发的脚本..我想大概是这样的吧.
结果很显然没有效果 .刚才测试了一下在控制台输入命令player.setav nighteye 1 也没有效果.我很疑惑.这到底应该怎么编写.
PS.因为夜视效果无法手动开关,我已经在编辑物品的时候将夜视跟脚本取消了.但是进了普瑞姆的赌场会自动开启.出门也在,快速旅行到其他地区再过一个门可破.难道阴魂不散?

求大神指点迷津!

316a 发表于 2013-5-1 21:41

本帖最后由 316a 于 2013-5-1 21:43 编辑

xjdelc 发表于 2013-5-1 17:21 static/image/common/back.gif
惊现316a!
是这样的,因为我根本不会写脚本.所以呢一般都是一半抄袭一半瞎蒙.看到你说把脚本全贴出来当时我 ...
简单看了一下, 发现几点, 仅供参考:

变量Selector未定义
变量sToggle未定义
按理说,变量未定义会使脚本无法编译, 估计你的脚本没有真正enable
Nighteye与是否有画面亮度效果无关, 真正有效的是相空间变化调用
按键的这套逻辑我一般不这么用, 以下是我编写的一段按键开启夜视的简单脚本(需nvse支持), 仅供参考

scn RCNVNVREDScript

short Selector
short NVon

Begin ScriptEffectStart
    Set Selector to Selector == 0;变量初始化
    Set NVon to0;变量初始化
End

Begin ScriptEffectUpdate
    If (NVon == 0) ;没开夜视的情况下按N键
            If Selector != IsKeyPressed 49
            Set Selector to Selector == 0
            If Selector
                imod NVRED;启动夜视开机效果注意NVRED1~3是重生自带的ISM, 你不能照搬, 以下同
                imod NVRED2;启动夜视常态效果
                rimod NVRED3;关闭夜视关机效果
               playsound UIPipBoyLightOn
                Set NVon to 1
            Endif
      Endif
    ElseIF (NVon == 1) ;开了夜视的情况下按N键
            If Selector != IsKeyPressed 49
            Set Selector to Selector == 0
            If Selector
                rimod NVRED;关闭夜视开机效果
                rimod NVRED2;关闭夜视常态效果
                imod NVRED3;启动夜视关机效果
               playsound UIPipBoyStatic
                Set NVon to 0
            Endif
      Endif
    Endif
End

Begin ScriptEffectFinish   ;为了使开夜视的情况下摘除装备自动移除夜视效果而必须的
    If (NVon == 1)
                rimod NVRED
                rimod NVRED2
                imod NVRED3
         playsound UIPipBoyStatic
    Endif
End



xjdelc 发表于 2013-5-1 22:02

本帖最后由 xjdelc 于 2013-5-1 22:06 编辑

316a 发表于 2013-5-1 21:41 static/image/common/back.gif
简单看了一下, 发现几点, 仅供参考:

变量Selector未定义

原来是这样.看来编译脚本需要逻辑思维缜密才不会出现各种类似我这样奇葩的bug .


那么还请您来看下我失败的作品
begin ScriptEffectFinish
    RemoveImageSpaceModifier CatEyeISFX    #removeimagespacemodifier 是否等于您写的脚本里面的 rimod 命令行同样的imod是相对命令?
    ApplyImageSpaceModifier CatEyeFadeOutISFX    #Cateyeisfx 和CateyeFadeoutisfx是否是等同重生中NVRED ISM?
    player.setav Nighteye 0                     #那么猫眼中的这一条是何用意呢?不会是吃了猫眼后听到的猫咪叫声吧?
end

也就是说.夜视效果也就是ImageSpaceModifier和游戏本身的Effects是有根本区别的,前者应用于游戏程序.改变画面效果 .而Effects直接作用于角色.增加buff?
另外这两个变量Selector,sToggle 的详细意思还请您解说一下.

能否允许我用您的思(脚)路(本)改编一个自己的夜视效果?{:3_110:}

316a 发表于 2013-5-2 03:53

xjdelc 发表于 2013-5-1 22:02 static/image/common/back.gif
原来是这样.看来编译脚本需要逻辑思维缜密才不会出现各种类似我这样奇葩的bug .




begin ScriptEffectFinish    ;作用于效果结束时
    RemoveImageSpaceModifier CatEyeISFX    ;移除猫眼常态效果
    ApplyImageSpaceModifier CatEyeFadeOutISFX    ;启动猫眼的淡出效果
    player.setav Nighteye 0   ;没啥用               
end

药品的调用基本效果和装备调用的基本效果是有区别的, 具体区别看原版的例子就能明白

装备调用ISM类基本效果一定要加条件: 猪脚用有效, 别人用无效, 否则晃瞎眼不解释

临时变量没啥好解释的, 只要不与全局变量重名就行, 它就是个代号



页: [1]
查看完整版本: !!关于Geck下脚本编译的问题!!诚心求教!!(水王留情)