|
通过昨天公布的事件调用函数,懂点LUA语法的就能明白
新函数在调用事件时,会先检测
OEVENTLUA 这个表中的事件编号的对应值是否为空
如果为空,就还是从原来的KDEF文件中调用事件
如果对应值不为空,那么就从 OEVENTLUA 这个表中来调用新定义的事件
所认,无论是要改写原有的事件还是新增事件
只需在 OEVENTLUA 此表中定义即可
关于表的概念,请大家自行在网上查找一些LUA的教程学习一下
这个对编程至关重要,一定要了解表的结构和做到能熟练运用表
下面以一个修改游戏中的原有事件的内容来举例:
这个事件就是原事件编号为1082的事件
也就是在山洞李沅芷加入的剧情事件
先将此事件原定义内容代码列出:
- instruct_1(3998,92,0); -- 1(1):[???]说: 哎呀,你怎么才来呀?
- instruct_0(); -- 0(0)::空语句(清屏)
- instruct_1(3999,0,1); -- 1(1):[AAA]说: 你是谁呀?
- instruct_0(); -- 0(0)::空语句(清屏)
- instruct_1(4000,92,0); -- 1(1):[???]说: 我就是李沅芷呀!
- instruct_0(); -- 0(0)::空语句(清屏)
- instruct_1(4001,0,1); -- 1(1):[AAA]说: 你在这里做什么?
- instruct_0(); -- 0(0)::空语句(清屏)
- instruct_1(4003,92,0); -- 1(1):[???]说: 当然是等着你来加我啦!*你现在正在进行是苍龙逐日*1.2版,作者小小猪迫于*某些人的压力,才让我出场*的。我的任务就是做你的保*镖,帮你通关!
- instruct_0(); -- 0(0)::空语句(清屏)
- instruct_1(4004,0,1); -- 1(1):[AAA]说: 你到底在说什么啊?*我完全听不懂……
- instruct_0(); -- 0(0)::空语句(清屏)
- instruct_1(4005,92,0); -- 1(1):[???]说: 你不用听懂,我就问你一句*话,你要老老实实的回答我*!
- instruct_0(); -- 0(0)::空语句(清屏)
- instruct_1(4006,0,1); -- 1(1):[AAA]说: 哦,你问吧。
- instruct_0(); -- 0(0)::空语句(清屏)
- instruct_1(4007,92,0); -- 1(1):[???]说: 你想不想让我加入你的队伍*?
- instruct_0(); -- 0(0)::空语句(清屏)
- if instruct_9(57,0) ==false then -- 9(9):是否要求加入?是则跳转到:Label0
- instruct_0(); -- 0(0)::空语句(清屏)
- instruct_1(4008,92,0); -- 1(1):[???]说: 什么?你……你……我再给*你一次机会好了,你想不想*让我加入?
- instruct_0(); -- 0(0)::空语句(清屏)
- if instruct_9(48,0) ==false then -- 9(9):是否要求加入?是则跳转到:Label1
- instruct_0(); -- 0(0)::空语句(清屏)
- instruct_1(150,92,0); -- 1(1):[???]说: …………
- instruct_0(); -- 0(0)::空语句(清屏)
- instruct_1(150,0,1); -- 1(1):[AAA]说: …………
- instruct_0(); -- 0(0)::空语句(清屏)
- instruct_1(4009,92,0); -- 1(1):[???]说: 伤自尊了……*我走了……再见……*再也不想见到你啦!!!
- instruct_0(); -- 0(0)::空语句(清屏)
- instruct_14(); -- 14(E):场景变黑
- instruct_3(-2,-2,0,0,0,0,0,0,0,0,-2,-2,-2); -- 3(3):修改事件定义:当前场景:当前场景事件编号
- instruct_3(104,90,0,0,0,0,0,0,0,0,0,0,0); -- 3(3):修改事件定义:场景[钓鱼岛]:场景事件编号 [90]
- instruct_0(); -- 0(0)::空语句(清屏)
- instruct_13(); -- 13(D):重新显示场景
- do return; end
- end --:Label1
- end --:Label0
- instruct_1(4011,92,0); -- 1(1):[???]说: 哦,那就好,你等一下啊。**喂——你们可以出来了!
- instruct_0(); -- 0(0)::空语句(清屏)
- instruct_1(4012,0,1); -- 1(1):[AAA]说: ????
- instruct_0(); -- 0(0)::空语句(清屏)
- instruct_14(); -- 14(E):场景变黑
- instruct_3(-2,4,0,0,0,0,0,6776,6776,6776,-2,-2,-2); -- 3(3):修改事件定义:当前场景:场景事件编号 [4]
- instruct_3(-2,5,0,0,0,0,0,6778,6778,6778,-2,-2,-2); -- 3(3):修改事件定义:当前场景:场景事件编号 [5]
- instruct_0(); -- 0(0)::空语句(清屏)
- instruct_13(); -- 13(D):重新显示场景
- instruct_1(4013,208,0); -- 1(1):[???]说: 臭丫头,我看你往哪跑!
- instruct_0(); -- 0(0)::空语句(清屏)
- instruct_1(4014,92,0); -- 1(1):[???]说: 喂,你还愣着干什么?赶快*来英雄救美啊!
- instruct_0(); -- 0(0)::空语句(清屏)
- instruct_1(4015,0,1); -- 1(1):[AAA]说: 哦……
- instruct_0(); -- 0(0)::空语句(清屏)
- if instruct_6(226,4,0,0) ==false then -- 6(6):战斗[226]是则跳转到:Label2
- instruct_15(0); -- 15(F):战斗失败,死亡
- do return; end
- instruct_0(); -- 0(0)::空语句(清屏)
- end --:Label2
- instruct_3(-2,4,0,0,0,0,0,0,0,0,0,0,0); -- 3(3):修改事件定义:当前场景:场景事件编号 [4]
- instruct_3(-2,5,0,0,0,0,0,0,0,0,0,0,0); -- 3(3):修改事件定义:当前场景:场景事件编号 [5]
- instruct_0(); -- 0(0)::空语句(清屏)
- instruct_13(); -- 13(D):重新显示场景
- instruct_1(4016,92,0); -- 1(1):[???]说: 小子,还不赖嘛!*我跟定你了!
- instruct_0(); -- 0(0)::空语句(清屏)
- instruct_1(4017,248,1); -- 1(1):[???]说: 啊……这个……谢谢夸奖啊*……
- instruct_0(); -- 0(0)::空语句(清屏)
- if instruct_20(20,0) ==false then -- 20(14):队伍是否满?是则跳转到:Label3
- instruct_14(); -- 14(E):场景变黑
- instruct_3(-2,-2,0,0,0,0,0,0,0,0,0,0,0); -- 3(3):修改事件定义:当前场景:当前场景事件编号
- instruct_0(); -- 0(0)::空语句(清屏)
- instruct_13(); -- 13(D):重新显示场景
- instruct_10(92); -- 10(A):加入人物[李沅芷]
- do return; end
- end --:Label3
- instruct_1(12,92,0); -- 1(1):[???]说: 你的队伍已满,我就直接去*小村吧。
- instruct_0(); -- 0(0)::空语句(清屏)
- instruct_14(); -- 14(E):场景变黑
- instruct_3(-2,-2,0,0,0,0,0,0,0,0,0,0,0); -- 3(3):修改事件定义:当前场景:当前场景事件编号
- instruct_3(70,1,1,0,199,0,0,7266,7266,7266,-2,-2,-2); -- 3(3):修改事件定义:场景[小村]:场景事件编号 [1]
- instruct_0(); -- 0(0)::空语句(清屏)
- instruct_13(); -- 13(D):重新显示场景
复制代码
现在我想做的,就是让这个事件加入的人物随机变成
赵敏,周芷若,陆无双,郭襄这四人中的一人
并且重新设定人物的相关参数
那么就在原事件中去掉一些原来相关的对话和战斗
再加入新的代码
因为此事件编号为1082
那么我们就这样来写新的事件定义
- OEVENTLUA[1082]=function() --4MM
- local r;
- if JY.Thing[202][WZ7]==1 then
- r=math.random(2)
- else
- r=math.random(4)
- end
- local bdnl={"姓名", "头像代号", "生命最大值", "内力最大值",
- "内力性质", "攻击力", "轻功","防御力",
- "拳掌功夫", "御剑能力", "耍刀技巧", "特殊兵器",
- "资质","武功1" }
- local mm4={};
- mm4[1]={"周芷若",301,350,600,0,60,50,50,30,30,0,0,71,41};
- mm4[2]={"赵敏",302,270,500,1,70,40,50,0,40,0,0,78,37};
- mm4[3]={"郭襄",303,200,500,2,40,40,40,20,20,20,20,73,12};
- mm4[4]={"陆无双",304,400,700,0,70,40,60,0,0,40,0,64,54};
- for i=1,14 do
- JY.Person[92][bdnl[i]]=mm4[r][i]
- end
- JY.Person[92]["等级"]=10
- for i=1,5 do
- JY.Person[92]["出招动画帧数"..i]=0
- JY.Person[92]["出招动画延迟"..i]=0
- JY.Person[92]["武功音效延迟"..i]=0
- end
- local avi={ {14,6,7},{8,3,4},{0,0,0},{7,4,5}, }
- JY.Person[92]["出招动画帧数1"]=avi[r][1]
- JY.Person[92]["出招动画延迟1"]=avi[r][3]
- JY.Person[92]["武功音效延迟1"]=avi[r][2]
- if r==3 then
- local s={ {0,0,0},{9,2,3},{8,3,4},{8,3,4},{9,5,6}, }
- for i=1,5 do
- JY.Person[92]["出招动画帧数"..i]=s[i][1]
- JY.Person[92]["出招动画延迟"..i]=s[i][3]
- JY.Person[92]["武功音效延迟"..i]=s[i][2]
- end
- end
- say(CC.EVB205,JY.Person[92]["头像代号"],0,"???")
- if instruct_9(57,0) ==false then -- 9(9):是否要求加入?是则跳转到:Label0
- instruct_3(-2,-2,0,0,0,0,0,0,0,0,-2,-2,-2);
- say(CC.EVB206,JY.Person[92]["头像代号"],0,"???")
- return;
- end --:Label0
- if instruct_20(20,0) ==false then -- 20(14):队伍是否满?是则跳转到:Label3
- instruct_14(); -- 14(E):场景变黑
- instruct_3(-2,-2,0,0,0,0,0,0,0,0,0,0,0); -- 3(3):修改事件定义:当前场景:当前场景事件编号
- instruct_0(); -- 0(0)::空语句(清屏)
- instruct_13(); -- 13(D):重新显示场景
- instruct_10(92); -- 10(A):加入人物[李沅芷]
- do return; end
- end --:Label3
- instruct_0(); -- 0(0)::空语句(清屏)
- instruct_14(); -- 14(E):场景变黑
- instruct_3(-2,-2,0,0,0,0,0,0,0,0,0,0,0); -- 3(3):修改事件定义:当前场景:当前场景事件编号
- instruct_3(70,1,1,0,199,0,0,7266,7266,7266,-2,-2,-2); -- 3(3):修改事件定义:场景[小村]:场景事件编号 [1]
- instruct_0(); -- 0(0)::空语句(清屏)
- instruct_13(); -- 13(D):重新显示场景
- end
复制代码
好了,这样就完成了
此时 OEVENTLUA[1082] 的值已经是一个函数,不再为空
那么在执行事件调用时会优先执行这个函数的内容
而不再调用原来的事件
大家可以将此函数复制到DIY文件中
按你的想法来添加内容,再去执行这个事件看看效果吧
这次就讲这么多
下次继续以此事件引起的其他一些小问题
如:离队时主角总是说李姑娘,人物入队时的头像显示不对 等
就这些问题的解决方法来继续讨论事件的制作
|
|