data使用有具体需求,此处不建议开发者使用。开发者尽可能使用已封装过的没有data的新接口
有两种办法可以获取到自定义类型的ID,<1>使用手持触发器去点击获取 <2>依赖相关的触发事件去打印ID 比如,如果是自定义的方块或者生物,可以将其放置在地图里然后用手持触发器去点击获取信息,也可以通过触发相关事件去打印出ID。 代码示例如下:
setBlockAllForNotify/setBlockAllForUpdate方法中的flag和data参数对开发者来说都是不可用的,新版wiki描述上已修正
目前开发者暂时没法直接获取到,我们会在下一版里迭代更新,详情请关注更新通知
最新一期Wiki会放出soundId[2]表,与触发器内的音效库同步
由于游戏机制及效率考虑的原因,此功能不给予提供。但我们会提供触发器生物库的ActorId[3]表
Event即为开发者事件,是指玩家在游戏内进行了某些操作后触发的对应事件。比如玩家点击了某个方块, 这时就会触发玩家的点击方块事件,即名为"Player.ClickBlock"的事件,开发者只要注册监听该事件就能进行点击方块后的对应操作。 注册监听事件的方法如下:ScriptSupportEvent:registerEvent([=[Player.ClickBlock]=], function(event_args) ... end)。 而开发者事件在进行回调时会传回来一些对应的参数,每个开发者事件对应的参数可参考wiki中的事件系统[4]部分。
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)完成后可将其替代
该接口是用于显示屏幕特效,其中type的值为1表示speedline,2表示powerline,3表示fog
path即为全局特效的路径,目前可用的是path只有"particles/Fog.ent",详情可参考范例集合[5]里面给出的例子
不提倡开发者使用上述接口,鼓励开发者使用自己定义的字符串
setActionAttrState是设置玩家特殊属性的状态(例如可移动、可攻击等)的接口,actionattr参数可参考PLAYERATTR_ENABLE[6]
目前我们游戏中最多支持六个队伍,六个队伍的ID及颜色对应如下:
队伍 | 对应颜色 | TeamID |
队伍1 | 红色 | 1 |
队伍2 | 蓝色 | 2 |
队伍3 | 绿色 | 3 |
队伍4 | 黄色 | 4 |
队伍5 | 橙色 | 5 |
队伍6 | 紫色 | 6 |
观战队 | 无 | 999 |
Team相关接口中,可以teamid使用-1表示全部队伍。玩家或生物如果不设置队伍的话默认teamid是为0,也是无队伍的一种
该接口的参数x,y,z表示设定一个移动距离,需要传入整数。
案例:假设把Z设定为5,当执行一次该接口后,那么objid就会向+z轴移动5格的距离
写法:appendSpeed(objid,0,0,5)
假设想判断坐标为(7、7、7)位置的方块通电状态
正确的写法:
常见错误写法:
ui相关的接口暂时不能用,等后续更新。
x:横坐标,y:竖坐标,z:纵坐标;
(x,y,z)代表:坐标(x,z)高度y的位置,如图:
数字太多会被屏蔽,可以使用print输出,然后打开“测试”,在运行日志里查看:
目前没有相关接口。可以使用插件里自带的一些AI。
不要一次性生成太多方块,不同设备性能不同,一般尽量不要超过100。
使用Player:setAttr(uid,attr,value)接口。
这是bug,已经提交修复,等待后续更新。
修改状态插件,在“效果”里选择“更改玩家模型”。需要改模型的时候使用Actor:addBuff(objid,buffid,bufflv)接口给玩家添加这个状态即可。
使用Backpack:clearAllPack(uid)接口。
如果设置的坐标距离过远,不在玩家加载的区块范围内(视野范围),就会导致玩家卡在虚空。可以使用“复活玩家到指定坐标”代替,即Player:reviveToPos(uid,x,y,z)接口。
使用Creature:setAttr(objid,attr,value)接口。
使用World:spawnCreature(x,y,z,actorid,num)接口。
可以,玩家放置生物蛋会触发“生物生成”事件。
监听“长按按键事件”,判断事件中的按键如果是Shift,就增加玩家速度。
使用Player:getCurToolID(uid)接口。
打开背包后计时器的文字会消失,目前不能解决。可以把显示计时器放在“游戏运行”事件里。
使用Actor:setPosition(objid,x,y,z)或Player:setPosition(objid,x,y,z)接口。
不能。但是可以监听玩家进入游戏事件,然后判断当前游戏人数是否大于某个值,是的话就传送玩家到地图外面。
可以设置玩家游戏结果为负,或者在“游戏运行”事件里设置玩家坐标的高度为负,让玩家在地图下方无法移动。
目前“方块无法被破坏”无法避免炸弹、激光等的破坏,只能在插件设置方块抗性为-1,或者监听方块被破坏事件,破坏后重新生成。
已经提交,等待后续更新。目前可以改成“玩家进入区域,生成NPC;玩家离开区域,移除NPC”来代替。
目前没有这种接口。只能先移除再创建。
无法获取整个地图的,但是可以获取指定区域的生物数量。
使用World:despawnCreature(objid)或Actor:killSelf(objid)接口。
不能从坐标获取生物。可以从范围获取,获取到的是整个区域内的生物。