有些自制关卡问题

作者 江户川小狼, 2011 九月 23, 14:13:23

« 上一篇主题 - 下一篇主题 »

江户川小狼

还有反选12是按下345么?

BlueSky

引用原帖由 江户川小狼 于 2011-10-8 17:23 发表
我在23L的问题您知道怎么修改么?0.0


如果作者没有脚本支持, 这个就是别人修改exe文件,  超范围了, 不在关卡制作范围内.
而且, 如果是全屏, 根本看不到.

引用4,选中TRIGGER_TRIGGER, 再拖2个连续的地板B1, B2,  在这2块地板上放置trigger

这个不太理解,拖2个连续地板,这2个连续地板要在哪拖?

地板随便在哪里, 空白的地方就可以了,  那些字母是我做的标示.

引用还有反选12是按下345么?

触发器下面是有5个按纽, 默认情况是同时按下的. 反选的意思是取消它.
现在因为有2个开关,  必须同时按下 (保证 1, 2, 3, 4, 5 按纽被执行过), 这样TRIGGER_TRIGGERER才会被触发. 所以我用了2块地板.
5个按纽随便怎么选择都可以. 只要保证1, 2, 3, 4, 5按纽被用过就可以了.

举个例子, 假设 b1, b2 地板 是个boss,  要怎么击败它?

先拉开关1, 开关1中执行了3, 4, 5,  再拉开关2, 开关2中执行了1, 2

1, 2, 3, 4, 5 都执行了, boss 被击败了.

这样好理解吗?

BlueSky

这里有个问题, 家里的电脑就不行, 单位的电脑可以。我再看看.

[ 本帖最后由 BlueSky 于 2011-10-8 20:58 编辑 ]

BlueSky

之前有些错误, 现在修正过.

1. 先放门的trigger在 地板的 A 位置.
2. 选中 A 位置, 在编辑器左边中间climb 四个按纽的下面有个 T 按纽, 点一次, 左上角地板的颜色会带有紫色的边框.
3. 在物品里选择TRIGGER_TRIGGERER(如果没有, 创建一个, 是nullmesh), 把它放到A 位置.
4. 放置2个switch物件, obj1(位置为B1), obj2(位置为B2)
5. 选TRIGGER_TRIGGERER, 放trigger 在 B1.
6. 选TRIGGER_TRIGGERER, 放trigger 在 B2.
7. 选中obj1, 再选中地板B1, 打开触发器的选项框, 把类型选为switch, 在下面有个按纽, 1, 2, 3, 4, 5, 随机反选(例如1, 2), 把这个触发器放到了B1地板上.
8. 选中obj2, 再选中地板B2,  打开触发器的选项框, 把类型选为switch, 在下面有个按纽, 1, 2, 3, 4, 5, 反选(3, 4, 5) , 把这个触发器放到了B2地板上.

这样就可以先打开2个开关, 在走到门的触发器位置时, 门才会开.

江户川小狼

这样清晰多了,如果是4门,是不是只要
1门,反12,反345
2门,反13,反245
3门,反14,反235
4门,反15,反234
呢?
实验下先0.0

BlueSky

引用原帖由 江户川小狼 于 2011-10-9 11:25 发表
这样清晰多了,如果是4门,是不是只要
1门,反12,反345
2门,反13,反245
3门,反14,反235
4门,反15,反234
呢?
实验下先0.0

这个不正确, 先说明几一些.

T 按扭

这个作用是锁住当前地板上的触发器, 只有TRIGGER_TRIGGERER才可以解锁.

TRIGGER_TRIGGERER

用与解锁地面上的触发器

Code Bit

这个是在触发器对话框下面的5个按扭, 按下表示1, 没有按下表示0. 默认是 1 1 1 1 1.  (先理解成这样)
物体的ocb框中也有5个按扭,  默认是 0 0 0 0 0
我猜测游戏引擎是这样执行的, 将 trigger  code bit ocb code bit 做 XOR 比较. ( 1 xor 1 = 0, 1 xor 0 = 1, 0 xor 0 =

0, 0 xor 1 = 1)

举个例子 1 1 0 0 1 xor 0 1 0 1 0 -> 1 0 0 1 1

TRIGGER_TRIGGERER 简称 TT

第一个开关执行后, code bit 为 0 0 1 1 1(开关) xor 0 0 0 0 0(TT) -> 0 0 1 1 1 (TT)
第二个开关执行后, code bit 为 1 1 0 0 0(开关) xor 0 0 1 1 1(TT) -> 1 1 1 1 1 (TT)

TT 被激活了, 事实游戏引擎原理比这个复杂, 这个只是为了理解,并不是完成正确的。

江户川小狼

...........

相当的复杂%...... 哪4个门到底可行不呢

BlueSky

我在A位置放的是一个门的触发器, 你放4个就可以了.

江户川小狼

:L 原来如此
话说哪荡杆脚本 加了+号还是失败,是不是我NG太低了?我是1.2.2.3

BlueSky

脚本内容是什么?  1.2.2.3 是可以的.

江户川小狼

PB_DOUBLE_FACE+PB_MULTIPLE_ENDINGS

江户川小狼

还有,WAD里的名字是SKY什么什么的不是飘云的形状么,我换了一个怎么游戏里毫无变化?

BlueSky

横杆的脚本是什么?  这样有点简单.

SKY_GRAPHIC 是 云层, 如果  HORIZON 是 六边形的,  游戏中看不到云层. 我试了几个, 不显示云层, 被遮挡了.  这个物件替换似乎没有用, 但可以通过脚本改变颜色.

LAYER1= r, g, b, s

r = 0 - 255 红色
g = 0 - 255 绿色
b = 0 - 255 蓝色
s 是 云层的移动速度,  -16 - 16

LAYER1似乎已经被淘汰了, 现在的关卡基本没有LAYER1, 用的是 HORIZON.

用TRview 工具打开 tr4 文件, 选 font & sky, 可以看到 天空的贴图.
在wad 中 找一个 raw格式的文件, 修改这个文件的贴图.  再用ng_tom2pc.exe 转换后, 天空的贴图就替换了.

http://115.com/file/clsxu92t#
iview430_setup.exe

http://115.com/file/bhisx7dy#
irfanview_plugins_430_setup.exe

这个工具可以打开 raw 文件, raw 文件 为 256 * 256,  24bit.

SKY_GRAPHICS 还没有看出什么作用.

[ 本帖最后由 BlueSky 于 2011-10-10 10:53 编辑 ]

BlueSky

引用我猜测游戏引擎是这样执行的, 将 trigger  code bit 与 ocb code bit 做 XOR 比较. ( 1 xor 1 = 0, 1 xor 0 = 1, 0 xor 0 =

0, 0 xor 1 = 1)

举个例子 1 1 0 0 1 xor 0 1 0 1 0 -> 1 0 0 1 1

TRIGGER_TRIGGERER 简称 TT

第一个开关执行后, code bit 为 0 0 1 1 1(开关) xor 0 0 0 0 0(TT) -> 0 0 1 1 1 (TT)
第二个开关执行后, code bit 为 1 1 0 0 0(开关) xor 0 0 1 1 1(TT) -> 1 1 1 1 1 (TT)

turbo pascal 的说法是 trigger code bit 与 ocb code bit 做 加法.


code bit 为 0 0 1 1 1(开关1) + 1 1 0 0 0(开关2) + 0 0 0 0 0(TT) -> 1 1 1 1 1

结果必须是1 1 1 1 1.  

1 + 1 = 0
1 + 0 = 1
0 + 1 = 1
0 + 0 = 0

    0 0 1 1 1
 + 1 1 0 0 0
--------------------
    1 1 1 1 1

两种方式的结果都正确, 后一种获许是游戏引擎的执行方式.

江户川小狼

颜色和飘云都能正常显示,因为我改了HORIZON贴图 使上面变成透明
就是改云层哪没理解......算了= =
我这关的脚本是这样

[Level]
Name=      Peru-Mountain Caves
Snow= SNOW_SINGLE_ROOM
Horizon=   ENABLED
Layer1=      128,128,128,-8
ColAddHorizon=    ENABLED
Animation= 445, KEY1_JUMP, IGNORE , IGNORE, ENV_FRAME_NUMBER, 21, IGNORE, -96 ;ledge jump up*
Animation= 450, KEY1_DOWN, IGNORE , FAN_SET_FREE_HANDS, ENV_FRAME_NUMBER, 21, IGNORE, -96 ;ledge jump backwards*
Animation= 242, KEY1_UP, KEY2_Duck, FAN_KEEP_NEXT_STATEID + FAN_SET_FREE_HANDS_TEMP, ENV_MULT_CONDITION, 1, IGNORE, 1, 1
MultEnvCondition= 1 ,ENV_NO_BLOCK_IN_FRONT, 256, IGNORE, ENV_NON_TRUE + ENV_HOLE_FLOOR_IN_FRONT, 512, IGNORE
Animation= 499, KEY1_DOWN, KEY2_Duck, FAN_KEEP_NEXT_STATEID + FAN_SET_FREE_HANDS_TEMP, ENV_MULT_CONDITION, 1, IGNORE, 1, 1
Animation= 500, KEY1_UP, KEY2_Use_Flare, FAN_KEEP_NEXT_STATEID + FAN_SET_FREE_HANDS_TEMP, ENV_MULT_CONDITION, 1, IGNORE, 1, 1
Customize=    CUST_PARALLEL_BARS, PB_DOUBLE_FACE, IGNORE, 1
Customize= CUST_FLARE, FFL_ADD_GLOW_LIGHT, IGNORE, 128, 128, 128, 20
PuzzleCombo=   3,1,Cartouche Piece 1,   $0000,$0400,$0000,$0000,$0000,$0002
PuzzleCombo=   3,2,Cartouche Piece 2,   $0000,$0400,$0000,$0000,$0000,$0002
Puzzle=      3,Ba Cartouche,      $0000,$0400,$0000,$0000,$0000,$0002
Puzzle=      5,Eye Of Horus,      $0017,$0500,$0000,$0000,$0000,$0002
PuzzleCombo=   5,1,Eye Piece,      $0017,$0500,$0000,$0000,$0000,$0002
PuzzleCombo=   5,2,Eye Piece,      $0017,$0500,$0000,$0000,$0000,$0002
Puzzle=      6,The Hand Of Orion,   $0000,$0400,$8000,$c000,$0000,$0002
Puzzle=      8,The Hand Of Sirius,   $0000,$0400,$8000,$c000,$0000,$0002
LoadCamera=   64971,-14857,33155,64679,-14519,31897,37
Level=      DATA\TUT1,010
ReseTHUB=2
FMV=            1,1
FMV=            2,1