铁血丹心

 找回密码
 我要成为铁血侠客
搜索
查看: 3210|回复: 6

菜鸟求助如何修改Upedit源码增加一些指令啊

[复制链接]
发表于 2012-7-15 16:42 | 显示全部楼层 |阅读模式

马上注册,结交更多侠友!

您需要 登录 才可以下载或查看,没有账号?我要成为铁血侠客

x
本帖最后由 Riemann 于 2012-7-16 22:20 编辑

系统是LUA复刻,想修改UPedit源码增加一条改编场景进入音乐的指令
我看到lua代码里有
--播放音效
function instruct_67(id)      --播放音效
     PlayWavAtk(id);
end
于是我乱来。。增加
function instruct_201(id)      --修改进门音乐
     ChangeMusicIn(id);
end
function ChangeMusicIn(id)             --修改进门音乐
        JY.Scene[JY.SubScene]["进门音乐"] = id;
end
然后在upedit里
     201:
      begin
        Form34.Edit1.Text := inttostr(atrb.par[1]);
        if Form34.ShowModal = mrOK then
        begin
          atrb.par[1] := strtoint(Form34.Edit1.Text);
        end;
      end;
这块应该只是控制View的吧,control层的找不到啊
我感觉我是在乱弄,,,实在不知道怎么弄啊 望高手指点一二
刚把游戏改成半即时的,现在想修改Upedit给小组其他人用,但是遇到瓶颈了。。。
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2012-7-15 17:57 | 显示全部楼层
这样还不够,就算up能正确写入事件
lua还需要添加对新指令的支持,无论是将事件转化成lua 还是lua直接读取事件,都只支持老的事件指令。


【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2012-7-16 15:21 | 显示全部楼层
http://115.com/file/c2cymmrt#UPedit源码-2012-7-16.zip
应该需要改ini文件,因为没在ini文件里说明的指令,都会按照只有一个参数(指令序号)处理。

点评

我打算先把半即时优化再修改系统选单,然后看看怎么用纯lua写事件,实在不行复杂的事件就用lua直接编写  发表于 2012-7-16 17:28
这些我都试过了 ,貌似没什么用的 ini应该只是显示层的,我源码也稍微改了下并且用delphi编译了 但是还是不行,找不到控制层的,另外lua里怎么读我也没有什么概念,读事件应该是lua控制不是底层C控制的吧?  发表于 2012-7-16 17:26
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2012-7-16 19:49 | 显示全部楼层
本帖最后由 真正的强强 于 2012-7-16 20:40 编辑

把ini改了比如在指令那地方添加一条 Attrib73=49 2 0 0 0 改变进门音乐(编号)
然后在EditIct函数里添加
   73:
      begin
        Form34.Edit1.Text := inttostr(atrb.par[1]);
        if Form34.ShowModal = mrOK then
        begin
          atrb.par[1] := strtoint(Form34.Edit1.Text);
        end;
      end;
然后再在calattribname里面添加
   73:
        begin
          result := result + '改变进门音乐编号为:'+inttostr(atrb.par[1]);
        end
这样UPedit里面的编辑功能就OK了,其它的就都需要在lua里面完成了。
我觉得你说的控制层也是指在lua里面的实现吧。我记得027巨巨为lua版写过直接读取原版指令的功能,你需要对那段读取原版指令的代码修改以支持你新添加的指令。
如果是用鱼写的原版指令转lua,则修改转换的代码,这段代码好像也是用lua实现的。

下载027的readkdef源码http://www.txdx.net/thread-442577-1-1.html
这段代码封装的已经很好了,调用oldCallEvent执行事件就可以了。

需要手动修改的是,在这段代码中有许多elseif的部分插入一个
elseif E[idx]==73 then
   instruct_201(E[idx+1])
   idx=idx+2
这样就可以了

instruct_201是你写的那个函数,名字并不能直接与指令对应,需要你用像上面这种方法修改来对应上。

点评

谢谢大大指点! 我回去再改改!  发表于 2012-7-16 19:58
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
 楼主| 发表于 2012-7-16 22:03 | 显示全部楼层
本帖最后由 Riemann 于 2012-7-16 22:04 编辑

回复 真正的强强 的帖子

指令游戏里已经能识别了 但是有个问题是参数总是保存不下来 写进去的是function ****(0)
73号指令是改变进入音乐的
listbox2里没有显示任何参数
我已经改了大大说的3处地方了

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?我要成为铁血侠客

x
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
 楼主| 发表于 2012-7-16 22:11 | 显示全部楼层
哦 谢谢大大 我解决了 ini配置文件里有个参数是68 我改成73就好了 谢谢大大了!!!
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2012-7-17 04:12 | 显示全部楼层
lua写事件很心烦
皆因为太灵活了,毫无规范可言....
再就是事件多了之后,很不好管理

点评

嗯嗯 就是感觉llua编写虽然灵活但是貌似不方便 我想如果Upedit里加上支持正则的搜索,再加上类似编译器(在事件里面能直接写点简单的代码,然后Upedit词法语法分析,最后直接生成lua代码)的功能就完美了  发表于 2012-7-17 07:49
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。

本版积分规则

小黑屋|手机版|铁血丹心

GMT+8, 2024-11-15 11:47

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

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