设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 3560|回复: 1
打印 上一主题 下一主题

[腳本] 幻世录1游戏修改进阶篇

[复制链接]


梦石
0
星屑
79
在线时间
1046 小时
注册时间
2020-1-1
帖子
1741

贵宾

跳转到指定楼层
1
发表于 2010-12-15 14:41:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
全脚本语句:(每句均可用前面的数字代替)

0 actOver
1 actDelay
2 actWalk
3 actWalkWait
4 actWalkAndDelete
5 actWalkAndDeleteWait
6 actWalkDisp
7 actWalkDispWait
8 actWalkPrevInsertObject
9 actWalkPrevInsertObjectWait
10 actMessage
11 actMessageIfExist
12 actShowSectionName
13 actChangeShape
14 actChangeShapeWait
15 actPlaySound
16 actDeleteObject
17 actRestoreShape
18 actInsertObject
19 actScrollBGToPos
20 actScrollBGToObject
21 actSetBGToObject
22 actInsertWinStatus
23 actInsertFailStatus
24 actInsertEventStatus
25 actDeleteWinStatus
26 actDeleteFailStatus
27 actDeleteEventStatus
28 actReplaceWinStatus
29 actReplaceFailStatus
30 actReplaceEventStatus
31 actShowWinFailStatus
32 actChangePrevInsertObjectID
33 actSetPrevInsertObjectWaitRound
34 actSetWaitRound
35 actCheckEnemy
36 actCheckEnemyNumber
37 actCheckEnemyTotalNumber
38 actCheckPlayer
39 actCheckPlayerTotalNumber
40 actCheckRoundNumber
41 actCheckPlayerArrivePos
42 actCheckPlayerAttacked
43 actSetNextPlayLevelEvent
44 actDEMO
45 actPlayLevelMusic
46 actPlayMusic
47 actInsertStoryObject
48 actDarkScreen
49 actDeleteDarkScreen
50 actWalkFollow
51 actWalkFollowWait
52 actMove
53 actMoveWait
54 actMoveDisp
55 actMoveDispWait
56 actSetPrevInsertObjectAdjustLevel
57 actSetUseShapeWait
58 actInsertShowPosObject
59 actDeleteShowPosObject
60 actSetDeadMessage
61 actWalkToPlayerDisp
62 actWalkToPlayerDispWait
63 actPlayDefaultLevelMusic
64 actSetPlayerUndead
65 actCheckPlayerHPLow
66 actSetPlayerMode
67 actTRUE
68 actExecWinFailProcess
69 actKeepPlayerST
70 actSetTownExecEvent
71 actDeletePlayerCode
72 actSetPrevInsertObjectEquip
73 actAdjustAllPlayerLevel
74 actShapeMessage
75 actScrollBGToPosSpeed
76 actSetWalkSoundMode
77 actDeletePosObject
78 actInsertStoryObjectWait
79 actSelectInsertEvent
80 actAddTE
81 actDeleteTE
82 actSetPrevInsertObjectST
83 actSetPlayerExecMode
84 actSetPlayerFixPos
85 actGetItem
86 actRandomSetSysArrivePos
87 actCheckPlayerArriveSysPos
88 actWaitPlayer
89 actSetPlayerName
90 actChangePlayerID
91 actSetPrevInsertObjectFly
92 actSetPlayerFly
93 actUseItem
94 actCheckRoundDisp
95 actSetBMWalkToPoint
96 actSetBMWalkerPlayerID
97 actSetBGToPos
98 actSetTownExitExecEvent
99 actInsertStoryObjectWaitPos
100actCheckNextSerialNumber
101actSetPlayerNoAttack
102actEarthQuake
103actChangePosObjectProcCode
104actDeletePosPlayerXRange
105actInsertStoryObjectXRange
106actSetRandomPos
107actInsertObjectRandomPos
108actInsertStoryObjectRandomPos
109actSetPrevInsertObjectRandomID
110actCheckSerialPlayerAttacked
111actScrollBGToRandomPos
112actDeleteRandomPosObject
113actFALSE
114actCheckEventNotExist
115actSetPlayerWalkShape
116actCheckNotPlayerAttacker
117actSetPlayerPosToRandom0
118actPlayerJobUpProcess
119actWaitPrevInsertPlayer
120actPlayMovie
121actInsertRandomObject
122actSetDoublePageMode
123actInsertLevelUpStar
124actDetectRoundDispDisp
125actCheckProcObjectNotExist
126actCheckAnyPlayerArrivePos
127actSetOverFlag
128actAddOverScore
129actSetNextPlayLevelGetOverEvent
130actBMSetPointMode
131actBMSetTrackMode
132actBMSetPointFlag
133actBMSetTrackFlag
134actBMClearPointFlag
135actBMClearTrackFlag
136actBMSetPointEvent
137actBMSetPointEncounterRatio
138actBMSetShowTrackPoint
139actEnterStorageWindow


梦石
0
星屑
79
在线时间
1046 小时
注册时间
2020-1-1
帖子
1741

贵宾

2
 楼主| 发表于 2010-12-15 14:46:39 | 只看该作者
0.actOver
无实际用途,在原版脚本中一次也没出现过,可忽略

1.actDelay
后接一个大于0的整数,如10。作用是延时XX(单位不明,猜测60为1秒),中间什么都不做,主要用来表示剧情中必要的停顿,控制节奏。
例: actDelay,10 -> 1,10

2.actWalk
[角色种类][编号][目的地x坐标][目的地y坐标][移动速度]
使某个指定角色移动到指定地点,剧情中的人物移动(如敌人的出现和撤退)很多都是由它完成的。其中角色种类就是ENEMY或PLAYER,编号只对敌方非boss有效,因为他们通常都不止一个,注意每个敌人的编号并不是固定的,假如战场上有5个一般兵,编号1~5,当前4个阵亡时,5号一般兵就会变为1号。目的地坐标就是你想让该角色移动到的地方,想让他走到左上角,那么xy就为(0,0)。移动速度就是角色向目的地移动的快慢,有5个等级:0和4表示默认速度,1为最慢,16为最快,但从实际表现上看8和16似乎区别不大,为了修改时便于控制字节数,我一般都设为8。
例1: actWalk,SID_筽稼纨,1,1088,640,0 -> 2,SID_筽稼纨,1,1088,640,0
例2: actWalk,SID_ENEMY023,1,1088,640,8 -> 2,SID_ENEMY023,1,1088,640,8

3.actWalkWait
[角色种类][编号][目的地x坐标][目的地y坐标][移动速度]
功能和用法与actWalk几乎一样,唯一的差别就是用actWalkWait移动角色时,在角色到达目的地之前后面的指令是不会执行的,比如在“actWalkWait,SID_筽稼纨,1,1088,640,0”之后还有一个“actWalk,SID_ENEMY023,1,1056,640,8”,那么在雷走到(1088,640)之后,一般兵才会向(1056,640)移动;而用“actWalk,SID_筽稼纨,1,1088,640,0”的话,当雷开始移动后,一般兵会马上开始行动,两者几乎是同步的。

4.actWalkAndDelete
[角色种类][编号][目的地x坐标][目的地y坐标][移动速度]
参数和actWalk相同,但功能上要多一个,就是当角色走到目的地后,会自动从地图上消失,游戏中敌人的撤退剧情就是用的这个。
例: actWalkAndDelete,SID_ENEMY049,1,1024,320,8 -> 4,SID_ENEMY049,1,1024,320,8

5.actWalkAndDeleteWait
[角色种类][编号][目的地x坐标][目的地y坐标][移动速度]
与actWalkAndDelete的区别就像actWalkWait和actWalk的区别一样,角色消失前下一个指令不会执行
例: actWalkAndDeleteWait,SID_ENEMY054,1,960,320,8 -> 5,SID_ENEMY054,1,960,320,8

6.actWalkDisp
[角色种类][编号][相对x坐标][相对y坐标][移动速度]
也是移动角色,但和actWalk不同的是,坐标参数是相对值,而不是绝对值。例如雷的当前坐标是(320,320),执行“actWalkDisp,SID_筽稼纨
,1,128,64,8”后,雷会向坐标(448,384)移动,即x = 320 + 128,y = 320 + 64。如果要向左或上走的话就用负值。
例: actWalkDisp,SID_筽稼纨,1,256,256,16 -> 6,SID_筽稼纨,1,256,256,16

7.actWalkDispWait
[角色种类][编号][相对x坐标][相对y坐标][移动速度]
也是和actWalkDisp一样,区别不用多说了吧……

8.actWalkPrevInsertObject
[目的地x坐标][目的地y坐标][移动速度]
将新加入地图的单位移动到某地。这个也是移动用的,但他的移动目标仅限于刚刚出现在战场的增援,如果连续加入了2个单位,那么该命令控制的就是第二个(即最后一个),如果想让两个单位都移动,那么就要执行两次(详见18.actInsertObject)。
例: actWalkPrevInsertObject,480,480,0 -> 8,480,480,0

9.actWalkPrevInsertObjectWait
[目的地x坐标][目的地y坐标][移动速度]
老声重谈了……跳过……

10.actMessage
[角色种类][编号][对话编号]
剧情对话指令,游戏中所有的对话都是用这个实现的,可以说是最常见的指令(剧情中没有战斗的地图出现过,没有对话的地图可没见到过…
…)。前两个参数决定说话的人,最后一个参数决定这个人说什么。在data1或star1文件的下半部有很多文字,前面写着item = xxx,这就是对话编号,后面的文字就是内容,当然不用南极星是看不出来的。在指令中根据你填的对话编号,游戏会自动将它对应的文字显示在对话框中。

直接修改文字也是可以的,这里的图就是这么做出来的。如果地图中没有该角色则不会执行。
http://tieba.baidu.com/f?kz=341315864
例:actMessage,SID_筽稼纨,1,975 -> 10,SID_筽稼纨,1,975

11.actMessageIfExist
[角色种类][编号][返回值为真时的对话编号][返回值为假时的对话编号][数量标准][检查的人物类型]
也是对话指令,但比actMessage要复杂一些,它在执行前要做一个判断。检查的人物类型就是一种角色种类,当地图中有这个类型的人物时,即为满足条件,数量标准是这个类型角色的数量,当地图中这个类型的人物数量与数量标准一致时,条件成立,返回值为真,否则返回值为假。(如果大与数量标准是否成立就不得而知了,毕竟这个指令用的机会太少,有兴趣的朋友可以试试)
根据返回值的不同,角色说的话就会产生变化,如果对话编号为0的话就是不说。
例:actMessageIfExist,SID_砾,1,2092,0,1,SID_〣翽 -> 11,SID_砾,1,2092,0,1,SID_〣翽
(古代神殿遗迹前的剧情,当有咕噜时,琥会说“嗯,它怎么了?”否则他什么都不会说,就是因为“返回值为假时的对话编号”那里是0)

12.actShowSectionName
[图片名称]
显示战役标题,就是每关开始之前出现的那个LOGO。参数只有一个,如果不知道各关对应的图片的话,可以用RV查看。

13.actChangeShape
[角色种类][编号][图片延迟][图片名字][图片编号]
说老实话,这个我也没用过- -| 游戏中MS也只有失落这关出现过,就是雷推开一般兵逃跑时那段,当时一般兵的图象发生过变化,用的就是这个。图片名字可以用RV查找,图片编号MS就是帧数……

14.actChangeShapeWait
[角色种类][编号][图片延迟][图片名字][图片编号]
多个等待而已,不多说了……

15.actPlaySound
[声音编号]
播放音效,失落这关雷推开一般兵,猎杀红龙从瀑布中飞中,用的都是这个。声音编号在对话集开头可以查到

WAV\ACCEPT01.WAV
WAV\TAKEUP01.WAV
WAV\PUT00003.WAV
WAV\LEVELUP2.WAV
WAV\MHEAL001.WAV
WAV\CAST001.WAV
WAV\HIT00001.WAV
WAV\HIT00004.WAV
WAV\HIT00016.WAV
WAV\HIT00012.WAV
WAV\HIT00007.WAV
WAV\HIT00007.WAV
WAV\GAMEOVER.WAV
WAV\WALK0014.WAV
WAV\WALK0021.WAV
WAV\GOLD001.WAV
WAV\EFF0014.WAV

例:actPlaySound,WAV\WATERUP001.WAV -> 15,WAV\WATERUP001.WAV

16.actDeleteObject
[角色种类][编号]
让角色离开战场,和actWalkAndDelete的区别就是之前不移动,直接令角色消失

17.actRestoreShape
[角色种类][编号]
使角色的动作恢复到初始状态。剧情中四魔将使用世界树之叶后,就是用这个使其恢复站立状态,否则他会一直在那里摆使用道具的pose,老版本的幻会有汉克斯抽疯的情况发生,很可能就是少了这句。另外古代神殿遗迹中没有按顺序打柱子的话会变回蓝色,也是用的这个。

18.actInsertObject
[角色种类][x坐标][y坐标]
在战场中加入新角色,战场上的增援就是用这个实现的,x、y坐标就是角色出现的地点。大多数情况下角色都不是在战场中央突然出现的,而是从版边走进战场,因此要把他们的坐标设在地图之外,然后再配合actWalkPrevInsertObject或actWalkPrevInsertObjectWait让他们走进来
,这样就自然了。注意actWalkPrevInsertObject控制的是最后一个出现的角色,如果连用了两次以上的actInsertObject的话,就要在每一句后面都加上actWalkPrevInsertObject才有效。例如:

action = actInsertObject,obj_Story_Level_Enemy33,288,-96
action = actInsertObject,obj_Story_Level_Enemy34,320,-64
action = actWalkPrevInsertObject,352,160,0
action = actWalkPrevInsertObject,256,128,0

按照上面的脚本只有坐标为(320,-64)的角色会移动,而坐标为(288,-96)的角色仍会留在地图外,这样一来他虽然也在地图上,但无法作出任何行动,只能白白浪费内存(虽说也没几个字节……)。如果加入的是我方角色,那就是明显的bug了……

正确的写法:

action = actInsertObject,obj_Story_Level_Enemy33,288,-96
action = actWalkPrevInsertObject,352,160,0
action = actInsertObject,obj_Story_Level_Enemy34,320,-64
action = actWalkPrevInsertObject,256,128,0

按照java的话说,就是new出了一个对象,而兵种就是一个类,每生成一个角色都是一次实例化,但我方角色和BOSS每个战场只能出现一个(莫非是静态的……)

19.actScrollBGToPos
[x坐标][y坐标]
移动镜头,即将当前的屏幕移到地图中的制定位置。
例:actScrollBGToPos,544,480

20.actScrollBGToObject
[角色种类][编号]
也是移动镜头,不同的是这个不是直接设定坐标,而是从指顶的角色身上获取坐标,即将镜头拉到他的身上。
例:actScrollBGToObject,SID_ENEMY048,1 -> 20,SID_ENEMY048,1

21.actSetBGToObject  
[角色种类][编号]  
也是以角色的坐标移动镜头,区别是actScrollBGToObject是滚动,而actSetBGToObject是即时切换。  
例:actSetBGToObject,SID_ENEMY048,1 -> 21,SID_ENEMY048,1  

22.actInsertWinStatus  
[编号]  
加入胜利条件,每关都会用到的语句。一般都是在战斗前使用,也有些会根据剧情中途出现,比如离散。编号指的是[win]下面的code,它调用的就是该[win]中的所有语句,有点类似函数。  
例: actInsertWinStatus,0 -> 22,0  

[win]  
code = 0  
message = -1,121  
action = actCheckEnemyTotalNumber,0  
action = actSetNextPlayLevelEvent,21,gameBigMapLevel  

“code = 0”表示编号为0,胜利条件为多个时用来区分,“message = -1,121”就是查看胜败条件时显示的面版,-1和121都是对话编号,游戏中两个是连在一起显示的,-1表示前半部没有文字信息。“action = actCheckEnemyTotalNumber,0”就是判断条件,即当敌人数量为0时执行后面的指令。  

23.actInsertFailStatus  
加入失败条件,原理同上。  
例: actInsertFailStatus,0 -> 23,0  

[fail]  
code = 0  
message = SID_筽稼纨,122  
action = actCheckPlayer,1,SID_筽稼纨  

24.actInsertEventStatus  
[编号]  
加入剧情,和前面两个差不多,只不过不影响胜负,事件用[event]表示  
例:actInsertEventStatus,1 -> 24,1  

[event]  
code = 1  
………………  

25.actDeleteWinStatus  
[编号]  
消除胜利条件  
例:actDeleteWinStatus,0 -> 25,0  

26 actDeleteFailStatus  
[编号]  
消除失败条件  
1.05之前的残光这关,即使缇娜撤退也会gameover,就是因为在事件中没有这个语句,所以失败条件仍然成立,缇娜消失后系统误以为她阵亡了。  

27 actDeleteEventStatus  
[编号]  
消除剧情事件  

28 actReplaceWinStatus  
[旧编号][新编号]  
游戏中MS没有用过,不过从字面上不难看出是替换胜利条件的,同时具有actInsertFailStatus和actDeleteWinStatus的功能  

29.actReplaceFailStatus  
替换失败条件  

30.actReplaceEventStatus  
替换剧情事件

31.actShowWinFailStatus  
显示胜败条件,就是每次开场前出现的那个,一般跟在actShowSectionName后面,无任何参数  
例:actShowWinFailStatus -> 31  

32.actChangePrevInsertObjectID  
[编号]  
更改角色编号,用于锁定特殊角色。例如遗产这关,消灭特定守护者后对应的门会打开,但前面说过了,随着守护者的减少,它们的编号随时在发生变化,这样就无法准确判断了。使用actChangePrevInsertObjectID就可以解决这一问题,编号更改后,无论地图上有多少同类型单位,他的ID永远是你给定的数。注意:他和actWalkPrevInsertObject一样,只对最后一个有效。  
例:actChangePrevInsertObjectID,10000 -> 32,10000  

33.actSetPrevInsertObjectWaitRound  
[整数]  
令刚加入战场的单位等待n回合,n=输入的整数。同样只对最后加入的单位有效,使用后该单位会等待n回合后才开始行动,但如果这期间有敌人接近,待机会自动取消。  
例:actSetPrevInsertObjectWaitRound,5 -> 33,5  

34.actSetWaitRound  
[角色种类][编号][整数]  
令特定角色待机  

35.actCheckEnemy  
[类型数量][类型1][类型2][...]  
判断语句,通常放在胜败条件、剧情事件的第二行(没有文字提示的话就是第一行)。类型数量是类型1~类型n的兵种数之和,后面的就是类型,当这些类型的单位数量均为0时条件达成,执行下面的指令。  
例:actCheckEnemy,3,SID_ENEMY041,SID_ENEMY043,SID_ENEMY038 -> 35,3,SID_ENEMY041,SID_ENEMY043,SID_ENEMY038  

36.actCheckEnemyNumber  
[角色种类][数量]  
检查某个兵种的数量,当实际数量小于给定的数量时,执行下面的指令。  
例:actCheckEnemyNumber,SID_ENEMY041,3 -> 36,SID_ENEMY041,3  

37.actCheckEnemyTotalNumber  
[数量]  
当敌人总数小于或等于该数量时,执行下面的指令。  
例:actCheckEnemyTotalNumber,0 -> 37,0 (一般为胜利条件,当敌人全灭时……)  

38.actCheckPlayer  
[类型数量][类型1][类型2][...]  
和actCheckEnemy类似,只不过检查的是我方角色。  
例:actCheckPlayer,1,SID_筽稼纨 -> 38,1,SID_筽稼纨 (失败条件,当雷阵亡时……)  

39.actCheckPlayerTotalNumber  
[数量]  
和actCheckEnemyTotalNumber类似,检查的是我方角色。  
例:actCheckPlayerTotalNumber,0 -> 39,0  

40.actCheckRoundNumber  
[数量]  
判断语句,当当前的回合数大于等于给定值时,执行下面的指令。  
例:actCheckRoundNumber,10 -> 40,10 (第10回合发生剧情)

41.actCheckPlayerArrivePos  
[角色种类][编号][最小x坐标][最小y坐标][最大x坐标][最大y坐标]  
判断某单位的位置。以最小xy坐标为起点、以最大xy坐标为终点画一个矩形,当指定角色的坐标处于这个矩形中时,执行下面的指令。决意、辉煌和离散的胜利条件都是这么判断的。  
例:actCheckPlayerArrivePos,SID_筽稼纨,1,224,0,448,0 -> 41,SID_筽稼纨,1,224,0,448,0  

42.actCheckPlayerAttacked  
[攻击方兵种][被攻击方兵种]  
判断战斗情况,当前面的人攻击后面的时,执行下面的指令。雷、克罗蒂与塔克斯交战后会发生对话,用的就是这个。至于塔克斯攻击雷或克罗蒂也会触发剧情,是因为脚本中写了两个判断,这两个判断其他地方都一样,只是攻击方和被攻击方调了个个,当一个被触发后,会用actDeleteEventStatus取消另一个。  
例:actCheckPlayerAttacked,SID_筽稼纨,SID_ENEMY066 -> 42,SID_筽稼纨,SID_ENEMY066  

43.actSetNextPlayLevelEvent  
[地点][事件]  
战斗结束后,在跳转回大地图时将队伍放到指定的地点。地点的代号可以到hsldata2(star2)查询,我之前没总结过,有时间的话再给出吧……事件的用法不大清楚,游戏中MS都是用gameBigMapLevel,照着写就是了……  
例:actSetNextPlayLevelEvent,38,gameBigMapLevel -> 43,38,gameBigMapLevel

44.actDEMO  
好像是播放动画,无参数,用法不明……  

45.actPlayLevelMusic  
播放当前关对应的音乐,无参数。一般都是放在脚本的前几句。  

46.actPlayMusic  
[音乐id]  
播放指定的音乐,但战斗中一旦读取存档,音乐会自动切回“当前关对应的音乐”。  
例:actPlayMusic,8 -> 46,8  

47.actInsertStoryObject  
[角色种类][x坐标][y坐标]  
加入新效果,在指定地点添加特殊效果,比如崩陷的烟。  
例:actInsertStoryObject,obj_Story_Level10_Fire,524,342 -> 47,obj_Story_Level10_Fire,524,342  

上面的x、y坐标并不像角色那样,以32为步长增长。角色坐标都是以32为一个单位的,写0和写31没有区别,估计是因为该函数运算之前除了一下32,这样在int类型的情况下(只取整)32以内的数就没有区别了。  

48.actDarkScreen  
黑屏,没有参数。通关时缇娜和汉克斯的对话就是用的这个效果。  

49.actDeleteDarkScreen  
顾名思义,取消黑屏……  

50.actWalkFollow  
[角色种类][编号][目标种类][目标编号]  
令指定单位跟随目标移动,雷与妖精王冲突时,重装兵押雷下殿用的就是这个。  
例:actWalkFollow,SID_ENEMY023,3,SID_ENEMY029,1,0 -> 50,3,SID_ENEMY029,1,0  

51.actWalkFollowWait  
[角色种类][编号][目标种类][目标编号]  
和actWalkFollow一样,多个等待功能  

52.actMove  
[角色种类][编号][目的地x坐标][目的地y坐标][移动速度]  
移动的一种,我没用过,不过从游戏效果判断应该是“不切换移动图片的帧数,直接平移过去……”,游戏中只有失落一关用过,就是那个挨打的一般兵。  

53.actMoveWait  
[角色种类][编号][目的地x坐标][目的地y坐标][移动速度]  
还用再说吗- -|  
例:actMoveDispWait,SID_ENEMY023,3,0,-64,8 -> 53,SID_ENEMY023,3,0,-64,8  

54.actMoveDisp  
[角色种类][编号][相对x坐标][相对y坐标][移动速度]  
相对平移,也不用多说了吧……  

55.actMoveDispWait  
[角色种类][编号][相对x坐标][相对y坐标][移动速度]  
有一句话叫温故而知新……  

56.actSetPrevInsertObjectAdjustLevel  
[等级上限][等级浮动值]  
更改角色的等级上限和等级浮动值,这两个也是角色的属性,作用参照此贴。  
http://tieba.baidu.com/f?kz=255061948  

例:actSetPrevInsertObjectAdjustLevel,1,0 -> 56,1,0  

此外这个也是只对最后加入的单位有效。  

57.actSetUseShapeWait  
[code][serial]  
游戏中没出现过,我也不知道干嘛用的……- -|  

58.actInsertShowPosObject  
[x坐标][y坐标]  
点亮地图中指定的某个格子,用来显示逃跑区域。  
例:actInsertShowPosObject,416,288 -> 58,416,288  

当逃跑范围很大时,就多用几个-_-b  

59.actDeleteShowPosObject  
消除点亮的坐标。显示完胜败条件,返回游戏时用来取消提示。如果不手动取消的话,读档后也会自动取消。  

60.actSetDeadMessage  
[角色种类][编号][对话1][对话2]  
设定角色遗言-_-b 当角色死亡时,会说出对话1或对话2里的话,如果两个均为0,则没有遗言,如果都不是0,则随机说一句。只在本关有效。  
例:actSetDeadMessage,SID_纙,1,1376,0 -> 60,SID_纙,1,1376,0  

61.actWalkToPlayerDisp
[角色种类][编号][目标角色种类][目标编号][相对x坐标][相对y坐标][速度]
令角色移动到目标附近的某处,遭遇这关出现过(雷走到缇娜身边)。比如目标的坐标是(416,416),相对x坐标为-32,相对y坐标为32,则角色会移动到目标的左下方,即(384,448)。
例:actWalkToPlayerDisp,SID_筽稼纨,1,SID_绛甊,1,32,0,8 -> 61,SID_筽稼纨,1,SID_绛甊,1,32,0,8

62.actWalkToPlayerDispWait
[角色种类][编号][目标角色种类][目标编号][相对x坐标][相对y坐标][速度]
参照actWalkToPlayerDisp

63.actPlayDefaultLevelMusic
也是播放音乐用的,只是参数不明,加上读档后仍会还原,所以还是建议用actPlayMusic
例:actPlayDefaultLevelMusic,2 -> 63,2

64.actSetPlayerUndead
[角色种类][编号][模式]
让某个角色不死,几乎所有boss都会用这个。模式也是一个数值型参数,0为取消该角色的不死特性,值为1时,当该角色的HP为0时,会自动变为1(大于1时会不会按非0算就不知道了,我不知道幻是用什么语言编的……)。boss被打败后不会立即阵亡就是这个道理。actSetPlayerUndead配合actUseItem就可以实现四魔将自动复活的功能了。(详见下文)
例:actSetPlayerUndead,SID_ENEMY053,1,1 -> 64,SID_ENEMY053,1,1

65.actCheckPlayerHPLow
[角色种类][编号][百分比]
判断语句,当指定角色的HP低于给定的百分比时,条件成立。
例:actCheckPlayerHPLow,SID_ENEMY053,1,40 -> 65,SID_ENEMY053,1,40

66.actSetPlayerMode
[角色种类][编号][模式][标志]
改变角色阵营,变节中的克罗蒂就用到过。说真的,这个我用的也不是很好,标志参数的意思到现在还不明白……MS还要和data2(star2)配合着用,总之很麻烦……
模式就是角色的阵营,参数有三种:pmEnemy、pmPlayer、pmNpc。
例:actSetPlayerMode,SID_霉甫,1,pmPlayer,1 -> 66,SID_霉甫,1,pmPlayer,1

67.actTRUE
判断语句,无参数。其实它和前面那些判断语句是一样的,只不过它是无条件返回TRUE值。(判断语句为真时返回TRUE,为假时返回FALSE)
例:action = actTRUE -> action = 67

68.actExecWinFailProcess
具体作用不明,只知道很多事件都用它结尾。但根据实验,去掉它们对游戏也没有影响-_-b 无参数

69.actKeepPlayerST
用于关卡切换的一种语句,可以使角色的气力保留到下一关,比如第一、二关和克莱恩城的那几关。

70.actSetTownExecEvent
[城镇编号][事件编号]
在指定城镇添加进入时的剧情。城镇编号是用town_ + 名字决定的,可以在data2(star2)中查到。事件编号可以在9town中查到,它也是由若干语句组成的指令集。事件编号为0的话表示取消事件,第一次进入玛哈亚、沙罗尼亚和亚雷比斯(居然都有“亚”-_-b)时出现的对话就是这么添加的,之后再将事件编号改为0取消,第二次进入就不会出现了。
例:actSetTownExecEvent,town_ㄈ筽ゑ吹,185 -> 70,town_ㄈ筽ゑ吹,185

71.actDeletePlayerCode  
[角色种类][模式]  
删除我方角色。当我方的角色在战斗中出现后,他就会自动加入队伍,之后查看人员状态时他都会被列出来。当参数“模式”为0时,就会把该角色从队伍中删除,就像他没加入过一样。如果参数为1,则他还会继续留在队中。决意这关缇娜出现过,而在双头的死神中查状态时没有她,就是用了这个(参数0);而在异种这关选择救咕噜的话,他不会离队(参数1)  
例1:actDeletePlayerCode,SID_PLAYER1,0 -> 71,SID_PLAYER1,0  
例2:actDeletePlayerCode,SID_〣翽,1 -> 71,SID_〣翽,1  

72.actSetPrevInsertObjectEquip  
[武器编号][装备部位]  
改变角色的装备。武器编号就在“文字堆”里,这里也有介绍  
http://tieba.baidu.com/f?kz=255061948  
装备部位有6个,0代表武器, 1代表盔甲, 2代表头盔, 3代表鞋子, 4和5代表两个饰品。该指令只对最后出现的非我方单位有效。  
例:actSetPrevInsertObjectEquip,2,0 -> 72,2,0  

73.actAdjustAllPlayerLevel  
应该和actSetPrevInsertObjectAdjustLevel是一样的,不过没有参数,不知道什么意思……  

74.actShapeMessage  
[图片名称][名字][对话编号]  
剧情对话的一种,和actMessage的区别是它不需要角色在地图中,而且对话框是在屏幕上方出现。图片名称是人物头象的图片名,可以用RV查找,或者在9player中查找人物的picture属性。名字就是显示在对话上方的说话人姓名,它和对话编号一样,都是整数,也是在文字定义处查找。宣战后妖精王和塔克斯、克罗蒂谈话,地图上并没有他们,确能显示他们的头象,用的就是这个,达人版最后雷能露脸也是拜它所赐。  
例:actShapeMessage,SHAPE\FACE0054.SHP,306,1003 -> 74,SHAPE\FACE0054.SHP,306,1003  

75.actScrollBGToPosSpeed  
[x坐标][y坐标][速度]  
滚动屏幕,作用和actScrollBGToPos一样,只是多了一个速度参数。速度包括1、2、4、8、16五个等级,数值越大屏幕滚动越快。  
例:actScrollBGToPosSpeed,992,832,4 -> 75,992,832,4  

76.actSetWalkSoundMode  
[模式]  
播放移动音效(脚步声)。参数“模式”其实就是一个布尔值,0表示停止,1表示播放。不过这个指令在失落和怒涛都出现过,一次是村民的脚步声,一次是海辉魔的,这两种音效是不一样的,游戏中却都是用的这个……唯一的解释就是它能根据移动的角色自动判断音效……(actSetWalkSoundMode之前有许多actWalk)  
例1:actSetWalkSoundMode,1 -> 76,1  
例2:actSetWalkSoundMode,0 -> 76,0  

77.actDeletePosObject  
[x][y][range][proc code]  
又是一条没用过的指令……应该是去除光影效果,辉煌这关雷拔剑时出现过。  

78.actInsertStoryObjectWait  
[角色种类][x坐标][y坐标]  
参照47.actInsertStoryObject  

79.actSelectInsertEvent  
[角色种类][编号][分支总数][第1个选项文字编号][选项1调用的事件编号][第2个选项文字编号][选项2调用的事件编号][....]  
分支选择。异种选择是否救咕噜、失落选择战还是逃,以及达人版中是否和席德尔单挑,都是用的这个。[角色种类][编号]和actMessage没有区别,分支总数就是可以选择的选项数目,最大不得超过8(转职为8)。“选项文字编号”就是文字提示,目的是让玩家知道自己选的是什么,根据编号显示对应的语句。最后根据选择的事件编号调用对应的事件。  
例:actSelectInsertEvent,SID_筽稼纨,1,2,1810,3,1811,4 -> 79,SID_筽稼纨,1,2,1810,3,1811,4  

80.actAddTE  
[城镇编号][父菜单编号][子菜单总数][子菜单1][...]  
在指定城镇添加场所。城镇编号不用解释了,父菜单就是进入城镇后最先看到的场所,一般来说每个父菜单都包含若干子菜单。酒馆就是一个父菜单,而酒馆中又包含如酒馆老板、服务员这些子菜单。父菜单和子菜单的编号在9town中查找及定义,它们和event是一个道理。  
例:actAddTE,town_璃蝴吹翠,41,3,133,131,132 -> 80,town_璃蝴吹翠,41,3,133,131,132  

81.actDeleteTE  
[城镇编号][父菜单编号][子菜单总数][子菜单1][...]  
去除子菜单。正好和上面相反。  
例:actDeleteTE,town_创笷,172,1,174 -> 81,town_创笷,172,1,174  

82.actSetPrevInsertObjectST  
[气力值]  
更改刚加入角色的气力值,20为一格,最大60,只对最后加入的有效。兽剑士经常用。  
例:actSetPrevInsertObjectST,15 -> 82,15  

83.actSetPlayerExecMode  
[角色种类][编号][模式], = 0 player  
改变我方角色控制方式。参数“模式”=0时为我方操控,=1时为电脑操控。救援(寻)这关嚎就用到了,达人版中变节的克罗蒂也是如此。  
例:actSetPlayerExecMode,SID_纙,1,1 -> 83,SID_纙,1,1  

84.actSetPlayerFixPos  
[code][serial][x][y][distance]  
不知道啥意思……  

85.actGetItem  
[道具编号][数量]  
在仓库中添加道具。玩过达人版的朋友应该不陌生,过关奖励就是这么来的,而原版中的三把剑也是如此。道具编号在9item中查找或定义。  
例:actGetItem,17,1 -> 85,17,1  

86.actRandomSetSysArrivePos  
[数量][x坐标1][y坐标1][x坐标2][y坐标2][...]  
在若干个坐标中随机生成一个“真”的坐标,也就是五选一。例如寻这关的通行证位置。  
例:actRandomSetSysArrivePos,5,992,448,992,416,1024,416,1056,416,1088,416 -> 86,5,992,448,992,416,1024,416,1056,416,1088,416  
可以参照寻这关的攻略  
http://tieba.baidu.com/f?kz=252508100  

87.actCheckPlayerArriveSysPos  
[角色种类][编号]  
判断语句,检查角色是否处于随机出的“真”坐标。不用说,捡通行证自然是用这个。  
例:actCheckPlayerArriveSysPos,SID_绛甊,1 -> 87,SID_绛甊,1  

88.actWaitPlayer  
[角色种类][编号]  
等待角色行动完毕再执行下一条指令。  
例:actWaitPlayer,SID_纙,1 -> 88,SID_纙,1  

89.actSetPlayerName  
[角色种类][编号][名字][职业]  
改变角色的名字和职业名称,名字和职业都是文字编号。梅尔、凯文哥俩就是这么诞生的。  
例:actSetPlayerName,SID_ENEMY062,2,725,724 -> 89,SID_ENEMY062,2,725,724  

90.actChangePlayerID  
[角色种类][旧编号][新编号]  
改变角色编号,和actChangePrevInsertObjectID差不多。  
例:actChangePlayerID,SID_ENEMY023,2,1001 -> 90,SID_ENEMY023,2,1001  

91.actSetPrevInsertObjectFly  
[模式]  
令刚出场的角色可以飞行。当参数为1时可以飞行,为0时不能飞行。怒涛的两栖族可以从海面走到甲板上,就是因为这条指令(到达后再设为0取消飞行)。只对最后出现的人有效。  
例:actSetPrevInsertObjectFly,1 -> 91,1  

92.actSetPlayerFly  
[角色种类][编号][模式]  
和上一个差不多,可以对任何人用。  
例:actSetPlayerFly,SID_ENEMY048,8,1 -> 92,SID_ENEMY048,8,1  

93.actUseItem  
[角色种类][编号][道具编号]  
让角色使用道具。最经典的例子就是四魔将复活(让他们使用世界树之叶),当然要实现这个还要和actSetPlayerUndead配合使用。  
例:actUseItem,SID_ENEMY056,1,252 -> 93,SID_ENEMY056,1,252

94.actCheckRoundDisp  
[整数]  
相对回合数,即判断从该事件被调用起经过的回合数,达到数值后执行下面的指令。  
例:actCheckRoundDisp,5 -> 94,5  

95.actSetBMWalkToPoint  
[起始点][终点]  
大地图移动,离散后的几关都是用这个,地点编号在data2中。  
例:actSetBMWalkToPoint,30,33 -> 95,30,33  

96.actSetBMWalkerPlayerID  
[角色种类]  
设置大地图的领队(就是走路那个人),离散后琥就是用它带的队。  
例:actSetBMWalkerPlayerID,SID_砾 -> 96,SID_砾  

97.actSetBGToPos  
[x坐标][y坐标]  
将屏幕瞬间移动到某处。  
例:actSetBGToPos,480,1120 -> 97,480,1120  

98.actSetTownExitExecEvent  
[城镇编号][事件编号]  
在指定城镇添加离开时的剧情,和actSetTownExecEvent正好相反。在沙罗尼亚雷离开时会被琥发现,原因就是这个。  

99.actInsertStoryObjectWaitPos  
[类型][坐标数量][x坐标1][y坐标1][x坐标2][y坐标2]...  
比actInsertStoryObject多个停顿,此外坐标也是从多个中随机出一个,阻碍这关的毒气就是这么实现的。  
例:actInsertStoryObjectWaitPos,obj_Story_Level_PoisonGas,9,672,128,288,288,64,384,480,544,640,576,576,800,288,800,96,896,224,1056  

100.actCheckNextSerialNumber  
[num]  
游戏中没见到过……

101.actSetPlayerNoAttack
[角色种类][编号][模式]
使角色不能被攻击(有点类似魔兽的无敌),例如变节中摇摆不定的克罗蒂。模式值为班时有效,为0时还原。
例:actSetPlayerNoAttack,SID_霉甫,1,1 -> 101,SID_霉甫,1,1

102.actEarthQuake
[时间]
晃动屏幕,产生地震效果,例如崩陷。时间参数就是晃动的持续时间,单位和delay一样。
例:actEarthQuake,120 -> 102,120

103.actChangePosObjectProcCode
[x][y][range][proc code][new proc code]
作用不明……游戏中一次也没出现过,脚本中虽然出现过一次但被注释掉了……

104.actDeletePosPlayerXRange
[x坐标][y坐标][x number][阵营]
取消可站立地形,崩陷用的就是这个。x number没研究过,好像是横向的延伸范围……阵营就是对哪方有效,defProcPlayer为我方,defProcEnemy为敌方。(游戏中是两个一起用)
例1:actDeletePosPlayerXRange,480,640,3,defProcPlayer -> 104,480,640,3,defProcPlayer
例2:actDeletePosPlayerXRange,480,640,3,defProcEnemy -> 104,480,640,3,defProcEnemy

105.actInsertStoryObjectXRange
[类型][x坐标][y坐标][x number]
应该是填入某种东西,游戏中是紧跟在actDeletePosPlayerXRange后面使用的,而且坐标完全一样,推测是加入不能行走且无图象的地形。
例:actInsertStoryObjectXRange,obj_Story_Block,480,640,3 -> 105,obj_Story_Block,480,640,3

106.actSetRandomPos
[总数][x坐标1][y坐标1][x坐标2][y坐标2][....]
随机给5个坐标排序,用于未知出守护者。
例:actSetRandomPos,5,240,240,720,240,272,464,656,464,176,688 -> 106,5,240,240,720,240,272,464,656,464,176,688

107.actInsertObjectRandomPos
[角色种类][相对x坐标][相对y坐标][随机ID]
在指定ID的地点附近添加单位。相对xy坐标就是相对随机ID的坐标,随机ID是事先用actSetRandomPos生成的。
例:actInsertObjectRandomPos,obj_Story_Level_Enemy067,0,32,0 -> 107,obj_Story_Level_Enemy067,0,32,0
(这是石柱的,之所以相对y坐标是32,就是因为它在守护者下方一格,而守护者的坐标就是随机坐标)

108.actInsertStoryObjectRandomPos
[种类][相对x坐标][相对y坐标][随机ID]
和actInsertObjectRandomPos差不多,只不过加入的是白光。
例:actInsertStoryObjectRandomPos,obj_Story_Level_WhiteLight,0,0,0 -> 108,obj_Story_Level_WhiteLight,0,0,0

109.actSetPrevInsertObjectRandomID
[id]  
没出现过,连脚本的注释都打上了“(......... NOT USE .......)”

110.actCheckSerialPlayerAttacked
[被攻击者类型][编号]
判断语句,检查被攻击者是不是指定单位,如果是执行后面的指令。
例:actCheckSerialPlayerAttacked,SID_ENEMY067,1 -> 110,SID_ENEMY067,1

111.actScrollBGToRandomPos  
[随机ID]  
在守护者出现时用于将屏幕拉到它的位置,随机ID是事先用actSetRandomPos生成的。  
例:actScrollBGToRandomPos,0 -> 111,0  

112.actDeleteRandomPosObject  
[id][range][proc code]  
作用不明……和守护者出现的语句一同使用  

113.actFALSE  
和actTRUE对应,值永远为假。未知用到过,作用是永远不执行该事件,使它的message永远有效。  

114.actCheckEventNotExist  
[总数量][事件1][事件2][...]  
检查事件是否被触发,是为真,不是为假,多个事件的情况下满足其一即可。未知用来检测攻击柱子的顺序。  
例:actCheckEventNotExist,4,2,3,4,5 -> 114,4,2,3,4,5  

115.actSetPlayerWalkShape  
[角色种类][编号]  
改变单位外形图片,未知用来改变被攻击柱子的颜色。  
例:actSetPlayerWalkShape,SID_ENEMY067,2 -> 115,SID_ENEMY067,2  

116.actCheckNotPlayerAttacker  
[角色种类]  
判断语句,如果攻击方不是某单位为真,否则为假。未知用来判断咕噜是否合体,这是不能合体的情况。合体的情况用actCheckPlayerAttacked判断。  
例:actCheckNotPlayerAttacker,SID_〣翽 -> 116,SID_〣翽  

117.actSetPlayerPosToRandom0  
[player id][serial]  
不知道干嘛用的……咕噜合体时用过两次  

118.actPlayerJobUpProcess  
[角色种类][编号]  
用途不明……  

119.actWaitPrevInsertPlayer
等待最后一个出现的援军行动完毕。  
例:action = actWaitPrevInsertPlayer -> action = 119  

120.actPlayMovie  
[over delay]  
播放结局动画,那个参数没整明白……  

到100之后有很多我都不会用了……
121.actInsertRandomObject  
参数和effInsertRandomObject相同,区别不太清楚……终焉这关打败咕噜时出现过  

122.actSetDoublePageMode  
[mode]  
不明白,也是打败咕噜时出现的……  

123.actInsertLevelUpStar  
[声音名称]  
显示角色升级时的光影效果,并播放音效。遗产我方角色撤离时的效果就是这个。  
例:actInsertLevelUpStar,WAV\EFF0010.WAV -> 123,WAV\EFF0010.WAV  

124.actDetectRoundDispDisp  
[回合数]  
检查倒计时状况。例如还有两个回合,则actDetectRoundDispDisp,-2,遗产这关雷催促快些行动就是这么判断的。  
例:actDetectRoundDispDisp,-2 -> 124,-2  

125.actCheckProcObjectNotExist  
[proc code]  
游戏中MS没出现过……  

126.actCheckAnyPlayerArrivePos  
[x坐标1][y坐标1][x坐标2][y坐标2]  
检查我方是否有角色在指定坐标内,坐标范围是由4个坐标划出的矩形。和actCheckPlayerArrivePos的区别是,actCheckAnyPlayerArrivePos并没有特别针对的角色,任何我方角色都可以触发。例如忌之魂就是谁都可以拔。  
例:actCheckAnyPlayerArrivePos,608,416,608,416 -> 126,608,416,608,416  

127.actSetOverFlag  
[方法]  
切换结局决定方法,方法有两种,gameoverflagFreeEnemy和gameoverflagEnemyJobUp。gameoverflagFreeEnemy是由积分决定,gameoverflagEnemyJobUp是固定咕噜结局。咕噜变身时方法设法为gameoverflagEnemyJobUp,不杀席德尔的话又会变为gameoverflagFreeEnemy。  
例:actSetOverFlag,gameoverflagFreeEnemy-> 127,gameoverflagFreeEnemy  

128.actAddOverScore  
[结局编号][分数]  
增加结局积分。结局编号有3个(废话……),gameoverID1是地劫神结局,gameoverID2是席德尔结局,gameoverID3是咕噜结局。这个积分表估计就是这么来的  
http://tieba.baidu.com/f?kz=268062791  
例:actAddOverScore,gameoverID1,1 -> 128,gameoverID1,1  

129.actSetNextPlayLevelGetOverEvent  
[level]  
只在打败塔克斯后出现过,个人猜测是读取结局积分,判断结局用的,但参数的作用不明……  
例:actSetNextPlayLevelGetOverEvent,0 -> 129,0  

130.actBMSetPointMode  
[编号][模式]
设置大地图各地点的类型。编号就是地点的编号,模式有gameBMShowHidden、 gameBMShowSlow,、gameBMShow三种。不过这块我也是一知半解,以前做mod也是连蒙带猜-_-b 所以三种模式的作用不明……(游戏中也没出现过……)

第28句打错了,应该是“同时具有actInsertWinStatus和actDeleteWinStatus的功能”……
回复 支持 反对

使用道具 举报

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-11-22 10:16

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表