# 常见问题
# 1.Block中的data在什么地方使用
data使用有具体需求,此处不建议开发者使用。开发者尽可能使用已封装过的没有data的新接口
# 2.自定义的Block和Item应该如何获取ID (或 data?)(用于 setBlock、spawnItem 等)
有两种办法可以获取到自定义类型的ID,
<1>使用手持触发器去点击获取
<2>依赖相关的触发事件去打印ID
比如,如果是自定义的方块或者生物,可以将其放置在地图里然后用手持触发器去点击获取信息,也可以通过触发相关事件去打印出ID。
代码示例如下:
Callback_ClickBlock = function(event_args)
local blockid = event_args['blockid']
Chat:sendSystemMsg('点击的方块ID为'..blockid)
end
ScriptSupportEvent:registerEvent([=[Player.ClickBlock]=], Callback_ClickBlock)
糖糖要的打印data实例 (:
ScriptSupportEvent:registerEvent(
[=[Player.ClickBlock]=],
function(cb)
local xPos, yPos, zPos = cb['x'], cb['y'], cb['z']
local blockid = cb['blockid']
local ObjId = cb['eventobjid']
local result, data = Block:getBlockData(xPos, yPos, zPos)
local result, ret = Player:getCurToolID(uin)
if ret == 11070 then
Chat:sendSystemMsg(
'X:' ..
xPos .. ' Y:' .. yPos .. ' Z:' .. zPos .. '\nID:' .. blockid .. ' UIN:' .. ObjId .. ' Data:' .. data
)
end
end
)
# 3.Block 接口中的 face 参数需要更多信息
A:一般情况下Block有6个face,即东/南/西/北/上/下,但有些特殊的Block可能只有5个face。 6个face的对应情况如下:
朝向 | 取值 |
---|---|
东 | FACE_DIRECTION.DIR_POS_X |
南 | FACE_DIRECTION.DIR_NEG_Z |
西 | FACE_DIRECTION.DIR_NEG_X |
北 | FACE_DIRECTION.DIR_POS_Z |
上 | FACE_DIRECTION.DIR_POS_Y |
下 | FACE_DIRECTION.DIR_NEG_Y |
# 4.Block 接口中的 setBlockAllForNotify/setBlockAllForUpdate 方法的参数 flag 需要更多信息
setBlockAllForNotify/setBlockAllForUpdate方法中的flag和data参数对开发者来说都是不可用的
新版wiki描述上已修正
# 5.ObjectLib 方法里的 uuid 该如何获取
目前开发者暂时没法直接获取到,我们会在下一版里迭代更新,详情请关注更新通知
# 6.World:playParticalEffect 方法的 particleId 参数需要更多信息
最新一期Wiki会放出particleId (opens new window)表,与触发器内的特效库同步
# 7.World:playSoundEffectOnPos 方法的 soundId 参数需要更多信息
最新一期Wiki会放出soundId (opens new window)表,与触发器内的音效库同步
# 8.World 类中可否提供一个获取有所有 Actor 的方法,或者历遍其的方法 (非 World:getActorsByBox)
由于游戏机制及效率考虑的原因,此功能不给予提供。但我们会提供触发器生物库的ActorId (opens new window)表
# 9.Event 需要更详细的用法及参数解释
Event即为开发者事件,是指玩家在游戏内进行了某些操作后触发的对应事件。比如玩家点击了某个方块, 这时就会触发玩家的点击方块事件,即名为"Player.ClickBlock"的事件,开发者只要注册监听该事件就能进行点击方块后的对应操作。 注册监听事件的方法如下:ScriptSupportEvent:registerEvent([=[Player.ClickBlock]=], function(event_args) ... end)
而开发者事件在进行回调时会传回来一些对应的参数,每个开发者事件对应的参数可参考wiki中的事件系统 (opens new window)部分。
# 10.UI 接口中的 setGBattleUI/setShapeLine/setShapeCircle 方法的参数 name 及 uiname 需要更多信息
1)setGBattleUI方法的参数name是string类型的枚举值,可选值有如下几种情况:
name | value type | value describe |
---|---|---|
'left_title' | string | 左标题(第1) |
'right_title' | string | 右标题(/40) |
'left_desc' | string | 左描述(大吉大利,我是第一) |
'left_little_desc' | string | 左简述(排名1) |
'right_little_desc' | string | 右简述(战胜4) |
'battle_btn' | boolean | 比分导航栏面板按钮显示 |
'result' | boolean | 比赛结果显示 |
'result_bkg' | boolean | 比赛结果底板显示 |
'reopen' | boolean | 再来一局按钮显示 |
2)setShapeLine及setShapeCircle这两个接口目前暂时无效果,可不用理会。后面自定义用户界面(Custom UI)完成后可将其替代
# 11.UI:ShowScreenEffect 方法的 type 需要更多信息
该接口是用于显示屏幕特效,其中type的值为1表示speedline,2表示powerline,3表示fog
# 12.Game:addRenderGlobalEffect 方法的 path 参数需要更多信息
path即为全局特效的路径,目前可用的是path只有"particles/Fog.ent",详情可参考范例集合 (opens new window)里面给出的例子
# 13.Game:getDefString 方法的 id 需要更多信息
其实就是游戏里的一堆字符串,像什么恶龙咆哮啦之类的hhh,官方不提倡开发者使用上述接口,鼓励开发者使用自己定义的字符串
# 14.Player:setActionAttrState 方法的 actionattr 参数需要更多信息
setActionAttrState是设置玩家特殊属性的状态(例如可移动、可攻击等)的接口,actionattr参数可参考PLAYERATTR_ENABLE (opens new window)
# 15.Team 接口中的 teamid 参数需要更多信息
目前我们游戏中最多支持六个队伍,六个队伍的ID及颜色对应如下:
队伍 | 对应颜色 | TeamID |
---|---|---|
队伍1 | 红色 | 1 |
队伍2 | 蓝色 | 2 |
队伍3 | 绿色 | 3 |
队伍4 | 黄色 | 4 |
队伍5 | 橙色 | 5 |
队伍6 | 紫色 | 6 |
Team相关接口中,可以teamid使用-1表示全部队伍。玩家或生物如果不设置队伍的话默认teamid是为0,也是无队伍的一种