游侠NETSHOW论坛

标题: 汉之云脚本研究(附带MOD制作工具) [打印本页]

作者: vbvan    时间: 2007-12-26 20:01:30     标题: 汉之云脚本研究(附带MOD制作工具)

汉之云使用了Lua做为脚本语言,版本是5.0。脚本存放在Text目录下的两个.C01文件中。
将其中的内容解压后就可以得到lua编译生成的二进制文件。可以使用lua附带的luac.exe -l还原为伪代码

这同时也意味着,这代轩辕剑的剧情将史无前例的能被玩家所定制!只要我们修改lua脚本就可以增删剧情 :-)

经过6天的努力,终于完全重建了汉之云的脚本源代码
附件里提供了MOD制作工具,以后有时间会详细介绍汉之云的脚本系统

2008.3.5日更新
提供对应繁体1.01版的脚本源代码

2009.3.10日更新
提供对应简体1.02版的脚本源代码
(此版的compile_main_102.bat文件有bug:1.02编译后无法使用说明: 1.02的BAT由于在编写时候出现问题,未使用C01文件进行压缩,只做了移动,所以可暂时使用附件中的main_102_fix.bat在使用Van大的文件进行编译完成后再次运行即可.(请观察文件大小从4MB+变为1MB+,仅涉及Main文件,Fight文件不影响)
--By 风行水.)

2009.4.7日更新
修正bat文件未压缩脚本的问题,感谢风版

免责声明
附件中提供的脚本源代码利用逆向工程重建,代码的版权属游戏公司所有。这里仅供玩家个人学习研究和制作MOD之用。任何对代码的非法使用均与本人无关


使用方法:
1、下载Bin.rar和Source.rar,解压到同一目录下
2、修改Source目录下的lua脚本
3、使用compile_main或者compile_fight重新生成C01文件(生成的C01文件在当前目录下)
4、替换游戏Text目录下的C01文件(注意备份原始文件)
5、进入游戏查看效果

附录:
汉之云怪物、物品和奇术全资料http://game.ali213.net/viewthread.php?tid=1881266
汉之云脚本编写简明教程http://game.ali213.net/viewthread.php?tid=1884574

[ 本帖最后由 vbvan 于 2009-4-7 20:08 编辑 ]
作者: Breeze    时间: 2007-12-26 20:03:26

Van大出马...支持下~
作者: yf830830    时间: 2007-12-26 20:04:10

有可行性吗
做出的会是什么呢
也需要一定的技术吧
能不能做个例子看看哪
作者: casualcat    时间: 2007-12-26 20:06:46

完全不懂技术的说,脚本是指仅仅对话呢还是包括人物的行动?

题外话,仙四很多人都可以自己重新给人物编新的剧情和动作,那个是怎么做的。。。
作者: sunbeyond    时间: 2007-12-26 20:13:13

大概就是可以自定义游戏剧情,脚本的话包括对话和人物动作,坐标等等
作者: Gordo    时间: 2007-12-26 20:18:27

这就是说以后有mod喽~~~~~~~~~~~~~~~~~~~~~~
作者: devilcraft    时间: 2007-12-26 20:30:25

又见V................66RPGshangjianguo
作者: kala    时间: 2007-12-26 20:33:25

OYE,我来许愿,我要横艾的完美结局MOD,后宫也可以可以可以!
作者: vbvan    时间: 2007-12-26 20:42:34

show一下战斗脚本,看上去应该能实现比较多的东西出来

fightfield102 = function()
   local playerteampos = 0
   local playerside = 1
   local enemyteampos1 = 1
   local enemyteampos2 = 2
   local enemyside = 2
   local camset = 2
   local happenratio = 100
   local happenrange = 100
   local playermotion1 = 133
   local playereffect1 = 22422
   local playermotion2_1 = 121
   local playereffect2_1 = 22422
   local playermotion2_2 = 121
   local playereffect2_2 = 22422
   local playermotion3 = 133
   local playereffect3 = 22422
   local enemymotion1 = 133
   local enemyeffect1 = 22422
   local enemymotion2_1 = 133
   local enemyeffect2_1 = 22422
   local enemymotion2_2 = 133
   local enemyeffect2_2 = 22422
   local enemymotion3 = 133
   local enemyeffect3 = 22422
   if macro_checkevent(1, happenratio, happenrange) > -1 then
      local roleenemyid1, roleenemyname1 = f_isroleinpos(enemyside, enemyteampos1)
      local roleenemyid2, roleenemyname2 = f_isroleinpos(enemyside, enemyteampos2)
      local roleplayerid = -1
      local roleplayername = nil
      local count = 0
      while roleplayerid < 0 and count < 4 do
         roleplayerid, roleplayername = f_isroleinpos(playerside, count)
         count = count + 1
      end
      if roleenemyid1 > 0 and roleenemyid2 > 0 then
         f_setfocuscamera(enemyside, enemyteampos1, camset, -10, 0)
         f_settalkframepos(0.5, 0.7)
         f_showtalkframe(roleenemyname1, "哼哼,再逃啊!就不信你還能逃去哪!")
         f_waitanykey()
         f_showtalkframe(roleenemyname1, "等等就把你煉成丹藥吃了!")
         f_waitanykey()
         f_setfocuscamera(enemyside, enemyteampos2, camset, -10, 1)
         f_showtalkframe(roleenemyname2, "。。嗚嗚嗚。。。")
         f_waitanykey()
         f_hidetalkframe()
         f_setselectframepos(0.1, 0.5)
         f_showselectframe(2, "1。住手,放了牠!", "2。離開")
         local ans = getresolution()
         f_hideselectframe()
         if ans == 1 then
            f_setfocuscamera(playerside, playerteampos, camset, 10, 0)
            f_showtalkframe(roleplayername, "這未免太……")
            f_waitanykey()
            f_setfocuscamera(enemyside, enemyteampos1, camset, -10, 0)
            f_showtalkframe(roleenemyname1, "我跟我的戰利品說話,與你何干!")
            f_waitanykey()
            f_showtalkframe(roleenemyname1, "聽說人血也是煉丹聖品,就拿你們的血來試試好了!")
            f_waitanykey()
            f_singlerunaway(enemyside, enemyteampos2)
         elseif ans == 2 then
            f_grouprunaway(playerside)
         end
         f_turnonswitch(1)
         f_hidetalkframe()
      end
   end
   f_eventend()
end
作者: casualcat    时间: 2007-12-26 20:45:54

看起来好像还是蛮清楚的样子,估计以后会出一大堆汉之云的野史了
作者: GrimGhost    时间: 2007-12-26 21:07:28

以后哪位大大把内容改一下,加入一些新元素......期待呀
作者: 轩辕剑僮    时间: 2007-12-26 21:08:06

对mod制作大有裨益阿
作者: kala    时间: 2007-12-26 21:09:16

哪位大老早点做出横艾的完美结局MOD,膜拜,膜拜,膜拜
作者: loydran    时间: 2007-12-26 21:11:05

原帖由 vbvan 于 2007-12-26 20:42 发表
show一下战斗脚本,看上去应该能实现比较多的东西出来

fightfield102 = function()
   local playerteampos = 0
   local playerside = 1
   local enemyteampos1 = 1
   local enemyteampos2 = 2
   local enemyside ...


看起来并不难

计算机科班出身的一看就一目了然。
哇哇,MODMOD,嘿嘿
作者: 素世还真    时间: 2007-12-26 21:49:44

请楼主看看有没有分辨率的选项

急需1280×800的分辨率~!!!!!!!!!!!!!!!!!!!

支持1440×900  竟然不支持1280×800。。。。。无语啊
作者: tianwuld    时间: 2007-12-26 21:56:57

难道是说从此轩辕剑就做得和魔兽一样可以DIY了???
前几天还和同学YY要是双剑能这样就好了
难道这么快就成真了?
若是这样
那汉之云就是划时代之大作了……
作者: 永恒de爱    时间: 2007-12-26 22:20:58

去玩玩 服务端把 应会知道点 脚本的大概意思

简单的比如传奇啊传奇世界  石器时代等等

或者AO  以为其他的一些游戏之类

[ 本帖最后由 永恒de爱 于 2007-12-26 22:23 编辑 ]
作者: 完美仙剑    时间: 2007-12-26 22:21:00

这是什么语言??没学过……

MS有好多函数………………

8过还是看8懂……
作者: fullhouse    时间: 2007-12-26 22:23:21

期待能人出来啊
MOD
我要横艾结局或多结局
作者: 云梦寒    时间: 2007-12-26 23:11:31

不太明白,增删剧情的话也没有新地图啊
作者: 林碧    时间: 2007-12-26 23:19:17

OMG。。居然是LUA脚本。。行了。以后再把人物和武器等MOD改下放进去,完全可以DIY剧情。。。。爽。。。。
作者: casualcat    时间: 2007-12-26 23:24:58     标题: 回复 #20 云梦寒 的帖子

这要求也太高了点吧,汗,原来的场景也足够YY的了
作者: scarscc    时间: 2007-12-26 23:33:05

有没有侵权可能??

2020202020
作者: 林碧    时间: 2007-12-26 23:38:47

原帖由 scarscc 于 2007-12-26 23:33 发表
有没有侵权可能??

2020202020


按法律上来说,有,但前提是有人来告你。。。如果大宇不脑残的话,这个免费延长游戏生命力和增加游戏知名度的机会没理由抹杀。。
作者: jimmyxung    时间: 2007-12-27 11:01:56

超级期待啊
作者: leywas    时间: 2007-12-27 11:39:35

高人啊!!!re热烈期待中!!
作者: op98oi    时间: 2007-12-27 11:55:31

Van大啊
能把这转到轩把和汉之云吧去么
让那边的人也都知道咱们汉之云也能自做mod了~~~~~ ~
作者: 191044922    时间: 2007-12-27 13:49:47

顶上去.让更多人知道这激动人心的消息...
作者: Tommy33    时间: 2007-12-27 13:59:23

看来有希望自己定制剧情了,期待VAN大出个三国志式的剧本修改器
作者: kexu79    时间: 2007-12-27 14:16:43

仅是进来拜一下LZ————————————YX中对玩家贡献最多的人。。。。。。。。。
作者: yezilanse    时间: 2007-12-27 14:24:00

研究真的很深咯。感谢分享。期待新的剧情
作者: kkkyaya    时间: 2007-12-27 17:36:16

又是一个特邀嘉宾,汗

不知道这个是否只能简单修改对话或者人物位置,不认为这个脚本有多强大
作者: meltRes    时间: 2007-12-27 18:54:36

自从wow用了lua就火了。。。。。。。。。。。。。。。
作者: vbvan    时间: 2008-1-4 12:32:42

这里提供一个对利用逆向工程得到的Lua源代码重新编译压缩之后得到的脚本文件。有兴趣的朋友可以试验一下能否正常游戏。(注:附件在顶楼)

测试方法:
1、将附件解压,覆盖游戏目录Text\fight下的同名文件(请先备份原始文件)
2、进入游戏,找一个有对话的战斗场景,看看对话内容是否正常

如果一切正常的话,我会提供相应的Lua源代码和工具用于制作剧情MOD
作者: 林碧    时间: 2008-1-4 13:04:59

下载游戏中,谁有的快去测试下嘛
作者: caojujin2008    时间: 2008-1-4 14:09:04

不会吧 是不是真的啊 看来可以自己写自己喜欢的结局啦 呵呵~~~~~
作者: yf830830    时间: 2008-1-4 14:32:05

必须是由战斗对话的剧情部分
才能进行修改吗
自己写剧本有点困难
应该用一些已经存在又有较好口碑的小说加以改编
作者: vbvan    时间: 2008-1-9 16:16:02

经过6天的努力,终于完全重建了汉之云的脚本源代码
附件里提供了MOD制作工具,以后有时间会详细介绍汉之云的脚本系统

免责声明
附件中提供的脚本源代码利用逆向工程重建,代码的版权属游戏公司所有。这里仅供玩家个人学习研究和制作MOD之用。任何对代码的非法使用均与本人无关


使用方法:
1、下载Bin.rar和Source.rar,解压到同一目录下
2、修改Source目录下的lua脚本
3、使用compile_main或者compile_fight重新生成C01文件
4、替换游戏原来的C01文件(注意备份原始文件)
5、进入游戏查看效果
作者: kyo33170    时间: 2008-1-9 16:19:24

迟些会不会出个
“民间轩辕剑6”
。。。。。。
作者: 素世还真    时间: 2008-1-9 16:44:30

原帖由 vbvan 于 2008-1-9 16:16 发表
经过6天的努力,终于完全重建了汉之云的脚本源代码
附件里提供了MOD制作工具,以后有时间会详细介绍汉之云的脚本系统

免责声明
附件中提供的脚本源代码利用逆向工程重建,代码的版权属游戏公司所有。这里仅供玩家 ...



牛。。。。。。看看谁是第一个mod 的制作者
作者: lckiu    时间: 2008-1-9 18:39:27

这应该是首个国产游戏mod制作工具吧, 支持vbvan大!!!
作者: Gordo    时间: 2008-1-9 18:45:56

这个不顶顶什么,下了,研究一下~~~~~~~~~~~~~~~~~~~~
作者: tianwuld    时间: 2008-1-9 19:28:39

下了
可是还是一头雾水……
还是请v大多少解说一下吧……
作者: zg861229    时间: 2008-1-9 19:34:24

老大出马 必是极品呀!!!


作者: tianwuld    时间: 2008-1-9 19:45:58

去查了查相关资料
发现还是不是我这样的新手能搞定的……
只好等进一步的解说或是工具了……
作者: yunshui2999    时间: 2008-1-9 19:51:47

岂不是无敌了?????
呵呵爽啊
想起来就感觉爽啊~~~
作者: vbvan    时间: 2008-1-9 20:05:57

原帖由 tianwuld 于 2008-1-9 19:45 发表
去查了查相关资料
发现还是不是我这样的新手能搞定的……
只好等进一步的解说或是工具了……


如果你有C语言基础的话,阅读Lua脚本应当不是一件很困难的事情。
如果你想制作剧情MOD的话,需要先对各个文件的大致内容作一下浏览和归类。这些可以从函数名和文本等信息推断

具体的脚本分析要过些时候再写了
作者: utadahilary    时间: 2008-1-9 20:11:05

c语言...很好很强大...跑了...期待高人来制作...
作者: kaokiller    时间: 2008-1-9 20:11:31

很强大  来膜拜下
作者: newyouth    时间: 2008-1-9 20:14:04

请出以个横姐结局,LOLI早点消失的 MOD补丁吧=2=
作者: 粑粑    时间: 2008-1-9 20:28:53

哈哈 這個東西果然神奇
不怎么懂語言 大概看了下  簡單的東西改一下還是不難的

找到了第1個直線任務 在軍營里幫一個人抓野獸那段
if isfon(1101) == 0 and isfon(3461) == 0 then
      chatinfo(348, "張鈞", "糟了糟了!")
      facetotalk_noback(348, "張鈞", "啊,焉逢大人!")
      chatinfo(mainid, mainname, "怎麼了?這麼慌亂?")
      chatinfo(348, "張鈞", "……唉,好吧,我就說了。我方才煮好的伙食不知怎麼的,被一隻野獸給

吃了!")
      chatinfo(348, "張鈞", "您也知道端蒙有多嚴厲,若我現在不重煮伙食就不得了!")
      chatinfo(348, "張鈞", "不知焉逢大人可不可以替我將那隻野獸趕出大營?")
      t348_q()
      chang_role_dir(348, 87, 1)
   else
      if isfon(3461) == 1 and isfon(3462) == 0 and isfon(1101) == 0 then
         facetotalk(348, "張鈞", "那隻野獸若不趕出大營,不知道還會吃掉我們多少伙食。")
      else
         if isfon(3462) == 1 and isfon(3463) == 0 then
            chatinfo(mainid, mainname, "我已經抓到那隻野獸了。")
            facetotalk_noback(348, "張鈞", "終於……")
            chatinfo(348, "張鈞", "不愧是焉逢大人呀!這是小的一點心意,請您收下。")
            getitem(6001, 1)
            getitem(6009, 1)

            fon(3463)
            missionend(6068, 1)
            chang_role_dir(348, 87, 1)

紅色部分是得到2個物品,本來是1個草藥,1個消疲。
猜了下,前面是物品代碼,后面是數量
改成
getitem(6008, 1)
getitem(6009, 3)

再進游戲,完成任務,獲得1個9命貓腦漿 3個消疲。

如果多懂一些語言的話,應該可以改更多東西。
而且這個物品代碼MS有點用處。
作者: tianwuld    时间: 2008-1-9 21:17:47

原帖由 vbvan 于 2008-1-9 20:05 发表


如果你有C语言基础的话,阅读Lua脚本应当不是一件很困难的事情。
如果你想制作剧情MOD的话,需要先对各个文件的大致内容作一下浏览和归类。这些可以从函数名和文本等信息推断

具体的脚本分析要过些时候再写了 ...


阅读倒是还可以
不过自己编写还是有点难度
函数太多了点……
不过确实有些规律可循

[ 本帖最后由 tianwuld 于 2008-1-9 21:19 编辑 ]
作者: vbvan    时间: 2008-1-9 21:20:50

原帖由 tianwuld 于 2008-1-9 21:17 发表


阅读倒是还可以
不过自己编写还是有点难度
函数太多了点……
不过确实有些规律可循


用文本编辑器(比如EditPlus)打开时选择Big5的代码页即可
作者: tianwuld    时间: 2008-1-9 21:26:01

原帖由 vbvan 于 2008-1-9 21:20 发表


用文本编辑器(比如EditPlus)打开时选择Big5的代码页即可

搞定
谢v大
研究去了……
作者: 聂风    时间: 2008-1-9 22:07:46

顶呀!这个超强!!支持!!
作者: 林碧    时间: 2008-1-10 01:01:09

接下来需要把物品代号,场景代号,NPC代号列个表。然后想如何搞就如何搞
作者: montm    时间: 2008-1-10 01:08:46

支持!! 厉害
作者: hellbrood    时间: 2008-1-10 12:54:33

这个太强了,期待高人的作品~~~~
作者: panden    时间: 2008-1-10 15:08:59

原帖由 林碧 于 2008-1-10 01:01 发表
接下来需要把物品代号,场景代号,NPC代号列个表。然后想如何搞就如何搞


很黄很暴力....

我喜欢
作者: Kyosuke々Nanbu    时间: 2008-1-10 15:48:49

顶啊,期望高手改一下吧..现在的剧情看起来囧...
作者: darkradx    时间: 2008-1-10 23:37:49

这东东太强大了.............
作者: tangyi414    时间: 2008-1-11 11:36:19

哇,定制剧情,是不是可以定制把端蒙MM复活的剧情啊!!
作者: fanglei03    时间: 2008-1-12 00:37:58

期待高手降临。。。。。
20202002020
作者: RaffinKIRA    时间: 2008-1-21 10:37:54

C01.exe和luac.exe
的使用方法能不能说一下呢
作者: vbvan    时间: 2008-1-21 11:10:42

原帖由 RaffinKIRA 于 2008-1-21 10:37 发表
C01.exe和luac.exe
的使用方法能不能说一下呢


你可以参考compile_main.bat里的命令。
luac.exe是用于编译lua脚本的
C01.exe是用于生成C01文件的

你在命令行下直接输入luac或者C01就可以看到参数说明
作者: 5011167    时间: 2008-1-21 11:21:10

V大一出谁与针锋~V大大的一定要顶~虽然我还没玩汉云不过我可以先试试做个MOD~
作者: RaffinKIRA    时间: 2008-1-21 11:26:22

哦,其实我是想知道。
那2个.C01文件您是怎么解压得,用下载里面的工具?
作者: huangzx79    时间: 2008-1-23 09:21:36

好像改不了战斗难度。汉之云的练级指数过于直线,
到后期辛苦练出的武器的作用还不如直接打升到下一级。
做任务的报酬实在差,那些东西还不如直接去打怪。
有没有修改升级经验的参数?
作者: frenzy13    时间: 2008-1-23 09:30:41

不要改出来H东西 和谐就over了
作者: softwind    时间: 2008-1-23 09:31:09

留名关注,这么好的帖子一定要顶
期待强人mod

作者: 幻影飓风    时间: 2008-1-23 11:51:56

嗯....!继续顶上去!!!!!!!!.......
支持V大大.....
做个完美结局出来啊...............!!!!!
作者: jdblue    时间: 2008-1-23 23:49:11

很好很强大啊!
2020202020202020
作者: 幻影飓风    时间: 2008-1-24 08:05:46

...继续顶神贴...........!!!

(其实...二十对于我们来说...是个坎)
作者: 幻影飓风    时间: 2008-1-24 13:05:12

我来维持神贴不落..!
20202020202020
作者: rdf175    时间: 2008-1-24 19:33:38

比较晕,还是先玩一会再说吧,哈哈,楼主辛苦了
作者: 幻影飓风    时间: 2008-1-24 21:15:02

古有玄霄维琼华不落...
今有本人持神贴不沉...
作者: 将疯    时间: 2008-1-25 16:02:42

牛人吖~

----------------

各位高手改到新剧情,记得上传分享吖~
作者: shevacy    时间: 2008-1-26 02:40:06

期待动作指令的修改教程
期待动作指令的修改教程
作者: 汗之云    时间: 2008-1-27 01:16:24

支持一个,

现在最大问题是动作编号,地图编号,还有镜头的问题
作者: 倾奇者    时间: 2008-1-31 23:04:47

从总目录一个一个往下看,突然看见这个帖子,暴搞笑,感觉就是游戏玩透了没玩的了,又觉得没尽兴干脆把游戏的脚本都挖出来玩了~~~~哈哈~~~~
作者: loveasa521    时间: 2008-2-1 00:57:56

v大太强了,啥都能作啊,跪拜~!...................................
作者: 幻影飓风    时间: 2008-2-6 11:22:41

呵呵.要是van大直接作出来就好了...
作者: vbvan    时间: 2008-3-5 23:25:33

3.5日更新
提供对应繁体1.01版的脚本源代码

简单看了一下,主要是改了不少文字错误,修了部分bug,新增了一些伙伴的剧情,和更新档里的说明一致~
不过ms这次更新又添了几个小bug,hoho

有兴趣的可以自己和1.00版的代码diff看看~
作者: 不如这样    时间: 2008-3-7 08:47:35

為什么沒人做著MOD出來呢>?!
作者: byx0    时间: 2008-4-8 14:36:29

本人认为改改对话与任务路线、报酬之类的就行了,在原有剧情与结局上做修改是可以的,但想要改出自己的结局与剧情不太现实,想象一下没有动画配合的剧情会是怎样的

[ 本帖最后由 byx0 于 2008-4-8 14:46 编辑 ]
作者: 司空璇    时间: 2008-4-9 21:25:53

期待汉之云这个好游戏的MOD崛起!....
作者: 0o重楼o0    时间: 2008-5-11 12:55:50

有谁把全对话整理出来了的 ……
能发出来吗  
自己整理实在是恐怖啊   这么多“!·#¥%……—*()——”里面挖汉字
作者: tkyu    时间: 2008-5-30 21:43:29

V大,求救啊!!!!!怎么我把结局那里的对话改了,然后按照你所说的那样生成文件代替原来的,却没有效果啊??????(其他章节的就可以啊)
作者: tkyu    时间: 2008-5-31 16:20:31

DDDD~~~~~问题解决了......
20.EXE
作者: tkyu    时间: 2008-5-31 16:20:54

发重了.....网络.........
20.EXE
作者: wangkunlun    时间: 2008-7-7 17:16:53

完全不明呀,看来我仍需努力学习
作者: solomleee    时间: 2008-7-25 20:16:01

崇拜van大!!!!!!!!!!!!

作者: Fireshine    时间: 2008-7-30 15:23:30

可以做物品,招式的MOD吗?个人觉得有些东西的设定实在太脑残了。。
作者: 神の第九夜    时间: 2008-8-16 14:56:33

其实。。。既然都这样了。。。。大家完全可以推翻轩辕和仙剑系列,开创雷之空间。。。说不定又能再创神话。。
作者: tkyu    时间: 2008-8-16 15:09:45

VAN大什么时候可以搞个能导入的就好了...我那个MOD没CG总是看着别扭啊..........
作者: lihaodevil    时间: 2008-10-11 22:22:08

为什么老是下不料呢?
作者: Server2008    时间: 2008-10-27 20:11:36

太感谢了
作者: jingsr    时间: 2008-10-29 12:21:01

请问版主,BIN.RAR解压打不开,要用什么软件?(我用的是WINRAR)其它网站下的MOD工具也是没法解压,我只是想解决打黑龙的战斗死循环问题.
作者: 4891829211    时间: 2009-2-4 00:40:58

不懂啊...哈哈.新手
作者: vbvan    时间: 2009-3-10 22:24:56

2009.3.10日更新
提供对应繁体1.02版的脚本源代码




欢迎光临 游侠NETSHOW论坛 (https://game.ali213.net/) Powered by Discuz! X2