

          kdef全部事件指令分析结果V0.3

2006.2.11

    说明：此版分析结果参照了反汇编的内容。



(感谢wind提供大量分析结果！感谢chaoliu提供修改器和很多资料！感谢冰蓝论坛所有提供资料的网友和关注此事的网友！)
还有些指令具体含义不太清楚，有些可能有错误，希望大家发现错误及时指出。


括号内表示后面跟的16位数值的个数和含义。
(文中16进制数的两个字节均采用低位在前，即0100实际应该是0001)

0000(0):清屏指令。清除屏幕前景显示，不清除背景画面。
     多用在对话和其它显示文字的指令之后，清除显示的文字


0100(1):对话(对话编号,人物头像代号,对话框位置)
对话框位置：0 屏幕上方显示, 左边头像，右边对话
            1 屏幕下方显示, 左边对话，右边头像
            2 屏幕上方显示, 左边空，右边对话
            3 屏幕下方显示, 左边对话，右边空
            4 屏幕上方显示, 左边对话，右边头像
            5 屏幕下方显示, 左边头像，右边对话


0200(2):得到物品(物品编号,数量) 
      显示"得到物品"
      若拿到14天书并且声望大于200，则主角家里出现武林贴(程序中调用指令3)


0300(3):重新修改事件内容'参数参考事件编辑器 
后跟13个2B，其中fffe(-2)均表示当前值不变
     2B：场景编号，FFFE为当前场景
     2B：场景事件序号，FFFE为当前场景事件
     2B：场景第1字，参考chaoliu的程序，是否触发 1 可触发，0不可触发 
     2B：场景第2字，编号
     2B：场景第3字，调查(使用空格)触发的事件编号(重要!!!)
     2B：场景第4字，主角使用物品时触发的事件(重要!!!)
     2B：场景第5字，主角通过时触发的事件(重要!!!)
     2B：场景第6字，贴图1，动画起始编号，三个编号相同则为静止图片。
     2B：场景第7字，贴图2, 动画结束编号
     2B：场景第8字，贴图3，同贴图1
     2B：场景第9字，贴图动画显示延迟帧数。
     2B：场景第10字，事件触发点x坐标
     2B：场景第11字，事件触发点x坐标
    此语句极重要，修改事件的前后逻辑关系全靠它。希望大家修改时仔细研读 


0400(4):使用物体触发事件(物品编号,正确转向偏移量,不正确转向偏移量) 
    使用的物品符合物品编号即为正确


0500(5):询问是否战斗(是转向偏移量,否转向偏移量) 
    显示"是否与之过招"，回答Y/N转向不同偏移量


0600(6):战斗(战斗场景编号,赢转向偏移量,输转向偏移量,输后是否有经验值得) 
    输后是否有经验值=1，则打输后仍然可以获得经验值，并升级。
                        用于打输后不死的战斗，如斗胡斐、老顽童等。
    
                    =0, 则打输后不获得经验。用于打输后死亡的战斗。                      


0700(7):无条件返回，事件结束
    用于在事件指令中间返回。


0800(8):改变大地图音乐(音乐编号) 
    如果用此指令，则返回大地图时改变背景音乐为此音乐编号，不用退出场景的音乐。
    

0900(9):询问是否加入(是转向偏移量,否转向偏移量) 
    显示"是否要求加入"


0a00(10):加入队员(人物代号) 
    人员加入队伍。注意并不判断人员是否满，因此需要用指令14H判断队伍是否满
    

0b00(11):询问是否住宿(是转向偏移量,否转向偏移量) 
    显示"是否住宿过夜"    


0c00(12):住宿 
    恢复体力，内力和生命
    若受伤>33或者中毒，则不能住宿恢复，只能治疗和吃药


0d00(13):场景重新显示
    一般和0eH配合，用于改变场景事件。先场景变暗，然后修改场景事件或者贴图，再重新显示
    也用在战斗后重新显示场景。

0e00(14):场景从明亮渐变为暗淡 


0f00(15):死亡回到选单(5300)
    
 
1000(16):判断某个人是否在队中(人代号,在转向偏移量,不在转向偏移量) 


1100(17):修改场景的s*贴图(场景编号,图层,横坐标,纵坐标,贴图编号)
       2B：场景编号 fffe 为当前场景
       2B：图层编号
       2B：x坐标
       2B：y坐标
       2B：贴图编号
      一般用于开门等，修改门的贴图



1200(18):判断是否有某种物品(物品编号,有转向偏移量,没有转向偏移量) 



1300(19):改变主角当前位置(目标x,目标y) ，瞬间移动，没有一步一步走路
     一般用于住宿，注意最好先黑屏(指令0E)，再移动，然后再重新显示(指令0D)


1400(20):判断队伍是否满(满转向偏移量,不满转向偏移量) 
    


1500(21):队员离队(人代号) 
    


1600(20):队伍全体内力降为0 
    斗阎基时用


1700(23):设置用毒能力(人代号,数值)
    


1800(24):死亡黒色背景'这个kdef.grp中没用到 


1900(25):场景移动(原始x,原始y,目标x,目标y) , 一步一步显示移动
        

1a00(26):增加场景事件编号的三个触发事件编号(场景编号,场景事件序号,事件1增加量,事件2增加量,事件3增加量)
      可用于判断五岳并派是否应该发生，每闯过一个山，
      嵩山派守门的事件就加1，到加4后就可以和守门的打架了。
      侠客岛也类似


1b00(27):显示动画(标志动画显示位置的当前场景事件编号,起始图编号,中止图编号) 
    

1c00(28):判断品德(人代号,数值下限,数值上限,达到转向偏移量,否转向偏移量) 
    达到的条件为品德在数值下限和上限之间    
    

1d00(29):判断武力(人代号,数值下限,数值上限,达到转向偏移量,否转向偏移量) 
    

1e00(30):主角走动(原始x,原始y,目标x,目标y) 
    与13的区别是一步一步走过去


1f00(31):判断是否够钱(需要钱数,够钱转向偏移量,不够转向偏移量) 
    住店时使用。


2000(32):增加物品数量(物品编号,数量) 
    与02H的区别是不显示任何内容


2100(33):学会武功(人代号,武功编号,是否显示学会武功(0显示，1不显示)) 
    学会的武功点数为0，一级。
    如果武功已满10个则会洗掉第一个武功？


2200(34):增加资质(人代号,数值) 
    显示“资质增加”


2300(35):设置武功(人代号,武功栏位,武功编号,武功点数) 
    如果武功栏位=-1，则在栏位增加武功，如果武功满10个则洗掉第一个武功
    此项在需要事件直接学会武功并增加武功等级时可以使用。比如可以直接设置学会某项武功10级，
    不用再练了。


2400(36):判断主角的性别(主角的性别,是转向偏移量,否转向偏移量) 
    若你自宫练剑,则性别为2(人妖)，会被任我行取笑。


2500(37):增加主角品德(数值) 


2600(38):修改场景贴图(场景编号,图层编号,原有贴图,修改后贴图)
    把该场景某个图层所有编号为原有贴图的图块替换为新的贴图
    场景编号为-2 表示为当前场景
    黑龙潭处用到 


2700(39):打开场景(场景编号)
    设置场景的进入条件为0，可以进入
    打开桃花岛入口/绝情谷等
    

2800(40):主角面向何方(站立图编号) ，事件结束后有效。
             0上，1右，2左，3下
    
    一般用于住宿后

2900(41):非我方队员增加物品(人代号,物品编号,数量) 
    非我方队员只能携带4件物品，因此使用此指令注意不要让非我方队员超过4件


2a00(42):判断队里是否有女性(是转向偏移量,否转向偏移量) 
    欧阳克使用 


2b00(43):判断物品栏里是否有指定物品(物品编号,有转向偏移量,无转向偏移量) 
         与12H没有区别


2c00(44):同时显示两个动画(标志动画显示位置的场景事件编号,起始图,中止图，标志动画显示位置的场景事件编号,起始图,中止图)
      最后一个中止图无用，因两个动画必须帧数相同。
      苏星河＆厨师做菜处用到 


2d00(45):增加轻功(人代号,数值) 
    显示“轻功增加”

2e00(46):增加内力(人代号,数值) 
    显示“内力增加”


2f00(47):增加武力(人代号,数值) 
    显示“武力增加”


3000(48):增加生命(人代号,数值) 
    我方队伍生命增加，则显示“生命增加”
    其它人生命增加，不显示。如战光明圣火阵时六个人生命都会增加，武功也会增加，但不显示

3100(49):设置内力属性(人代号,数值) 


3200(50):判断物品栏里是否有指定的5种物品(物品编号,物品编号,物品编号,物品编号,物品编号,有转向偏移量,无转向偏移量) 
    林厨子做菜判断


3300(51):问软体娃娃 
    随机选择从编号2547开始的18条对话


3400(52):看道德 


3500(53):看声望 


3600(54):见过南贤后可以进入各场景 
    打开全部场景，并设置云鹤崖和摩天崖为轻功超过70进入，桃花岛和绝情谷底不可进入


3700(55):判断事件编号(场景事件编号,给定编号,是偏移,否偏移)
    判断当前场景事件编号的事件1(空格触发)是否为给定事件编号
  

3800(56):增加声望(数值) 
      若拿到14天书并且声望大于200，则主角家里出现武林贴(程序中调用指令3)
    

3900(57):主角在高昌迷宫砍石门的动画 


3a00(58):武道大会比武 
    从战斗102开始的30场战斗，每6场随机选3场。


3b00(59):全部队员离队并找不到 
    所有队员先离队，然后清除全部离队人员的事件，所有人从此找不着。



3c00(60):判断场景事件图块(场景,场景事件编号,某地一幅图块,是偏移,否偏移)
    判断场景事件的图片1编号是否等于某图片
    场景为-2表示当前场景


3d00(61):判断是否放完14本书？(是偏移,否偏移) 


3e00(62):播放进入时空机动画".游戏结束 


3f00(63):设置性别(人代号,数值) 


4000(64):韦小宝卖东西 


4100(65):韦小宝去其它客栈


4200(66):播放音乐(音乐编号) 


4300(67):播放声音(声音编号) 


FFFF(-1):语句结束
