旧版本金庸群侠传3D新Unity重置修复版入门-lua”脚本“

金庸3DUnity重置入门系列文章

金庸3dUnity重置入门 - lua 语法

金庸3dUnity重置入门 - UniTask插件

金庸3dUnity重置入门 - Cinemachine 动画

金庸3dUnity重置入门 - 大世界实现方案

金庸3dUnity重置入门 - 素材极限压缩

(部分可能放到付费博客)

2022年底~2023年初

2021年中开始的项目,到现在只要从Github下载,即是完全可运行版本,虽然整个项目有点大,素材什么的总共 几个G吧,但还是很靠谱的一个项目,稳定,迭代足够

(后来发现,项目应该从2018~2019即启动,还真要几年时间才能有这个体量,诞生在四川,也就是成都,有点唏嘘,没想到在广州绝迹的端游反而在四川有点生命力,再没落下去,只能去西安,西安去完没地方去,只能去越南了)

035b35a456b3f81cd212604f6d140bd1.png

开头动画比较复杂,只需要修改 lua ”脚本“

个人不建议新手学这套Lua,真正实战的Lua语法和应用可完全是2回事,

就好像少林长拳和九阳真经练到9重的区别。

练十年长拳真的只能强身健体,成了火头工或者扫地僧

一些基本命令所在目录, BuildResource/Lua 

一些事件、故事脚本所在目录, Mods/JYX2/Lua

修改,开头智冠动画 ka691”脚本“:

--ka691.lua
----------------------------
SetRoleFace(1);
jyx2_Wait(2.4) --等待2.4秒后再播放黑屏幕,

-- jyx2_SetTimelineSpeed(3); --播放速度X3
-- jyx2_PlayTimeline("[Timeline]ka691_小虾米居_醒来", 0, false);
-- jyx2_Wait(1);
-- Talk(0, "啊!头好痛呀!是不是最近K书K太凶了,所以有点恍惚了……我记得我正在玩“金庸群侠传”啊!怎么突然就睡着了。管他的,我得赶紧起来玩,这游戏可是等了半年多才玩到的,非第一个破关不可。", "talkname0", 1);
-- PlayAnimation(-1, 6890, 6932);
-- jyx2_PlayTimeline("[Timeline]ka691_小虾米居_站起", 0, false);
-- jyx2_Wait(10);
-- Talk(0, "咦!我的电脑呢?", "talkname0", 1);
-- PlayAnimation(-1, 6934, 6986);
-- jyx2_PlayTimeline("[Timeline]ka691_小虾米居_迷惑", 0, false);
-- jyx2_Wait(10);
-- Talk(0, "奇怪,我什么时候换了衣服的,我都不知道。哎!还是古装的?", "talkname0", 1);
-- PlayAnimation(-1, 6988, 7000);
-- PlayAnimation(-1, 6988, 7000);
-- Talk(114, "好了,不能再说下去了,游戏设计者叮咛过我,话不能说太多,否则会犯了游戏的大忌,俗语说……“好GAME不多话”。BYE!BYE!", "talkname114", 0);
DarkScence(); --增加过场(黑场)
-- jyx2_StopTimeline("[Timeline]ka691_小虾米居_醒来");
-- jyx2_StopTimeline("[Timeline]ka691_小虾米居_站起");
-- jyx2_StopTimeline("[Timeline]ka691_小虾米居_迷惑");
-- jyx2_StopTimeline("[Timeline]ka691_小虾米居_四处观察");
-- jyx2_StopTimeline("[Timeline]ka691_小虾米居_转身");
-- jyx2_StopTimeline("[Timeline]ka691_小虾米居_软体娃娃跳起");
-- jyx2_StopTimeline("[Timeline]ka691_小虾米居_软体娃娃打招呼");
-- jyx2_SetTimelineSpeed(1); --播放速度还原
-- SetRoleFace(0); --修正朝向角度
LightScence(); --增加过场(黑场还原)

修改, 在开头动画一开始旁边的箱子事件 ka695 ”脚本“:


--ka695.lua
----------------------------
--这个代码应该是保证宝箱只打开一次,暂时屏蔽,因为哥需要多次触发宝箱(录屏几次)
--ModifyEvent(-2, -2, -2, -2, -1, -1, -1, 2492, 2492, 2492, -2, -2, -2);
AddItem(1, 3);
Talk(500, "刚才调整了开头动画,使用的即是Lua脚本,但个人不建议新手学这套Lua,真正实战的Lua语法和应用可完全是2回事,就好像少林长拳和九阳真经练到9重的区别。", "talkname200", 2)
Talk(0,"刚才写Lua脚本,每个逻辑结束时也没有写分号;个人是“逍遥派”,不写分号派,但也不想破坏原作者的规范,后续不会在Lua脚本上深究了","",2)
Talk(0,"总结一下就是:github下载源码;Unity2020.3打开;修改Lua脚本(Mode/JYX2/Lua/691.lua;File->BuildSettings找到启动界面;运行即可","",5)
do return end;

或者完全不管,直接使用GM工具

            case "zuoyouhubo": //主角学会左右互搏
            {
                GameRuntimeData.Instance.Player.Zuoyouhubo = int.Parse(paras[1]);
                StoryEngine.DisplayPopInfo(
                    "主角设置左右互搏:" + (GameRuntimeData.Instance.Player.Zuoyouhubo == 1 ? "开" : "关"));
                break;
            }
            case "transportwei":
            {
                TransportWei();
                break;
            }
            default:
                Debug.Log("没有识别的指令,将执行lua替代:" + cmd);
                string luaContent = cmd;
                Jyx2.LuaExecutor.ExecuteLuaAsync(luaContent);
                break;

自定义GM工具(”脚本“,程序实现)

因为经常碰到(也可能是个人原因)提示已经在执行事件,其他任何交互功能(事件)变得不可执行了,所以需要一个扩展调试功能:查看当前正在执行什么事件。

原理,就是修改开头动画的 ka691.lua”脚本“即可,因为只要你使用jx 2的默认mod,则必然会执行开头动画,也能使用 eventlua方法了,

SetRoleFace(1);
jyx2_Wait(2.4)
function eventlua( ... )
	print("eve")
end
-- jyx2_SetTimelineSpeed(3); --播放速度X3
-- jyx2_PlayTimeline("[Timeline]ka691_小虾米居_醒来", 0, false);

 使用方法:只要在对话框输入:eventlua(),点执行

流个尾巴(TODO)

1.不重新启动游戏,直接执行修改lua文件并马上触发执行

2.Xlua自动转换c#代码 + Profiler + 断点调试

3.在事件脚本 ka691等等中注入lua

4.短,中,和长3个故事脚本

猜你喜欢

转载自blog.csdn.net/avi9111/article/details/128199896
今日推荐