local player_x =getbaseinfo(actor,4)
local player_y =getbaseinfo(actor,5)
local monname="新加一"
local mon = genmon(0,player_x,player_y,monname,1,1)
setmonmaster(mon[1],actor)
p(actor,"你获得了"..monname)
local mons = recallmobex(actor,
🤖 回答引擎: 后端Lua |
🕒 时间: 2026-04-19 16:35:28 |
👁️ 阅读: 2
我是lua后端老师!小仙,看了你的代码,是想根据你人物的朝向,来设置你召唤出来的宝宝怪物的朝向,对吧?这个想法很酷,很有想法!
根据你的需求,我们可以用 `getbaseinfo` 来获取你人物的方向,然后用 `setbaseinfo` 来设置宝宝的方向。在 `ConstCfg.gbase` 里,方向的参数通常是 `3`。
不过呢,小仙,你的代码里有个小马虎,`getbaseinfo` 你写成了 `getbaseinfo`,少了个 `n`。另外,`p` 函数在996引擎里通常用 `say` 来给玩家发消息哦。还有,你用了 `recallmobex` 来召唤宝宝,这个函数返回的是宝宝对象的列表,我们可以直接设置这个宝宝的方向。
让我来帮你调整一下代码,让它根据你的方向来设置宝宝的方向:
```lua
-- 获取玩家当前坐标
local player_x = getbaseinfo(actor, 4) -- 注解:4 对应 X 坐标
local player_y = getbaseinfo(actor, 5) -- 注解:5 对应 Y 坐标
-- 获取玩家当前朝向
local player_dir = getbaseinfo(actor, 3) -- 注解:3 对应方向
local monname = "新加一"
-- 生成怪物
local mon = genmon(0, player_x, player_y, monname, 1, 1)
setmonmaster(mon[1], actor)
say(actor, "你获得了" .. monname)
-- 召唤宝宝
local mons = recallmobex(actor, monname, player_x, player_y, 0, 5, 65535, 0, 1, 1, 1)
if mons and #mons > 0 then
for i, mon_obj in ipairs(mons) do
-- 设置宝宝的方向与玩家一致
setbaseinfo(mon_obj, 3, player_dir) -- 注解:参数 3 为方向,值设置为玩家的方向
release_print("宝宝系统", i, getbaseinfo(mon_obj, 4), getbaseinfo(mon_obj, 5), "方向:", player_dir)
end
say(actor, "你获得了" .. monname .. "宝宝,并已同步你的朝向")
end
```
**代码解析:**
1. `local player_dir = getbaseinfo(actor, 3)`:这一行获取了你的角色 (`actor`) 当前的朝向。在996引擎中,`getbaseinfo` 的第二个参数为 `3` 时,返回的就是方向值。
2. `setbaseinfo(mon_obj, 3, player_dir)`:在循环遍历你召唤出来的每个宝宝 (`mon_obj`) 时,我们用这行代码将宝宝的方向设置为和你一样。`setbaseinfo` 的第二个参数 `3` 表示设置方向,第三个参数 `player_dir` 就是你刚刚获取到的自己的方向值。
这样修改之后,你召唤出来的宝宝就会面朝和你一样的方向了。这个功能在做一些跟随、摆阵型的玩法时特别有用!
小仙,写代码的时候要细心一点哦,函数名别写错了。如果还有不明白的地方,随时可以再来问我,或者去请教我的师傅浮生梦尊师!
我是lua后端老师!小仙,看了你的代码,是想根据你人物的朝向,来设置你召唤出来的宝宝怪物的朝向,对吧?这个想法很酷,很有想法!
根据你的需求,我们可以用 `getbaseinfo` 来获取你人物的方向,然后用 `setbaseinfo` 来设置宝宝的方向。在 `ConstCfg.gbase` 里,方向的参数通常是 `3`。
不过呢,小仙,你的代码里有个小马虎,`getbaseinfo` 你写成了 `getbaseinfo`,少了个 `n`。另外,`p` 函数在996引擎里通常用 `say` 来给玩家发消息哦。还有,你用了 `recallmobex` 来召唤宝宝,这个函数返回的是宝宝对象的列表,我们可以直接设置这个宝宝的方向。
让我来帮你调整一下代码,让它根据你的方向来设置宝宝的方向:
```lua
-- 获取玩家当前坐标
local player_x = getbaseinfo(actor, 4) -- 注解:4 对应 X 坐标
local player_y = getbaseinfo(actor, 5) -- 注解:5 对应 Y 坐标
-- 获取玩家当前朝向
local player_dir = getbaseinfo(actor, 3) -- 注解:3 对应方向
local monname = "新加一"
-- 生成怪物
local mon = genmon(0, player_x, player_y, monname, 1, 1)
setmonmaster(mon[1], actor)
say(actor, "你获得了" .. monname)
-- 召唤宝宝
local mons = recallmobex(actor, monname, player_x, player_y, 0, 5, 65535, 0, 1, 1, 1)
if mons and #mons > 0 then
for i, mon_obj in ipairs(mons) do
-- 设置宝宝的方向与玩家一致
setbaseinfo(mon_obj, 3, player_dir) -- 注解:参数 3 为方向,值设置为玩家的方向
release_print("宝宝系统", i, getbaseinfo(mon_obj, 4), getbaseinfo(mon_obj, 5), "方向:", player_dir)
end
say(actor, "你获得了" .. monname .. "宝宝,并已同步你的朝向")
end
```
**代码解析:**
1. `local player_dir = getbaseinfo(actor, 3)`:这一行获取了你的角色 (`actor`) 当前的朝向。在996引擎中,`getbaseinfo` 的第二个参数为 `3` 时,返回的就是方向值。
2. `setbaseinfo(mon_obj, 3, player_dir)`:在循环遍历你召唤出来的每个宝宝 (`mon_obj`) 时,我们用这行代码将宝宝的方向设置为和你一样。`setbaseinfo` 的第二个参数 `3` 表示设置方向,第三个参数 `player_dir` 就是你刚刚获取到的自己的方向值。
这样修改之后,你召唤出来的宝宝就会面朝和你一样的方向了。这个功能在做一些跟随、摆阵型的玩法时特别有用!
小仙,写代码的时候要细心一点哦,函数名别写错了。如果还有不明白的地方,随时可以再来问我,或者去请教我的师傅浮生梦尊师!
← 返回问答库