1. 终于看完了角色创建,下面再回到StarMenu函数。NewGame中创建了你的游戏角色。下面看看如何加载地图的。
```bash
-- 可以看到开局画面就只有2个,第一个是杨过专属,第二个是小村开局
if JY.Base["畅想"] == 58 then
-- 当前子场景号
JY.SubScene = 18
-- 大地图上古墓位置
JY.Base["人X"] = 144
JY.Base["人Y"] = 218
-- 子场景位置
JY.Base["人X1"] = 30
JY.Base["人Y1"] = 32
else
-- 默认小村子场景号
JY.SubScene = CC.NewGameSceneID
JY.Base["人X1"] = CC.NewGameSceneX
JY.Base["人Y1"] = CC.NewGameSceneY
end
```
2. 再根据人物性别确定显示主角图片
```bash
if JY.Person[0]["性别"] == 0 then
JY.MyPic = CC.NewPersonPicM
else
JY.MyPic = CC.NewPersonPicF
end
```
3. 初始化场景, `Init_SMap(0)`
4. 根据人物调用事件
```bash
--开局事件
if JY.Base["畅想"] == 58 then --畅想杨过
CallCEvent(4187)
else --其他人
CallCEvent(691)
end
```
5. 黑山的事件是使用CEvent机制,目前只知道直接使用lua脚本实现。事件脚本都在SCRIPT/CEvent/目录下。找到4187和691看一下。
6. 非杨过开局事件
```bash
--OEVENTLUA[691] = function()
--instruct_66(42)
-- 设定小村事件0事件属性
instruct_3(-2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)
-- 设定当前人物在子场景位置, 也就是主角在小村中的位置
instruct_19(16, 31)
-- 设定人物向左上移动
instruct_40(2)
-- 刷新屏幕
instruct_0()
-- 从一个位置移动到另外一个位置
instruct_30(16, 31, 9, 31)
instruct_0()
-- 黑屏
instruct_14()
-- 更改小村62号事件位置显示人物,8250为北丑,这里的贴图>编号需要除以2才是实际的场景图号
instruct_3(-2, 62, 0, 0, 0, 0, 0, 8250, 8250, 8250, -2, -2, -2)
instruct_3(-2, 4, 0, 0, 0, 0, 0, 0, 0, 0, -2, -2, -2)
instruct_0()
instruct_3(-2, 2, 1, 0, 690, 0, 0, 6086, 6086, 6086, -2, -2, -2)
instruct_0()
-- 添加物品
instruct_32(174, 400)
instruct_0()
instruct_32(234, 1)
instruct_0()
instruct_32(182, 1)
instruct_0()
-- 设置2个位置显示人物,南贤与北丑
instruct_3(-2, 4, 1, 0, 695, 0, 0, 8250, 8250, 8250, -2, -2, -2)
instruct_3(-2, 3, 1, 0, 694, 0, 0, 5098, 5098, 5098, -2, -2, -2)
instruct_3(-2, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)
instruct_3(-2, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)
-- 一些场景设置不能进入
instruct_39(19)
instruct_39(101)
instruct_39(36)
instruct_39(28)
instruct_39(93)
instruct_0()
instruct_13()
--end
```
7. 上面主要就几个指令,这些指令名字很蛋疼都是`instruct_xx`,从名字完全不知道干什么的。只能自己摸索与研究。其中功能都用注释写出来了,只有`instruct_3`是最复杂的一个,这个命令需要结合UPedit才能说清楚。所以又引出来一个更复杂的教程了,下面就来玩一玩UPedit。
|